Smush Image Compression and Optimization - Version 2.7.8

Version Description

  • Includes changes from update 2.7.7 and a fix for JS errors in custom posts screen disabling post editor tabs

  • Updates:

    • Minor UI Changes ( Accessibility Fixes )
    • PNG to JPG: Iterate over rows while URL replacement to make sure all the occurrences are updated
  • Fixed:

    • Skip button doesn't skips images
    • Show updated smush status in Media Grid attachment modal
    • Font issue in WordPress backend for Ubuntu systems
    • Fatal Error: get_current_network
    • Async Smush not working for subdirectory sites
    • File backups were not being created for Auto Smush if Async smush is disabled
Download this release

Release Info

Developer jdailey
Plugin Icon 128x128 Smush Image Compression and Optimization
Version 2.7.8
Comparing to
See all releases

Code changes from version 2.7.6 to 2.7.8

assets/css/wp-smushit-admin.css CHANGED
@@ -102,6 +102,20 @@ Smush button transformation
102
  margin-top: -8px;
103
  }
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  .wpmud .toggle .toggle-checkbox:checked + .toggle-label:after {
106
  margin-left: 23px;
107
  }
@@ -167,7 +181,7 @@ Smush button transformation
167
  .smush-submit-note {
168
  color: #9B9B9B;
169
  float: left;
170
- font-family: Roboto;
171
  font-size: 13px;
172
  line-height: 22px;
173
  margin-top: 10px;
@@ -179,7 +193,8 @@ input#wp-smush-save-settings {
179
  margin: 0;
180
  }
181
 
182
- input#wp-smush-save-settings:hover {
 
183
  background: #0A9BD6;
184
  }
185
 
@@ -235,10 +250,10 @@ input#wp-smush-save-settings:hover {
235
  }
236
 
237
  /** Grid view button **/
238
- .smush-wrap {
239
- margin-left: 14%;
240
- max-width: 60%;
241
- }
242
 
243
  .currently-smushing .smush-status {
244
  color: #0074a2;
@@ -316,6 +331,7 @@ input#wp-smush-save-settings:hover {
316
  cursor: default;
317
  }
318
 
 
319
  .compat-field-wp_smush .smush-wrap {
320
  margin: 0 0 5px 0;
321
  max-width: 100%;
@@ -435,6 +451,11 @@ table.wp-smush-stats-holder td, table.wp-smush-stats-holder th,
435
  border: 1px solid #CECECE;
436
  }
437
 
 
 
 
 
 
438
  #ngg-listimages .column-7 {
439
  width: 300px;
440
  }
@@ -491,15 +512,79 @@ table.wp-smush-stats-holder tr td:first-child {
491
  }
492
 
493
  /*Media Modal Styling*/
 
494
  .compat-field-wp_smush .wp-smush-stats-holder tr {
495
  display: table-row;
496
  }
497
 
 
498
  .compat-field-wp_smush .wp-smush-stats-holder td {
499
  padding: 8px 10px;
500
  word-wrap: break-word;
501
  }
502
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
503
  /** Help Tip **/
504
  .ui-tooltip-content {
505
  font-size: 12px;
@@ -823,6 +908,10 @@ Quick Setup Dialog
823
  -webkit-font-smoothing: antialiased !important;
824
  }
825
 
 
 
 
 
826
  .wpmud .dev-overlay .back {
827
  background: rgba(51, 51, 51, 0.95);
828
  }
@@ -832,6 +921,7 @@ Quick Setup Dialog
832
  }
833
 
834
  .wpmud .dev-overlay.small .box {
 
835
  position: relative;
836
  margin: 30px auto;
837
  width: 100%;
@@ -840,7 +930,25 @@ Quick Setup Dialog
840
  padding: 30px;
841
  }
842
 
843
- .wpmud .dev-overlay.small .box:after {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844
  background: url(../images/smush-quicksetup.png) no-repeat 0 0;
845
  bottom: 0;
846
  content: "";
@@ -853,6 +961,18 @@ Quick Setup Dialog
853
  width: 248px;
854
  }
855
 
 
 
 
 
 
 
 
 
 
 
 
 
856
  .wpmud .dev-overlay .box .title {
857
  margin: -35px -30px 30px -30px;
858
  padding: 0 30px;
@@ -867,6 +987,10 @@ Quick Setup Dialog
867
  padding-bottom: 180px;
868
  }
869
 
 
 
 
 
870
  .wpmud .wp-smush-welcome-message {
871
  color: #444;
872
  padding-bottom: 30px;
@@ -890,7 +1014,9 @@ div.smush-quick-setup-settings div.submit-button-wrap {
890
  float: right;
891
  }
892
 
893
- .wpmud div.smush-quick-setup-settings div.submit-button-wrap button:hover {
 
 
894
  background-color: #0A9BD6 !important;
895
  }
896
 
@@ -912,7 +1038,8 @@ div.smush-quick-setup-settings div.submit-button-wrap span.spinner {
912
  padding: 5px 27px;
913
  }
914
 
915
- .wpmud .box button.skip-button.button-small:hover {
 
916
  background: #666666 !important;
917
  }
918
 
@@ -977,7 +1104,8 @@ div.smush-notice-cta a.smush-notice-act.button-primary {
977
 
978
  .wp-smush-resmush-message,
979
  .wp-smush-settings-updated,
980
- .wp-smush-re-check-message {
 
981
  border: none;
982
  margin-bottom: 25px;
983
  padding: 18px 50px;
@@ -990,31 +1118,35 @@ div.smush-notice-cta a.smush-notice-act.button-primary {
990
  text-decoration: underline;
991
  }
992
 
993
- .wp-smush-resmush-message .dev-icon,
994
- .wp-smush-settings-updated .dev-icon,
995
- .wp-smush-re-check-message .dev-icon {
996
- font-size: 22px;
997
- }
998
-
999
- .wp-smush-resmush-message .dev-icon-tick,
1000
- .wp-smush-settings-updated .dev-icon-tick {
1001
- font-size: 22px;
1002
  margin-right: 5px;
1003
  vertical-align: middle;
1004
  }
1005
 
1006
- .wp-smush-resmush-message .dev-icon-cross,
1007
- .wp-smush-settings-updated .dev-icon-cross,
1008
- .wp-smush-re-check-message .dev-icon-cross {
 
1009
  cursor: pointer;
 
1010
  float: right;
1011
  font-size: 16px;
1012
- margin-top: 8px;
 
 
 
 
 
 
 
1013
  }
1014
 
1015
- .wp-smush-all-done .dev-icon-tick {
1016
  display: inline-block;
1017
- font-size: 22px;
1018
  margin-right: 10px;
1019
  margin-top: -3px;
1020
  vertical-align: middle;
@@ -1069,12 +1201,18 @@ ol.smush-recommendation-list li {
1069
  opacity: 0.5;
1070
  }
1071
 
1072
- .wpmud .dev-icon {
1073
  line-height: 1.5;
1074
- margin-right: 5px;
1075
  vertical-align: middle;
1076
  }
1077
 
 
 
 
 
 
 
1078
  .wp-smush-bulk-wrapper {
1079
  overflow: hidden;
1080
  }
@@ -1086,7 +1224,8 @@ div.wp-smush-dir-remaining,
1086
  div.wp-smush-dir-limit,
1087
  div.smush-s3-setup-error,
1088
  div.smush-s3-setup-message,
1089
- div.wp-smush-s3support-alert {
 
1090
  background-color: #FFF5D5;
1091
  border: none;
1092
  color: #333333;
@@ -1095,10 +1234,26 @@ div.wp-smush-s3support-alert {
1095
  letter-spacing: -0.015em;
1096
  }
1097
 
1098
- div.smush-s3-setup-message {
 
 
 
 
 
 
 
 
1099
  background-color: #DFF6FA;
1100
  }
1101
 
 
 
 
 
 
 
 
 
1102
  div.wp-smush-s3support-alert {
1103
  margin-left: 0;
1104
  margin-right: 0;
@@ -1106,13 +1261,15 @@ div.wp-smush-s3support-alert {
1106
 
1107
  div.wp-smush-s3support-alert span.notice-message {
1108
  display: inline-block;
 
1109
  max-width: 96%;
1110
  }
1111
 
1112
- div.wp-smush-s3support-alert .dev-icon-cross {
1113
  cursor: pointer;
1114
  float: right;
1115
  line-height: 2;
 
1116
  }
1117
 
1118
  div.smush-s3-setup-error a {
@@ -1126,10 +1283,9 @@ div.wp-smush-dir-limit {
1126
  background-color: #dff6fa;
1127
  }
1128
 
1129
- div.wp-smush-notice .dev-icon-tick:before,
1130
- div.wp-smush-all-done .dev-icon-tick:before,
1131
- div.wp-smush-dir-all-done .dev-icon-tick:before {
1132
- content: "\67";
1133
  color: #1ABC9C;
1134
  }
1135
 
@@ -1139,12 +1295,12 @@ div.wp-smush-dir-all-done .dev-icon-tick:before {
1139
  text-decoration: underline;
1140
  }
1141
 
1142
- div.wp-smush-dir-remaining .wdv-icon-exclamation-sign:before,
1143
- div.smush-s3-setup-error .wdv-icon-exclamation-sign:before {
1144
  color: #FECF2F;
1145
  }
1146
 
1147
- div.wp-smush-dir-limit .wdv-icon-info-sign:before {
1148
  color: #333;
1149
  }
1150
 
@@ -1152,14 +1308,20 @@ div.wp-smush-dir-limit .wdv-icon-info-sign:before {
1152
  padding: 10px 50px;
1153
  }
1154
 
1155
- .wpmud .bulk-smush-wrapper .wp-smush-remaining .wdv-icon {
1156
- color: #fecf2f;
 
1157
  font-size: 20px;
1158
  margin-right: 8px;
1159
  line-height: 30px;
1160
  vertical-align: top;
1161
  }
1162
 
 
 
 
 
 
1163
  .wpmud .bulk-smush-wrapper .dev-icon img {
1164
  vertical-align: top;
1165
  }
@@ -1200,6 +1362,16 @@ div.wp-smush-dir-limit .wdv-icon-info-sign:before {
1200
  padding: 20px 15px 20px 30px;
1201
  }
1202
 
 
 
 
 
 
 
 
 
 
 
1203
  .wp-smush-progress-wrap img {
1204
  vertical-align: middle;
1205
  }
@@ -1276,6 +1448,12 @@ div.wp-smush-dir-limit .wdv-icon-info-sign:before {
1276
  padding: 10px;
1277
  }
1278
 
 
 
 
 
 
 
1279
  div.smush-cancel-button-wrapper {
1280
  text-align: center;
1281
  }
@@ -1416,7 +1594,7 @@ a.wp-smush-lossy-enable {
1416
  .wp-smush-stats.settings-desc,
1417
  .wp-smush-stats-human.settings-desc {
1418
  color: #888888;
1419
- font-family: Roboto;
1420
  font-size: 13px;
1421
  line-height: 22px;
1422
  padding: 0;
@@ -1437,10 +1615,6 @@ a.wp-smush-lossy-enable {
1437
  line-height: 30px;
1438
  }
1439
 
1440
- .wp-smush-stats-label .wdv-icon.wdv-icon-question-sign {
1441
- margin-left: 3px;
1442
- }
1443
-
1444
  .wpmud .wp-smush-stats-try-pro {
1445
  font-size: 12px;
1446
  font-weight: 500;
@@ -1453,6 +1627,7 @@ a.wp-smush-lossy-enable {
1453
  border-radius: 13px;
1454
  color: #1ABC9C;
1455
  padding: 4px 10px;
 
1456
  }
1457
 
1458
  .wpmud .wp-smush-stats-try-pro:hover > a, .wpmud .wp-smush-stats-try-pro a:hover {
@@ -1490,6 +1665,73 @@ a.wp-smush-lossy-enable {
1490
  display: block;
1491
  }
1492
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1493
  .wp-smush-pro-cta {
1494
  overflow: hidden;
1495
  display: block;
@@ -1569,6 +1811,14 @@ a.wp-smush-lossy-enable {
1569
  text-shadow: none;
1570
  }
1571
 
 
 
 
 
 
 
 
 
1572
  .compat-item .compat-field-wp_smush {
1573
  display: table-row;
1574
  }
@@ -1577,12 +1827,16 @@ a.wp-smush-lossy-enable {
1577
  width: 260px;
1578
  }
1579
 
1580
- .smushit [tooltip], .compat-field-wp_smush [tooltip] {
 
 
1581
  position: relative;
1582
  overflow: visible;
1583
  }
1584
 
1585
- .smushit [tooltip]:before, .compat-field-wp_smush [tooltip]:before {
 
 
1586
  content: '';
1587
  position: absolute;
1588
  border: 5px solid transparent;
@@ -1597,35 +1851,43 @@ a.wp-smush-lossy-enable {
1597
  pointer-events: none;
1598
  }
1599
 
1600
- .smushit [tooltip]:after, .compat-field-wp_smush [tooltip]:after {
1601
- content: attr(tooltip);
1602
- position: absolute;
1603
  background: #0B2F3F;
1604
- color: #FFF;
1605
  bottom: 100%;
 
 
 
 
1606
  left: 50%;
1607
- width: 180px;
1608
  margin-left: -100px;
1609
  margin-bottom: 5px;
1610
- text-align: center;
1611
- padding: 5px;
1612
- border-radius: 4px;
1613
- font: 400 13px/20px 'Roboto Condensed';
1614
  opacity: 0;
1615
- z-index: -1;
 
 
 
 
1616
  transition: margin .2s, opacity .2s, z-index .2s linear .2s;
1617
  white-space: pre-wrap;
1618
- pointer-events: none;
1619
  }
1620
 
1621
- .smushit .smush-skipped [tooltip]:before, .compat-field-wp_smush .smush-skipped [tooltip]:before {
 
 
1622
  border-top-color: transparent;
1623
  border-left-color: #0B2F3F;
1624
  bottom: 0;
1625
  left: 0;
1626
  }
1627
 
1628
- .smushit .smush-skipped [tooltip]:after, .compat-field-wp_smush .smush-skipped [tooltip]:after {
 
 
1629
  margin-left: 0;
1630
  left: -195px;
1631
  top: -35px;
@@ -1633,12 +1895,30 @@ a.wp-smush-lossy-enable {
1633
  margin-bottom: 5px;
1634
  }
1635
 
1636
- .smushit [tooltip].tooltip-s:after, .compat-field-wp_smush [tooltip].tooltip-s:after {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1637
  width: 150px;
1638
  margin-left: -75px;
1639
  }
1640
 
1641
- .smushit [tooltip].tooltip-l:after, .compat-field-wp_smush [tooltip].tooltip-l:after {
 
 
1642
  width: 280px;
1643
  margin-left: -140px;
1644
  }
@@ -1671,14 +1951,18 @@ a.wp-smush-lossy-enable {
1671
  margin-bottom: 0;
1672
  }
1673
 
1674
- .smushit [tooltip]:hover:before, .compat-field-wp_smush [tooltip]:hover:before {
 
 
1675
  z-index: 1;
1676
  margin-bottom: 0;
1677
  opacity: 1;
1678
  transition: margin .2s, opacity .2s;
1679
  }
1680
 
1681
- .smushit [tooltip]:hover:after, .compat-field-wp_smush [tooltip]:hover:after {
 
 
1682
  opacity: 1;
1683
  z-index: 1;
1684
  margin-bottom: 10px;
@@ -1687,6 +1971,8 @@ a.wp-smush-lossy-enable {
1687
 
1688
  .smushit .disabled[tooltip]:before,
1689
  .smushit .disabled[tooltip]:after,
 
 
1690
  .compat-field-wp_smush .disabled[tooltip]:before,
1691
  .compat-field-wp_smush .disabled[tooltip]:after {
1692
  display: none;
@@ -1772,7 +2058,7 @@ div.wp-smush-super-smush-content-wrapper {
1772
  line-height: 22px;
1773
  }
1774
 
1775
- .wpmud .wp-smush-image-size-list p {
1776
  color: #888888;
1777
  font-family: Roboto;
1778
  font-size: 13px;
@@ -1927,10 +2213,19 @@ div.wp-smush-resize-note {
1927
  font-weight: 400;
1928
  }
1929
 
1930
- .wp-smush-share-button .dev-icon {
 
1931
  margin-right: 12px;
1932
  }
1933
 
 
 
 
 
 
 
 
 
1934
  /** Override WP Footer Styling, Hide it on WPMU pages only, if we really need to **/
1935
  .wp-admin #wpfooter {
1936
  display: block;
@@ -1969,6 +2264,14 @@ div.wp-smush-dir-desc {
1969
  width: 150px;
1970
  }
1971
 
 
 
 
 
 
 
 
 
1972
  .wpmud .dev-overlay.wp-smush-list-dialog .title h3 {
1973
  padding: 15px 0;
1974
  }
@@ -1977,12 +2280,6 @@ div.wp-smush-dir-desc {
1977
  margin-top: 80px;
1978
  }
1979
 
1980
- .wpmud .dev-overlay.wp-smush-list-dialog .box {
1981
- margin-left: -300px;
1982
- padding: 35px 35px 30px;
1983
- width: 600px;
1984
- }
1985
-
1986
  .wp-smush-select-dir {
1987
  float: right;
1988
  margin-top: 20px;
@@ -2119,6 +2416,11 @@ div.wp-smush-all-button-wrap.bottom {
2119
  margin: 5px 0;
2120
  }
2121
 
 
 
 
 
 
2122
  .wp-smush-image-list-inner {
2123
  display: none;
2124
  max-height: 0;
@@ -2142,10 +2444,10 @@ span.wp-smush-li-path {
2142
 
2143
  li.wp-smush-image-ul span.wp-smush-li-path {
2144
  background: url("../images/folder-closed.svg") no-repeat;
2145
- background-position-y: 3px;
2146
- line-height: 1.5;
2147
- padding: 4px 30px 3px;
2148
-
2149
  }
2150
 
2151
  li.wp-smush-image-ul.in-progress span.wp-smush-li-path {
@@ -2168,11 +2470,15 @@ li.wp-smush-image-ul li.wp-smush-image-ele.in-progress span.spinner {
2168
  margin-right: 11px;
2169
  }
2170
 
 
 
 
 
2171
  li.wp-smush-image-ul.complete span.wp-smush-li-path:before,
2172
  li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2173
  box-shadow: none;
2174
  color: #1ABC9C;
2175
- content: '\67';
2176
  font-family: 'WPMU-DEV-App-Icons';
2177
  font-size: 20px;
2178
  font-style: normal;
@@ -2181,7 +2487,7 @@ li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2181
  height: 22px;
2182
  left: 0;
2183
  line-height: 22px;
2184
- margin-top: -8px;
2185
  opacity: 1;
2186
  position: absolute;
2187
  speak: none;
@@ -2197,17 +2503,17 @@ li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2197
 
2198
  li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2199
  color: #ffd000;
2200
- content: '\f06a';
2201
- font-family: 'FontAwesomeWdv';
2202
- font-size: 22px;
2203
  margin-left: 1px;
2204
  }
2205
 
2206
  .wp-smush-image-count {
2207
  background: #f2f2f2;
2208
  border-radius: 20px;
 
2209
  margin-left: 10px;
2210
- padding: 5px 10px;
2211
  vertical-align: middle;
2212
  }
2213
 
@@ -2221,28 +2527,27 @@ div.wp-smush-scan-result div.wp-smush-notice {
2221
 
2222
  }
2223
 
2224
- div.wp-smush-scan-result div.wp-smush-notice .wdv-icon,
2225
- div.wp-smush-scan-result div.wp-smush-notice .dev-icon,
2226
- div.smush-s3-setup-error i.dev-icon,
2227
- div.smush-s3-setup-message i.dev-icon {
2228
  display: inline-block;
2229
- font-size: 22px;
2230
- margin-right: 5px;
2231
  margin-top: -3px;
2232
  vertical-align: middle;
2233
  }
2234
 
2235
- div.smush-s3-setup-error i.dev-icon,
2236
- div.smush-s3-setup-message i.dev-icon {
2237
- margin-top: -1px;
2238
  vertical-align: top;
2239
  }
2240
 
2241
- div.smush-s3-setup-error i.dev-icon {
2242
  margin-top: -2px;
2243
  }
2244
 
2245
- div.smush-s3-setup-message i.dev-icon:before {
2246
  color: #17A8E3;
2247
  }
2248
 
@@ -2254,6 +2559,10 @@ div.wp-smush-scan-result hr {
2254
  margin: 20px 0;
2255
  }
2256
 
 
 
 
 
2257
  div.wp-smush-scan-result div.content {
2258
  overflow: hidden;
2259
  width: 100%;
@@ -2297,7 +2606,8 @@ div.dir-smush-button-wrap span {
2297
  background-color: #AEAEAE !important;
2298
  }
2299
 
2300
- .wpmud button.wp-smush-browse:hover {
 
2301
  background-color: #9E9E9E !important;
2302
  }
2303
 
@@ -2362,7 +2672,8 @@ li.wp-smush-image-ele span.wp-smush-image-path {
2362
  vertical-align: middle;
2363
  }
2364
 
2365
- .wp-smush-image-ele-status:after {
 
2366
  box-shadow: none;
2367
  content: url("../images/image.svg");
2368
  font-family: 'WPMU-DEV-App-Icons';
@@ -2392,7 +2703,7 @@ li.wp-smush-image-ele.in-progress .wp-smush-image-ele-status {
2392
 
2393
  /** Optimised Image **/
2394
  li.wp-smush-image-ele.optimised .wp-smush-image-ele-status:after {
2395
- content: '\67';
2396
  color: #1ABC9C;
2397
  }
2398
 
@@ -2400,6 +2711,7 @@ li.wp-smush-image-ele.error .wp-smush-image-ele-status:after {
2400
  color: #ffd000;
2401
  content: '\f06a';
2402
  font-family: 'FontAwesomeWdv';
 
2403
  }
2404
 
2405
  div.wp-smush-dir-notice {
@@ -2411,27 +2723,25 @@ div.wp-smush-dir-notice {
2411
  font-weight: 500;
2412
  }
2413
 
2414
- div.wp-smush-dir-notice .wdv-icon-exclamation-sign {
2415
  margin-right: 10px;
2416
  vertical-align: middle;
2417
  }
2418
 
2419
- div.wp-smush-dir-notice .wdv-icon-exclamation-sign:before {
2420
  color: #ffd000;
2421
  content: '\f06a';
2422
  font-family: 'FontAwesomeWdv';
2423
- font-size: 22px;
2424
  margin-left: 1px;
2425
  margin-top: 4px;
2426
  vertical-align: middle;
2427
  }
2428
 
2429
  div.wp-smush-dir-progress-wrap {
2430
- display: inline-block;
2431
- float: right;
2432
  font-weight: 600;
2433
  padding-top: 4px;
2434
- width: 145px;
2435
  }
2436
 
2437
  div.wp-smush-dir-progress-wrap.hidden {
@@ -2439,7 +2749,6 @@ div.wp-smush-dir-progress-wrap.hidden {
2439
  }
2440
 
2441
  span.smush-percent {
2442
- display: inline-block;
2443
  text-align: right;
2444
  width: 34px;
2445
  }
@@ -2449,9 +2758,9 @@ div.wp-smush-dir-progress-wrap-inner {
2449
  -moz-border-radius: 10px;
2450
  -webkit-border-radius: 10px;
2451
  border-radius: 10px;
2452
- display: inline-block;
2453
  height: 10px;
2454
  margin-left: 10px;
 
2455
  position: relative;
2456
  width: 100px;
2457
  }
@@ -2618,7 +2927,8 @@ button.wp-smush-all.wp-smush-button {
2618
  }
2619
 
2620
  @media only screen and (max-width: 960px) {
2621
- .wpmud .dev-overlay.wp-smush-list-dialog {
 
2622
  left: 35px;
2623
  }
2624
  }
@@ -2640,7 +2950,8 @@ button.wp-smush-all.wp-smush-button {
2640
  }
2641
 
2642
  @media only screen and (max-width: 782px) {
2643
- .wpmud .dev-overlay.wp-smush-list-dialog {
 
2644
  left: 0;
2645
  }
2646
  }
@@ -2751,6 +3062,7 @@ button.wp-smush-all.wp-smush-button {
2751
  width: 100%;
2752
  }
2753
  }
 
2754
  @media screen and (max-width: 480px) {
2755
  div.wp-smush-super-smush-promo {
2756
  background: none;
102
  margin-top: -8px;
103
  }
104
 
105
+ .wpmud .toggle .toggle-checkbox {
106
+ display: inline-block;
107
+ height: 1px;
108
+ margin-left: -20px;
109
+ margin-right: 0;
110
+ opacity: 0;
111
+ width: 1px;
112
+ }
113
+
114
+ .wpmud .toggle .toggle-checkbox:focus {
115
+ border: none;
116
+
117
+ }
118
+
119
  .wpmud .toggle .toggle-checkbox:checked + .toggle-label:after {
120
  margin-left: 23px;
121
  }
181
  .smush-submit-note {
182
  color: #9B9B9B;
183
  float: left;
184
+ font-family: 'Roboto', sans-serif;
185
  font-size: 13px;
186
  line-height: 22px;
187
  margin-top: 10px;
193
  margin: 0;
194
  }
195
 
196
+ input#wp-smush-save-settings:hover,
197
+ input#wp-smush-save-settings:focus {
198
  background: #0A9BD6;
199
  }
200
 
250
  }
251
 
252
  /** Grid view button **/
253
+ /*.smush-wrap {*/
254
+ /*margin-left: 14%;*/
255
+ /*max-width: 60%;*/
256
+ /*}*/
257
 
258
  .currently-smushing .smush-status {
259
  color: #0074a2;
331
  cursor: default;
332
  }
333
 
334
+ label.setting.smush-stats .smush-wrap,
335
  .compat-field-wp_smush .smush-wrap {
336
  margin: 0 0 5px 0;
337
  max-width: 100%;
451
  border: 1px solid #CECECE;
452
  }
453
 
454
+ .attachment-details table.wp-smush-stats-holder td span {
455
+ float: none;
456
+ padding-top: 0;
457
+ }
458
+
459
  #ngg-listimages .column-7 {
460
  width: 300px;
461
  }
512
  }
513
 
514
  /*Media Modal Styling*/
515
+ label.setting.smush-stats .wp-smush-stats-holder tr,
516
  .compat-field-wp_smush .wp-smush-stats-holder tr {
517
  display: table-row;
518
  }
519
 
520
+ label.setting.smush-stats .wp-smush-stats-holder td,
521
  .compat-field-wp_smush .wp-smush-stats-holder td {
522
  padding: 8px 10px;
523
  word-wrap: break-word;
524
  }
525
 
526
+ label.setting.smush-stats a.wp-smush-action.wp-smush-title {
527
+ display: inline-block;
528
+ }
529
+
530
+ label.setting.smush-stats a.wp-smush-action.wp-smush-title span.stats-toggle {
531
+ float: none;
532
+ margin-right: 0;
533
+ }
534
+
535
+ label.setting.smush-stats .wp-smush-stats-holder {
536
+ padding: 2px 0;
537
+ }
538
+
539
+ label.setting.smush-stats .wp-smush-stats-holder th {
540
+ padding-top: 5px;
541
+ padding-right: 10px;
542
+ text-align: center;
543
+ }
544
+
545
+ label.setting.smush-stats span.value,
546
+ .media-sidebar td.smush-skipped span {
547
+ padding-top: 0;
548
+ }
549
+
550
+ label.setting.smush-stats button {
551
+ box-shadow: none;
552
+ padding: 0 10px 1px;
553
+ line-height: 26px;
554
+ text-transform: none;
555
+ }
556
+
557
+ label.setting.smush-stats button.wp-smush-send span {
558
+ color: #fff;
559
+ padding-top: 6px;
560
+ text-shadow: none;
561
+ }
562
+
563
+ .media-modal .media-sidebar label.setting.smush-stats button.wp-smush-send span {
564
+ /*padding-top: 0;*/
565
+ }
566
+
567
+ label.setting.smush-stats button.wp-smush-send[disabled] span {
568
+ color: #66c6e4;
569
+ }
570
+
571
+ label.setting.smush-stats div.wp-smush-progress span {
572
+ color: #14485F;
573
+ float: none;
574
+ font-size: 12px;
575
+ font-weight: bolder;
576
+ line-height: 15px;
577
+ min-height: 0;
578
+ padding-top: 0;
579
+ text-align: right;
580
+ }
581
+
582
+ .media-modal .media-sidebar label.setting.smush-stats div.wp-smush-progress span {
583
+ margin-top: 0;
584
+ padding-right: 0;
585
+ text-align: center;
586
+ }
587
+
588
  /** Help Tip **/
589
  .ui-tooltip-content {
590
  font-size: 12px;
908
  -webkit-font-smoothing: antialiased !important;
909
  }
910
 
911
+ .wpmud .dev-overlay.wp-smush-overlay .box .title {
912
+ margin-top: -30px;
913
+ }
914
+
915
  .wpmud .dev-overlay .back {
916
  background: rgba(51, 51, 51, 0.95);
917
  }
921
  }
922
 
923
  .wpmud .dev-overlay.small .box {
924
+ display: block;
925
  position: relative;
926
  margin: 30px auto;
927
  width: 100%;
930
  padding: 30px;
931
  }
932
 
933
+ .wpmud .dev-overlay.wp-smush-get-pro .box{
934
+ padding-bottom: 0;
935
+ }
936
+
937
+ .wpmud div.wp-smush-get-pro .title .button.smush-pro-link {
938
+ padding: 7px 16px;
939
+ font-size: 12px;
940
+ line-height: 16px;
941
+ font-family: "Roboto", sans-serif;
942
+ letter-spacing: -0.1px;
943
+ float: right;
944
+ margin-right: 26px;
945
+ }
946
+
947
+ .wpmud div.wp-smush-get-pro.dev-overlay .title div.close {
948
+ top: -2px;
949
+ }
950
+
951
+ .wpmud .dev-overlay.small.wp-smush-overlay .box:after {
952
  background: url(../images/smush-quicksetup.png) no-repeat 0 0;
953
  bottom: 0;
954
  content: "";
961
  width: 248px;
962
  }
963
 
964
+ .wpmud .dev-overlay.small.wp-smush-get-pro .box:after {
965
+ background: url(../images/dev-team.png) no-repeat 0 0;
966
+ background-position: center bottom;
967
+ background-size: 90%;
968
+ overflow: hidden;
969
+ bottom: 0;
970
+ content: '';
971
+ display: block;
972
+ height: 176px;
973
+ margin-top: 30px;
974
+ }
975
+
976
  .wpmud .dev-overlay .box .title {
977
  margin: -35px -30px 30px -30px;
978
  padding: 0 30px;
987
  padding-bottom: 180px;
988
  }
989
 
990
+ .wpmud .wp-smush-get-pro.dev-overlay .box .content {
991
+ padding-bottom: 0;
992
+ }
993
+
994
  .wpmud .wp-smush-welcome-message {
995
  color: #444;
996
  padding-bottom: 30px;
1014
  float: right;
1015
  }
1016
 
1017
+ .wpmud div.smush-quick-setup-settings div.submit-button-wrap button:hover,
1018
+ .wpmud div.smush-quick-setup-settings div.submit-button-wrap button:focus
1019
+ {
1020
  background-color: #0A9BD6 !important;
1021
  }
1022
 
1038
  padding: 5px 27px;
1039
  }
1040
 
1041
+ .wpmud .box button.skip-button.button-small:hover,
1042
+ .wpmud .box button.skip-button.button-small:focus {
1043
  background: #666666 !important;
1044
  }
1045
 
1104
 
1105
  .wp-smush-resmush-message,
1106
  .wp-smush-settings-updated,
1107
+ .wp-smush-re-check-message,
1108
+ .wp-smush-api-message {
1109
  border: none;
1110
  margin-bottom: 25px;
1111
  padding: 18px 50px;
1118
  text-decoration: underline;
1119
  }
1120
 
1121
+ .wp-smush-resmush-message .icon-fi-check-tick,
1122
+ .wp-smush-settings-updated .icon-fi-check-tick,
1123
+ .wp-smush-re-check-message .icon-fi-check-tick {
1124
+ font-size: 20px;
 
 
 
 
 
1125
  margin-right: 5px;
1126
  vertical-align: middle;
1127
  }
1128
 
1129
+ .wp-smush-resmush-message .icon-fi-close,
1130
+ .wp-smush-settings-updated .icon-fi-close,
1131
+ .wp-smush-re-check-message .icon-fi-close,
1132
+ .wp-smush-api-message .icon-fi-close {
1133
  cursor: pointer;
1134
+ color: #888888;
1135
  float: right;
1136
  font-size: 16px;
1137
+ margin-top: 4px;
1138
+ }
1139
+
1140
+ .wp-smush-resmush-message .icon-fi-close:before,
1141
+ .wp-smush-settings-updated .icon-fi-close:before,
1142
+ .wp-smush-re-check-message .icon-fi-close:before,
1143
+ .wp-smush-api-message .icon-fi-close:before {
1144
+ color: #666;
1145
  }
1146
 
1147
+ .wp-smush-all-done .icon-fi-check-tick {
1148
  display: inline-block;
1149
+ font-size: 20px;
1150
  margin-right: 10px;
1151
  margin-top: -3px;
1152
  vertical-align: middle;
1201
  opacity: 0.5;
1202
  }
1203
 
1204
+ .wpmud [class^="icon-"], [class*=" icon-"] {
1205
  line-height: 1.5;
1206
+ margin-right: 8px;
1207
  vertical-align: middle;
1208
  }
1209
 
1210
+ .wpmud .dismiss-recommendation i.icon-fi-cross-close {
1211
+ display: inline-block;
1212
+ margin-top: 1px;
1213
+ vertical-align: top;
1214
+ }
1215
+
1216
  .wp-smush-bulk-wrapper {
1217
  overflow: hidden;
1218
  }
1224
  div.wp-smush-dir-limit,
1225
  div.smush-s3-setup-error,
1226
  div.smush-s3-setup-message,
1227
+ div.wp-smush-s3support-alert,
1228
+ div.wp-smush-notice.wp-smush-api-message.warning{
1229
  background-color: #FFF5D5;
1230
  border: none;
1231
  color: #333333;
1234
  letter-spacing: -0.015em;
1235
  }
1236
 
1237
+ div.wp-smush-notice.wp-smush-dir-limit i.icon-fi-info {
1238
+ display: inline-block;
1239
+ font-size: 16px;
1240
+ margin-top: 3px;
1241
+ vertical-align: top;
1242
+ }
1243
+
1244
+ div.smush-s3-setup-message,
1245
+ div.wp-smush-notice.wp-smush-api-message.info {
1246
  background-color: #DFF6FA;
1247
  }
1248
 
1249
+ div.wp-smush-api-message.info i.icon-fi-info {
1250
+ font-size: 20px;
1251
+ }
1252
+
1253
+ div.wp-smush-api-message.info i.icon-fi-info:before {
1254
+ color: #17A8E3;
1255
+ }
1256
+
1257
  div.wp-smush-s3support-alert {
1258
  margin-left: 0;
1259
  margin-right: 0;
1261
 
1262
  div.wp-smush-s3support-alert span.notice-message {
1263
  display: inline-block;
1264
+ margin-right: 10px;
1265
  max-width: 96%;
1266
  }
1267
 
1268
+ div.wp-smush-s3support-alert .icon-fi-close {
1269
  cursor: pointer;
1270
  float: right;
1271
  line-height: 2;
1272
+ margin-right: 0;
1273
  }
1274
 
1275
  div.smush-s3-setup-error a {
1283
  background-color: #dff6fa;
1284
  }
1285
 
1286
+ div.wp-smush-notice .icon-fi-check-tick:before,
1287
+ div.wp-smush-all-done .icon-fi-check-tick:before,
1288
+ div.wp-smush-dir-all-done .icon-fi-check-tick:before {
 
1289
  color: #1ABC9C;
1290
  }
1291
 
1295
  text-decoration: underline;
1296
  }
1297
 
1298
+ div.wp-smush-dir-remaining .icon-fi-warning-alert:before,
1299
+ div.smush-s3-setup-error .icon-fi-warning-alert:before {
1300
  color: #FECF2F;
1301
  }
1302
 
1303
+ div.wp-smush-dir-limit .icon-fi-info:before {
1304
  color: #333;
1305
  }
1306
 
1308
  padding: 10px 50px;
1309
  }
1310
 
1311
+ .wpmud .bulk-smush-wrapper .wp-smush-remaining .icon-fi-warning-alert,
1312
+ .wp-smush-api-message .icon-fi-warning-alert{
1313
+ display: inline-block;
1314
  font-size: 20px;
1315
  margin-right: 8px;
1316
  line-height: 30px;
1317
  vertical-align: top;
1318
  }
1319
 
1320
+ .wpmud .bulk-smush-wrapper .wp-smush-remaining .icon-fi-warning-alert:before,
1321
+ .wp-smush-api-message .icon-fi-warning-alert:before {
1322
+ color: #fecf2f;
1323
+ }
1324
+
1325
  .wpmud .bulk-smush-wrapper .dev-icon img {
1326
  vertical-align: top;
1327
  }
1362
  padding: 20px 15px 20px 30px;
1363
  }
1364
 
1365
+ .wp-smush-progress-wrap i.icon-fi-loader {
1366
+ font-size: 20px;
1367
+ }
1368
+
1369
+ .wp-smush-progress-wrap i.icon-fi-loader:before {
1370
+ animation: spin 2s infinite linear;
1371
+ -webkit-animation: spin 2s infinite linear;
1372
+ display: inline-block;
1373
+ }
1374
+
1375
  .wp-smush-progress-wrap img {
1376
  vertical-align: middle;
1377
  }
1448
  padding: 10px;
1449
  }
1450
 
1451
+ .wpmud .smush-final-log .smush-error-message {
1452
+ color: #888888;
1453
+ font-size: 13px;
1454
+ line-height: 20px;
1455
+ }
1456
+
1457
  div.smush-cancel-button-wrapper {
1458
  text-align: center;
1459
  }
1594
  .wp-smush-stats.settings-desc,
1595
  .wp-smush-stats-human.settings-desc {
1596
  color: #888888;
1597
+ font-family: 'Roboto', sans-serif;
1598
  font-size: 13px;
1599
  line-height: 22px;
1600
  padding: 0;
1615
  line-height: 30px;
1616
  }
1617
 
 
 
 
 
1618
  .wpmud .wp-smush-stats-try-pro {
1619
  font-size: 12px;
1620
  font-weight: 500;
1627
  border-radius: 13px;
1628
  color: #1ABC9C;
1629
  padding: 4px 10px;
1630
+ white-space: nowrap;
1631
  }
1632
 
1633
  .wpmud .wp-smush-stats-try-pro:hover > a, .wpmud .wp-smush-stats-try-pro a:hover {
1665
  display: block;
1666
  }
1667
 
1668
+ .wpmud .dev-overlay {
1669
+ -webkit-font-smoothing: antialiased;
1670
+ }
1671
+
1672
+ .wpmud div.dev-overlay.wp-smush-get-pro .box div.title {
1673
+ margin-top: -30px;
1674
+ }
1675
+
1676
+ ul.smush-pro-features {
1677
+ margin-bottom: 30px;
1678
+ }
1679
+
1680
+ li.smush-pro-feature-row {
1681
+ margin-bottom: 20px;
1682
+ }
1683
+
1684
+ div.smush-pro-feature-title,
1685
+ div.smush-pro-feature-desc {
1686
+ padding-left: 30px;
1687
+ position: relative;
1688
+ }
1689
+
1690
+ div.smush-pro-feature-title {
1691
+ font-size: 15px;
1692
+ font-weight: 500;
1693
+ line-height: 30px;
1694
+ }
1695
+
1696
+ div.smush-pro-feature-desc {
1697
+ color: #888888;
1698
+ font-size: 13px;
1699
+ line-height: 22px;
1700
+ }
1701
+
1702
+ .wpmud .smush-pro-feature-title:before {
1703
+ content: '\5f';
1704
+ color: #17A8E3;
1705
+ left: 0;
1706
+ top: 55%;
1707
+ }
1708
+
1709
+ p.smush-pro-upsell-text {
1710
+ color: #666666;
1711
+ font-size: 15px;
1712
+ margin-bottom: 30px;
1713
+ text-align: center;
1714
+ }
1715
+
1716
+ div.smush-pro-link-wrap {
1717
+ text-align: center;
1718
+ }
1719
+
1720
+ .wpmud a.button.button-green.smush-pro-link {
1721
+ background-color: #1ABC9C;
1722
+ border-radius: 4px;
1723
+ box-shadow: none;
1724
+ color: #fff;
1725
+ }
1726
+
1727
+ .wpmud a.button.button-green.smush-pro-link:hover,
1728
+ .wpmud a.button.button-green.smush-pro-link:focus,
1729
+ .wpmud a.button.button-green.smush-pro-link:active {
1730
+ background-color: #17b394 !important;
1731
+ background-image: none;
1732
+ box-shadow: none;
1733
+ }
1734
+
1735
  .wp-smush-pro-cta {
1736
  overflow: hidden;
1737
  display: block;
1811
  text-shadow: none;
1812
  }
1813
 
1814
+ .media-sidebar label.smush-stats span.name {
1815
+ margin-top: 0.55em;
1816
+ }
1817
+
1818
+ .media-sidebar label.setting.smush-stats .smush-wrap.unsmushed {
1819
+ margin-top: 0.6em;
1820
+ }
1821
+
1822
  .compat-item .compat-field-wp_smush {
1823
  display: table-row;
1824
  }
1827
  width: 260px;
1828
  }
1829
 
1830
+ .smushit [tooltip],
1831
+ label.setting.smush-stats [tooltip],
1832
+ .compat-field-wp_smush [tooltip] {
1833
  position: relative;
1834
  overflow: visible;
1835
  }
1836
 
1837
+ .smushit [tooltip]:before,
1838
+ label.setting.smush-stats [tooltip]:before,
1839
+ .compat-field-wp_smush [tooltip]:before {
1840
  content: '';
1841
  position: absolute;
1842
  border: 5px solid transparent;
1851
  pointer-events: none;
1852
  }
1853
 
1854
+ .smushit [tooltip]:after,
1855
+ label.setting.smush-stats [tooltip]:after,
1856
+ .compat-field-wp_smush [tooltip]:after {
1857
  background: #0B2F3F;
1858
+ border-radius: 4px;
1859
  bottom: 100%;
1860
+ color: #FFF;
1861
+ content: attr(tooltip);
1862
+ font-size: 13px;
1863
+ font-weight: 400;
1864
  left: 50%;
1865
+ line-height: 20px;
1866
  margin-left: -100px;
1867
  margin-bottom: 5px;
 
 
 
 
1868
  opacity: 0;
1869
+ padding: 5px;
1870
+ pointer-events: none;
1871
+ position: absolute;
1872
+ width: 180px;
1873
+ text-align: center;
1874
  transition: margin .2s, opacity .2s, z-index .2s linear .2s;
1875
  white-space: pre-wrap;
1876
+ z-index: -1;
1877
  }
1878
 
1879
+ .smushit .smush-skipped [tooltip]:before,
1880
+ label.setting.smush-stats .smush-skipped [tooltip]:before,
1881
+ .compat-field-wp_smush .smush-skipped [tooltip]:before {
1882
  border-top-color: transparent;
1883
  border-left-color: #0B2F3F;
1884
  bottom: 0;
1885
  left: 0;
1886
  }
1887
 
1888
+ .smushit .smush-skipped [tooltip]:after,
1889
+ label.setting.smush-stats .smush-skipped [tooltip]:after,
1890
+ .compat-field-wp_smush .smush-skipped [tooltip]:after {
1891
  margin-left: 0;
1892
  left: -195px;
1893
  top: -35px;
1895
  margin-bottom: 5px;
1896
  }
1897
 
1898
+ label.setting.smush-stats .smush-skipped [tooltip]:after {
1899
+ top: -98px;
1900
+ }
1901
+
1902
+ div.media-sidebar label.setting.smush-stats .smush-skipped [tooltip]:after {
1903
+ left: -188px;
1904
+ padding-left: 10px;
1905
+ width: 170px;
1906
+ }
1907
+
1908
+ div.media-sidebar label.setting.smush-stats .smush-skipped [tooltip]:before {
1909
+ margin-left: -3px;
1910
+ }
1911
+
1912
+ .smushit [tooltip].tooltip-s:after,
1913
+ label.setting.smush-stats [tooltip].tooltip-s:after,
1914
+ .compat-field-wp_smush [tooltip].tooltip-s:after {
1915
  width: 150px;
1916
  margin-left: -75px;
1917
  }
1918
 
1919
+ .smushit [tooltip].tooltip-l:after,
1920
+ label.setting.smush-stats [tooltip].tooltip-l:after,
1921
+ .compat-field-wp_smush [tooltip].tooltip-l:after {
1922
  width: 280px;
1923
  margin-left: -140px;
1924
  }
1951
  margin-bottom: 0;
1952
  }
1953
 
1954
+ .smushit [tooltip]:hover:before,
1955
+ label.setting.smush-stats [tooltip]:hover:before,
1956
+ .compat-field-wp_smush [tooltip]:hover:before {
1957
  z-index: 1;
1958
  margin-bottom: 0;
1959
  opacity: 1;
1960
  transition: margin .2s, opacity .2s;
1961
  }
1962
 
1963
+ .smushit [tooltip]:hover:after,
1964
+ label.setting.smush-stats [tooltip]:hover:after,
1965
+ .compat-field-wp_smush [tooltip]:hover:after {
1966
  opacity: 1;
1967
  z-index: 1;
1968
  margin-bottom: 10px;
1971
 
1972
  .smushit .disabled[tooltip]:before,
1973
  .smushit .disabled[tooltip]:after,
1974
+ label.setting.smush-stats .disabled[tooltip]:before,
1975
+ label.setting.smush-stats .disabled[tooltip]:after,
1976
  .compat-field-wp_smush .disabled[tooltip]:before,
1977
  .compat-field-wp_smush .disabled[tooltip]:after {
1978
  display: none;
2058
  line-height: 22px;
2059
  }
2060
 
2061
+ .wpmud .wp-smush-image-size-list span#wp-smush-auto-desc {
2062
  color: #888888;
2063
  font-family: Roboto;
2064
  font-size: 13px;
2213
  font-weight: 400;
2214
  }
2215
 
2216
+ .wp-smush-share-button .icon-fi-social-twitter,
2217
+ .wp-smush-share-button .icon-fi-social-facebook {
2218
  margin-right: 12px;
2219
  }
2220
 
2221
+ .wp-smush-share-button .icon-fi-social-twitter:before,
2222
+ .wp-smush-share-button .icon-fi-social-facebook:before {
2223
+ color: #fff;
2224
+ display: inline-block;
2225
+ margin-top: -1px;
2226
+ vertical-align: top;
2227
+ }
2228
+
2229
  /** Override WP Footer Styling, Hide it on WPMU pages only, if we really need to **/
2230
  .wp-admin #wpfooter {
2231
  display: block;
2264
  width: 150px;
2265
  }
2266
 
2267
+ .wpmud .dev-overlay.wp-smush-list-dialog {
2268
+ left: 0;
2269
+ max-width: none;
2270
+ margin: 0;
2271
+ top: 0;
2272
+ z-index: 9999;
2273
+ }
2274
+
2275
  .wpmud .dev-overlay.wp-smush-list-dialog .title h3 {
2276
  padding: 15px 0;
2277
  }
2280
  margin-top: 80px;
2281
  }
2282
 
 
 
 
 
 
 
2283
  .wp-smush-select-dir {
2284
  float: right;
2285
  margin-top: 20px;
2416
  margin: 5px 0;
2417
  }
2418
 
2419
+ li.wp-smush-image-ul div.image-list-wrapper {
2420
+ display: flex;
2421
+ justify-content: space-between;
2422
+ }
2423
+
2424
  .wp-smush-image-list-inner {
2425
  display: none;
2426
  max-height: 0;
2444
 
2445
  li.wp-smush-image-ul span.wp-smush-li-path {
2446
  background: url("../images/folder-closed.svg") no-repeat;
2447
+ background-position-y: 6px;
2448
+ line-height: 2;
2449
+ padding: 0 30px;
2450
+ max-width: 87%;
2451
  }
2452
 
2453
  li.wp-smush-image-ul.in-progress span.wp-smush-li-path {
2470
  margin-right: 11px;
2471
  }
2472
 
2473
+ li.wp-smush-image-ul.in-progress span.spinner {
2474
+ margin-top: 5px;
2475
+ }
2476
+
2477
  li.wp-smush-image-ul.complete span.wp-smush-li-path:before,
2478
  li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2479
  box-shadow: none;
2480
  color: #1ABC9C;
2481
+ content: '\5f';
2482
  font-family: 'WPMU-DEV-App-Icons';
2483
  font-size: 20px;
2484
  font-style: normal;
2487
  height: 22px;
2488
  left: 0;
2489
  line-height: 22px;
2490
+ margin-top: -11px;
2491
  opacity: 1;
2492
  position: absolute;
2493
  speak: none;
2503
 
2504
  li.wp-smush-image-ul.partial span.wp-smush-li-path:before {
2505
  color: #ffd000;
2506
+ content: '\21';
2507
+ font-size: 20px;
 
2508
  margin-left: 1px;
2509
  }
2510
 
2511
  .wp-smush-image-count {
2512
  background: #f2f2f2;
2513
  border-radius: 20px;
2514
+ display: inline-block;
2515
  margin-left: 10px;
2516
+ padding: 3px 10px;
2517
  vertical-align: middle;
2518
  }
2519
 
2527
 
2528
  }
2529
 
2530
+ div.wp-smush-scan-result div.wp-smush-notice .icon-fi-check-tick,
2531
+ div.wp-smush-scan-result div.wp-smush-notice .icon-fi-warning-alert,
2532
+ div.smush-s3-setup-error i.icon-fi-warning-alert,
2533
+ div.smush-s3-setup-message .icon-fi-check-tick {
2534
  display: inline-block;
2535
+ font-size: 20px;
 
2536
  margin-top: -3px;
2537
  vertical-align: middle;
2538
  }
2539
 
2540
+ div.smush-s3-setup-error i. icon-fi-warning-alert,
2541
+ div.smush-s3-setup-message .icon-fi-check-tick {
2542
+ margin-top: 3px;
2543
  vertical-align: top;
2544
  }
2545
 
2546
+ div.smush-s3-setup-error i. icon-fi-warning-alert {
2547
  margin-top: -2px;
2548
  }
2549
 
2550
+ div.smush-s3-setup-message .icon-fi-check-tick:before {
2551
  color: #17A8E3;
2552
  }
2553
 
2559
  margin: 20px 0;
2560
  }
2561
 
2562
+ div.wp-smush-scan-result li.wp-smush-image-ul hr {
2563
+ margin: 17px 0;
2564
+ }
2565
+
2566
  div.wp-smush-scan-result div.content {
2567
  overflow: hidden;
2568
  width: 100%;
2606
  background-color: #AEAEAE !important;
2607
  }
2608
 
2609
+ .wpmud button.wp-smush-browse:hover,
2610
+ .wpmud button.wp-smush-browse:focus {
2611
  background-color: #9E9E9E !important;
2612
  }
2613
 
2672
  vertical-align: middle;
2673
  }
2674
 
2675
+ .wp-smush-image-ele-status:after,
2676
+ .smush-pro-feature-title:before {
2677
  box-shadow: none;
2678
  content: url("../images/image.svg");
2679
  font-family: 'WPMU-DEV-App-Icons';
2703
 
2704
  /** Optimised Image **/
2705
  li.wp-smush-image-ele.optimised .wp-smush-image-ele-status:after {
2706
+ content: '\5f';
2707
  color: #1ABC9C;
2708
  }
2709
 
2711
  color: #ffd000;
2712
  content: '\f06a';
2713
  font-family: 'FontAwesomeWdv';
2714
+ margin-top: -10px;
2715
  }
2716
 
2717
  div.wp-smush-dir-notice {
2723
  font-weight: 500;
2724
  }
2725
 
2726
+ div.wp-smush-dir-notice .icon-fi-warning-alert {
2727
  margin-right: 10px;
2728
  vertical-align: middle;
2729
  }
2730
 
2731
+ div.wp-smush-dir-notice .icon-fi-warning-alert:before {
2732
  color: #ffd000;
2733
  content: '\f06a';
2734
  font-family: 'FontAwesomeWdv';
2735
+ font-size: 20px;
2736
  margin-left: 1px;
2737
  margin-top: 4px;
2738
  vertical-align: middle;
2739
  }
2740
 
2741
  div.wp-smush-dir-progress-wrap {
2742
+ display: flex;
 
2743
  font-weight: 600;
2744
  padding-top: 4px;
 
2745
  }
2746
 
2747
  div.wp-smush-dir-progress-wrap.hidden {
2749
  }
2750
 
2751
  span.smush-percent {
 
2752
  text-align: right;
2753
  width: 34px;
2754
  }
2758
  -moz-border-radius: 10px;
2759
  -webkit-border-radius: 10px;
2760
  border-radius: 10px;
 
2761
  height: 10px;
2762
  margin-left: 10px;
2763
+ margin-top: 4px;
2764
  position: relative;
2765
  width: 100px;
2766
  }
2927
  }
2928
 
2929
  @media only screen and (max-width: 960px) {
2930
+ .wpmud .dev-overlay.wp-smush-list-dialog,
2931
+ .wpmud .dev-overlay.wp-smush-get-pro {
2932
  left: 35px;
2933
  }
2934
  }
2950
  }
2951
 
2952
  @media only screen and (max-width: 782px) {
2953
+ .wpmud .dev-overlay.wp-smush-list-dialog,
2954
+ .wpmud .dev-overlay.wp-smush-get-pro {
2955
  left: 0;
2956
  }
2957
  }
3062
  width: 100%;
3063
  }
3064
  }
3065
+
3066
  @media screen and (max-width: 480px) {
3067
  div.wp-smush-super-smush-promo {
3068
  background: none;
assets/js/media.js ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Adds a Smush Now button and displays stats in Media Attachment Details Screen
3
+ *
4
+ *
5
+ */
6
+ (function( $, _ ) {
7
+
8
+ // Local reference to the WordPress media namespace.
9
+ var smush_media = wp.media;
10
+
11
+ if( 'undefined' != typeof smush_media.view &&
12
+ 'undefined' != typeof smush_media.view.Attachment.Details.TwoColumn ) {
13
+ // Local instance of the Attachment Details TwoColumn used in the edit attachment modal view
14
+ var smushMediaTwoColumn = smush_media.view.Attachment.Details.TwoColumn;
15
+
16
+ /**
17
+ * Add Smush details to attachment.
18
+ */
19
+ smush_media.view.Attachment.Details.TwoColumn = smushMediaTwoColumn.extend({
20
+
21
+ render: function () {
22
+ // Get Smush status for the image
23
+ this.getSmushDetails(this.model.get('id'));
24
+ },
25
+
26
+ getSmushDetails: function (id) {
27
+ wp.ajax.send('smush_get_attachment_details', {
28
+ data: {
29
+ _nonce: smush_vars.nonce.get_smush_status,
30
+ id: id
31
+ }
32
+ }).done(_.bind(this.renderSmush, this));
33
+ },
34
+
35
+ renderSmush: function (response) {
36
+ // Render parent media.view.Attachment.Details
37
+ smushMediaTwoColumn.prototype.render.apply(this);
38
+
39
+ this.renderSmushStatus(response);
40
+ },
41
+
42
+ renderSmushStatus: function (response) {
43
+ if (!response) {
44
+ return;
45
+ }
46
+ var $detailsHtml = this.$el.find('.attachment-compat');
47
+ var html = this.generateHTML(response);
48
+ $detailsHtml.append(html);
49
+ },
50
+
51
+ generateHTML: function (response) {
52
+ var template = _.template('<label class="setting smush-stats" data-setting="description"><span class="name"><%= label %></span><span class="value"><%= value %></span></label>');
53
+ var html = template({
54
+ label: smush_vars.strings['stats_label'],
55
+ value: response
56
+ });
57
+
58
+ return html;
59
+ }
60
+ });
61
+ }
62
+
63
+ // Local instance of the Attachment Details TwoColumn used in the edit attachment modal view
64
+ var smushAttachmentDetails = smush_media.view.Attachment.Details;
65
+
66
+ /**
67
+ * Add Smush details to attachment.
68
+ */
69
+ smush_media.view.Attachment.Details = smushAttachmentDetails.extend( {
70
+
71
+ render: function() {
72
+ // Get Smush status for the image
73
+ this.getSmushDetails( this.model.get('id') );
74
+ },
75
+
76
+ getSmushDetails: function( id ) {
77
+ wp.ajax.send( 'smush_get_attachment_details', {
78
+ data: {
79
+ _nonce: smush_vars.nonce.get_smush_status,
80
+ id: id
81
+ }
82
+ } ).done( _.bind( this.renderSmush, this ) );
83
+ },
84
+
85
+ renderSmush: function( response ) {
86
+ // Render parent media.view.Settings.AttachmentDisplay
87
+ smushAttachmentDetails.prototype.render.apply( this );
88
+
89
+ this.renderSmushStatus( response );
90
+ },
91
+
92
+ renderSmushStatus: function( response ) {
93
+ if ( ! response ) {
94
+ return;
95
+ }
96
+ var $detailsHtml = this.$el.parent().find('.compat-item');
97
+ var html = this.generateHTML( response );
98
+ $detailsHtml.append( html );
99
+ },
100
+
101
+ generateHTML: function (response) {
102
+ var template = _.template('<label class="setting smush-stats" data-setting="description"><span class="name"><%= label %></span><span class="value"><%= value %></span></label>');
103
+ var html = template({
104
+ label: smush_vars.strings['stats_label'],
105
+ value: response
106
+ });
107
+
108
+ return html;
109
+ }
110
+ } );
111
+
112
+ })( jQuery, _ );
assets/js/notice.js CHANGED
@@ -54,7 +54,7 @@ jQuery(function () {
54
  });
55
 
56
  // Dismiss S3 support alert.
57
- jQuery('div.wp-smush-s3support-alert').on('click', '.dev-icon-cross', function (e) {
58
  el_notice = jQuery(this);
59
  remove_notice();
60
  send_dismiss_request( 'dismiss_s3support_alert' );
54
  });
55
 
56
  // Dismiss S3 support alert.
57
+ jQuery('div.wp-smush-s3support-alert').on('click', '.icon-fi-close', function (e) {
58
  el_notice = jQuery(this);
59
  remove_notice();
60
  send_dismiss_request( 'dismiss_s3support_alert' );
assets/js/wp-smushit-admin.js CHANGED
@@ -33,7 +33,7 @@ var membership_validity = function (data) {
33
  var member_validity_notice = jQuery('#wp-smush-invalid-member');
34
 
35
  //Check for Membership warning
36
- if ('undefined' != typeof ( data.show_warning ) && member_validity_notice.length > 0) {
37
  if (data.show_warning) {
38
  member_validity_notice.show();
39
  } else {
@@ -65,6 +65,23 @@ var remove_element = function (el, timeout) {
65
  };
66
 
67
  jQuery(function ($) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  var smushAddParams = function (url, data) {
69
  if (!$.isEmptyObject(data)) {
70
  url += ( url.indexOf('?') >= 0 ? '&' : '?' ) + $.param(data);
@@ -167,6 +184,13 @@ jQuery(function ($) {
167
 
168
  //Remove any Global Notices if there
169
  $('.wp-smush-notice.wp-smush-resmush-message').remove();
 
 
 
 
 
 
 
170
  };
171
 
172
  this.single_start = function () {
@@ -232,6 +256,44 @@ jQuery(function ($) {
232
 
233
  };
234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  /** After the Bulk Smushing has been Finished **/
236
  this.bulk_done = function () {
237
  if (!this.is_bulk) return;
@@ -300,7 +362,7 @@ jQuery(function ($) {
300
 
301
  //Update localized stats
302
  if (_res && ( 'undefined' != typeof _res.data || 'undefined' != typeof _res.data.stats )) {
303
- update_localized_stats( _res.data.stats, this.smush_type );
304
  }
305
 
306
  if (!this.is_bulk_resmush) {
@@ -327,16 +389,18 @@ jQuery(function ($) {
327
  //handle progress for normal bulk smush
328
  //Set Progress Bar width
329
  if ('undefined' !== typeof self.ids && 'undefined' !== typeof wp_smushit_data.count_total && wp_smushit_data.count_total > 0) {
330
- progress = ( ( wp_smushit_data.count_total - self.ids.length ) / wp_smushit_data.count_total ) * 100;
331
  }
332
  }
333
 
334
  //Show Bulk Wrapper and Smush Notice
335
  if (self.ids.length == 0) {
336
- //Hide the bulk wrapper
 
 
 
 
337
  $('.wp-smush-bulk-wrapper').hide();
338
- //Show All done notice
339
- $('.wp-smush-notice.wp-smush-all-done, .wp-smush-pagespeed-recommendation').show();
340
  }
341
 
342
  //Update remaining count
@@ -404,22 +468,44 @@ jQuery(function ($) {
404
  .error(function () {
405
  self.increment_errors(self.current_id);
406
  }).done(function (res) {
407
- //Increase the error count if any
408
  if (typeof res.success === "undefined" || ( typeof res.success !== "undefined" && typeof res.success.data !== "undefined" && res.success === false && res.data.error !== 'bulk_request_image_limit_exceeded' )) {
409
  self.increment_errors(self.current_id);
410
  }
411
  //If no response or success is false, do not process further
412
- if (typeof res == 'undefined' || !res || !res.success) {
413
- if ('undefined' !== typeof res && 'undefined' !== typeof res.data && typeof res.data.error_msg !== 'undefined') {
414
- //Print the error on screen
415
- self.$log.append(res.data.error_msg);
416
- self.$log.removeClass('hidden');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  }
418
  }
419
 
420
  //Check whether to show the warning notice or not
421
  membership_validity(res.data);
422
 
 
423
  if (typeof res.data !== "undefined" && res.data.error == 'bulk_request_image_limit_exceeded' && !self.is_resolved()) {
424
  //Add a data attribute to the smush button, to stop sending ajax
425
  self.$button.attr('continue_smush', false);
@@ -496,6 +582,9 @@ jQuery(function ($) {
496
  $('.wp-smush-cancel-bulk').on('click', function () {
497
  //Add a data attribute to the smush button, to stop sending ajax
498
  self.$button.attr('continue_smush', false);
 
 
 
499
 
500
  self.request.abort();
501
  self.enable_button();
@@ -608,10 +697,16 @@ jQuery(function ($) {
608
  //Hide stats
609
  $('.smush-stats-wrapper').hide();
610
 
 
 
 
 
 
611
  //Get the image ID and nonce
612
  var params = {
613
  action: smush_action,
614
  attachment_id: current_button.data('id'),
 
615
  _nonce: current_button.data('nonce')
616
  };
617
 
@@ -652,11 +747,11 @@ jQuery(function ($) {
652
  var validate_resize_settings = function (wrapper_div, width_only, height_only) {
653
  var resize_checkbox = wrapper_div.parent().find('#wp-smush-resize, #wp-smush-resize-quick-setup');
654
  if (!height_only) {
655
- var width_input = wrapper_div.find('#wp-smush-resize_width');
656
  var width_error_note = wrapper_div.find('.wp-smush-size-info.wp-smush-update-width');
657
  }
658
  if (!width_only) {
659
- var height_input = wrapper_div.find('#wp-smush-resize_height');
660
  var height_error_note = wrapper_div.find('.wp-smush-size-info.wp-smush-update-height');
661
  }
662
 
@@ -720,16 +815,16 @@ jQuery(function ($) {
720
  */
721
  var formatBytes = function (a, b) {
722
  var thresh = 1024;
723
- if(Math.abs(a) < thresh) {
724
  return a + ' B';
725
  }
726
- var units = ['KB','MB','GB','TB','PB'];
727
  var u = -1;
728
  do {
729
  a /= thresh;
730
  ++u;
731
- } while(Math.abs(a) >= thresh && u < units.length - 1);
732
- return a.toFixed(b)+' '+units[u];
733
  };
734
 
735
 
@@ -825,7 +920,7 @@ jQuery(function ($) {
825
  }
826
 
827
  var smush_percent = ( wp_smushit_data.count_smushed / wp_smushit_data.count_total ) * 100;
828
- smush_percent = precise_round( smush_percent, 1 );
829
 
830
  //Update it in stats bar
831
  $('.wp-smush-images-percent').html(smush_percent);
@@ -856,7 +951,7 @@ jQuery(function ($) {
856
  $('.wp-smush-page-header').after(r.data.notice);
857
  }
858
  //Hide errors
859
- $('.smush-final-log').hide();
860
 
861
  //Hide Super Smush notice if it's enabled in media settings
862
  if ('undefined' != typeof r.data.super_smush && r.data.super_smush) {
@@ -940,7 +1035,7 @@ jQuery(function ($) {
940
 
941
  for (i = 0; i < acc.length; i++) {
942
  acc[i].onclick = function () {
943
- var parent = $(this).parent();
944
  if (parent.hasClass('active')) {
945
  parent.removeClass('active');
946
  parent.find('.wp-smush-image-list-inner').removeClass("show");
@@ -960,9 +1055,9 @@ jQuery(function ($) {
960
  * @returns {boolean}
961
  *
962
  */
963
- var is_last_element = function(parent) {
964
  var elements = parent.find('li.wp-smush-image-ele:not(.optimised,.error)');
965
- if( elements.length <= 0 ) {
966
  return true;
967
  }
968
  return false;
@@ -990,6 +1085,7 @@ jQuery(function ($) {
990
  var total = child.length;
991
  var smushed = child.filter('.optimised').length;
992
  var smush_progress = progress_wrap.find('.wp-smush-dir-progress');
 
993
  if (smushed > 0 && total > 0) {
994
  var percent = ( smushed / total ) * 100;
995
  percent = precise_round(percent, 1);
@@ -1012,11 +1108,11 @@ jQuery(function ($) {
1012
  if (is_last_element(parent)) {
1013
  if (smushed < total) {
1014
  var unsmushed = total - smushed;
1015
- var message = '<div class="wp-smush-dir-notice"><i class="dev-icon wdv-icon wdv-icon-fw wdv-icon-exclamation-sign"></i>' + unsmushed + ' ' + ( 1 == unsmushed ? wp_smush_msgs.unfinished_smush_single : wp_smush_msgs.unfinished_smush ) + '</div>';
1016
 
1017
  //If the notice is already displayed, remove it
1018
  var notice = parent.find('div.wp-smush-dir-notice');
1019
- if( notice.length ) {
1020
  notice.remove();
1021
  }
1022
 
@@ -1050,7 +1146,7 @@ jQuery(function ($) {
1050
  */
1051
  var add_dir_browser_button = function () {
1052
  //Get the content div length, if less than 1500, Skip
1053
- if( $('div.wp-smush-scan-result div.content').height() < 1500 || $('div.dir-smush-button-wrap.top').length >= 1 ) {
1054
  return;
1055
  }
1056
 
@@ -1059,9 +1155,9 @@ jQuery(function ($) {
1059
  $('div.wp-smush-scan-result div.content').prepend(choose_button);
1060
  };
1061
 
1062
- var add_smush_button = function() {
1063
  //Get the content div length, if less than 1500, Skip
1064
- if( $('div.wp-smush-scan-result div.content').height() < 1500 || $('div.wp-smush-all-button-wrap.top').length >= 1 ) {
1065
  return;
1066
  }
1067
 
@@ -1079,18 +1175,18 @@ jQuery(function ($) {
1079
  * smush_limit - If Free users exceeded limit
1080
  *
1081
  */
1082
- var add_smush_dir_notice = function ( notice_type ) {
1083
  //Get the content div length, if less than 1500, Skip
1084
- if( $('div.wp-smush-scan-result div.content').height() < 1500 || $('div.wp-smush-scan-result div.wp-smush-notice.top').length >= 1 ) {
1085
  return;
1086
  }
1087
  var notice = '';
1088
  //Clone and append the notice
1089
- if( 'all_done' == notice_type ) {
1090
  notice = $('div.wp-smush-notice.wp-smush-dir-all-done').clone();
1091
- }else if( 'smush_limit' == notice_type ){
1092
  notice = $('div.wp-smush-notice.wp-smush-dir-limit').clone();
1093
- }else{
1094
  notice = $('div.wp-smush-notice.wp-smush-dir-remaining').clone();
1095
  }
1096
 
@@ -1098,14 +1194,14 @@ jQuery(function ($) {
1098
  notice.addClass('top');
1099
 
1100
  //Append the notice
1101
- $('div.wp-smush-scan-result div.dir-smush-button-wrap').after( notice );
1102
  };
1103
 
1104
- var update_smush_progress = function() {
1105
  var in_progress_path = $('ul.wp-smush-image-list li.in-progress');
1106
  in_progress_path.removeClass('in-progress active');
1107
- if( in_progress_path.length > 0 ) {
1108
- in_progress_path.each( function( index, ele ) {
1109
  if ($(ele).hasClass('wp-smush-image-ul')) {
1110
  //Remove Spinner
1111
  $(ele).find('span.spinner').remove();
@@ -1119,14 +1215,14 @@ jQuery(function ($) {
1119
  var error = in_progress_ele.filter('.error').length;
1120
  //if all the elements are optimised
1121
  if (optimised == in_progress_ele.length) {
1122
- $( ele ).addClass('complete');
1123
  } else if (0 < optimised || 0 < error) {
1124
  //If there are images that needs to be smushed, add the class partial
1125
- $( ele ).addClass('partial');
1126
  }
1127
  }
1128
 
1129
- }else{
1130
  //Remove spinner for the element
1131
  $(ele).find('span.spinner').remove();
1132
  }
@@ -1140,18 +1236,18 @@ jQuery(function ($) {
1140
  * For non-premium users, show expected avarage savings based
1141
  * on the free version savings.
1142
  */
1143
- var set_pro_savings = function() {
1144
 
1145
  // Default values.
1146
  var savings = wp_smushit_data.savings_percent > 0 ? wp_smushit_data.savings_percent : 0;
1147
  var savings_bytes = wp_smushit_data.savings_bytes > 0 ? wp_smushit_data.savings_bytes : 0;
1148
  var orig_diff = 2.22058824;
1149
- if ( savings > 49 ) {
1150
  var orig_diff = 1.22054412;
1151
  }
1152
  //Calculate Pro savings
1153
- if( savings > 0 ) {
1154
- savings = orig_diff * savings;
1155
  savings_bytes = orig_diff * savings_bytes;
1156
  }
1157
 
@@ -1168,7 +1264,7 @@ jQuery(function ($) {
1168
  * @param image_stats
1169
  *
1170
  */
1171
- var update_localized_stats = function (image_stats, type ) {
1172
  //Increase the smush count
1173
  if ('undefined' == typeof wp_smushit_data) {
1174
  return;
@@ -1193,11 +1289,11 @@ jQuery(function ($) {
1193
  wp_smushit_data.count_resize = 'undefined' != typeof image_stats.savings_resize.bytes ? parseInt(wp_smushit_data.count_resize) + 1 : wp_smushit_data.count_resize;
1194
 
1195
  //Add to Conversion Savings
1196
- wp_smushit_data.savings_conversion = 'undefined' != typeof image_stats.savings_conversion && 'undefined' != typeof image_stats.savings_conversion.bytes ? parseInt(wp_smushit_data.savings_conversion) + parseInt(image_stats.savings_conversion.bytes ) : parseInt(wp_smushit_data.savings_conversion);
1197
- } else if( 'directory_smush' == type ) {
1198
  //Increase smushed image count
1199
  wp_smushit_data.count_images = parseInt(wp_smushit_data.count_images) + 1;
1200
- }else if( 'nextgen' == type ) {
1201
  wp_smushit_data.count_smushed = parseInt(wp_smushit_data.count_smushed) + 1;
1202
  wp_smushit_data.count_supersmushed = parseInt(wp_smushit_data.count_supersmushed) + 1;
1203
 
@@ -1212,13 +1308,13 @@ jQuery(function ($) {
1212
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.size_after) : parseInt(wp_smushit_data.size_after);
1213
  }
1214
  //Add stats for resizing
1215
- if( 'undefined' != typeof image_stats.savings_resize ) {
1216
  //Update savings
1217
  wp_smushit_data.size_before = 'undefined' != typeof image_stats.savings_resize.size_before ? parseInt(wp_smushit_data.size_before) + parseInt(image_stats.savings_resize.size_before) : parseInt(wp_smushit_data.size_before);
1218
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.savings_resize.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.savings_resize.size_after) : parseInt(wp_smushit_data.size_after);
1219
  }
1220
  //Add stats for Conversion
1221
- if( 'undefined' != typeof image_stats.savings_conversion ) {
1222
  //Update savings
1223
  wp_smushit_data.size_before = 'undefined' != typeof image_stats.savings_conversion.size_before ? parseInt(wp_smushit_data.size_before) + parseInt(image_stats.savings_conversion.size_before) : parseInt(wp_smushit_data.size_before);
1224
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.savings_conversion.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.savings_conversion.size_after) : parseInt(wp_smushit_data.size_after);
@@ -1244,7 +1340,7 @@ jQuery(function ($) {
1244
  $('.wp-smush-savings .wp-smush-stats-percent').html(wp_smushit_data.savings_percent);
1245
 
1246
  //Update Savings in share message
1247
- $('span.smush-share-savings').html( formatBytes(wp_smushit_data.savings_bytes, 1) );
1248
 
1249
  //Update Smush percent
1250
  wp_smushit_data.smush_percent = precise_round(( parseInt(wp_smushit_data.count_smushed) / parseInt(wp_smushit_data.count_total) ) * 100, 1);
@@ -1262,13 +1358,13 @@ jQuery(function ($) {
1262
  $('span.wp-smush-total-optimised').html(wp_smushit_data.count_images);
1263
 
1264
  //Update image count in share message
1265
- $('span.smush-share-image-count').html( wp_smushit_data.count_images );
1266
 
1267
  //Update Resize image count
1268
- $('div.wp-smush-count-resize-total span.wp-smush-total-optimised').html( wp_smushit_data.count_resize );
1269
 
1270
  //Update Attachment image count
1271
- $('div.wp-smush-count-attachment-total span.wp-smush-total-optimised').html( wp_smushit_data.count_smushed );
1272
 
1273
  //Update image count in share message
1274
 
@@ -1290,7 +1386,7 @@ jQuery(function ($) {
1290
  var smush_resize_savings = $('.smush-resize-savings');
1291
  if (smush_resize_savings.length > 0 && 'undefined' != typeof ( wp_smushit_data.savings_resize ) && wp_smushit_data.savings_resize != '') {
1292
  // Get the resize savings in number.
1293
- var savings_value = parseInt(wp_smushit_data.savings_resize );
1294
  var resize_savings = smush_resize_savings.find('.wp-smush-stats');
1295
  // Replace only if value is grater than 0.
1296
  if (savings_value > 0 && resize_savings.length > 0) {
@@ -1323,7 +1419,7 @@ jQuery(function ($) {
1323
  /**
1324
  * Update the progress and show notice when smush completes
1325
  */
1326
- var directory_smush_finished = function( notice_type ) {
1327
  //If there are no images left
1328
  $('div.wp-smush-all-button-wrap span.spinner').remove();
1329
  $('button.wp-smush-pause').hide().attr('disabled', 'disabled');
@@ -1344,7 +1440,7 @@ jQuery(function ($) {
1344
  //Clone and add Smush button
1345
  add_smush_button();
1346
 
1347
- if( '' == notice_type ) {
1348
  //Get the Total and Optimised image count
1349
  var image_ele = $('li.wp-smush-image-ele');
1350
  var total = image_ele.length;
@@ -1373,7 +1469,7 @@ jQuery(function ($) {
1373
  //Show notice on top if required
1374
  add_smush_dir_notice('all_done');
1375
  }
1376
- }else{
1377
  //Show Bulk Limit Notice
1378
  $('.wp-smush-notice.wp-smush-dir-limit').show();
1379
  //Show notice on top if required
@@ -1415,7 +1511,7 @@ jQuery(function ($) {
1415
  }
1416
 
1417
  //If all the elements are optimised, No need to send ajax request
1418
- if( first_child.length == 0 ) {
1419
  directory_smush_finished('');
1420
  return;
1421
  }
@@ -1424,7 +1520,7 @@ jQuery(function ($) {
1424
  var param = {
1425
  action: 'optimise',
1426
  image_id: first_child.attr('id'),
1427
- get_stats: unprocessed_child.length > 1 ? 0: 1,
1428
  nonce: $('#wp-smush-all').val()
1429
  };
1430
 
@@ -1434,7 +1530,7 @@ jQuery(function ($) {
1434
  //Check, if limit is exceeded for free version
1435
  if (typeof res.data !== "undefined" && res.data.error == 'dir_smush_limit_exceeded') {
1436
  //Show error, Bulk Smush limit exceeded
1437
- directory_smush_finished( 'wp-smush-dir-limit' );
1438
  return;
1439
  }
1440
 
@@ -1465,7 +1561,7 @@ jQuery(function ($) {
1465
  // Directory stats section.
1466
  var smush_dir_savings = $('div.smush-dir-savings');
1467
  var stats_wrapper = smush_dir_savings.find('span.wp-smush-stats');
1468
- if( stats_wrapper.hasClass('float-l') ) {
1469
  //Right float the stats
1470
  stats_wrapper.removeClass('float-l').addClass('float-r');
1471
  }
@@ -1493,14 +1589,14 @@ jQuery(function ($) {
1493
  //@todo: Fixed stats UI
1494
  if ('undefined' != typeof res.data.total) {
1495
  //Update localized stats, Need to modify function to not increase count, and just update image count, and savings
1496
- update_localized_stats( res.data.image, 'directory_smush' );
1497
  // Update stats.
1498
  update_stats();
1499
  }
1500
  }
1501
 
1502
  //If user haven't paused the Smushing
1503
- if ( 1 == $('input[name="wp-smush-continue-ajax"]').val() ) {
1504
  //Loop
1505
  smush_all(false);
1506
  } else {
@@ -1570,7 +1666,7 @@ jQuery(function ($) {
1570
  var c_stats = stats.combined_stats;
1571
 
1572
  var smush_percent = ( c_stats.smushed / c_stats.total_count ) * 100;
1573
- smush_percent = precise_round( smush_percent, 1 );
1574
 
1575
  //Smushed Percent
1576
  if (smush_percent) {
@@ -1590,11 +1686,20 @@ jQuery(function ($) {
1590
  }
1591
  };
1592
 
 
 
 
 
 
 
 
 
 
1593
  //Remove span tag from URL
1594
  function removeSpan(url) {
1595
  var url = url.slice(url.indexOf('?') + 1).split('&');
1596
  for (var i = 0; i < url.length; i++) {
1597
- var urlparam = decodeURI( url[i] ).split(/=(.+)/)[1];
1598
  return urlparam.replace(/<(?:.|\n)*?>/gm, '');
1599
  }
1600
  }
@@ -1709,7 +1814,7 @@ jQuery(function ($) {
1709
  });
1710
 
1711
  //Remove Notice
1712
- $('body').on('click', '.wp-smush-notice .dev-icon-cross', function (e) {
1713
  e.preventDefault();
1714
  var $el = $(this).parent();
1715
  remove_element($el);
@@ -1811,8 +1916,8 @@ jQuery(function ($) {
1811
  container.find('.wp-smush-all').attr('data-smush', 'skip_resmush');
1812
 
1813
  //Update Smushed count
1814
- wp_smushit_data.count_smushed = parseInt( wp_smushit_data.count_smushed ) + wp_smushit_data.resmush.length;
1815
- wp_smushit_data.count_supersmushed = parseInt( wp_smushit_data.count_supersmushed ) + wp_smushit_data.resmush.length;
1816
 
1817
  //Update Stats
1818
  if (wp_smushit_data.count_smushed == wp_smushit_data.count_total) {
@@ -1833,7 +1938,7 @@ jQuery(function ($) {
1833
  var smushed_count = 'undefined' != typeof wp_smushit_data.count_smushed ? wp_smushit_data.count_smushed : 0;
1834
 
1835
  var smush_percent = ( smushed_count / wp_smushit_data.count_total ) * 100;
1836
- smush_percent = precise_round( smush_percent, 1 );
1837
 
1838
  $('.wp-smush-images-percent').html(smush_percent);
1839
 
@@ -1857,7 +1962,7 @@ jQuery(function ($) {
1857
  //Delete resmush list, @todo: update stats from the ajax response
1858
  $.post(ajaxurl, params, function (res) {
1859
  //Remove the whole li element on success
1860
- if (res.success && 'undefined' != typeof res.data.stats ) {
1861
  var stats = res.data.stats;
1862
  //Update wp_smushit_data ( Smushed count, Smushed Percent, Image count, Super smush count, resize savings, conversion savings )
1863
  if ('undefinied' != typeof wp_smushit_data) {
@@ -1866,6 +1971,13 @@ jQuery(function ($) {
1866
  wp_smushit_data.size_after = 'undefined' != typeof stats.size_after ? parseInt(wp_smushit_data.size_after) + stats.size_after : wp_smushit_data.size_after;
1867
  wp_smushit_data.savings_resize = 'undefined' != typeof stats.savings_resize ? parseInt(wp_smushit_data.savings_resize) + stats.savings_resize : wp_smushit_data.savings_resize;
1868
  wp_smushit_data.savings_conversion = 'undefined' != typeof stats.savings_conversion ? parseInt(wp_smushit_data.savings_conversion) + stats.savings_conversion : wp_smushit_data.savings_conversion;
 
 
 
 
 
 
 
1869
  }
1870
  update_stats();
1871
  }
@@ -1878,7 +1990,7 @@ jQuery(function ($) {
1878
  e.preventDefault();
1879
 
1880
  //Enable Super Smush
1881
- $('#wp-smush-lossy').prop('checked', true);
1882
  goToByScroll(".wp-smush-lossy-label");
1883
  });
1884
 
@@ -1887,8 +1999,9 @@ jQuery(function ($) {
1887
  e.preventDefault();
1888
 
1889
  //Enable Resize, Show resize settings
1890
- $('#wp-smush-resize').prop('checked', true);
1891
  $('div.wp-smush-resize-settings-wrap').show();
 
1892
  //Scroll down to settings area
1893
  goToByScroll(".wp-smush-resize-label");
1894
  });
@@ -2040,7 +2153,7 @@ jQuery(function ($) {
2040
  }
2041
 
2042
  //Stats Section Choose Directory Link
2043
- $('body').on('click', 'a.wp-smush-dir-link', function(e) {
2044
  e.preventDefault();
2045
  goToByScroll('#wp-smush-dir-browser');
2046
  $('div.row button.wp-smush-browse').click();
@@ -2068,8 +2181,7 @@ jQuery(function ($) {
2068
  //Remove Notice
2069
  $('div.wp-smush-info').remove();
2070
 
2071
- //Shows the directories available
2072
- $('.wp-smush-list-dialog').show();
2073
 
2074
  //Display the loader
2075
  $('button.dir-smush-button-wrap span.spinner').addClass('is-active');
@@ -2119,7 +2231,7 @@ jQuery(function ($) {
2119
  var abs_path = $('input[name="wp-smush-base-path"]').val();
2120
 
2121
  //Fill in the input field
2122
- $('.wp-smush-dir-path').val(abs_path + "/" + path);
2123
 
2124
  //Send a ajax request to get a list of all the image files
2125
  var param = {
@@ -2130,10 +2242,10 @@ jQuery(function ($) {
2130
 
2131
  //Get the List of images
2132
  $.get(ajaxurl, param, function (res) {
2133
- if( !res.success && 'undefined' !== typeof ( res.data.message ) ) {
2134
- $('div.wp-smush-scan-result div.content').html(res.data.message );
2135
- }else {
2136
- $('div.wp-smush-scan-result div.content').html(res.data );
2137
  wp_smush_dir_image_ids = res.data.ids;
2138
  }
2139
  set_accordion();
@@ -2144,7 +2256,7 @@ jQuery(function ($) {
2144
  }).done(function (res) {
2145
 
2146
  //If there was no image list, return
2147
- if( !res.success ) {
2148
  //Hide the smush button
2149
  $('div.wp-smush-all-button-wrap.bottom').hide();
2150
  return;
@@ -2353,7 +2465,7 @@ jQuery(function ($) {
2353
  //Close Directory smush modal, if pressed esc
2354
  $(document).keyup(function (e) {
2355
  if (e.keyCode === 27) {
2356
- var modal = $('div.dev-overlay.wp-smush-list-dialog');
2357
  //If the Directory dialog is not visible
2358
  if (!modal.is(':visible')) {
2359
  return;
@@ -2378,13 +2490,13 @@ jQuery(function ($) {
2378
  submit_button.attr('disabled', 'disabled');
2379
 
2380
  //Show loader
2381
- $('<span class="spinner is-active"></span>').insertAfter( submit_button );
2382
  },
2383
  success: function (data) {
2384
  //Enable the button
2385
  submit_button.removeAttr('disabled');
2386
  //Remove the loader
2387
- submit_button.parent(). find('span.spinner').remove();
2388
 
2389
  if (data.success == 1) {
2390
  //remove skip button
@@ -2414,20 +2526,39 @@ jQuery(function ($) {
2414
  });
2415
 
2416
  //Dismiss Smush recommendation
2417
- $('span.dismiss-recommendation').on('click', function(e) {
2418
  e.preventDefault();
2419
  var parent = $(this).parent();
2420
  //remove div and save preference in db
2421
- parent.hide('slow', function(){ parent.remove(); });
 
 
2422
  $.ajax({
2423
  type: 'POST',
2424
  url: ajaxurl,
2425
  data: {
2426
- 'action' : 'hide_pagespeed_suggestion'
2427
  }
2428
  });
2429
  })
2430
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2431
  });
2432
  (function ($) {
2433
  var Smush = function (element, options) {
33
  var member_validity_notice = jQuery('#wp-smush-invalid-member');
34
 
35
  //Check for Membership warning
36
+ if ('undefined' != typeof ( data ) && 'undefined' != typeof ( data.show_warning ) && member_validity_notice.length > 0) {
37
  if (data.show_warning) {
38
  member_validity_notice.show();
39
  } else {
65
  };
66
 
67
  jQuery(function ($) {
68
+
69
+ /**
70
+ * Remove the quick setup dialog
71
+ */
72
+ function remove_dialog() {
73
+ $('dialog#smush-quick-setup').remove();
74
+ }
75
+
76
+ //Show the Quick Setup Dialog
77
+ if ($('#smush-quick-setup').size() > 0) {
78
+ WDP.showOverlay("#smush-quick-setup", {
79
+ title: wp_smush_msgs.quick_setup_title,
80
+ class: 'no-close wp-smush-overlay wp-smush-quick-setup'
81
+ });
82
+ remove_dialog();
83
+ }
84
+
85
  var smushAddParams = function (url, data) {
86
  if (!$.isEmptyObject(data)) {
87
  url += ( url.indexOf('?') >= 0 ? '&' : '?' ) + $.param(data);
184
 
185
  //Remove any Global Notices if there
186
  $('.wp-smush-notice.wp-smush-resmush-message').remove();
187
+
188
+ //Hide the Bulk Limit message
189
+ $('p.smush-error-message.limit_exceeded').remove();
190
+ //Hide parent wrapper, if there are no other messages
191
+ if ($('div.smush-final-log p').length <= 0) {
192
+ $('div.smush-final-log').hide();
193
+ }
194
  };
195
 
196
  this.single_start = function () {
256
 
257
  };
258
 
259
+ this.sync_stats = function() {
260
+ var message_holder = $('div.wp-smush-bulk-progress-bar-wrapper div.wp-smush-count.tc');
261
+ //Store the existing content in a variable
262
+ var progress_message = message_holder.html();
263
+ message_holder.html( wp_smush_msgs.sync_stats );
264
+
265
+ //Send ajax
266
+ $.ajax({
267
+ type: "GET",
268
+ url: ajaxurl,
269
+ data: {
270
+ 'action': 'get_stats'
271
+ },
272
+ success: function (response) {
273
+ if (response && 'undefined' != typeof response) {
274
+ response = response.data;
275
+ $.extend( wp_smushit_data, {
276
+ count_images: response.count_images,
277
+ count_smushed: response.count_smushed,
278
+ count_total: response.count_total,
279
+ count_resize: response.count_resize,
280
+ count_supersmushed: response.count_supersmushed,
281
+ savings_bytes: response.savings_bytes,
282
+ savings_conversion: response.savings_conversion,
283
+ savings_resize: response.savings_resize,
284
+ size_before: response.size_before,
285
+ size_after: response.size_after
286
+ });
287
+ //Got the stats, Update it
288
+ update_stats();
289
+ }
290
+ }
291
+ }).always( function() {
292
+ message_holder.html(progress_message);
293
+ }
294
+ );
295
+ };
296
+
297
  /** After the Bulk Smushing has been Finished **/
298
  this.bulk_done = function () {
299
  if (!this.is_bulk) return;
362
 
363
  //Update localized stats
364
  if (_res && ( 'undefined' != typeof _res.data || 'undefined' != typeof _res.data.stats )) {
365
+ update_localized_stats(_res.data.stats, this.smush_type);
366
  }
367
 
368
  if (!this.is_bulk_resmush) {
389
  //handle progress for normal bulk smush
390
  //Set Progress Bar width
391
  if ('undefined' !== typeof self.ids && 'undefined' !== typeof wp_smushit_data.count_total && wp_smushit_data.count_total > 0) {
392
+ progress = ( wp_smushit_data.count_smushed / wp_smushit_data.count_total ) * 100;
393
  }
394
  }
395
 
396
  //Show Bulk Wrapper and Smush Notice
397
  if (self.ids.length == 0) {
398
+ //Sync stats for Bulk smush media Library ( Skip for Nextgen )
399
+ if ('nextgen' != this.smush_type) {
400
+ this.sync_stats();
401
+ }
402
+ $('.bulk-smush-wrapper .wp-smush-all-done, .wp-smush-pagespeed-recommendation').show();
403
  $('.wp-smush-bulk-wrapper').hide();
 
 
404
  }
405
 
406
  //Update remaining count
468
  .error(function () {
469
  self.increment_errors(self.current_id);
470
  }).done(function (res) {
471
+ //Increase the error count except if bulk request limit excceded
472
  if (typeof res.success === "undefined" || ( typeof res.success !== "undefined" && typeof res.success.data !== "undefined" && res.success === false && res.data.error !== 'bulk_request_image_limit_exceeded' )) {
473
  self.increment_errors(self.current_id);
474
  }
475
  //If no response or success is false, do not process further
476
+ if (!res || !res.success) {
477
+ //@todo: Handle Bulk Smush limit error message
478
+ if ('undefined' !== typeof res && 'undefined' !== typeof res.data && typeof res.data.error !== 'undefined') {
479
+ var error_class = 'undefined' != typeof res.data.error_class ? 'smush-error-message ' + res.data.error_class : 'smush-error-message';
480
+ var error_msg = '<p class="' + error_class + '">' + res.data.error_message + '</p>';
481
+ if ('undefined' != typeof res.data.error && 'bulk_request_image_limit_exceeded' == res.data.error) {
482
+ var ajax_error_message = $('.wp-smush-ajax-error');
483
+ //If we have ajax error message div, append after it
484
+ if (ajax_error_message.length > 0) {
485
+ ajax_error_message.after(error_msg);
486
+ } else {
487
+ //Otherwise prepend
488
+ self.$log.prepend(error_msg);
489
+ }
490
+ } else if ('undefined' != typeof res.data.error_class && "" != res.data.error_class && $('div.smush-final-log .' + res.data.error_class).length > 0) {
491
+ var error_count = $('p.smush-error-message.' + res.data.error_class + ' .image-error-count');
492
+ //Get the error count, increase and append
493
+ var image_count = error_count.html();
494
+ image_count = parseInt(image_count) + 1;
495
+ //Append the updated image count
496
+ error_count.html(image_count);
497
+ } else {
498
+ //Print the error on screen
499
+ self.$log.append(error_msg);
500
+ }
501
+ self.$log.show();
502
  }
503
  }
504
 
505
  //Check whether to show the warning notice or not
506
  membership_validity(res.data);
507
 
508
+ //Bulk Smush Limit Exceeded: Stop ajax requests, remove progress bar, append the last image id back to smush variable, and reset variables to allow the user to continue bulk smush
509
  if (typeof res.data !== "undefined" && res.data.error == 'bulk_request_image_limit_exceeded' && !self.is_resolved()) {
510
  //Add a data attribute to the smush button, to stop sending ajax
511
  self.$button.attr('continue_smush', false);
582
  $('.wp-smush-cancel-bulk').on('click', function () {
583
  //Add a data attribute to the smush button, to stop sending ajax
584
  self.$button.attr('continue_smush', false);
585
+ //Sync and update stats
586
+ self.sync_stats();
587
+ update_stats();
588
 
589
  self.request.abort();
590
  self.enable_button();
697
  //Hide stats
698
  $('.smush-stats-wrapper').hide();
699
 
700
+ var mode = '';
701
+ if( 'smush_restore_image' == smush_action ) {
702
+ mode = window.location.search.indexOf('item') > -1 ? 'grid' : 'list';
703
+ }
704
+
705
  //Get the image ID and nonce
706
  var params = {
707
  action: smush_action,
708
  attachment_id: current_button.data('id'),
709
+ mode: mode,
710
  _nonce: current_button.data('nonce')
711
  };
712
 
747
  var validate_resize_settings = function (wrapper_div, width_only, height_only) {
748
  var resize_checkbox = wrapper_div.parent().find('#wp-smush-resize, #wp-smush-resize-quick-setup');
749
  if (!height_only) {
750
+ var width_input = wrapper_div.find('#wp-smush-resize_width, #quick-setup-resize_width');
751
  var width_error_note = wrapper_div.find('.wp-smush-size-info.wp-smush-update-width');
752
  }
753
  if (!width_only) {
754
+ var height_input = wrapper_div.find('#wp-smush-resize_height, #quick-setup-resize_height');
755
  var height_error_note = wrapper_div.find('.wp-smush-size-info.wp-smush-update-height');
756
  }
757
 
815
  */
816
  var formatBytes = function (a, b) {
817
  var thresh = 1024;
818
+ if (Math.abs(a) < thresh) {
819
  return a + ' B';
820
  }
821
+ var units = ['KB', 'MB', 'GB', 'TB', 'PB'];
822
  var u = -1;
823
  do {
824
  a /= thresh;
825
  ++u;
826
+ } while (Math.abs(a) >= thresh && u < units.length - 1);
827
+ return a.toFixed(b) + ' ' + units[u];
828
  };
829
 
830
 
920
  }
921
 
922
  var smush_percent = ( wp_smushit_data.count_smushed / wp_smushit_data.count_total ) * 100;
923
+ smush_percent = precise_round(smush_percent, 1);
924
 
925
  //Update it in stats bar
926
  $('.wp-smush-images-percent').html(smush_percent);
951
  $('.wp-smush-page-header').after(r.data.notice);
952
  }
953
  //Hide errors
954
+ $('div.smush-final-log').hide();
955
 
956
  //Hide Super Smush notice if it's enabled in media settings
957
  if ('undefined' != typeof r.data.super_smush && r.data.super_smush) {
1035
 
1036
  for (i = 0; i < acc.length; i++) {
1037
  acc[i].onclick = function () {
1038
+ var parent = $(this).parents().eq(1);
1039
  if (parent.hasClass('active')) {
1040
  parent.removeClass('active');
1041
  parent.find('.wp-smush-image-list-inner').removeClass("show");
1055
  * @returns {boolean}
1056
  *
1057
  */
1058
+ var is_last_element = function (parent) {
1059
  var elements = parent.find('li.wp-smush-image-ele:not(.optimised,.error)');
1060
+ if (elements.length <= 0) {
1061
  return true;
1062
  }
1063
  return false;
1085
  var total = child.length;
1086
  var smushed = child.filter('.optimised').length;
1087
  var smush_progress = progress_wrap.find('.wp-smush-dir-progress');
1088
+ progress_wrap.removeClass('hidden');
1089
  if (smushed > 0 && total > 0) {
1090
  var percent = ( smushed / total ) * 100;
1091
  percent = precise_round(percent, 1);
1108
  if (is_last_element(parent)) {
1109
  if (smushed < total) {
1110
  var unsmushed = total - smushed;
1111
+ var message = '<div class="wp-smush-dir-notice"><i class="icon-fi-warning-alert"></i>' + unsmushed + ' ' + ( 1 == unsmushed ? wp_smush_msgs.unfinished_smush_single : wp_smush_msgs.unfinished_smush ) + '</div>';
1112
 
1113
  //If the notice is already displayed, remove it
1114
  var notice = parent.find('div.wp-smush-dir-notice');
1115
+ if (notice.length) {
1116
  notice.remove();
1117
  }
1118
 
1146
  */
1147
  var add_dir_browser_button = function () {
1148
  //Get the content div length, if less than 1500, Skip
1149
+ if ($('div.wp-smush-scan-result div.content').height() < 1500 || $('div.dir-smush-button-wrap.top').length >= 1) {
1150
  return;
1151
  }
1152
 
1155
  $('div.wp-smush-scan-result div.content').prepend(choose_button);
1156
  };
1157
 
1158
+ var add_smush_button = function () {
1159
  //Get the content div length, if less than 1500, Skip
1160
+ if ($('div.wp-smush-scan-result div.content').height() < 1500 || $('div.wp-smush-all-button-wrap.top').length >= 1) {
1161
  return;
1162
  }
1163
 
1175
  * smush_limit - If Free users exceeded limit
1176
  *
1177
  */
1178
+ var add_smush_dir_notice = function (notice_type) {
1179
  //Get the content div length, if less than 1500, Skip
1180
+ if ($('div.wp-smush-scan-result div.content').height() < 1500 || $('div.wp-smush-scan-result div.wp-smush-notice.top').length >= 1) {
1181
  return;
1182
  }
1183
  var notice = '';
1184
  //Clone and append the notice
1185
+ if ('all_done' == notice_type) {
1186
  notice = $('div.wp-smush-notice.wp-smush-dir-all-done').clone();
1187
+ } else if ('smush_limit' == notice_type) {
1188
  notice = $('div.wp-smush-notice.wp-smush-dir-limit').clone();
1189
+ } else {
1190
  notice = $('div.wp-smush-notice.wp-smush-dir-remaining').clone();
1191
  }
1192
 
1194
  notice.addClass('top');
1195
 
1196
  //Append the notice
1197
+ $('div.wp-smush-scan-result div.dir-smush-button-wrap').after(notice);
1198
  };
1199
 
1200
+ var update_smush_progress = function () {
1201
  var in_progress_path = $('ul.wp-smush-image-list li.in-progress');
1202
  in_progress_path.removeClass('in-progress active');
1203
+ if (in_progress_path.length > 0) {
1204
+ in_progress_path.each(function (index, ele) {
1205
  if ($(ele).hasClass('wp-smush-image-ul')) {
1206
  //Remove Spinner
1207
  $(ele).find('span.spinner').remove();
1215
  var error = in_progress_ele.filter('.error').length;
1216
  //if all the elements are optimised
1217
  if (optimised == in_progress_ele.length) {
1218
+ $(ele).addClass('complete');
1219
  } else if (0 < optimised || 0 < error) {
1220
  //If there are images that needs to be smushed, add the class partial
1221
+ $(ele).addClass('partial');
1222
  }
1223
  }
1224
 
1225
+ } else {
1226
  //Remove spinner for the element
1227
  $(ele).find('span.spinner').remove();
1228
  }
1236
  * For non-premium users, show expected avarage savings based
1237
  * on the free version savings.
1238
  */
1239
+ var set_pro_savings = function () {
1240
 
1241
  // Default values.
1242
  var savings = wp_smushit_data.savings_percent > 0 ? wp_smushit_data.savings_percent : 0;
1243
  var savings_bytes = wp_smushit_data.savings_bytes > 0 ? wp_smushit_data.savings_bytes : 0;
1244
  var orig_diff = 2.22058824;
1245
+ if (savings > 49) {
1246
  var orig_diff = 1.22054412;
1247
  }
1248
  //Calculate Pro savings
1249
+ if (savings > 0) {
1250
+ savings = orig_diff * savings;
1251
  savings_bytes = orig_diff * savings_bytes;
1252
  }
1253
 
1264
  * @param image_stats
1265
  *
1266
  */
1267
+ var update_localized_stats = function (image_stats, type) {
1268
  //Increase the smush count
1269
  if ('undefined' == typeof wp_smushit_data) {
1270
  return;
1289
  wp_smushit_data.count_resize = 'undefined' != typeof image_stats.savings_resize.bytes ? parseInt(wp_smushit_data.count_resize) + 1 : wp_smushit_data.count_resize;
1290
 
1291
  //Add to Conversion Savings
1292
+ wp_smushit_data.savings_conversion = 'undefined' != typeof image_stats.savings_conversion && 'undefined' != typeof image_stats.savings_conversion.bytes ? parseInt(wp_smushit_data.savings_conversion) + parseInt(image_stats.savings_conversion.bytes) : parseInt(wp_smushit_data.savings_conversion);
1293
+ } else if ('directory_smush' == type) {
1294
  //Increase smushed image count
1295
  wp_smushit_data.count_images = parseInt(wp_smushit_data.count_images) + 1;
1296
+ } else if ('nextgen' == type) {
1297
  wp_smushit_data.count_smushed = parseInt(wp_smushit_data.count_smushed) + 1;
1298
  wp_smushit_data.count_supersmushed = parseInt(wp_smushit_data.count_supersmushed) + 1;
1299
 
1308
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.size_after) : parseInt(wp_smushit_data.size_after);
1309
  }
1310
  //Add stats for resizing
1311
+ if ('undefined' != typeof image_stats.savings_resize) {
1312
  //Update savings
1313
  wp_smushit_data.size_before = 'undefined' != typeof image_stats.savings_resize.size_before ? parseInt(wp_smushit_data.size_before) + parseInt(image_stats.savings_resize.size_before) : parseInt(wp_smushit_data.size_before);
1314
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.savings_resize.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.savings_resize.size_after) : parseInt(wp_smushit_data.size_after);
1315
  }
1316
  //Add stats for Conversion
1317
+ if ('undefined' != typeof image_stats.savings_conversion) {
1318
  //Update savings
1319
  wp_smushit_data.size_before = 'undefined' != typeof image_stats.savings_conversion.size_before ? parseInt(wp_smushit_data.size_before) + parseInt(image_stats.savings_conversion.size_before) : parseInt(wp_smushit_data.size_before);
1320
  wp_smushit_data.size_after = 'undefined' != typeof image_stats.savings_conversion.size_after ? parseInt(wp_smushit_data.size_after) + parseInt(image_stats.savings_conversion.size_after) : parseInt(wp_smushit_data.size_after);
1340
  $('.wp-smush-savings .wp-smush-stats-percent').html(wp_smushit_data.savings_percent);
1341
 
1342
  //Update Savings in share message
1343
+ $('span.smush-share-savings').html(formatBytes(wp_smushit_data.savings_bytes, 1));
1344
 
1345
  //Update Smush percent
1346
  wp_smushit_data.smush_percent = precise_round(( parseInt(wp_smushit_data.count_smushed) / parseInt(wp_smushit_data.count_total) ) * 100, 1);
1358
  $('span.wp-smush-total-optimised').html(wp_smushit_data.count_images);
1359
 
1360
  //Update image count in share message
1361
+ $('span.smush-share-image-count').html(wp_smushit_data.count_images);
1362
 
1363
  //Update Resize image count
1364
+ $('div.wp-smush-count-resize-total span.wp-smush-total-optimised').html(wp_smushit_data.count_resize);
1365
 
1366
  //Update Attachment image count
1367
+ $('div.wp-smush-count-attachment-total span.wp-smush-total-optimised').html(wp_smushit_data.count_smushed);
1368
 
1369
  //Update image count in share message
1370
 
1386
  var smush_resize_savings = $('.smush-resize-savings');
1387
  if (smush_resize_savings.length > 0 && 'undefined' != typeof ( wp_smushit_data.savings_resize ) && wp_smushit_data.savings_resize != '') {
1388
  // Get the resize savings in number.
1389
+ var savings_value = parseInt(wp_smushit_data.savings_resize);
1390
  var resize_savings = smush_resize_savings.find('.wp-smush-stats');
1391
  // Replace only if value is grater than 0.
1392
  if (savings_value > 0 && resize_savings.length > 0) {
1419
  /**
1420
  * Update the progress and show notice when smush completes
1421
  */
1422
+ var directory_smush_finished = function (notice_type) {
1423
  //If there are no images left
1424
  $('div.wp-smush-all-button-wrap span.spinner').remove();
1425
  $('button.wp-smush-pause').hide().attr('disabled', 'disabled');
1440
  //Clone and add Smush button
1441
  add_smush_button();
1442
 
1443
+ if ('' == notice_type) {
1444
  //Get the Total and Optimised image count
1445
  var image_ele = $('li.wp-smush-image-ele');
1446
  var total = image_ele.length;
1469
  //Show notice on top if required
1470
  add_smush_dir_notice('all_done');
1471
  }
1472
+ } else {
1473
  //Show Bulk Limit Notice
1474
  $('.wp-smush-notice.wp-smush-dir-limit').show();
1475
  //Show notice on top if required
1511
  }
1512
 
1513
  //If all the elements are optimised, No need to send ajax request
1514
+ if (first_child.length == 0) {
1515
  directory_smush_finished('');
1516
  return;
1517
  }
1520
  var param = {
1521
  action: 'optimise',
1522
  image_id: first_child.attr('id'),
1523
+ get_stats: unprocessed_child.length > 1 ? 0 : 1,
1524
  nonce: $('#wp-smush-all').val()
1525
  };
1526
 
1530
  //Check, if limit is exceeded for free version
1531
  if (typeof res.data !== "undefined" && res.data.error == 'dir_smush_limit_exceeded') {
1532
  //Show error, Bulk Smush limit exceeded
1533
+ directory_smush_finished('wp-smush-dir-limit');
1534
  return;
1535
  }
1536
 
1561
  // Directory stats section.
1562
  var smush_dir_savings = $('div.smush-dir-savings');
1563
  var stats_wrapper = smush_dir_savings.find('span.wp-smush-stats');
1564
+ if (stats_wrapper.hasClass('float-l')) {
1565
  //Right float the stats
1566
  stats_wrapper.removeClass('float-l').addClass('float-r');
1567
  }
1589
  //@todo: Fixed stats UI
1590
  if ('undefined' != typeof res.data.total) {
1591
  //Update localized stats, Need to modify function to not increase count, and just update image count, and savings
1592
+ update_localized_stats(res.data.image, 'directory_smush');
1593
  // Update stats.
1594
  update_stats();
1595
  }
1596
  }
1597
 
1598
  //If user haven't paused the Smushing
1599
+ if (1 == $('input[name="wp-smush-continue-ajax"]').val()) {
1600
  //Loop
1601
  smush_all(false);
1602
  } else {
1666
  var c_stats = stats.combined_stats;
1667
 
1668
  var smush_percent = ( c_stats.smushed / c_stats.total_count ) * 100;
1669
+ smush_percent = precise_round(smush_percent, 1);
1670
 
1671
  //Smushed Percent
1672
  if (smush_percent) {
1686
  }
1687
  };
1688
 
1689
+ /**
1690
+ * Show directory list popup and foucs on close button
1691
+ */
1692
+ var showDialog = function() {
1693
+ //Shows the directories available
1694
+ $('.wp-smush-list-dialog').show();
1695
+ $('.wp-smush-list-dialog div.close').focus();
1696
+ };
1697
+
1698
  //Remove span tag from URL
1699
  function removeSpan(url) {
1700
  var url = url.slice(url.indexOf('?') + 1).split('&');
1701
  for (var i = 0; i < url.length; i++) {
1702
+ var urlparam = decodeURI(url[i]).split(/=(.+)/)[1];
1703
  return urlparam.replace(/<(?:.|\n)*?>/gm, '');
1704
  }
1705
  }
1814
  });
1815
 
1816
  //Remove Notice
1817
+ $('body').on('click', '.wp-smush-notice .icon-fi-close', function (e) {
1818
  e.preventDefault();
1819
  var $el = $(this).parent();
1820
  remove_element($el);
1916
  container.find('.wp-smush-all').attr('data-smush', 'skip_resmush');
1917
 
1918
  //Update Smushed count
1919
+ wp_smushit_data.count_smushed = parseInt(wp_smushit_data.count_smushed) + wp_smushit_data.resmush.length;
1920
+ wp_smushit_data.count_supersmushed = parseInt(wp_smushit_data.count_supersmushed) + wp_smushit_data.resmush.length;
1921
 
1922
  //Update Stats
1923
  if (wp_smushit_data.count_smushed == wp_smushit_data.count_total) {
1938
  var smushed_count = 'undefined' != typeof wp_smushit_data.count_smushed ? wp_smushit_data.count_smushed : 0;
1939
 
1940
  var smush_percent = ( smushed_count / wp_smushit_data.count_total ) * 100;
1941
+ smush_percent = precise_round(smush_percent, 1);
1942
 
1943
  $('.wp-smush-images-percent').html(smush_percent);
1944
 
1962
  //Delete resmush list, @todo: update stats from the ajax response
1963
  $.post(ajaxurl, params, function (res) {
1964
  //Remove the whole li element on success
1965
+ if (res.success && 'undefined' != typeof res.data.stats) {
1966
  var stats = res.data.stats;
1967
  //Update wp_smushit_data ( Smushed count, Smushed Percent, Image count, Super smush count, resize savings, conversion savings )
1968
  if ('undefinied' != typeof wp_smushit_data) {
1971
  wp_smushit_data.size_after = 'undefined' != typeof stats.size_after ? parseInt(wp_smushit_data.size_after) + stats.size_after : wp_smushit_data.size_after;
1972
  wp_smushit_data.savings_resize = 'undefined' != typeof stats.savings_resize ? parseInt(wp_smushit_data.savings_resize) + stats.savings_resize : wp_smushit_data.savings_resize;
1973
  wp_smushit_data.savings_conversion = 'undefined' != typeof stats.savings_conversion ? parseInt(wp_smushit_data.savings_conversion) + stats.savings_conversion : wp_smushit_data.savings_conversion;
1974
+ //Add directory smush stats
1975
+ if( 'undefined' != typeof ( wp_smushit_data.savings_dir_smush.orig_size ) ) {
1976
+ wp_smushit_data.size_before = 'undefined' != typeof wp_smushit_data.savings_dir_smush ? parseInt(wp_smushit_data.size_before) + parseInt(wp_smushit_data.savings_dir_smush.orig_size) : wp_smushit_data.size_before;
1977
+ wp_smushit_data.size_after = 'undefined' != typeof wp_smushit_data.savings_dir_smush ? parseInt(wp_smushit_data.size_after) + parseInt(wp_smushit_data.savings_dir_smush.image_size) : wp_smushit_data.size_after;
1978
+ }
1979
+
1980
+ wp_smushit_data.count_resize = 'undefined' != typeof stats.count_resize ? parseInt( wp_smushit_data.count_resize ) + stats.count_resize : wp_smushit_data.count_resize;
1981
  }
1982
  update_stats();
1983
  }
1990
  e.preventDefault();
1991
 
1992
  //Enable Super Smush
1993
+ $('#wp-smush-lossy').prop('checked', true).focus();
1994
  goToByScroll(".wp-smush-lossy-label");
1995
  });
1996
 
1999
  e.preventDefault();
2000
 
2001
  //Enable Resize, Show resize settings
2002
+ $('#wp-smush-resize').prop('checked', true).focus();
2003
  $('div.wp-smush-resize-settings-wrap').show();
2004
+
2005
  //Scroll down to settings area
2006
  goToByScroll(".wp-smush-resize-label");
2007
  });
2153
  }
2154
 
2155
  //Stats Section Choose Directory Link
2156
+ $('body').on('click', 'a.wp-smush-dir-link', function (e) {
2157
  e.preventDefault();
2158
  goToByScroll('#wp-smush-dir-browser');
2159
  $('div.row button.wp-smush-browse').click();
2181
  //Remove Notice
2182
  $('div.wp-smush-info').remove();
2183
 
2184
+ showDialog();
 
2185
 
2186
  //Display the loader
2187
  $('button.dir-smush-button-wrap span.spinner').addClass('is-active');
2231
  var abs_path = $('input[name="wp-smush-base-path"]').val();
2232
 
2233
  //Fill in the input field
2234
+ $('.wp-smush-dir-path').val(abs_path + '/' + path);
2235
 
2236
  //Send a ajax request to get a list of all the image files
2237
  var param = {
2242
 
2243
  //Get the List of images
2244
  $.get(ajaxurl, param, function (res) {
2245
+ if (!res.success && 'undefined' !== typeof ( res.data.message )) {
2246
+ $('div.wp-smush-scan-result div.content').html(res.data.message);
2247
+ } else {
2248
+ $('div.wp-smush-scan-result div.content').html(res.data);
2249
  wp_smush_dir_image_ids = res.data.ids;
2250
  }
2251
  set_accordion();
2256
  }).done(function (res) {
2257
 
2258
  //If there was no image list, return
2259
+ if (!res.success) {
2260
  //Hide the smush button
2261
  $('div.wp-smush-all-button-wrap.bottom').hide();
2262
  return;
2465
  //Close Directory smush modal, if pressed esc
2466
  $(document).keyup(function (e) {
2467
  if (e.keyCode === 27) {
2468
+ var modal = $('div.dev-overlay.wp-smush-list-dialog, div.dev-overlay.wp-smush-get-pro');
2469
  //If the Directory dialog is not visible
2470
  if (!modal.is(':visible')) {
2471
  return;
2490
  submit_button.attr('disabled', 'disabled');
2491
 
2492
  //Show loader
2493
+ $('<span class="spinner is-active"></span>').insertAfter(submit_button);
2494
  },
2495
  success: function (data) {
2496
  //Enable the button
2497
  submit_button.removeAttr('disabled');
2498
  //Remove the loader
2499
+ submit_button.parent().find('span.spinner').remove();
2500
 
2501
  if (data.success == 1) {
2502
  //remove skip button
2526
  });
2527
 
2528
  //Dismiss Smush recommendation
2529
+ $('span.dismiss-recommendation').on('click', function (e) {
2530
  e.preventDefault();
2531
  var parent = $(this).parent();
2532
  //remove div and save preference in db
2533
+ parent.hide('slow', function () {
2534
+ parent.remove();
2535
+ });
2536
  $.ajax({
2537
  type: 'POST',
2538
  url: ajaxurl,
2539
  data: {
2540
+ 'action': 'hide_pagespeed_suggestion'
2541
  }
2542
  });
2543
  })
2544
 
2545
+ //Remove API message
2546
+ $('div.wp-smush-api-message i.icon-fi-close').on('click', function (e) {
2547
+ e.preventDefault();
2548
+ var parent = $(this).parent();
2549
+ //remove div and save preference in db
2550
+ parent.hide('slow', function () {
2551
+ parent.remove();
2552
+ });
2553
+ $.ajax({
2554
+ type: 'POST',
2555
+ url: ajaxurl,
2556
+ data: {
2557
+ 'action': 'hide_api_message'
2558
+ }
2559
+ });
2560
+ });
2561
+
2562
  });
2563
  (function ($) {
2564
  var Smush = function (element, options) {
assets/shared-ui/font/WPMU-DEV-Icon.eot ADDED
Binary file
assets/shared-ui/font/WPMU-DEV-Icon.svg ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="WPMU-DEV-Icon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#x21;" glyph-name="fi-warning-alert" d="M512-64c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512s229.23-512 512-512zM459.776 732.843c0 9.426 7.641 17.067 17.067 17.067h68.267c9.426 0 17.067-7.641 17.067-17.067v-330.752c0-9.426-7.641-17.067-17.067-17.067h-67.243c-9.426 0-17.067 7.641-17.067 17.067zM512 310.613c34.109-0.386 61.611-28.126 61.611-62.29 0-0.061 0-0.123 0-0.184 0-34.3-27.813-62.113-62.123-62.113s-62.123 27.813-62.123 62.123c0 0 0 0 0 0 0 34.498 27.966 62.464 62.464 62.464 0.060 0 0.12 0 0.18 0z" />
11
+ <glyph unicode="&#x23;" glyph-name="fi-align-justify" d="M972.8 960h-921.6c-28.277 0-51.2-22.923-51.2-51.2v-46.421c0-28.277 22.923-51.2 51.2-51.2h921.6c28.277 0 51.2 22.923 51.2 51.2v46.421c0 28.277-22.923 51.2-51.2 51.2zM972.8 667.136h-921.6c-28.277 0-51.2-22.923-51.2-51.2v-46.421c0-28.277 22.923-51.2 51.2-51.2h921.6c28.277 0 51.2 22.923 51.2 51.2v47.275c0 28.277-22.923 51.2-51.2 51.2zM972.8 375.125h-921.6c-28.277 0-51.2-22.923-51.2-51.2v-46.421c0-28.277 22.923-51.2 51.2-51.2h921.6c28.277 0 51.2 22.923 51.2 51.2v47.275c0 28.277-22.923 51.2-51.2 51.2zM972.8 83.115h-921.6c-28.277 0-51.2-22.923-51.2-51.2v-44.715c0-28.277 22.923-51.2 51.2-51.2h921.6c28.277 0 51.2 22.923 51.2 51.2v45.568c0 28.277-22.923 51.2-51.2 51.2z" />
12
+ <glyph unicode="&#x24;" glyph-name="fi-dollar" horiz-adv-x="657" d="M397.483 531.797v162.816c57.244-13.411 106.989-39.912 147.792-76.241l-0.336 0.294c3.046-2.866 7.159-4.627 11.684-4.627 5.721 0 10.784 2.815 13.881 7.135l0.035 0.051 68.267 96.768c2.941 3.182 4.744 7.454 4.744 12.146 0 5.442-2.426 10.318-6.256 13.605-64.084 57.685-146.852 95.709-238.205 104.009l-1.606 93.643c0 10.274-8.329 18.603-18.603 18.603h-73.728c-10.274 0-18.603-8.329-18.603-18.603v-91.136c-159.232-16.555-253.611-117.931-253.611-237.056 0-160.427 132.096-206.507 253.611-235.861v-182.955c-73.541 13.989-137.119 49.613-185.583 99.904l-1.126 0.107c-3.077 3.023-7.3 4.89-11.958 4.89-6.999 0-13.014-4.213-15.647-10.241l-0.043-0.11-67.584-96.939c-3.165-3.101-5.127-7.419-5.127-12.195 0-5.934 3.029-11.161 7.625-14.219l0.063-0.039c64.853-64.853 155.648-112.128 279.552-122.709v-87.552c-0.008-0.204-0.013-0.443-0.013-0.683 0-10.218 8.239-18.512 18.436-18.602h73.736c10.274 0 18.603 8.329 18.603 18.603v0 87.552c173.397 17.067 259.584 119.467 259.584 250.027 0 161.621-136.533 208.896-259.584 238.933zM286.549 558.251c-47.616 16.043-81.749 33.621-81.749 67.925 0 40.107 29.525 68.267 81.408 75.435zM397.483 192v158.037c51.2-17.067 88.405-35.499 88.405-74.24s-28.16-72.021-88.405-83.797z" />
13
+ <glyph unicode="&#x25;" glyph-name="fi-align-left" horiz-adv-x="1018" d="M967.339 960h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.251c0 27.617-22.388 50.005-50.005 50.005zM50.005 521.387h670.208c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005h-670.208c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-27.617 22.388-50.005 50.005-50.005zM867.157 82.261h-817.152c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h817.152c27.617 0 50.005 22.388 50.005 50.005v0 46.080c0 27.617-22.388 50.005-50.005 50.005zM50.005 228.523h570.197c27.617 0 50.005 22.388 50.005 50.005v0 46.080c0 27.617-22.388 50.005-50.005 50.005h-570.197c0 0 0 0 0 0-27.557 0-49.908-22.291-50.005-49.825v-46.089c0-27.617 22.388-50.005 50.005-50.005z" />
14
+ <glyph unicode="&#x26;" glyph-name="fi-align-right" horiz-adv-x="1018" d="M967.339 960h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.251c0 27.617-22.388 50.005-50.005 50.005zM967.339 667.477h-670.208c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-27.617 22.388-50.005 50.005-50.005h670.208c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005zM967.168 82.261h-816.981c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h816.981c27.617 0 50.005 22.388 50.005 50.005v0 46.080c0 27.617-22.388 50.005-50.005 50.005zM1017.515 324.779c0 27.617-22.388 50.005-50.005 50.005h-570.197c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-27.617 22.388-50.005 50.005-50.005h570.027c27.617 0 50.005 22.388 50.005 50.005v0 46.080z" />
15
+ <glyph unicode="&#x27;" glyph-name="fi-quote-2" d="M214.357 82.432c-117.589 0-219.477 101.888-214.357 237.568 8.021 222.037 243.029 386.56 426.667 493.568l54.955-46.933c-131.413-78.336-259.755-199.168-267.264-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291zM757.589 82.261c-117.419 0-219.307 102.4-214.187 237.568 7.851 221.867 242.859 386.389 425.643 493.568l54.955-46.763c-130.731-78.336-258.56-199.168-266.411-339.456-5.12-141.141 167.083-206.165 167.083-211.627-2.56-73.045-75.776-133.291-167.083-133.291z" />
16
+ <glyph unicode="&#x28;" glyph-name="fi-check" d="M1010.005 741.035l-68.267 68.267c-8.68 8.854-20.766 14.343-34.133 14.343s-25.453-5.489-34.126-14.335l-503.304-505.181-221.867 221.867c-8.68 8.854-20.766 14.343-34.133 14.343s-25.453-5.489-34.126-14.335l-68.274-68.274c-8.854-8.68-14.343-20.766-14.343-34.133s5.489-25.453 14.335-34.126l290.824-288.093c17.296-17.297 41.19-27.996 67.584-27.996s50.288 10.699 67.584 27.996l572.245 572.075c8.854 8.68 14.343 20.766 14.343 34.133s-5.489 25.453-14.335 34.126z" />
17
+ <glyph unicode="&#x29;" glyph-name="fi-close" horiz-adv-x="774" d="M505.344 448l256 256c8.075 8.115 13.067 19.304 13.067 31.659s-4.992 23.544-13.069 31.66l-55.465 54.612c-8.115 8.075-19.304 13.067-31.659 13.067s-23.544-4.992-31.66-13.069l-255.998-255.998-256 256c-8.042 7.814-19.032 12.632-31.147 12.632s-23.105-4.818-31.157-12.643l-55.115-54.944c-7.974-8.097-12.898-19.217-12.898-31.488s4.924-23.391 12.903-31.494l255.994-255.994-256-256c-8.075-8.115-13.067-19.304-13.067-31.659s4.992-23.544 13.069-31.66l55.124-54.612c8.096-8.116 19.291-13.137 31.659-13.137s23.563 5.021 31.658 13.136l256.001 256.001 256-256c8.115-8.075 19.304-13.067 31.659-13.067s23.544 4.992 31.66 13.069l54.953 54.953c8.075 8.115 13.067 19.304 13.067 31.659s-4.992 23.544-13.069 31.66z" />
18
+ <glyph unicode="&#x2a;" glyph-name="fi-asterisk" horiz-adv-x="976" d="M960.341 301.397v0 0.853l-251.904 145.749 253.269 146.091c8.431 5.256 13.959 14.479 13.959 24.993 0 5.373-1.444 10.409-3.964 14.742l0.075-0.14-80.384 139.264c-5.26 8.415-14.473 13.93-24.975 13.93-5.106 0-9.907-1.304-14.089-3.596l0.153 0.077-255.147-145.237v293.376c-0.464 15.61-13.047 28.133-28.637 28.501l-161.827 0.001c-15.552-0.46-28.041-12.949-28.5-28.458l-0.001-0.043v-292.864l-254.123 146.603c-3.946 2.123-8.634 3.37-13.614 3.37-10.762 0-20.164-5.826-25.224-14.495l-0.075-1.163-81.408-139.093c-2.216-4.030-3.519-8.831-3.519-13.937 0-10.502 5.515-19.716 13.807-24.904l0.123-0.072 254.464-146.944-247.979-143.189c-2.348-0.69-4.386-1.561-6.292-2.637-8.651-5.101-14.464-14.526-14.464-25.307 0-5.353 1.433-10.371 3.936-14.693l-0.075 0.141 83.115-144.043c5.422-6.48 13.512-10.571 22.558-10.571 5.392 0 10.444 1.454 14.786 3.99l-0.139-0.075 252.928 145.92v-285.355c0-2.048 0-4.437 0-6.656 0-0.053-0.001-0.116-0.001-0.179 0-16.212 13.143-29.355 29.355-29.355 0.24 0 0.48 0.003 0.719 0.009l165.511-0.001c13.945 3.117 24.262 15.243 24.575 29.833l0.001 0.034v292.011l247.808-142.677c1.6-1.533 3.39-2.889 5.327-4.023 4.333-2.527 9.378-3.976 14.761-3.976 10.73 0 20.115 5.757 25.235 14.35l0.074 0.135 83.115 144.043c1.14 3.009 1.8 6.488 1.8 10.122 0 10.777-5.807 20.197-14.463 25.302z" />
19
+ <glyph unicode="&#x2b;" glyph-name="fi-cross-close" d="M1024 448c0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512s512 229.23 512 512zM680.107 235.349c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-121.515 121.515-121.515-121.515c-5.961-5.964-14.198-9.652-23.296-9.652s-17.335 3.689-23.296 9.652l-49.835 49.835c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l121.515 121.515-121.515 121.515c-5.964 5.961-9.652 14.198-9.652 23.296s3.689 17.335 9.652 23.296l49.835 49.835c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l121.515-120.832 121.515 121.515c5.961 5.964 14.198 9.652 23.296 9.652s17.335-3.689 23.296-9.652l49.835-49.835c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296l-121.515-121.515 121.515-121.515c5.964-5.961 9.652-14.198 9.652-23.296s-3.689-17.335-9.652-23.296z" />
20
+ <glyph unicode="&#x2c;" glyph-name="fi-clock" d="M512 823.467c207.365 0 375.467-168.102 375.467-375.467s-168.102-375.467-375.467-375.467c-207.365 0-375.467 168.102-375.467 375.467 0.677 207.091 168.375 374.79 375.401 375.466zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM774.144 638.293l-53.248 53.248c-4.962 4.662-11.661 7.527-19.029 7.527s-14.067-2.864-19.044-7.54l-170.652-170.653-93.696 93.696c-4.946 4.7-11.65 7.591-19.029 7.591s-14.083-2.891-19.041-7.602l-53.065-53.066c-4.951-4.865-8.020-11.631-8.021-19.114 0-0.020 0-0.043 0-0.066 0-7.378 3.001-14.055 7.85-18.877l165.719-165.719c4.849-4.851 11.549-7.851 18.95-7.851 0.058 0 0.116 0 0.174 0.001h1.015c7.274 0.098 13.834 3.079 18.603 7.851l242.347 242.347c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030z" />
21
+ <glyph unicode="&#x2d;" glyph-name="fi-minus" horiz-adv-x="980" d="M935.083 531.627h-890.368c-24.656-0.097-44.618-20.058-44.715-44.705v-77.833c0.097-24.656 20.058-44.618 44.705-44.715h890.377c24.656 0.097 44.618 20.058 44.715 44.705v77.833c-0.097 24.656-20.058 44.618-44.705 44.715z" />
22
+ <glyph unicode="&#x2e;" glyph-name="fi-social-android" horiz-adv-x="867" d="M572.928 866.475l44.032 80.555c0.696 1.23 1.106 2.7 1.106 4.267 0 4.852-3.933 8.786-8.786 8.786-3.286 0-6.15-1.804-7.657-4.475l-44.567-80.94c-36.42 16.441-78.958 26.021-123.733 26.021s-87.314-9.579-125.677-26.801l-42.6 81.505c-1.513 2.739-4.383 4.563-7.68 4.563-4.829 0-8.744-3.915-8.744-8.744 0-1.533 0.394-2.974 1.087-4.226l44.009-80.51c-85.319-42.218-143.333-127.969-145.064-227.44l569.17-0.229c-1.801 99.634-59.797 185.306-143.562 226.824zM303.787 741.888c-13.196 0-23.893 10.697-23.893 23.893s10.697 23.893 23.893 23.893c13.196 0 23.893-10.697 23.893-23.893s-10.697-23.893-23.893-23.893zM563.029 741.888c-13.196 0-23.893 10.697-23.893 23.893s10.697 23.893 23.893 23.893c13.196 0 23.893-10.697 23.893-23.893s-10.697-23.893-23.893-23.893zM866.816 565.589c0 34.922-28.31 63.232-63.232 63.232s-63.232-28.31-63.232-63.232v-264.533c0-34.922 28.31-63.232 63.232-63.232s63.232 28.31 63.232 63.232zM716.8 616.96h-565.931v-409.6c0-37.703 30.564-68.267 68.267-68.267h45.909v-139.947c0-34.875 28.272-63.147 63.147-63.147s63.147 28.272 63.147 63.147v139.947h85.333v-139.947c0-34.922 28.31-63.232 63.232-63.232s63.232 28.31 63.232 63.232v139.947h45.397c12.636 0.101 24.409 3.707 34.419 9.893 20.1 11.527 33.657 33.090 33.847 57.835zM63.147 628.736c-34.836-0.097-63.050-28.311-63.147-63.137v-264.713c0-34.922 28.31-63.232 63.232-63.232s63.232 28.31 63.232 63.232v264.704c0 0 0 0 0 0 0 34.875-28.272 63.147-63.147 63.147-0.060 0-0.12 0-0.18 0z" />
23
+ <glyph unicode="&#x2f;" glyph-name="fi-pencil" d="M0-34.987c-0.395-1.591-0.622-3.418-0.622-5.298 0-6.68 2.864-12.692 7.432-16.873 4.214-4.6 10.225-7.464 16.906-7.464 1.88 0 3.707 0.227 5.455 0.655l312.163 95.029 674.133 674.133c4.857 4.876 7.86 11.602 7.86 19.029s-3.003 14.153-7.861 19.030l-208.212 208.895c-4.849 4.847-11.546 7.845-18.944 7.845s-14.095-2.998-18.944-7.845l-674.304-674.816zM88.235 24.917l60.757 199.168 139.093-139.093z" />
24
+ <glyph unicode="&#x30;" glyph-name="fi-unlock" horiz-adv-x="808" d="M767.147 528.896h-507.563v93.696c-0.006 0.491-0.009 1.072-0.009 1.653 0 75.487 56.723 137.726 129.872 146.418 4.812 0.483 9.589 0.72 14.422 0.72 72.754 0 132.97-53.685 143.195-123.602 1.489-12.067 10.93-20.741 22.433-20.922h144.061c12.49 0.060 22.592 10.2 22.592 22.698 0 0.601-0.023 1.196-0.069 1.785-13.165 171.030-153.621 305.322-326.153 308.653-186.354 3.077-338.93-153.595-338.93-341.328v-90.453h-29.696c-0.002 0-0.004 0-0.006 0-22.57 0-40.912-18.104-41.295-40.583v-510.329c0-22.81 18.491-41.301 41.301-41.301h725.845c22.81 0 41.301 18.491 41.301 41.301v510.293c0 22.81-18.491 41.301-41.301 41.301z" />
25
+ <glyph unicode="&#x31;" glyph-name="fi-user-hero-points-trophy" horiz-adv-x="819" d="M795.648 769.195c0 13.007-10.545 23.552-23.552 23.552h-99.499v85.333s0 1.536 0 2.219c0.006 0.255 0.010 0.554 0.010 0.855 0 19.866-16.011 35.992-35.832 36.18h-480.786c-18.655-1.461-33.244-16.941-33.28-35.836s0-1.54 0-2.222v-85.333h-99.157c-0.001 0-0.002 0-0.002 0-13.007 0-23.552-10.545-23.552-23.552 0-0.12 0.001-0.24 0.003-0.359v0.018-322.048c0.097-12.934 10.604-23.381 23.551-23.381 0 0 0 0 0.001 0h102.4c17.299-112.496 100.743-201.565 208.74-226.959l1.862-157.382h-122.88c-16.966 0-30.72-13.754-30.72-30.72s13.754-30.72 30.72-30.72h368.299c16.966 0 30.72 13.754 30.72 30.72s-13.754 30.72-30.72 30.72h-122.88v157.013c109.86 25.763 193.304 114.833 210.408 225.792l102.595 1.536c0.007 0 0.014 0 0.022 0 12.647 0 22.966 9.969 23.528 22.477l0.002 0.051v322.048zM123.051 486.059h-61.611v245.248h61.611zM734.379 486.059h-61.781v245.248h61.269z" />
26
+ <glyph unicode="&#x32;" glyph-name="fi-user-reputation-points" d="M1021.44 565.76c-25.429-116.736-243.712-207.872-509.44-207.872-282.795 0-512 103.253-512 230.741v-140.629c0-127.488 229.205-230.741 512-230.741s512 103.253 512 230.741c-0.030 8.12-0.961 16.008-2.698 23.587zM512 76.629c-282.795 0-512 103.253-512 230.741v-140.629c0-127.488 229.205-230.741 512-230.741s512 103.253 512 230.741v140.629c0-127.488-229.205-230.741-512-230.741zM1024 729.259c0-127.659-229.205-230.059-512-230.059s-512 102.4-512 230.059 229.205 230.741 512 230.741 512-103.253 512-230.741z" />
27
+ <glyph unicode="&#x33;" glyph-name="fi-user-star-level-up" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM753.835 103.936l-241.835 168.277-241.835-168.277 85.333 281.941-234.837 178.176 294.571 5.973 96.768 278.357 96.768-278.357 294.571-5.973-234.837-178.005z" />
28
+ <glyph unicode="&#x34;" glyph-name="fi-map" d="M846.165 15.872l24.235-11.605 32.597-14.677 25.6 57.003-56.661 25.941zM921.6 803.669l-42.155 24.405h-1.365l-11.264 6.656-31.915-53.931 53.931-31.915zM1006.933 753.152l-45.397 26.624-31.915-53.931 37.205-21.845h57.173v18.944c0.004 0.192 0.006 0.418 0.006 0.644 0 12.57-6.795 23.553-16.912 29.477zM961.365 4.267l-15.36-34.133 46.933-20.992c2.607-1.187 5.653-1.878 8.862-1.878 0.065 0 0.129 0 0.194 0.001h-0.010c12.281 0.557 22.027 10.649 22.027 23.018 0 0.248-0.004 0.495-0.012 0.741l0.001 75.74h-62.635zM961.365 658.261h62.635v-93.867h-62.635v93.867zM961.365 345.429h62.635v-93.867h-62.635v93.867zM961.365 501.76h62.635v-93.867h-62.635v93.867zM961.365 188.928h62.635v-93.867h-62.635v93.867zM798.379 811.691l28.16 47.616-7.339 4.267-20.48 11.093-193.536-102.4-179.712 97.28h-1.365c-1.831 0.635-3.971 1.116-6.184 1.354-1.859 0.565-3.887 0.986-5.977 1.196-2.342-0.206-4.37-0.627-6.312-1.242-2.12-0.166-4.262-0.648-6.293-1.366l-0.834 0.058-179.883-97.28-179.541 97.28c-3.779 1.93-8.243 3.061-12.971 3.061s-9.192-1.131-13.136-3.137c-7.174-3.055-12.354-9.947-12.972-18.113l-0.004-788.552c0.277-7.992 4.945-14.831 11.654-18.206l193.146-105.186h1.195c3.582-1.678 7.778-2.657 12.203-2.657s8.621 0.979 12.383 2.732l0.843-0.076 179.541 97.621 180.565-97.621h1.195c3.601-1.724 7.827-2.731 12.288-2.731 0.034 0 0.074 0 0.114 0 4.423 0 8.61 1.007 12.345 2.805l0.853-0.074 180.395 96.597 4.608-0.853 25.6 57.003-30.549 14.507zM202.411 9.557l-136.533 73.557v702.293l136.533-73.557zM426.667 98.987v700.757l161.451-87.893v-699.733z" />
29
+ <glyph unicode="&#x35;" glyph-name="fi-link" d="M937.301 873.301c-53.634 53.723-127.776 86.958-209.68 86.958-76.505 0-146.238-28.998-198.807-76.602l0.252 0.225-149.845-149.845c-25.641-25.678-46.572-56.068-61.381-89.757-31.625-15.29-58.179-32.491-81.399-53.332l0.273 0.241-150.016-149.504c-52.643-53.447-85.149-126.857-85.149-207.859 0-163.629 132.648-296.277 296.277-296.277 81.002 0 154.411 32.506 207.896 85.186l149.808 149.809c20.597 22.947 37.798 49.501 50.462 78.489 36.317 17.445 66.707 38.376 92.389 64.021l149.671 150.013c47.233 52.28 76.134 121.907 76.134 198.285 0 81.784-33.137 155.828-86.717 209.439zM404.651 129.195v0c-27.058-27.058-64.439-43.794-105.728-43.794-82.579 0-149.522 66.943-149.522 149.522 0 41.289 16.736 78.67 43.794 105.728v0l109.227 109.227c27.506-103.779 107.646-183.862 209.402-210.823zM485.888 421.717c-24.767 24.736-40.86 58.152-43.325 95.295 74.658-4.508 134.018-63.81 139.045-138.017-37.57 2.016-70.991 18.113-95.717 42.89zM840.021 564.736l-118.613-118.613c-27.443 103.758-107.527 183.842-209.232 210.822l107.344 109.861 9.216 9.216c26.131 22.897 60.586 36.864 98.304 36.864 82.569 0 149.504-66.935 149.504-149.504 0-37.718-13.967-72.173-37.012-98.476z" />
30
+ <glyph unicode="&#x36;" glyph-name="fi-unlink" horiz-adv-x="1025" d="M129.536 783.36l109.397-110.080c5.875-5.875 13.99-9.508 22.955-9.508 17.929 0 32.463 14.534 32.463 32.463 0 8.964-3.634 17.080-9.508 22.955l-108.885 109.568c-5.652 4.91-13.084 7.903-21.215 7.903-17.909 0-32.427-14.518-32.427-32.427 0-8.131 2.993-15.563 7.936-21.254zM318.635 826.88l39.765-150.357c3.88-13.945 16.466-24.008 31.403-24.008 17.972 0 32.541 14.569 32.541 32.541 0 3.036-0.416 5.974-1.193 8.762l-39.711 149.275c-3.878 13.899-16.427 23.926-31.317 23.926-17.927 0-32.459-14.532-32.459-32.459 0-3.036 0.417-5.975 1.196-8.762zM127.829 567.467v0l149.845-40.107c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263l-149.562 40.332c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263zM895.147 112.64l-110.080 110.080c-5.875 5.875-13.99 9.508-22.955 9.508-17.929 0-32.463-14.534-32.463-32.463 0-8.964 3.634-17.080 9.508-22.955l109.568-109.568c5.771-5.373 13.536-8.671 22.072-8.671 17.909 0 32.427 14.518 32.427 32.427 0 8.493-3.265 16.224-8.609 22.005zM706.048 69.12l-40.448 150.357c-3.88 13.945-16.466 24.008-31.403 24.008-17.972 0-32.541-14.569-32.541-32.541 0-3.036 0.416-5.974 1.193-8.762l40.052-149.616c3.878-13.899 16.427-23.926 31.317-23.926 17.927 0 32.459 14.532 32.459 32.459 0 3.036-0.417 5.975-1.196 8.762zM896.853 328.533v0l-149.845 40.107c-2.559 0.725-5.497 1.142-8.533 1.142-17.927 0-32.459-14.532-32.459-32.459 0-14.891 10.027-27.439 23.697-31.263l150.074-40.161c2.559-0.725 5.497-1.142 8.533-1.142 17.927 0 32.459 14.532 32.459 32.459 0 14.891-10.027 27.439-23.697 31.263zM492.032 428.203c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-38.111-40.385-61.537-94.988-61.537-155.062 0-124.89 101.243-226.133 226.133-226.133 60.074 0 114.677 23.425 155.173 61.64l114.236 114.243c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM417.963 192l-109.397-109.397c-20.662-20.514-49.128-33.193-80.555-33.193-63.151 0-114.345 51.194-114.345 114.345 0 31.724 12.919 60.43 33.783 81.145l109.404 109.404c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446zM958.464 893.781c-40.919 40.905-97.441 66.205-159.872 66.205-58.335 0-111.51-22.088-151.619-58.358l0.196 0.174-114.347-114.347c-37.354-40.216-60.276-94.288-60.276-153.712 0-124.89 101.243-226.133 226.133-226.133 59.467 0 113.573 22.954 153.941 60.486l114.207 114.218c36.095 39.914 58.183 93.089 58.183 151.424 0 62.431-25.3 118.953-66.206 159.873zM884.224 658.091l-109.397-109.397c-19.918-17.349-46.131-27.926-74.814-27.926-63.058 0-114.176 51.118-114.176 114.176 0 29.023 10.829 55.518 28.668 75.662l-0.104-0.12 109.397 109.397c19.827 17.113 45.846 27.537 74.3 27.537 62.963 0 114.005-51.042 114.005-114.005 0-28.453-10.424-54.472-27.661-74.446z" />
31
+ <glyph unicode="&#x37;" glyph-name="fi-list-number" d="M74.923 690.005l-41.643-41.813 16.043-16.896 22.016 22.357v-95.915h28.16v132.267h-24.576zM51.2 357.376c10.923 0 21.504-5.632 21.504-17.067 0-17.067-15.872-29.696-69.973-69.803v-22.187h99.669v24.576h-53.76c34.133 24.917 52.907 44.544 52.907 67.243 0 26.283-22.187 42.155-51.2 42.155-0.385 0.008-0.839 0.012-1.293 0.012-19.679 0-37.412-8.326-49.871-21.648l16.007-18.641c8.674 9.463 21.091 15.373 34.888 15.373 0.395 0 0.788-0.005 1.18-0.014zM73.557 6.656c15.583 1.746 27.742 14.315 28.837 29.935 0.006 22.118-18.938 35.942-49.829 35.942-0.979 0.053-2.125 0.083-3.277 0.083-18.944 0-35.996-8.101-47.88-21.028l13.952-17.113c8.612 8.446 20.422 13.658 33.449 13.658 0.241 0 0.481-0.002 0.721-0.005 13.617 0 24.54-5.12 24.54-15.701s-9.899-14.165-24.576-14.165c-4.949 0-14.165 0-17.067 0v-25.429h17.067c18.432 0 26.624-4.779 26.624-15.36s-8.875-17.067-24.917-17.067c-0.037 0-0.081 0-0.125 0-14.15 0-26.959 5.74-36.226 15.018l-14.849-18.261c12.162-13.097 29.476-21.266 48.697-21.266 1.301 0 2.593 0.037 3.875 0.111 31.567-0.008 52.047 16.035 52.047 38.904-0.683 16.957-14.020 30.59-30.788 31.738zM981.845 685.909h-773.803c-23.281 0-42.155-18.873-42.155-42.155v-38.912c0-23.281 18.873-42.155 42.155-42.155h773.803c23.281 0 42.155 18.873 42.155 42.155v38.912c0 23.281-18.873 42.155-42.155 42.155zM981.845 377.685h-773.803c-23.281 0-42.155-18.873-42.155-42.155v-38.912c0-23.281 18.873-42.155 42.155-42.155h773.803c0 0 0 0 0 0 23.221 0 42.057 18.776 42.154 41.975v39.092c0 23.281-18.873 42.155-42.155 42.155zM981.845 69.291h-773.803c-23.281 0-42.155-18.873-42.155-42.155v-38.912c0-23.281 18.873-42.155 42.155-42.155h773.803c23.281 0 42.155 18.873 42.155 42.155v38.912c0 23.281-18.873 42.155-42.155 42.155z" />
32
+ <glyph unicode="&#x38;" glyph-name="fi-list-bullet" d="M982.528 662.187h-759.125c-22.904 0-41.472-18.568-41.472-41.472v-38.229c0-22.904 18.568-41.472 41.472-41.472h759.125c22.904 0 41.472 18.568 41.472 41.472v38.229c0 22.904-18.568 41.472-41.472 41.472zM982.528 359.595h-759.125c-22.904 0-41.472-18.568-41.472-41.472v-38.229c0-22.904 18.568-41.472 41.472-41.472h759.125c0 0 0 0 0 0 22.904 0 41.472 18.568 41.472 41.472 0 0.060 0 0.12 0 0.18v38.049c0 22.904-18.568 41.472-41.472 41.472zM982.528 57.003h-759.125c-22.904 0-41.472-18.568-41.472-41.472v-38.229c0.097-22.831 18.627-41.301 41.472-41.301 0 0 0 0 0 0h759.125c22.904 0 41.472 18.568 41.472 41.472v38.229c0 22.904-18.568 41.472-41.472 41.472zM60.587 662.187c-33.461 0-60.587-27.126-60.587-60.587s27.126-60.587 60.587-60.587c33.461 0 60.587 27.126 60.587 60.587s-27.126 60.587-60.587 60.587zM60.587 371.712c-33.461-0.001-60.586-27.126-60.586-60.587s27.126-60.587 60.587-60.587c33.461 0 60.587 27.126 60.587 60.587 0 0.12 0 0.24-0.001 0.36 0 33.443-27.125 60.568-60.587 60.568zM60.587 57.173c-33.461 0-60.587-27.126-60.587-60.587s27.126-60.587 60.587-60.587c33.461 0 60.587 27.126 60.587 60.587s-27.126 60.587-60.587 60.587z" />
33
+ <glyph unicode="&#x39;" glyph-name="fi-lock" horiz-adv-x="808" d="M767.147 528.896h-29.696v97.963c-8.285 177.386-154.114 318.065-332.8 318.065s-324.515-140.679-332.772-317.323l-0.028-98.705h-30.549c-22.81 0-41.301-18.491-41.301-41.301v-510.293c0-22.81 18.491-41.301 41.301-41.301h725.845c22.81 0 41.301 18.491 41.301 41.301v510.293c0 22.81-18.491 41.301-41.301 41.301zM259.584 626.859c0 79.835 64.719 144.555 144.555 144.555s144.555-64.719 144.555-144.555v-97.963h-289.109z" />
34
+ <glyph unicode="&#x3a;" glyph-name="fi-code" horiz-adv-x="1647" d="M7.68 417.792c-4.757 4.731-7.702 11.28-7.702 18.517s2.944 13.787 7.7 18.516l96.257 95.575 290.133 290.133c4.849 4.847 11.546 7.845 18.944 7.845s14.095-2.998 18.944-7.845l76.971-76.8c4.847-4.849 7.845-11.546 7.845-18.944s-2.998-14.095-7.845-18.944l-290.133-290.133 290.133-290.133c4.847-4.849 7.845-11.546 7.845-18.944s-2.998-14.095-7.845-18.944l-76.971-76.8c-4.849-4.847-11.546-7.845-18.944-7.845s-14.095 2.998-18.944 7.845l-290.133 290.133zM1639.595 417.792c4.757 4.731 7.702 11.28 7.702 18.517s-2.944 13.787-7.7 18.516l-96.428 95.575-290.133 290.133c-4.849 4.847-11.546 7.845-18.944 7.845s-14.095-2.998-18.944-7.845l-76.8-76.8c-4.847-4.849-7.845-11.546-7.845-18.944s2.998-14.095 7.845-18.944l290.133-290.133-290.133-290.133c-4.847-4.849-7.845-11.546-7.845-18.944s2.998-14.095 7.845-18.944l76.8-76.8c4.849-4.847 11.546-7.845 18.944-7.845s14.095 2.998 18.944 7.845l290.133 290.133zM694.955-62.464l-102.4 37.376c-10.309 3.77-17.534 13.493-17.534 24.904 0 3.315 0.61 6.487 1.723 9.411l339.395 933.706c3.811 10.23 13.495 17.384 24.85 17.384 3.335 0 6.526-0.617 9.465-1.743l102.219-37.315c10.23-3.811 17.384-13.495 17.384-24.85 0-3.335-0.617-6.526-1.743-9.465l-339.566-933.877c-3.77-10.309-13.493-17.534-24.904-17.534-3.315 0-6.487 0.61-9.411 1.723z" />
35
+ <glyph unicode="&#x3b;" glyph-name="fi-quote" d="M121.515 523.776c-0.889 0.044-1.931 0.070-2.978 0.070-7.62 0-14.927-1.339-21.7-3.794 16.254 48.403 48.287 87.687 89.963 112.438l0.934 0.513h0.853c4.36 2.199 7.299 6.642 7.299 11.771 0 4.647-2.412 8.73-6.052 11.067l-0.052 0.031-51.2 31.915c-2.158 1.841-4.98 2.962-8.064 2.962-2.242 0-4.345-0.592-6.163-1.629l0.061 0.032c-73.388-49.549-121.696-131.41-124.407-224.705-0.009-79.423 51.191-124.309 108.193-124.309 53.055 0.286 96.021 43.073 96.597 96.031 0.102 1.586 0.16 3.374 0.16 5.175 0 45.526-36.906 82.432-82.432 82.432-0.116 0-0.232 0-0.348-0.001zM368.981 523.776c-0.889 0.044-1.931 0.070-2.978 0.070-7.62 0-14.927-1.339-21.7-3.794 16.218 48.471 48.258 87.819 89.964 112.608l0.933 0.513c4.36 2.199 7.299 6.642 7.299 11.771 0 4.647-2.412 8.73-6.052 11.067l-0.052 0.031-51.2 31.915c-2.158 1.841-4.98 2.962-8.064 2.962-2.242 0-4.345-0.592-6.163-1.629l0.061 0.032c-73.989-49.575-122.695-131.902-125.261-225.752-0.008-79.4 51.192-124.286 108.194-124.286 52.835 0.572 95.513 43.25 96.085 96.031 0.102 1.586 0.16 3.374 0.16 5.175 0 45.526-36.906 82.432-82.432 82.432-0.116 0-0.232 0-0.348-0.001zM668.501 555.861c-52.835-0.572-95.513-43.25-96.085-96.031-0.102-1.586-0.16-3.374-0.16-5.175 0-45.526 36.906-82.432 82.432-82.432 0.116 0 0.232 0 0.348 0.001 0.864-0.044 1.896-0.068 2.935-0.068 7.629 0 14.945 1.338 21.726 3.793-16.234-48.464-48.27-87.807-89.966-112.609l-0.932-0.513h-0.853c-4.36-2.199-7.299-6.642-7.299-11.771 0-4.647 2.412-8.73 6.052-11.067l0.052-0.031 51.2-31.915c2.183-1.753 4.97-2.835 8.007-2.901 2.206 0.033 4.258 0.598 6.057 1.57l-0.070-0.034c75.435 53.419 125.269 134.997 125.269 226.133 0 79.019-51.2 123.904-108.203 123.904zM915.797 555.861c-53.055-0.286-96.021-43.073-96.597-96.031-0.102-1.586-0.16-3.374-0.16-5.175 0-45.526 36.906-82.432 82.432-82.432 0.116 0 0.232 0 0.348 0.001 0.909-0.048 1.994-0.076 3.085-0.076 7.636 0 14.959 1.341 21.746 3.8-16.144-48.328-47.991-87.592-89.465-112.44l-0.921-0.511h-0.853c-4.36-2.199-7.299-6.642-7.299-11.771 0-4.647 2.412-8.73 6.052-11.067l0.052-0.031 51.2-31.915c2.183-1.753 4.97-2.835 8.007-2.901 2.206 0.033 4.258 0.598 6.057 1.57l-0.070-0.034c74.752 52.395 124.587 133.803 124.587 225.109 0 79.019-51.2 123.904-108.203 123.904z" />
36
+ <glyph unicode="&#x3c;" glyph-name="fi-style-type" d="M600.235-4.608c0-0.042 0-0.092 0-0.143 0-15.931-7.276-30.162-18.685-39.552-11.343-10.55-26.453-17.019-43.073-17.137-0.026 0-0.030 0-0.033 0-11.14 0-21.521 3.244-30.253 8.839-9.496 6.164-17 15.152-21.316 25.776l-44.678 99.359h-283.307l-44.373-98.645c-4.412-10.932-11.786-19.9-21.129-26.154-8.647-5.591-18.965-8.837-30.041-8.837-0.251 0-0.501 0.002-0.75 0.005-16.766 0.139-32.034 6.598-43.532 17.111-11.636 9.226-19.065 23.426-19.065 39.361 0 0.006 0 0.013 0 0.019 0.497 9.522 2.9 18.373 6.832 26.334l225.616 474.401c5.839 13.038 15.402 23.536 27.33 30.381 11.701 6.853 25.389 10.801 39.998 10.801s28.297-3.948 40.055-10.835c11.808-6.995 21.526-17.206 27.932-29.427l225.816-475.714c3.869-7.822 6.285-16.984 6.652-26.671zM203.093 171.691h194.731l-96.939 217.429zM980.48 319.317q43.52-43.861 43.52-134.144v-188.928c0.067-1.036 0.105-2.247 0.105-3.466 0-15.424-6.089-29.425-15.995-39.732-10.73-9.683-25.041-15.619-40.738-15.619-1.273 0-2.536 0.039-3.789 0.116-0.367-0.026-1-0.037-1.635-0.037-16.095 0-30.664 6.534-41.2 17.094-10.549 10.354-17.086 24.76-17.086 40.694 0 0.514 0.007 1.026 0.020 1.537l-0.002 5.727c-7.996-20.951-22.288-37.999-40.536-49.25-18.994-11.008-41.281-17.361-65.052-17.361-1.28 0-2.555 0.018-3.826 0.055-0.297-0.009-0.87-0.012-1.443-0.012-26.924 0-52.375 6.304-74.959 17.516-20.968 10.24-38.97 26.053-51.962 45.498-12.607 18.963-19.936 41.675-19.936 66.099 0 0.451 0.003 0.902 0.007 1.353-0.104 1.659-0.163 3.679-0.163 5.713 0 24.818 8.756 47.591 23.347 65.398 19.243 18.899 44.285 32.287 72.24 37.242 38.061 7.624 80.858 11.917 124.658 11.917 5.548 0 11.080-0.069 16.595-0.206l20.858 0.016v15.019c0.19 1.951 0.299 4.218 0.299 6.51 0 16.996-5.972 32.597-15.932 44.819-11.911 9.935-27.533 16.048-44.582 16.048-2.294 0-4.563-0.111-6.8-0.327-37.555-3.095-72.498-12.15-104.744-26.231-7.318-4.335-18.437-7.661-30.26-8.382-0.641-0.028-1.133-0.038-1.627-0.038-11.135 0-21.095 5.030-27.732 12.942-6.891 8.683-11.027 19.729-11.027 31.74 0 0.861 0.021 1.718 0.063 2.569-0.029 0.454-0.044 1.126-0.044 1.802 0 9.556 2.815 18.454 7.661 25.911 6.169 8.019 14.031 14.681 23.056 19.429 21.018 11.107 44.941 19.783 70.137 24.97 26.728 6.037 55.41 9.331 84.859 9.347q90.294 0 133.814-43.861zM880.981 47.616c14.043 15.93 22.615 36.976 22.615 60.024 0 1.398-0.032 2.789-0.094 4.172l0.007 13.969h-14.165c-4.533 0.256-9.837 0.403-15.176 0.403-28.403 0-55.84-4.137-81.741-11.842-13.531-4.937-24.486-19.494-24.486-36.61 0-0.748 0.021-1.491 0.062-2.228-0.023-0.401-0.033-0.993-0.033-1.586 0-13.9 5.691-26.471 14.87-35.51 9.691-9.115 22.769-14.712 37.154-14.712 0.62 0 1.238 0.010 1.853 0.031 0.789-0.038 1.821-0.059 2.857-0.059 22.309 0 42.392 9.534 56.396 24.749zM571.904 537.941l19.797 53.589c19.302 51.135 58.945 90.778 108.798 109.654l55.042 19.882-53.589 19.797c-51.135 19.302-90.778 58.945-109.654 108.798l-20.394 55.554-19.797-53.76c-19.302-51.135-58.945-90.778-108.798-109.654l-55.042-20.735 53.589-19.797c51.122-19.322 90.758-58.958 109.653-108.798zM889.685 445.781l13.483 36.352c13.184 34.97 40.294 62.080 74.388 74.973l37.569 13.773-36.693 13.653c-34.97 13.184-62.080 40.294-74.973 74.388l-13.773 37.569-13.483-36.693c-13.221-35-40.396-62.12-74.557-74.974l-37.571-13.772 36.693-13.483c35-13.221 62.12-40.396 74.974-74.557z" />
37
+ <glyph unicode="&#x3d;" glyph-name="fi-plus" horiz-adv-x="980" d="M935.083 531.627h-361.472v361.472c0 0 0 0.001 0 0.001 0 24.669-19.902 44.691-44.526 44.884h-78.013c-24.695 0-44.715-20.019-44.715-44.715v-361.643h-361.643c-24.656-0.097-44.618-20.058-44.715-44.705v-77.833c0.097-24.656 20.058-44.618 44.705-44.715h361.652v-361.472c0-24.695 20.019-44.715 44.715-44.715h77.995c24.656 0.097 44.618 20.058 44.715 44.705v361.481h361.301c24.656 0.097 44.618 20.058 44.715 44.705v77.833c-0.097 24.656-20.058 44.618-44.705 44.715z" />
38
+ <glyph unicode="&#x3e;" glyph-name="fi-fast-forward" d="M1024 448c-0.004 9.861-5.897 18.345-14.353 22.125l-0.154 0.061-526.336 304.811c-4.361 4.245-10.324 6.863-16.898 6.863-13.277 0-24.061-10.677-24.233-23.913v-214.203l-400.896 231.253c-4.361 4.245-10.324 6.863-16.898 6.863-13.277 0-24.061-10.677-24.233-23.913v-619.707c0-0.009 0-0.020 0-0.032 0-13.384 10.85-24.235 24.235-24.235 6.743 0 12.842 2.753 17.235 7.197l400.386 231.256v-214.187c0-0.009 0-0.020 0-0.032 0-13.384 10.85-24.235 24.235-24.235 6.743 0 12.842 2.753 17.235 7.197l529.069 305.325c7.014 4.329 11.619 11.973 11.619 20.692 0 0.286-0.005 0.57-0.015 0.853z" />
39
+ <glyph unicode="&#x3f;" glyph-name="fi-question" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM552.789 170.667c-11.513-10.623-26.956-17.137-43.921-17.137-1.059 0-2.113 0.025-3.16 0.076-0.751-0.050-1.805-0.076-2.864-0.076-16.965 0-32.408 6.514-43.966 17.177-11.108 11.186-18 26.656-18 43.736s6.893 32.549 18.048 43.779c12.419 10.757 28.738 17.313 46.589 17.313s34.17-6.556 46.681-17.392c11.062-11.151 17.955-26.621 17.955-43.7s-6.893-32.549-18.048-43.779zM676.352 527.531c-14.593-25.881-32.311-48.004-53.036-66.882l-32.638-31.081c-18.585-17.435-31.085-41.162-34.087-67.765l-1.582-24.907h-102.4c-0.104 2.643-0.163 5.746-0.163 8.863 0 28.82 5.063 56.457 14.347 82.072 11.385 24.359 28.247 46.249 49.016 63.625 18.67 15.401 34.551 32.639 47.867 51.794 8.039 12.997 12.482 27.729 12.496 43.498q0 68.271-62.464 68.271c-0.543 0.017-1.181 0.026-1.822 0.026-17.84 0-33.952-7.398-45.435-19.293-11.575-12.699-18.652-29.637-18.652-48.228 0-0.751 0.012-1.5 0.035-2.246l-116.056 0.109c-0.089 1.957-0.14 4.251-0.14 6.558 0 44.597 19.006 84.754 49.36 112.815 32.988 27.163 75.53 43.576 121.907 43.576 3.801 0 7.575-0.11 11.321-0.328q84.816 0.024 131.067-40.936c28.949-26.748 47.016-64.908 47.016-107.288 0-3.024-0.092-6.026-0.273-9.004 0.020 0.268 0.021 0.101 0.021-0.066 0-23.235-5.614-45.158-15.561-64.488z" />
40
+ <glyph unicode="&#x40;" glyph-name="fi-at-sign" d="M1024 448c0 0.094 0 0.205 0 0.316 0 282.77-229.23 512-512 512s-512-229.23-512-512c0-282.77 229.23-512 512-512 91.978 0 178.291 24.254 252.894 66.714 5.881 1.727 11.779 9.644 11.779 18.94 0 8.449-4.872 15.759-11.96 19.276l-0.125 0.056-89.088 54.613c-3.681 3.179-8.513 5.115-13.797 5.115-3.297 0-6.417-0.754-9.199-2.099l0.126 0.055c-41.375-17.071-89.413-26.983-139.766-26.983-207.365 0-375.467 168.102-375.467 375.467s168.102 375.467 375.467 375.467c194.738 0 354.849-148.253 373.626-338.052 0.125-138.090-59.609-214.378-106.371-214.378-25.259 0-44.373 17.067-44.373 54.101 0.586 10.629 1.864 20.525 3.809 30.179l56.607 270.536c0.039 0.435 0.062 0.94 0.062 1.451s-0.022 1.016-0.066 1.515c0.005 9.927-8.095 18.026-18.086 18.026h-98.645c-8.664-0.322-15.735-6.748-17.053-15.088l-0.013-0.102-10.069-48.469c-25.259 45.568-76.8 80.384-150.187 80.384-139.264 0-271.36-133.291-271.36-294.229 0-116.395 69.632-201.728 186.197-201.728 71.825 3.066 134.397 40.097 172.402 95.342l1.678-6.424c8.363-45.568 134.315-103.424 206.507-103.424 103.765 0 226.475 70.485 226.475 272.213v0c0 7.68 0 15.36 0 23.040zM602.283 354.475c-26.453-37.205-69.632-79.189-133.291-79.189s-98.475 43.179-98.475 105.643c0 87.723 68.267 174.080 164.523 174.080 0.515 0.009 1.121 0.014 1.73 0.014 42.16 0 78.523-24.816 95.279-60.638z" />
41
+ <glyph unicode="&#x41;" glyph-name="fi-paperclip" horiz-adv-x="927" d="M200.533-64c-51.493 1.136-97.52 23.616-129.751 58.91-61.908 61.751-69.588 121.314-65.321 160.396 7.914 52.328 33.104 97.701 69.471 131.097l392.695 392.679c109.568 109.568 182.443 69.461 216.235 35.84 40.789-40.789 68.267-111.275-36.693-215.381l-361.301-361.472-70.315 70.997 361.131 360.448c55.637 55.637 42.837 68.267 36.693 74.752s-19.797 19.797-75.435-35.84l-392.533-392.533c-20.474-18.44-35.098-43.015-40.978-70.817-3.054-26.463 8.893-52.063 36.37-79.711 34.133-34.133 59.904-30.549 68.267-29.355 30.677 7.419 56.812 23.685 76.316 45.914l465.551 465.745c32.166 29.338 56.871 66.308 71.298 108.071 14.547 53.038-2.178 100.313-50.648 148.782-51.2 51.2-133.291 104.448-257.536-19.968l-428.715-429.739c-9.043-9.107-21.57-14.744-35.413-14.744-27.56 0-49.901 22.342-49.901 49.901 0 13.716 5.534 26.14 14.491 35.16l429.224 429.736c133.291 132.779 278.528 140.117 398.677 19.797 93.184-93.184 93.184-183.979 76.629-243.712-19.472-60.91-53.065-112.682-97.048-153.387l-465.811-465.621c-34.177-37.539-79.86-64.066-131.449-74-8.080-1.219-15.674-1.778-23.399-1.778-0.281 0-0.562 0.001-0.843 0.002z" />
42
+ <glyph unicode="&#x42;" glyph-name="fi-bold" horiz-adv-x="854" d="M657.067 464.043c96.768 19.968 176.64 107.52 176.64 234.837 0 136.704-99.84 261.12-294.912 261.12h-491.691c-26.015 0-47.104-21.089-47.104-47.104v-929.792c0-26.015 21.089-47.104 47.104-47.104h508.587c196.608 0 297.643 122.88 297.643 277.845 0 127.488-85.333 234.155-196.267 250.197zM217.941 768h273.067c73.728 0 119.467-44.544 119.467-107.52 0-66.048-46.080-107.52-119.467-107.52h-273.067zM500.395 127.829h-282.453v233.472h282.624c84.48 0 130.56-52.224 130.56-116.736 0-73.728-49.152-116.736-130.56-116.736z" />
43
+ <glyph unicode="&#x43;" glyph-name="fi-crop" horiz-adv-x="1028" d="M993.343 183.651h-90.771v591.382c0 0.856 0 1.713 0 2.569 0 33.106-26.837 59.943-59.943 59.943h-592.581v88.202c0 18.918-15.336 34.253-34.253 34.253h-57.032c-18.918 0-34.253-15.336-34.253-34.253v0-88.373h-90.257c-18.918 0-34.253-15.336-34.253-34.253v-57.374c0-18.918 15.336-34.253 34.253-34.253h90.771v-590.697c0-0.856 0-1.713 0-2.569 0-33.106 26.837-59.943 59.943-59.943h592.581v-88.716c0-18.918 15.336-34.253 34.253-34.253h57.374c18.918 0 34.253 15.336 34.253 34.253v89.058h89.915c18.918 0 34.253 15.336 34.253 34.253v56.86c0 18.918-15.336 34.253-34.253 34.253zM249.535 183.993v528.527h528.013v-528.87h-527.5z" />
44
+ <glyph unicode="&#x44;" glyph-name="fi-photo-picture" d="M1024 747.52c0 29.22-23.687 52.907-52.907 52.907-1.175 0.096-2.544 0.151-3.925 0.151s-2.75-0.055-4.104-0.162l0.179 0.353h-910.336c0 0-0.001 0-0.001 0-29.22 0-52.907-23.687-52.907-52.907 0-0.12 0-0.24 0.001-0.36v0.018-764.245c2.858-26.681 25.25-47.277 52.453-47.277 0.16 0 0.319 0.001 0.478 0.002h909.8v1.195c2.769-0.531 5.955-0.835 9.211-0.835 26.829 0 48.838 20.635 51.022 46.9l1.036 0.186v764.075zM906.069 53.931h-128.683c-0.44 2.001-1.087 3.768-1.935 5.414l0.058-0.123-268.971 466.261c-5.996 12.317-18.418 20.656-32.789 20.656-14.766 0-27.477-8.804-33.167-21.45l-179.292-310.502-43.861 75.947c-3.219 6.282-9.649 10.507-17.067 10.507s-13.848-4.225-17.017-10.399l-65.415-112.577v504.832h788.139zM726.699 623.275c65.98 0 119.467-53.487 119.467-119.467s-53.487-119.467-119.467-119.467c-65.98 0-119.467 53.487-119.467 119.467s53.487 119.467 119.467 119.467z" />
45
+ <glyph unicode="&#x45;" glyph-name="fi-refresh" horiz-adv-x="1001" d="M999.595 858.624c-0.539 11.636-10.103 20.865-21.823 20.865-4.598 0-8.864-1.42-12.383-3.846l-92.087-66.512c-92.294 91.448-219.348 147.953-359.598 147.953-282.204 0-510.976-228.772-510.976-510.976s228.772-510.976 510.976-510.976c175.688 0 330.668 88.667 422.63 223.693 3.844 5.786 5.457 10.731 5.457 16.052 0 8.765-4.375 16.507-11.061 21.163l-128.596 90.168c-4.304 2.932-9.618 4.682-15.341 4.682-9.403 0-17.703-4.724-22.657-11.927-55.279-81.86-147.613-134.911-252.338-134.911-167.588 0-303.445 135.857-303.445 303.445s135.857 303.445 303.445 303.445c71.259 0 136.78-24.562 188.56-65.682l-15.131-9.932-85.333-61.611c-5.509-4.016-9.048-10.447-9.048-17.705 0-9.562 6.143-17.688 14.698-20.649l367.257-125.145c2.119-0.76 4.563-1.2 7.111-1.2 4.765 0 9.171 1.538 12.749 4.144 5.281 3.849 8.77 10.008 8.983 16.991z" />
46
+ <glyph unicode="&#x46;" glyph-name="fi-animation-video" horiz-adv-x="1263" d="M1174.357 908.8h-1085.099c-49.296 0-89.259-39.962-89.259-89.259v-743.083c0-49.296 39.962-89.259 89.259-89.259h1085.099c49.002 0.387 88.576 40.2 88.576 89.256 0 0.001 0 0.002 0 0.003v743.082c0 0.001 0 0.002 0 0.003 0 49.056-39.574 88.869-88.539 89.256zM252.757 91.307c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.253 0.193-29.355 13.413-29.355 29.694 0 0.001 0 0.001 0 0.002v73.557c0 0 0 0 0 0 0 16.401 13.295 29.696 29.696 29.696 0.060 0 0.12 0 0.18-0.001h119.457c16.401 0 29.696-13.295 29.696-29.696zM252.757 731.136c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 0.052-0.001 0.114-0.001 0.175 0 16.401 13.295 29.696 29.696 29.696 0.18 0 0.36-0.002 0.539-0.005h119.44c16.179-0.288 29.185-13.471 29.185-29.692 0-0.062 0-0.123-0.001-0.185zM564.907 91.307c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 16.401 13.295 29.696 29.696 29.696h119.467c16.401 0 29.696-13.295 29.696-29.696zM564.907 731.136c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 16.401 13.295 29.696 29.696 29.696h119.467c16.401 0 29.696-13.295 29.696-29.696zM877.056 91.307c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 16.401 13.295 29.696 29.696 29.696h119.467c16.401 0 29.696-13.295 29.696-29.696zM877.056 731.136c0-16.401-13.295-29.696-29.696-29.696h-119.467c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 16.401 13.295 29.696 29.696 29.696h119.467c16.401 0 29.696-13.295 29.696-29.696zM1189.205 91.307c0-16.401-13.295-29.696-29.696-29.696h-118.443c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 16.401 13.295 29.696 29.696 29.696h119.467c16.401 0 29.696-13.295 29.696-29.696zM1189.205 731.136c0-16.401-13.295-29.696-29.696-29.696h-118.443c-16.401 0-29.696 13.295-29.696 29.696v73.557c0 0.051 0 0.111 0 0.171 0 16.401 13.295 29.696 29.696 29.696 0 0 0 0 0 0h119.467c15.954-0.567 28.673-13.638 28.673-29.678 0-0.066 0-0.132-0.001-0.199z" />
47
+ <glyph unicode="&#x47;" glyph-name="fi-thumbnails" d="M200.875 960h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-165.035c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v165.035c0 19.794-16.046 35.84-35.84 35.84zM594.432 960h-164.864c-19.794 0-35.84-16.046-35.84-35.84v-165.035c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v165.035c0 0 0 0 0 0 0 19.794-16.046 35.84-35.84 35.84-0.060 0-0.12 0-0.18 0zM1024 924.16c0 19.794-16.046 35.84-35.84 35.84h-165.035c-19.794 0-35.84-16.046-35.84-35.84v0-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864zM200.875 566.272h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-165.035c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v165.035c0 19.794-16.046 35.84-35.84 35.84zM594.432 566.272h-164.864c-19.794 0-35.84-16.046-35.84-35.84v-165.035c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v165.035c0 19.794-16.046 35.84-35.84 35.84zM988.16 566.272h-165.035c-19.794 0-35.84-16.046-35.84-35.84v0-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84zM200.875 172.544h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84zM594.432 172.544h-164.864c-19.794 0-35.84-16.046-35.84-35.84v-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84zM988.16 172.544h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84z" />
48
+ <glyph unicode="&#x48;" glyph-name="fi-help-support" d="M989.867 631.637c-7.098 18.287-24.554 31.016-44.983 31.016-6.033 0-11.807-1.11-17.128-3.137l-14.006-5.18c-44.074 84.36-111.225 151.511-193.089 194.394l2.796 15.526c1.895 4.965 2.992 10.707 2.992 16.706 0 20.352-12.633 37.754-30.485 44.791-54.809 21.677-117.927 34.179-183.964 34.179s-129.155-12.502-187.114-35.269c-14.81-5.894-27.539-23.351-27.539-43.78 0-6.033 1.11-11.807 3.137-17.128l5.18-14.006c-84.36-44.074-151.511-111.225-194.394-193.089l-15.526 2.796c-4.965 1.895-10.707 2.992-16.706 2.992-20.352 0-37.754-12.633-44.791-30.485-21.677-54.809-34.179-117.927-34.179-183.964s12.502-129.155 35.269-187.114c5.894-14.81 23.351-27.539 43.78-27.539 6.033 0 11.807 1.11 17.128 3.137l14.006 5.18c44.083-84.353 111.231-151.501 193.089-194.393l-2.795-15.527c-1.895-4.965-2.992-10.707-2.992-16.706 0-20.352 12.633-37.754 30.485-44.791 54.785-21.656 117.873-34.146 183.878-34.146s129.093 12.49 187.029 35.235c14.81 5.895 27.539 23.351 27.539 43.781 0 6.033-1.11 11.807-3.137 17.128l-5.18 14.006c84.422 44.057 151.629 111.21 194.564 193.091l15.527-2.797c4.965-1.895 10.707-2.992 16.706-2.992 20.352 0 37.754 12.633 44.791 30.485 21.656 54.785 34.146 117.873 34.146 183.878s-12.49 129.093-35.235 187.029zM305.152 365.397l-226.133-83.627c-19.522 49.344-30.84 106.508-30.84 166.315s11.318 116.97 31.93 169.465l10.174-7.246 214.869-79.531c-10.091-24.452-15.95-52.843-15.95-82.603s5.859-58.15 16.487-84.082zM512 911.872c0.020 0 0.044 0 0.068 0 59.758 0 116.869-11.337 169.297-31.979l-7.232-10.176-79.531-214.869c-24.452 10.091-52.843 15.95-82.603 15.95s-58.15-5.859-84.082-16.487l-82.147 226.67c49.292 19.553 106.403 30.891 166.161 30.891 0.024 0 0.048 0 0.072 0zM512-15.701c-0.020 0-0.044 0-0.068 0-59.758 0-116.869 11.337-169.297 31.979l86.763 225.045c24.452-10.091 52.843-15.95 82.603-15.95s58.15 5.859 84.082 16.487l82.147-226.67c-49.301-19.615-106.427-31.011-166.209-31.061zM674.133 513.195c7.926-19.144 12.529-41.376 12.529-64.683s-4.603-45.539-12.949-65.836c-1.787-4.171-3.069-10.354-3.069-16.837 0-20.603 12.946-38.182 31.147-45.047l5.793-2.158c-17.663-26.282-39.596-48.214-65.032-65.341l-2.893 4.925c-6.974 18.532-24.553 31.478-45.156 31.478-6.483 0-12.666-1.282-18.311-3.606-18.824-7.81-41.056-12.413-64.362-12.413s-45.539 4.603-65.836 12.949c-4.13 1.75-10.262 3.009-16.689 3.009-20.58 0-38.144-12.918-45.024-31.088l-2.158-5.792c-26.211 17.68-48.086 39.609-65.169 65.027l4.923 2.898c18.532 6.974 31.478 24.553 31.478 45.156 0 6.483-1.282 12.666-3.606 18.311-7.81 18.824-12.413 41.056-12.413 64.362s4.603 45.539 12.949 65.836c1.75 4.13 3.009 10.262 3.009 16.689 0 20.58-12.918 38.144-31.088 45.024l-5.792 2.158c17.637 26.198 39.509 48.070 64.864 65.171l2.891-4.926c6.974-18.532 24.553-31.478 45.156-31.478 6.483 0 12.666 1.282 18.311 3.606 18.823 7.818 41.054 12.426 64.362 12.426s45.54-4.608 65.834-12.962c4.173-1.787 10.356-3.069 16.839-3.069 20.603 0 38.182 12.946 45.047 31.147l2.158 5.793c26.269-17.621 48.198-39.496 65.343-64.868l-4.927-2.886c-18.501-6.99-31.419-24.554-31.419-45.134 0-6.426 1.26-12.559 3.545-18.163zM944.981 281.771l-11.264 4.096-214.869 79.531c10.091 24.452 15.95 52.843 15.95 82.603s-5.859 58.15-16.487 84.082l226.67 82.147c19.522-49.344 30.84-106.508 30.84-166.315s-11.318-116.97-31.93-169.465z" />
49
+ <glyph unicode="&#x49;" glyph-name="fi-info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM564.224 163.157c0-9.426-7.641-17.067-17.067-17.067h-69.291c-9.426 0-17.067 7.641-17.067 17.067v330.752c0 9.426 7.641 17.067 17.067 17.067h68.267c9.426 0 17.067-7.641 17.067-17.067zM512 585.387c-34.109 0.386-61.611 28.126-61.611 62.29 0 0.061 0 0.123 0 0.184 0 34.3 27.813 62.113 62.123 62.113s62.123-27.813 62.123-62.123c0 0 0 0 0 0 0-34.498-27.966-62.464-62.464-62.464-0.060 0-0.12 0-0.18 0z" />
50
+ <glyph unicode="&#x4a;" glyph-name="fi-home" horiz-adv-x="933" d="M919.893 612.352l-439.637 340.48c-5.728 4.501-13.043 7.218-20.992 7.218s-15.264-2.717-21.066-7.274l-425.569-340.766c-7.718-6.297-12.612-15.802-12.629-26.45v-615.427c0-18.851 15.282-34.133 34.133-34.133h252.757c18.851 0 34.133 15.282 34.133 34.133v376.832h291.328v-376.832c0-18.851 15.282-34.133 34.133-34.133h252.757c18.851 0 34.133 15.282 34.133 34.133v615.424c-0.040 10.857-5.142 20.514-13.068 26.739z" />
51
+ <glyph unicode="&#x4b;" glyph-name="fi-heart" horiz-adv-x="1066" d="M1064.619 599.723c0 2.901 0 5.973 0 8.875s0 6.485 0 9.899 0 11.093 0 17.067c0 2.389 0 4.608 0 6.827 0 6.997-0.853 13.995-1.707 20.992 0 1.024 0 2.048 0 2.901-7.166 56.63-32.754 106.261-70.47 143.686-52.324 51.4-124.098 83.119-203.279 83.119s-150.955-31.72-203.307-83.146c-39.723-41.089-44.672-54.742-52.864-54.742s-13.483 13.141-53.419 53.76c-51.377 51.152-122.234 82.774-200.476 82.774-0.26 0-0.52 0-0.78-0.001-1.041 0.015-2.318 0.023-3.596 0.023-78.494 0-149.586-31.693-201.177-82.981-37.803-37.152-63.585-86.453-71.016-141.575-0.139-2.283-0.139-3.307-0.139-4.161 0-6.997-1.365-13.824-1.707-20.992q0-3.413 0-6.827c0-5.461 0-11.093 0-17.067s0-6.485 0-9.728 0-6.144 0-9.045c8.14-70.080 31.594-133.365 66.928-188.283l-1.050 1.744c2.389-3.755 4.096-7.68 6.656-11.435 96.256-149.845 375.637-397.141 459.435-397.141v0c83.968 0 363.179 247.979 459.776 397.824 2.389 3.755 4.267 7.68 6.656 11.435v0c34.217 53.55 57.47 117.289 65.018 185.758z" />
52
+ <glyph unicode="&#x4c;" glyph-name="fi-lightbulb" horiz-adv-x="693" d="M692.907 613.547c0 0.114 0 0.249 0 0.384 0 191.341-155.112 346.453-346.453 346.453s-346.453-155.112-346.453-346.453c0-103.281 45.193-196.007 116.883-259.48 16.89-14.701 27.326-35.713 27.501-59.166v-44.063c0-0.051 0-0.111 0-0.171 0-23.187 18.797-41.984 41.984-41.984 0 0 0 0 0 0h320.171c23.187 0 41.984 18.797 41.984 41.984v44.203c0.203 23.426 10.635 44.375 27.040 58.628 72.14 63.639 117.344 156.172 117.344 259.263 0 0.142 0 0.283 0 0.425zM530.432 74.581h-367.957c-9.991 0-18.091 8.099-18.091 18.091v39.424c0 9.991 8.099 18.091 18.091 18.091h367.957c9.991 0 18.091-8.099 18.091-18.091v-39.424c0-9.991-8.099-18.091-18.091-18.091zM465.579-64h-238.933c-9.991 0-18.091 8.099-18.091 18.091v39.253c0 9.991 8.099 18.091 18.091 18.091h238.933c9.991 0 18.091-8.099 18.091-18.091v-39.424c-0.097-9.918-8.159-17.92-18.090-17.92 0 0-0.001 0-0.001 0z" />
53
+ <glyph unicode="&#x4d;" glyph-name="fi-arrow-location" horiz-adv-x="1032" d="M430.080-59.904l-429.227 1005.397c-0.524 1.201-0.829 2.601-0.829 4.072 0 5.75 4.661 10.411 10.411 10.411 1.471 0 2.871-0.305 4.139-0.855l1013.693-434.833c2.667-0.908 4.552-3.391 4.552-6.315s-1.885-5.406-4.505-6.301l-367.834-112.654c-47.538-14.921-84.376-51.253-99.702-97.401l-118.069-361.010c-0.908-2.667-3.391-4.552-6.315-4.552s-5.406 1.885-6.301 4.505z" />
54
+ <glyph unicode="&#x4e;" glyph-name="fi-arrow-pointer-cursor" horiz-adv-x="641" d="M208.213 248.832l-170.667-128.171c-3.885-2.982-8.815-4.779-14.165-4.779-12.913 0-23.381 10.468-23.381 23.381 0 0 0 0.001 0 0.001v797.355c-0.004 0.167-0.007 0.364-0.007 0.562 0 12.913 10.468 23.381 23.381 23.381 6.471 0 12.327-2.628 16.561-6.876l593.921-599.041c4.145-4.216 6.704-10.003 6.704-16.387 0-12.913-10.468-23.381-23.381-23.381-0.137 0-0.273 0.001-0.409 0.004h-208.193l129.536-276.48c1.385-2.898 2.195-6.3 2.195-9.89 0-9.31-5.442-17.349-13.318-21.111l-147.256-68.327c-2.898-1.385-6.3-2.195-9.89-2.195-9.31 0-17.349 5.442-21.111 13.318z" />
55
+ <glyph unicode="&#x4f;" glyph-name="fi-plugin-2" horiz-adv-x="645" d="M568.491 655.701l2.731 274.603c0.001 0.101 0.002 0.221 0.002 0.341 0 16.212-13.143 29.355-29.355 29.355-0.001 0-0.001 0-0.002 0h-87.040c-16.055-0.093-29.068-12.987-29.354-28.986l-2.731-275.312h-200.021l2.731 274.432c0.003 0.152 0.004 0.332 0.004 0.512 0 16.154-13.048 29.26-29.179 29.354h-87.049c-0.001 0-0.003 0-0.004 0-16.126 0-29.233-12.929-29.521-28.986l-2.731-275.312h-76.971v-168.96c0.699-144.669 96.73-266.722 228.462-306.607l5.010-214.268c0.049-8.233 3.581-15.631 9.196-20.803 5.313-5.089 12.508-8.21 20.432-8.21 0.024 0 0.048 0 0.072 0h-0.004c29.355 0 45.568 0.853 61.781 1.536s31.573 1.365 59.904 1.536c0.001 0 0.001 0 0.002 0 16.281 0 29.501 13.101 29.694 29.336v209.597c133.939 40.538 229.895 162.573 230.57 307.121v169.039z" />
56
+ <glyph unicode="&#x50;" glyph-name="fi-plugins" d="M552.789 654.336h-122.539v-200.021h119.467c2.567-0.199 5.558-0.312 8.576-0.312 27.747 0 53.258 9.568 73.416 25.586 17.148 16.574 27.949 40.068 27.949 66.085 0 2.143-0.073 4.27-0.218 6.376 0.091 1.159 0.133 2.849 0.133 4.549 0 26.935-10.721 51.366-28.129 69.259-19.352 17.702-45.265 28.562-73.714 28.562-1.498 0-2.988-0.030-4.471-0.090zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM703.829 420.864q-55.296-46.933-154.965-46.933h-118.613v-212.651h-99.669v573.44h219.307q96.256 0 152.747-50.005c34.806-30.999 56.621-75.939 56.621-125.974 0-2.333-0.047-4.655-0.141-6.965 0.161-2.289 0.247-5.355 0.247-8.44 0-48.739-21.416-92.476-55.351-122.315z" />
57
+ <glyph unicode="&#x51;" glyph-name="fi-trash" horiz-adv-x="845" d="M788.651 828.416c0.052 0 0.113 0.001 0.175 0.001 16.598 0 30.087-13.311 30.374-29.84v-88.091c-0.19-16.512-13.525-29.847-30.019-30.037h-732.69c-0.125-0.002-0.272-0.003-0.42-0.003-8.153 0-15.512 3.403-20.733 8.867l-0.010 0.011c-5.475 5.258-8.877 12.639-8.877 20.815 0 0.122 0.001 0.244 0.002 0.366v-0.019 88.064c-0.001 0.103-0.002 0.225-0.002 0.348 0 8.176 3.402 15.557 8.867 20.806l0.010 0.009c5.258 5.475 12.639 8.877 20.815 8.877 0.122 0 0.244-0.001 0.366-0.002h247.448v37.376c0.19 16.512 13.525 29.847 30.019 30.037h177.17c16.512-0.19 29.847-13.525 30.037-30.019v-37.565zM748.373 626.005c16.512-0.19 29.847-13.525 30.037-30.019v-629.949c0.003-0.149 0.004-0.325 0.004-0.501 0-8.034-3.191-15.324-8.374-20.67l0.007 0.008c-5.204-5.479-12.543-8.887-20.678-8.887-0.29 0-0.58 0.004-0.868 0.013l0.042-0.001h-651.776c-0.267-0.009-0.582-0.014-0.897-0.014-8.113 0-15.43 3.41-20.594 8.875l-0.013 0.013c-5.276 5.332-8.536 12.668-8.536 20.765 0 0.14 0.001 0.279 0.003 0.419v-0.021 629.931c-0.002 0.118-0.003 0.258-0.003 0.397 0 8.097 3.26 15.434 8.539 20.768l-0.003-0.003c5.177 5.479 12.494 8.889 20.607 8.889 0.315 0 0.63-0.005 0.943-0.015l-0.046 0.001z" />
58
+ <glyph unicode="&#x52;" glyph-name="fi-arrow-return-back" d="M957.099 501.248h-760.32l198.144 197.973c3.329 3.122 5.403 7.548 5.403 12.459s-2.074 9.336-5.393 12.45l-51.209 51.209c-3.122 3.329-7.548 5.403-12.459 5.403s-9.336-2.074-12.45-5.393l-250.547-251.913-63.317-63.317c-3.118-3.093-5.048-7.38-5.048-12.117s1.93-9.024 5.047-12.116l314.54-314.54c3.122-3.329 7.548-5.403 12.459-5.403s9.336 2.074 12.45 5.393l51.209 51.209c3.329 3.122 5.403 7.548 5.403 12.459s-2.074 9.336-5.393 12.45l-198.836 197.299h703.829c9.426 0 17.067-7.641 17.067-17.067v-140.288c0-3.413 6.485-6.315 14.507-6.315h77.141c8.021 0 14.507 2.901 14.507 6.315v196.779c0 36.949-29.953 66.901-66.901 66.901z" />
59
+ <glyph unicode="&#x53;" glyph-name="fi-star" d="M1022.635 572.928c-3.255 9.924-12.398 16.98-23.2 17.067h-346.293l-117.931 333.312c-3.443 9.687-12.531 16.499-23.211 16.499s-19.767-6.811-23.157-16.327l-117.984-334.166h-346.283c-13.554-0.025-24.532-11.018-24.532-24.576 0-7.796 3.63-14.744 9.292-19.247l270.386-214.055-121.003-342.357c-0.92-2.477-1.453-5.339-1.453-8.325 0-13.573 11.003-24.576 24.576-24.576 4.699 0 9.091 1.319 12.824 3.607l317.333 190.403 317.44-190.293c3.626-2.227 8.017-3.546 12.717-3.546 13.573 0 24.576 11.003 24.576 24.576 0 2.986-0.533 5.848-1.508 8.495l-120.948 342.016 270.336 214.016c5.646 4.542 9.228 11.45 9.228 19.194 0 2.907-0.505 5.696-1.431 8.284z" />
60
+ <glyph unicode="&#x54;" glyph-name="fi-themes" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM739.499 654.507h-178.859v-493.227h-98.816v493.056h-177.323v80.384h454.997z" />
61
+ <glyph unicode="&#x55;" glyph-name="fi-underline" horiz-adv-x="990" d="M941.397 33.451h-894.293c-26.816 0-48.555-21.739-48.555-48.555s21.739-48.555 48.555-48.555h894.293c26.91 0 48.725 21.815 48.725 48.725s-21.815 48.725-48.725 48.725zM494.933 89.6c256.853 0 382.805 146.944 382.805 365.568v457.387c-0.097 26.164-21.281 47.349-47.436 47.445h-62.303c-26.164-0.097-47.349-21.281-47.445-47.436s0-1.204 0-1.887v-452.267c-0.341-140.288-78.507-232.277-225.621-232.277s-225.109 91.989-225.109 232.277v452.267s0 1.195 0 1.707c0 0 0 0.001 0 0.001 0 26.298-21.318 47.616-47.616 47.616-0.12 0-0.24 0-0.36-0.001h-62.104c-26.164-0.097-47.349-21.281-47.445-47.436v-458.079c0-218.453 126.635-364.885 382.635-364.885z" />
62
+ <glyph unicode="&#x56;" glyph-name="fi-infinity" horiz-adv-x="1365" d="M1085.611 748.373c-141.995 0-297.472-78.507-402.944-198.997-105.472 120.491-261.12 198.997-402.944 198.997-135.339 0-279.723-78.507-279.723-300.373s144.384-300.373 279.723-300.373c141.995 0 297.472 78.507 402.944 198.997 105.472-120.491 260.949-198.997 402.944-198.997 135.339 0 279.723 78.507 279.723 300.373s-144.384 300.373-279.723 300.373zM279.723 267.776c-103.253 0-155.648 60.757-155.648 180.224s52.395 180.224 155.648 180.224c114.176 0 246.613-74.069 328.021-180.224-81.408-106.155-214.016-180.224-328.021-180.224zM1085.611 267.776c-114.176 0-246.784 74.069-328.192 180.224 81.408 106.155 214.016 180.224 328.192 180.224 103.253 0 155.477-60.757 155.477-180.224s-52.224-180.224-155.477-180.224z" />
63
+ <glyph unicode="&#x57;" glyph-name="fi-web-globe-world" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM925.696 495.275h-125.611c-9.899 146.603-64.853 273.067-143.019 343.040 144.888-55.283 249.655-184.947 268.267-341.061zM460.8 789.333v-293.547h-141.141c11.093 146.773 73.045 256 140.629 293.547zM460.288 400.213v-293.547c-68.267 37.888-129.195 146.261-140.629 292.523zM555.861 103.595v296.107h148.309c-11.776-151.723-77.824-262.827-148.309-296.619zM555.861 495.616v297.131c70.656-34.133 136.533-145.237 148.309-297.472zM366.763 838.315c-78.165-70.656-133.12-196.267-143.019-343.040h-125.44c18.804 158.093 123.57 287.757 265.597 342.078zM98.475 399.701h125.44c10.069-146.261 64.853-271.531 142.848-341.333-144.368 55.070-248.893 183.969-268.084 339.305zM657.237 58.368c77.995 70.485 132.949 195.755 142.848 341.333h125.44c-19.395-157.364-123.919-286.263-265.426-340.372z" />
64
+ <glyph unicode="&#x58;" glyph-name="fi-alert" d="M1020.245-2.048v0l-1.707 2.901c-0.944 1.815-1.85 3.322-2.836 4.771l-465.132 806.066c-7.59 13.891-22.097 23.155-38.768 23.155-18.005 0-33.485-10.806-40.31-26.287l-0.111-0.282-461.653-799.915c-6.060-7.461-9.73-17.076-9.73-27.548 0-0.155 0.001-0.31 0.002-0.465 0-24.483 19.866-44.35 44.373-44.35h935.253c0.040 0 0.088 0 0.136 0 24.412 0 44.203 19.79 44.203 44.203 0 6.422-1.369 12.524-3.832 18.030zM512 19.627c-0.203-0.002-0.443-0.004-0.683-0.004-35.005 0-63.393 28.329-63.488 63.312-0.054 0.995-0.085 2.148-0.085 3.309 0 35.252 28.577 63.829 63.829 63.829s63.829-28.577 63.829-63.829c0-1.161-0.031-2.314-0.092-3.459 0.007-34.809-28.341-63.158-63.311-63.158zM575.317 579.755v-349.355c0-14.233-11.538-25.771-25.771-25.771h-75.093c-0.102-0.001-0.222-0.002-0.342-0.002-14.268 0-25.845 11.519-25.941 25.764v348.51s0 0 0 1.024c0.055 13.529 10.527 24.594 23.807 25.595l77.74 0.005c0.052 0 0.114 0.001 0.176 0.001 14.053 0 25.479-11.248 25.765-25.233v-0.027z" />
65
+ <glyph unicode="&#x59;" glyph-name="fi-paypal" horiz-adv-x="1009" d="M233.301 113.664l44.885 193.195c7.59 27.926 32.257 48.3 61.84 49.32l37.318 0.003c159.232 0 282.624 32.768 371.371 97.963 80.655 55.619 132.844 147.504 132.844 251.578 0 2.215-0.024 4.425-0.071 6.628 0.144 2.73 0.222 6.316 0.222 9.922 0 39.028-9.219 75.903-25.599 108.566-16.178 30.55-40.557 56.516-70.202 74.749-33.285 20.163-71.204 34.707-111.679 41.837-47.247 8.11-99.386 12.581-152.57 12.581-1.056 0-2.113-0.002-3.168-0.005h-271.537c-29.765-1.458-54.414-21.771-62.345-49.182l-183.415-797.154c-1.003-3.287-1.581-7.066-1.581-10.979 0-21.491 17.421-38.912 38.912-38.912 0.736 0 1.468 0.020 2.194 0.061l129.947-0.004c29.943 0.993 54.806 21.619 62.188 49.37zM339.456 576l39.253 168.96c7.495 28.082 32.294 48.584 62.023 49.491l42.767 0.002c49.835 0 87.552-8.533 113.152-25.429 22.931-15.537 37.803-41.467 37.803-70.871 0-2.327-0.093-4.632-0.276-6.912 0.167-2.112 0.252-4.932 0.252-7.772 0-46.969-23.083-88.547-58.523-114.010-39.672-28.958-94.115-43.294-164.6-43.294h-31.915c-0.662-0.040-1.436-0.063-2.216-0.063-21.491 0-38.912 17.421-38.912 38.912 0 3.853 0.56 7.576 1.603 11.090zM984.576 701.781c-16.747 31.847-41.005 57.746-70.504 75.978l-8.003 4.576 2.731-4.949c15.743-31.277 24.962-68.164 24.962-107.204 0-3.593-0.078-7.167-0.233-10.721 0.059-1.368 0.083-3.577 0.083-5.792 0-104.074-52.189-195.959-131.823-250.912-89.767-65.861-213.33-98.458-372.391-98.629h-36.864c-29.787-1.026-54.528-21.474-62.015-49.027l-45.164-193.49c-7.487-28.216-32.35-48.841-62.185-49.832l-88.173-0.003-5.973-25.941c-1.005-3.29-1.584-7.072-1.584-10.989 0-21.491 17.421-38.912 38.912-38.912 0.797 0 1.589 0.024 2.375 0.071l129.94-0.005c29.943 0.993 54.806 21.619 62.188 49.37l44.99 193.83c7.639 27.895 32.278 48.242 61.834 49.319l37.494 0.003c159.232 0 282.624 32.768 371.371 97.963 80.656 55.582 132.849 147.442 132.849 251.492 0 2.305-0.026 4.604-0.077 6.897 0.145 2.729 0.224 6.328 0.224 9.946 0 39.016-9.22 75.879-25.6 108.528z" />
66
+ <glyph unicode="&#x5a;" glyph-name="fi-wand-magic" horiz-adv-x="868" d="M658.432 470.187l106.325 106.325c4.546 4.541 7.358 10.817 7.358 17.749s-2.812 13.208-7.357 17.749l-88.576 88.747c-4.541 4.546-10.817 7.358-17.749 7.358s-13.208-2.812-17.749-7.357l-106.496-106.326zM480.939 541.184l-469.845-470.016c-6.839-6.802-11.072-16.219-11.072-26.624s4.233-19.822 11.070-26.622l70.828-70.828c6.821-6.798 16.232-11.001 26.624-11.001s19.803 4.203 26.625 11.002l470.015 469.844zM250.709 815.616l14.848-40.277c14.495-38.364 44.239-68.107 81.64-82.283l41.24-15.168-40.277-14.848c-38.364-14.495-68.107-44.239-82.283-81.64l-15.168-41.24-14.848 40.277c-14.423 38.302-44.036 68.028-81.302 82.28l-41.237 15.17 40.277 14.848c38.364 14.495 68.107 44.239 82.283 81.64zM551.765 960l10.24-27.477c9.877-26.259 30.232-46.613 55.834-56.273l28.134-10.457-27.477-10.24c-26.246-9.897-46.593-30.245-56.272-55.833l-10.458-27.452-10.24 27.477c-9.897 26.246-30.245 46.593-55.833 56.272l-28.135 10.458 27.477 10.24c26.259 9.877 46.613 30.232 56.273 55.834zM796.331 311.467l7.851-20.992c7.584-20.049 23.129-35.594 42.675-43.011l21.666-8.018-21.163-7.851c-20.049-7.584-35.594-23.129-43.011-42.675l-8.018-21.495-7.851 20.992c-7.584 20.049-23.129 35.594-42.675 43.011l-21.666 8.018 21.163 7.851c20.049 7.584 35.594 23.129 43.011 42.675z" />
67
+ <glyph unicode="&#x5b;" glyph-name="fi-tablet-landscape" d="M1024 644.096c0 20.171-16.352 36.523-36.523 36.523h-950.955c-20.171 0-36.523-16.352-36.523-36.523s0-1.024 0-1.536v0-672.427c1.203-19.099 16.988-34.133 36.284-34.133 0.024 0 0.048 0 0.071 0h951.122c0.071 0 0.155-0.001 0.238-0.001 19.296 0 35.081 15.035 36.279 34.029l0.005 0.105v672.427s0 1.024 0 1.536zM904.533 55.467h-785.067v505.344h785.067v-505.344zM964.437 277.333c-16.495 0-29.867 13.372-29.867 29.867s13.372 29.867 29.867 29.867c16.495 0 29.867-13.372 29.867-29.867 0-0.001 0-0.001 0-0.002 0-16.495-13.372-29.867-29.867-29.867-0.12 0-0.24 0.001-0.36 0.002z" />
68
+ <glyph unicode="&#x5c;" glyph-name="fi-monitor" d="M961.195 760.491h-898.389c-34.686 0-62.805-28.119-62.805-62.805v-548.011c0-34.686 28.119-62.805 62.805-62.805h338.261v-95.232h-104.789c-9.897 0-17.92-8.023-17.92-17.92v-19.456c-0.002-0.102-0.003-0.221-0.003-0.341 0-9.897 8.023-17.92 17.92-17.92 0.001 0 0.002 0 0.003 0h422.229c9.897 0 17.92 8.023 17.92 17.92v19.627c0 9.897-8.023 17.92-17.92 17.92h-95.573v95.232h338.261c0 0 0 0 0 0 34.686 0 62.805 28.119 62.805 62.805 0 0.060 0 0.12 0 0.18v548.001c0 34.686-28.119 62.805-62.805 62.805zM111.957 649.557h800.085v-451.755h-800.085z" />
69
+ <glyph unicode="&#x5d;" glyph-name="fi-tablet-portrait" horiz-adv-x="745" d="M708.096 960h-673.963c-19.099-1.203-34.134-16.988-34.134-36.284 0-0.084 0-0.168 0.001-0.251v-950.942c0-0.071-0.001-0.155-0.001-0.238 0-19.296 15.035-35.081 34.029-36.279l674.068-0.005c20.171 0 36.523 16.352 36.523 36.523v950.955c0 20.171-16.352 36.523-36.523 36.523zM370.859-33.963c-16.495 0-29.867 13.372-29.867 29.867s13.372 29.867 29.867 29.867c16.495 0 29.867-13.372 29.867-29.867s-13.372-29.867-29.867-29.867zM624.811 55.467h-505.344v785.067h505.173v-785.067z" />
70
+ <glyph unicode="&#x5e;" glyph-name="fi-align-center" horiz-adv-x="1018" d="M50.005-64h917.333c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005h-917.333c0 0 0 0 0 0-27.557 0-49.908-22.291-50.005-49.825v-46.089c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0zM123.563 324.779v0-46.080c0-27.617 22.388-50.005 50.005-50.005h670.208c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005h-670.208c-27.617 0-50.005-22.388-50.005-50.005zM100.352 813.739h816.981c27.617 0 50.005 22.388 50.005 50.005v46.251c0 27.617-22.388 50.005-50.005 50.005h-816.981c-0.051 0-0.111 0-0.171 0-27.617 0-50.005-22.388-50.005-50.005 0 0 0 0 0 0v0-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0.060 0 0.12 0 0.18 0zM173.568 571.221c0-27.617 22.388-50.005 50.005-50.005h570.197c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005h-570.027c-27.617 0-50.005-22.388-50.005-50.005v0-46.080z" />
71
+ <glyph unicode="&#x5f;" glyph-name="fi-check-tick" d="M873.984 809.984c-92.651 92.636-220.639 149.931-362.008 149.931-282.77 0-512-229.23-512-512s229.23-512 512-512c141.37 0 269.358 57.295 362.009 149.932 92.671 92.656 149.991 220.668 149.991 362.068s-57.32 269.412-149.991 362.068zM724.651 535.040l-251.392-251.392c-10.683-10.67-25.435-17.268-41.728-17.268s-31.045 6.599-41.729 17.269l-126.805 126.805c-6.868 6.884-11.116 16.386-11.116 26.88s4.247 19.996 11.116 26.881l29.695 29.695c6.893 6.919 16.429 11.201 26.965 11.201s20.073-4.282 26.964-11.2l85.335-85.335 209.067 210.091c6.884 6.868 16.386 11.116 26.88 11.116s19.996-4.247 26.881-11.116l29.695-29.695c6.868-6.884 11.116-16.386 11.116-26.88s-4.247-19.996-11.116-26.881z" />
72
+ <glyph unicode="&#x60;" glyph-name="fi-list" d="M0 759.296v0c0 0 0-0.001 0-0.002 0-19.674 15.852-35.645 35.48-35.838h952.85c19.72 0.097 35.669 16.106 35.669 35.84 0 0 0 0 0 0v0 165.035c-0.096 19.661-16.009 35.573-35.66 35.669h-952.5c-19.794 0-35.84-16.046-35.84-35.84s0-1.195 0-1.877zM988.16 566.272h-952.32c-19.794 0-35.84-16.046-35.84-35.84s0-1.195 0-1.877v-163.157c0 0 0-0.001 0-0.002 0-19.674 15.852-35.645 35.48-35.838h952.85c19.721 0.097 35.67 16.106 35.67 35.84 0 0.060 0 0.12 0 0.18v-0.009 165.035c-0.097 19.72-16.106 35.669-35.84 35.669 0 0 0 0 0 0zM988.16 172.544h-952.32c-19.794 0-35.84-16.046-35.84-35.84s0-1.195 0-1.877v-162.987c0-19.794 16.046-35.84 35.84-35.84h952.491c19.72 0.097 35.669 16.106 35.669 35.84 0 0 0 0 0 0v0 165.035c-0.097 19.72-16.106 35.669-35.84 35.669 0 0 0 0 0 0z" />
73
+ <glyph unicode="&#x61;" glyph-name="fi-social-apple" horiz-adv-x="880" d="M850.261 616.448c-52.736 65.707-126.805 104.619-196.779 104.619-92.501 0-131.584-43.861-195.755-43.861s-116.395 43.008-196.437 43.008-162.133-47.787-215.040-129.365c-74.581-114.688-61.952-330.581 59.051-514.389 43.179-65.707 100.864-140.459 176.299-140.459 67.072 0 85.333 42.837 177.152 43.349s108.203-43.349 175.275-43.349c75.435 0 136.533 82.603 179.541 148.309 24.143 35.8 46.435 76.814 64.74 119.931-172.942 70.874-201.102 317.658-28.046 412.549zM583.339 793.771c31.801 38.422 51.094 88.207 51.094 142.498 0 8.36-0.457 16.612-1.349 24.734-63.001-8.682-117.708-39.6-156.125-84.796-34.42-41.647-62.409-102.746-51.487-162.479 64.235 1.484 120.975 32.321 157.516 79.57z" />
74
+ <glyph unicode="&#x62;" glyph-name="fi-archive" d="M1002.667 675.499h-981.333v-698.197c0-22.81 18.491-41.301 41.301-41.301h898.731c22.81 0 41.301 18.491 41.301 41.301zM712.533 397.995h-400.555v104.107h400.043zM50.005 918.016c-27.526-0.66-49.634-22.947-50.005-50.482v-119.502h1024v119.467c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185z" />
75
+ <glyph unicode="&#x63;" glyph-name="fi-credit-card" d="M0-14.336c0-27.429 22.235-49.664 49.664-49.664h924.672c27.429 0 49.664 22.235 49.664 49.664v392.533h-1024zM974.336 669.867h-924.672c0 0-0.001 0-0.001 0-27.429 0-49.664-22.235-49.664-49.664 0-0.12 0-0.24 0.001-0.36v-102.382h1024v102.4c0.001 0.101 0.001 0.221 0.001 0.341 0 27.429-22.235 49.664-49.664 49.664 0 0-0.001 0-0.001 0z" />
76
+ <glyph unicode="&#x64;" glyph-name="fi-social-dropbox" d="M301.227 888.491l-301.227-196.779 208.213-166.741 303.787 187.563-210.773 175.957zM0 358.229v0l301.227-196.779 210.773 175.957-303.787 187.563-208.213-166.741zM512 337.408l210.773-175.957 301.227 196.779-208.213 166.741-303.787-187.563zM722.773 888.491l-210.773-175.957 303.787-187.563 208.213 166.741-301.227 196.779zM301.227 124.245l-90.453 59.051v-66.219l301.909-181.077 301.739 181.077v66.219l-90.453-59.051-211.285 175.275-211.456-175.275z" />
77
+ <glyph unicode="&#x65;" glyph-name="fi-eye" d="M512 223.915c123.759 0 224.085 100.326 224.085 224.085s-100.326 224.085-224.085 224.085c-123.759 0-224.085-100.326-224.085-224.085s100.326-224.085 224.085-224.085zM0 448s136.533 352.085 512 352.085 512-352.085 512-352.085-136.533-352.085-512-352.085-512 352.085-512 352.085zM512 352.085c52.972 0 95.915 42.942 95.915 95.915s-42.942 95.915-95.915 95.915c-52.972 0-95.915-42.942-95.915-95.915s42.942-95.915 95.915-95.915z" />
78
+ <glyph unicode="&#x66;" glyph-name="fi-social-facebook" horiz-adv-x="495" d="M109.739-64v512h-109.739v176.469h109.739v105.984c0 144.213 62.123 229.547 238.080 229.547h147.115v-176.469h-91.989c-68.267 0-73.216-24.747-73.216-70.656v-88.235h165.205l-18.773-176.64h-146.603v-512z" />
79
+ <glyph unicode="&#x67;" glyph-name="fi-social-google-plus" horiz-adv-x="1505" d="M1.195 471.893c-15.701-201.216 116.736-399.36 303.445-469.675s424.789-22.869 543.744 144.384c78.507 105.643 95.403 241.664 86.187 369.323-152.405 0.341-304.469 0.341-456.704 0.341 0-54.272 0-108.544 0-162.987 90.965-2.901 182.272-1.536 273.067-2.901-40.107-201.899-314.88-267.435-460.8-135.509-148.309 115.883-141.312 369.664 14.165 477.013 108.544 86.699 262.997 65.195 371.712-9.728 42.469 39.734 82.033 80.649 119.479 123.463-88.759 73.999-199.693 125.369-317.623 120.249-246.101 7.851-472.405-207.872-476.672-453.973zM1231.531 652.8c0-45.397-0.853-90.795-1.195-136.533l-136.533-0.853v-136.533l136.533-1.365c0-45.397 0-90.795 0.853-136.533h136.533c0 45.397 0 90.795 0.853 136.533l136.533 1.195v137.557l-136.533 0.853c0 45.397 0 90.965-0.853 136.533z" />
80
+ <glyph unicode="&#x68;" glyph-name="fi-social-github" d="M512 934.741c-0.11 0-0.241 0-0.371 0-282.77 0-512-229.23-512-512 0-225.030 145.173-416.153 346.974-484.823 29.205-5.844 37.739 10.028 37.739 23.51s0 44.373 0 87.040c-142.507-30.891-172.544 68.267-172.544 68.267-23.211 59.733-56.661 75.264-56.661 75.264-46.421 31.744 3.584 31.061 3.584 31.061 33.642-4.794 61.856-24.567 78.061-52.229 46.013-78.673 119.741-56.145 149.267-43.003 2.518 26.917 14.443 50.654 32.408 68.248-113.645 12.989-233.112 57.192-233.112 253.458-0.013 0.842-0.020 1.835-0.020 2.83 0 52.018 20.062 99.35 52.871 134.681-6.822 18.19-10.702 39.335-10.702 61.387 0 26.775 5.72 52.215 16.004 75.163s42.541 12.658 140.333-53.731c38.377 10.941 82.454 17.232 128 17.232s89.623-6.291 131.409-18.052c94.383 67.038 137.221 53.385 137.221 53.385 9.885-21.837 15.644-47.349 15.644-74.205 0-21.975-3.856-43.050-10.929-62.584 32.998-33.856 52.995-81.074 52.995-132.964 0-1.105-0.009-2.208-0.027-3.309 0.002-196.442-119.465-239.791-233.811-252.421 18.432-15.872 34.133-47.104 34.133-94.891 0-68.267 0-123.563 0-140.459 0-13.653 9.216-29.696 35.157-24.576 205.138 69.887 350.066 260.877 350.066 485.717 0 282.66-229.052 511.822-511.67 512z" />
81
+ <glyph unicode="&#x69;" glyph-name="fi-social-linkedin" d="M229.205-64h-212.139v684.032h212.139zM123.051 713.557c-0.051 0-0.111 0-0.171 0-68.053 0-123.221 55.168-123.221 123.221s55.168 123.221 123.221 123.221c68.053 0 123.221-55.168 123.221-123.221 0-0.051 0-0.111 0-0.171 0-67.959-55.092-123.051-123.051-123.051zM1024-64h-211.968v332.629c0 79.36-1.536 181.419-110.251 181.419s-127.317-86.357-127.317-175.616v-338.432h-212.139v684.032h203.605v-93.525h2.901c28.501 53.76 96.768 110.592 200.704 110.592 214.869 0 254.464-141.653 254.464-325.632v-375.467z" />
82
+ <glyph unicode="&#x6a;" glyph-name="fi-like" d="M0 43.349c-0.058 0.817-0.091 1.77-0.091 2.731s0.033 1.914 0.098 2.858l-0.007 424.15c0 22.056 17.88 39.936 39.936 39.936h78.336c21.424-0.661 38.562-18.097 38.741-39.577v-433.51c-2.112-19.854-18.565-35.244-38.699-35.669l-0.042-0.001h-78.336c-0.003 0-0.006 0-0.009 0-21.756 0-39.449 17.397-39.926 39.038zM236.373-23.211v575.147c0 22.056 17.88 39.936 39.936 39.936h158.72c2.507 3.71 5.381 6.909 8.636 9.672l155.716 269.709c15.697 27.709 44.937 46.131 78.49 46.251 49.908-0.578 90.13-41.157 90.13-91.13 0-0.182-0.001-0.364-0.002-0.546l0.853 0.028v-233.984h216.235c21.611-0.572 38.912-18.227 38.912-39.923 0-0.005 0-0.009 0-0.014v0.001-443.733c-0.022-5.463-2.235-10.404-5.804-13.996l-153.599-153.599c-3.34-2.78-7.675-4.467-12.404-4.467-0.983 0-1.948 0.073-2.892 0.213l-572.992-0.013c-0.013 0-0.029 0-0.044 0-21.301 0-38.691 16.749-39.717 37.796l-0.004 0.092v1.195s0 0 0 0 0 0 0 0zM977.067 106.837v0 0z" />
83
+ <glyph unicode="&#x6b;" glyph-name="fi-dislike" d="M1024 744.277v0c-0.022 5.463-2.235 10.404-5.804 13.996l-153.599 153.599c-3.36 2.775-7.711 4.458-12.455 4.458-0.965 0-1.913-0.070-2.84-0.204l-571.969 0.013c-0.013 0-0.029 0-0.044 0-21.301 0-38.691-16.749-39.717-37.796l-0.004-0.092v-1.365s0 0 0 0 0 0 0 0v-575.659c-0.008-0.305-0.013-0.664-0.013-1.024 0-22.001 17.79-39.846 39.77-39.936h158.387c2.395-3.843 5.163-7.153 8.325-10.036l1.744-2.935v-1.707h1.024l153.6-264.704c15.852-27.026 44.761-44.886 77.842-44.886 0.114 0 0.227 0 0.34 0.001 49.928 0.385 90.268 40.963 90.268 90.963 0 0.241-0.001 0.482-0.003 0.722l0.854-0.037v233.643h215.381c21.611 0.572 38.912 18.227 38.912 39.923 0 0.005 0 0.009 0 0.014v-0.001 443.733zM156.501 806.4v0c-0.289 21.835-18.057 39.424-39.933 39.424-0.001 0-0.002 0-0.003 0h-77.653c-21.476-0.475-38.726-17.904-38.912-39.406v-433.341c1.956-20.057 18.558-35.654 38.876-36.010h78.201c0 0 0.001 0 0.001 0 21.936 0 39.741 17.686 39.934 39.576 0.062 0.835 0.097 1.788 0.097 2.749s-0.035 1.914-0.104 2.857z" />
84
+ <glyph unicode="&#x6c;" glyph-name="fi-location-marker" horiz-adv-x="768" d="M384.037 960c212.124-0.388 383.963-172.467 383.963-384.682 0-0.18 0-0.36 0-0.513 0-268.288-384-638.805-384-638.805s-384 370.517-384 638.778c0 0.18 0 0.36 0 0.54 0 212.215 171.84 384.294 384 384.682zM384 767.317c-0.152 0-0.332 0.001-0.512 0.001-106.416 0-192.683-86.267-192.683-192.683s86.267-192.683 192.683-192.683c106.416 0 192.683 86.267 192.683 192.683 0 0.060 0 0.12 0 0.179 0 0.041 0 0.101 0 0.161 0 106.167-86.017 192.244-192.161 192.341z" />
85
+ <glyph unicode="&#x6d;" glyph-name="fi-mail" d="M896 960h-768c-70.614-0.194-127.806-57.386-128-127.981v-76.819c186.027-100.011 418.304-230.912 431.957-238.933 21.96-10.812 47.803-17.137 75.122-17.137 1.73 0 3.454 0.025 5.172 0.076 1.203-0.050 2.914-0.075 4.632-0.075 27.332 0 53.187 6.324 76.181 17.588 12.631 6.886 244.908 137.788 430.935 238.481v76.8c-0.194 70.614-57.386 127.806-127.981 128zM592.043 362.667c-20.366-10.95-44.565-17.384-70.266-17.384-3.44 0-6.853 0.115-10.235 0.342-2.466-0.227-5.878-0.342-9.318-0.342-25.701 0-49.9 6.434-71.073 17.779-17.284 9.674-243.417 140.576-431.151 238.538v-537.6c0.193-70.555 57.288-127.71 127.802-128h768.028c0 0 0 0 0 0 70.727 0 128.073 57.287 128.171 127.991v537.609c-187.733-97.963-413.867-228.864-431.957-238.933z" />
86
+ <glyph unicode="&#x6e;" glyph-name="fi-notification" horiz-adv-x="828" d="M804.011 170.155c-56.593 42.156-94.077 107.245-98.612 181.242q-0.034 7.856-0.034 15.195v230.571c0 0.036 0 0.078 0 0.121 0 77.372-30.286 147.671-79.651 199.687l0.12-0.128c-4.779 4.949-9.728 9.728-14.677 14.507l-2.048 1.877c-4.608 4.267-9.557 8.363-14.507 12.288l-3.755 2.901q-6.827 5.291-14.165 10.069l-5.632 3.755c-4.437 2.901-8.875 5.632-13.483 8.192l-7.68 4.096-12.629 6.485-10.24 4.437-11.264 4.608c-4.437 1.707-9.045 3.072-13.653 4.608l-8.875 2.901c-7.68 2.219-15.701 4.096-23.723 5.632v21.504c0 30.586-24.795 55.381-55.381 55.381s-55.381-24.795-55.381-55.381v-21.675c-8.021-1.536-15.872-3.413-23.552-5.632l-9.387-2.731c-4.608-1.536-9.216-2.901-13.653-4.608l-11.264-4.608-10.24-4.437-12.629-6.485-7.68-4.096c-4.608-2.56-9.045-5.461-13.483-8.192l-5.632-3.755c-4.779-3.243-9.557-6.656-14.165-10.069l-3.755-2.901c-4.949-3.925-9.728-8.021-14.507-12.288l-1.877-1.877c-5.12-4.608-10.069-9.387-14.677-14.507v0c-49.244-51.889-79.531-122.187-79.531-199.559 0-0.043 0-0.085 0-0.128v-230.564c0-4.779 0-9.728 0-14.507-4.698-74.762-42.366-139.862-98.498-181.464l-24.212-17.875v-122.539h292.523c14.321-54.478 63.131-94.007 121.173-94.007s106.853 39.529 120.978 93.135l292.889 0.872v122.539z" />
87
+ <glyph unicode="&#x6f;" glyph-name="fi-pause" horiz-adv-x="758" d="M217.941 960h-181.077c-20.359 0-36.864-16.505-36.864-36.864v0-950.101c0-0.051 0-0.111 0-0.171 0-20.359 16.505-36.864 36.864-36.864 0 0 0 0 0 0h180.907c20.359 0 36.864 16.505 36.864 36.864v0 950.101c0 0.051 0 0.111 0 0.171 0 20.3-16.408 36.767-36.684 36.864zM758.443-26.965v950.101c0 0 0 0 0 0 0 20.299-16.407 36.767-36.684 36.864h-181.087c-20.359 0-36.864-16.505-36.864-36.864v0-950.101c0-0.051 0-0.111 0-0.171 0-20.359 16.505-36.864 36.864-36.864 0 0 0 0 0 0h180.907c20.359 0 36.864 16.505 36.864 36.864v0z" />
88
+ <glyph unicode="&#x70;" glyph-name="fi-play" horiz-adv-x="897" d="M896.853 448c-0.066 13.948-7.832 26.066-19.263 32.33l-819.051 473.014c-5.945 4.206-13.345 6.724-21.333 6.724-20.548 0-37.205-16.657-37.205-37.205 0-0.024 0-0.048 0-0.071-0.043-0.634-0.067-1.379-0.067-2.13s0.024-1.495 0.072-2.234l-0.005 0.101v-949.419c2.132-18.71 17.874-33.111 36.979-33.111 0.139 0 0.279 0.001 0.418 0.002 6.844 0.018 13.262 1.918 18.748 5.212l-0.166-0.092 822.443 474.112c11.104 6.533 18.439 18.424 18.439 32.028 0 0.26-0.003 0.52-0.008 0.779z" />
89
+ <glyph unicode="&#x71;" glyph-name="fi-eye-hide" d="M201.216 838.997c-2.596 2.605-6.187 4.217-10.155 4.217s-7.559-1.612-10.154-4.216l-61.44-60.928c-2.605-2.596-4.217-6.187-4.217-10.155s1.612-7.559 4.216-10.154l701.27-700.758c2.596-2.605 6.187-4.217 10.155-4.217s7.559 1.612 10.154 4.216l60.928 60.928c2.605 2.596 4.217 6.187 4.217 10.155s-1.612 7.559-4.216 10.154zM665.6 456.533c-4.372 78.297-66.77 140.695-144.666 145.049zM358.4 437.419c5.285-76.768 66.251-137.734 142.541-142.992zM512 671.915c0.243 0.001 0.531 0.002 0.818 0.002 123.288 0 223.232-99.944 223.232-223.232 0-19.895-2.603-39.181-7.486-57.539l150.881-148.97c60.159 57.039 108.919 125.422 142.957 201.809s-134.935 356.101-510.402 356.101c-0.695 0.003-1.517 0.005-2.339 0.005-58.177 0-114.196-9.241-166.669-26.335l113.712-108.838c16.592 4.431 35.643 6.983 55.287 6.997zM512 223.915c-0.228-0.001-0.498-0.001-0.768-0.001-123.288 0-223.232 99.944-223.232 223.232 0 19.337 2.459 38.1 7.081 55.993l-151.38 149.661c-59.739-56.808-108.2-124.836-142.102-200.79s134.934-355.925 510.401-355.925c0.727-0.004 1.587-0.006 2.447-0.006 57.572 0 113.029 9.053 165.026 25.812l-113.884 109.020c-16.056-4.238-34.509-6.722-53.525-6.826z" />
90
+ <glyph unicode="&#x72;" glyph-name="fi-reply" d="M1018.197 2.048c-94.208 337.749-356.693 426.667-516.779 448.683l-84.309 11.605v-223.573l-417.109 327.509 417.109 327.339v-175.957l62.293-10.069c203.264-33.28 352.939-115.2 442.197-243.883 82.773-119.467 115.712-279.723 96.256-461.653z" />
91
+ <glyph unicode="&#x73;" glyph-name="fi-share" horiz-adv-x="871" d="M724.309 594.261c-18.787-0.030-36.732-3.598-53.217-10.072l-378.911 219.821c0 3.243 0 6.485 0 9.728-0.286 80.75-65.812 146.1-146.602 146.1-80.966 0-146.603-65.636-146.603-146.603s65.636-146.603 146.603-146.603c32.171 0 61.921 10.362 86.096 27.931l352.858-203.215c-4.21-13.064-6.637-28.094-6.637-43.691s2.427-30.627 6.924-44.733l-352.543-202.393c-23.762 17.425-53.583 27.883-85.845 27.883-80.684 0-146.091-65.407-146.091-146.091s65.407-146.091 146.091-146.091c80.684 0 146.091 65.407 146.091 146.091 0 0.037 0 0.075 0 0.112 0 3.066 0 5.968 0 8.869l380.416 220.16c15.309-5.943 33.028-9.386 51.552-9.386 80.778 0 146.261 65.483 146.261 146.261s-65.483 146.261-146.261 146.261c-0.124 0-0.247 0-0.371 0z" />
92
+ <glyph unicode="&#x74;" glyph-name="fi-social-twitter" horiz-adv-x="1218" d="M1218.048 825.685c-41.589-18.946-89.834-32.762-140.423-39.009 49.255 31.051 88.111 79.092 106.978 136.225-45.177-25.853-98.349-46.93-154.997-58.44-49.015 48.489-114.054 79.052-186.231 79.052-138.18 0-250.197-112.017-250.197-250.197 0-20.429 2.448-40.285 7.068-59.293-208.387 12.694-391.297 111.711-513.9 261.895-22.372-34.799-34.994-78.235-34.994-124.62 0-86.188 43.58-162.198 109.907-207.195-40.859 0.781-79.652 12.196-113.518 31.316 1.242-1.669 1.242-2.693 1.242-3.717 0.053-120.496 85.278-221.072 198.736-244.793-18.020-5.811-40.581-8.989-63.884-8.989-0.129 0-0.258 0-0.387 0-0.039 0-0.109 0-0.179 0-16.53 0-32.683 1.615-48.31 4.696 34.425-100.367 126.132-171.764 234.807-173.823-84.086-66.609-191.923-106.842-309.157-106.842-0.367 0-0.735 0-1.102 0.001-20.933 0.002-41.631 1.242-61.971 3.651 110.58-70.657 242.885-112.537 384.972-112.537 0.225 0 0.45 0 0.675 0 459.571 0 710.793 380.757 710.793 710.997 0 10.752 0 21.675 0 32.256 49.075 35.761 90.418 78.625 123.442 127.566z" />
93
+ <glyph unicode="&#x75;" glyph-name="fi-white-label-video" horiz-adv-x="1114" d="M1102.848 672.427s-10.581 77.312-44.715 111.445c-28.423 29.011-67.857 47.141-111.527 47.615-155.908 11.265-389.721 11.265-389.721 11.265v0s-89.259 0-194.219-2.731l-1.707-1.707v-388.779c0-6.786-5.502-12.288-12.288-12.288-3.509 0.016-6.664 1.522-8.867 3.917l-88.243 88.243c-1.923 2.313-4.802 3.774-8.021 3.774s-6.098-1.462-8.008-3.757l-0.014-0.017-89.6-88.747c-2.162-2.096-5.109-3.395-8.359-3.413-6.79 0-12.292 5.502-12.292 12.288v375.637c-27.755-7.101-51.477-21.577-69.721-41.213-34.215-34.222-44.284-111.534-44.284-111.534-6.606-53.897-10.682-116.924-11.258-180.786l-0.006-86.137c0.52-64.592 4.535-127.632 11.87-189.654s10.146-69.247 43.426-103.38c42.325-44.715 97.963-43.349 122.88-47.957 89.088-8.533 378.709-11.264 378.709-11.264s234.155 0 389.973 11.776c43.612 0.524 82.907 18.575 111.252 47.422 34.156 34.156 44.396 111.468 44.396 111.468 6.56 54.011 10.575 117.11 11.089 181.045l0.005 86.049c-0.518 64.65-4.534 127.749-11.87 189.832zM440.661 292.352v316.245l295.936-154.965z" />
94
+ <glyph unicode="&#x76;" glyph-name="fi-social-drive" d="M383.488 245.419l-177.664-305.323h640.512l177.664 305.323h-640.512zM329.216 818.688l320.341-554.667 353.28-1.024-320.171 554.667-353.451 1.024zM0 242.517l175.787-306.517 320.171 554.667-175.616 306.517-320.341-554.667z" />
95
+ <glyph unicode="&#x77;" glyph-name="fi-wordpress" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM255.147 644.608c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-7.851 0-17.067 0-26.965 0 76.052 114.526 204.485 188.994 350.311 188.994 109.329 0 208.881-41.857 283.507-110.42l-5.764 0.274c-39.179-1.128-70.51-33.157-70.51-72.505 0-0.67 0.009-1.338 0.027-2.004-0.002-34.035 19.966-63.731 41.129-98.206 21.048-32.798 33.711-72.734 34.132-115.6 0.001-35.952-13.823-77.595-31.914-135.622l-41.813-139.776-150.869 451.925c25.259 1.365 47.957 4.096 47.957 4.096 8.85 0.729 15.756 8.091 15.756 17.067 0 9.456-7.665 17.121-17.121 17.121-0.481 0-0.956-0.020-1.427-0.059s-68.205-5.287-111.725-5.287c-41.131 0-110.421 5.291-110.421 5.291-0.409 0.035-0.885 0.055-1.365 0.055-9.456 0-17.121-7.665-17.121-17.121 0-8.975 6.906-16.337 15.694-17.063s21.395-2.564 44.094-4.1l65.365-179.541-91.819-274.603zM329.045 70.656c-141.030 69.533-236.344 212.284-236.344 377.297 0 61.818 13.377 120.511 37.393 173.343zM519.339 411.989l129.195-353.792c0.957-2.241 1.985-4.148 3.161-5.948-41.53-14.922-89.365-23.635-139.236-23.635-42.262 0-83.063 6.257-121.527 17.896zM722.773 85.675l128 370.347c19.469 44.241 31.134 95.751 31.911 149.895 0.003 0.411 0.004 0.553 0.004 0.694 0 15.086-1.055 29.926-3.094 44.45 32.457-59.671 51.452-128.883 51.452-202.531 0-153.868-82.908-288.372-206.488-361.276z" />
96
+ <glyph unicode="&#x78;" glyph-name="fi-widget-settings-config" d="M999.424 530.944l-129.877 12.8c-9.193 33.918-21.85 63.586-37.968 90.973l83.877 99.32c3.807 4.657 6.114 10.669 6.114 17.22 0 7.537-3.054 14.362-7.992 19.303l-79.019 79.019c-4.941 4.938-11.765 7.992-19.302 7.992-6.551 0-12.564-2.307-17.269-6.153l-100.986-82.905c-25.672 15.185-55.341 27.841-86.69 36.434l-15.369 130.478c-1.433 13.848-13.031 24.558-27.134 24.576h-111.618c-14.105-0.018-25.703-10.728-27.126-24.459l-12.81-130.165c-33.915-9.179-63.585-21.837-90.966-37.965l-99.327 83.874c-4.657 3.807-10.669 6.114-17.22 6.114-7.537 0-14.362-3.054-19.303-7.992l-78.848-78.848c-4.938-4.941-7.992-11.765-7.992-19.302 0-6.551 2.307-12.564 6.153-17.269l82.905-100.986c-15.194-25.673-27.851-55.343-36.436-86.695l-130.646-15.363c-13.848-1.433-24.558-13.031-24.576-27.134v-111.618c0.018-14.105 10.728-25.703 24.459-27.126l130.165-12.81c9.175-33.915 21.832-63.585 37.964-90.964l-83.873-99.329c-3.889-4.663-6.251-10.718-6.251-17.325 0-7.498 3.041-14.286 7.957-19.197l78.848-78.848c4.941-4.938 11.765-7.992 19.302-7.992 6.551 0 12.564 2.307 17.269 6.153l100.986 82.905c25.671-15.228 55.334-27.938 86.678-36.597l15.38-130.485c1.434-13.86 13.050-24.576 27.17-24.576 0.048 0 0.096 0 0.144 0h111.609c14.105 0.018 25.703 10.728 27.126 24.459l12.81 129.994c33.919 9.237 63.585 21.949 90.955 38.133l99.338-83.872c4.657-3.807 10.669-6.114 17.22-6.114 7.537 0 14.362 3.054 19.303 7.992l78.848 78.848c4.916 4.912 7.957 11.699 7.957 19.197 0 6.607-2.361 12.663-6.286 17.369l-82.909 100.991c15.183 25.672 27.839 55.341 36.434 86.688l130.478 15.37c13.995 1.266 24.882 12.924 24.917 27.132v111.62c-0.018 14.105-10.728 25.703-24.459 27.126zM512 296.96c-83.417 0-151.040 67.623-151.040 151.040s67.623 151.040 151.040 151.040c83.417 0 151.040-67.623 151.040-151.040s-67.623-151.040-151.040-151.040z" />
97
+ <glyph unicode="&#x79;" glyph-name="fi-social-youtube" horiz-adv-x="1114" d="M1102.848 672.427s-10.581 77.312-44.715 111.445c-28.423 29.011-67.857 47.141-111.527 47.615-155.908 11.265-389.721 11.265-389.721 11.265v0s-233.813 0-389.803-11.264c-43.755-0.495-83.183-18.62-111.591-47.59-34.159-34.159-44.228-111.471-44.228-111.471-6.601-53.889-10.677-116.916-11.258-180.777l-0.006-86.146c0.524-64.599 4.54-127.638 11.87-189.662s10.146-69.239 43.426-103.372c42.325-44.715 97.963-43.349 122.88-47.957 89.088-8.533 378.709-11.264 378.709-11.264s233.984 0 389.973 11.776c43.612 0.524 82.907 18.575 111.252 47.422 34.156 34.156 44.396 111.468 44.396 111.468 6.56 54.009 10.576 117.109 11.089 181.043l0.005 86.051c-0.518 64.65-4.534 127.749-11.87 189.832zM440.661 292.352v316.245l295.936-154.965z" />
98
+ <glyph unicode="&#x7a;" glyph-name="fi-filter" d="M1024 728.576c-0.063 44.774-35.52 81.246-79.888 82.939l-860.997 0.005c-0.072 0-0.157 0-0.243 0-45.903 0-83.115-37.212-83.115-83.115 0-26.158 12.084-49.494 30.974-64.73l386.036-386.343v-238.933c0.665-15.332 9.197-28.533 21.637-35.729l0.209-0.111 103.424-59.733c6.303-3.758 13.9-5.98 22.016-5.98 24.035 0 43.52 19.485 43.52 43.52 0 0.062 0 0.124 0 0.187 0 1.185 0 2.209 0 3.404v0 293.376l389.803 389.632c16.397 15.17 26.628 36.8 26.628 60.82 0 0.278-0.001 0.555-0.004 0.833zM284.843 645.291v0z" />
99
+ <glyph unicode="&#x7b;" glyph-name="fi-italic" horiz-adv-x="382" d="M382.464 912.896c0 26.015-21.089 47.104-47.104 47.104h-83.115c-0.17 0.002-0.371 0.003-0.573 0.003-25.081 0-45.568-19.674-46.868-44.432l-0.005-0.116-204.8-921.6v-2.048c-0.118-1.228-0.185-2.654-0.185-4.096s0.067-2.868 0.199-4.276c-0.018-0.060-0.021-0.343-0.021-0.626 0-24.722 19.114-44.979 43.37-46.8l0.157-0.009h86.699c24.249 0.061 44.173 18.503 46.576 42.127l0.016 0.199 203.605 921.6c1.141 3.771 1.823 8.11 1.877 12.6z" />
100
+ <glyph unicode="&#x7c;" glyph-name="fi-flag" horiz-adv-x="976" d="M955.733 798.208c-0.041 0-0.090 0-0.138 0-2.841 0-5.551-0.565-8.023-1.588l0.139 0.051c-43.859-23.422-95.925-37.187-151.205-37.205-0.183 0-0.392-0.001-0.601-0.001-100.738 0-190.848 45.506-250.895 117.083-54.643 51.823-128.037 83.375-208.8 83.375-77.746 0-148.664-29.239-202.356-77.32-11.133 24.557-35.409 41.082-63.544 41.082-38.834 0-70.315-31.481-70.315-70.315 0-0.253 0.001-0.507 0.004-0.759v-846.127c0-38.928 31.557-70.485 70.485-70.485s70.485 31.557 70.485 70.485v381.099c42.989 22.156 93.818 35.145 147.68 35.145 100.884 0 191.125-45.566 251.266-117.241 54.587-51.676 127.857-83.13 208.473-83.13 87.143 0 165.702 36.754 221.020 95.606 4.335 3.97 6.957 9.436 6.974 15.516v443.736c0 0.001 0 0.002 0 0.003 0 11.474-9.205 20.797-20.633 20.989z" />
101
+ <glyph unicode="&#x7d;" glyph-name="fi-puzzle" horiz-adv-x="750" d="M749.397 464.043v168.96c0 28.277-22.923 51.2-51.2 51.2v0h-164.693c-36.869 2.304-65.899 32.769-65.899 70.015 0 16.259 5.532 31.226 14.816 43.121l-1.141-0.156c9.014 15.408 14.336 33.925 14.336 53.686 0 59.476-48.215 107.691-107.691 107.691s-107.691-48.215-107.691-107.691c0-19.761 5.322-38.278 14.612-54.197l-1.47 0.511c9.091-11.71 14.573-26.616 14.573-42.803 0-37.202-28.961-67.639-65.567-69.997l-0.206-0.011h-190.976c-28.277 0-51.2-22.923-51.2-51.2s0-1.365 0-2.219v-176.128c0-16.212 13.143-29.355 29.355-29.355 3.057 0.029 5.988 0.526 8.739 1.423 15.082 6.908 32.95 10.968 51.766 10.968 70.692 0 128-57.308 128-128s-57.308-128-128-128c-18.031 0-35.192 3.728-50.753 10.456-2.359 0.983-6.059 1.739-9.935 1.739-16.118 0-29.184-13.066-29.184-29.184 0-0.304 0.005-0.606 0.014-0.907-0.073-0.698-0.114-1.559-0.114-2.431s0.041-1.733 0.121-2.583l-0.008 0.109v-168.96s0-1.536 0-2.219c0.097-28.675 23.365-51.883 52.053-51.883 0 0 0 0 0 0h177.152c0.127-0.002 0.276-0.003 0.426-0.003 16.024 0 29.013 12.99 29.013 29.013 0 3.425-0.594 6.712-1.684 9.763l0.063-0.203s0 1.365 0 2.048v0c-3.357 10.903-5.291 23.435-5.291 36.42 0 70.692 57.308 128 128 128s128-57.308 128-128c0-12.984-1.933-25.517-5.528-37.327l0.237 0.907c-1.422-3.329-2.249-7.202-2.249-11.268 0-16.043 12.869-29.080 28.847-29.35h168.132c28.085 0.471 50.729 23.115 51.199 51.155l0.001 0.045v170.667c-1.842 14.555-14.116 25.707-29.007 25.771l-0.007 1.365c-10.294-2.98-22.119-4.693-34.343-4.693-70.692 0-128 57.308-128 128s57.308 128 128 128c12.225 0 24.049-1.714 35.246-4.914l-0.903 1.415c0.009 0 0.019 0 0.029 0 13.136 0 24.245 8.679 27.906 20.615l1.42 0.207v8.021s0 0 0 0 0 0 0 0z" />
102
+ <glyph unicode="&#x7e;" glyph-name="fi-brush" horiz-adv-x="696" d="M0 366.080c-0.043-1.089-0.067-2.367-0.067-3.651 0-54.575 44.241-98.816 98.816-98.816 1.284 0 2.563 0.024 3.835 0.073l81.737-0.006c0.943 0.054 2.047 0.085 3.157 0.085 32.236 0 58.368-26.132 58.368-58.368 0-1.111-0.031-2.214-0.092-3.31l0.007-219.496c0.097-25.693 20.899-46.495 46.583-46.592h111.455c25.693 0.097 46.495 20.899 46.592 46.583v219.487c-0.061 0.998-0.096 2.164-0.096 3.338 0 32.236 26.132 58.368 58.368 58.368 1.174 0 2.341-0.035 3.498-0.103l81.761 0.008c1.142-0.047 2.482-0.074 3.829-0.074 54.48 0 98.645 44.165 98.645 98.645 0 1.347-0.027 2.687-0.080 4.020l0.006 102.209h-696.32zM257.707 960l-73.387-73.387-73.387 73.387h-110.933v-450.56h696.32v450.56h-438.613z" />
103
+ <glyph unicode="&#xa1;" glyph-name="fi-crown" horiz-adv-x="943" d="M943.445 31.915v0c0 23.281-18.873 42.155-42.155 42.155h-859.136c-23.281 0-42.155-18.873-42.155-42.155v-53.76c0-23.281 18.873-42.155 42.155-42.155h859.136c23.281 0 42.155 18.873 42.155 42.155zM119.467 608.427v0c-7.861 6.851-18.209 11.028-29.532 11.028-24.621 0-44.629-19.748-45.049-44.268l-1.195-0.039v-405.333h1.365c2.163-23.099 21.415-41.047 44.877-41.131h763.4v1.024c23.081 0.117 42.065 17.505 44.694 39.894l0.020 0.212v397.653c0.631 2.813 1.003 6.051 1.024 9.372 0.001 0.093 0.001 0.185 0.001 0.277 0 24.884-20.172 45.056-45.056 45.056-10.85 0-20.804-3.835-28.581-10.223l0.078 0.063-1.195-1.195c-1.535-1.338-2.929-2.732-4.223-4.215l-95.446-95.454-219.477 219.307c-8.246 8.818-19.951 14.314-32.939 14.314s-24.693-5.496-32.915-14.288l-0.024-0.026-221.355-220.331-93.867 93.867c-1.441 1.579-2.945 3.029-4.537 4.379zM790.187 492.032v-1.365h-1.365zM88.235 849.067c46.28 0 83.797-37.517 83.797-83.797s-37.517-83.797-83.797-83.797c-46.28 0-83.797 37.517-83.797 83.797s37.517 83.797 83.797 83.797zM851.115 849.067c0.203 0.002 0.443 0.003 0.683 0.003 46.28 0 83.797-37.517 83.797-83.797s-37.517-83.797-83.797-83.797c-46.279 0-83.796 37.516-83.797 83.794 0 0.001 0 0.002 0 0.003 0 46.040 37.129 83.408 83.078 83.794zM476.501 960c46.207-0.097 83.627-37.577 83.627-83.797 0-46.28-37.517-83.797-83.797-83.797s-83.797 37.517-83.797 83.797c0 0 0 0 0 0 0 46.28 37.517 83.797 83.797 83.797 0.060 0 0.12 0 0.18 0z" />
104
+ <glyph unicode="&#xa2;" glyph-name="fi-upload-cloud" d="M877.056 534.699c-9.452 86.149-81.821 152.577-169.705 152.577-20.539 0-40.23-3.628-58.468-10.278l1.186 0.378c-22.654 94.138-106.132 163.002-205.694 163.002-107.128 0-195.634-79.728-209.42-183.084l-0.118-1.080c-130.046-4.52-233.873-110.554-234.837-241.058l-0.001-0.094c0-134.656 114.688-244.565 249.173-244.565h585.728c0.069 0 0.15 0 0.231 0 102.662 0 186.199 81.884 188.862 183.903l0.005 0.247c-0.079 88.432-62.537 162.253-145.743 179.841l-1.201 0.213zM512 379.733v-136.533c0-5.373-4.355-9.728-9.728-9.728v0h-54.101c-5.373 0-9.728 4.355-9.728 9.728v0 136.533l-131.243-12.459 168.789 296.448 168.789-296.448z" />
105
+ <glyph unicode="&#xa3;" glyph-name="fi-download-cloud" d="M877.056 534.699c-9.452 86.149-81.821 152.577-169.705 152.577-20.539 0-40.23-3.628-58.468-10.278l1.186 0.378c-22.632 94.168-106.125 163.063-205.709 163.063-107.089 0-195.57-79.67-209.405-182.972l-0.119-1.083c-130.105-4.523-233.967-110.652-234.837-241.238v-0.084c-0.853-134.485 114.688-244.565 249.173-244.565h585.557c0.119 0 0.261 0 0.402 0 102.662 0 186.199 81.884 188.862 183.903l0.005 0.247c-0.079 88.432-62.537 162.253-145.743 179.841l-1.201 0.213zM475.136 233.131l-168.789 296.448 132.096-12.459v136.533c0 5.373 4.355 9.728 9.728 9.728v0h53.931c5.373 0 9.728-4.355 9.728-9.728v0-136.533l132.096 12.459z" />
106
+ <glyph unicode="&#xa5;" glyph-name="fi-color-pick-eyedropper" d="M646.997 791.552l45.056-45.227-304.299-304.469c0.395-4.001 0.62-8.648 0.62-13.348 0-37.29-14.17-71.27-37.419-96.85l22.634-22.41 22.528-22.528c25.415 23.141 59.352 37.311 96.598 37.311 4.687 0 9.321-0.224 13.893-0.663l303.887 304.514 45.056-45.227 51.2 51.2-208.896 208.384zM506.197 385.365c-6.949-6.006-16.072-9.665-26.049-9.665-22.056 0-39.936 17.88-39.936 39.936 0 9.977 3.659 19.1 9.708 26.1l273.024 273.016 56.32-56.491zM999.424 935.424v0c-15.17 15.196-36.14 24.597-59.307 24.597s-44.137-9.401-59.306-24.596l-118.273-118.444 118.613-119.467 118.272 118.443c15.411 15.23 24.955 36.367 24.955 59.733s-9.544 44.503-24.947 59.725zM486.571 51.2h-370.688v371.029h156.331c5.090 0 9.216 4.126 9.216 9.216v96.768c0 5.090-4.126 9.216-9.216 9.216h-262.997c-5.090 0-9.216-4.126-9.216-9.216v-582.997c0-0.008 0-0.016 0-0.025 0-5.090 4.126-9.216 9.216-9.216 0.24 0 0.478 0.009 0.714 0.027l583.819-0.002c5.090 0 9.216 4.126 9.216 9.216v262.485c0 5.090-4.126 9.216-9.216 9.216h-97.451c-5.090 0-9.216-4.126-9.216-9.216z" />
107
+ <glyph unicode="&#xa7;" glyph-name="fi-comment" d="M278.357 74.411c-21.845-59.563-82.944-102.4-122.197-123.392-18.091-9.899-3.584-15.019 11.605-15.019h5.291c103.879 7.708 198.451 41.865 278.727 95.689 16.569-3.403 38.282-4.641 60.267-4.724 282.916 0 512.121 190.976 512.121 426.666s-229.205 426.667-512 426.667-512-191.147-512-426.667c0-165.376 113.152-308.395 278.357-379.221z" />
108
+ <glyph unicode="&#xa8;" glyph-name="fi-text-color" d="M982.528 18.944h-942.421c-21.731-1.439-38.813-19.418-38.813-41.387s17.082-39.948 38.688-41.38l942.546-0.007c22.904 0 41.472 18.568 41.472 41.472s-18.568 41.472-41.472 41.472zM170.667 114.517h78.507c0.067 0 0.145-0.001 0.224-0.001 15.639 0 28.938 10.017 33.833 23.984l48.375 127.569h359.765l49.835-131.413c5.533-10.993 16.263-18.657 28.876-19.787l0.138-0.010h81.749c0.053 0 0.115 0 0.178 0 19.7 0 35.669 15.97 35.669 35.669 0 3.903-0.627 7.66-1.786 11.175l0.072-0.252v4.267l-279.040 707.413c-4.82 14.486-18.252 24.747-34.080 24.747-0.019 0-0.038 0-0.056 0h-122.024c-15.996-0.132-29.494-10.673-34.064-25.174l-280.304-710.228c-1.384-3.655-2.186-7.881-2.186-12.294 0-19.7 15.97-35.669 35.669-35.669 0.228 0 0.456 0.002 0.684 0.006zM512 760.491l140.971-373.419h-282.283z" />
109
+ <glyph unicode="&#xa9;" glyph-name="fi-layout" horiz-adv-x="1021" d="M1020.757 763.392h-1020.757v133.632c0 34.781 28.195 62.976 62.976 62.976h894.805c34.781 0 62.976-28.195 62.976-62.976zM236.373-64h-173.397c-34.781 0-62.976 28.195-62.976 62.976v697.856h236.373zM299.52 696.832h721.408v-378.368h-721.408v378.368zM957.781-64h-658.261v315.392h721.237v-252.416c0-34.781-28.195-62.976-62.976-62.976z" />
110
+ <glyph unicode="&#xaa;" glyph-name="fi-comment-3" d="M512 899.413c-315.733 0-512-161.28-512-421.205 0-170.667 83.285-300.203 235.349-368.128-5.584-48.986-22.586-93.124-48.264-130.888l-32.461-43.192h54.784c147.115 0 233.301 63.488 281.429 121.515h21.163c320.683 0 512 157.525 512 421.205 0 259.413-196.096 420.693-512 420.693zM512 185.344v0l-80.213 2.389-39.253-48.299c-2.901-3.413-5.803-6.827-8.875-10.069l-17.067-18.432 11.605 76.459-89.259 39.936c-105.813 47.275-159.403 131.755-159.403 250.88-1.024 264.363 267.093 292.864 382.464 292.864s383.488-28.501 383.488-292.864c0-254.635-239.957-292.693-382.976-292.693z" />
111
+ <glyph unicode="&#xab;" glyph-name="fi-laptop" d="M125.099 136.533h773.803c29.523 0.097 53.419 24.053 53.419 53.589 0 0 0 0 0 0v473.941c0 29.502-23.916 53.419-53.419 53.419h-773.803c-29.502 0-53.419-23.916-53.419-53.419v-474.112c0 0 0 0 0 0 0-29.537 23.896-53.492 53.409-53.589zM178.517 610.475h666.795v-367.275h-666.624zM999.424 82.944h-974.677c-13.667 0-24.747-11.079-24.747-24.747v-59.733c-0.002-0.108-0.003-0.235-0.003-0.363 0-6.447 2.465-12.318 6.505-16.722l34.117-37.87c4.505-4.65 10.806-7.537 17.782-7.537 0.409 0 0.815 0.010 1.219 0.029l902.258-0.002c6.688 0.147 12.7 2.925 17.065 7.337l37.549 37.89c4.351 4.388 7.070 10.401 7.168 17.048v59.752c-0.096 13.534-11.042 24.48-24.567 24.576zM605.013-2.731c0.019-0.161 0.029-0.347 0.029-0.536 0-2.563-1.949-4.672-4.446-4.924l-177.344-0.002c-2.518 0.254-4.466 2.362-4.466 4.926 0 0.189 0.011 0.375 0.031 0.558l-0.002 24.041c-0.019 0.161-0.029 0.347-0.029 0.536 0 2.563 1.949 4.672 4.446 4.924l177.514 0.002c2.518-0.254 4.466-2.362 4.466-4.926 0-0.189-0.011-0.375-0.031-0.558z" />
112
+ <glyph unicode="&#xac;" glyph-name="fi-arrows-expand" d="M52.565 271.872l-52.565-315.051c-0.168-0.922-0.264-1.982-0.264-3.065 0-4.931 1.992-9.397 5.214-12.637l-0.001 0.001c3.114-3.258 7.493-5.283 12.345-5.283 1.188 0 2.347 0.121 3.466 0.352l314.087 53.058c8.563 1.452 15.003 8.814 15.003 17.681 0 4.962-2.016 9.452-5.274 12.697l-61.441 61.441 164.864 164.864c3.269 3.247 5.292 7.745 5.292 12.715s-2.023 9.468-5.291 12.714l-113.665 113.665c-3.247 3.269-7.745 5.292-12.715 5.292s-9.468-2.023-12.714-5.291l-164.524-164.865-61.44 61.44c-3.245 3.259-7.736 5.275-12.698 5.275-8.867 0-16.229-6.44-17.666-14.897zM971.435 624.128l52.565 315.051c0.152 0.878 0.239 1.888 0.239 2.919 0 4.919-1.982 9.374-5.19 12.613l0.001-0.001c-3.296 3.419-7.916 5.543-13.032 5.543-1.064 0-2.106-0.092-3.119-0.268l-314.089-53.403c-8.563-1.452-15.003-8.814-15.003-17.681 0-4.962 2.016-9.452 5.274-12.697l61.441-61.441-164.864-165.035c-3.269-3.247-5.292-7.745-5.292-12.715s2.023-9.468 5.291-12.714l113.665-113.665c3.247-3.269 7.745-5.292 12.715-5.292s9.468 2.023 12.714 5.291l165.036 165.036 61.44-61.44c3.245-3.259 7.736-5.275 12.698-5.275 8.867 0 16.229 6.44 17.666 14.897z" />
113
+ <glyph unicode="&#xae;" glyph-name="fi-update" horiz-adv-x="977" d="M976.384 604.672l-0.853 253.952c-0.539 11.636-10.103 20.865-21.823 20.865-4.598 0-8.864-1.42-12.383-3.846l-92.087-66.342c-92.193 93.060-220.016 150.684-361.299 150.699q-15.021 0-29.699-0.853h-3.755c-9.387 0-18.773-1.536-27.989-2.56h-1.536c-150.735-19.56-278.998-102.185-359.307-220.091-3.935-5.817-5.604-10.823-5.604-16.218 0-8.799 4.44-16.562 11.201-21.17l128.259-88.974c4.269-2.864 9.522-4.57 15.175-4.57 8.987 0 16.966 4.314 21.98 10.985 1.757 2.801 3.805 5.191 5.683 7.751s5.632 7.68 8.704 11.435l7.168 8.704q6.827 8.021 13.995 15.531l6.315 6.144q6.485 6.315 13.483 12.288l6.315 5.291q9.216 7.339 18.773 13.995l5.973 3.925q8.533 5.632 17.067 10.581l5.12 2.901c7.168 3.755 14.507 7.339 21.845 10.581l6.656 2.731c7.68 3.243 15.531 6.144 23.552 8.704h3.072c7.851 2.389 15.872 4.437 23.893 6.144l4.608 1.024q13.483 2.731 27.136 4.096h3.072c9.728 1.024 19.456 1.536 29.355 1.536 4.437 0 8.704 0 13.141 0s9.387 0 13.995 0 11.605-1.365 17.067-2.219l9.557-1.536c6.485-1.195 12.8-2.56 19.115-4.096l5.632-1.536c9.387-2.56 18.603-5.632 27.648-9.045l3.072-1.195c29.425-11.752 54.832-26.628 77.602-44.686l-15.138-9.927-85.333-61.611c-5.666-4.001-9.321-10.523-9.321-17.899 0-9.536 6.11-17.645 14.629-20.625l367.087-125.316c2.087-0.73 4.493-1.151 6.998-1.151 12.065 0 21.845 9.78 21.845 21.845 0 0.045 0 0.089 0 0.134zM916.309 180.907c-1.178 7.109-5.123 13.125-10.669 17.012l-128.253 88.972c-4.269 2.864-9.522 4.57-15.175 4.57-8.987 0-16.966-4.314-21.98-10.985-1.757-2.801-3.805-5.191-5.683-7.751s-5.632-7.68-8.533-11.435l-7.168-8.704c-4.437-5.291-9.216-10.581-13.995-15.531l-6.315-5.973c-4.437-4.267-8.875-8.363-13.483-12.288l-6.315-5.291q-9.216-7.339-18.773-13.995l-5.973-3.925c-5.632-3.755-11.435-7.168-17.067-10.581l-5.12-2.901c-7.168-3.925-14.507-7.339-21.845-10.581l-6.656-2.731c-7.68-3.243-15.531-6.144-23.552-8.704l-3.072-0.853c-7.851-2.389-15.701-4.437-23.893-6.144l-4.608-1.024q-13.312-2.731-27.136-4.096h-3.072c-9.728-1.024-19.456-1.536-29.355-1.536-4.437 0-8.704 0-12.971 0s-9.557 0-14.165 0-11.435 1.365-17.067 2.219l-9.557 1.536c-6.485 1.195-12.8 2.56-19.115 4.096l-6.144 1.536c-9.387 2.56-18.603 5.632-27.648 9.045l-3.072 1.195c-29.425 11.677-54.837 26.501-77.606 44.517l15.142 9.926 85.333 61.611c5.509 4.016 9.048 10.447 9.048 17.705 0 9.562-6.143 17.688-14.698 20.649l-367.087 125.316c-2.119 0.76-4.563 1.2-7.111 1.2-4.765 0-9.171-1.538-12.749-4.144-5.262-3.865-8.743-10.014-8.982-16.987l-0.001-133.84 1.195-254.635c0.539-11.636 10.103-20.865 21.823-20.865 4.598 0 8.864 1.42 12.383 3.846l92.087 66.342c92.193-93.060 220.016-150.684 361.299-150.699q15.021 0 29.869 0.853h3.584c9.387 0 18.773 1.536 28.16 2.56h1.536c150.735 19.56 278.998 102.185 359.307 220.091 3.889 5.777 5.53 10.725 5.53 16.057 0 1.71-0.169 3.38-0.491 4.996z" />
114
+ <glyph unicode="&#xaf;" glyph-name="fi-arrow-right" horiz-adv-x="921" d="M912.213 468.992l-388.949 388.608c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.463-62.121c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l230.569-230.399h-621.909c0 0 0 0-0.001 0-14.644 0-26.527-11.823-26.623-26.444v-95.583c0-14.704 11.92-26.624 26.624-26.624h621.909l-230.4-230.4c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.292-61.951c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l388.948 388.607c5.38 5.401 8.706 12.851 8.706 21.077s-3.326 15.677-8.707 21.078z" />
115
+ <glyph unicode="&#xb0;" glyph-name="fi-icon-hummingbird" d="M1009.323 570.197c-72.363-3.755-161.621-7.509-238.933-8.192l192.171 128.512c19.042-34.586 34.899-74.653 45.502-116.806zM512 960c189.862-0.034 355.572-103.406 443.951-256.93-61.487-12.553-225.839-36.617-400.943-48.051-34.133-2.219-55.979-36.181-68.267-62.464 0 0-31.061 195.925-244.907 145.408-41.984 18.944-81.237 34.133-116.224 46.251 94.16 107.956 231.957 175.787 385.597 175.787 0.279 0 0.557 0 0.836-0.001zM0 448c0 0.221-0.001 0.483-0.001 0.746 0 121.29 42.344 232.689 113.056 320.222 39.45-15.556 74.218-33.581 106.162-55.431s37.807-77.121 65.284-135.489 46.592-91.136 54.613-161.109 65.877-184.491 168.277-221.867c-34.879-47.972-65.982-102.598-90.759-160.574 26.898-39.4 57.774-69.843 91.053-97.495-280.204 0.74-507.686 229.298-507.686 510.988 0 0.003 0 0.007 0 0.010zM573.952-60.416c0 19.115 0 36.352 1.195 51.2 2.803 46.275 12.454 89.473 27.966 129.761 19.44 50.098 31.281 111.481 31.281 175.63 0 12.407-0.443 24.711-1.314 36.896-1.165 15.156-3.891 30.694-7.991 45.664l392.938 149.478c4.007-24.063 6.297-51.79 6.297-80.052 0-260.928-195.185-476.268-447.514-507.978z" />
116
+ <glyph unicode="&#xb1;" glyph-name="fi-icon-uptime" horiz-adv-x="887" d="M117.248 504.832l35.328 57.003c9.877 16.209 27.456 26.867 47.525 26.867 0.993 0 1.979-0.026 2.959-0.078 20.763-0.726 38.722-12.635 48.013-29.9l40.938-76.591 89.088 160.768c9.871 17.66 28.452 29.404 49.776 29.404 24.488 0 45.359-15.488 53.351-37.202l78.975-220.042 35.84 61.611c10.083 16.967 28.318 28.161 49.168 28.161 0.115 0 0.229 0 0.343-0.001h121.156l117.76-56.832v256l-443.733 256-443.733-256v-256zM681.472 391.168l-80.555-138.24c-10.081-16.963-28.309-28.154-49.151-28.16h-5.633c-22.088 2.314-40.256 16.942-47.658 36.811l-78.465 216.117-78.677-143.36c-9.525-17.627-27.868-29.4-48.96-29.4-0.788 0-1.572 0.016-2.352 0.049-21.287 0.311-39.79 12.404-49.233 30.070l-43.84 82.737c-10.18-16.093-27.882-26.624-48.044-26.624-0.029 0-0.059 0-0.088 0l-148.817 56.832v-256l443.733-256 443.733 256v256l-117.76-56.832z" />
117
+ <glyph unicode="&#xb4;" glyph-name="fi-annotate" horiz-adv-x="1022" d="M948.565 199.509v496.981c43.813 24.306 72.976 70.29 72.976 123.085 0 77.479-62.809 140.288-140.288 140.288-47.69 0-89.822-23.796-115.17-60.163l-510.083-0.458c-25.659 36.738-67.742 60.47-115.368 60.47-77.479 0-140.288-62.809-140.288-140.288 0-52.685 29.042-98.586 71.99-122.569l0.712-497.346c-43.837-24.3-73.019-70.296-73.019-123.108 0-77.479 62.809-140.288 140.288-140.288 58.492 0 108.623 35.797 129.681 86.678l480.939 0.931c21.399-51.812 71.53-87.61 130.022-87.61 77.479 0 140.288 62.809 140.288 140.288 0 52.812-29.183 98.808-72.302 122.743zM207.189 199.509v496.811c27.728 15.333 49.308 38.895 61.769 67.359l483.17 0.908c12.815-29.372 34.395-52.934 61.399-67.899l0.723-497.008c-18.613-10.583-34.070-24.624-45.957-41.377l-514.001-0.436c-12.344 17.098-27.971 31.035-46.046 41.106z" />
118
+ <glyph unicode="&#xb5;" glyph-name="fi-profile-male" horiz-adv-x="1019" d="M978.261 134.144c-43.008 70.997-144.043 85.333-194.56 102.4s-147.627 87.893-147.627 87.893v51.2c19.87 18.419 36.867 39.546 50.502 62.877l0.698 1.294c2.048 3.584 3.755 6.997 5.461 10.24v1.365c1.365 3.072 2.56 5.803 3.584 8.533v1.877c0.943 2.416 1.88 5.437 2.626 8.532 1.791 8.072 3.238 17.391 4.129 26.872 9.117 3.338 13.725-1.612 25.331 28.255 13.141 34.133 35.328 109.909 20.821 125.952-3.371 3.949-8.353 6.437-13.916 6.437-3.855 0-7.432-1.195-10.379-3.234 7.133 29.653 11.189 63.652 11.189 98.599 0 8.856-0.26 17.651-0.774 26.378-6.599 106.316-111.73 167.927-209.010 177.484-107.861 10.581-105.131-8.363-116.736-46.763-78.848 1.195-112.299-71.339-112.299-71.339-19.115-43.691-20.309-100.693-3.584-182.613-2.887 2-6.463 3.195-10.318 3.195-5.563 0-10.546-2.488-13.895-6.412-14.528-16.068 7.659-92.356 20.8-125.977s17.067-24.235 26.965-27.819c0-4.437 1.365-22.187 2.389-26.795 13.335-37.939 35.415-69.97 63.908-94.837l0.263-52.79s-97.28-70.997-147.797-87.893-151.381-31.744-194.389-102.4-41.643-198.656-41.643-198.656h1019.392s1.877 127.147-41.131 198.144z" />
119
+ <glyph unicode="&#xb6;" glyph-name="fi-comments" d="M874.667 10.24c14.028-28.98 36.738-51.911 64.715-65.848 10.549-5.661 2.698-8.392-5.323-8.392h-2.901c-55.804 4.31-106.547 22.826-149.573 51.896-9.11-1.858-20.974-2.539-32.991-2.573-151.772 0-274.823 102.4-274.823 228.864s123.563 228.523 275.456 228.523 274.773-102.571 274.773-229.035c0-88.747-60.757-165.547-149.333-203.435zM400.213 213.675c0 167.253 156.672 303.445 349.013 303.445h13.141c-72.533 97.792-202.24 162.987-350.208 162.987-227.669-0.171-412.16-153.941-412.16-343.723 0-132.779 90.624-247.637 222.891-304.811-1.365-43.349-44.373-73.557-69.973-87.552-9.728-5.291-1.877-8.021 6.144-8.021h2.901c63.522 4.464 120.844 27.848 167.209 64.486 24.295-4.938 52.997-7.484 82.294-7.484 0.184 0 0.369 0 0.553 0 31.177 0.009 61.68 2.99 91.222 8.675-63.547 51.045-102.025 126.912-103.196 211.796z" />
120
+ <glyph unicode="&#xb7;" glyph-name="fi-icon-defender" d="M922.965 925.867c-2.901 0-212.309 22.016-330.923 34.133v-358.4l-80.043-36.523-79.531 35.499v359.424c-119.125-12.117-328.533-34.133-331.435-34.133-58.271-12.934-101.199-64.173-101.199-125.438 0-7.354 0.618-14.563 1.806-21.579l87.788-576.951c6.661-42.74 32.169-78.424 67.598-98.803l354.973-167.096 355.157 166.741c36.081 20.752 61.581 56.427 68.166 98.378l87.994 578.315c1.066 6.216 1.675 13.377 1.675 20.679 0 61.596-43.335 113.070-101.18 125.599zM806.059 215.552l-294.059-131.925-294.229 131.925-60.928 378.88 355.157-158.379 354.987 158.379z" />
121
+ <glyph unicode="&#xb8;" glyph-name="fi-sitemap" d="M425.472 558.763h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933zM598.528 203.093h-173.056c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.056c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM977.067 203.093h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM220.16 203.093h-173.227c-25.921 0-46.933-21.013-46.933-46.933v-173.227c0-25.921 21.013-46.933 46.933-46.933h173.227c25.921 0 46.933 21.013 46.933 46.933v173.227c0 25.921-21.013 46.933-46.933 46.933zM178.005 378.027h290.133v-85.333h89.088v85.333h290.133v-85.333h89.088v85.333c0 49.202-39.886 89.088-89.088 89.088h-669.355c-49.129-0.097-88.917-39.946-88.917-89.088 0 0 0 0 0 0v-85.333h89.088z" />
122
+ <glyph unicode="&#xba;" glyph-name="fi-magnifying-glass-search" d="M1024 39.595l-226.816 226.816c50.818 70.758 81.267 159.126 81.267 254.605 0 242.711-196.756 439.467-439.467 439.467s-439.467-196.756-439.467-439.467c0-242.711 196.756-439.467 439.467-439.467 95.479 0 183.847 30.449 255.922 82.165l225.67-227.715zM146.432 520.704c0 0.051 0 0.111 0 0.171 0 161.744 131.12 292.864 292.864 292.864s292.864-131.12 292.864-292.864c0-161.744-131.12-292.864-292.864-292.864-161.606 0.194-292.573 131.101-292.864 292.665z" />
123
+ <glyph unicode="&#xbb;" glyph-name="fi-ab-testing" d="M189.269 574.293c0-16.306-13.219-29.525-29.525-29.525s-29.525 13.219-29.525 29.525c0 16.306 13.219 29.525 29.525 29.525s29.525-13.219 29.525-29.525zM271.872 574.293c0-16.306-13.219-29.525-29.525-29.525s-29.525 13.219-29.525 29.525c0 16.306 13.219 29.525 29.525 29.525s29.525-13.219 29.525-29.525zM354.475 574.293c-0.004-16.303-13.222-29.517-29.525-29.517-16.306 0-29.525 13.219-29.525 29.525 0 16.066 12.833 29.135 28.807 29.517 16.342 0.001 29.561-13.218 29.561-29.525zM432.64 240.981l-78.336 174.080c-2.226 4.78-5.679 8.672-9.96 11.37-4.205 2.546-9.154 4.015-14.445 4.015s-10.241-1.469-14.461-4.020c-4.577-2.699-8.239-6.8-10.392-11.713l-78.059-173.39c-1.585-3.025-2.528-6.604-2.56-10.401 0.077-6.843 3.162-12.939 7.989-17.050 4.416-3.949 10.235-6.346 16.615-6.346 0.17 0 0.34 0.002 0.509 0.005 0.137-0.005 0.328-0.007 0.519-0.007 9.718 0 18.031 6.017 21.417 14.528l16.097 36.337h85.333l15.701-35.84c3.406-8.854 11.842-15.023 21.719-15.023 0.165 0 0.329 0.002 0.492 0.005 0.194-0.007 0.452-0.011 0.71-0.011 6.271 0 11.998 2.333 16.359 6.178 4.79 4.102 7.824 10.191 7.824 16.989 0 0.019 0 0.038 0 0.058-0.001 3.785-0.883 7.366-2.452 10.548zM307.2 304.128l22.357 51.2 22.528-51.2zM769.024 313.173v0c-2.73 3.592-5.759 6.73-9.118 9.48 2.097 2.291 4.115 4.688 5.927 7.241 6.795 10.053 10.777 22.229 10.777 35.334 0 18.947-8.322 35.95-21.511 47.554-13.971 10.285-31.428 16.423-50.318 16.423-1.776 0-3.539-0.054-5.288-0.161l-65.125 0.012c-6.616-0.037-12.619-2.629-17.079-6.838-4.461-4.316-7.259-10.353-7.326-17.043v-170.679c0.068-6.703 2.865-12.739 7.332-17.060 4.455-4.204 10.458-6.796 17.066-6.833h68.274c1.251-0.065 2.716-0.101 4.189-0.101 19.515 0 37.524 6.448 52.013 17.329 13.21 11.032 21.697 27.767 21.697 46.483 0 1.062-0.027 2.118-0.081 3.167 0.024 0.403 0.034 1.050 0.034 1.699 0 13.753-4.494 26.456-12.093 36.721zM720.725 351.573c-5.973-3.725-13.226-5.934-20.994-5.934-1.141 0-2.27 0.048-3.386 0.141l-37.742-0.010v37.205h38.4c30.037 0 30.037-12.459 30.037-19.115 0.059-0.532 0.093-1.15 0.093-1.775 0-5.144-2.275-9.756-5.874-12.885zM658.603 297.984h42.496c28.331 0 30.72-11.264 30.72-21.845s-4.096-14.336-5.461-15.36c-6.014-3.57-13.258-5.68-20.995-5.68-1.502 0-2.985 0.079-4.445 0.234l-42.314-0.016zM480.256 174.933c-0.052 0-0.114-0.001-0.177-0.001-15.081 0-27.307 12.226-27.307 27.307 0 3.242 0.565 6.352 1.602 9.236l77.082 221.676c4.534 9.167 13.821 15.36 24.555 15.36 15.081 0 27.307-12.226 27.307-27.307 0-2.117-0.241-4.178-0.697-6.157l-77.106-221.683c-3.733-10.641-13.583-18.182-25.229-18.431zM917.845 42.155h-811.691v586.24h811.691zM976.725 734.72h-929.451c-0.001 0-0.002 0-0.003 0-26.109 0-47.275-21.166-47.275-47.275 0-0.18 0.001-0.36 0.003-0.539v-703.631c0-26.109 21.166-47.275 47.275-47.275h929.451c26.109 0 47.275 21.166 47.275 47.275v703.659c0 26.109-21.166 47.275-47.275 47.275z" />
124
+ <glyph unicode="&#xbf;" glyph-name="fi-clipboard-notes" horiz-adv-x="730" d="M730.453 836.779v0s0 1.195 0 1.707c0 34.404-27.89 62.293-62.293 62.293h-174.251v40.107c0 0.051 0.001 0.111 0.001 0.171 0 10.462-8.482 18.944-18.944 18.944 0 0-0.001 0-0.001 0h-218.965c-10.462 0-18.944-8.482-18.944-18.944v-40.448h-174.763c-34.404 0-62.293-27.89-62.293-62.293s0-1.024 0-1.707v0-837.803c-0.001-0.152-0.002-0.332-0.002-0.512 0-34.404 27.89-62.293 62.293-62.293 0.001 0 0.002 0 0.002 0h605.696c0 0 0 0 0 0 34.344 0 62.196 27.792 62.293 62.113s0 0.009 0 0.009v0 838.656zM612.352 53.931h-494.933v728.747h59.392v-36.352s0 0 0-1.195c0-11.876 9.628-21.504 21.504-21.504h333.312c11.876 0 21.504 9.628 21.504 21.504s0 0 0 0v37.547h59.221zM236.373 553.472c-0.094 7.751-6.4 13.999-14.164 13.999-0.12 0-0.24-0.002-0.36-0.004h-30.702c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h30.72c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 31.061zM553.131 553.472c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.823 0-14.165-6.342-14.165-14.165v-30.891c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM236.373 435.029c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM553.131 435.029c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891zM236.373 316.587c0 7.823-6.342 14.165-14.165 14.165h-30.72c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h30.379c0.051-0.001 0.111-0.001 0.171-0.001 7.823 0 14.165 6.342 14.165 14.165 0 0 0 0.001 0 0.001v0 30.891zM553.131 316.587c0 7.823-6.342 14.165-14.165 14.165h-229.035c-7.785-0.095-14.070-6.381-14.165-14.156v-30.9c0-7.823 6.342-14.165 14.165-14.165h229.035c7.823 0 14.165 6.342 14.165 14.165v0 30.891z" />
125
+ <glyph unicode="&#xc1;" glyph-name="fi-24-hour-support" horiz-adv-x="968" d="M483.84-64c-267.265 0-483.925 216.661-483.925 483.925s216.661 483.925 483.925 483.925v-136.533c-188.939-4.316-340.452-158.502-340.452-348.075s151.513-343.758 340.051-348.067c0.715-0.008 1.087-0.009 1.459-0.009 80.175 0 153.958 27.369 212.515 73.273l82.363-107.917c-80.231-62.694-182.536-100.528-293.678-100.528-0.794 0-1.588 0.002-2.381 0.006zM779.776 36.864l-82.773 107.691 9.557 7.509 87.040-104.277-13.824-11.093zM874.325 133.632l-109.568 80.555c15.913 21.446 29.882 45.89 40.787 71.935l126.637-48.895c-16.334-39.103-35.678-72.813-58.609-103.702zM963.243 352.256l-134.485 19.115c2.173 14.773 3.413 31.826 3.413 49.17 0 0.114 0 0.228 0 0.341 0.001 0.341 0.002 0.766 0.002 1.191 0 12.136-0.621 24.127-1.832 35.943l135.291 12.342c1.564-14.718 2.455-31.793 2.455-49.077 0-24.288-1.761-48.165-5.163-71.51zM811.691 540.16c-10.574 28.943-23.525 53.955-39.175 76.985l113.415 74.567c20.549-30.843 38.366-66.252 51.687-103.79zM716.8 678.4c-20.26 18.367-43.050 34.571-67.627 47.901l62.166 120.377c36.795-19.902 68.545-42.563 97.156-68.615zM454.656 719.189v240.811l164.181-120.491-164.181-120.32zM364.373 421.547l-79.019-100.693v-39.765h172.032v47.445h-98.987l37.547 53.76c16.256 18.205 30.601 38.703 42.363 60.785 8.105 16.273 12.485 33.435 12.762 51.592 0.106 1.658 0.166 3.486 0.166 5.327 0 21.61-8.231 41.298-21.728 56.1-14.557 13.363-34.134 21.594-55.634 21.594-1.782 0-3.55-0.057-5.303-0.168-0.187 0.020-0.689 0.024-1.193 0.024-16.309 0-31.55-4.575-44.508-12.512-13.059-8.053-23.722-19.647-30.642-33.444-7.22-14.358-11.322-30.733-11.322-48.065 0-0.55 0.004-1.099 0.012-1.647l56.831 0.083c-0.076 1.203-0.119 2.608-0.119 4.024 0 11.841 3.015 22.978 8.318 32.685 4.18 7.434 12.38 12.614 21.789 12.614 0.017 0 0.034 0 0.051 0 0.196 0.007 0.429 0.010 0.663 0.010 8.002 0 14.967-4.442 18.564-10.994 4.401-8.104 6.955-17.616 6.955-27.725 0-1.032-0.027-2.058-0.079-3.077-0.22-10.879-2.84-21.235-7.353-30.5-6.556-13.584-13.945-25.617-22.393-36.807zM585.557 572.928l-98.987-192 2.56-36.352h96.597v-63.488h56.661v63.488h24.917v46.592h-24.747v181.76zM585.557 391.339h-43.861l42.837 95.403 1.195 2.219z" />
126
+ <glyph unicode="&#xc2;" glyph-name="fi-arrow-down" horiz-adv-x="838" d="M439.808-3.755l388.949 388.949c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-62.463 62.463c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-230.399-230.228v621.568c0.001 0.101 0.002 0.221 0.002 0.341 0 14.704-11.92 26.624-26.624 26.624-0.001 0-0.002 0-0.002 0h-95.403c-14.704 0-26.624-11.92-26.624-26.624v-621.909l-230.4 230.229c-5.491 5.46-13.061 8.836-21.419 8.836s-15.927-3.375-21.42-8.837l-62.292-62.463c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l388.948-388.948c5.401-5.38 12.851-8.706 21.077-8.706s15.677 3.326 21.078 8.707z" />
127
+ <glyph unicode="&#xc5;" glyph-name="fi-megaphone" d="M203.435 724.139c-1.755 0.054-3.82 0.085-5.892 0.085-112.354 0-203.435-91.081-203.435-203.435s91.081-203.435 203.435-203.435c2.072 0 4.136 0.031 6.193 0.092 18.037 0.034 33.228 13.458 36.023 31.015l0.028 0.21v338.261c0 20.454-16.581 37.035-37.035 37.035zM1024 890.027c0 0.001 0 0.003 0 0.004 0 20.359-16.505 36.864-36.864 36.864-8.522 0-16.368-2.891-22.611-7.747l-325.549-187.671h-293.717c-20.454 0-37.035-16.581-37.035-37.035v-351.403c2.287-18.335 17.758-32.388 36.519-32.427h261.124l356.011-204.8c6.582-6.206 15.479-10.020 25.266-10.020 20.102 0 36.446 16.090 36.856 36.094 0.001 1.404 0.001 2.769 0.001 4.134v0 751.957s0 1.365 0 2.219zM597.333 29.013v2.731l-115.371 195.755c-5.893 8.039-14.829 13.548-25.079 14.83l-0.18 0.018h-98.304c-19.097-1.524-34.016-17.397-34.016-36.754 0-6.831 1.858-13.229 5.097-18.714 0.889-1.37 1.901-2.707 3.008-3.959l-0.030 0.034 131.755-228.181 1.365-2.219c6.629-9.966 17.812-16.445 30.509-16.445 9.176 0 17.562 3.384 23.978 8.973l-0.044-0.037 68.267 39.083c8.188 6.811 13.363 17.002 13.363 28.402 0 6.076-1.47 11.808-4.073 16.861z" />
128
+ <glyph unicode="&#xc6;" glyph-name="fi-page-pdf" horiz-adv-x="717" d="M253.44 307.541h-58.368v-109.227h33.109v34.133h25.259c0.757-0.054 1.64-0.085 2.53-0.085 20.736 0 37.547 16.81 37.547 37.547s-16.81 37.547-37.547 37.547c-0.89 0-1.773-0.031-2.648-0.092zM249.173 261.291h-20.992v17.067h20.992c5.632 0 9.899-2.731 9.899-8.704s-4.437-8.533-9.899-8.533zM358.4 307.541h-48.469v-109.227h48.469c34.133 0 59.733 19.797 59.733 54.784s-25.6 54.443-59.733 54.443zM358.4 227.157h-15.36v51.2h15.36c0.742 0.082 1.602 0.128 2.474 0.128 13.196 0 23.893-10.697 23.893-23.893 0-0.706-0.031-1.405-0.091-2.095 0.007 0.033 0.007-0.035 0.007-0.102 0-13.95-11.309-25.259-25.259-25.259-0.36 0-0.719 0.008-1.076 0.022zM438.784 198.315h33.109v40.789h48.64v28.843h-48.64v10.752h49.835v28.843h-82.944v-109.227zM716.8 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM117.931 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
129
+ <glyph unicode="&#xc7;" glyph-name="fi-graph-bar" d="M463.531 242.176h-173.397c-10.274 0-18.603-8.329-18.603-18.603v-268.971c0-10.274 8.329-18.603 18.603-18.603h173.397c10.274 0 18.603 8.329 18.603 18.603v269.141c0 10.274-8.329 18.603-18.603 18.603zM733.867 797.867h-173.397c-10.274 0-18.603-8.329-18.603-18.603v-824.661c0-10.274 8.329-18.603 18.603-18.603h173.397c10.274 0 18.603 8.329 18.603 18.603v824.661c0 10.274-8.329 18.603-18.603 18.603zM1005.397 547.328h-173.227c-10.274 0-18.603-8.329-18.603-18.603v-574.123c0-10.274 8.329-18.603 18.603-18.603h173.227c10.274 0 18.603 8.329 18.603 18.603v574.123c0 10.274-8.329 18.603-18.603 18.603zM191.829 547.328h-173.227c-10.274 0-18.603-8.329-18.603-18.603v-574.123c0-10.274 8.329-18.603 18.603-18.603h173.227c10.274 0 18.603 8.329 18.603 18.603v574.123c0 10.274-8.329 18.603-18.603 18.603z" />
130
+ <glyph unicode="&#xcd;" glyph-name="fi-shopping-cart" d="M885.76 796.501l-3.072 6.656c-9.899 20.309-30.72 32.085-46.421 24.747l-341.333-159.061c-15.872-7.339-20.651-30.549-10.752-51.2l3.072-6.656c9.899-21.163 30.72-32.256 46.592-24.917l341.333 159.061c15.872 7.339 20.651 30.379 10.752 51.2zM1014.784 564.224h-1005.568c-5.090 0-9.216-4.126-9.216-9.216v-63.147c-0.009-0.153-0.014-0.332-0.014-0.512 0-5.090 4.126-9.216 9.216-9.216 0.005 0 0.010 0 0.015 0h29.183l48.128-515.072c1.627-17.483 16.225-31.062 33.995-31.062 0.049 0 0.097 0 0.146 0h804.857c0.015 0 0.034 0 0.052 0 18.191 0 33.058 14.23 34.078 32.166l28.847 513.968h26.453c5.090 0 9.216 4.126 9.216 9.216v63.147c0 5.090-4.126 9.216-9.216 9.216zM298.155 100.693c0-12.065-9.78-21.845-21.845-21.845h-114.859c-12.065 0-21.845 9.78-21.845 21.845v83.285c0 12.065 9.78 21.845 21.845 21.845h115.2c12.065 0 21.845-9.78 21.845-21.845zM298.155 275.285c0-12.065-9.78-21.845-21.845-21.845h-114.859c-12.065 0-21.845 9.78-21.845 21.845v83.285c0.379 11.768 10.010 21.163 21.835 21.163 0.004 0 0.008 0 0.011 0h115.199c12.065 0 21.845-9.78 21.845-21.845zM494.933 101.205c0-12.065-9.78-21.845-21.845-21.845h-115.712c-12.065 0-21.845 9.78-21.845 21.845v82.773c0 12.065 9.78 21.845 21.845 21.845h115.2c0.152 0.004 0.332 0.006 0.512 0.006 12.065 0 21.845-9.78 21.845-21.845 0-0.002 0-0.004 0-0.006zM494.933 275.797c0-12.065-9.78-21.845-21.845-21.845h-115.712c-12.065 0-21.845 9.78-21.845 21.845v82.773c0.379 11.768 10.010 21.163 21.835 21.163 0.004 0 0.008 0 0.011 0h115.199c0.156 0.004 0.339 0.006 0.522 0.006 11.827 0 21.459-9.399 21.834-21.134zM690.347 101.205c0-12.065-9.78-21.845-21.845-21.845h-115.371c-12.065 0-21.845 9.78-21.845 21.845v82.773c0 12.065 9.78 21.845 21.845 21.845h115.2c12.065 0 21.845-9.78 21.845-21.845zM690.347 275.797c0-12.065-9.78-21.845-21.845-21.845h-115.371c-12.065 0-21.845 9.78-21.845 21.845v82.773c0.379 11.768 10.010 21.163 21.835 21.163 0.004 0 0.008 0 0.011 0h115.199c12.065 0 21.845-9.78 21.845-21.845zM886.101 101.205c0-12.065-9.78-21.845-21.845-21.845h-115.371c-12.065 0-21.845 9.78-21.845 21.845v82.773c0 12.065 9.78 21.845 21.845 21.845h115.2c12.065 0 21.845-9.78 21.845-21.845zM886.101 275.797c0-12.065-9.78-21.845-21.845-21.845h-115.371c-12.065 0-21.845 9.78-21.845 21.845v82.773c0.379 11.768 10.010 21.163 21.835 21.163 0.004 0 0.008 0 0.011 0h115.199c12.065 0 21.845-9.78 21.845-21.845z" />
131
+ <glyph unicode="&#xce;" glyph-name="fi-storage-server-data" d="M973.995 704h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 484.864c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471zM973.995 277.333h-923.989c-27.758-0.668-50.005-23.329-50.005-51.186 0-0.005 0-0.010 0-0.015v-238.933c0-0.004 0-0.009 0-0.014 0-27.857 22.247-50.518 49.943-51.185l924.051-0.001c27.758 0.668 50.005 23.329 50.005 51.186 0 0.005 0 0.010 0 0.015v238.933c0 0.004 0 0.009 0 0.014 0 27.857-22.247 50.518-49.943 51.185zM137.728 58.197c-26.1 0.853-46.933 22.216-46.933 48.445 0 26.769 21.7 48.469 48.469 48.469 26.76 0 48.455-21.687 48.469-48.444 0-26.77-21.7-48.471-48.469-48.471z" />
132
+ <glyph unicode="&#xcf;" glyph-name="fi-star-line" d="M512 840.533l106.496-301.056h310.272l-242.517-192.512 11.776-33.109 98.133-278.016-258.901 156.16-25.259 15.531-25.259-15.531-258.901-155.307 98.133 278.357 11.776 33.109-27.477 21.845-215.040 170.155h310.272l11.605 32.768 94.891 267.605zM512 939.008c-10.813-0.086-19.955-7.143-23.161-16.893l-117.98-332.803h-346.283c-13.554-0.025-24.532-11.018-24.532-24.576 0-7.796 3.63-14.744 9.292-19.247l270.386-214.055-121.003-342.357c-0.92-2.477-1.453-5.339-1.453-8.325 0-13.573 11.003-24.576 24.576-24.576 4.699 0 9.091 1.319 12.824 3.607l317.333 190.403 317.44-190.293c3.626-2.227 8.017-3.546 12.717-3.546 13.573 0 24.576 11.003 24.576 24.576 0 2.986-0.533 5.848-1.508 8.495l-120.948 342.016 270.507 214.016c5.713 4.541 9.343 11.489 9.343 19.286 0 13.573-11.003 24.576-24.576 24.576-0.045 0-0.089 0-0.134 0h-346.276l-117.931 333.995c-3.255 9.924-12.398 16.98-23.2 17.067z" />
133
+ <glyph unicode="&#xd0;" glyph-name="fi-cloudflare" horiz-adv-x="1365" d="M932.181 147.968l6.485 24.064c3.108 8.491 4.906 18.294 4.906 28.518 0 17.179-5.076 33.173-13.811 46.562-13.519 17.979-35.017 29.809-59.296 30.22l-492.439 6.316c-3.23 0.028-6.081 1.626-7.831 4.067-1.033 1.574-1.636 3.467-1.636 5.501 0 1.22 0.217 2.39 0.615 3.473 1.735 4.77 6.123 8.241 11.369 8.632l496.854 6.147c65.808 7.31 120.215 49.655 144.631 107.717l28.767 75.238c0.449 1.456 0.708 3.13 0.708 4.864s-0.259 3.408-0.74 4.985c-34.165 145.122-162.656 251.577-316.011 251.577-140.86 0-260.742-89.814-305.504-215.3-24.681 15.744-54.945 26.574-87.739 26.574-80.495 0-145.749-65.254-145.749-145.749 0-12.669 1.616-24.96 4.654-36.678-111.636-2.593-200.583-93.776-200.583-205.734 0-11.059 0.868-21.916 2.539-32.506 0.462-3.568 4.473-7.191 9.33-7.191 0.026 0 0.053 0 0.079 0h909.82c5.306 0.085 9.765 3.616 11.242 8.449zM1096.192 488.448h-15.701c-2.789-0.948-4.845-3.345-5.285-6.271l-19.12-66.603c-3.108-8.491-4.906-18.294-4.906-28.518 0-17.179 5.076-33.173 13.811-46.562 13.826-17.607 35.467-29.027 59.775-29.027 0.095 0 0.189 0 0.284 0.001l104.945-6.315c3.108-0.113 5.824-1.694 7.489-4.065 1.034-1.575 1.637-3.468 1.637-5.502 0-1.22-0.217-2.39-0.615-3.473-1.735-4.77-6.123-8.241-11.369-8.632l-108.929-6.147c-66.085-7.315-120.688-49.968-144.975-108.393l-8.284-21.826c-0.238-0.61-0.376-1.317-0.376-2.056 0-3.097 2.426-5.627 5.482-5.794l375.481-0.001c0.025 0 0.056 0 0.086 0 4.527 0 8.355 2.987 9.623 7.097 6.246 21.661 9.828 46.459 9.828 72.093 0 148.585-120.33 269.066-268.857 269.312z" />
134
+ <glyph unicode="&#xd2;" glyph-name="fi-page" horiz-adv-x="717" d="M716.8 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-696.32c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM117.931 53.931v557.909h209.749c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139z" />
135
+ <glyph unicode="&#xd3;" glyph-name="fi-arrow-left-carats" horiz-adv-x="530" d="M469.163 38.4c-5.492-4.91-11.792-9.080-18.644-12.262-7.344-3.354-15.383-5.196-23.852-5.196s-16.508 1.841-23.738 5.146c-7.031 3.224-13.388 7.396-19.008 12.382l-366.854 367.035c-5.463 5.454-9.854 11.98-12.829 19.236-3.048 7.438-4.735 15.621-4.735 24.198s1.687 16.76 4.748 24.235c2.991 7.15 7.377 13.616 12.814 19.027l367.789 365.4c10.89 10.984 25.984 17.784 42.667 17.784s31.777-6.8 42.662-17.78l41.818-43.012c5.397-5.383 9.775-11.785 12.822-18.894 3.056-7.305 4.744-15.342 4.744-23.773s-1.689-16.467-4.746-23.789c-3.067-7.024-7.441-13.367-12.816-18.703l-279.044-281.433 279.040-280.576c5.394-5.385 9.771-11.787 12.821-18.893 3.065-7.145 4.76-15.008 4.76-23.266 0-0.178-0.001-0.357-0.002-0.535 0-0.035 0.001-0.108 0.001-0.182 0-8.477-1.693-16.559-4.76-23.926-2.85-6.986-7.257-13.255-12.781-18.327l-42.021-43.895z" />
136
+ <glyph unicode="&#xd4;" glyph-name="fi-arrow-up" horiz-adv-x="838" d="M397.824 899.755l-388.949-388.949c-5.46-5.491-8.836-13.061-8.836-21.419s3.375-15.927 8.837-21.42l62.463-62.463c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l230.399 230.228v-621.568c-0.001-0.102-0.002-0.222-0.002-0.342 0-14.645 11.824-26.528 26.446-26.623h95.412c14.704 0 26.624 11.92 26.624 26.624v621.909l230.4-230.4c5.491-5.46 13.061-8.836 21.419-8.836s15.927 3.375 21.42 8.837l62.463 62.463c5.46 5.491 8.836 13.061 8.836 21.419s-3.375 15.927-8.837 21.42l-388.948 389.119c-5.401 5.38-12.851 8.706-21.077 8.706s-15.677-3.326-21.078-8.707z" />
137
+ <glyph unicode="&#xd8;" glyph-name="fi-camera" d="M512 424.107c65.98 0 119.467-53.487 119.467-119.467s-53.487-119.467-119.467-119.467c-65.98 0-119.467 53.487-119.467 119.467s53.487 119.467 119.467 119.467zM976.896 671.061v0h-210.603v35.84c0 26.015-21.089 47.104-47.104 47.104h-414.379c-26.015 0-47.104-21.089-47.104-47.104v-35.328h-210.603c0 0-0.001 0-0.001 0-26.015 0-47.104-21.089-47.104-47.104 0-0.12 0-0.24 0.001-0.36v-640.664c-0.001-0.101-0.001-0.221-0.001-0.341 0-26.015 21.089-47.104 47.104-47.104 0 0 0.001 0 0.001 0h929.792c0 0 0.001 0 0.001 0 26.015 0 47.104 21.089 47.104 47.104 0 0.12 0 0.24-0.001 0.36v640.664c0 26.015-21.089 47.104-47.104 47.104zM515.072 59.904c-134.693 0-243.883 109.19-243.883 243.883s109.19 243.883 243.883 243.883c134.693 0 243.883-109.19 243.883-243.883s-109.19-243.883-243.883-243.883zM961.024 482.133h-186.368v125.952h186.368v-125.952z" />
138
+ <glyph unicode="&#xda;" glyph-name="fi-page-search" horiz-adv-x="931" d="M930.645 891.733v0 47.787c0 11.311-9.169 20.48-20.48 20.48h-389.12l-307.2-307.2v-61.952c0.906-10.518 9.641-18.72 20.304-18.773h76.805c10.668 0.053 19.404 8.255 20.304 18.697l0.005 0.076v20.992h210.261c11.311 0 20.48 9.169 20.48 20.48v209.749h250.88v-788.139h-481.28v35.669c0 11.311-9.169 20.48-20.48 20.48h-76.8c-11.311 0-20.48-9.169-20.48-20.48v-133.12c0-11.311 9.169-20.48 20.48-20.48h675.84c11.311 0 20.48 9.169 20.48 20.48v29.013zM460.8 340.992c-0.095 104.648-84.95 189.444-189.611 189.444-104.719 0-189.611-84.892-189.611-189.611 0-35.638 9.832-68.98 26.931-97.46l-92.979-91.643c-9.826-9.508-15.926-22.815-15.926-37.547 0-28.843 23.381-52.224 52.224-52.224 0.079 0 0.158 0 0.237 0.001 0.060 0 0.146-0.001 0.232-0.001 14.667 0 27.931 6.007 37.466 15.695l95.068 95.068c25.146-13.181 54.934-20.916 86.528-20.916 104.538 0 189.299 84.674 189.44 189.18zM161.109 340.992c0 60.796 49.284 110.080 110.080 110.080s110.080-49.284 110.080-110.080c0-60.796-49.284-110.080-110.080-110.080s-110.080 49.284-110.080 110.080z" />
139
+ <glyph unicode="&#xdf;" glyph-name="fi-mouse-scroll" horiz-adv-x="460" d="M230.229 730.283c-127.152 0-230.229-103.077-230.229-230.229v-333.824c0-127.246 103.154-230.4 230.4-230.4s230.4 103.154 230.4 230.4v333.824c0 0 0 0 0 0 0 127.152-103.077 230.229-230.229 230.229-0.12 0-0.24 0-0.36 0zM274.261 493.739c0-23.093-18.72-41.813-41.813-41.813h-4.096c-23.093 0-41.813 18.72-41.813 41.813v121.685c0 23.093 18.72 41.813 41.813 41.813h4.096c23.093 0 41.813-18.72 41.813-41.813zM238.933 764.928h-17.067c-0.051 0-0.111-0.001-0.171-0.001-13.984 0-25.332 11.288-25.429 25.25v29.364c0.096 13.971 11.444 25.259 25.429 25.259 0.060 0 0.12 0 0.18-0.001h17.057c13.971-0.097 25.259-11.445 25.259-25.429 0 0 0 0 0-0.001v-29.184c-0.096-13.911-11.348-25.163-25.25-25.259zM238.933 879.957h-17.067c-0.051 0-0.111-0.001-0.171-0.001-14.044 0-25.429 11.385-25.429 25.429 0 0 0 0 0 0.001v29.184c0 0 0 0 0 0.001 0 14.044 11.385 25.429 25.429 25.429 0.060 0 0.12 0 0.18-0.001h17.057c13.971-0.097 25.259-11.445 25.259-25.429 0 0 0 0 0-0.001v-29.184c0 0 0 0 0-0.001 0-13.984-11.288-25.332-25.249-25.429z" />
140
+ <glyph unicode="&#xe5;" glyph-name="fi-google-analytics" horiz-adv-x="1365" d="M1365.333 740.693c0-67.299-54.557-121.856-121.856-121.856s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856s121.856-54.557 121.856-121.856zM525.141 479.232c-0.291-67.079-54.736-121.344-121.855-121.344-67.299 0-121.856 54.557-121.856 121.856s54.557 121.856 121.856 121.856c0.060 0 0.119 0 0.179 0 67.29 0 121.847-54.557 121.847-121.856zM985.771 224.085c0-0.101 0-0.221 0-0.341 0-67.299-54.557-121.856-121.856-121.856s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856s121.856-54.557 121.856-121.856zM750.933 347.477l-182.955 101.547c-6.88-37.128-25.193-69.147-51.088-93.082l182.843-101.649c6.867 37.132 25.183 69.154 51.087 93.081zM258.048 396.8l-244.565-274.432c-8.403-9.382-13.54-21.84-13.54-35.499 0-29.44 23.866-53.305 53.305-53.305 15.781 0 29.961 6.858 39.721 17.756l244.439 273.117c-33.987 15.219-61.298 40.275-78.923 71.52zM1182.891 580.949c0-25.261-20.478-45.739-45.739-45.739s-45.739 20.478-45.739 45.739c0 25.261 20.478 45.739 45.739 45.739s45.739-20.478 45.739-45.739zM1106.944 482.133c0-25.261-20.478-45.739-45.739-45.739s-45.739 20.478-45.739 45.739c0 25.261 20.478 45.739 45.739 45.739s45.739-20.478 45.739-45.739zM1031.168 383.659c0-25.261-20.478-45.739-45.739-45.739s-45.739 20.478-45.739 45.739c0 25.261 20.478 45.739 45.739 45.739s45.739-20.478 45.739-45.739z" />
141
+ <glyph unicode="&#xe6;" glyph-name="fi-layers" d="M1011.883 558.080l-447.829-260.267c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-450.77 260.181c-7.29 4.311-12.102 12.132-12.102 21.077s4.812 16.766 11.989 21.015l435.655 253.161c17.935 10.569 39.513 16.813 62.549 16.813s44.615-6.244 63.135-17.131l438.54-253.122c7.29-4.311 12.102-12.132 12.102-21.077s-4.812-16.766-11.989-21.015zM1011.883 251.904l-182.784 105.643-264.875-153.6c-14.438-8.497-31.806-13.517-50.347-13.517s-35.908 5.019-50.819 13.773l-268.157 154.197-182.784-106.325c-7.29-4.311-12.102-12.132-12.102-21.077s4.812-16.766 11.989-21.015l451.356-260.499c14.438-8.497 31.806-13.517 50.347-13.517s35.908 5.019 50.819 13.773l447.357 259.327c7.29 4.311 12.102 12.132 12.102 21.077s-4.812 16.766-11.989 21.015z" />
142
+ <glyph unicode="&#xe7;" glyph-name="fi-page-multiple" horiz-adv-x="833" d="M816.128 741.205h-38.059v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-37.205c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067v771.584c0 9.426-7.641 17.067-17.067 17.067zM723.285 61.952v772.096c0 9.426-7.641 17.067-17.067 17.067h-37.547v-733.867c0-9.426-7.641-17.067-17.067-17.067h-542.208v-38.059c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067zM614.4 171.349v771.584c0 9.426-7.641 17.067-17.067 17.067h-580.267c-9.426 0-17.067-7.641-17.067-17.067v-771.584c0-9.426 7.641-17.067 17.067-17.067h580.267c9.426 0 17.067 7.641 17.067 17.067z" />
143
+ <glyph unicode="&#xf7;" glyph-name="fi-gallery-slider" horiz-adv-x="1071" d="M855.552 789.333h-627.883c-23.963-0.096-43.351-19.544-43.351-43.52 0-0.12 0-0.24 0.001-0.36v-416.92c-0.001-0.102-0.001-0.222-0.001-0.342 0-23.976 19.388-43.423 43.342-43.52h627.892c23.963 0.096 43.351 19.544 43.351 43.52 0 0.12 0 0.24-0.001 0.36v416.92c0.001 0.102 0.001 0.222 0.001 0.342 0 23.976-19.388 43.423-43.342 43.52zM541.696 106.667c-23.187 0-41.984 18.797-41.984 41.984s18.797 41.984 41.984 41.984c23.187 0 41.984-18.797 41.984-41.984s-18.797-41.984-41.984-41.984zM344.576 106.667c-23.187 0-41.984 18.797-41.984 41.984s18.797 41.984 41.984 41.984c23.187 0 41.984-18.797 41.984-41.984s-18.797-41.984-41.984-41.984zM738.645 106.667c-23.187 0-41.984 18.797-41.984 41.984s18.797 41.984 41.984 41.984c23.187 0 41.984-18.797 41.984-41.984s-18.797-41.984-41.984-41.984zM123.221 284.16h-106.155c-9.426 0-17.067 7.641-17.067 17.067v346.965c0 9.426 7.641 17.067 17.067 17.067h106.155zM948.224 284.16h105.301c9.426 0 17.067 7.641 17.067 17.067v346.965c0 9.426-7.641 17.067-17.067 17.067h-105.301z" />
144
+ <glyph unicode="&#xf8;" glyph-name="fi-speed-optimize" horiz-adv-x="1160" d="M538.624 958.635c-301.837-22.621-538.165-273.080-538.165-578.737 0-173.836 76.441-329.818 197.543-436.166 5.686-4.946 12.308-7.618 19.554-7.618 10.608 0 19.879 5.727 24.889 14.258l49.396 85.469c2.31 4.011 3.672 8.821 3.672 13.949 0 7.899-3.233 15.043-8.447 20.181-82.576 77.984-133.977 188.212-133.977 310.447 0 235.641 191.025 426.667 426.667 426.667s426.667-191.025 426.667-426.667c0-122.234-51.401-232.463-133.768-310.251-5.423-5.334-8.656-12.478-8.656-20.377 0-5.128 1.362-9.938 3.745-14.087l49.42-85.195c5.056-8.605 14.266-14.29 24.804-14.29 7.17 0 13.725 2.632 18.752 6.982 121.611 106.875 197.976 262.787 197.976 436.536 0 320.472-259.794 580.267-580.267 580.267-14.006 0-27.896-0.496-41.654-1.472zM523.435 278.528l-66.219 75.435c-5.978 6.784-9.626 15.745-9.626 25.558 0 12.899 6.304 24.326 16 31.368l327.963 235.939c6.198 4.395 13.916 7.025 22.248 7.025 11.496 0 21.823-5.008 28.918-12.96l14.881-17.105c5.747-6.717 9.244-15.508 9.244-25.115 0-10.062-3.836-19.227-10.124-26.115l-276.453-295.223c-7.082-7.509-17.098-12.185-28.207-12.185-11.595 0-22 5.094-29.1 13.165z" />
145
+ <glyph unicode="&#x131;" glyph-name="fi-arrow-down-carats" horiz-adv-x="854" d="M836.267 652.8c5.562-5.106 9.969-11.375 12.847-18.431 2.739-6.961 4.255-14.629 4.255-22.65 0-0.738-0.013-1.472-0.038-2.204 0.004-0.035 0.005-0.201 0.005-0.368 0-8.27-1.695-16.144-4.757-23.293-2.949-6.896-7.151-13.123-12.321-18.397l-366.241-367.094c-5.618-4.978-12.096-9.16-19.153-12.272-7.479-3.363-15.665-5.215-24.282-5.215s-16.803 1.851-24.179 5.178c-7.157 3.155-13.635 7.336-19.334 12.377l-366.001 367.035c-5.157 5.267-9.359 11.493-12.31 18.382-3.064 7.134-4.76 14.985-4.76 23.232 0 0.19 0.001 0.38 0.003 0.57-0.001 0.053-0.001 0.149-0.001 0.246 0 8.455 1.694 16.514 4.76 23.857 2.613 7.223 6.867 13.729 12.297 19.037l42.506 43.359c5.538 4.921 11.896 9.094 18.81 12.263 7.349 3.353 15.388 5.195 23.857 5.195s16.508-1.841 23.738-5.146c7.034-3.211 13.393-7.384 19.004-12.379l281.695-281.021 280.576 279.723c10.689 10.554 25.384 17.073 41.602 17.073 0.314 0 0.628-0.002 0.941-0.007 0.026 0.001 0.112 0.001 0.198 0.001 8.523 0 16.651-1.693 24.065-4.762 6.98-2.849 13.25-7.256 18.322-12.78l43.895-41.509z" />
146
+ <glyph unicode="&#x152;" glyph-name="fi-icon-automate" d="M931.499 741.376c0-141.141-51.2-386.901-170.667-609.792-36.712-69.544-71.186-126.737-108.386-181.941 218.772 71.38 372.244 266.908 372.244 498.28 0 110.018-34.701 211.932-93.754 295.393zM195.584 696.32c222.72 119.467 468.48 171.691 609.621 170.667-11.093 7.68-22.357 15.019-34.133 22.016-74.167 44.233-163.566 70.383-259.072 70.383s-184.905-26.15-261.426-71.68c-108.618-64.826-191.31-168.59-228.802-292.023 47.218 29.124 104.353 63.596 163.286 95.149zM529.067-64c56.491 181.589 193.707 568.832 116.907 645.632s-464.043-59.904-645.973-116.565c0-5.632 0-11.435 0-17.067 0-282.77 229.23-512 512-512h17.067z" />
147
+ <glyph unicode="&#x153;" glyph-name="fi-settings-slider-control" horiz-adv-x="978" d="M803.84 448c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 355.328h-462.507c0 0 0 0 0 0-17.909 0-32.427 14.518-32.427 32.427 0 0.060 0 0.12 0 0.18v97.271c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 355.328h77.141c17.87 0.096 32.33 14.557 32.427 32.417v97.289c0 17.909-14.518 32.427-32.427 32.427h-77.141zM803.84 838.144c-0.001-67.298-54.557-121.854-121.856-121.854s-121.856 54.557-121.856 121.856c0 67.299 54.557 121.856 121.856 121.856 0.24 0 0.48-0.001 0.72-0.002 66.968-0.387 121.136-54.795 121.136-121.854 0-0.001 0-0.001 0-0.002zM494.933 745.472h-462.507c-17.909 0-32.427 14.518-32.427 32.427v96.768c0 17.909 14.518 32.427 32.427 32.427h462.507zM868.693 745.472h77.141c17.909 0 32.427 14.518 32.427 32.427v96.768c0 17.909-14.518 32.427-32.427 32.427h-77.141zM174.592 57.856c0-67.299 54.557-121.856 121.856-121.856s121.856 54.557 121.856 121.856c0 67.299-54.557 121.856-121.856 121.856s-121.856-54.557-121.856-121.856zM482.816-34.645h463.019c17.909 0 32.427 14.518 32.427 32.427v97.28c0 17.909-14.518 32.427-32.427 32.427h-463.019zM109.568-34.645h-77.141c-17.909 0-32.427 14.518-32.427 32.427v97.28c0.096 17.87 14.557 32.33 32.417 32.427h77.151z" />
148
+ <glyph unicode="&#x192;" glyph-name="fi-profile-female" horiz-adv-x="788" d="M711.68 214.528c-39.595 26.283-125.269 19.797-146.603 59.392-17.067 41.131-64.171 32.939-64.171 32.939v65.536c3.195 3.816 6.339 8.046 9.237 12.452 30.339-12.412 65.302-22.587 101.736-28.338-18.813 47.459 47.064 139.79 48.6 281.443 0.084 2.937 0.131 6.394 0.131 9.862 0 75.089-22.337 144.961-60.728 203.334-10.445 17.137-30.557 29.323-53.516 29.323-4.923 0-9.714-0.56-14.315-1.62 0.427 27.56-40.021 63.912-82.858 73.811-16.314 3.867-35.343 6.496-54.84 7.318-21.109-1.036-40.303-3.657-58.946-7.749-139.312-29.265-210.139-172.625-208.603-314.278s68.267-233.984 46.080-281.771c39.013 6.069 74.036 16.245 107.018 30.285 0.319-5.956 3.462-10.129 6.821-14.114l-0.175-65.494s-47.616 8.192-64.683-32.939c-21.333-39.595-107.008-32.939-146.603-59.392s-75.264-278.528-75.264-278.528h787.627s-36.693 252.245-75.947 278.528z" />
149
+ <glyph unicode="&#x2c6;" glyph-name="fi-compass" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM512 72.533c-207.365 0-375.467 168.102-375.467 375.467s168.102 375.467 375.467 375.467c207.365 0 375.467-168.102 375.467-375.467-0.677-207.091-168.375-374.79-375.401-375.466zM712.363 684.373l-266.923-159.061c-3.664-2.158-6.653-5.093-8.812-8.595l-161.001-269.080c-2.292-3.744-3.649-8.276-3.649-13.125 0-7.085 2.897-13.493 7.572-18.104l1.027-1.027c4.402-4.357 10.392-7.117 17.025-7.338 4.85 0.045 9.324 1.437 13.117 3.815l269.548 160.877c3.594 2.243 6.524 5.228 8.639 8.757l159.127 267.041c2.009 3.709 3.189 8.12 3.189 12.807 0 7.526-3.044 14.34-7.969 19.279-4.607 4.638-10.99 7.51-18.043 7.51-4.805 0-9.299-1.333-13.132-3.649z" />
150
+ <glyph unicode="&#x2c7;" glyph-name="fi-price-tag" horiz-adv-x="856" d="M852.139 230.571l-1.024 1.365-362.667 628.224c-3.008 4.722-7.252 8.418-12.281 10.68l-0.178 0.072-148.48 85.333c-3.981 2.308-8.759 3.67-13.856 3.67-3.868 0-7.553-0.785-10.904-2.203l0.184 0.069-2.731-1.707-286.037-164.693c-8.349-4.804-13.934-13.586-14.165-23.69l-0.001-0.032v-170.667c-0.107-0.92-0.169-1.987-0.169-3.067 0-5.155 1.393-9.984 3.824-14.131l-0.071-0.721 362.325-626.005s0-1.536 1.024-2.219c4.975-8.41 13.999-13.962 24.319-13.962 4.774 0 9.27 1.188 13.209 3.284l-0.152-0.074 437.76 251.904c8.432 4.97 14 14.005 14 24.341 0 5.176-1.396 10.025-3.833 14.192zM244.395 725.333c-7.448-4.358-16.4-6.932-25.953-6.932-28.748 0-52.053 23.305-52.053 52.053s23.305 52.053 52.053 52.053c19.158 0 35.898-10.349 44.935-25.762 4.524-7.716 7.118-16.701 7.118-26.292 0-19.195-10.39-35.964-25.853-44.988z" />
151
+ <glyph unicode="&#x2d8;" glyph-name="fi-folder" d="M955.733 666.965h-452.096c-24.405 29.184-49.493 60.075-55.979 69.291-6.464 13.33-19.893 22.357-35.431 22.357-0.024 0-0.048 0-0.071 0h-179.367c-12.32-0.019-23.307-5.711-30.491-14.603l-62.010-77.045h-72.021c-37.703 0-68.267-30.564-68.267-68.267v-594.432c0-37.703 30.564-68.267 68.267-68.267h887.467c37.703 0 68.267 30.564 68.267 68.267v595.115c0 37.703-30.564 68.267-68.267 68.267z" />
152
+ <glyph unicode="&#x2d9;" glyph-name="fi-book-bookmark" horiz-adv-x="870" d="M870.4 823.467v0c0 12.253-9.933 22.187-22.187 22.187h-46.080v-819.2c-0.085-11.982-9.583-21.717-21.461-22.185l-690.731-0.001c-10.679 0.117-19.552 7.703-21.649 17.775l-0.025 49.126h643.413c12.215 0.096 22.091 9.972 22.187 22.178v844.297c0 0 0 0 0 0.001 0 12.288-9.913 22.26-22.177 22.357h-78.516v-474.283c0-0.022 0-0.048 0-0.074 0-5.844-4.737-10.581-10.581-10.581-3.11 0-5.907 1.342-7.843 3.478l-76.979 76.98c-1.671 2.029-4.184 3.313-6.997 3.313s-5.326-1.284-6.985-3.298l-0.012-0.016-77.483-77.483c-1.866-1.772-4.386-2.871-7.162-2.901-5.812 0.094-10.493 4.776-10.587 10.572v474.292h-406.187c-12.348 0-22.357-10.010-22.357-22.357s0 0 0-0.853v-977.579s0 0 0 0 0 0 0 0v-1.024c0.097-12.274 10.069-22.187 22.357-22.187 0 0 0 0 0.001 0h825.856c12.274 0.097 22.187 10.069 22.187 22.357 0 0 0 0 0 0.001v0z" />
153
+ <glyph unicode="&#x2da;" glyph-name="fi-arrows-out" d="M48.299 244.736l-48.299-289.621c-0.115-0.746-0.181-1.606-0.181-2.481 0-4.608 1.826-8.789 4.794-11.86l-0.005 0.005c3.066-2.963 7.247-4.789 11.855-4.789 0.875 0 1.736 0.066 2.575 0.193l288.162 48.799c7.625 1.814 13.209 8.568 13.209 16.625 0 4.372-1.644 8.361-4.348 11.381l-56.476 56.474 151.552 151.552c2.869 3.046 4.633 7.163 4.633 11.691s-1.763 8.644-4.641 11.699l-103.928 104.269c-3.046 2.869-7.163 4.633-11.691 4.633s-8.644-1.763-11.699-4.641l-151.202-151.544-56.491 56.491c-3.004 2.69-6.992 4.334-11.364 4.334-8.057 0-14.811-5.584-16.602-13.093zM975.701 651.264l48.299 289.621c0.115 0.746 0.181 1.606 0.181 2.481 0 4.608-1.826 8.789-4.794 11.86l0.005-0.005c-3.087 3.078-7.347 4.982-12.051 4.982-0.927 0-1.837-0.074-2.724-0.216l-287.817-48.968c-7.625-1.814-13.209-8.568-13.209-16.625 0-4.372 1.644-8.361 4.348-11.381l56.476-56.474-152.405-151.552c-2.869-3.046-4.633-7.163-4.633-11.691s1.763-8.644 4.641-11.699l104.781-104.439c3.046-2.869 7.163-4.633 11.691-4.633s8.644 1.763 11.699 4.641l151.543 151.544 56.491-56.491c2.999-2.672 6.975-4.305 11.332-4.305 8.109 0 14.896 5.655 16.635 13.236zM715.264-15.701l290.133-47.957c0.746-0.115 1.606-0.181 2.481-0.181 4.608 0 8.789 1.826 11.86 4.794l-0.005-0.005c2.963 3.066 4.789 7.247 4.789 11.855 0 0.875-0.066 1.736-0.193 2.575l-49.311 287.82c-1.814 7.625-8.568 13.209-16.625 13.209-4.372 0-8.361-1.644-11.381-4.348l-56.474-56.476-151.552 152.405c-3.046 2.869-7.163 4.633-11.691 4.633s-8.644-1.763-11.699-4.641l-104.439-104.781c-2.869-3.046-4.633-7.163-4.633-11.691s1.763-8.644 4.641-11.699l151.544-151.543-56.491-56.491c-2.672-2.999-4.305-6.975-4.305-11.332 0-8.109 5.655-14.896 13.236-16.635zM308.736 911.701l-289.621 48.299c-0.7 0.102-1.507 0.16-2.329 0.16-4.683 0-8.925-1.886-12.009-4.94l0.001 0.001c-3.065-3.084-4.96-7.335-4.96-12.029 0-0.874 0.066-1.733 0.193-2.572l48.97-287.82c1.814-7.625 8.568-13.209 16.625-13.209 4.372 0 8.361 1.644 11.381 4.348l56.474 56.476 151.552-151.552c3.046-2.869 7.163-4.633 11.691-4.633s8.644 1.763 11.699 4.641l104.439 103.928c2.869 3.046 4.633 7.163 4.633 11.691s-1.763 8.644-4.641 11.699l-151.715 151.202 56.491 56.491c2.672 2.999 4.305 6.975 4.305 11.332 0 8.109-5.655 14.896-13.236 16.635z" />
154
+ <glyph unicode="&#x2db;" glyph-name="fi-graph-bar_1" d="M569.856 960c-10.085 0-18.261-8.176-18.261-18.261-0.035-0.409-0.055-0.885-0.055-1.365s0.020-0.956 0.059-1.427l-0.004 0.062v-433.493c0-10.085 8.176-18.261 18.261-18.261h433.152c0.409-0.035 0.885-0.055 1.365-0.055s0.956 0.020 1.427 0.059c10.024-0.004 18.2 8.172 18.2 18.257-2.666 249.806-204.366 451.626-453.872 454.483zM918.357 400.213c0 10.085-8.176 18.261-18.261 18.261h-398.336c-10.085 0-18.261 8.176-18.261 18.261v397.141c0.028 0.408 0.044 0.885 0.044 1.365s-0.016 0.957-0.048 1.429c0.003 10.021-8.172 18.197-18.258 18.197h-6.144c-0.051 0-0.111 0-0.171 0-253.739 0-459.435-205.696-459.435-459.435s205.696-459.435 459.435-459.435c253.739 0 459.435 205.696 459.435 459.435 0 1.536 0 2.901 0 4.437s0 0 0 0z" />
155
+ <glyph unicode="&#x2dc;" glyph-name="fi-arrow-right-carats" horiz-adv-x="531" d="M61.781 857.6c5.489 4.917 11.79 9.088 18.646 12.264 7.34 3.363 15.379 5.211 23.85 5.211s16.51-1.848 23.736-5.162c7.036-3.211 13.395-7.384 19.006-12.379l364.98-367.037c5.487-5.503 9.971-12.010 13.152-19.22 3.337-7.412 5.188-15.597 5.188-24.214s-1.851-16.803-5.178-24.179c-3.217-7.176-7.697-13.623-13.162-19.084l-365.91-365.398c-10.689-10.554-25.384-17.073-41.602-17.073-0.314 0-0.628 0.002-0.941 0.007 0.015-0.001-0.024-0.001-0.062-0.001-8.512 0-16.628 1.693-24.030 4.761-7.018 2.679-13.345 6.922-18.512 12.289l-43.877 43.024c-4.912 5.491-9.082 11.792-12.263 18.645-3.364 7.341-5.212 15.381-5.212 23.851s1.848 16.51 5.162 23.736c3.219 7.034 7.392 13.392 12.381 19.008l281.020 281.351-279.723 280.576c-5.394 5.385-9.771 11.787-12.821 18.893-3.381 7.189-5.369 15.135-5.609 23.519-0.003 0.196-0.003 0.329-0.003 0.462 0 8.478 1.694 16.561 4.761 23.928 2.85 6.986 7.257 13.255 12.781 18.327l43.387 43.895z" />
156
+ <glyph unicode="&#x2dd;" glyph-name="fi-arrow-up-carats" horiz-adv-x="853" d="M17.067 244.736c-4.926 5.536-9.099 11.895-12.264 18.811-3.343 7.338-5.179 15.366-5.179 23.822 0 8.746 1.964 17.033 5.474 24.444 3.18 6.706 7.231 12.776 12.035 18.159l366.185 365.664c5.619 4.975 12.097 9.157 19.152 12.272 7.482 3.354 15.667 5.199 24.283 5.199s16.801-1.845 24.181-5.162c7.155-3.158 13.632-7.339 19.333-12.378l366-367.035c5.397-5.383 9.775-11.785 12.822-18.894 2.75-6.785 4.259-14.202 4.259-21.972 0-0.453-0.005-0.905-0.015-1.356 0.002-0.015 0.002-0.111 0.002-0.208 0-8.455-1.694-16.514-4.76-23.857-2.613-7.223-6.867-13.729-12.297-19.037l-42.506-43.359c-5.537-4.924-11.896-9.096-18.811-12.264-7.346-3.363-15.385-5.211-23.856-5.211s-16.51 1.848-23.736 5.162c-6.969 3.225-13.27 7.396-18.832 12.376l-281.869 281.025-280.576-279.723c-10.714-10.555-25.431-17.072-41.671-17.072-0.29 0-0.58 0.002-0.869 0.006 0.011-0.001-0.027-0.001-0.066-0.001-8.512 0-16.628 1.693-24.030 4.761-6.981 2.849-13.251 7.256-18.323 12.78l-44.066 41.509z" />
157
+ <glyph unicode="&#x3a9;" glyph-name="fi-zip" horiz-adv-x="288" d="M0 960h192v-128h-192v128zM242.347 479.915h-196.779c-25.167 0-45.568-20.401-45.568-45.568v-452.779c0-25.167 20.401-45.568 45.568-45.568h196.779c25.167 0 45.568 20.401 45.568 45.568v452.779c0 25.167-20.401 45.568-45.568 45.568zM229.376-0.171h-170.667c-5.844 0-10.581 4.737-10.581 10.581v107.008c0 5.844 4.737 10.581 10.581 10.581h170.667c5.844 0 10.581-4.737 10.581-10.581v-106.837c0-5.844-4.737-10.581-10.581-10.581zM96.085 800.085h192v-128h-192v128zM0 640h192v-128h-192v128z" />
158
+ <glyph unicode="&#x3c0;" glyph-name="fi-academy" horiz-adv-x="1353" d="M676.352 42.325c-73.045 0-382.976 69.973-382.976 210.091v157.013l370.859-151.723c3.558-1.498 7.693-2.369 12.032-2.369s8.474 0.87 12.241 2.446l366.553 149.938 4.096-2.048v-153.6c0-140.117-309.76-210.091-382.805-210.091zM1266.517 21.333l-71.851 87.211-72.021-87.211v403.968c0 3.755 0 18.603 0 18.603l-201.728 102.4 345.941-76.8zM1184.427 529.067l-394.069 77.312c-0.322 0.050-0.694 0.079-1.072 0.079-4.053 0-7.339-3.286-7.339-7.339 0-2.399 1.151-4.529 2.931-5.868l212.328-140.814-320.853-131.243-676.352 276.821 676.352 276.651 676.352-276.651z" />
159
+ <glyph unicode="&#x2013;" glyph-name="fi-zoom-out" d="M584.875 960c-0.154 0-0.336 0-0.519 0-242.522 0-439.125-196.603-439.125-439.125 0-95.43 30.441-183.75 82.142-255.779l-227.372-225.501 103.595-103.595 226.816 226.816c70.664-50.695 158.892-81.067 254.214-81.067 242.522 0 439.125 196.603 439.125 439.125 0 242.434-196.461 438.983-438.862 439.125zM584.875 228.011c-0.051 0-0.111 0-0.171 0-161.744 0-292.864 131.12-292.864 292.864s131.12 292.864 292.864 292.864c161.744 0 292.864-131.12 292.864-292.864 0-0.060 0-0.12 0-0.18-0.291-161.524-131.161-292.393-292.666-292.684zM772.608 571.563h-375.467c-6.221 0-11.264-5.043-11.264-11.264v-78.165c0-6.221 5.043-11.264 11.264-11.264h375.467c6.221 0 11.264 5.043 11.264 11.264v77.995c0 6.221-5.043 11.264-11.264 11.264z" />
160
+ <glyph unicode="&#x2014;" glyph-name="fi-icon-hustle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM862.891 419.328c-4.096-39.595-19.456-114.005-77.824-159.061-34.957-26.992-79.245-43.462-127.358-44.031-0.805-0.012-1.601-0.019-2.398-0.019-19.34 0-37.801 3.767-54.688 10.607-33.156 14.157-67.29 50.85-65.412 92.834v1.877l17.067 93.184c2.684 11.537 4.293 24.827 4.436 38.469 0.001 23.654-13.311 26.555-23.21 26.555-28.331 0-66.219-37.205-77.653-96.939l-23.040-110.592h-7.851c-0.173-0.001-0.379-0.002-0.584-0.002-28.781 0-54.469 13.242-71.304 33.966-20.101 24.234-24.027 58.879-12.763 109.226l63.829 256-20.821-11.264c-76.89-45.504-127.642-128.014-127.642-222.379 0-142.167 115.196-257.429 257.338-257.536 0.138 0 0.29 0 0.443 0 24.827 0 48.825 3.553 71.511 10.179l6.563 1.939 36.181-89.429-9.899-3.072c-32.113-10.603-69.078-16.718-107.47-16.718-195.394 0-353.792 158.398-353.792 353.792 0 133.919 74.407 250.459 184.134 310.535 25.211 13.761 52.281 24.364 80.775 31.338l6.231 1.501 7.339 35.157h113.835l-50.176-256-2.901-15.019 12.8 8.363c20.948 14.322 46.83 22.87 74.709 22.87 0.075 0 0.151 0 0.226 0 55.626 0 90.271-36.693 90.271-95.573-0.524-21.184-2.675-41.483-6.338-61.251l-14.824-78.013c-0.309-1.655-0.486-3.559-0.486-5.504 0-6.907 2.23-13.294 6.010-18.479 4.456-4.2 10.577-6.837 17.315-6.837 0.792 0 1.576 0.036 2.349 0.108 63.901-0.007 86.258 74.062 89.33 117.923 0.662 6.619 1.040 14.305 1.040 22.079 0 54.114-18.303 103.953-49.057 143.665-35.194 40.291-79.737 72.393-130.243 92.845l16.979 94.18c69.482-23.968 128.484-63.065 175.37-113.566 42.976-47.054 71.974-107.047 80.465-173.451 1.803-13.898 2.737-28.141 2.737-42.602 0-11.217-0.562-22.302-1.661-33.23z" />
161
+ <glyph unicode="&#x2018;" glyph-name="fi-community-people" d="M1006.933 206.507l-174.251 82.773c41.455 28.313 68.313 75.348 68.313 128.655 0 1.33-0.017 2.656-0.050 3.978 0.004 82.919-57.852 150.162-129.191 150.162-25.188-0.030-48.474-8.152-67.404-21.904 11.888-28.284 18.593-61.357 18.593-95.996 0-0.070 0-0.141 0-0.211 0-0.031 0-0.081 0-0.131 0-51.921-15.274-100.275-41.573-140.813 9.235-8.759 19.124-17.128 30.090-23.927l0.561-0.324 111.787-53.248c30.676-16.277 51.214-48.016 51.214-84.552 0-0.575-0.005-1.148-0.015-1.721l0.001-144.981h119.467c16.264 1.302 28.97 14.821 28.97 31.308 0 0.995-0.046 1.978-0.137 2.949l0.009 136.409c0.025 0.492 0.040 1.069 0.040 1.649 0 12.584-6.809 23.577-16.945 29.496zM314.539 289.621c9.565 6.404 17.855 13.609 25.152 21.725-26.524 40.018-42.391 89.074-42.391 141.835 0 0.278 0 0.557 0.001 0.835 0-0.022 0 0.003 0 0.028 0 35.404 7.023 69.167 19.751 99.973-18.433 10.702-40.452 18.255-64.218 18.569-71.416 0.001-129.272-67.242-129.272-150.357-0.034-1.201-0.053-2.615-0.053-4.033 0-53.923 27.603-101.4 69.45-129.070l-174.869-82.619c-10.863-5.857-18.121-17.153-18.121-30.144 0-0.503 0.011-1.003 0.032-1.5l-0.002-138.169c-0.081-0.847-0.127-1.83-0.127-2.825 0-16.487 12.706-30.007 28.859-31.301l115.823-0.007v145.067c-0.006 0.392-0.009 0.856-0.009 1.32 0 37.149 21.309 69.32 52.37 84.959zM800.597 187.221l-214.699 102.229c28.689 18.918 51.133 45.202 64.919 76.188 12.279 26.534 19.194 56.282 19.22 87.643-0.152 18.264-2.571 35.885-6.988 52.696-18.612 76.678-79.711 135.046-153.268 135.046s-131.584-56.491-151.381-132.949c-4.769-16.314-7.621-35.084-7.849-54.485-0.002-0.29-0.002-0.481-0.002-0.673 0-32.828 7.622-63.876 21.193-91.47 14.181-29.538 36.602-54.589 64.276-72.084l-60.551-29.096-155.648-72.533c-13.416-7.233-22.379-21.184-22.379-37.228 0-0.472 0.008-0.942 0.023-1.411l-0.002-170.598c-0.112-1.107-0.176-2.392-0.176-3.692 0-20.471 15.808-37.25 35.883-38.796l553.946-0.008c20.092 1.681 35.762 18.402 35.762 38.784 0 0.946-0.034 1.884-0.1 2.812l0.007 170.542c0.016 0.427 0.024 0.929 0.024 1.432 0 15.977-8.889 29.878-21.99 37.028z" />
162
+ <glyph unicode="&#x2019;" glyph-name="fi-indent-more" horiz-adv-x="1018" d="M967.339 960h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.251c0 27.617-22.388 50.005-50.005 50.005zM967.339 82.261h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005zM1017.515 324.779c0 27.617-22.388 50.005-50.005 50.005h-570.197c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-27.617 22.388-50.005 50.005-50.005h570.027c27.617 0 50.005 22.388 50.005 50.005v0 46.080zM1017.515 615.765c0 27.617-22.388 50.005-50.005 50.005h-570.197c-27.617 0-50.005-22.388-50.005-50.005v-46.251c0-27.617 22.388-50.005 50.005-50.005h570.027c27.617 0 50.005 22.388 50.005 50.005v0 46.080zM8.363 332.8c2.346 0.014 4.461 0.992 5.971 2.557l182.445 105.304c2.555 1.415 4.258 4.092 4.267 7.167 0 0.015 0 0.031 0 0.047 0 3.382-2.008 6.296-4.897 7.613l-0.052 0.021-181.931 105.301c-1.502 1.45-3.549 2.343-5.805 2.343-4.542 0-8.239-3.622-8.36-8.135v-213.856c0-4.619 3.744-8.363 8.363-8.363z" />
163
+ <glyph unicode="&#x201a;" glyph-name="fi-icon-upfront" horiz-adv-x="1000" d="M604.501 902.144l82.603-15.189 16.043-200.021-71.68 47.616-173.568 31.915zM166.912 374.955l3.755 125.952-90.112-84.139zM823.808 379.733l153.6 74.069-19.968 254.464-168.789 113.493zM831.829 277.333v0c-59.051-28.672-142.848-68.267-233.301-111.616l184.32-89.429c113.835 54.443 217.429 104.789 217.088 107.691l-13.653 168.277zM175.787 635.733v0l311.296 287.403-196.949 36.864-271.872-251.733-7.68-226.133zM5.973 345.6l-5.973-173.739 488.107-235.861s84.139 39.595 183.979 86.869z" />
164
+ <glyph unicode="&#x201b;" glyph-name="fi-mobile-signal" horiz-adv-x="498" d="M469.845 677.717h-442.539c-15.219-0.658-27.307-13.155-27.307-28.476 0-0.069 0-0.138 0.001-0.206v-684.533c0-0.007 0-0.016 0-0.025 0-15.321 12.088-27.818 27.247-28.474l442.598-0.002c15.741 0 28.501 12.76 28.501 28.501v684.544c0 15.741-12.76 28.501-28.501 28.501zM249.856-34.475c-15.458 0-27.989 12.531-27.989 27.989s12.531 27.989 27.989 27.989c15.458 0 27.989-12.531 27.989-27.989s-12.531-27.989-27.989-27.989zM384.683 50.005h-271.019v514.048h271.019v-514.048zM472.917 839.68c2.291 2.879 3.676 6.569 3.676 10.581s-1.385 7.702-3.703 10.616l0.027-0.035-11.435 11.435-0.683 1.024c-54.197 53.869-128.896 87.166-211.371 87.166s-157.174-33.297-211.386-87.181l-12.273-12.273c-2.388-2.913-3.835-6.677-3.835-10.779 0-4.556 1.785-8.696 4.695-11.756l-0.007 0.007 21.675-23.723c2.879-2.291 6.569-3.676 10.581-3.676s7.702 1.385 10.616 3.703l-0.035-0.027 12.288 12.288c42.781 42.506 101.736 68.778 166.827 68.778s124.046-26.272 166.839-68.791l12.275-12.275c2.913-2.388 6.677-3.835 10.779-3.835 4.556 0 8.696 1.785 11.756 4.695l21.497 21.497zM388.608 776.363v0l-12.117 12.971c-32.541 32.045-77.233 51.831-126.545 51.831-49.739 0-94.777-20.13-127.41-52.688l-12.285-12.285c-2.388-2.913-3.835-6.677-3.835-10.779 0-4.556 1.785-8.696 4.695-11.756l21.838-21.838c2.879-2.291 6.569-3.676 10.581-3.676s7.702 1.385 10.616 3.703l-0.035-0.027 12.288 12.288c21.169 20.936 50.29 33.869 82.432 33.869s61.263-12.933 82.443-33.879l-0.011 0.010 12.288-12.288c2.913-2.388 6.677-3.835 10.779-3.835 4.556 0 8.696 1.785 11.756 4.695l-0.007-0.007 22.869 22.528c2.291 2.879 3.676 6.569 3.676 10.581s-1.385 7.702-3.703 10.616z" />
165
+ <glyph unicode="&#x201c;" glyph-name="fi-mobile" horiz-adv-x="688" d="M648.533 960h-610.816c-21.026-0.939-37.717-18.214-37.717-39.387 0-0.013 0-0.026 0-0.039v-945.15c0-0.060-0.001-0.13-0.001-0.201 0-21.139 16.71-38.375 37.641-39.221l610.893-0.002c21.773 0 39.424 17.651 39.424 39.424v945.152c0 21.773-17.651 39.424-39.424 39.424zM344.917-23.211c-21.302 0-38.571 17.269-38.571 38.571s17.269 38.571 38.571 38.571c21.302 0 38.571-17.269 38.571-38.571s-17.269-38.571-38.571-38.571zM531.115 93.355h-374.101v709.803h374.101v-709.803z" />
166
+ <glyph unicode="&#x201d;" glyph-name="fi-indent-less" horiz-adv-x="1018" d="M967.339 960h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.251c0 27.617-22.388 50.005-50.005 50.005zM967.339 82.261h-917.333c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-0.051 0-0.111 0-0.171 0-27.617 22.388-50.005 50.005-50.005 0 0 0 0 0 0h917.333c27.617 0 50.005 22.388 50.005 50.005v46.080c0 27.617-22.388 50.005-50.005 50.005zM1017.515 324.779c0 27.617-22.388 50.005-50.005 50.005h-570.197c-27.617 0-50.005-22.388-50.005-50.005v-46.080c0-27.617 22.388-50.005 50.005-50.005h570.027c27.617 0 50.005 22.388 50.005 50.005v0 46.080zM1017.515 615.765c0 27.617-22.388 50.005-50.005 50.005h-570.197c-27.617 0-50.005-22.388-50.005-50.005v-46.251c0-27.617 22.388-50.005 50.005-50.005h570.027c27.617 0 50.005 22.388 50.005 50.005v0 46.080zM0 448c0-0.014 0-0.030 0-0.046 0-3.382 2.008-6.296 4.897-7.613l0.052-0.021 181.76-104.96c1.481-1.476 3.525-2.389 5.783-2.389 0.007 0 0.014 0 0.021 0-0.001 0 0 0 0.001 0 4.559 0 8.265 3.647 8.361 8.183v213.684c0 4.619-3.744 8.363-8.363 8.363-0.007 0-0.016 0-0.024 0-2.341 0-4.453-0.982-5.945-2.556l-182.446-105.305c-2.468-1.442-4.1-4.079-4.1-7.097 0-0.085 0.001-0.17 0.004-0.254z" />
167
+ <glyph unicode="&#x201e;" glyph-name="fi-icon-pulse" d="M953.344 795.136c-50.228 49.253-119.1 79.651-195.072 79.651s-144.844-30.398-195.117-79.695c-38.696-39.38-43.475-51.156-51.155-51.156s-12.971 12.288-51.2 51.2c-50.201 49.243-119.044 79.636-194.987 79.636s-144.786-30.393-195.031-79.679c-87.849-88.021-85.289-210.559-38.185-319.615l60.587 29.355 35.328 57.003c9.871 16.236 27.465 26.915 47.553 26.915 1.283 0 2.556-0.044 3.817-0.129 20.718-0.759 38.662-12.655 47.979-29.897l40.085-76.59 89.088 160.939c9.915 17.658 28.522 29.393 49.87 29.393 24.834 0 45.958-15.88 53.773-38.040l79.653-219.535 35.84 61.611c10.096 17.054 28.392 28.315 49.32 28.331h120.834l116.907-56.832-117.248-56.832h-88.235l-80.725-138.411c-10.043-16.964-28.248-28.16-49.069-28.16-0.029 0-0.058 0-0.087 0h-5.115c-22.365 2.055-40.84 16.756-48.34 36.812l-78.294 216.116-79.189-143.36c-9.525-17.627-27.868-29.4-48.96-29.4-0.788 0-1.572 0.016-2.352 0.049-21.388 0.143-40.036 12.205-49.574 29.902l-43.839 82.905c-10.219-16.096-27.949-26.624-48.139-26.624-0.056 0-0.112 0-0.168 0l-60.066 22.869c2.219-3.584 4.096-7.509 6.315-11.093 92.843-143.531 361.131-381.44 441.856-381.44s348.843 238.933 441.515 382.123c79.531 123.563 107.861 283.819 0 392.533z" />
168
+ <glyph unicode="&#x2020;" glyph-name="fi-target" d="M586.581 478.037c3.74-8.972 5.913-19.395 5.913-30.326 0-44.583-36.142-80.725-80.725-80.725s-80.725 36.142-80.725 80.725c0 44.583 36.142 80.725 80.725 80.725 10.715 0 20.942-2.088 30.298-5.878l129.165 129.9c-43.229 33.318-98.153 53.401-157.767 53.401-143.459 0-259.755-116.296-259.755-259.755s116.296-259.755 259.755-259.755c143.459 0 259.755 116.296 259.755 259.755 0 61.341-21.262 117.715-56.819 162.156zM930.987 742.229l-40.96-40.96-60.757 19.797-23.040-23.040c56.894-66.802 91.503-154.104 91.503-249.489 0-213.114-172.763-385.877-385.877-385.877s-385.877 172.763-385.877 385.877c0 213.114 172.763 385.877 385.877 385.877 95.385 0 182.687-34.609 250.034-91.955l19.424 20.42-29.355 63.488 46.251 46.251c-80.54 55.050-180.045 87.906-287.225 87.906-283.43 0-513.195-229.765-513.195-513.195s229.765-513.195 513.195-513.195c283.43 0 513.195 229.765 513.195 513.195 0 110.456-34.896 212.762-94.264 296.494zM915.968 852.309l-43.179 94.72-74.581-74.581 43.179-94.72 94.72-30.549 74.581 74.581-94.72 30.549z" />
169
+ <glyph unicode="&#x2021;" glyph-name="fi-icon-smush" d="M955.733 702.805v0l-442.709-766.805c282.175 0.786 510.618 229.714 510.618 511.998 0 93.773-25.209 181.658-69.22 257.247zM295.765 628.565l216.235-374.443 216.235 374.443h-432.469zM131.243 789.333h762.368c-93.934 105.383-230.060 171.426-381.611 171.426s-287.677-66.043-381.167-170.92zM68.267 702.293v0c-42.518-73.027-67.616-160.731-67.616-254.297 0-282.121 228.18-510.948 510.054-511.996z" />
170
+ <glyph unicode="&#x2022;" glyph-name="fi-magnifying-search-glass-love" d="M1024 33.451l-242.859 242.859c52.055 49.795 98.806 104.294 139.851 163.072 79.456 122.966 106.762 278.272 2.314 382.891-48.581 47.564-115.156 76.915-188.587 76.915s-140.006-29.351-188.634-76.961c-37.841-38.183-42.449-49.959-50.129-49.959s-12.459 11.776-49.835 50.005c-47.787 47.673-113.742 77.152-186.583 77.152-0.824 0-1.648-0.004-2.47-0.011-0.446 0.005-1.122 0.008-1.799 0.008-72.973 0-139.062-29.471-187.015-77.16-104.265-104.607-76.959-259.743 0.012-379.38 89.941-139.435 349.696-370.347 427.691-370.347 34.987 0 106.837 46.592 183.296 110.421l247.296-246.955zM495.957 218.453c-76.117 44.373-245.419 195.413-311.808 299.008-14.848 22.869-85.333 140.629-18.091 207.701 22.936 22.589 54.438 36.537 89.198 36.537 0.682 0 1.362-0.005 2.041-0.016 0.539 0.013 1.297 0.020 2.056 0.020 34.352 0 65.51-13.678 88.323-35.886 13.113-13.285 20.793-22.33 27.108-29.498 28.176-36.777 71.691-60.581 120.811-61.778 49.504 1.197 93.019 25.001 120.919 61.403 6.59 7.542 14.441 17.441 27.411 29.9 23.627 22.433 55.642 36.231 90.88 36.231s67.253-13.798 90.938-36.285c66.673-66.847-3.471-184.607-18.319-207.647-66.219-102.4-235.691-254.635-311.637-299.008z" />
171
+ <glyph unicode="&#x2026;" glyph-name="fi-more" d="M236.715 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM630.272 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272zM1024 448c0-65.32-52.952-118.272-118.272-118.272s-118.272 52.952-118.272 118.272c0 65.32 52.952 118.272 118.272 118.272s118.272-52.952 118.272-118.272z" />
172
+ <glyph unicode="&#x2030;" glyph-name="fi-microphone-audio" horiz-adv-x="700" d="M699.733 459.605v0 197.632c0 28.748-23.305 52.053-52.053 52.053s-52.053-23.305-52.053-52.053v-196.096c0-135.965-110.222-246.187-246.187-246.187s-246.187 110.222-246.187 246.187v196.096c0 28.748-23.305 52.053-52.053 52.053s-52.053-23.305-52.053-52.053v-197.632h0.853c0.808-174.389 128.953-318.607 296.193-344.497l1.961-75.002h-183.979c-28.701 0-51.968-23.267-51.968-51.968s23.267-51.968 51.968-51.968h471.552c28.748 0 52.053 23.305 52.053 52.053s-23.305 52.053-52.053 52.053h-183.467v74.581c168.91 26.444 296.718 170.557 297.472 344.667zM173.909 462.507c0-97.461 79.008-176.469 176.469-176.469s176.469 79.008 176.469 176.469c0 1.365 0 2.56 0 3.925v0 321.024c0 97.367-78.932 176.299-176.299 176.299s-176.299-78.932-176.299-176.299v0-321.024c0-1.365 0-2.56 0-3.925z" />
173
+ <glyph unicode="&#x2039;" glyph-name="fi-icon-wpmu-logo-solid" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512zM847.019 345.6c0.009-0.584 0.014-1.273 0.014-1.964 0-35.154-12.93-67.288-34.294-91.906-20.619-23.931-51.098-39.171-85.143-39.421-66.262 0-119.51 59.733-119.51 133.12v204.971c0.271 1.352 0.427 2.905 0.427 4.495 0 13.196-10.697 23.893-23.893 23.893s-23.893-10.697-23.893-23.893c0-1.59 0.155-3.144 0.452-4.647l-0.025-204.648c0.011-0.64 0.017-1.395 0.017-2.151 0-35.094-12.934-67.168-34.294-91.714-20.621-23.935-51.101-39.175-85.146-39.425-66.262 0-119.51 59.733-119.51 133.12v204.971c0.049 0.602 0.078 1.304 0.078 2.012 0 13.487-10.225 24.586-23.346 25.967-14.416-0.145-25.952-11.776-25.952-26.101 0-0.661 0.025-1.317 0.073-1.965l-0.005-390.74-96.427-75.093v465.92c-0.008 0.565-0.013 1.233-0.013 1.901 0 35.174 12.929 67.328 34.294 91.97 20.643 23.895 51.106 39.122 85.133 39.42 66.271 0 119.519-59.733 119.519-133.29v-204.8c-0.049-0.598-0.077-1.294-0.077-1.996 0-13.453 10.24-24.514 23.351-25.814 13.942 0.61 24.924 11.977 24.924 25.908 0 0.669-0.025 1.333-0.075 1.989l0.005 204.713c0 73.387 53.931 133.291 119.467 133.291s119.467-59.733 119.467-133.291v-204.8c0-13.337 10.812-24.149 24.149-24.149s24.149 10.812 24.149 24.149v390.827l96.427 74.923z" />
174
+ <glyph unicode="&#x203a;" glyph-name="fi-icon-wpmu-logo-line" d="M771.413 363.861c0.004-0.373 0.007-0.813 0.007-1.254 0-29.18-10.801-55.837-28.623-76.191-17.051-19.741-42.228-32.293-70.341-32.464-54.643 0-99.187 49.323-99.187 109.909v168.277c0.163 0.95 0.256 2.044 0.256 3.16 0 10.84-8.787 19.627-19.627 19.627s-19.627-8.787-19.627-19.627c0-1.116 0.093-2.21 0.272-3.275l-0.016-168.162c0.005-0.41 0.008-0.895 0.008-1.381 0-29.139-10.803-55.756-28.622-76.062-17.016-19.703-42.123-32.243-70.163-32.466-54.652 0-99.025 49.322-99.025 109.909v168.277c0.040 0.492 0.063 1.066 0.063 1.644 0 11.117-8.436 20.264-19.256 21.388-11.005-1.124-19.441-10.271-19.441-21.388 0-0.579 0.023-1.152 0.068-1.719l-0.005-322.144-79.701-61.952v384.171c-0.004 0.354-0.006 0.772-0.006 1.191 0 29.2 10.8 55.877 28.623 76.256 17.062 19.722 42.232 32.268 70.336 32.462 54.647 0 99.021-49.322 99.021-109.909v-168.277c-0.163-0.95-0.256-2.044-0.256-3.16 0-10.84 8.787-19.627 19.627-19.627s19.627 8.787 19.627 19.627c0 1.116-0.093 2.21-0.272 3.275l0.016 168.162c0 60.587 44.373 109.909 99.157 109.909s98.987-49.323 98.987-109.909v-168.277c-0.163-0.95-0.256-2.044-0.256-3.16 0-10.84 8.787-19.627 19.627-19.627s19.627 8.787 19.627 19.627c0 1.116-0.093 2.21-0.272 3.275l0.016 322.104 79.531 61.952zM512 874.667c235.641 0 426.667-191.025 426.667-426.667s-191.025-426.667-426.667-426.667c-235.641 0-426.667 191.025-426.667 426.667s191.025 426.667 426.667 426.667zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512s-229.23 512-512 512z" />
175
+ <glyph unicode="&#x2044;" glyph-name="fi-wrench-tool" d="M985.6 795.307l-162.133-162.133c-2.102-0.132-4.559-0.207-7.034-0.207-65.98 0-119.467 53.487-119.467 119.467 0 2.475 0.075 4.931 0.224 7.369l62.106 61.788 100.011 100.011c1.55 1.519 2.51 3.634 2.51 5.973s-0.961 4.454-2.509 5.972c-0.592 0.532-1.266 0.988-1.998 1.344l-0.052 0.023h-1.365c-33.663 15.322-73.006 24.252-114.435 24.252-155.806 0-282.112-126.306-282.112-282.112 0-30.298 4.776-59.48 13.616-86.835l-294.958-292.404c-98.646-1.646-177.982-81.999-177.982-180.883 0-99.912 80.995-180.907 180.907-180.907 98.884 0 179.237 79.336 180.881 177.827l294.402 294.725c25.684-8.52 55.252-13.435 85.968-13.435 155.618 0 281.771 126.153 281.771 281.771 0 41.642-9.033 81.175-25.248 116.745l0.72-0.228c-0.311 0.584-0.651 1.087-1.036 1.551-1.507 1.535-3.622 2.495-5.961 2.495s-4.454-0.961-5.972-2.509zM256 116.907c-0.194-41.137-33.587-74.41-74.751-74.41-41.284 0-74.752 33.468-74.752 74.752 0 41.164 33.273 74.557 74.391 74.751 0.12 0.001 0.24 0.001 0.361 0.001 41.284 0 74.752-33.468 74.752-74.752 0-0.12 0-0.241-0.001-0.361z" />
176
+ <glyph unicode="&#x20ac;" glyph-name="fi-icon-devman" horiz-adv-x="989" d="M670.208 850.091c-46.763 109.909-175.275 109.909-175.275 109.909s-129.195 0-175.787-109.909c-53.76-126.635-156.501-549.547-156.501-549.547s80.043-109.909 332.288-109.909 332.117 109.909 332.117 109.909-102.4 422.912-156.501 549.547zM693.077 696.491l-106.325-62.464-68.267 62.464zM484.181 696.491l-71.168-61.611-103.424 62.464zM494.933 265.899c-109.909-119.467-269.483 27.477-269.483 27.477s14.848 65.195 95.573 110.933c-94.379 83.456-55.979 211.285-55.979 211.285l114.859-64 115.029 61.611 115.029-61.611 114.859 64s38.4-127.659-55.979-211.285c80.725-45.739 95.573-110.933 95.573-110.933s-159.915-146.944-269.483-27.477zM769.365 210.773l-274.432-164.864-275.115 164.864-219.819-109.909s52.736-164.864 494.933-164.864 494.933 164.864 494.933 164.864zM494.592 503.296l-60.075-6.827 60.075-74.24 60.075 74.24-60.075 6.827z" />
177
+ <glyph unicode="&#x2122;" glyph-name="fi-cloud" d="M877.056 534.699c-9.452 86.149-81.821 152.577-169.705 152.577-20.539 0-40.23-3.628-58.468-10.278l1.186 0.378c-22.632 94.168-106.125 163.063-205.709 163.063-107.089 0-195.57-79.67-209.405-182.972l-0.119-1.083c-130.264-5.014-233.965-111.827-233.965-242.86 0-133.915 108.311-242.532 242.109-243.028h597.38c0.016 0 0.036 0 0.056 0 101.609 0 183.979 82.37 183.979 183.979 0 88.518-62.513 162.435-145.799 180.012l-1.201 0.212z" />
178
+ <glyph unicode="&#x2202;" glyph-name="fi-icon-smart-crawl" d="M31.744 272.043c74.227-197.089 261.208-334.754 480.341-334.754s406.114 137.665 479.174 331.229zM992.256 623.957c-74.227 197.089-261.208 334.754-480.341 334.754s-406.114-137.665-479.174-331.229zM2.389 495.957c-1.365-15.701-2.389-31.744-2.389-47.957s1.024-32.085 2.389-47.957h1019.221c1.536 15.872 2.389 31.744 2.389 47.957s-0.853 32.256-2.389 47.957z" />
179
+ <glyph unicode="&#x2203;" glyph-name="fi-finger-swipe" horiz-adv-x="913" d="M777.216 472.917c-0.058 0-0.127 0-0.196 0-18.077 0-34.649-6.446-47.541-17.165-6.523 35.039-36.825 61.099-73.213 61.099-18.417 0-35.275-6.676-48.286-17.739-5.634 36.064-36.441 63.228-73.592 63.228-17.325 0-33.27-5.907-45.932-15.818l0.164 212.262c-1.958 39.719-34.638 71.181-74.667 71.181s-72.709-31.462-74.66-71.007l-0.007-387.929h-131.584c-32.085 0-55.808-21.333-55.808-66.389 1.728-42.208 34.238-76.309 75.589-80.525 52.581-0.030 107.707-26.142 111.291-55.667 2.56-17.92 27.136-232.448 242.859-232.448s270.336 150.528 270.336 252.587v209.579c0 41.284-33.468 74.752-74.752 74.752zM194.901 613.035l17.067 17.067c4.555 4.568 7.372 10.873 7.372 17.835s-2.817 13.266-7.373 17.835l-115.37 117.077 116.224 116.224c4.555 4.568 7.372 10.873 7.372 17.835s-2.817 13.266-7.373 17.835l-17.066 17.066c-4.568 4.555-10.873 7.372-17.835 7.372s-13.266-2.817-17.835-7.373l-152.746-151.039c-4.575-4.623-7.402-10.984-7.402-18.005s2.827-13.382 7.404-18.007l151.721-151.721c4.568-4.555 10.873-7.372 17.835-7.372s13.266 2.817 17.835 7.373zM717.995 952.661l-17.067-17.067c-4.555-4.568-7.372-10.873-7.372-17.835s2.817-13.266 7.373-17.835l116.223-116.223-117.419-117.077c-4.555-4.568-7.372-10.873-7.372-17.835s2.817-13.266 7.373-17.835l17.066-17.066c4.568-4.555 10.873-7.372 17.835-7.372s13.266 2.817 17.835 7.373l151.722 151.722c4.575 4.623 7.402 10.984 7.402 18.005s-2.827 13.382-7.404 18.007l-150.526 151.038c-4.568 4.555-10.873 7.372-17.835 7.372s-13.266-2.817-17.835-7.373z" />
180
+ <glyph unicode="&#x2206;" glyph-name="fi-book" horiz-adv-x="870" d="M870.4 823.467v0c0 12.253-9.933 22.187-22.187 22.187h-46.080v-819.2c-0.085-11.982-9.583-21.717-21.461-22.185l-690.731-0.001c-10.679 0.117-19.552 7.703-21.649 17.775l-0.025 48.956h643.413c12.274 0.097 22.187 10.069 22.187 22.357 0 0 0 0 0 0.001v0 844.288c0 0 0 0 0 0.001 0 12.288-9.913 22.26-22.177 22.357h-689.332c-12.348 0-22.357-10.010-22.357-22.357s0 0 0-0.853v-977.579s0 0 0 0 0 0 0 0v-1.024c0.097-12.274 10.069-22.187 22.357-22.187 0 0 0 0 0.001 0h825.856c12.274 0.097 22.187 10.069 22.187 22.357 0 0 0 0 0 0.001v0z" />
181
+ <glyph unicode="&#x220f;" glyph-name="fi-calendar" horiz-adv-x="907" d="M889.515 597.675h-871.424c0 0-0.001 0-0.001 0-9.931 0-17.993-8.002-18.090-17.911v-625.673c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v625.655c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM302.421 68.779c-31.96 0.064-62.513 6.006-90.661 16.801-1.627 0.778-3.962 4.026-3.962 7.818 0 0.406 0.027 0.805 0.079 1.197l8.358 61.223c0.395 2.762 1.989 5.086 4.227 6.463 1.187 0.588 2.537 0.919 3.965 0.919s2.778-0.331 3.979-0.92c23.432-9.491 50.672-15.011 79.201-15.011 0.937 0 1.873 0.006 2.807 0.018 31.261-0.001 53.106 14.847 53.106 36.009 0 26.283-12.629 40.448-82.091 44.373-4.77 0.279-8.533 4.215-8.533 9.031 0 0.005 0 0.010 0 0.015v60.927c0 0.008 0 0.017 0 0.026 0 4.755 3.67 8.654 8.332 9.018 60.106 4.781 66.591 21.847 66.591 36.013 0 9.045 0 24.405-40.448 24.405-24.992-0.457-48.421-6.714-69.134-17.477-0.327-0.196-1.737-0.55-3.229-0.55s-2.902 0.355-4.149 0.984c-2.488 1.281-4.294 3.707-4.72 6.583l-8.369 61.147c-0.051 0.36-0.080 0.776-0.080 1.199 0 3.599 2.102 6.707 5.145 8.164 28.28 12.188 61.139 19.262 95.651 19.262 2.753 0 5.495-0.045 8.226-0.134 72.818 0.010 121.97-34.123 121.97-85.323 0-37.888-19.627-65.877-59.904-85.333 34.133-13.312 69.803-37.547 69.803-88.576 0-73.045-61.269-119.467-156.331-119.467zM682.667 82.432c0-4.996-4.050-9.045-9.045-9.045h-74.069c-4.996 0-9.045 4.050-9.045 9.045v246.101l-48.981-18.603c-1.147-0.565-2.498-0.896-3.925-0.896s-2.778 0.331-3.979 0.92c-2.26 1.339-3.87 3.682-4.209 6.419l-8.367 61.312c-0.053 0.365-0.084 0.787-0.084 1.216 0 3.504 2.031 6.534 4.981 7.977l106.719 52.759c1.19 0.626 2.597 1.003 4.089 1.024h37.212c4.858-0.175 8.73-4.155 8.73-9.040 0-0.242-0.010-0.482-0.028-0.72l0.002-348.47zM889.515 879.445h-92.843v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.181 48.64-100.181 95.232v43.52h-283.819v-43.52c0-46.080-26.283-95.232-100.181-95.232s-100.352 48.64-100.352 95.232v43.52h-93.867c-0.051 0.001-0.111 0.001-0.171 0.001-9.897 0-17.92-8.023-17.92-17.92 0-0.060 0-0.121 0.001-0.181v-183.116c0-9.991 8.099-18.091 18.091-18.091h871.424c0.051-0.001 0.111-0.001 0.171-0.001 9.897 0 17.92 8.023 17.92 17.92 0 0.060 0 0.121-0.001 0.181v183.116c0.001 0.051 0.001 0.111 0.001 0.171 0 9.897-8.023 17.92-17.92 17.92-0.060 0-0.121 0-0.181-0.001zM212.309 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.117 37.205-41.984 37.205s-41.643-10.752-41.643-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035zM696.491 798.891c29.867 0 41.984 10.752 41.984 37.035v86.869c0 26.453-12.288 37.205-41.984 37.205s-41.984-10.752-41.984-37.205v-86.869c0-26.453 12.117-37.035 41.984-37.035z" />
182
+ <glyph unicode="&#x2211;" glyph-name="fi-news-paper" d="M999.595 768.341h-848.384c-13.479 0-24.405-10.927-24.405-24.405v-106.155h-90.283c0 0-0.001 0-0.002 0-20.051 0-36.328-16.158-36.521-36.163v-543.592c0-67.393 54.633-122.027 122.027-122.027h779.947c67.393 0 122.027 54.633 122.027 122.027v685.909c0 13.479-10.927 24.405-24.405 24.405zM950.784 82.261c0-40.436-32.78-73.216-73.216-73.216h-719.36c25.4 18.793 41.714 48.612 41.813 82.245v603.835h750.933zM273.408 446.635h268.288v-317.099h-268.288v317.099zM273.408 579.584h603.989v-73.216h-603.989v73.216zM614.912 445.269h262.485v-73.216h-262.485v73.216zM614.912 326.144h262.485v-73.216h-262.485v73.216zM614.912 204.288h262.485v-73.216h-262.485v73.216z" />
183
+ <glyph unicode="&#x221a;" glyph-name="fi-bookmark" horiz-adv-x="512" d="M0 960v-1024l256 256 256-256v1024h-512z" />
184
+ <glyph unicode="&#x221e;" glyph-name="fi-layout-grid" d="M200.875 960h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-558.763c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v558.763c0 19.794-16.046 35.84-35.84 35.84zM594.432 960h-164.864c-19.794 0-35.84-16.046-35.84-35.84v-165.035c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v165.035c0 0 0 0 0 0 0 19.794-16.046 35.84-35.84 35.84-0.060 0-0.12 0-0.18 0zM1024 924.16v0c0 19.794-16.046 35.84-35.84 35.84h-165.035c-19.794 0-35.84-16.046-35.84-35.84v0-558.592c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v558.592zM594.432 566.272h-164.864c-19.794 0-35.84-16.046-35.84-35.84v-558.592c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v558.592c0 19.794-16.046 35.84-35.84 35.84zM200.875 172.544h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84zM988.16 172.544h-165.035c-19.794 0-35.84-16.046-35.84-35.84v-164.864c0-19.794 16.046-35.84 35.84-35.84h165.035c19.794 0 35.84 16.046 35.84 35.84v164.864c0 19.794-16.046 35.84-35.84 35.84z" />
185
+ <glyph unicode="&#x222b;" glyph-name="fi-paint-bucket" d="M907.435 459.947v0l-383.488 383.488c-5.437 5.441-12.949 8.806-21.248 8.806s-15.811-3.365-21.248-8.806l-62.806-62.806-134.485 134.315c-10.895 11.861-26.477 19.268-43.789 19.268-32.801 0-59.392-26.591-59.392-59.392 0-17.609 7.664-33.429 19.837-44.305l133.86-133.853-325.803-325.803c-5.39-5.428-8.721-12.906-8.721-21.163s3.331-15.735 8.723-21.164l383.657-383.657c5.437-5.441 12.949-8.806 21.248-8.806s15.811 3.365 21.248 8.806l472.406 472.576c5.4 5.455 8.736 12.962 8.736 21.248s-3.336 15.793-8.739 21.251zM671.915 349.696h-515.584l346.453 346.453 257.877-257.707zM1002.667 151.040l-71.339 123.563-1.195 2.731c-3.657 4.662-9.29 7.629-15.616 7.629s-11.959-2.967-15.584-7.586l-0.032-0.043v-1.195c-0.98-1.283-1.837-2.743-2.509-4.303l-69.683-120.796c-13.484-18.059-21.589-40.821-21.589-65.475 0-60.796 49.284-110.080 110.080-110.080s110.080 49.284 110.080 110.080c0 24.655-8.105 47.416-21.796 65.766z" />
186
+ <glyph unicode="&#x2248;" glyph-name="fi-finger-point" horiz-adv-x="830" d="M744.448 548.523c-0.010 0-0.021 0-0.032 0-20.666 0-39.617-7.347-54.382-19.571-7.65 39.865-42.209 69.443-83.676 69.443-21.062 0-40.342-7.631-55.226-20.278-6.564 41.133-41.748 72.072-84.159 72.072-19.772 0-37.974-6.725-52.443-18.012l0.19 242.489c0 47.128-38.205 85.333-85.333 85.333s-85.333-38.205-85.333-85.333v-440.661l-100.352 95.403c-14.507 11.766-33.194 18.891-53.546 18.891-47.128 0-85.333-38.205-85.333-85.333 0-21.842 8.206-41.767 21.704-56.861l110.008-104.536c40.896-39.332 75.123-85.219 101.064-136.040l32.568-64.493c32.768-75.264 102.059-165.035 251.051-165.035 246.784 0 308.395 171.861 308.395 288.085v238.933c0 47.128-38.205 85.333-85.333 85.333z" />
187
+ <glyph unicode="&#x2260;" glyph-name="fi-zoom-in" d="M584.875 960c-0.154 0-0.336 0-0.519 0-242.522 0-439.125-196.603-439.125-439.125 0-95.43 30.441-183.75 82.142-255.779l-227.372-225.501 103.595-103.595 226.816 226.816c70.664-50.695 158.892-81.067 254.214-81.067 242.522 0 439.125 196.603 439.125 439.125 0 242.434-196.461 438.983-438.862 439.125zM584.875 228.011c-0.051 0-0.111 0-0.171 0-161.744 0-292.864 131.12-292.864 292.864s131.12 292.864 292.864 292.864c161.744 0 292.864-131.12 292.864-292.864 0-0.060 0-0.12 0-0.18-0.291-161.524-131.161-292.393-292.666-292.684zM772.608 571.563h-136.533v136.533c0 6.221-5.043 11.264-11.264 11.264h-78.677c-0.051 0.001-0.111 0.001-0.171 0.001-6.221 0-11.264-5.043-11.264-11.264 0 0 0-0.001 0-0.001v-136.533h-136.533c-6.221 0-11.264-5.043-11.264-11.264v-78.165c0-6.221 5.043-11.264 11.264-11.264h136.533v-136.533c0 0 0-0.001 0-0.001 0-6.221 5.043-11.264 11.264-11.264 0.060 0 0.12 0 0.18 0.001h78.839c6.221 0 11.264 5.043 11.264 11.264v136.533h136.533c6.221 0 11.264 5.043 11.264 11.264v77.995c0 6.221-5.043 11.264-11.264 11.264z" />
188
+ <glyph unicode="&#x2264;" glyph-name="fi-arrows-in" d="M368.64 44.885l47.957 290.133c0.115 0.746 0.181 1.606 0.181 2.481 0 4.608-1.826 8.789-4.794 11.86l0.005-0.005c-3.066 2.963-7.247 4.789-11.855 4.789-0.875 0-1.736-0.066-2.575-0.193l-288.674-49.311c-7.383-1.988-12.727-8.623-12.727-16.506 0-4.112 1.454-7.884 3.876-10.831l56.467-56.461-151.723-152.235c-2.869-3.046-4.633-7.163-4.633-11.691s1.763-8.644 4.641-11.699l104.44-104.439c3.046-2.869 7.163-4.633 11.691-4.633s8.644 1.763 11.699 4.641l151.543 151.544 57.173-56.32c2.999-2.672 6.975-4.305 11.332-4.305 8.109 0 14.896 5.655 16.635 13.236zM655.36 851.115l-47.957-290.133c-0.115-0.746-0.181-1.606-0.181-2.481 0-4.608 1.826-8.789 4.794-11.86l-0.005 0.005c3.066-2.963 7.247-4.789 11.855-4.789 0.875 0 1.736 0.066 2.575 0.193l288.674 48.799c7.563 1.86 13.084 8.583 13.084 16.595 0 4.306-1.595 8.24-4.226 11.243l-56.474 56.471 151.552 151.552c2.869 3.046 4.633 7.163 4.633 11.691s-1.763 8.644-4.641 11.699l-104.269 105.122c-3.046 2.869-7.163 4.633-11.691 4.633s-8.644-1.763-11.699-4.641l-151.543-151.544-57.173 56.32c-2.999 2.672-6.975 4.305-11.332 4.305-8.109 0-14.896-5.655-16.635-13.236zM915.115 304.64l-290.133 47.957c-0.746 0.115-1.606 0.181-2.481 0.181-4.608 0-8.789-1.826-11.86-4.794l0.005 0.005c-2.963-3.066-4.789-7.247-4.789-11.855 0-0.875 0.066-1.736 0.193-2.575l49.311-288.674c1.814-7.625 8.568-13.209 16.625-13.209 4.372 0 8.361 1.644 11.381 4.348l56.474 56.476 151.552-151.552c3.046-2.869 7.163-4.633 11.691-4.633s8.644 1.763 11.699 4.641l104.439 104.44c2.869 3.046 4.633 7.163 4.633 11.691s-1.763 8.644-4.641 11.699l-151.544 151.543 56.32 57.003c2.672 2.999 4.305 6.975 4.305 11.332 0 8.109-5.655 14.896-13.236 16.635zM108.885 591.36l290.133-47.957c0.746-0.115 1.606-0.181 2.481-0.181 4.608 0 8.789 1.826 11.86 4.794l-0.005-0.005c2.963 3.066 4.789 7.247 4.789 11.855 0 0.875-0.066 1.736-0.193 2.575l-49.311 288.674c-1.988 7.383-8.623 12.727-16.506 12.727-4.112 0-7.884-1.454-10.831-3.876l-57.144-56.467-151.552 151.723c-3.046 2.869-7.163 4.633-11.691 4.633s-8.644-1.763-11.699-4.641l-104.439-104.44c-2.869-3.046-4.633-7.163-4.633-11.691s1.763-8.644 4.641-11.699l151.544-151.543-56.32-57.173c-2.672-2.999-4.305-6.975-4.305-11.332 0-8.109 5.655-14.896 13.236-16.635z" />
189
+ <glyph unicode="&#x2265;" glyph-name="fi-arrows-compress" d="M401.067 54.443l52.224 315.051c0.194 0.966 0.305 2.076 0.305 3.212 0 4.839-2.014 9.207-5.249 12.313l-0.006 0.006c-3.239 3.222-7.705 5.213-12.636 5.213-1.083 0-2.144-0.096-3.174-0.28l-314.089-52.891c-8.563-1.452-15.003-8.814-15.003-17.681 0-4.962 2.016-9.452 5.274-12.697l61.441-61.441-164.864-164.864c-3.118-3.22-5.039-7.615-5.039-12.459s1.922-9.238 5.044-12.463l114.171-114.171c3.247-3.269 7.745-5.292 12.715-5.292s9.468 2.023 12.714 5.291l164.353 165.377 61.44-61.44c3.245-3.259 7.736-5.275 12.698-5.275 8.867 0 16.229 6.44 17.666 14.897zM622.933 841.557l-52.395-315.051c-0.152-0.878-0.239-1.888-0.239-2.919 0-4.919 1.982-9.374 5.19-12.613l-0.001 0.001c3.264-3.216 7.747-5.201 12.694-5.201 1.062 0 2.103 0.092 3.116 0.267l314.26 52.891c8.563 1.452 15.003 8.814 15.003 17.681 0 4.962-2.016 9.452-5.274 12.697l-61.953 61.441 165.035 165.035c3.269 3.247 5.292 7.745 5.292 12.715s-2.023 9.468-5.291 12.714l-113.836 113.494c-3.247 3.269-7.745 5.292-12.715 5.292s-9.468-2.023-12.714-5.291l-164.353-165.377-61.44 61.44c-3.245 3.259-7.736 5.275-12.698 5.275-8.867 0-16.229-6.44-17.666-14.897z" />
190
+ <glyph unicode="&#x25ca;" glyph-name="fi-key" d="M910.165 573.611h-441.344c-44.245 75.622-125.067 125.611-217.564 125.611-138.746 0-251.221-112.476-251.221-251.221s112.476-251.221 251.221-251.221c92.497 0 173.319 49.989 216.922 124.425l48.087 1.186c0.015 0 0.032 0 0.050 0 2.386 0 4.544 0.98 6.093 2.559l88.236 88.919c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l62.123-62.123c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l39.254 39.254c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l45.057-45.398c1.547-1.559 3.69-2.524 6.059-2.524s4.512 0.965 6.058 2.524l44.886 45.057c1.547 1.559 3.69 2.524 6.059 2.524s4.512-0.965 6.058-2.524l36.353-36.353c1.538-1.508 3.647-2.439 5.973-2.439s4.435 0.931 5.975 2.441l110.42 103.593c1.664 1.561 2.701 3.774 2.701 6.229s-1.037 4.668-2.697 6.225l-105.306 101.38c-1.553 1.476-3.657 2.385-5.972 2.389zM136.533 390.827c-31.355 0.29-56.661 25.775-56.661 57.171 0 31.576 25.597 57.173 57.173 57.173s57.172-25.596 57.173-57.171c0-0.001 0-0.002 0-0.002 0-31.576-25.597-57.173-57.173-57.173-0.18 0-0.36 0.001-0.539 0.002z" />
191
+ <glyph unicode="&#xe900;" glyph-name="fi-notification-count" horiz-adv-x="828" d="M827.563 610.645c0-77.008-62.427-139.435-139.435-139.435s-139.435 62.427-139.435 139.435c0 77.008 62.427 139.435 139.435 139.435s139.435-62.427 139.435-139.435zM704.853 383.659v30.208c-5.632 0-11.093 0-17.067 0-107.86 1.799-194.606 89.657-194.606 197.777 0 85.329 54.030 158.038 129.745 185.783-39.084 43.125-92.179 73.465-151.907 85.462l-1.855 21.815c0 30.586-24.795 55.381-55.381 55.381s-55.381-24.795-55.381-55.381v-21.675c-135.291-26.866-235.861-144.617-235.861-285.858 0-0.003 0-0.006 0-0.009v-230.57c0-0.027 0-0.060 0-0.092 0-80.194-38.652-151.36-98.342-195.885l-24.197-17.868v-122.539h292.523c14.321-54.478 63.131-94.007 121.173-94.007s106.853 39.529 120.978 93.135l292.889 0.872v122.539l-23.552 17.067c-62.293 46.080-98.987 119.467-98.987 213.504z" />
192
+ <glyph unicode="&#xe901;" glyph-name="fi-dashboard-settings" horiz-adv-x="1160" d="M522.581 279.040l-65.877 75.605c-5.883 6.757-9.469 15.649-9.469 25.377 0 12.905 6.31 24.336 16.013 31.377l0.112 0.077 328.875 234.837c6.179 4.355 13.863 6.96 22.155 6.96 11.546 0 21.912-5.051 29.010-13.063l14.883-17.107c5.697-6.702 9.162-15.456 9.162-25.019 0-10.108-3.871-19.311-10.211-26.209l0.025 0.028-276.992-294.571c-7.076-7.461-17.061-12.103-28.129-12.103-11.636 0-22.074 5.13-29.176 13.252l-0.039 0.045zM955.733 821.931c-98.42 79.372-225.003 127.407-362.805 127.407-320.472 0-580.267-259.794-580.267-580.267 0-168.145 71.518-319.586 185.794-425.563l0.371-0.34c5.032-4.383 11.653-7.055 18.899-7.055 10.608 0 19.879 5.727 24.889 14.258l0.074 0.136 49.323 85.333c2.31 4.011 3.672 8.821 3.672 13.949 0 7.899-3.233 15.043-8.447 20.181l-0.003 0.003c-75.845 76.975-122.681 182.715-122.681 299.394 0 235.641 191.025 426.667 426.667 426.667 97.952 0 188.194-33.007 260.211-88.506l-0.997 0.739c2.156-1.767 4.941-2.838 7.977-2.838 3.568 0 6.79 1.479 9.087 3.858l0.004 0.004 88.235 94.208c2.417 2.332 3.917 5.599 3.917 9.216s-1.501 6.884-3.913 9.212l-0.004 0.004zM936.96 634.197c-3.125-2.326-5.128-6.009-5.128-10.16 0-2.569 0.767-4.959 2.085-6.954l-0.029 0.047c45.165-66.477 72.109-148.505 72.109-236.827 0-121.799-51.241-231.631-133.342-309.113l-0.207-0.193c-5.218-5.141-8.451-12.285-8.451-20.184 0-5.128 1.362-9.938 3.745-14.087l-0.073 0.138 49.323-85.333c5.045-8.652 14.281-14.375 24.853-14.375 7.306 0 13.974 2.733 19.038 7.232l-0.029-0.026c122.003 106.927 198.616 263.064 198.616 437.095 0 121.548-37.372 234.368-101.252 327.595l1.282-1.981c-2.364 3.025-6.013 4.951-10.111 4.951-3.185 0-6.098-1.163-8.338-3.088l0.017 0.014zM698.368 694.613c0-33.084-26.82-59.904-59.904-59.904s-59.904 26.82-59.904 59.904c0 33.084 26.82 59.904 59.904 59.904s59.904-26.82 59.904-59.904zM450.389 635.563c0-33.084-26.82-59.904-59.904-59.904s-59.904 26.82-59.904 59.904c0 33.084 26.82 59.904 59.904 59.904s59.904-26.82 59.904-59.904zM882.347 166.4c0-33.084-26.82-59.904-59.904-59.904s-59.904 26.82-59.904 59.904c0 33.084 26.82 59.904 59.904 59.904s59.904-26.82 59.904-59.904zM961.707 417.963c0-33.084-26.82-59.904-59.904-59.904s-59.904 26.82-59.904 59.904c0 33.084 26.82 59.904 59.904 59.904s59.904-26.82 59.904-59.904z" />
193
+ <glyph unicode="&#xe902;" glyph-name="fi-update-arrow" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512v0c0 282.77-229.23 512-512 512v0zM512 31.915c-229.798 0-416.085 186.288-416.085 416.085s186.288 416.085 416.085 416.085c229.798 0 416.085-186.288 416.085-416.085v0c0-0.051 0-0.111 0-0.171 0-229.703-186.211-415.915-415.915-415.915-0.060 0-0.12 0-0.18 0h0.009zM759.467 446.464l-38.229 38.229c-2.406 2.393-5.724 3.873-9.387 3.873s-6.98-1.479-9.387-3.873l-150.186-150.186v352.427c0 6.127-4.967 11.093-11.093 11.093h-58.368c-6.127 0-11.093-4.967-11.093-11.093v0-352.427l-150.187 150.187c-2.406 2.393-5.724 3.873-9.387 3.873s-6.98-1.479-9.387-3.873l-38.228-38.228c-2.393-2.406-3.873-5.724-3.873-9.387s1.479-6.98 3.873-9.387l-0.001 0.001 238.251-238.592c2.352-2.374 5.612-3.844 9.216-3.844s6.864 1.47 9.215 3.843l238.252 238.422c2.393 2.406 3.873 5.724 3.873 9.387s-1.479 6.98-3.873 9.387l0.001-0.001z" />
194
+ <glyph unicode="&#xe903;" glyph-name="fi-icon-performance" d="M417.792 403.456c1.004 1.77 1.595 3.888 1.595 6.144 0 6.975-5.654 12.629-12.629 12.629-0.021 0-0.042 0-0.063 0h-143.698c-2.535 0.013-4.584 2.071-4.584 4.608 0 1.352 0.582 2.567 1.509 3.41l0.004 0.003 508.075 460.629c-72.482 41.722-159.387 66.332-252.040 66.332-282.77 0-512-229.23-512-512 0-168.707 81.597-318.357 207.479-411.636l1.383-0.979zM789.675 878.080l-186.88-329.045c-0.991-1.775-1.574-3.894-1.574-6.15 0-7.069 5.731-12.8 12.8-12.8 0.133 0 0.266 0.002 0.399 0.006h143.341c2.531-0.018 4.577-2.074 4.577-4.608 0-1.265-0.51-2.41-1.334-3.243v0l-527.36-503.808c80.343-54.904 179.602-87.673 286.514-87.673 282.77 0 512 229.23 512 512 0 182.975-95.982 343.532-240.344 434.070l-2.138 1.251z" />
195
+ <glyph unicode="&#xe904;" glyph-name="fi-power-on-off" d="M916.651 761.003c-12.235 15.422-30.974 25.224-52.003 25.224-15.397 0-29.566-5.255-40.813-14.069l0.144 0.109c-15.645-12.197-25.611-31.046-25.611-52.223 0-15.306 5.207-29.396 13.945-40.596l-0.11 0.147c49.588-63.037 79.531-143.561 79.531-231.079 0-0.181 0-0.363 0-0.544v0.028c0-209.721-170.012-379.733-379.733-379.733s-379.733 170.012-379.733 379.733v0c-0.001 0.37-0.002 0.807-0.002 1.245 0 87.421 29.877 167.864 79.977 231.675l-0.615-0.813c8.478 10.994 13.589 24.965 13.589 40.129 0 21.067-9.863 39.83-25.223 51.924l-0.141 0.107c-11.057 8.587-25.133 13.767-40.419 13.767-21.171 0-40.022-9.936-52.144-25.398l-0.109-0.144c-66.83-85.078-107.179-193.714-107.179-311.774 0-0.252 0-0.504 0.001-0.756v0.040c0-282.77 229.23-512 512-512s512 229.23 512 512v0c0.002 0.53 0.003 1.158 0.003 1.785 0 117.964-40.283 226.52-107.844 312.661l0.833-1.103zM512 382.123c36.271 0.193 65.61 29.593 65.707 65.868v445.961c0 36.477-29.571 66.048-66.048 66.048s-66.048-29.571-66.048-66.048v0-445.952c0.097-36.404 29.63-65.878 66.048-65.878 0.12 0 0.24 0 0.36 0.001h-0.018z" />
196
+ <glyph unicode="&#xe905;" glyph-name="fi-cloud-migration" d="M877.056 534.699c-9.452 86.149-81.821 152.577-169.705 152.577-20.539 0-40.23-3.628-58.468-10.278l1.186 0.378c-22.632 94.168-106.125 163.063-205.709 163.063-107.089 0-195.57-79.67-209.405-182.972l-0.119-1.083c-130.264-5.014-233.965-111.827-233.965-242.86 0-133.915 108.311-242.532 242.109-243.028h597.38c0.016 0 0.036 0 0.056 0 101.609 0 183.979 82.37 183.979 183.979 0 88.518-62.513 162.435-145.799 180.012l-1.201 0.212zM563.2 507.733c0 0.001 0 0.001 0 0.002 0 4.653 3.724 8.436 8.354 8.531h30.046c4.639-0.096 8.363-3.879 8.363-8.532 0-0.001 0-0.001 0-0.002v0-30.037c0-4.619-3.744-8.363-8.363-8.363h-29.867c-4.619 0-8.363 3.744-8.363 8.363v0zM447.147 324.096c0-4.619-3.744-8.363-8.363-8.363h-30.037c-4.619 0-8.363 3.744-8.363 8.363v0 30.037c0 0.001 0 0.001 0 0.002 0 4.653 3.724 8.436 8.354 8.531h30.046c4.639-0.096 8.363-3.879 8.363-8.532 0-0.001 0-0.001 0-0.002v0zM464.213 477.696c0-4.619-3.744-8.363-8.363-8.363v0h-195.584l72.704-72.533c1.72-1.728 2.783-4.11 2.783-6.741s-1.063-5.013-2.783-6.742v0l-19.627-20.651c-1.728-1.72-4.11-2.783-6.741-2.783s-5.013 1.063-6.742 2.783v0l-122.88 122.88c-1.71 1.7-2.768 4.055-2.768 6.656s1.058 4.956 2.768 6.656v0l122.88 122.88c1.728 1.72 4.11 2.783 6.741 2.783s5.013-1.063 6.742-2.783v0l19.797-19.797c1.72-1.728 2.783-4.11 2.783-6.741s-1.063-5.013-2.783-6.742v0l-72.875-72.192h196.437c4.619 0 8.363-3.744 8.363-8.363v0zM518.827 324.096c0-4.619-3.744-8.363-8.363-8.363v0h-29.184c-4.619 0-8.363 3.744-8.363 8.363v0 30.037c0 0.001 0 0.001 0 0.002 0 4.653 3.724 8.436 8.354 8.531h30.729c4.639-0.096 8.363-3.879 8.363-8.532 0-0.001 0-0.001 0-0.002v0zM535.893 477.696c0-4.619-3.744-8.363-8.363-8.363v0h-28.331c-4.619 0-8.363 3.744-8.363 8.363v0 30.037c0 0.001 0 0.001 0 0.002 0 4.653 3.724 8.436 8.354 8.531h29.876c4.639-0.096 8.363-3.879 8.363-8.532 0-0.001 0-0.001 0-0.002v0zM831.829 332.459l-121.173-123.392c-1.728-1.72-4.11-2.783-6.741-2.783s-5.013 1.063-6.742 2.783v0l-19.797 19.797c-1.72 1.728-2.783 4.11-2.783 6.741s1.063 5.013 2.783 6.742v0l73.557 73.387h-197.12c-4.619 0-8.363 3.744-8.363 8.363v0 30.037c0 4.619 3.744 8.363 8.363 8.363v0h197.12l-72.875 72.875c-1.72 1.728-2.783 4.11-2.783 6.741s1.063 5.013 2.783 6.742v0l19.797 19.797c1.728 1.72 4.11 2.783 6.741 2.783s5.013-1.063 6.742-2.783v0l122.88-122.88c1.71-1.7 2.768-4.055 2.768-6.656s-1.058-4.956-2.768-6.656v0z" />
197
+ <glyph unicode="&#xe906;" glyph-name="fi-icon-shipper-anchor" d="M999.595 431.957l-231.595-90.624 75.264-57.856c-40.448-87.723-120.32-185.856-277.163-204.8v405.845h87.552c32.896 0 59.563 26.667 59.563 59.563v0 37.717c0 6.881-5.578 12.459-12.459 12.459h-133.973v83.968c54.046 22.297 91.392 74.577 91.392 135.579 0 80.778-65.483 146.261-146.261 146.261s-146.261-65.483-146.261-146.261c0-61.002 37.345-113.282 90.421-135.224l0.971-0.356v-83.968h-133.803c-6.881 0-12.459-5.578-12.459-12.459v0-37.717c0-32.896 26.667-59.563 59.563-59.563v0h86.869v-405.504c-125.867 11.186-230.756 90.764-278.041 200.922l-0.829 2.171 77.653 59.221-231.595 90.624 9.728-260.437 61.44 47.104c69.568-136.502 204.284-231.011 362.051-242.771l1.469-0.088c1.783-5.006 4.522-9.283 8.023-12.801l-0.001 0.001 19.797-17.067c6.359-6.346 15.137-10.269 24.832-10.269s18.473 3.924 24.833 10.27l-0.001-0.001 19.797 17.067c3.472 3.534 6.205 7.805 7.943 12.556l0.078 0.244c159.506 11.114 294.419 106.399 361.525 241.346l1.142 2.537 62.805-48.128zM512 868.523c30.256 0 54.784-24.528 54.784-54.784s-24.528-54.784-54.784-54.784c-30.256 0-54.784 24.528-54.784 54.784v0c0 30.256 24.528 54.784 54.784 54.784v0z" />
198
+ <glyph unicode="&#xe907;" glyph-name="fi-icon-forminator2" horiz-adv-x="1025" d="M976.896 662.699l-436.224-436.565c-4.134-4.113-9.834-6.655-16.128-6.655s-11.994 2.542-16.129 6.656l-53.93 53.93c-4.113 4.134-6.655 9.834-6.655 16.128s2.542 11.994 6.656 16.129l-0.001-0.001 456.192 456.704c-94.399 116.371-237.39 190.138-397.611 190.138-282.11 0-510.805-228.695-510.805-510.805s228.695-510.805 510.805-510.805c282.11 0 510.805 228.695 510.805 510.805 0 77.77-17.38 151.48-48.467 217.459l1.32-3.117zM139.605 348.331c-2.325 0.030-4.551 0.402-6.647 1.068l0.162-0.044c-8.027 2.344-14.11 8.824-15.845 16.919l-0.027 0.148c-5.407 24.515-8.514 52.679-8.533 81.565v0.014c0.291 221.574 179.833 401.117 401.38 401.408h31.772l-93.184-94.208c-2.826-2.847-6.412-4.937-10.427-5.941l-0.154-0.033c-137.039-33.188-237.23-154.794-237.23-299.801 0-0.501 0.001-1.002 0.004-1.502v0.077c0.070-12.104 0.874-23.948 2.37-35.574l-0.151 1.441c0.104-0.817 0.164-1.763 0.164-2.722 0-6.268-2.541-11.943-6.649-16.051v0l-40.789-40.107c-4.134-4.113-9.835-6.656-16.129-6.656-0.030 0-0.059 0-0.089 0h0.005zM347.819 176.128c-1.304-5.253-5.153-9.384-10.13-11.061l-0.11-0.032-146.432-47.787c-0.744-0.129-1.601-0.203-2.475-0.203s-1.731 0.074-2.564 0.216l0.090-0.013c-8.559 0.025-15.487 6.969-15.487 15.531 0 1.771 0.296 3.473 0.842 5.059l-0.033-0.109 47.787 146.432c2.091 6.273 7.909 10.716 14.766 10.716 4.3 0 8.192-1.748 11.005-4.572l98.646-98.646c2.797-2.782 4.528-6.634 4.528-10.89 0-1.284-0.157-2.53-0.454-3.722l0.022 0.106zM350.891 394.411c-0.046 0-0.1-0.001-0.155-0.001-6.272 0-11.95 2.544-16.058 6.656v0l-53.931 53.931c-4.113 4.134-6.655 9.834-6.655 16.128s2.542 11.994 6.656 16.129l353.62 353.279c4.134 4.113 9.834 6.655 16.128 6.655s11.994-2.542 16.129-6.656l53.93-53.93c4.113-4.134 6.655-9.834 6.655-16.128s-2.542-11.994-6.656-16.129l0.001 0.001-353.451-354.304c-4.134-4.113-9.835-6.656-16.129-6.656-0.030 0-0.059 0-0.089 0h0.005zM510.123 46.592c-33.752 0.022-66.521 4.19-97.837 12.022l2.776-0.588c-10.167 2.469-17.598 11.493-17.598 22.253 0 6.388 2.619 12.165 6.842 16.314l0.003 0.003 39.424 39.595c4.152 4.070 9.845 6.582 16.124 6.582 1.236 0 2.45-0.097 3.633-0.285l-0.131 0.017c13.975-2.343 30.106-3.706 46.546-3.755h0.046c0.021 0 0.047 0 0.073 0 151.844 0 278.070 109.679 303.78 254.135l0.275 1.865c0.779 4.768 2.98 8.922 6.146 12.119l88.403 88.403 1.365-19.115c0-9.045 1.365-18.091 1.365-27.136 0-0.152 0-0.332 0-0.513 0-221.734-179.557-401.531-401.2-401.919h-0.037z" />
199
+ <glyph unicode="&#xe908;" glyph-name="fi-icon-forminator1" horiz-adv-x="1157" d="M780.459 878.763l-68.267 68.267c-5.283 5.29-12.585 8.562-20.651 8.562s-15.368-3.272-20.65-8.562v0l-451.243-450.219c-5.28-5.255-8.548-12.529-8.548-20.565s3.268-15.31 8.547-20.564l68.268-68.268c5.274-5.239 12.542-8.477 20.565-8.477s15.291 3.238 20.567 8.479l-0.002-0.002 451.413 450.048c5.239 5.274 8.477 12.542 8.477 20.565s-3.238 15.291-8.479 20.567l0.002-0.002zM1148.757 804.523l-68.267 68.267c-5.274 5.239-12.542 8.477-20.565 8.477s-15.291-3.238-20.567-8.479l-597.331-597.331c-5.29-5.283-8.562-12.585-8.562-20.651s3.272-15.368 8.562-20.65v0l68.267-68.267c5.274-5.239 12.542-8.477 20.565-8.477s15.291 3.238 20.567 8.479l597.331 597.331c5.239 5.274 8.477 12.542 8.477 20.565s-3.238 15.291-8.479 20.567l0.002-0.002zM174.080 245.76c-3.561 3.609-8.506 5.844-13.973 5.844-1.643 0-3.239-0.202-4.764-0.582l0.135 0.029c-6.795-1.619-12.148-6.576-14.295-13.002l-0.041-0.14-60.928-186.88c-0.62-1.835-0.978-3.948-0.978-6.144 0-10.917 8.837-19.771 19.748-19.797h0.003c2.205 0.028 4.314 0.401 6.288 1.066l-0.144-0.042 186.709 60.928c8.039 2.641 13.741 10.079 13.741 18.848 0 5.513-2.253 10.499-5.889 14.088l-0.002 0.002zM119.467 404.992c-1.221 11.263-1.918 24.326-1.918 37.553 0 1.918 0.015 3.833 0.044 5.744l-0.003-0.289c-0.001 0.376-0.002 0.821-0.002 1.267 0 184.823 127.735 339.811 299.741 381.501l2.683 0.549c5.364 1.279 9.99 3.91 13.658 7.513l119.463 119.463-22.357 0.853h-7.168c-3.755 0-7.68 0-11.605 0 0 0 0 0-0.001 0-282.47 0-511.513-228.744-511.999-511.1v-0.047c0.085-36.919 4.122-72.848 11.708-107.447l-0.615 3.341c2.19-10.527 9.918-18.823 19.936-21.794l0.203-0.052c2.696-0.908 5.801-1.432 9.028-1.432 7.74 0 14.777 3.013 20 7.931l-0.015-0.014 51.2 51.2c5.206 5.243 8.424 12.466 8.424 20.441 0 1.702-0.146 3.369-0.428 4.99l0.025-0.173zM1020.587 507.051l-112.64-112.64c-4.106-4.022-6.976-9.291-7.997-15.193l-0.024-0.167c-33.583-186.114-194.329-325.461-387.621-325.461-0.107 0-0.213 0-0.32 0h0.016c-20.957 0.064-41.459 1.8-61.442 5.079l2.22-0.301c-1.324 0.212-2.85 0.332-4.405 0.332-8.069 0-15.379-3.256-20.685-8.526l-51.198-51.198c-5.25-5.302-8.494-12.598-8.494-20.653 0-13.714 9.404-25.231 22.116-28.455l0.203-0.044c36.541-9.321 78.489-14.671 121.686-14.671 282.77 0 512 229.23 512 512 0 0.298 0 0.596-0.001 0.893v-0.047c0 11.605 0 23.211-1.707 34.133z" />
200
+ <glyph unicode="&#xe909;" glyph-name="fi-open-new-window" d="M887.467 960h-273.067v-136.533h176.469l-534.869-534.357c-0.603-0.615-0.976-1.459-0.976-2.389s0.372-1.774 0.976-2.39l92.33-92.33c0.615-0.603 1.459-0.976 2.389-0.976s1.774 0.372 2.39 0.976l534.356 534.868v-176.469h136.533v409.6zM887.467 106.667c0-18.851-15.282-34.133-34.133-34.133v0h-682.667c-18.851 0-34.133 15.282-34.133 34.133v0 682.667c0 18.851 15.282 34.133 34.133 34.133v0h221.867v136.533h-256c-75.405 0-136.533-61.128-136.533-136.533v0-750.933c0-75.405 61.128-136.533 136.533-136.533v0h750.933c75.405 0 136.533 61.128 136.533 136.533v0 256h-136.533z" />
201
+ <glyph unicode="&#xe90a;" glyph-name="fi-plug-disconnected" d="M609.963 390.827c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l0.001 0.001-130.048-130.56-125.099 125.099 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l-30.548 30.548c-3.917 3.892-9.315 6.297-15.275 6.297s-11.358-2.405-15.276-6.298l-130.047-130.047-32.597 32.597c-3.101 3.17-7.422 5.135-12.203 5.135s-9.101-1.965-12.2-5.132l-83.63-83.63c-37.202-37.444-60.196-89.045-60.196-146.015 0-45.244 14.502-87.1 39.111-121.175l-0.419 0.609-82.091-82.091c-11.749-11.749-19.016-27.981-19.016-45.909 0-35.857 29.068-64.926 64.926-64.926 17.929 0 34.16 7.267 45.909 19.016l82.091 82.091c33.426-24.103 75.209-38.549 120.366-38.549 57.155 0 108.904 23.143 146.389 60.568l-0.003-0.003 83.456 83.627c3.17 3.101 5.135 7.422 5.135 12.203s-1.965 9.101-5.132 12.2l-32.6 32.6 130.048 130.048c3.892 3.917 6.297 9.315 6.297 15.275s-2.405 11.358-6.298 15.276l0.001-0.001zM1005.056 941.056c-11.741 11.767-27.975 19.046-45.909 19.046s-34.168-7.28-45.908-19.045l-84.481-84.481c-33.426 24.103-75.209 38.549-120.366 38.549-57.155 0-108.904-23.143-146.389-60.568l0.003 0.003-84.139-83.627c-3.17-3.101-5.135-7.422-5.135-12.203s1.965-9.101 5.132-12.2l312.664-312.664c3.101-3.17 7.422-5.135 12.203-5.135s9.101 1.965 12.2 5.132l83.63 83.63c37.423 37.482 60.565 89.231 60.565 146.386 0 45.157-14.446 86.94-38.97 120.98l0.42-0.613 84.48 84.48c11.767 11.741 19.046 27.975 19.046 45.909s-7.28 34.168-19.045 45.908l-0.001 0.001z" />
202
+ <glyph unicode="&#xe90b;" glyph-name="fi-plug-connected" d="M354.645 573.269c-2.821 2.878-6.749 4.661-11.093 4.661s-8.272-1.784-11.091-4.659l-0.002-0.003-119.467-119.467c-33.906-33.962-54.873-80.85-54.873-132.635 0-40.902 13.080-78.749 35.286-109.586l-0.381 0.556-175.957-175.787c-10.657-10.657-17.249-25.38-17.249-41.643 0-32.525 26.367-58.892 58.892-58.892 16.262 0 30.985 6.592 41.643 17.249v0l175.787 176.128c30.28-21.825 68.127-34.905 109.029-34.905 51.785 0 98.673 20.967 132.637 54.876l119.465 119.465c2.836 2.84 4.59 6.762 4.59 11.093s-1.754 8.253-4.59 11.094v0zM1006.933 942.933c-10.629 10.65-25.324 17.239-41.557 17.239s-30.929-6.589-41.556-17.238l-176.129-175.958c-30.26 21.781-68.071 34.834-108.93 34.834-51.75 0-98.609-20.939-132.568-54.806l-119.463-119.463c-2.836-2.84-4.59-6.762-4.59-11.093s1.754-8.253 4.59-11.094v0l282.624-282.624c2.821-2.878 6.749-4.661 11.093-4.661s8.272 1.784 11.091 4.659l0.002 0.003 119.467 119.467c33.906 33.962 54.873 80.85 54.873 132.635 0 40.902-13.080 78.749-35.286 109.586l0.381-0.556 175.957 175.787c10.701 10.637 17.325 25.366 17.325 41.643s-6.623 31.006-17.322 41.64l-0.003 0.003z" />
203
+ <glyph unicode="&#xe90c;" glyph-name="fi-buddypress" d="M468.992 961.195c-241.049-21.549-433.031-206.468-465.279-442.254l-0.299-2.674c-2.19-20.167-3.439-43.559-3.439-67.243s1.249-47.075 3.685-70.113l-0.246 2.87c34.369-252.374 248.499-444.79 507.57-444.79 145.040 0 275.995 60.309 369.154 157.219l0.162 0.169c74.298 76.085 124.975 175.535 139.996 286.311l0.292 2.628c2.184 20.015 3.43 43.227 3.43 66.731s-1.246 46.717-3.675 69.576l0.245-2.845c-31.561 228.221-208.931 407.041-433.748 440.488l-2.817 0.344c-25.771 2.572-55.7 4.039-85.973 4.039-10.158 0-20.276-0.165-30.354-0.493l1.468 0.038zM574.123 872.107c207.247-31.525 364.213-208.467 364.213-422.071 0-105.118-38.014-201.358-101.045-275.722l0.512 0.62c-69.239-80.962-167.093-135.696-277.728-148.463l-1.995-0.187c-13.792-1.086-29.864-1.704-46.080-1.704s-32.288 0.619-48.193 1.834l2.113-0.13c-28.733 3.469-54.52 8.918-79.435 16.385l3.318-0.854c-177.474 54.354-304.303 216.738-304.303 408.744 0 25.141 2.174 49.774 6.346 73.721l-0.368-2.55c7.401 43.678 20.661 82.826 39.128 118.863l-1.070-2.298c50.933 102.145 138.79 179.508 245.665 215.529l2.997 0.876c30.589 10.51 66.11 17.964 102.907 20.893l1.541 0.099c6.077 0.215 13.218 0.337 20.388 0.337 24.99 0 49.633-1.487 73.844-4.376l-2.926 0.284zM617.813 751.275c46.512-9.953 83.486-43.082 98.701-86.446l0.286-0.935c3.609-9.716 5.697-20.94 5.697-32.652 0-1.241-0.023-2.477-0.070-3.707l0.005 0.177c0.328-3.077 0.515-6.647 0.515-10.261 0-9.090-1.184-17.903-3.407-26.293l0.161 0.714c-10.099-40.75-38.168-73.417-75.101-89.611l-0.846-0.331c-6.339-3.3-13.718-5.648-21.524-6.623l-0.321-0.033s2.389 5.632 5.461 11.776c10.777 20.814 17.096 45.436 17.096 71.534 0 69.751-45.139 128.959-107.799 150.008l-1.116 0.325-11.435 3.755c-3.413 1.195 12.459 9.045 28.501 14.336 12.012 3.985 25.84 6.284 40.205 6.284 8.779 0 17.357-0.859 25.655-2.496l-0.836 0.138zM518.315 704.512c49.603-13.281 87.206-53.394 96.639-103.454l0.129-0.823c0.928-6.459 1.458-13.917 1.458-21.499 0-13.637-1.714-26.874-4.939-39.507l0.239 1.102c-11.086-37.018-37.261-66.486-71.203-81.761l-0.818-0.329c-14.843-7.252-32.297-11.493-50.742-11.493-1.302 0-2.598 0.021-3.889 0.063l0.188-0.005c-0.325-0.003-0.709-0.005-1.093-0.005-57.927 0-106.939 38.174-123.249 90.739l-0.244 0.914c-3.436 9.037-5.425 19.487-5.425 30.401 0 2.575 0.111 5.125 0.328 7.644l-0.023-0.328c-0.178 2.289-0.279 4.957-0.279 7.648 0 10.036 1.411 19.742 4.045 28.931l-0.181-0.74c14.327 49.128 54.827 86.038 105.007 94.943l0.807 0.119c5.364 0.556 11.59 0.873 17.891 0.873 12.51 0 24.727-1.25 36.535-3.631l-1.177 0.198zM721.92 482.133c48.981-15.36 78.848-52.907 91.989-115.541 3.382-19.092 5.316-41.073 5.316-63.505 0-1.554-0.009-3.107-0.028-4.657l0.002 0.236c-1.024-2.219-4.949-2.56-29.696-2.56-1.907-0.060-4.149-0.093-6.399-0.093-7.784 0-15.474 0.406-23.048 1.198l0.946-0.080c-2.199 19.373-5.618 36.748-10.296 53.599l0.568-2.399c-16.043 54.272-51.2 95.232-92.331 107.52-3.925 1.195-6.997 2.731-6.997 3.413 3.645 5.498 7.521 10.296 11.799 14.701l-0.023-0.024 11.776 13.312 17.067-1.024c10.502-0.154 20.59-1.64 30.194-4.294l-0.839 0.198zM444.757 398.507l41.984-41.472 62.635 61.269 32.597 32.085 12.288-1.536c34.458-4.418 64.828-19.264 88.507-41.224l-0.102 0.093c27.282-26.415 45.617-61.926 50.105-101.633l0.071-0.767c1.569-13.736 2.463-29.655 2.463-45.782 0-9.893-0.337-19.707-0.999-29.432l0.072 1.315-0.512-5.291h-247.296c-174.763 0-247.637 0-247.637 1.877-1.571 11.944-2.467 25.756-2.467 39.778 0 9.367 0.4 18.641 1.184 27.805l-0.082-1.193c9.557 91.307 59.221 145.749 140.971 154.453 15.701 1.536 8.875 6.656 66.219-50.005z" />
204
+ <glyph unicode="&#xe90d;" glyph-name="fi-blog" d="M0 960v-136.533h68.267s0 85.333 85.333 85.333v-324.267s0-17.067-34.133-17.067h-17.067v-51.2h221.867v51.2h-17.067c-34.133 0-34.133 17.067-34.133 17.067v324.267c85.333 0 85.333-85.333 85.333-85.333h68.267v136.533zM989.867 806.4h-443.733c-18.851 0-34.133 15.282-34.133 34.133v0 85.333c0 18.851 15.282 34.133 34.133 34.133v0h443.733c18.851 0 34.133-15.282 34.133-34.133v0-85.333c0-18.851-15.282-34.133-34.133-34.133v0zM989.867-64h-955.733c-18.851 0-34.133 15.282-34.133 34.133v0 85.333c0 18.851 15.282 34.133 34.133 34.133v0h955.733c18.851 0 34.133-15.282 34.133-34.133v0-85.333c0-18.851-15.282-34.133-34.133-34.133v0zM989.867 226.133h-955.733c-18.851 0-34.133 15.282-34.133 34.133v0 85.333c0 18.851 15.282 34.133 34.133 34.133v0h955.733c18.851 0 34.133-15.282 34.133-34.133v0-85.333c0-18.851-15.282-34.133-34.133-34.133v0zM989.867 516.267h-443.733c-18.851 0-34.133 15.282-34.133 34.133v0 85.333c0 18.851 15.282 34.133 34.133 34.133v0h443.733c18.851 0 34.133-15.282 34.133-34.133v0-85.333c0-18.851-15.282-34.133-34.133-34.133v0z" />
205
+ <glyph unicode="&#xe90e;" glyph-name="fi-jobs-pros-search" d="M1024 39.595l-226.816 226.816c50.818 70.758 81.267 159.126 81.267 254.605 0 242.711-196.756 439.467-439.467 439.467s-439.467-196.756-439.467-439.467c0-242.711 196.756-439.467 439.467-439.467 95.479 0 183.847 30.449 255.922 82.165l-1.317-0.899 226.987-226.816zM146.432 520.704c0 0.051 0 0.111 0 0.171 0 161.744 131.12 292.864 292.864 292.864s292.864-131.12 292.864-292.864c0-161.744-131.12-292.864-292.864-292.864v0c-161.606 0.194-292.573 131.101-292.864 292.665v0.028zM439.296 770.389l56.832-175.275h184.32l-148.992-108.373 56.832-175.275-148.992 108.373-149.163-108.373 57.003 175.275-149.163 108.373h184.32l57.003 175.275z" />
206
+ <glyph unicode="&#xe90f;" glyph-name="fi-security-thumb-print" horiz-adv-x="780" d="M415.744 604.16c-0.077 14.363-11.738 25.977-26.112 25.977-0.48 0-0.958-0.013-1.432-0.039l0.066 0.003c-13.875-1.418-24.608-13.042-24.608-27.173 0-0.467 0.012-0.932 0.035-1.393l-0.003 0.065c0-164.864-108.715-309.589-269.824-390.315-8.414-4.358-14.065-12.998-14.065-22.959 0-3.216 0.589-6.294 1.665-9.133l-0.059 0.177c3.808-9.777 13.147-16.579 24.076-16.579 4.228 0 8.218 1.018 11.739 2.823l-0.145-0.068c179.029 89.941 298.667 252.928 298.667 438.613zM466.603 617.643c-1.831 10.356-5.469 19.595-10.6 27.803l0.19-0.326c3.763-7.655 7.305-16.771 10.090-26.211l0.32-1.267zM516.949 631.979c-2.969 13.47-7.62 25.386-13.817 36.31l0.334-0.64c4.903-9.958 9.492-21.794 13.079-34.057l0.404-1.612zM198.827 560.299c2.901 159.915 93.867 243.541 182.272 243.541 119.467 0 199.68-104.619 199.68-260.437 0-74.069 47.957-130.56 113.323-173.739 3.992-2.697 8.913-4.305 14.209-4.305 13.612 0 24.742 10.623 25.553 24.031l0.003 0.071c0.102 0.856 0.16 1.846 0.16 2.851 0 9.043-4.721 16.984-11.832 21.493l-0.104 0.062c-59.392 38.741-89.429 82.261-89.429 130.048 0.171 183.467-103.595 311.979-251.563 311.979-113.664 0-230.741-100.693-234.325-294.571-1.365-70.485-48.811-118.101-110.933-150.357q1.707-27.989 4.949-55.637c85.504 39.253 156.16 102.571 158.037 204.971zM319.488-28.16c-5.425-2.551-9.113-7.971-9.113-14.252 0-7.67 5.5-14.055 12.77-15.428l0.098-0.015c18.437-3.908 39.621-6.146 61.328-6.146 0.34 0 0.679 0.001 1.018 0.002h-0.053c0.205 0 0.447-0.001 0.689-0.001 16.803 0 33.301 1.303 49.399 3.815l-1.789-0.23c7.646 1.142 13.445 7.663 13.445 15.538 0 5.696-3.033 10.683-7.572 13.436l-0.070 0.039c-16.603 10.871-36.612 17.916-58.147 19.434l-0.391 0.022c-22.645-0.953-43.71-6.839-62.431-16.603l0.82 0.389zM516.949 631.979c-3.99 13.875-8.579 25.711-14.077 37.024l0.594-1.354c-25.6 53.419-68.437 84.139-122.368 84.139-83.115 0-128.341-96.768-130.219-192.341-0.198-12.223-1.183-24.032-2.911-35.599l0.18 1.466c-10.581-72.363-54.443-155.819-181.077-215.040-8.772-4.187-14.725-12.986-14.725-23.176 0-1.886 0.204-3.725 0.591-5.495l-0.031 0.169c2.837-11.382 12.97-19.682 25.041-19.682 4.117 0 8.009 0.965 11.461 2.682l-0.15-0.067c149.675 69.12 196.949 171.861 209.579 249.344 7.814 26.154 12.467 56.244 12.798 87.371l0.002 0.181c-0.002 0.231-0.004 0.505-0.004 0.779 0 42.827 33.635 77.798 75.93 79.939l0.191 0.008c0.508 0.012 1.108 0.019 1.708 0.019 43.185 0 78.225-34.868 78.505-77.987v-0.027c0-205.995-131.584-386.56-327.339-485.035-8.572-4.353-14.343-13.105-14.343-23.204 0-5.2 1.53-10.043 4.164-14.102l-0.061 0.101c4.702-7.358 12.827-12.166 22.076-12.166 4.406 0 8.558 1.091 12.199 3.019l-0.142-0.068c51.585 25.953 96.037 55.134 136.735 88.704l-1.225-0.981c12.8 10.581 25.088 21.675 36.864 32.939 17.524 16.635 33.864 33.948 49.217 52.12l0.788 0.957c39.718 46.847 72.543 101.171 95.914 160.264l1.366 3.917c4.267 10.923 8.021 22.016 11.605 33.109 15.56 48.061 24.545 103.36 24.576 160.753v0.015c-0.188 9.777-1.421 19.169-3.594 28.196l0.181-0.89zM585.728 323.072c-14.432 17.043-35.845 27.79-59.767 27.79-43.17 0-78.165-34.996-78.165-78.165 0-22.010 9.097-41.896 23.737-56.102l0.020-0.019c43.885-46.683 96.344-84.723 154.946-111.705l3.091-1.276c3.382-1.714 7.375-2.719 11.601-2.719 10.188 0 19.014 5.835 23.317 14.345l0.068 0.149c1.489 3.183 2.358 6.912 2.358 10.843 0 10.113-5.75 18.884-14.158 23.221l-0.146 0.069c-55.524 25.208-102.804 59.050-142.349 100.357l-0.158 0.166c-4.739 4.804-7.665 11.407-7.665 18.693 0 5.791 1.849 11.151 4.989 15.52l-0.054-0.079c4.807 6.492 12.44 10.655 21.045 10.655 7.513 0 14.284-3.173 19.048-8.251l0.013-0.014c35.292-35.938 76.812-65.613 122.837-87.302l2.603-1.103c3.354-1.696 7.311-2.689 11.5-2.689 12.131 0 22.317 8.327 25.155 19.576l0.038 0.179c0.571 2.038 0.9 4.378 0.9 6.795 0 10.077-5.708 18.82-14.067 23.174l-0.145 0.069c-42.862 20.078-79.464 46.2-110.544 77.775l-0.048 0.049zM381.099 40.107c42.155 0 88.235-24.747 131.072-58.368 4.34-3.439 9.895-5.517 15.935-5.517 5.104 0 9.861 1.484 13.864 4.043l-0.103-0.062c7.269 4.717 12.011 12.793 12.011 21.977 0 8.3-3.872 15.695-9.908 20.478l-0.054 0.041c-58.368 46.080-113.152 69.291-163.328 69.291-58.197 0-115.712-26.624-165.547-60.587-6.584-4.695-10.826-12.305-10.826-20.907s4.242-16.212 10.748-20.854l0.078-0.053c4.133-2.944 9.284-4.707 14.848-4.707s10.715 1.763 14.927 4.761l-0.079-0.054c42.667 28.331 90.112 50.517 136.363 50.517zM76.629 509.099c10.953 14.723 17.68 33.162 18.089 53.152l0.002 0.096c1.877 98.645 31.061 184.32 85.333 247.808 47.949 58.992 119.9 96.872 200.751 98.64l0.294 0.005c175.957 0 303.787-153.6 303.787-364.544-0.065-0.97-0.103-2.102-0.103-3.243s0.037-2.273 0.111-3.395l-0.008 0.153c2.863-10.836 12.578-18.695 24.128-18.695 13.133 0 23.894 10.161 24.848 23.050l0.005 0.082c0 6.997 0 13.483-1.195 18.773-4.623 72.966-20.376 140.955-45.602 204.137l1.57-4.457c-58.539 121.685-169.643 199.339-305.323 199.339h-20.309c-90.348-7.036-169.309-50.635-222.961-115.842l-0.441-0.553c-61.44-72.704-94.891-169.643-96.939-280.405 0-7.168-7.339-32.939-7.509-39.083-0.021-0.37-0.033-0.803-0.033-1.239 0-12.725 10.315-23.040 23.040-23.040 7.531 0 14.219 3.614 18.423 9.202l0.042 0.059zM702.123 274.432c-4.306 0.025-8.357 1.095-11.918 2.969l0.142-0.068c-67.619 36.118-123.472 86.075-165.393 146.437l-1.007 1.531c-1.874 3.511-2.975 7.679-2.975 12.104 0 14.421 11.691 26.112 26.112 26.112 8.417 0 15.904-3.982 20.679-10.166l0.045-0.061c38.014-53.976 86.969-97.693 143.885-128.61l2.206-1.096c8.47-4.433 14.151-13.159 14.151-23.211 0-14.356-11.585-26.006-25.917-26.111h-0.010zM597.333 31.403c-6.623 0.175-12.599 2.806-17.081 7.010l0.014-0.013c-120.491 104.789-217.429 90.112-221.867 89.429-0.706-0.068-1.526-0.106-2.354-0.106-14.421 0-26.112 11.691-26.112 26.112 0 11.98 8.068 22.076 19.067 25.151l0.184 0.044c4.949 0.853 124.075 20.821 264.704-101.376 5.462-4.81 8.89-11.818 8.89-19.627 0-14.366-11.602-26.023-25.948-26.111h-0.008z" />
207
+ <glyph unicode="&#xe910;" glyph-name="fi-IP" d="M664.576 643.413h-110.933v-184.32h108.032c2.047-0.14 4.436-0.22 6.844-0.22 25.202 0 48.357 8.768 66.579 23.421l-0.206-0.161c15.674 14.977 25.419 36.045 25.419 59.39 0 1.802-0.058 3.591-0.172 5.364l0.012-0.242c0.059 1.269 0.093 2.757 0.093 4.252 0 25.31-9.7 48.355-25.585 65.619l0.062-0.069c-17.146 17.018-40.764 27.535-66.839 27.535-1.162 0-2.32-0.021-3.472-0.062l0.167 0.005zM1020.416 515.072c-31.614 228.102-208.881 406.818-433.575 440.316l-2.82 0.345c-27.424 2.91-59.243 4.57-91.45 4.57-8.291 0-16.557-0.11-24.795-0.329l1.216 0.026c-241.077-21.486-433.094-206.439-465.281-442.26l-0.298-2.668c-2.194-20.167-3.445-43.559-3.445-67.243s1.251-47.074 3.692-70.111l-0.246 2.868c35.44-252.308 249.87-444.331 509.149-444.331 51.501 0 101.233 7.576 148.142 21.675l-3.638-0.939c192.476 58.672 335.236 221.894 363.209 421.903l0.311 2.716c2.192 20.015 3.442 43.227 3.442 66.731s-1.25 46.716-3.688 69.573l0.246-2.842zM341.333 340.821v-181.248c-0.029-3.466-2.845-6.264-6.314-6.264-1.816 0-3.453 0.767-4.605 1.994l-45.571 45.571c-0.978 1.189-2.449 1.942-4.096 1.942s-3.118-0.753-4.089-1.933l-0.007-0.009-45.909-45.909c-1.102-1.056-2.6-1.707-4.25-1.707-0.006 0-0.012 0-0.018 0h0.001c-3.487 0-6.315 2.827-6.315 6.315v0 581.803h121.173zM822.613 410.795q-59.051-49.835-163.499-49.835h-105.472v-206.848h-121.003v587.264h229.035c1.662 0.037 3.62 0.059 5.583 0.059 40.198 0 78.304-8.954 112.433-24.977l-1.621 0.684c32.283-15.11 58.544-38.519 76.705-67.519l0.437-0.748c17.066-28.105 27.167-62.079 27.167-98.412 0-1.222-0.011-2.442-0.034-3.658l0.003 0.183c0.127-2.447 0.199-5.313 0.199-8.195 0-51.284-22.895-97.221-59.020-128.147l-0.229-0.192z" />
208
+ <glyph unicode="&#xe911;" glyph-name="fi-timed-countdown" d="M822.101 832c-8.906 5.673-19.761 9.042-31.403 9.042-32.613 0-59.051-26.438-59.051-59.051 0-0.059 0-0.118 0-0.177v0.009c0.14-20.151 10.622-37.824 26.397-47.991l0.227-0.137c89.977-58.93 148.588-159.269 148.588-273.297 0-179.842-145.79-325.632-325.632-325.632-167.9 0-306.121 127.072-323.736 290.29l-0.126 1.439 41.301-41.301c9.373-10.039 22.685-16.296 37.458-16.296 28.277 0 51.2 22.923 51.2 51.2 0 14.774-6.257 28.086-16.266 37.431l-0.030 0.027-141.824 141.824c-9.263 9.252-22.054 14.974-36.181 14.974s-26.918-5.722-36.182-14.974l-141.823-141.823c-8.514-9.118-13.742-21.401-13.742-34.904 0-28.277 22.923-51.2 51.2-51.2 13.503 0 25.786 5.227 34.934 13.769l-0.030-0.027 51.2 51.2c12.809-234.197 205.837-419.252 442.087-419.252 244.502 0 442.709 198.208 442.709 442.709 0 155.076-79.735 291.529-200.444 370.599l-1.686 1.037zM445.44 263.168c15.615 0.138 29.682 6.648 39.751 17.051l160.612 160.612v381.269c0 31.010-25.139 56.149-56.149 56.149s-56.149-25.139-56.149-56.149v-335.36l-127.659-127.659c-10.198-10.167-16.508-24.229-16.508-39.765 0-31.010 25.139-56.149 56.149-56.149 0.044 0 0.087 0 0.131 0h-0.007z" />
209
+ <glyph unicode="&#xe912;" glyph-name="fi-2factor-authentication-security" d="M221.867 460.459l-126.976 127.829 49.152 49.152 78.507-78.507 204.8 204.8 49.323-49.323zM292.352 960l-292.352-133.632v-193.707c0-38.741 13.483-259.413 292.352-372.395 278.869 112.299 292.352 333.141 292.352 371.883v194.219zM731.648 635.733l-80.384-36.693c-16.553-141.030-94.408-261.063-205.783-334.281l-1.747-1.079c12.8-80.384 66.731-238.933 288.597-327.68 278.187 112.299 291.669 333.141 291.669 371.883v193.536zM661.675 135.68l-127.659 127.659 49.323 49.323 78.507-78.507 204.8 204.8 49.323-49.323z" />
210
+ <glyph unicode="&#xe93b;" glyph-name="fi-download" d="M960.171 428.032h-227.328c-0.006 0-0.013 0-0.020 0-28.238 0-52.193-18.336-60.608-43.752-22.516-68.773-85.704-117.249-160.215-117.249s-137.699 48.476-159.747 115.61c-8.882 27.055-32.837 45.391-61.075 45.391-0.007 0-0.014 0-0.022 0h-227.327c0 0 0 0 0 0-35.252 0-63.829-28.577-63.829-63.829 0-0.060 0-0.12 0-0.18v-364.193c0-35.252 28.577-63.829 63.829-63.829h896.341c35.252 0 63.829 28.577 63.829 63.829v364.203c0 35.252-28.577 63.829-63.829 63.829zM498.517 393.899c3.133-4.361 8.19-7.168 13.903-7.168 0.032 0 0.064 0 0.097 0h-0.005c0.027 0 0.059 0 0.092 0 5.713 0 10.77 2.807 13.868 7.117l176.675 248.542c2.213 2.85 3.548 6.478 3.548 10.417 0 9.426-7.641 17.067-17.067 17.067-0.167 0-0.334-0.002-0.501-0.007l-83.090 0.001v222.891c0 9.426-7.641 17.067-17.067 17.067h-153.6c-9.426 0-17.067-7.641-17.067-17.067v-222.891h-83.456c-0.064 0.001-0.14 0.001-0.216 0.001-9.426 0-17.067-7.641-17.067-17.067 0-3.787 1.234-7.286 3.321-10.118z" />
211
+ <glyph unicode="&#xe93f;" glyph-name="fi-first-aid" d="M249.003 658.432h78.336v65.707h366.763v-67.072h78.336v115.2c-0.192 17.325-14.234 31.308-31.564 31.403h-460.809c-17.193-0.285-31.043-14.196-31.232-31.385s0-1.042 0-1.725zM190.464-64h642.901v652.629h-642.901zM317.781 308.053c0.182 5.298 4.43 9.546 9.711 9.728h130.406v130.219c0 5.373 4.355 9.728 9.728 9.728h91.477c0 0 0.001 0 0.001 0 5.373 0 9.728-4.355 9.728-9.728 0-0.060-0.001-0.12-0.002-0.18v-130.38h130.901c5.373 0 9.728-4.355 9.728-9.728v-91.477c0-5.373-4.355-9.728-9.728-9.728h-130.731v-130.56c0-5.373-4.355-9.728-9.728-9.728h-91.477c-5.373 0-9.728 4.355-9.728 9.728v130.901h-130.56c-5.373 0-9.728 4.355-9.728 9.728zM51.2 588.629c-28.277 0-51.2-22.923-51.2-51.2s0-1.365 0-2.048v-546.987s0-1.195 0-1.195c0-28.277 22.923-51.2 51.2-51.2h75.776v652.629zM1024-12.8v550.741c0 28.277-22.923 51.2-51.2 51.2h-75.947v-653.141h75.947c28.277 0 51.2 22.923 51.2 51.2v0z" />
212
+ <glyph unicode="&#xe96a;" glyph-name="fi-sheild-badge" horiz-adv-x="915" d="M808.789 663.211c0 88.917 85.333 153.6 85.333 153.6l-88.064 102.4c-37.364-26.176-83.769-41.829-133.83-41.829-0.95 0-1.899 0.006-2.847 0.017-165.573-0.855-211.824 82.601-211.824 82.601s-46.421-83.456-211.627-83.456c-0.803-0.010-1.753-0.016-2.703-0.016-50.061 0-96.466 15.653-134.588 42.331l-87.306-102.902s85.333-64.512 85.333-153.6-106.667-134.485-106.667-295.083 72.704-275.115 288.597-294.741c83.456-9.045 168.789-136.533 168.789-136.533s85.333 128 168.789 136.533c216.064 19.115 288.768 133.461 288.768 294.059s-106.155 207.019-106.155 295.936zM561.664 454.144l64.341-197.973-168.448 122.368-168.448-122.368 64.341 197.973-168.448 122.368h207.531l64.341 197.973 64.341-197.973h208.213z" />
213
+ <glyph unicode="&#xe96b;" glyph-name="fi-coffee-cup" d="M56.832 49.835h967.168s0-113.835-113.835-113.835h-739.499c-113.835 0-113.835 113.835-113.835 113.835zM853.333 732.501h-568.832c-56.832 0-56.832-60.928-56.832-60.928v-10.411c-16.939 6.366-36.514 10.109-56.946 10.24-94.314 0-170.724-76.41-170.724-170.666s76.41-170.667 170.667-170.667c20.458 0.234 39.959 4.031 58.009 10.798l-1.177-124.632c0-56.832 56.832-52.736 56.832-52.736h57.003v-56.832h455.168v56.832h56.832s56.832-4.096 56.832 52.736v455.168s0 60.928-56.832 60.928zM170.667 443.904c-31.387 0-56.832 25.445-56.832 56.832s25.445 56.832 56.832 56.832c31.327 0 56.735-25.347 56.832-56.652v-0.009c0 0 0 0 0 0 0-31.422-25.424-56.905-56.823-57.002z" />
214
+ <glyph unicode="&#xe96c;" glyph-name="fi-skull" d="M1001.131 155.136c-13.961 14.125-33.335 22.873-54.753 22.873-20.032 0-38.278-7.653-51.971-20.194l-118.044 118.153c32.021 48.523 51.082 108.051 51.082 172.032s-19.061 123.509-51.815 173.216l118.152 116.917c13.202-10.772 30.238-17.297 48.798-17.297 42.792 0 77.483 34.69 77.483 77.483 0 19.455-7.17 37.235-19.012 50.842-13.648 13.555-32.571 21.992-53.464 21.992-4.538 0-8.983-0.398-13.303-1.161 1.346 4.432 1.855 9.45 1.855 14.586 0 20.982-8.489 39.981-22.221 53.749-14.144 14.644-33.956 23.737-55.892 23.737-42.896 0-77.67-34.774-77.67-77.67 0-20.96 8.302-39.981 21.798-53.953l-118.123-118.079c-48.523 32.021-108.051 51.082-172.032 51.082s-123.509-19.061-173.216-51.815l-116.917 118.152c10.772 13.202 17.297 30.238 17.297 48.798 0 42.792-34.69 77.483-77.483 77.483-19.455 0-37.235-7.17-50.842-19.012-13.643-13.663-22.138-32.644-22.138-53.61 0-4.486 0.389-8.881 1.135-13.154-4.431 1.343-9.448 1.852-14.585 1.852-20.982 0-39.981-8.489-53.749-22.221-14.629-14.151-23.711-33.961-23.711-55.892 0-42.929 34.8-77.729 77.729-77.729 20.997 0 40.050 8.326 54.037 21.856l118.080-118.122c-32.021-48.523-51.082-108.051-51.082-172.032s19.061-123.509 51.815-173.216l-118.152-116.917c-13.202 10.772-30.238 17.297-48.798 17.297-42.792 0-77.483-34.69-77.483-77.483 0-19.455 7.17-37.235 19.012-50.842 13.648-13.555 32.571-21.992 53.464-21.992 4.538 0 8.983 0.398 13.303 1.161-1.346-4.432-1.855-9.45-1.855-14.586 0-20.982 8.489-39.981 22.221-53.749 14.144-14.644 33.956-23.737 55.892-23.737 42.896 0 77.67 34.774 77.67 77.67 0 20.96-8.302 39.981-21.798 53.953l114.539 114.495v-77.995c47.44-39.038 108.807-62.708 175.701-62.708s128.261 23.67 176.181 63.091l-0.48 77.612 114.347-113.835c-12.229-13.641-19.707-31.761-19.707-51.628 0-42.792 34.69-77.483 77.483-77.483 20.929 0 39.919 8.298 53.861 21.782 13.628 13.707 22.065 32.63 22.065 53.523 0 4.538-0.398 8.983-1.161 13.303 4.449-1.355 9.486-1.869 14.642-1.869 20.967 0 39.949 8.496 53.691 22.233 13.938 13.93 22.56 33.18 22.56 54.442s-8.622 40.512-22.56 54.442zM426.667 330.069c-33.273 0-60.245 26.973-60.245 60.245s26.973 60.245 60.245 60.245c33.273 0 60.245-26.973 60.245-60.245s-26.973-60.245-60.245-60.245zM597.333 328.533c-33.273 0-60.245 26.973-60.245 60.245s26.973 60.245 60.245 60.245c33.273 0 60.245-26.973 60.245-60.245s-26.973-60.245-60.245-60.245z" />
215
+ <glyph unicode="&#xe97d;" glyph-name="fi-ticket" d="M1018.709 615.595h-1.024l-125.269 125.952c-9.815-6.689-21.933-10.681-34.984-10.681-34.592 0-62.635 28.042-62.635 62.635 0 13.094 4.018 25.25 10.888 35.301l-126.262 125.907c-3.275 3.279-7.8 5.307-12.8 5.307s-9.525-2.028-12.8-5.306l-648.534-648.534c-3.279-3.275-5.307-7.8-5.307-12.8s2.028-9.525 5.306-12.8l126.294-126.123c9.77 6.603 21.813 10.541 34.776 10.541 34.592 0 62.635-28.042 62.635-62.635 0-12.963-3.938-25.006-10.682-34.998l124.728-124.194 1.536-1.707c3.275-3.279 7.8-5.307 12.8-5.307s9.525 2.028 12.8 5.306v0l648.533 648.533c3.279 3.275 5.307 7.8 5.307 12.8s-2.028 9.525-5.306 12.8zM858.624 572.928l-471.552-471.552c-3.275-3.279-7.8-5.307-12.8-5.307s-9.525 2.028-12.8 5.306l-196.096 196.267c-3.279 3.275-5.307 7.8-5.307 12.8s2.028 9.525 5.306 12.8l471.552 471.382c3.275 3.279 7.8 5.307 12.8 5.307s9.525-2.028 12.8-5.306l196.267-196.267c3.228-3.266 5.222-7.757 5.222-12.715s-1.994-9.449-5.223-12.716zM634.027 432.469l-69.803 34.133 8.533 73.045c0.009 0.116 0.014 0.251 0.014 0.388 0 2.922-2.369 5.291-5.291 5.291-1.391 0-2.657-0.537-3.602-1.415l-51.879-52.904-68.267 32.597c-0.639 0.295-1.386 0.467-2.174 0.467-2.922 0-5.291-2.369-5.291-5.291 0-0.788 0.172-1.535 0.481-2.207l32.584-68.234-52.565-51.541c-0.875-0.941-1.412-2.207-1.412-3.598 0-2.922 2.369-5.291 5.291-5.291 0.137 0 0.272 0.005 0.406 0.015l73.028 8.532 34.133-69.803c0.876-1.784 2.679-2.99 4.764-2.99 2.469 0 4.542 1.691 5.126 3.977l19.123 76.666 76.629 19.115c0.942 0.243 1.751 0.719 2.389 1.365 0.954 0.931 1.546 2.23 1.546 3.666 0 2.091-1.253 3.889-3.049 4.684z" />
216
+ <glyph unicode="&#xe986;" glyph-name="fi-stopwatch" horiz-adv-x="1116" d="M1094.656 829.44l-108.203 109.056c-13.429 16.024-33.451 26.14-55.836 26.14-40.153 0-72.704-32.551-72.704-72.704 0-22.385 10.117-42.407 26.027-55.744l108.316-109.319c13.136-13.032 31.227-21.086 51.2-21.086s38.064 8.054 51.205 21.091c12.987 13.149 21.012 31.235 21.012 51.195s-8.025 38.046-21.024 51.207zM130.56 938.496l-109.056-108.203c-10.494-12.516-16.868-28.795-16.868-46.564 0-40.153 32.551-72.704 72.704-72.704 17.768 0 34.048 6.374 46.677 16.96l109.114 108.281c16.024 13.429 26.14 33.451 26.14 55.836 0 40.153-32.551 72.704-72.704 72.704-22.385 0-42.407-10.117-55.744-26.027zM555.691 721.067c0.101 0 0.222 0 0.342 0 179.088 0 324.267-145.179 324.267-324.267s-145.179-324.267-324.267-324.267c-179.088 0-324.267 145.179-324.267 324.267 0 89.671 36.398 170.84 95.225 229.541 58.194 58.516 138.753 94.727 227.769 94.727 0.327 0 0.654 0 0.981-0.001zM555.691 859.648c-255.077-0.225-461.77-207.057-461.77-462.165 0-255.247 206.918-462.165 462.165-462.165s462.165 206.918 462.165 462.165c0 127.891-51.947 243.65-135.892 327.327-83.437 83.623-198.788 135.351-326.22 135.351-0.158 0-0.315 0-0.472 0zM692.053 430.933v2.901c-1.529 5.5-3.042 9.928-4.767 14.248 0.33 0.941-0.694 2.819-1.548 4.525v0c-14.626 32.964-40.422 58.761-72.483 73.028l-0.904 0.359h-1.707v136.533h-107.691v-136.533h-1.024c-17.925-7.295-33.239-17.516-46.093-30.221-25.198-25.421-40.777-60.439-40.777-99.096 0-0.137 0-0.274 0.001-0.411v0.021s0 0 0-0.853c0.040-7.079 0.597-13.995 1.635-20.751l-0.099 0.783c1.777-12.311 4.879-23.408 9.215-33.864l-34.473-33.208-13.995-13.995 74.752-74.752 48.128 48.128 2.389-1.195h1.195c15.185-6.054 32.782-9.564 51.2-9.564s36.015 3.511 52.16 9.899l1.77-0.335c51.588 21.774 87.207 71.794 87.552 130.175-0.067 12.202-1.682 23.952-4.657 35.149zM593.067 360.619c-9.604-9.596-22.867-15.531-37.516-15.531-29.314 0-53.077 23.764-53.077 53.077s23.764 53.077 53.077 53.077c14.649 0 27.912-5.935 37.516-15.531 9.655-9.587 15.632-22.869 15.632-37.546s-5.977-27.959-15.629-37.544z" />
217
+ <glyph unicode="&#xe9ae;" glyph-name="fi-audio-sound" d="M722.091 929.451h-5.291c-0.2 0.002-0.437 0.003-0.674 0.003-19.274 0-36.936-6.901-50.651-18.366l-282.499-235.589c-15.693-13.166-36.108-21.163-58.392-21.163-0.112 0-0.223 0-0.335 0.001h-288.921c0 0-0.001 0-0.002 0-19.511 0-35.328-15.817-35.328-35.328 0-0.12 0.001-0.24 0.002-0.36v-341.315c0-19.511 15.817-35.328 35.328-35.328h288.939c22.275-0.006 42.681-8.002 58.509-21.278l282.824-235.746c13.59-11.364 31.252-18.264 50.526-18.264 0.237 0 0.474 0.001 0.71 0.003h5.767c11.126 0.284 20.047 9.325 20.139 20.471v921.609c0 11.405-9.246 20.651-20.651 20.651zM897.195 26.112c0 0 0 0 0 0-22.81 0-41.301 18.491-41.301 41.301 0 7.055 1.769 13.697 4.887 19.506 51.092 98.083 80.617 226.425 80.617 361.081s-28.501 262.997-80.555 361.301c-2.336 5.017-3.7 10.892-3.7 17.085 0 22.81 18.491 41.301 41.301 41.301 14.865 0 27.897-7.854 35.171-19.638 58.3-109.917 90.385-252.253 90.385-400.050s-32.085-290.133-90.283-399.872c-7.072-13.194-20.767-22.016-36.522-22.016 0 0 0 0 0 0z" />
218
+ <glyph unicode="&#xe9b1;" glyph-name="fi-progress" d="M512 960c-282.503-0.353-511.38-229.448-511.38-512 0-123.465 43.701-236.723 116.479-325.15l-28.012-26.424 70.485-70.485 27.307 27.307 10.24-8.021q8.363-6.485 17.067-12.629c35.151-25.522 75.446-47.337 118.498-63.519q15.305-5.43 27.252-9.185 24.064-7.509 49.152-12.629c32.084-7.152 68.933-11.25 106.739-11.25 282.77 0 512 229.23 512 512s-229.23 512-512 512c-1.346 0-2.69-0.005-4.033-0.016zM51.2 448c0 254.493 206.307 460.8 460.8 460.8v-85.333c207.365 0 375.467-168.102 375.467-375.467s-168.102-375.467-375.467-375.467c-0.015 0-0.034 0-0.053 0-26.746 0-52.839 2.797-78.003 8.113-12.283 2.629-24.362 5.868-36.181 9.685-41.855 13.381-80.482 33.913-114.471 60.158l228.708 226.854v446.123c-207.317-0.063-375.356-168.141-375.356-375.467 0-86.079 28.967-165.392 77.684-228.724l-60.728-59.703c-63.692 78.032-102.311 178.711-102.4 288.407z" />
219
+ <glyph unicode="&#xe9b2;" glyph-name="fi-dashboard" d="M189.269 574.293c0-16.306-13.219-29.525-29.525-29.525s-29.525 13.219-29.525 29.525c0 16.306 13.219 29.525 29.525 29.525s29.525-13.219 29.525-29.525zM271.872 574.293c0-16.306-13.219-29.525-29.525-29.525s-29.525 13.219-29.525 29.525c0 16.306 13.219 29.525 29.525 29.525s29.525-13.219 29.525-29.525zM354.475 574.293c-0.004-16.303-13.222-29.517-29.525-29.517-16.306 0-29.525 13.219-29.525 29.525 0 16.066 12.833 29.135 28.807 29.517 16.342 0.001 29.561-13.218 29.561-29.525zM917.845 42.155h-811.691v586.24h811.691zM976.725 734.72h-929.451c-0.001 0-0.002 0-0.003 0-26.109 0-47.275-21.166-47.275-47.275 0-0.18 0.001-0.36 0.003-0.539v-703.631c0-26.109 21.166-47.275 47.275-47.275h929.451c26.109 0 47.275 21.166 47.275 47.275v703.659c0 26.109-21.166 47.275-47.275 47.275zM602.283 328.533h-65.365c-8.012 0-14.507-6.495-14.507-14.507v-207.36c0-8.012 6.495-14.507 14.507-14.507h65.365c8.012 0 14.507 6.495 14.507 14.507v207.36c0 8.012-6.495 14.507-14.507 14.507zM732.16 446.464h-65.536c-8.012 0-14.507-6.495-14.507-14.507v-325.291c0-8.012 6.495-14.507 14.507-14.507h65.536c8.012 0 14.507 6.495 14.507 14.507v324.267c0 8.012-6.495 14.507-14.507 14.507zM861.867 363.861h-65.365c-8.012 0-14.507-6.495-14.507-14.507v-242.688c0-8.012 6.495-14.507 14.507-14.507h65.365c8.012 0 14.507 6.495 14.507 14.507v242.688c0 8.012-6.495 14.507-14.507 14.507zM288.597 307.712l70.656 121.685c-20.284 11.993-44.701 19.080-70.773 19.080-77.762 0-140.8-63.038-140.8-140.8s63.038-140.8 140.8-140.8c76.394 0 138.577 60.84 140.742 136.71zM468.651 328.533c0 1.195 0 2.389 0 3.584-0.040 48.75-26.379 91.339-65.594 114.349l-67.355-114.349zM259.072 116.053h-106.496c-3.205 0-5.803-2.598-5.803-5.803v-12.117c0-3.205 2.598-5.803 5.803-5.803h106.496c3.205 0 5.803 2.598 5.803 5.803v12.117c0 3.205-2.598 5.803-5.803 5.803zM416.768 116.053h-106.496c-3.205 0-5.803-2.598-5.803-5.803v-12.117c0-3.205 2.598-5.803 5.803-5.803h106.496c3.205 0 5.803 2.598 5.803 5.803v12.117c0 3.205-2.598 5.803-5.803 5.803z" />
220
+ <glyph unicode="&#xe9b4;" glyph-name="fi-testing-bottle-beaker" horiz-adv-x="857" d="M853.333 2.389l-290.133 646.827v231.595c13.775 1.515 24.397 13.084 24.405 27.135v24.748c0 0.013 0 0.028 0 0.043 0 15.081-12.226 27.307-27.307 27.307-0.54 0-1.077-0.016-1.61-0.047l-260.364 0.003c-15.081 0-27.307-12.226-27.307-27.307v-24.917c0.009-14.052 10.63-25.621 24.283-27.125l0.122-231.435-290.133-646.827c-2.789-5.801-4.419-12.613-4.419-19.805 0-25.426 20.366-46.094 45.675-46.583l763.95-0.001c0.197-0.003 0.43-0.005 0.663-0.005 25.732 0 46.592 20.86 46.592 46.592 0 7.191-1.629 14.002-4.538 20.083zM477.867 635.733c37.703 0 68.267-30.564 68.267-68.267s-30.564-68.267-68.267-68.267c-37.703 0-68.267 30.564-68.267 68.267s30.564 68.267 68.267 68.267zM473.771 379.733c0-17.437-14.136-31.573-31.573-31.573s-31.573 14.136-31.573 31.573c0 17.437 14.136 31.573 31.573 31.573 17.066-0.476 30.72-14.424 30.72-31.562 0-0.004 0-0.008 0-0.012zM308.224 448c46.374 0 83.968-37.594 83.968-83.968s-37.594-83.968-83.968-83.968c-46.374 0-83.968 37.594-83.968 83.968s37.594 83.968 83.968 83.968zM789.675-12.8h-722.261c-0.014 0-0.030 0-0.046 0-4.619 0-8.363 3.744-8.363 8.363 0 1.236 0.268 2.41 0.75 3.466l87.189 193.996c1.002 0.025 2.182 0.039 3.365 0.039 23.648 0 45.982-5.625 65.737-15.611 11.807-6.312 26.8-10.243 42.712-10.243 1.011 0 2.018 0.016 3.021 0.047 0.080-0.006 0.348-0.007 0.616-0.007 16.409 0 31.844 4.173 45.301 11.515 18.425 9.355 40.759 14.981 64.406 14.981 1.183 0 2.363-0.014 3.539-0.042 0.839 0.029 2.032 0.043 3.228 0.043 23.635 0 45.956-5.626 65.697-15.611 11.822-6.312 26.828-10.242 42.753-10.242 0.997 0 1.991 0.015 2.981 0.046 0.7-0.031 1.694-0.046 2.691-0.046 15.924 0 30.931 3.93 44.103 10.872 19.296 9.324 42.571 14.918 67.152 14.918s47.856-5.594 68.62-15.578c11.885-6.36 27.101-10.334 43.246-10.334 1.983 0 3.953 0.060 5.907 0.178l-0.269-0.013 22.016-49.152 53.419-119.467c0.46-1.004 0.728-2.177 0.728-3.413 0-4.619-3.744-8.363-8.363-8.363-0.016 0-0.032 0-0.048 0z" />
221
+ <glyph unicode="&#xe9be;" glyph-name="fi-loader" d="M512 960c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM512 212.309c-34.404 0-62.293-27.89-62.293-62.293v-151.723c0-34.404 27.89-62.293 62.293-62.293s62.293 27.89 62.293 62.293v151.723c0 34.404-27.89 62.293-62.293 62.293zM722.603 596.309c0.033 0 0.071 0 0.11 0 17.165 0 32.7 6.981 43.92 18.259l107.352 107.352c11.99 11.377 19.45 27.428 19.45 45.221 0 34.404-27.89 62.293-62.293 62.293-17.793 0-33.843-7.46-45.195-19.422l-107.375-107.377c-11.263-11.271-18.229-26.838-18.229-44.032 0-34.392 27.871-62.275 62.26-62.293zM301.397 299.691c-0.033 0-0.071 0-0.11 0-17.165 0-32.7-6.981-43.92-18.259l-107.352-107.352c-11.99-11.377-19.45-27.428-19.45-45.221 0-34.404 27.89-62.293 62.293-62.293 17.793 0 33.843 7.46 45.195 19.422l107.375 107.377c11.263 11.271 18.229 26.838 18.229 44.032 0 34.392-27.871 62.275-62.26 62.293zM961.707 510.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293s-27.89 62.293-62.293 62.293zM276.309 448c0 34.404-27.89 62.293-62.293 62.293h-151.723c-34.404 0-62.293-27.89-62.293-62.293s27.89-62.293 62.293-62.293h151.723c34.404 0 62.293 27.89 62.293 62.293zM766.635 281.429c-11.377 11.99-27.428 19.45-45.221 19.45-34.404 0-62.293-27.89-62.293-62.293 0-17.793 7.46-33.843 19.422-45.195l107.377-107.375c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195zM238.080 809.984c-11.14 10.571-26.233 17.073-42.843 17.073-34.404 0-62.293-27.89-62.293-62.293 0-16.611 6.502-31.703 17.099-42.871l107.323-107.322c11.377-11.99 27.428-19.45 45.221-19.45 34.404 0 62.293 27.89 62.293 62.293 0 17.793-7.46 33.843-19.422 45.195z" />
222
+ <glyph unicode="&#xe9bf;" glyph-name="fi-rocket-launch" horiz-adv-x="629" d="M435.029 794.453c-31.125 60.201-66.588 112.119-107.493 159.18-3.137 3.56-8.929 6.406-15.387 6.406s-12.25-2.846-16.192-7.353c-40.166-46.117-75.682-98.034-104.772-153.835zM439.808 218.624c43.008 121.515 108.203 328.875 8.875 547.669h-273.067c-99.328-218.795-34.133-426.667 8.875-547.669 2.598-7.137 9.209-12.192 17.035-12.458l220.191-0.001c7.858 0.266 14.469 5.322 17.025 12.328zM312.149 697.515c34.142-0.097 61.781-27.797 61.781-61.952 0-34.215-27.737-61.952-61.952-61.952s-61.952 27.737-61.952 61.952c0 0.060 0 0.12 0 0.18 0 34.206 27.737 61.943 61.952 61.943zM89.429 382.464c-29.355-58.368-80.725-108.032-89.429-266.069-0.017-0.2-0.027-0.434-0.027-0.669 0-4.619 3.744-8.363 8.363-8.363 2.824 0 5.322 1.4 6.836 3.544 38.93 55.834 133.138 89.114 146.108 102.426-25.762 48.102-47.772 103.962-63.133 162.515-1.804 6.993-3.298 8.091-5.048 8.091s-3.244-1.098-3.831-2.643zM539.819 382.464c29.184-58.539 80.555-108.032 89.259-266.069 0.017-0.2 0.027-0.434 0.027-0.669 0-4.619-3.744-8.363-8.363-8.363-2.824 0-5.322 1.4-6.836 3.544-38.93 55.834-133.138 89.114-146.108 102.426 25.762 48.102 47.772 103.962 63.133 162.515 1.804 6.993 3.298 8.091 5.048 8.091s3.244-1.098 3.831-2.643zM271.36 64.683l-4.437 1.536c6.354-48.821 22.355-92.862 46.059-131.686 21.976 38.834 37.92 82.879 44.045 130.007l-4.088 0.143c-12.141-4.48-26.162-7.072-40.789-7.072s-28.649 2.592-41.631 7.341zM372.736 118.272l22.699 5.461 17.067 53.419h-201.045l17.067-53.419 22.699-5.973c18.18-4.931 39.052-7.763 60.587-7.763s42.407 2.833 62.266 8.146z" />
223
+ <glyph unicode="&#xf8ff;" glyph-name="fi-arrow-left" horiz-adv-x="921" d="M8.704 468.992l388.949 388.608c5.491 5.46 13.061 8.836 21.419 8.836s15.927-3.375 21.42-8.837l62.463-62.463c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-229.887-230.057h621.227c0.203 0.006 0.443 0.009 0.683 0.009 14.647 0 26.532-11.828 26.623-26.453v-95.582c0-14.704-11.92-26.624-26.624-26.624h-621.909l230.4-230.4c5.46-5.491 8.836-13.061 8.836-21.419s-3.375-15.927-8.837-21.42l-62.975-61.951c-5.491-5.46-13.061-8.836-21.419-8.836s-15.927 3.375-21.42 8.837l-388.948 388.607c-5.38 5.401-8.706 12.851-8.706 21.077s3.326 15.677 8.707 21.078z" />
224
+ <glyph unicode="&#xfb01;" glyph-name="fi-icon-snapshot" horiz-adv-x="939" d="M52.224 749.227l312.832 180.736-208.555-361.472zM347.819 658.944l-121.685-210.944 120.832-209.579s0-1.024 0-1.365h247.808l121.173 204.8-124.416 216.576zM834.56 779.264l-312.832 180.736-104.448-180.736zM0 598.699v-361.472h208.725zM730.283 658.944l208.384-361.472v361.301zM886.784 146.944l-101.717 176.128-209.749-355.84zM417.621-64l106.155 180.224h-419.499l313.173-180.224z" />
225
+ <glyph unicode="&#xfb02;" glyph-name="fi-icon-hub" d="M602.283 538.283h-180.565l-0.171 120.491-90.283 60.245-90.283-60.245v-421.547l90.283-60.245 90.795 58.709v122.027h180.224v-120.491l90.453-60.245 90.283 60.245v421.547l-90.283 60.245-90.453-60.245v-120.491zM120.491 185.856v525.312l214.016 128.341h354.987l214.016-128.512v-525.995l-214.016-128.512h-354.816zM301.227 960l-301.227-180.736v-661.504l301.227-181.76h421.547l301.227 180.736v662.528l-301.227 180.736z" />
226
+ </font></defs></svg>
assets/shared-ui/font/WPMU-DEV-Icon.ttf ADDED
Binary file
assets/shared-ui/font/WPMU-DEV-Icon.woff ADDED
Binary file
assets/shared-ui/font/WPMU-DEV-Icon.woff2 ADDED
Binary file
assets/shared-ui/wdev-ui.css CHANGED
@@ -45,7 +45,7 @@
45
  }
46
  .wpmud #wpbody {
47
  background: #F4F4F4;
48
- -webkit-font-smoothing: antialiased !important;
49
  }
50
  .wpmud #wpbody * {
51
  box-sizing: border-box;
@@ -69,9 +69,9 @@
69
  display: block;
70
  margin: 0.5em auto;
71
  padding: 0;
72
- line-height: 1em;
73
- text-align: center;
74
- color: #777771;
75
  }
76
  .wpmud h1,
77
  .wpmud h2,
@@ -355,8 +355,8 @@
355
  }
356
  .wpmud .box-footer {
357
  text-align: center;
358
- margin-top: 32px;
359
- font-size: 16px;
360
  }
361
 
362
  /* ****************************************************************************
@@ -994,10 +994,10 @@
994
  top: 0;
995
  padding: 0 24px;
996
  line-height: 60px;
997
- font-size: 24px;
998
- font-weight: 400;
999
- color: #BABABA;
1000
- cursor: pointer;
1001
  }
1002
  .wpmud .dev-overlay .title .close:hover {
1003
  color: #777771;
@@ -1298,12 +1298,12 @@
1298
  .wpmud .notice-dismiss:hover,
1299
  .wpmud .notice-dismiss:focus,
1300
  .wpmud .notice-dismiss:active {
1301
- border: none;
1302
- margin: 0;
1303
- padding: 9px;
1304
- background: none;
1305
- color: #b4b9be;
1306
- cursor: pointer;
1307
  }
1308
 
1309
  /* ****************************************************************************
@@ -1669,12 +1669,12 @@
1669
  }
1670
  .wpmud .select-list-container .list-results {
1671
  position: absolute;
1672
- top: 41px;
1673
- left: -9999px;
1674
- right: -9999px;
1675
- z-index: 1010;
1676
- width: 0;
1677
- border-top: 0;
1678
  background: #FFF;
1679
  border: 1px solid #ddd;
1680
  margin-left: -1px;
@@ -1810,14 +1810,14 @@
1810
  opacity: 0.8;
1811
 
1812
  font-family: 'WPMU-DEV-App-Icons';
1813
- speak: none;
1814
- font-style: normal;
1815
- font-weight: normal;
1816
- font-variant: normal;
1817
- text-transform: none;
1818
- line-height: 1;
1819
- -webkit-font-smoothing: antialiased;
1820
- -moz-osx-font-smoothing: grayscale;
1821
  }
1822
  .wpmud .listing li.circle:before {
1823
  content: "\68";
@@ -2186,48 +2186,48 @@
2186
  vertical-align: middle;
2187
  height: 30px;
2188
  line-height: 24px;
2189
- color: #b6b6b6;
2190
- cursor: default;
2191
- font-weight: normal;
2192
  }
2193
  .wpmud .count.reply:before {
2194
- content: '';
2195
- position: absolute;
2196
- bottom: -8px;
2197
- right: 4px;
2198
- border-width: 8px 0px 0px 12px;
2199
- border-style: solid;
2200
- border-color: #DDDDDD transparent;
2201
- display: block;
2202
- width: 0;
2203
  }
2204
  .wpmud .count.reply:after {
2205
- content: '';
2206
- position: absolute;
2207
- bottom: -4px;
2208
- right: 6px;
2209
- border-width: 4px 0px 0px 6px;
2210
- border-style: solid;
2211
- border-color: #fff transparent;
2212
- display: block;
2213
- width: 0;
2214
  }
2215
  .wpmud .count.reply.mirror:before {
2216
- left: 4px;
2217
- border-width: 8px 12px 0px 0px;
2218
  }
2219
  .wpmud .count.reply.mirror:after {
2220
- left: 6px;
2221
- border-width: 4px 6px 0px 0px;
2222
  }
2223
  .wpmud .count.notification {
2224
- background: #fecf2f;
2225
- border-color: #fecf2f;
2226
- color: #fff;
2227
  }
2228
  .wpmud .count.notification:before,
2229
  .wpmud .count.notification:after {
2230
- border-color: #fecf2f transparent;
2231
  }
2232
 
2233
  /* ****************************************************************************
@@ -2293,15 +2293,15 @@
2293
  * 23. FONTAWESOME
2294
  */
2295
  @font-face {
2296
- font-family: 'FontAwesomeWdv';
2297
- src: url('font/fontawesome-webfont.eot');
2298
- src: url('font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
2299
- url('font/fontawesome-webfont.woff') format('woff'),
2300
- url('font/fontawesome-webfont.ttf') format('truetype'),
2301
- url('font/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),
2302
- url('font/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');
2303
- font-weight: normal;
2304
- font-style: normal;
2305
  }
2306
  .wdv-icon:before{font-family:FontAwesomeWdv;font-weight:normal;font-style:normal;display:inline-block;text-decoration:inherit}a .wdv-icon{display:inline-block;text-decoration:inherit}.wdv-icon-large:before{vertical-align:top;font-size:1.3333333333333333em}.btn .wdv-icon{line-height:.9em}li .wdv-icon, .action_links .wdv-icon, .wdv-icon.wdv-icon-fw{display:inline-block;width:1.25em;text-align:center}li .wdv-icon-large.wdv-icon,li .wdv-icon-large.wdv-icon{width:1.875em}li.wdv-icon{margin-left:0;list-style-type:none}li.wdv-icon:before{text-indent:-2em;text-align:center}li.wdv-icon.wdv-icon-large:before{text-indent:-1.3333333333333333em}.wdv-icon-glass:before{content:"\f000"}.wdv-icon-music:before{content:"\f001"}.wdv-icon-search:before{content:"\f002"}.wdv-icon-envelope:before{content:"\f003"}.wdv-icon-heart:before{content:"\f004"}.wdv-icon-star:before{content:"\f005"}.wdv-icon-star-empty:before{content:"\f006"}.wdv-icon-user:before{content:"\f007"}.wdv-icon-film:before{content:"\f008"}.wdv-icon-th-large:before{content:"\f009"}.wdv-icon-th:before{content:"\f00a"}.wdv-icon-th-list:before{content:"\f00b"}.wdv-icon-ok:before{content:"\f00c"}.wdv-icon-remove:before{content:"\f00d"}.wdv-icon-zoom-in:before{content:"\f00e"}.wdv-icon-zoom-out:before{content:"\f010"}.wdv-icon-off:before{content:"\f011"}.wdv-icon-signal:before{content:"\f012"}.wdv-icon-cog:before{content:"\f013"}.wdv-icon-trash:before{content:"\f014"}.wdv-icon-home:before{content:"\f015"}.wdv-icon-file:before{content:"\f016"}.wdv-icon-time:before{content:"\f017"}.wdv-icon-road:before{content:"\f018"}.wdv-icon-download-alt:before{content:"\f019"}.wdv-icon-download:before{content:"\f01a"}.wdv-icon-upload:before{content:"\f01b"}.wdv-icon-inbox:before{content:"\f01c"}.wdv-icon-play-circle:before{content:"\f01d"}.wdv-icon-repeat:before{content:"\f01e"}.wdv-icon-refresh:before{content:"\f021"}.wdv-icon-list-alt:before{content:"\f022"}.wdv-icon-lock:before{content:"\f023"}.wdv-icon-flag:before{content:"\f024"}.wdv-icon-headphones:before{content:"\f025"}.wdv-icon-volume-off:before{content:"\f026"}.wdv-icon-volume-down:before{content:"\f027"}.wdv-icon-volume-up:before{content:"\f028"}.wdv-icon-qrcode:before{content:"\f029"}.wdv-icon-barcode:before{content:"\f02a"}.wdv-icon-tag:before{content:"\f02b"}.wdv-icon-tags:before{content:"\f02c"}.wdv-icon-book:before{content:"\f02d"}.wdv-icon-bookmark:before{content:"\f02e"}.wdv-icon-print:before{content:"\f02f"}.wdv-icon-camera:before{content:"\f030"}.wdv-icon-font:before{content:"\f031"}.wdv-icon-bold:before{content:"\f032"}.wdv-icon-italic:before{content:"\f033"}.wdv-icon-text-height:before{content:"\f034"}.wdv-icon-text-width:before{content:"\f035"}.wdv-icon-align-left:before{content:"\f036"}.wdv-icon-align-center:before{content:"\f037"}.wdv-icon-align-right:before{content:"\f038"}.wdv-icon-align-justify:before{content:"\f039"}.wdv-icon-list:before{content:"\f03a"}.wdv-icon-indent-left:before{content:"\f03b"}.wdv-icon-indent-right:before{content:"\f03c"}.wdv-icon-facetime-video:before{content:"\f03d"}.wdv-icon-picture:before{content:"\f03e"}.wdv-icon-pencil:before{content:"\f040"}.wdv-icon-map-marker:before{content:"\f041"}.wdv-icon-adjust:before{content:"\f042"}.wdv-icon-tint:before{content:"\f043"}.wdv-icon-edit:before{content:"\f044"}.wdv-icon-share:before{content:"\f045"}.wdv-icon-check:before{content:"\f046"}.wdv-icon-move:before{content:"\f047"}.wdv-icon-step-backward:before{content:"\f048"}.wdv-icon-fast-backward:before{content:"\f049"}.wdv-icon-backward:before{content:"\f04a"}.wdv-icon-play:before{content:"\f04b"}.wdv-icon-pause:before{content:"\f04c"}.wdv-icon-stop:before{content:"\f04d"}.wdv-icon-forward:before{content:"\f04e"}.wdv-icon-fast-forward:before{content:"\f050"}.wdv-icon-step-forward:before{content:"\f051"}.wdv-icon-eject:before{content:"\f052"}.wdv-icon-chevron-left:before{content:"\f053"}.wdv-icon-chevron-right:before{content:"\f054"}.wdv-icon-plus-sign:before{content:"\f055"}.wdv-icon-minus-sign:before{content:"\f056"}.wdv-icon-remove-sign:before{content:"\f057"}.wdv-icon-ok-sign:before{content:"\f058"}.wdv-icon-question-sign:before{content:"\f059"}.wdv-icon-info-sign:before{content:"\f05a"}.wdv-icon-screenshot:before{content:"\f05b"}.wdv-icon-remove-circle:before{content:"\f05c"}.wdv-icon-ok-circle:before{content:"\f05d"}.wdv-icon-ban-circle:before{content:"\f05e"}.wdv-icon-arrow-left:before{content:"\f060"}.wdv-icon-arrow-right:before{content:"\f061"}.wdv-icon-arrow-up:before{content:"\f062"}.wdv-icon-arrow-down:before{content:"\f063"}.wdv-icon-share-alt:before{content:"\f064"}.wdv-icon-resize-full:before{content:"\f065"}.wdv-icon-resize-small:before{content:"\f066"}.wdv-icon-plus:before{content:"\f067"}.wdv-icon-minus:before{content:"\f068"}.wdv-icon-asterisk:before{content:"\f069"}.wdv-icon-exclamation-sign:before{content:"\f06a"}.wdv-icon-gift:before{content:"\f06b"}.wdv-icon-leaf:before{content:"\f06c"}.wdv-icon-fire:before{content:"\f06d"}.wdv-icon-eye-open:before{content:"\f06e"}.wdv-icon-eye-close:before{content:"\f070"}.wdv-icon-warning-sign:before{content:"\f071"}.wdv-icon-plane:before{content:"\f072"}.wdv-icon-calendar:before{content:"\f073"}.wdv-icon-random:before{content:"\f074"}.wdv-icon-comment:before{content:"\f075"}.wdv-icon-magnet:before{content:"\f076"}.wdv-icon-chevron-up:before{content:"\f077"}.wdv-icon-chevron-down:before{content:"\f078"}.wdv-icon-retweet:before{content:"\f079"}.wdv-icon-shopping-cart:before{content:"\f07a"}.wdv-icon-folder-close:before{content:"\f07b"}.wdv-icon-folder-open:before{content:"\f07c"}.wdv-icon-resize-vertical:before{content:"\f07d"}.wdv-icon-resize-horizontal:before{content:"\f07e"}.wdv-icon-bar-chart:before{content:"\f080"}.wdv-icon-twitter-sign:before{content:"\f081"}.wdv-icon-facebook-sign:before{content:"\f082"}.wdv-icon-camera-retro:before{content:"\f083"}.wdv-icon-key:before{content:"\f084"}.wdv-icon-cogs:before{content:"\f085"}.wdv-icon-comments:before{content:"\f086"}.wdv-icon-thumbs-up:before{content:"\f087"}.wdv-icon-thumbs-down:before{content:"\f088"}.wdv-icon-star-half:before{content:"\f089"}.wdv-icon-heart-empty:before{content:"\f08a"}.wdv-icon-signout:before{content:"\f08b"}.wdv-icon-linkedin-sign:before{content:"\f08c"}.wdv-icon-pushpin:before{content:"\f08d"}.wdv-icon-external-link:before{content:"\f08e"}.wdv-icon-signin:before{content:"\f090"}.wdv-icon-trophy:before{content:"\f091"}.wdv-icon-github-sign:before{content:"\f092"}.wdv-icon-upload-alt:before{content:"\f093"}.wdv-icon-lemon:before{content:"\f094"}.wdv-icon-phone:before{content:"\f095"}.wdv-icon-check-empty:before{content:"\f096"}.wdv-icon-bookmark-empty:before{content:"\f097"}.wdv-icon-phone-sign:before{content:"\f098"}.wdv-icon-twitter:before{content:"\f099"}.wdv-icon-facebook:before{content:"\f09a"}.wdv-icon-github:before{content:"\f09b"}.wdv-icon-unlock:before{content:"\f09c"}.wdv-icon-credit-card:before{content:"\f09d"}.wdv-icon-rss:before{content:"\f09e"}.wdv-icon-hdd:before{content:"\f0a0"}.wdv-icon-bullhorn:before{content:"\f0a1"}.wdv-icon-bell:before{content:"\f0a2"}.wdv-icon-certificate:before{content:"\f0a3"}.wdv-icon-hand-right:before{content:"\f0a4"}.wdv-icon-hand-left:before{content:"\f0a5"}.wdv-icon-hand-up:before{content:"\f0a6"}.wdv-icon-hand-down:before{content:"\f0a7"}.wdv-icon-circle-arrow-left:before{content:"\f0a8"}.wdv-icon-circle-arrow-right:before{content:"\f0a9"}.wdv-icon-circle-arrow-up:before{content:"\f0aa"}.wdv-icon-circle-arrow-down:before{content:"\f0ab"}.wdv-icon-globe:before{content:"\f0ac"}.wdv-icon-wrench:before{content:"\f0ad"}.wdv-icon-tasks:before{content:"\f0ae"}.wdv-icon-filter:before{content:"\f0b0"}.wdv-icon-briefcase:before{content:"\f0b1"}.wdv-icon-fullscreen:before{content:"\f0b2"}.wdv-icon-group:before{content:"\f0c0"}.wdv-icon-link:before{content:"\f0c1"}.wdv-icon-cloud:before{content:"\f0c2"}.wdv-icon-beaker:before{content:"\f0c3"}.wdv-icon-cut:before{content:"\f0c4"}.wdv-icon-copy:before{content:"\f0c5"}.wdv-icon-paper-clip:before{content:"\f0c6"}.wdv-icon-save:before{content:"\f0c7"}.wdv-icon-sign-blank:before{content:"\f0c8"}.wdv-icon-reorder:before{content:"\f0c9"}.wdv-icon-list-ul:before{content:"\f0ca"}.wdv-icon-list-ol:before{content:"\f0cb"}.wdv-icon-strikethrough:before{content:"\f0cc"}.wdv-icon-underline:before{content:"\f0cd"}.wdv-icon-table:before{content:"\f0ce"}.wdv-icon-magic:before{content:"\f0d0"}.wdv-icon-truck:before{content:"\f0d1"}.wdv-icon-pinterest:before{content:"\f0d2"}.wdv-icon-pinterest-sign:before{content:"\f0d3"}.wdv-icon-google-plus-sign:before{content:"\f0d4"}.wdv-icon-google-plus:before{content:"\f0d5"}.wdv-icon-money:before{content:"\f0d6"}.wdv-icon-caret-down:before{content:"\f0d7"}.wdv-icon-caret-up:before{content:"\f0d8"}.wdv-icon-caret-left:before{content:"\f0d9"}.wdv-icon-caret-right:before{content:"\f0da"}.wdv-icon-columns:before{content:"\f0db"}.wdv-icon-sort:before{content:"\f0dc"}.wdv-icon-sort-down:before{content:"\f0dd"}.wdv-icon-sort-up:before{content:"\f0de"}.wdv-icon-envelope-alt:before{content:"\f0e0"}.wdv-icon-linkedin:before{content:"\f0e1"}.wdv-icon-undo:before{content:"\f0e2"}.wdv-icon-legal:before{content:"\f0e3"}.wdv-icon-dashboard:before{content:"\f0e4"}.wdv-icon-comment-alt:before{content:"\f0e5"}.wdv-icon-comments-alt:before{content:"\f0e6"}.wdv-icon-bolt:before{content:"\f0e7"}.wdv-icon-sitemap:before{content:"\f0e8"}.wdv-icon-umbrella:before{content:"\f0e9"}.wdv-icon-paste:before{content:"\f0ea"}.wdv-icon-user-md:before{content:"\f200"}
2307
 
@@ -2310,14 +2310,29 @@
2310
  */
2311
  @font-face {
2312
  font-family: 'WPMU-DEV-App-Icons';
2313
- src:url('font/WPMU-DEV-App-Icons.eot?yhrhds');
2314
- src:url('font/WPMU-DEV-App-Icons.eot?#iefixyhrhds') format('embedded-opentype'),
2315
- url('font/WPMU-DEV-App-Icons.ttf?yhrhds') format('truetype'),
2316
- url('font/WPMU-DEV-App-Icons.woff?yhrhds') format('woff'),
2317
- url('font/WPMU-DEV-App-Icons.svg?yhrhds#WPMU-DEV-App-Icons') format('svg');
 
2318
  font-weight: normal;
2319
  font-style: normal;
2320
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2321
  .dev-icon {
2322
  font-family: 'WPMU-DEV-App-Icons';
2323
  speak: none;
@@ -2330,188 +2345,869 @@
2330
  -webkit-font-smoothing: antialiased;
2331
  -moz-osx-font-smoothing: grayscale;
2332
  }
2333
- .dev-icon-comment:before {
2334
- content: "\41";
 
2335
  }
2336
- .dev-icon-speach:before {
2337
- content: "\6d";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2338
  }
2339
- .dev-icon-speach_alt:before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2340
  content: "\3d";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2341
  }
2342
- .dev-icon-download:before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2343
  content: "\42";
 
2344
  }
2345
- .dev-icon-download_alt:before {
2346
- content: "\69";
 
2347
  }
2348
- .dev-icon-upload:before {
2349
- content: "\56";
 
2350
  }
2351
- .dev-icon-error:before {
2352
- content: "\45";
 
2353
  }
2354
- .dev-icon-archive:before {
2355
- content: "\4f";
 
2356
  }
2357
- .dev-icon-logo:before {
2358
- content: "\39";
 
2359
  }
2360
- .dev-icon-logo_alt:before {
2361
- content: "\30";
 
2362
  }
2363
- .dev-icon-wordpress:before {
2364
- content: "\47";
 
2365
  }
2366
- .dev-icon-facebook:before {
2367
- content: "\46";
 
2368
  }
2369
- .dev-icon-twitter:before {
2370
- content: "\49";
 
2371
  }
2372
- .dev-icon-github:before {
2373
- content: "\4a";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2374
  }
2375
- .dev-icon-stackoverflow:before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2376
  content: "\4b";
 
 
 
 
 
2377
  }
2378
- .dev-icon-linkedin:before {
 
 
 
 
 
 
 
 
 
 
 
 
2379
  content: "\4c";
 
2380
  }
2381
- .dev-icon-medium:before {
2382
- content: "\4d";
 
2383
  }
2384
- .dev-icon-quora:before {
2385
- content: "\51";
 
2386
  }
2387
- .dev-icon-seo:before {
2388
- content: "\53";
 
2389
  }
2390
- .dev-icon-minify:before {
2391
- content: "\4e";
 
2392
  }
2393
- .dev-icon-uptime:before {
2394
- content: "\55";
 
2395
  }
2396
- .dev-icon-world:before {
2397
- content: "\57";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2398
  }
2399
- .dev-icon-pos_footer:before {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2400
  content: "\59";
 
2401
  }
2402
- .dev-icon-pos_middle:before {
2403
- content: "\58";
 
2404
  }
2405
- .dev-icon-pos_header:before {
2406
- content: "\43";
 
2407
  }
2408
- .dev-icon-book:before {
2409
- content: "\62";
 
2410
  }
2411
- .dev-icon-support:before {
2412
- content: "\6e";
 
2413
  }
2414
- .dev-icon-rocket:before {
2415
- content: "\6a";
 
2416
  }
2417
- .dev-icon-rocket_alt:before {
2418
- content: "\76";
 
2419
  }
2420
- .dev-icon-lock:before {
2421
- content: "\61";
 
2422
  }
2423
- .dev-icon-unlock:before {
2424
- content: "\63";
 
2425
  }
2426
- .dev-icon-plugin:before {
2427
- content: "\64";
 
2428
  }
2429
- .dev-icon-caret_up:before {
2430
- content: "\72";
 
2431
  }
2432
- .dev-icon-caret_right:before {
2433
- content: "\33";
 
2434
  }
2435
- .dev-icon-caret_down:before {
2436
- content: "\65";
 
2437
  }
2438
- .dev-icon-caret_left:before {
2439
- content: "\7c";
 
2440
  }
2441
- .dev-icon-power:before {
2442
- content: "\66";
 
2443
  }
2444
- .dev-icon-radio_default:before {
2445
- content: "\68";
 
 
 
 
 
 
 
 
 
2446
  }
2447
- .dev-icon-radio:before {
2448
  content: "\68";
 
2449
  }
2450
- .dev-icon-radio_checked:before {
2451
  content: "\67";
 
2452
  }
2453
- .dev-icon-cross:before {
 
 
 
 
 
 
 
 
 
 
 
 
2454
  content: "\79";
 
2455
  }
2456
- .dev-icon-tick:before {
2457
- content: "\7a";
 
2458
  }
2459
- .dev-icon-search:before {
2460
- content: "\6b";
 
2461
  }
2462
- .dev-icon-info:before {
2463
- content: "\70";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2464
  }
2465
- .dev-icon-devman:before {
 
 
 
 
 
 
 
 
2466
  content: "\31";
 
2467
  }
2468
- .dev-icon-upfront:before {
2469
- content: "\37";
 
 
 
 
 
 
 
 
 
 
 
 
 
2470
  }
2471
- .dev-icon-hummingbird:before {
 
 
 
 
2472
  content: "\48";
 
2473
  }
2474
- .dev-icon-defender:before {
2475
- content: "\44";
 
2476
  }
2477
- .dev-icon-theme:before {
2478
- content: "\6c";
 
2479
  }
2480
- .dev-icon-pencil:before {
2481
- content: "\50";
 
2482
  }
2483
- .dev-icon-star:before {
2484
- content: "\5a";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2485
  }
2486
- .dev-icon-trash:before {
2487
  content: "\54";
 
2488
  }
2489
- .dev-icon-recycle:before {
2490
- content: "\52";
 
 
 
 
 
 
 
 
 
 
 
 
 
2491
  }
2492
- .dev-icon-fix:before {
 
 
 
 
2493
  content: "\32";
 
2494
  }
2495
- .dev-icon-edit:before {
2496
- content: "\6f";
 
2497
  }
2498
- .dev-icon-options:before {
2499
- content: "\73";
 
2500
  }
2501
- .dev-icon-cog:before {
2502
- content: "\74";
 
2503
  }
2504
- .dev-icon-badge:before {
2505
- content: "\71";
 
2506
  }
2507
- .dev-icon-cylinder:before {
2508
- content: "\75";
 
2509
  }
2510
- .dev-icon-trophy:before {
2511
- content: "\78";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2512
  }
2513
- .dev-icon-bell:before {
 
 
 
 
 
 
 
 
 
 
 
 
2514
  content: "\77";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2515
  }
2516
 
2517
  /* ****************************************************************************
45
  }
46
  .wpmud #wpbody {
47
  background: #F4F4F4;
48
+ -webkit-font-smoothing: antialiased !important;
49
  }
50
  .wpmud #wpbody * {
51
  box-sizing: border-box;
69
  display: block;
70
  margin: 0.5em auto;
71
  padding: 0;
72
+ line-height: 1em;
73
+ text-align: center;
74
+ color: #777771;
75
  }
76
  .wpmud h1,
77
  .wpmud h2,
355
  }
356
  .wpmud .box-footer {
357
  text-align: center;
358
+ margin-top: 32px;
359
+ font-size: 16px;
360
  }
361
 
362
  /* ****************************************************************************
994
  top: 0;
995
  padding: 0 24px;
996
  line-height: 60px;
997
+ font-size: 24px;
998
+ font-weight: 400;
999
+ color: #BABABA;
1000
+ cursor: pointer;
1001
  }
1002
  .wpmud .dev-overlay .title .close:hover {
1003
  color: #777771;
1298
  .wpmud .notice-dismiss:hover,
1299
  .wpmud .notice-dismiss:focus,
1300
  .wpmud .notice-dismiss:active {
1301
+ border: none;
1302
+ margin: 0;
1303
+ padding: 9px;
1304
+ background: none;
1305
+ color: #b4b9be;
1306
+ cursor: pointer;
1307
  }
1308
 
1309
  /* ****************************************************************************
1669
  }
1670
  .wpmud .select-list-container .list-results {
1671
  position: absolute;
1672
+ top: 41px;
1673
+ left: -9999px;
1674
+ right: -9999px;
1675
+ z-index: 1010;
1676
+ width: 0;
1677
+ border-top: 0;
1678
  background: #FFF;
1679
  border: 1px solid #ddd;
1680
  margin-left: -1px;
1810
  opacity: 0.8;
1811
 
1812
  font-family: 'WPMU-DEV-App-Icons';
1813
+ speak: none;
1814
+ font-style: normal;
1815
+ font-weight: normal;
1816
+ font-variant: normal;
1817
+ text-transform: none;
1818
+ line-height: 1;
1819
+ -webkit-font-smoothing: antialiased;
1820
+ -moz-osx-font-smoothing: grayscale;
1821
  }
1822
  .wpmud .listing li.circle:before {
1823
  content: "\68";
2186
  vertical-align: middle;
2187
  height: 30px;
2188
  line-height: 24px;
2189
+ color: #b6b6b6;
2190
+ cursor: default;
2191
+ font-weight: normal;
2192
  }
2193
  .wpmud .count.reply:before {
2194
+ content: '';
2195
+ position: absolute;
2196
+ bottom: -8px;
2197
+ right: 4px;
2198
+ border-width: 8px 0px 0px 12px;
2199
+ border-style: solid;
2200
+ border-color: #DDDDDD transparent;
2201
+ display: block;
2202
+ width: 0;
2203
  }
2204
  .wpmud .count.reply:after {
2205
+ content: '';
2206
+ position: absolute;
2207
+ bottom: -4px;
2208
+ right: 6px;
2209
+ border-width: 4px 0px 0px 6px;
2210
+ border-style: solid;
2211
+ border-color: #fff transparent;
2212
+ display: block;
2213
+ width: 0;
2214
  }
2215
  .wpmud .count.reply.mirror:before {
2216
+ left: 4px;
2217
+ border-width: 8px 12px 0px 0px;
2218
  }
2219
  .wpmud .count.reply.mirror:after {
2220
+ left: 6px;
2221
+ border-width: 4px 6px 0px 0px;
2222
  }
2223
  .wpmud .count.notification {
2224
+ background: #fecf2f;
2225
+ border-color: #fecf2f;
2226
+ color: #fff;
2227
  }
2228
  .wpmud .count.notification:before,
2229
  .wpmud .count.notification:after {
2230
+ border-color: #fecf2f transparent;
2231
  }
2232
 
2233
  /* ****************************************************************************
2293
  * 23. FONTAWESOME
2294
  */
2295
  @font-face {
2296
+ font-family: 'FontAwesomeWdv';
2297
+ src: url('font/fontawesome-webfont.eot');
2298
+ src: url('font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
2299
+ url('font/fontawesome-webfont.woff') format('woff'),
2300
+ url('font/fontawesome-webfont.ttf') format('truetype'),
2301
+ url('font/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),
2302
+ url('font/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');
2303
+ font-weight: normal;
2304
+ font-style: normal;
2305
  }
2306
  .wdv-icon:before{font-family:FontAwesomeWdv;font-weight:normal;font-style:normal;display:inline-block;text-decoration:inherit}a .wdv-icon{display:inline-block;text-decoration:inherit}.wdv-icon-large:before{vertical-align:top;font-size:1.3333333333333333em}.btn .wdv-icon{line-height:.9em}li .wdv-icon, .action_links .wdv-icon, .wdv-icon.wdv-icon-fw{display:inline-block;width:1.25em;text-align:center}li .wdv-icon-large.wdv-icon,li .wdv-icon-large.wdv-icon{width:1.875em}li.wdv-icon{margin-left:0;list-style-type:none}li.wdv-icon:before{text-indent:-2em;text-align:center}li.wdv-icon.wdv-icon-large:before{text-indent:-1.3333333333333333em}.wdv-icon-glass:before{content:"\f000"}.wdv-icon-music:before{content:"\f001"}.wdv-icon-search:before{content:"\f002"}.wdv-icon-envelope:before{content:"\f003"}.wdv-icon-heart:before{content:"\f004"}.wdv-icon-star:before{content:"\f005"}.wdv-icon-star-empty:before{content:"\f006"}.wdv-icon-user:before{content:"\f007"}.wdv-icon-film:before{content:"\f008"}.wdv-icon-th-large:before{content:"\f009"}.wdv-icon-th:before{content:"\f00a"}.wdv-icon-th-list:before{content:"\f00b"}.wdv-icon-ok:before{content:"\f00c"}.wdv-icon-remove:before{content:"\f00d"}.wdv-icon-zoom-in:before{content:"\f00e"}.wdv-icon-zoom-out:before{content:"\f010"}.wdv-icon-off:before{content:"\f011"}.wdv-icon-signal:before{content:"\f012"}.wdv-icon-cog:before{content:"\f013"}.wdv-icon-trash:before{content:"\f014"}.wdv-icon-home:before{content:"\f015"}.wdv-icon-file:before{content:"\f016"}.wdv-icon-time:before{content:"\f017"}.wdv-icon-road:before{content:"\f018"}.wdv-icon-download-alt:before{content:"\f019"}.wdv-icon-download:before{content:"\f01a"}.wdv-icon-upload:before{content:"\f01b"}.wdv-icon-inbox:before{content:"\f01c"}.wdv-icon-play-circle:before{content:"\f01d"}.wdv-icon-repeat:before{content:"\f01e"}.wdv-icon-refresh:before{content:"\f021"}.wdv-icon-list-alt:before{content:"\f022"}.wdv-icon-lock:before{content:"\f023"}.wdv-icon-flag:before{content:"\f024"}.wdv-icon-headphones:before{content:"\f025"}.wdv-icon-volume-off:before{content:"\f026"}.wdv-icon-volume-down:before{content:"\f027"}.wdv-icon-volume-up:before{content:"\f028"}.wdv-icon-qrcode:before{content:"\f029"}.wdv-icon-barcode:before{content:"\f02a"}.wdv-icon-tag:before{content:"\f02b"}.wdv-icon-tags:before{content:"\f02c"}.wdv-icon-book:before{content:"\f02d"}.wdv-icon-bookmark:before{content:"\f02e"}.wdv-icon-print:before{content:"\f02f"}.wdv-icon-camera:before{content:"\f030"}.wdv-icon-font:before{content:"\f031"}.wdv-icon-bold:before{content:"\f032"}.wdv-icon-italic:before{content:"\f033"}.wdv-icon-text-height:before{content:"\f034"}.wdv-icon-text-width:before{content:"\f035"}.wdv-icon-align-left:before{content:"\f036"}.wdv-icon-align-center:before{content:"\f037"}.wdv-icon-align-right:before{content:"\f038"}.wdv-icon-align-justify:before{content:"\f039"}.wdv-icon-list:before{content:"\f03a"}.wdv-icon-indent-left:before{content:"\f03b"}.wdv-icon-indent-right:before{content:"\f03c"}.wdv-icon-facetime-video:before{content:"\f03d"}.wdv-icon-picture:before{content:"\f03e"}.wdv-icon-pencil:before{content:"\f040"}.wdv-icon-map-marker:before{content:"\f041"}.wdv-icon-adjust:before{content:"\f042"}.wdv-icon-tint:before{content:"\f043"}.wdv-icon-edit:before{content:"\f044"}.wdv-icon-share:before{content:"\f045"}.wdv-icon-check:before{content:"\f046"}.wdv-icon-move:before{content:"\f047"}.wdv-icon-step-backward:before{content:"\f048"}.wdv-icon-fast-backward:before{content:"\f049"}.wdv-icon-backward:before{content:"\f04a"}.wdv-icon-play:before{content:"\f04b"}.wdv-icon-pause:before{content:"\f04c"}.wdv-icon-stop:before{content:"\f04d"}.wdv-icon-forward:before{content:"\f04e"}.wdv-icon-fast-forward:before{content:"\f050"}.wdv-icon-step-forward:before{content:"\f051"}.wdv-icon-eject:before{content:"\f052"}.wdv-icon-chevron-left:before{content:"\f053"}.wdv-icon-chevron-right:before{content:"\f054"}.wdv-icon-plus-sign:before{content:"\f055"}.wdv-icon-minus-sign:before{content:"\f056"}.wdv-icon-remove-sign:before{content:"\f057"}.wdv-icon-ok-sign:before{content:"\f058"}.wdv-icon-question-sign:before{content:"\f059"}.wdv-icon-info-sign:before{content:"\f05a"}.wdv-icon-screenshot:before{content:"\f05b"}.wdv-icon-remove-circle:before{content:"\f05c"}.wdv-icon-ok-circle:before{content:"\f05d"}.wdv-icon-ban-circle:before{content:"\f05e"}.wdv-icon-arrow-left:before{content:"\f060"}.wdv-icon-arrow-right:before{content:"\f061"}.wdv-icon-arrow-up:before{content:"\f062"}.wdv-icon-arrow-down:before{content:"\f063"}.wdv-icon-share-alt:before{content:"\f064"}.wdv-icon-resize-full:before{content:"\f065"}.wdv-icon-resize-small:before{content:"\f066"}.wdv-icon-plus:before{content:"\f067"}.wdv-icon-minus:before{content:"\f068"}.wdv-icon-asterisk:before{content:"\f069"}.wdv-icon-exclamation-sign:before{content:"\f06a"}.wdv-icon-gift:before{content:"\f06b"}.wdv-icon-leaf:before{content:"\f06c"}.wdv-icon-fire:before{content:"\f06d"}.wdv-icon-eye-open:before{content:"\f06e"}.wdv-icon-eye-close:before{content:"\f070"}.wdv-icon-warning-sign:before{content:"\f071"}.wdv-icon-plane:before{content:"\f072"}.wdv-icon-calendar:before{content:"\f073"}.wdv-icon-random:before{content:"\f074"}.wdv-icon-comment:before{content:"\f075"}.wdv-icon-magnet:before{content:"\f076"}.wdv-icon-chevron-up:before{content:"\f077"}.wdv-icon-chevron-down:before{content:"\f078"}.wdv-icon-retweet:before{content:"\f079"}.wdv-icon-shopping-cart:before{content:"\f07a"}.wdv-icon-folder-close:before{content:"\f07b"}.wdv-icon-folder-open:before{content:"\f07c"}.wdv-icon-resize-vertical:before{content:"\f07d"}.wdv-icon-resize-horizontal:before{content:"\f07e"}.wdv-icon-bar-chart:before{content:"\f080"}.wdv-icon-twitter-sign:before{content:"\f081"}.wdv-icon-facebook-sign:before{content:"\f082"}.wdv-icon-camera-retro:before{content:"\f083"}.wdv-icon-key:before{content:"\f084"}.wdv-icon-cogs:before{content:"\f085"}.wdv-icon-comments:before{content:"\f086"}.wdv-icon-thumbs-up:before{content:"\f087"}.wdv-icon-thumbs-down:before{content:"\f088"}.wdv-icon-star-half:before{content:"\f089"}.wdv-icon-heart-empty:before{content:"\f08a"}.wdv-icon-signout:before{content:"\f08b"}.wdv-icon-linkedin-sign:before{content:"\f08c"}.wdv-icon-pushpin:before{content:"\f08d"}.wdv-icon-external-link:before{content:"\f08e"}.wdv-icon-signin:before{content:"\f090"}.wdv-icon-trophy:before{content:"\f091"}.wdv-icon-github-sign:before{content:"\f092"}.wdv-icon-upload-alt:before{content:"\f093"}.wdv-icon-lemon:before{content:"\f094"}.wdv-icon-phone:before{content:"\f095"}.wdv-icon-check-empty:before{content:"\f096"}.wdv-icon-bookmark-empty:before{content:"\f097"}.wdv-icon-phone-sign:before{content:"\f098"}.wdv-icon-twitter:before{content:"\f099"}.wdv-icon-facebook:before{content:"\f09a"}.wdv-icon-github:before{content:"\f09b"}.wdv-icon-unlock:before{content:"\f09c"}.wdv-icon-credit-card:before{content:"\f09d"}.wdv-icon-rss:before{content:"\f09e"}.wdv-icon-hdd:before{content:"\f0a0"}.wdv-icon-bullhorn:before{content:"\f0a1"}.wdv-icon-bell:before{content:"\f0a2"}.wdv-icon-certificate:before{content:"\f0a3"}.wdv-icon-hand-right:before{content:"\f0a4"}.wdv-icon-hand-left:before{content:"\f0a5"}.wdv-icon-hand-up:before{content:"\f0a6"}.wdv-icon-hand-down:before{content:"\f0a7"}.wdv-icon-circle-arrow-left:before{content:"\f0a8"}.wdv-icon-circle-arrow-right:before{content:"\f0a9"}.wdv-icon-circle-arrow-up:before{content:"\f0aa"}.wdv-icon-circle-arrow-down:before{content:"\f0ab"}.wdv-icon-globe:before{content:"\f0ac"}.wdv-icon-wrench:before{content:"\f0ad"}.wdv-icon-tasks:before{content:"\f0ae"}.wdv-icon-filter:before{content:"\f0b0"}.wdv-icon-briefcase:before{content:"\f0b1"}.wdv-icon-fullscreen:before{content:"\f0b2"}.wdv-icon-group:before{content:"\f0c0"}.wdv-icon-link:before{content:"\f0c1"}.wdv-icon-cloud:before{content:"\f0c2"}.wdv-icon-beaker:before{content:"\f0c3"}.wdv-icon-cut:before{content:"\f0c4"}.wdv-icon-copy:before{content:"\f0c5"}.wdv-icon-paper-clip:before{content:"\f0c6"}.wdv-icon-save:before{content:"\f0c7"}.wdv-icon-sign-blank:before{content:"\f0c8"}.wdv-icon-reorder:before{content:"\f0c9"}.wdv-icon-list-ul:before{content:"\f0ca"}.wdv-icon-list-ol:before{content:"\f0cb"}.wdv-icon-strikethrough:before{content:"\f0cc"}.wdv-icon-underline:before{content:"\f0cd"}.wdv-icon-table:before{content:"\f0ce"}.wdv-icon-magic:before{content:"\f0d0"}.wdv-icon-truck:before{content:"\f0d1"}.wdv-icon-pinterest:before{content:"\f0d2"}.wdv-icon-pinterest-sign:before{content:"\f0d3"}.wdv-icon-google-plus-sign:before{content:"\f0d4"}.wdv-icon-google-plus:before{content:"\f0d5"}.wdv-icon-money:before{content:"\f0d6"}.wdv-icon-caret-down:before{content:"\f0d7"}.wdv-icon-caret-up:before{content:"\f0d8"}.wdv-icon-caret-left:before{content:"\f0d9"}.wdv-icon-caret-right:before{content:"\f0da"}.wdv-icon-columns:before{content:"\f0db"}.wdv-icon-sort:before{content:"\f0dc"}.wdv-icon-sort-down:before{content:"\f0dd"}.wdv-icon-sort-up:before{content:"\f0de"}.wdv-icon-envelope-alt:before{content:"\f0e0"}.wdv-icon-linkedin:before{content:"\f0e1"}.wdv-icon-undo:before{content:"\f0e2"}.wdv-icon-legal:before{content:"\f0e3"}.wdv-icon-dashboard:before{content:"\f0e4"}.wdv-icon-comment-alt:before{content:"\f0e5"}.wdv-icon-comments-alt:before{content:"\f0e6"}.wdv-icon-bolt:before{content:"\f0e7"}.wdv-icon-sitemap:before{content:"\f0e8"}.wdv-icon-umbrella:before{content:"\f0e9"}.wdv-icon-paste:before{content:"\f0ea"}.wdv-icon-user-md:before{content:"\f200"}
2307
 
2310
  */
2311
  @font-face {
2312
  font-family: 'WPMU-DEV-App-Icons';
2313
+ src: url('font/WPMU-DEV-Icon.eot?vzc9qz');
2314
+ src: url('font/WPMU-DEV-Icon.eot?vzc9qz#iefix') format('embedded-opentype'),
2315
+ url('font/WPMU-DEV-Icon.woff2?vzc9qz') format('woff2'),
2316
+ url('font/WPMU-DEV-Icon.ttf?vzc9qz') format('truetype'),
2317
+ url('font/WPMU-DEV-Icon.woff?vzc9qz') format('woff'),
2318
+ url('font/WPMU-DEV-Icon.svg?vzc9qz#WPMU-DEV-Icon') format('svg');
2319
  font-weight: normal;
2320
  font-style: normal;
2321
  }
2322
+ [class^="icon-"], [class*=" icon-"] {
2323
+ /* use !important to prevent issues with browser extensions that change fonts */
2324
+ font-family: 'WPMU-DEV-App-Icons' !important;
2325
+ speak: none;
2326
+ font-style: normal;
2327
+ font-weight: normal;
2328
+ font-variant: normal;
2329
+ text-transform: none;
2330
+ line-height: 1;
2331
+
2332
+ /* Better Font Rendering =========== */
2333
+ -webkit-font-smoothing: antialiased;
2334
+ -moz-osx-font-smoothing: grayscale;
2335
+ }
2336
  .dev-icon {
2337
  font-family: 'WPMU-DEV-App-Icons';
2338
  speak: none;
2345
  -webkit-font-smoothing: antialiased;
2346
  -moz-osx-font-smoothing: grayscale;
2347
  }
2348
+ .icon-fi-blog:before {
2349
+ content: "\e90d";
2350
+ color: #888;
2351
  }
2352
+ .icon-fi-jobs-pros-search:before {
2353
+ content: "\e90e";
2354
+ color: #888;
2355
+ }
2356
+ .icon-fi-security-thumb-print:before {
2357
+ content: "\e90f";
2358
+ color: #888;
2359
+ }
2360
+ .icon-fi-IP:before {
2361
+ content: "\e910";
2362
+ color: #888;
2363
+ }
2364
+ .icon-fi-timed-countdown:before {
2365
+ content: "\e911";
2366
+ color: #888;
2367
+ }
2368
+ .icon-fi-2factor-authentication-security:before {
2369
+ content: "\e912";
2370
+ color: #888;
2371
+ }
2372
+ .icon-fi-buddypress:before {
2373
+ content: "\e90c";
2374
+ color: #888;
2375
+ }
2376
+ .icon-fi-plug-disconnected:before {
2377
+ content: "\e90a";
2378
+ color: #888;
2379
+ }
2380
+ .icon-fi-plug-connected:before {
2381
+ content: "\e90b";
2382
+ color: #888;
2383
+ }
2384
+ .icon-fi-open-new-window:before {
2385
+ content: "\e909";
2386
+ color: #888;
2387
+ }
2388
+ .icon-fi-icon-shipper-anchor:before {
2389
+ content: "\e906";
2390
+ color: #888;
2391
+ }
2392
+ .icon-fi-icon-forminator2:before {
2393
+ content: "\e907";
2394
+ color: #888;
2395
+ }
2396
+ .icon-fi-icon-forminator1:before {
2397
+ content: "\e908";
2398
+ color: #888;
2399
+ }
2400
+ .icon-fi-cloud-migration:before {
2401
+ content: "\e905";
2402
+ color: #888;
2403
+ }
2404
+ .icon-fi-icon-performance:before {
2405
+ content: "\e903";
2406
+ color: #888;
2407
+ }
2408
+ .icon-fi-power-on-off:before {
2409
+ content: "\e904";
2410
+ color: #888;
2411
+ }
2412
+ .icon-fi-update-arrow:before {
2413
+ content: "\e902";
2414
+ color: #888;
2415
+ }
2416
+ .icon-fi-dashboard-settings:before {
2417
+ content: "\e901";
2418
+ color: #888;
2419
+ }
2420
+ .icon-fi-icon-wpmu-logo-line:before {
2421
+ content: "\203a";
2422
+ color: #888;
2423
+ }
2424
+ .icon-fi-icon-wpmu-logo-solid:before {
2425
+ content: "\2039";
2426
+ color: #888;
2427
+ }
2428
+ .icon-fi-star-line:before {
2429
+ content: "\cf";
2430
+ color: #888;
2431
+ }
2432
+ .icon-fi-notification-count:before {
2433
+ content: "\e900";
2434
+ color: #888;
2435
+ }
2436
+ .icon-fi-24-hour-support:before {
2437
+ content: "\c1";
2438
+ color: #888;
2439
+ }
2440
+ .icon-fi-speed-optimize:before {
2441
+ content: "\f8";
2442
+ color: #888;
2443
+ }
2444
+ .icon-fi-cloudflare:before {
2445
+ content: "\d0";
2446
+ color: #888;
2447
+ }
2448
+ .icon-fi-alert:before {
2449
+ content: "\58";
2450
+ color: #888;
2451
+ }
2452
+ .icon-fi-align-center:before {
2453
+ content: "\5e";
2454
+ color: #888;
2455
+ }
2456
+ .icon-fi-align-justify:before {
2457
+ content: "\23";
2458
+ color: #888;
2459
+ }
2460
+ .icon-fi-align-left:before {
2461
+ content: "\25";
2462
+ color: #888;
2463
+ }
2464
+ .icon-fi-align-right:before {
2465
+ content: "\26";
2466
+ color: #888;
2467
+ }
2468
+ .icon-fi-annotate:before {
2469
+ content: "\b4";
2470
+ color: #888;
2471
  }
2472
+ .icon-fi-arrow-up:before {
2473
+ content: "\d4";
2474
+ color: #888;
2475
+ }
2476
+ .icon-fi-arrow-right:before {
2477
+ content: "\af";
2478
+ color: #888;
2479
+ }
2480
+ .icon-fi-arrow-down:before {
2481
+ content: "\c2";
2482
+ color: #888;
2483
+ }
2484
+ .icon-fi-arrow-left:before {
2485
+ content: "\f8ff";
2486
+ color: #888;
2487
+ }
2488
+ .icon-fi-more:before {
2489
+ content: "\2026";
2490
+ color: #888;
2491
+ }
2492
+ .icon-fi-minus:before {
2493
+ content: "\2d";
2494
+ color: #888;
2495
+ }
2496
+ .icon-fi-plus:before {
2497
  content: "\3d";
2498
+ color: #888;
2499
+ }
2500
+ .icon-fi-arrow-up-carats:before {
2501
+ content: "\2dd";
2502
+ color: #888;
2503
+ }
2504
+ .icon-fi-arrow-down-carats:before {
2505
+ content: "\131";
2506
+ color: #888;
2507
+ }
2508
+ .icon-fi-arrow-left-carats:before {
2509
+ content: "\d3";
2510
+ color: #888;
2511
+ }
2512
+ .icon-fi-arrow-right-carats:before {
2513
+ content: "\2dc";
2514
+ color: #888;
2515
+ }
2516
+ .icon-fi-arrows-compress:before {
2517
+ content: "\2265";
2518
+ color: #888;
2519
+ }
2520
+ .icon-fi-arrows-expand:before {
2521
+ content: "\ac";
2522
+ color: #888;
2523
+ }
2524
+ .icon-fi-arrows-in:before {
2525
+ content: "\2264";
2526
+ color: #888;
2527
+ }
2528
+ .icon-fi-arrows-out:before {
2529
+ content: "\2da";
2530
+ color: #888;
2531
+ }
2532
+ .icon-fi-check:before {
2533
+ content: "\28";
2534
+ color: #888;
2535
+ }
2536
+ .icon-fi-close:before {
2537
+ content: "\29";
2538
+ color: #888;
2539
+ }
2540
+ .icon-fi-at-sign:before {
2541
+ content: "\40";
2542
+ color: #888;
2543
+ }
2544
+ .icon-fi-calendar:before {
2545
+ content: "\220f";
2546
+ color: #888;
2547
+ }
2548
+ .icon-fi-camera:before {
2549
+ content: "\d8";
2550
+ color: #888;
2551
  }
2552
+ .icon-fi-clipboard-notes:before {
2553
+ content: "\bf";
2554
+ color: #888;
2555
+ }
2556
+ .icon-fi-clock:before {
2557
+ content: "\2c";
2558
+ color: #888;
2559
+ }
2560
+ .icon-fi-cloud:before {
2561
+ content: "\2122";
2562
+ color: #888;
2563
+ }
2564
+ .icon-fi-download-cloud:before {
2565
+ content: "\a3";
2566
+ color: #888;
2567
+ }
2568
+ .icon-fi-upload-cloud:before {
2569
+ content: "\a2";
2570
+ color: #888;
2571
+ }
2572
+ .icon-fi-comment:before {
2573
+ content: "\a7";
2574
+ color: #888;
2575
+ }
2576
+ .icon-fi-comments:before {
2577
+ content: "\b6";
2578
+ color: #888;
2579
+ }
2580
+ .icon-fi-comment-3:before {
2581
+ content: "\aa";
2582
+ color: #888;
2583
+ }
2584
+ .icon-fi-compass:before {
2585
+ content: "\2c6";
2586
+ color: #888;
2587
+ }
2588
+ .icon-fi-credit-card:before {
2589
+ content: "\63";
2590
+ color: #888;
2591
+ }
2592
+ .icon-fi-crop:before {
2593
+ content: "\43";
2594
+ color: #888;
2595
+ }
2596
+ .icon-fi-crown:before {
2597
+ content: "\a1";
2598
+ color: #888;
2599
+ }
2600
+ .icon-fi-italic:before {
2601
+ content: "\7b";
2602
+ color: #888;
2603
+ }
2604
+ .icon-fi-bold:before {
2605
  content: "\42";
2606
+ color: #888;
2607
  }
2608
+ .icon-fi-underline:before {
2609
+ content: "\55";
2610
+ color: #888;
2611
  }
2612
+ .icon-fi-text-color:before {
2613
+ content: "\a8";
2614
+ color: #888;
2615
  }
2616
+ .icon-fi-style-type:before {
2617
+ content: "\3c";
2618
+ color: #888;
2619
  }
2620
+ .icon-fi-quote-2:before {
2621
+ content: "\27";
2622
+ color: #888;
2623
  }
2624
+ .icon-fi-quote:before {
2625
+ content: "\3b";
2626
+ color: #888;
2627
  }
2628
+ .icon-fi-paperclip:before {
2629
+ content: "\41";
2630
+ color: #888;
2631
  }
2632
+ .icon-fi-indent-less:before {
2633
+ content: "\201d";
2634
+ color: #888;
2635
  }
2636
+ .icon-fi-indent-more:before {
2637
+ content: "\2019";
2638
+ color: #888;
2639
  }
2640
+ .icon-fi-list-bullet:before {
2641
+ content: "\38";
2642
+ color: #888;
2643
  }
2644
+ .icon-fi-list-number:before {
2645
+ content: "\37";
2646
+ color: #888;
2647
+ }
2648
+ .icon-fi-list:before {
2649
+ content: "\60";
2650
+ color: #888;
2651
+ }
2652
+ .icon-fi-link:before {
2653
+ content: "\35";
2654
+ color: #888;
2655
+ }
2656
+ .icon-fi-unlink:before {
2657
+ content: "\36";
2658
+ color: #888;
2659
+ }
2660
+ .icon-fi-color-pick-eyedropper:before {
2661
+ content: "\a5";
2662
+ color: #888;
2663
+ }
2664
+ .icon-fi-wand-magic:before {
2665
+ content: "\5a";
2666
+ color: #888;
2667
+ }
2668
+ .icon-fi-layers:before {
2669
+ content: "\e6";
2670
+ color: #888;
2671
+ }
2672
+ .icon-fi-dislike:before {
2673
+ content: "\6b";
2674
+ color: #888;
2675
+ }
2676
+ .icon-fi-like:before {
2677
+ content: "\6a";
2678
+ color: #888;
2679
+ }
2680
+ .icon-fi-dollar:before {
2681
+ content: "\24";
2682
+ color: #888;
2683
+ }
2684
+ .icon-fi-download:before {
2685
+ content: "\e93b";
2686
+ color: #888;
2687
+ }
2688
+ .icon-fi-eye:before {
2689
+ content: "\65";
2690
+ color: #888;
2691
+ }
2692
+ .icon-fi-eye-hide:before {
2693
+ content: "\71";
2694
+ color: #888;
2695
  }
2696
+ .icon-fi-arrow-return-back:before {
2697
+ content: "\52";
2698
+ color: #888;
2699
+ }
2700
+ .icon-fi-first-aid:before {
2701
+ content: "\e93f";
2702
+ color: #888;
2703
+ }
2704
+ .icon-fi-folder:before {
2705
+ content: "\2d8";
2706
+ color: #888;
2707
+ }
2708
+ .icon-fi-map:before {
2709
+ content: "\34";
2710
+ color: #888;
2711
+ }
2712
+ .icon-fi-graph-bar:before {
2713
+ content: "\c7";
2714
+ color: #888;
2715
+ }
2716
+ .icon-fi-graph-bar_1:before {
2717
+ content: "\2db";
2718
+ color: #888;
2719
+ }
2720
+ .icon-fi-heart:before {
2721
  content: "\4b";
2722
+ color: #888;
2723
+ }
2724
+ .icon-fi-home:before {
2725
+ content: "\4a";
2726
+ color: #888;
2727
  }
2728
+ .icon-fi-info:before {
2729
+ content: "\49";
2730
+ color: #888;
2731
+ }
2732
+ .icon-fi-key:before {
2733
+ content: "\25ca";
2734
+ color: #888;
2735
+ }
2736
+ .icon-fi-laptop:before {
2737
+ content: "\ab";
2738
+ color: #888;
2739
+ }
2740
+ .icon-fi-lightbulb:before {
2741
  content: "\4c";
2742
+ color: #888;
2743
  }
2744
+ .icon-fi-asterisk:before {
2745
+ content: "\2a";
2746
+ color: #888;
2747
  }
2748
+ .icon-fi-lock:before {
2749
+ content: "\39";
2750
+ color: #888;
2751
  }
2752
+ .icon-fi-unlock:before {
2753
+ content: "\30";
2754
+ color: #888;
2755
  }
2756
+ .icon-fi-mail:before {
2757
+ content: "\6d";
2758
+ color: #888;
2759
  }
2760
+ .icon-fi-location-marker:before {
2761
+ content: "\6c";
2762
+ color: #888;
2763
  }
2764
+ .icon-fi-microphone-audio:before {
2765
+ content: "\2030";
2766
+ color: #888;
2767
+ }
2768
+ .icon-fi-mobile-signal:before {
2769
+ content: "\201b";
2770
+ color: #888;
2771
+ }
2772
+ .icon-fi-mobile:before {
2773
+ content: "\201c";
2774
+ color: #888;
2775
+ }
2776
+ .icon-fi-monitor:before {
2777
+ content: "\5c";
2778
+ color: #888;
2779
+ }
2780
+ .icon-fi-magnifying-glass-search:before {
2781
+ content: "\ba";
2782
+ color: #888;
2783
+ }
2784
+ .icon-fi-zoom-in:before {
2785
+ content: "\2260";
2786
+ color: #888;
2787
  }
2788
+ .icon-fi-zoom-out:before {
2789
+ content: "\2013";
2790
+ color: #888;
2791
+ }
2792
+ .icon-fi-magnifying-search-glass-love:before {
2793
+ content: "\2022";
2794
+ color: #888;
2795
+ }
2796
+ .icon-fi-price-tag:before {
2797
+ content: "\2c7";
2798
+ color: #888;
2799
+ }
2800
+ .icon-fi-bookmark:before {
2801
+ content: "\221a";
2802
+ color: #888;
2803
+ }
2804
+ .icon-fi-book-bookmark:before {
2805
+ content: "\2d9";
2806
+ color: #888;
2807
+ }
2808
+ .icon-fi-book:before {
2809
+ content: "\2206";
2810
+ color: #888;
2811
+ }
2812
+ .icon-fi-page-multiple:before {
2813
+ content: "\e7";
2814
+ color: #888;
2815
+ }
2816
+ .icon-fi-page-pdf:before {
2817
+ content: "\c6";
2818
+ color: #888;
2819
+ }
2820
+ .icon-fi-page-search:before {
2821
+ content: "\da";
2822
+ color: #888;
2823
+ }
2824
+ .icon-fi-page:before {
2825
+ content: "\d2";
2826
+ color: #888;
2827
+ }
2828
+ .icon-fi-paint-bucket:before {
2829
+ content: "\222b";
2830
+ color: #888;
2831
+ }
2832
+ .icon-fi-paypal:before {
2833
  content: "\59";
2834
+ color: #888;
2835
  }
2836
+ .icon-fi-pencil:before {
2837
+ content: "\2f";
2838
+ color: #888;
2839
  }
2840
+ .icon-fi-photo-picture:before {
2841
+ content: "\44";
2842
+ color: #888;
2843
  }
2844
+ .icon-fi-play:before {
2845
+ content: "\70";
2846
+ color: #888;
2847
  }
2848
+ .icon-fi-pause:before {
2849
+ content: "\6f";
2850
+ color: #888;
2851
  }
2852
+ .icon-fi-fast-forward:before {
2853
+ content: "\3e";
2854
+ color: #888;
2855
  }
2856
+ .icon-fi-refresh:before {
2857
+ content: "\45";
2858
+ color: #888;
2859
  }
2860
+ .icon-fi-update:before {
2861
+ content: "\ae";
2862
+ color: #888;
2863
  }
2864
+ .icon-fi-puzzle:before {
2865
+ content: "\7d";
2866
+ color: #888;
2867
  }
2868
+ .icon-fi-layout-grid:before {
2869
+ content: "\221e";
2870
+ color: #888;
2871
  }
2872
+ .icon-fi-sheild-badge:before {
2873
+ content: "\e96a";
2874
+ color: #888;
2875
  }
2876
+ .icon-fi-coffee-cup:before {
2877
+ content: "\e96b";
2878
+ color: #888;
2879
  }
2880
+ .icon-fi-skull:before {
2881
+ content: "\e96c";
2882
+ color: #888;
2883
  }
2884
+ .icon-fi-social-android:before {
2885
+ content: "\2e";
2886
+ color: #888;
2887
  }
2888
+ .icon-fi-social-apple:before {
2889
+ content: "\61";
2890
+ color: #888;
2891
  }
2892
+ .icon-fi-social-drive:before {
2893
+ content: "\76";
2894
+ color: #888;
2895
+ }
2896
+ .icon-fi-social-dropbox:before {
2897
+ content: "\64";
2898
+ color: #888;
2899
+ }
2900
+ .icon-fi-social-facebook:before {
2901
+ content: "\66";
2902
+ color: #888;
2903
  }
2904
+ .icon-fi-social-github:before {
2905
  content: "\68";
2906
+ color: #888;
2907
  }
2908
+ .icon-fi-social-google-plus:before {
2909
  content: "\67";
2910
+ color: #888;
2911
  }
2912
+ .icon-fi-social-linkedin:before {
2913
+ content: "\69";
2914
+ color: #888;
2915
+ }
2916
+ .icon-fi-social-twitter:before {
2917
+ content: "\74";
2918
+ color: #888;
2919
+ }
2920
+ .icon-fi-animation-video:before {
2921
+ content: "\46";
2922
+ color: #888;
2923
+ }
2924
+ .icon-fi-social-youtube:before {
2925
  content: "\79";
2926
+ color: #888;
2927
  }
2928
+ .icon-fi-white-label-video:before {
2929
+ content: "\75";
2930
+ color: #888;
2931
  }
2932
+ .icon-fi-star:before {
2933
+ content: "\53";
2934
+ color: #888;
2935
  }
2936
+ .icon-fi-tablet-landscape:before {
2937
+ content: "\5b";
2938
+ color: #888;
2939
+ }
2940
+ .icon-fi-tablet-portrait:before {
2941
+ content: "\5d";
2942
+ color: #888;
2943
+ }
2944
+ .icon-fi-thumbnails:before {
2945
+ content: "\47";
2946
+ color: #888;
2947
+ }
2948
+ .icon-fi-ticket:before {
2949
+ content: "\e97d";
2950
+ color: #888;
2951
+ }
2952
+ .icon-fi-profile-male:before {
2953
+ content: "\b5";
2954
+ color: #888;
2955
+ }
2956
+ .icon-fi-profile-female:before {
2957
+ content: "\192";
2958
+ color: #888;
2959
+ }
2960
+ .icon-fi-community-people:before {
2961
+ content: "\2018";
2962
+ color: #888;
2963
  }
2964
+ .icon-fi-trash:before {
2965
+ content: "\51";
2966
+ color: #888;
2967
+ }
2968
+ .icon-fi-notification:before {
2969
+ content: "\6e";
2970
+ color: #888;
2971
+ }
2972
+ .icon-fi-user-hero-points-trophy:before {
2973
  content: "\31";
2974
+ color: #888;
2975
  }
2976
+ .icon-fi-megaphone:before {
2977
+ content: "\c5";
2978
+ color: #888;
2979
+ }
2980
+ .icon-fi-flag:before {
2981
+ content: "\7c";
2982
+ color: #888;
2983
+ }
2984
+ .icon-fi-stopwatch:before {
2985
+ content: "\e986";
2986
+ color: #888;
2987
+ }
2988
+ .icon-fi-shopping-cart:before {
2989
+ content: "\cd";
2990
+ color: #888;
2991
  }
2992
+ .icon-fi-share:before {
2993
+ content: "\73";
2994
+ color: #888;
2995
+ }
2996
+ .icon-fi-help-support:before {
2997
  content: "\48";
2998
+ color: #888;
2999
  }
3000
+ .icon-fi-web-globe-world:before {
3001
+ content: "\57";
3002
+ color: #888;
3003
  }
3004
+ .icon-fi-widget-settings-config:before {
3005
+ content: "\78";
3006
+ color: #888;
3007
  }
3008
+ .icon-fi-wrench-tool:before {
3009
+ content: "\2044";
3010
+ color: #888;
3011
  }
3012
+ .icon-fi-settings-slider-control:before {
3013
+ content: "\153";
3014
+ color: #888;
3015
+ }
3016
+ .icon-fi-filter:before {
3017
+ content: "\7a";
3018
+ color: #888;
3019
+ }
3020
+ .icon-fi-reply:before {
3021
+ content: "\72";
3022
+ color: #888;
3023
+ }
3024
+ .icon-fi-finger-point:before {
3025
+ content: "\2248";
3026
+ color: #888;
3027
+ }
3028
+ .icon-fi-finger-swipe:before {
3029
+ content: "\2203";
3030
+ color: #888;
3031
+ }
3032
+ .icon-fi-mouse-scroll:before {
3033
+ content: "\df";
3034
+ color: #888;
3035
+ }
3036
+ .icon-fi-plugin-2:before {
3037
+ content: "\4f";
3038
+ color: #888;
3039
+ }
3040
+ .icon-fi-brush:before {
3041
+ content: "\7e";
3042
+ color: #888;
3043
  }
3044
+ .icon-fi-themes:before {
3045
  content: "\54";
3046
+ color: #888;
3047
  }
3048
+ .icon-fi-plugins:before {
3049
+ content: "\50";
3050
+ color: #888;
3051
+ }
3052
+ .icon-fi-question:before {
3053
+ content: "\3f";
3054
+ color: #888;
3055
+ }
3056
+ .icon-fi-warning-alert:before {
3057
+ content: "\21";
3058
+ color: #888;
3059
+ }
3060
+ .icon-fi-check-tick:before {
3061
+ content: "\5f";
3062
+ color: #888;
3063
  }
3064
+ .icon-fi-cross-close:before {
3065
+ content: "\2b";
3066
+ color: #888;
3067
+ }
3068
+ .icon-fi-user-reputation-points:before {
3069
  content: "\32";
3070
+ color: #888;
3071
  }
3072
+ .icon-fi-user-star-level-up:before {
3073
+ content: "\33";
3074
+ color: #888;
3075
  }
3076
+ .icon-fi-icon-devman:before {
3077
+ content: "\20ac";
3078
+ color: #888;
3079
  }
3080
+ .icon-fi-icon-defender:before {
3081
+ content: "\b7";
3082
+ color: #888;
3083
  }
3084
+ .icon-fi-icon-hub:before {
3085
+ content: "\fb02";
3086
+ color: #888;
3087
  }
3088
+ .icon-fi-icon-hummingbird:before {
3089
+ content: "\b0";
3090
+ color: #888;
3091
  }
3092
+ .icon-fi-icon-hustle:before {
3093
+ content: "\2014";
3094
+ color: #888;
3095
+ }
3096
+ .icon-fi-icon-smart-crawl:before {
3097
+ content: "\2202";
3098
+ color: #888;
3099
+ }
3100
+ .icon-fi-icon-smush:before {
3101
+ content: "\2021";
3102
+ color: #888;
3103
+ }
3104
+ .icon-fi-icon-snapshot:before {
3105
+ content: "\fb01";
3106
+ color: #888;
3107
+ }
3108
+ .icon-fi-icon-upfront:before {
3109
+ content: "\201a";
3110
+ color: #888;
3111
+ }
3112
+ .icon-fi-icon-uptime:before {
3113
+ content: "\b1";
3114
+ color: #888;
3115
  }
3116
+ .icon-fi-icon-pulse:before {
3117
+ content: "\201e";
3118
+ color: #888;
3119
+ }
3120
+ .icon-fi-icon-automate:before {
3121
+ content: "\152";
3122
+ color: #888;
3123
+ }
3124
+ .icon-fi-academy:before {
3125
+ content: "\3c0";
3126
+ color: #888;
3127
+ }
3128
+ .icon-fi-wordpress:before {
3129
  content: "\77";
3130
+ color: #888;
3131
+ }
3132
+ .icon-fi-infinity:before {
3133
+ content: "\56";
3134
+ color: #888;
3135
+ }
3136
+ .icon-fi-audio-sound:before {
3137
+ content: "\e9ae";
3138
+ color: #888;
3139
+ }
3140
+ .icon-fi-sitemap:before {
3141
+ content: "\b8";
3142
+ color: #888;
3143
+ }
3144
+ .icon-fi-google-analytics:before {
3145
+ content: "\e5";
3146
+ color: #888;
3147
+ }
3148
+ .icon-fi-progress:before {
3149
+ content: "\e9b1";
3150
+ color: #888;
3151
+ }
3152
+ .icon-fi-dashboard:before {
3153
+ content: "\e9b2";
3154
+ color: #888;
3155
+ }
3156
+ .icon-fi-ab-testing:before {
3157
+ content: "\bb";
3158
+ color: #888;
3159
+ }
3160
+ .icon-fi-testing-bottle-beaker:before {
3161
+ content: "\e9b4";
3162
+ color: #888;
3163
+ }
3164
+ .icon-fi-archive:before {
3165
+ content: "\62";
3166
+ color: #888;
3167
+ }
3168
+ .icon-fi-zip:before {
3169
+ content: "\3a9";
3170
+ color: #888;
3171
+ }
3172
+ .icon-fi-arrow-location:before {
3173
+ content: "\4d";
3174
+ color: #888;
3175
+ }
3176
+ .icon-fi-arrow-pointer-cursor:before {
3177
+ content: "\4e";
3178
+ color: #888;
3179
+ }
3180
+ .icon-fi-code:before {
3181
+ content: "\3a";
3182
+ color: #888;
3183
+ }
3184
+ .icon-fi-news-paper:before {
3185
+ content: "\2211";
3186
+ color: #888;
3187
+ }
3188
+ .icon-fi-gallery-slider:before {
3189
+ content: "\f7";
3190
+ color: #888;
3191
+ }
3192
+ .icon-fi-layout:before {
3193
+ content: "\a9";
3194
+ color: #888;
3195
+ }
3196
+ .icon-fi-storage-server-data:before {
3197
+ content: "\ce";
3198
+ color: #888;
3199
+ }
3200
+ .icon-fi-loader:before {
3201
+ content: "\e9be";
3202
+ color: #888;
3203
+ }
3204
+ .icon-fi-rocket-launch:before {
3205
+ content: "\e9bf";
3206
+ color: #888;
3207
+ }
3208
+ .icon-fi-target:before {
3209
+ content: "\2020";
3210
+ color: #888;
3211
  }
3212
 
3213
  /* ****************************************************************************
languages/wp-smushit.pot CHANGED
@@ -2,8 +2,8 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WP Smush\n"
5
- "POT-Creation-Date: 2017-10-04 09:34+0530\n"
6
- "PO-Revision-Date: 2017-10-04 09:34+0530\n"
7
  "Last-Translator: Umesh <umeshsingla05@gmail.com>\n"
8
  "Language-Team: Umesh <umeshsingla05@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
@@ -32,14 +32,14 @@ msgid "Oops, we could not do this..."
32
  msgstr ""
33
 
34
  #: assets/shared-ui/plugin-ui.php:272 extras/free-dashboard/module.php:395
35
- #: extras/free-dashboard/module.php:434 lib/class-wp-smush-ui.php:1000
36
  msgid "Saving"
37
  msgstr ""
38
 
39
  #: assets/shared-ui/plugin-ui.php:301
40
  #: extras/dash-notice/wpmudev-dash-notification.php:248
41
  #: extras/dash-notice/wpmudev-dash-notification.php:289
42
- #: lib/class-wp-smush-ui.php:1000
43
  msgid "Dismiss"
44
  msgstr ""
45
 
@@ -180,87 +180,87 @@ msgstr ""
180
  msgid "Rate %s"
181
  msgstr ""
182
 
183
- #: lib/class-wp-smush-admin.php:225
184
  msgid "Use network settings for all the sub-sites."
185
  msgstr ""
186
 
187
- #: lib/class-wp-smush-admin.php:226
188
  msgid "Multisite Control"
189
  msgstr ""
190
 
191
- #: lib/class-wp-smush-admin.php:227
192
  msgid ""
193
  "Choose whether you want to use network settings for all sub-sites or whether "
194
  "sub-site admins can control Smush’s settings."
195
  msgstr ""
196
 
197
- #: lib/class-wp-smush-admin.php:230
198
  msgid "Automatically smush my images on upload"
199
  msgstr ""
200
 
201
- #: lib/class-wp-smush-admin.php:231
202
  msgid "Automatic Smush"
203
  msgstr ""
204
 
205
- #: lib/class-wp-smush-admin.php:232
206
  msgid ""
207
  "When you upload images to your site, Smush will automatically optimize them "
208
  "for you."
209
  msgstr ""
210
 
211
- #: lib/class-wp-smush-admin.php:235
212
  msgid "Super-smush my images"
213
  msgstr ""
214
 
215
- #: lib/class-wp-smush-admin.php:236
216
  msgid "Super-smush"
217
  msgstr ""
218
 
219
- #: lib/class-wp-smush-admin.php:237
220
  msgid ""
221
  "Compress images up to 2x more than regular smush with almost no visible drop "
222
  "in quality."
223
  msgstr ""
224
 
225
- #: lib/class-wp-smush-admin.php:240
226
  msgid "Smush my original full-size images"
227
  msgstr ""
228
 
229
- #: lib/class-wp-smush-admin.php:241 lib/class-wp-smush-admin.php:251
230
- #: lib/class-wp-smush-admin.php:256
231
  msgid "Full size images"
232
  msgstr ""
233
 
234
- #: lib/class-wp-smush-admin.php:242
235
  msgid ""
236
  "Every time you upload an image to your site, WordPress generates a resized "
237
- "version of that image for every image size that your theme has registered. "
238
- "This means there are multiple versions of your images in your media library. "
239
- "By default, Smush only compresses these generated image. Activate this "
240
- "setting to also smush your original images. Note: Activating this setting "
241
- "doesn’t usually improve page speed."
242
  msgstr ""
243
 
244
- #: lib/class-wp-smush-admin.php:245
245
  msgid "Preserve my image EXIF data"
246
  msgstr ""
247
 
248
- #: lib/class-wp-smush-admin.php:246
249
  msgid "EXIF data"
250
  msgstr ""
251
 
252
- #: lib/class-wp-smush-admin.php:247
253
  msgid ""
254
  "EXIF data stores camera settings, focal length, date, time and location "
255
  "information in image files. EXIF data makes image files larger but if you "
256
  "are a photographer you may want to preserve this information."
257
  msgstr ""
258
 
259
- #: lib/class-wp-smush-admin.php:250
260
  msgid "Resize my full size images"
261
  msgstr ""
262
 
263
- #: lib/class-wp-smush-admin.php:252
264
  msgid ""
265
  "Set a maximum height and width for all images uploaded to your site so that "
266
  "any unnecessarily large images are automatically resized before they are "
@@ -268,374 +268,392 @@ msgid ""
268
  "using Directory Smush feature."
269
  msgstr ""
270
 
271
- #: lib/class-wp-smush-admin.php:255
272
  msgid "Make a copy of my full size images"
273
  msgstr ""
274
 
275
- #: lib/class-wp-smush-admin.php:257
276
  msgid ""
277
  "Save your original full-size images separately so you can restore them at "
278
  "any point. Note: Keeping a copy of your original files can significantly "
279
  "increase the size of your uploads folder by nearly twice as much."
280
  msgstr ""
281
 
282
- #: lib/class-wp-smush-admin.php:260
283
  msgid "Auto-convert PNGs to JPEGs (lossy)"
284
  msgstr ""
285
 
286
- #: lib/class-wp-smush-admin.php:261
287
  msgid "PNG to JPEG conversion"
288
  msgstr ""
289
 
290
- #: lib/class-wp-smush-admin.php:262
291
  msgid ""
292
  "When you compress a PNG file, Smush will check if converting the file to "
293
  "JPEG will further reduce its size."
294
  msgstr ""
295
 
296
- #. Plugin Name of the plugin/theme
297
- #: lib/class-wp-smush-admin.php:292 lib/class-wp-smush-ui.php:928
298
- #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:71
299
- #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:90
300
- #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:92
301
- msgid "WP Smush"
302
- msgstr ""
303
-
304
- #: lib/class-wp-smush-admin.php:424 lib/class-wp-smush.php:1069
305
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:159
306
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:274
307
  msgid "Super-Smush"
308
  msgstr ""
309
 
310
- #: lib/class-wp-smush-admin.php:425
311
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:160
312
  msgid "Smush Now"
313
  msgstr ""
314
 
315
- #: lib/class-wp-smush-admin.php:426
316
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:161
317
  msgid "{{errors}} image(s) were skipped due to an error."
318
  msgstr ""
319
 
320
- #: lib/class-wp-smush-admin.php:427
321
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:162
322
  msgid "All images are fully optimized."
323
  msgstr ""
324
 
325
- #: lib/class-wp-smush-admin.php:428
326
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:163
327
  msgid "Restoring image.."
328
  msgstr ""
329
 
330
- #: lib/class-wp-smush-admin.php:429
331
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:164
332
  msgid "Smushing image.."
333
  msgstr ""
334
 
335
- #: lib/class-wp-smush-admin.php:430
336
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:165
337
  msgid "Checking images.."
338
  msgstr ""
339
 
340
- #: lib/class-wp-smush-admin.php:431
341
  msgid ""
342
  "We successfully verified your membership, all the Pro features should work "
343
  "completely. "
344
  msgstr ""
345
 
346
- #: lib/class-wp-smush-admin.php:432
347
  msgid "Your membership couldn't be verified."
348
  msgstr ""
349
 
350
- #: lib/class-wp-smush-admin.php:433
351
  msgid "Missing file path."
352
  msgstr ""
353
 
354
- #: lib/class-wp-smush-admin.php:435
355
  msgid "image could not be smushed."
356
  msgstr ""
357
 
358
- #: lib/class-wp-smush-admin.php:436
359
  msgid "images could not be smushed."
360
  msgstr ""
361
 
362
- #: lib/class-wp-smush-admin.php:437 lib/class-wp-smush.php:985
363
- #: lib/class-wp-smush.php:989
364
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:193
365
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:196
366
  msgid "Already Optimized"
367
  msgstr ""
368
 
369
- #: lib/class-wp-smush-admin.php:438
370
  msgid "Ajax Error"
371
  msgstr ""
372
 
373
- #: lib/class-wp-smush-admin.php:439 lib/class-wp-smush-admin.php:440
374
  msgid "All Done!"
375
  msgstr ""
376
 
377
- #: lib/class-wp-smush-admin.php:441 lib/class-wp-smush-ui.php:72
378
  msgid "QUICK SETUP"
379
  msgstr ""
380
 
381
- #: lib/class-wp-smush-admin.php:441 lib/class-wp-smush-ui.php:875
382
  msgid "Skip"
383
  msgstr ""
384
 
385
- #: lib/class-wp-smush-admin.php:717
 
 
 
 
 
 
 
 
 
 
386
  msgid ""
387
- "Skipped due to a timeout error, You can increase the request timeout to make "
388
- "sure Smush has enough time to process larger files. "
389
- "`define('WP_SMUSH_API_TIMEOUT', 150);`"
 
 
 
 
390
  msgstr ""
391
 
392
- #: lib/class-wp-smush-admin.php:771 lib/class-wp-smush-nextgen.php:438
 
 
 
 
 
 
 
 
393
  msgid "You don't have permission to work with uploaded files."
394
  msgstr ""
395
 
396
- #: lib/class-wp-smush-admin.php:775 lib/class-wp-smush-nextgen.php:442
397
  msgid "No attachment ID was provided."
398
  msgstr ""
399
 
400
- #: lib/class-wp-smush-admin.php:787
401
  msgid "Attachment Skipped - Check `wp_smush_image` filter."
402
  msgstr ""
403
 
404
- #: lib/class-wp-smush-admin.php:976
405
  #, php-format
406
  msgid "<strong>%d of %d images</strong> were sent for smushing:"
407
  msgstr ""
408
 
409
- #: lib/class-wp-smush-admin.php:1165 lib/class-wp-smush.php:1075
410
  msgid "Smushing in progress.."
411
  msgstr ""
412
 
413
- #: lib/class-wp-smush-admin.php:1171 lib/class-wp-smush.php:1094
414
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:269
415
  msgid "Smush Now!"
416
  msgstr ""
417
 
418
- #: lib/class-wp-smush-admin.php:1192
419
  msgid "Settings"
420
  msgstr ""
421
 
422
- #: lib/class-wp-smush-admin.php:1355
423
  msgid "Image not smushed, fields empty."
424
  msgstr ""
425
 
426
- #: lib/class-wp-smush-admin.php:1362 lib/class-wp-smush-nextgen.php:625
427
  msgid ""
428
  "Image couldn't be smushed as the nonce verification failed, try reloading "
429
  "the page."
430
  msgstr ""
431
 
432
- #: lib/class-wp-smush-admin.php:1379
433
- msgid "Unable to smush image"
434
- msgstr ""
435
-
436
- #: lib/class-wp-smush-admin.php:1404
437
  msgid ""
438
  "We haven’t found any images in your media library yet so there’s no smushing "
439
  "to be done! Once you upload images, reload this page and start playing!"
440
  msgstr ""
441
 
442
- #: lib/class-wp-smush-admin.php:1419
443
  msgid "Yay! All images are optimized as per your current settings."
444
  msgstr ""
445
 
446
- #: lib/class-wp-smush-admin.php:1622 lib/class-wp-smush-ui.php:902
447
  #, php-format
448
  msgid "You have images that need smushing. %sBulk smush now!%s"
449
  msgstr ""
450
 
451
- #: lib/class-wp-smush-admin.php:1997
452
  msgid "Review your setting now."
453
  msgstr ""
454
 
455
- #: lib/class-wp-smush-admin.php:1998 lib/class-wp-smush-dir.php:270
456
- #: lib/class-wp-smush-ui.php:789 lib/class-wp-smush-ui.php:928
457
  msgid "WP Smush Pro"
458
  msgstr ""
459
 
460
- #: lib/class-wp-smush-admin.php:1999
461
  msgid ""
462
  "Welcome to the newest version of WP Smush! In this update we've added the "
463
  "ability to bulk smush images in directories outside your uploads folder."
464
  msgstr ""
465
 
466
- #: lib/class-wp-smush-admin.php:2002
467
  #, php-format
468
  msgid ""
469
  " And as a multisite user, you can manage %sSmush settings%s globally across "
470
  "all sites!"
471
  msgstr ""
472
 
473
- #: lib/class-wp-smush-admin.php:2005
474
  #, php-format
475
  msgid " %sFind out more here >>%s"
476
  msgstr ""
477
 
478
- #: lib/class-wp-smush-backup.php:148 lib/class-wp-smush-nextgen.php:525
 
 
 
 
479
  msgid "Error in processing restore action, Fields empty."
480
  msgstr ""
481
 
482
- #: lib/class-wp-smush-backup.php:155 lib/class-wp-smush-nextgen.php:532
483
  msgid "Image not restored, Nonce verification failed."
484
  msgstr ""
485
 
486
- #: lib/class-wp-smush-backup.php:282 lib/class-wp-smush-nextgen.php:607
487
  msgid "Unable to restore image"
488
  msgstr ""
489
 
490
- #: lib/class-wp-smush-dir.php:88
491
  msgid "Directory-smush savings"
492
  msgstr ""
493
 
494
- #: lib/class-wp-smush-dir.php:90
495
  msgid "Updating Stats"
496
  msgstr ""
497
 
498
- #: lib/class-wp-smush-dir.php:100
499
  msgid "Smush images that aren't located in your uploads folder."
500
  msgstr ""
501
 
502
- #: lib/class-wp-smush-dir.php:101
 
 
 
 
503
  msgid "Choose directory"
504
  msgstr ""
505
 
506
- #: lib/class-wp-smush-dir.php:215
507
  msgid "RESUME LAST SCAN"
508
  msgstr ""
509
 
510
- #: lib/class-wp-smush-dir.php:246
511
  msgid "DIRECTORY SMUSH"
512
  msgstr ""
513
 
514
- #: lib/class-wp-smush-dir.php:251
515
  msgid ""
516
  "In addition to smushing your media uploads, you may want to also smush "
517
  "images living outside your uploads directory. Simply add any directories you "
518
  "wish to smush and bulk smush away!"
519
  msgstr ""
520
 
521
- #: lib/class-wp-smush-dir.php:264
522
  msgid ""
523
  "All images for the selected directory are smushed and up to date. Awesome!"
524
  msgstr ""
525
 
526
- #: lib/class-wp-smush-dir.php:267
527
  #, php-format
528
  msgid ""
529
  "%s/%s image(s) were successfully smushed, however %s image(s) could not be "
530
  "smushed due to an error."
531
  msgstr ""
532
 
533
- #: lib/class-wp-smush-dir.php:270
534
  #, php-format
535
  msgid ""
536
  " %sUpgrade to pro%s to bulk smush all your directory images with one click. "
537
  "Free users can smush 50 images with each click."
538
  msgstr ""
539
 
540
- #: lib/class-wp-smush-dir.php:274 lib/class-wp-smush-ui.php:143
541
- #: lib/class-wp-smush-ui.php:770
542
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:404
543
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:445
544
  msgid "BULK SMUSH"
545
  msgstr ""
546
 
547
- #: lib/class-wp-smush-dir.php:276
548
  msgid "Click to stop the directory smushing process."
549
  msgstr ""
550
 
551
- #: lib/class-wp-smush-dir.php:277 lib/class-wp-smush-ui.php:837
552
  msgid "CANCEL"
553
  msgstr ""
554
 
555
- #: lib/class-wp-smush-dir.php:285
556
  msgid "CHOOSE DIRECTORY"
557
  msgstr ""
558
 
559
- #: lib/class-wp-smush-dir.php:294
560
- msgid "Directory list"
561
- msgstr ""
562
-
563
- #: lib/class-wp-smush-dir.php:297
564
- msgid "Choose the folder you wish to smush."
565
- msgstr ""
566
-
567
- #: lib/class-wp-smush-dir.php:301
568
- msgid ""
569
- "Smush will also include any images in sub folders of your selected folder."
570
- msgstr ""
571
-
572
- #: lib/class-wp-smush-dir.php:304
573
- msgid "ADD DIRECTORY"
574
- msgstr ""
575
-
576
- #: lib/class-wp-smush-dir.php:471
577
  msgid "Exclude directory from Smush List"
578
  msgstr ""
579
 
580
- #: lib/class-wp-smush-dir.php:610
581
  msgid "We could not find any images in the selected directory."
582
  msgstr ""
583
 
584
- #: lib/class-wp-smush-dir.php:931
585
  #, php-format
586
  msgid "%d images"
587
  msgstr ""
588
 
589
- #: lib/class-wp-smush-dir.php:964
590
  msgid "Waiting.."
591
  msgstr ""
592
 
593
- #: lib/class-wp-smush-dir.php:1086
594
  msgid "Incorrect image id"
595
  msgstr ""
596
 
597
- #: lib/class-wp-smush-dir.php:1120
598
  msgid "Could not find image id in last scanned images"
599
  msgstr ""
600
 
601
- #: lib/class-wp-smush-dir.php:1133
602
  msgid "Image couldn't be optimized"
603
  msgstr ""
604
 
605
- #: lib/class-wp-smush-dir.php:1177 lib/class-wp-smush-dir.php:1310
606
  #, php-format
607
  msgid "You've smushed %d images in total."
608
  msgstr ""
609
 
610
- #: lib/class-wp-smush-dir.php:1254
611
  msgid ""
612
  "We were unable to retrieve the image list from last scan, please continue "
613
- "with a latest scan"
 
 
 
 
 
 
 
 
 
 
 
 
 
614
  msgstr ""
615
 
616
- #: lib/class-wp-smush-nextgen.php:71
 
 
 
 
617
  msgid "Enable NextGen Gallery integration"
618
  msgstr ""
619
 
620
- #: lib/class-wp-smush-nextgen.php:72
621
  msgid "NextGen Gallery"
622
  msgstr ""
623
 
624
- #: lib/class-wp-smush-nextgen.php:73
625
  msgid "Allow smushing images directly through NextGen Gallery settings."
626
  msgstr ""
627
 
628
- #: lib/class-wp-smush-nextgen.php:379
629
  msgid ""
630
  "We couldn't find the metadata for the image, possibly the image has been "
631
  "deleted."
632
  msgstr ""
633
 
634
- #: lib/class-wp-smush-nextgen.php:618
635
  msgid "We couldn't process the image, fields empty."
636
  msgstr ""
637
 
638
- #: lib/class-wp-smush-nextgen.php:642
639
  #, php-format
640
  msgid "Unable to smush image, %s"
641
  msgstr ""
@@ -652,21 +670,21 @@ msgstr ""
652
  #, php-format
653
  msgid ""
654
  "Storing your image on S3 buckets using %sWP Offload S3%s? Smush can detect "
655
- "and smush those assets for you, including when you\\re removing files from "
656
  "your host server."
657
  msgstr ""
658
 
659
  #: lib/class-wp-smush-s3.php:113
660
  #, php-format
661
  msgid ""
662
- "We are having trouble interacting with WP S3 Offload, make sure the plugin "
663
  "is activated. Or you can %sreport a bug%s."
664
  msgstr ""
665
 
666
  #: lib/class-wp-smush-s3.php:120
667
  #, php-format
668
  msgid ""
669
- "It seems you haven't finished setting up WP S3 Offload yet. %sConfigure%s it "
670
  "now to enable Amazon S3 support."
671
  msgstr ""
672
 
@@ -677,7 +695,7 @@ msgstr ""
677
  #: lib/class-wp-smush-s3.php:178
678
  #, php-format
679
  msgid ""
680
- "We can see you have WP S3 Offload installed with the <strong>Remove Files "
681
  "From Server</strong> option activated. If you want to optimize your S3 "
682
  "images you'll need to enable the <a href='%s'><strong>Amazon S3 Support</"
683
  "strong></a> feature in Smush's settings."
@@ -686,7 +704,7 @@ msgstr ""
686
  #: lib/class-wp-smush-s3.php:181
687
  #, php-format
688
  msgid ""
689
- "We can see you have WP S3 Offload installed with the <strong>Remove Files "
690
  "From Server</strong> option activated. If you want to optimize your S3 "
691
  "images you'll need to <a href='%s'><strong>upgrade to Smush Pro</strong></a>"
692
  msgstr ""
@@ -724,7 +742,7 @@ msgstr ""
724
  #: lib/class-wp-smush-ui.php:73
725
  msgid ""
726
  "Welcome to Smush - Winner of Torque Plugin Madness 2017! Let's quickly set "
727
- "up the basics for you, then you can fine tweak each setting as you go - our "
728
  "recommendations are on by default."
729
  msgstr ""
730
 
@@ -846,16 +864,20 @@ msgstr ""
846
  msgid "Save a ton of space by not storing over-sized images on your server."
847
  msgstr ""
848
 
849
- #: lib/class-wp-smush-ui.php:698
 
 
 
 
850
  msgid "BOOST YOUR PERFORMANCE - HUMMINGBIRD"
851
  msgstr ""
852
 
853
- #: lib/class-wp-smush-ui.php:736
854
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:389
855
  msgid "No attachments found - Upload some images"
856
  msgstr ""
857
 
858
- #: lib/class-wp-smush-ui.php:738
859
  #, php-format
860
  msgid ""
861
  "We haven’t found any images in your %smedia library%s yet so there’s no "
@@ -863,50 +885,50 @@ msgid ""
863
  "playing!"
864
  msgstr ""
865
 
866
- #: lib/class-wp-smush-ui.php:741
867
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:394
868
  msgid "UPLOAD IMAGES"
869
  msgstr ""
870
 
871
- #: lib/class-wp-smush-ui.php:746
872
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:399
873
  msgid "All images are smushed and up to date. Awesome!"
874
  msgstr ""
875
 
876
- #: lib/class-wp-smush-ui.php:750
877
  msgid "Still having trouble with PageSpeed tests? Give these a go…"
878
  msgstr ""
879
 
880
- #: lib/class-wp-smush-ui.php:753
881
  #, php-format
882
  msgid "Upgrade to Smush Pro for advanced lossy compression. %sTry pro free%s."
883
  msgstr ""
884
 
885
- #: lib/class-wp-smush-ui.php:755
886
  #, php-format
887
  msgid ""
888
  "Enable %sSuper-smush%s for advanced lossy compression to optimise images "
889
  "further with almost no visible drop in quality."
890
  msgstr ""
891
 
892
- #: lib/class-wp-smush-ui.php:757
893
  #, php-format
894
  msgid ""
895
  "Make sure your images are the right size for your theme. %sLearn more%s."
896
  msgstr ""
897
 
898
- #: lib/class-wp-smush-ui.php:760
899
  #, php-format
900
  msgid ""
901
  "Enable %sResize Original Images%s to scale big images down to a reasonable "
902
  "size and save a ton of space."
903
  msgstr ""
904
 
905
- #: lib/class-wp-smush-ui.php:764
906
  msgid "DISMISS"
907
  msgstr ""
908
 
909
- #: lib/class-wp-smush-ui.php:787
910
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:410
911
  #, php-format
912
  msgid "%s, you have %s%s%d%s attachment%s that needs smushing!"
@@ -914,85 +936,97 @@ msgid_plural "%s, you have %s%s%d%s attachments%s that need smushing!"
914
  msgstr[0] ""
915
  msgstr[1] ""
916
 
917
- #: lib/class-wp-smush-ui.php:789
918
  #, php-format
919
  msgid " %sUpgrade to Pro%s to bulk smush all your images with one click."
920
  msgstr ""
921
 
922
- #: lib/class-wp-smush-ui.php:790
923
  msgid " Free users can smush 50 images with each click."
924
  msgstr ""
925
 
926
- #: lib/class-wp-smush-ui.php:800
 
 
 
 
927
  msgid ""
928
  "Tip: Enable Super-smush in the Settings area to get even more savings with "
929
- "almost no noticeable quality loss."
930
  msgstr ""
931
 
932
- #: lib/class-wp-smush-ui.php:822
933
  #, php-format
934
  msgid ""
935
  "%sBulk smush is currently running.%s You need to keep this page open for the "
936
  "process to complete."
937
  msgstr ""
938
 
939
- #: lib/class-wp-smush-ui.php:824
940
- msgid "Working.."
941
- msgstr ""
942
-
943
- #: lib/class-wp-smush-ui.php:833
944
  #, php-format
945
  msgid "%s%d%s of your media attachments have been smushed."
946
  msgstr ""
947
 
948
- #: lib/class-wp-smush-ui.php:837
949
  msgid "Stop current bulk smush process."
950
  msgstr ""
951
 
952
- #: lib/class-wp-smush-ui.php:874
953
  #, php-format
954
  msgid "%s, you have %s%s%d%s attachment%s that needs re-compressing!"
955
  msgid_plural "%s, you have %s%s%d%s attachments%s that need re-compressing!"
956
  msgstr[0] ""
957
  msgstr[1] ""
958
 
959
- #: lib/class-wp-smush-ui.php:895
 
 
 
 
960
  msgid "Your settings have been updated!"
961
  msgstr ""
962
 
963
- #: lib/class-wp-smush-ui.php:930
 
 
 
 
 
 
 
 
964
  #, php-format
965
  msgid ""
966
  "Automatic smushing is %senabled%s. Newly uploaded images will be "
967
  "automagically compressed."
968
  msgstr ""
969
 
970
- #: lib/class-wp-smush-ui.php:930
971
  #, php-format
972
  msgid ""
973
  "Automatic smushing is %sdisabled%s. Newly uploaded images will need to be "
974
  "manually smushed."
975
  msgstr ""
976
 
977
- #: lib/class-wp-smush-ui.php:973
978
  msgid "Thanks for installing Smush. We hope you like it!"
979
  msgstr ""
980
 
981
- #: lib/class-wp-smush-ui.php:974
982
  msgid ""
983
  "And hey, if you do, you can join WPMU DEV for a free 30 day trial and get "
984
  "access to even more features!"
985
  msgstr ""
986
 
987
- #: lib/class-wp-smush-ui.php:975 lib/class-wp-smush-ui.php:979
988
  msgid "Try Smush Pro Free"
989
  msgstr ""
990
 
991
- #: lib/class-wp-smush-ui.php:977
992
  msgid "Thanks for upgrading Smush!"
993
  msgstr ""
994
 
995
- #: lib/class-wp-smush-ui.php:1028
996
  #, php-format
997
  msgid ""
998
  "Did you know WP Smush Pro delivers up to 2x better compression, allows you "
@@ -1000,11 +1034,11 @@ msgid ""
1000
  "absolutely FREE%s"
1001
  msgstr ""
1002
 
1003
- #: lib/class-wp-smush-ui.php:1028 lib/class-wp-smush-ui.php:1053
1004
  msgid "Try WP Smush Pro for FREE"
1005
  msgstr ""
1006
 
1007
- #: lib/class-wp-smush-ui.php:1053
1008
  #, php-format
1009
  msgid ""
1010
  "Smush Pro gives you all these extra settings and absolutely no limits on "
@@ -1013,11 +1047,11 @@ msgid ""
1013
  "%s"
1014
  msgstr ""
1015
 
1016
- #: lib/class-wp-smush-ui.php:1076
1017
  msgid "Validating.."
1018
  msgstr ""
1019
 
1020
- #: lib/class-wp-smush-ui.php:1078
1021
  #, php-format
1022
  msgid ""
1023
  "It looks like Smush couldn’t verify your WPMU DEV membership so Pro features "
@@ -1025,21 +1059,21 @@ msgid ""
1025
  "%s or get in touch with our %ssupport team%s."
1026
  msgstr ""
1027
 
1028
- #: lib/class-wp-smush-ui.php:1100
1029
  msgid "UPDATE SETTINGS"
1030
  msgstr ""
1031
 
1032
- #: lib/class-wp-smush-ui.php:1102
1033
  msgid "Smush will automatically check for any images that need re-smushing."
1034
  msgstr ""
1035
 
1036
- #: lib/class-wp-smush-ui.php:1128
1037
  msgid ""
1038
  "Smush settings were updated, performing a quick scan to check if any of the "
1039
  "images need to be Smushed again."
1040
  msgstr ""
1041
 
1042
- #: lib/class-wp-smush-ui.php:1149
1043
  #, php-format
1044
  msgid ""
1045
  "Every time you upload an image to your site, WordPress generates a resized "
@@ -1049,39 +1083,40 @@ msgid ""
1049
  "optimized:%s"
1050
  msgstr ""
1051
 
1052
- #: lib/class-wp-smush-ui.php:1190
1053
  msgid "Max width"
1054
  msgstr ""
1055
 
1056
- #: lib/class-wp-smush-ui.php:1193
1057
  msgid "Max height"
1058
  msgstr ""
1059
 
1060
- #: lib/class-wp-smush-ui.php:1196
1061
  #, php-format
1062
- msgid "Currently, your largest image size is set at %s%dpx wide x %dpx high%s."
 
1063
  msgstr ""
1064
 
1065
- #: lib/class-wp-smush-ui.php:1197
1066
  msgid ""
1067
  "Just to let you know, the width you've entered is less than your largest "
1068
  "image and may result in pixelation."
1069
  msgstr ""
1070
 
1071
- #: lib/class-wp-smush-ui.php:1198
1072
  msgid ""
1073
  "Just to let you know, the height you’ve entered is less than your largest "
1074
  "image and may result in pixelation."
1075
  msgstr ""
1076
 
1077
- #: lib/class-wp-smush-ui.php:1258
1078
  msgid ""
1079
  "Note: This data, called EXIF, adds to the size of the image. While this "
1080
  "information might be important to photographers, it’s unnecessary for most "
1081
  "users and safe to remove."
1082
  msgstr ""
1083
 
1084
- #: lib/class-wp-smush-ui.php:1261
1085
  msgid ""
1086
  "Note: Any PNGs with transparency will be ignored. Smush will only convert "
1087
  "PNGs if it results in a smaller file size. The resulting file will have a "
@@ -1089,12 +1124,83 @@ msgid ""
1089
  "contain the original PNG filename will need to be updated."
1090
  msgstr ""
1091
 
1092
- #: lib/class-wp-smush-ui.php:1264
1093
  msgid ""
1094
  "Note: For this process to happen automatically you need automatic smushing "
1095
  "enabled."
1096
  msgstr ""
1097
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1098
  #: lib/class-wp-smush.php:198
1099
  msgid "File path is empty"
1100
  msgstr ""
@@ -1123,65 +1229,65 @@ msgstr ""
1123
  msgid "Unknown API error"
1124
  msgstr ""
1125
 
1126
- #: lib/class-wp-smush.php:710
1127
  msgid ""
1128
- "Skipped due to a timeout error, You can increase the request timeout to make "
1129
  "sure Smush has enough time to process larger files. "
1130
  "`define('WP_SMUSH_API_TIMEOUT', 150);`."
1131
  msgstr ""
1132
 
1133
- #: lib/class-wp-smush.php:713
1134
  #, php-format
1135
  msgid "Error posting to API: %s"
1136
  msgstr ""
1137
 
1138
- #: lib/class-wp-smush.php:720
1139
  #, php-format
1140
  msgid "Error posting to API: %s %s"
1141
  msgstr ""
1142
 
1143
- #: lib/class-wp-smush.php:737
1144
  msgid "Smush data corrupted, try again."
1145
  msgstr ""
1146
 
1147
- #: lib/class-wp-smush.php:757
1148
  msgid "Image couldn't be smushed"
1149
  msgstr ""
1150
 
1151
- #: lib/class-wp-smush.php:998
1152
  #, php-format
1153
  msgid "%d images reduced "
1154
  msgstr ""
1155
 
1156
- #: lib/class-wp-smush.php:998
1157
  msgid "Reduced "
1158
  msgstr ""
1159
 
1160
- #: lib/class-wp-smush.php:1002
1161
  #, php-format
1162
  msgid "by %s %s"
1163
  msgstr ""
1164
 
1165
- #: lib/class-wp-smush.php:1008
1166
  #, php-format
1167
  msgid "<br /> Image Size: %s"
1168
  msgstr ""
1169
 
1170
- #: lib/class-wp-smush.php:1044
1171
  msgid "Detailed stats for all the image sizes"
1172
  msgstr ""
1173
 
1174
- #: lib/class-wp-smush.php:1044
1175
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:236
1176
  msgid "Smush stats"
1177
  msgstr ""
1178
 
1179
- #: lib/class-wp-smush.php:1088
1180
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:263
1181
  msgid "Not processed"
1182
  msgstr ""
1183
 
1184
- #: lib/class-wp-smush.php:1402
1185
  #, php-format
1186
  msgid ""
1187
  "When you upload an image to WordPress it automatically creates %s thumbnail "
@@ -1190,39 +1296,39 @@ msgid ""
1190
  "site we don’t Smush them. Pro users can override this."
1191
  msgstr ""
1192
 
1193
- #: lib/class-wp-smush.php:1405
1194
  msgid ""
1195
  "Image couldn't be smushed as it exceeded the 1Mb size limit, Pro users can "
1196
- "smush images with size upto 32Mb."
1197
  msgstr ""
1198
 
1199
- #: lib/class-wp-smush.php:1407
1200
  msgid " Skipped"
1201
  msgstr ""
1202
 
1203
- #: lib/class-wp-smush.php:1429
1204
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:439
1205
  msgid "Image size"
1206
  msgstr ""
1207
 
1208
- #: lib/class-wp-smush.php:1430
1209
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:440
1210
  msgid "Savings"
1211
  msgstr ""
1212
 
1213
- #: lib/class-wp-smush.php:1678
1214
  msgid "Restore original image."
1215
  msgstr ""
1216
 
1217
- #: lib/class-wp-smush.php:1678
1218
  msgid "Restore image"
1219
  msgstr ""
1220
 
1221
- #: lib/class-wp-smush.php:1726
1222
  msgid "Smush image including original file."
1223
  msgstr ""
1224
 
1225
- #: lib/class-wp-smush.php:1726
1226
  msgid "Resmush image"
1227
  msgstr ""
1228
 
@@ -1241,7 +1347,7 @@ msgstr ""
1241
  #, php-format
1242
  msgid ""
1243
  "Enable Super-smush in the %sSettings%s area to get even more savings with "
1244
- "almost no noticeable quality loss."
1245
  msgstr ""
1246
 
1247
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:440
@@ -1264,7 +1370,7 @@ msgstr ""
1264
 
1265
  #: lib/nextgen-integration/class-wp-smush-nextgen-bulk.php:31
1266
  msgid ""
1267
- "Smush request timed out, You can try setting a higher value ( > 60 ) for "
1268
  "`WP_SMUSH_API_TIMEOUT`."
1269
  msgstr ""
1270
 
@@ -1297,5 +1403,5 @@ msgid "WPMU DEV"
1297
  msgstr ""
1298
 
1299
  #. Author URI of the plugin/theme
1300
- msgid "http://premium.wpmudev.org/"
1301
  msgstr ""
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WP Smush\n"
5
+ "POT-Creation-Date: 2018-02-12 12:34+0530\n"
6
+ "PO-Revision-Date: 2018-02-12 12:33+0530\n"
7
  "Last-Translator: Umesh <umeshsingla05@gmail.com>\n"
8
  "Language-Team: Umesh <umeshsingla05@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
32
  msgstr ""
33
 
34
  #: assets/shared-ui/plugin-ui.php:272 extras/free-dashboard/module.php:395
35
+ #: extras/free-dashboard/module.php:434 lib/class-wp-smush-ui.php:1007
36
  msgid "Saving"
37
  msgstr ""
38
 
39
  #: assets/shared-ui/plugin-ui.php:301
40
  #: extras/dash-notice/wpmudev-dash-notification.php:248
41
  #: extras/dash-notice/wpmudev-dash-notification.php:289
42
+ #: lib/class-wp-smush-ui.php:1007
43
  msgid "Dismiss"
44
  msgstr ""
45
 
180
  msgid "Rate %s"
181
  msgstr ""
182
 
183
+ #: lib/class-wp-smush-admin.php:234
184
  msgid "Use network settings for all the sub-sites."
185
  msgstr ""
186
 
187
+ #: lib/class-wp-smush-admin.php:235
188
  msgid "Multisite Control"
189
  msgstr ""
190
 
191
+ #: lib/class-wp-smush-admin.php:236
192
  msgid ""
193
  "Choose whether you want to use network settings for all sub-sites or whether "
194
  "sub-site admins can control Smush’s settings."
195
  msgstr ""
196
 
197
+ #: lib/class-wp-smush-admin.php:239
198
  msgid "Automatically smush my images on upload"
199
  msgstr ""
200
 
201
+ #: lib/class-wp-smush-admin.php:240
202
  msgid "Automatic Smush"
203
  msgstr ""
204
 
205
+ #: lib/class-wp-smush-admin.php:241
206
  msgid ""
207
  "When you upload images to your site, Smush will automatically optimize them "
208
  "for you."
209
  msgstr ""
210
 
211
+ #: lib/class-wp-smush-admin.php:244
212
  msgid "Super-smush my images"
213
  msgstr ""
214
 
215
+ #: lib/class-wp-smush-admin.php:245
216
  msgid "Super-smush"
217
  msgstr ""
218
 
219
+ #: lib/class-wp-smush-admin.php:246
220
  msgid ""
221
  "Compress images up to 2x more than regular smush with almost no visible drop "
222
  "in quality."
223
  msgstr ""
224
 
225
+ #: lib/class-wp-smush-admin.php:249
226
  msgid "Smush my original full-size images"
227
  msgstr ""
228
 
229
+ #: lib/class-wp-smush-admin.php:250 lib/class-wp-smush-admin.php:260
230
+ #: lib/class-wp-smush-admin.php:265
231
  msgid "Full size images"
232
  msgstr ""
233
 
234
+ #: lib/class-wp-smush-admin.php:251
235
  msgid ""
236
  "Every time you upload an image to your site, WordPress generates a resized "
237
+ "version of that image for every default and/or custom image size that your "
238
+ "theme has registered. This means there are multiple versions of your images "
239
+ "in your media library. By default, Smush only compresses these generated "
240
+ "image. Activate this setting to also smush your original images. Note: "
241
+ "Activating this setting doesn’t usually improve page speed."
242
  msgstr ""
243
 
244
+ #: lib/class-wp-smush-admin.php:254
245
  msgid "Preserve my image EXIF data"
246
  msgstr ""
247
 
248
+ #: lib/class-wp-smush-admin.php:255
249
  msgid "EXIF data"
250
  msgstr ""
251
 
252
+ #: lib/class-wp-smush-admin.php:256
253
  msgid ""
254
  "EXIF data stores camera settings, focal length, date, time and location "
255
  "information in image files. EXIF data makes image files larger but if you "
256
  "are a photographer you may want to preserve this information."
257
  msgstr ""
258
 
259
+ #: lib/class-wp-smush-admin.php:259
260
  msgid "Resize my full size images"
261
  msgstr ""
262
 
263
+ #: lib/class-wp-smush-admin.php:261
264
  msgid ""
265
  "Set a maximum height and width for all images uploaded to your site so that "
266
  "any unnecessarily large images are automatically resized before they are "
268
  "using Directory Smush feature."
269
  msgstr ""
270
 
271
+ #: lib/class-wp-smush-admin.php:264
272
  msgid "Make a copy of my full size images"
273
  msgstr ""
274
 
275
+ #: lib/class-wp-smush-admin.php:266
276
  msgid ""
277
  "Save your original full-size images separately so you can restore them at "
278
  "any point. Note: Keeping a copy of your original files can significantly "
279
  "increase the size of your uploads folder by nearly twice as much."
280
  msgstr ""
281
 
282
+ #: lib/class-wp-smush-admin.php:269
283
  msgid "Auto-convert PNGs to JPEGs (lossy)"
284
  msgstr ""
285
 
286
+ #: lib/class-wp-smush-admin.php:270
287
  msgid "PNG to JPEG conversion"
288
  msgstr ""
289
 
290
+ #: lib/class-wp-smush-admin.php:271
291
  msgid ""
292
  "When you compress a PNG file, Smush will check if converting the file to "
293
  "JPEG will further reduce its size."
294
  msgstr ""
295
 
296
+ #: lib/class-wp-smush-admin.php:395 lib/class-wp-smush.php:1086
 
 
 
 
 
 
 
 
297
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:159
298
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:274
299
  msgid "Super-Smush"
300
  msgstr ""
301
 
302
+ #: lib/class-wp-smush-admin.php:396
303
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:160
304
  msgid "Smush Now"
305
  msgstr ""
306
 
307
+ #: lib/class-wp-smush-admin.php:397
308
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:161
309
  msgid "{{errors}} image(s) were skipped due to an error."
310
  msgstr ""
311
 
312
+ #: lib/class-wp-smush-admin.php:398
313
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:162
314
  msgid "All images are fully optimized."
315
  msgstr ""
316
 
317
+ #: lib/class-wp-smush-admin.php:399
318
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:163
319
  msgid "Restoring image.."
320
  msgstr ""
321
 
322
+ #: lib/class-wp-smush-admin.php:400
323
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:164
324
  msgid "Smushing image.."
325
  msgstr ""
326
 
327
+ #: lib/class-wp-smush-admin.php:401
328
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:165
329
  msgid "Checking images.."
330
  msgstr ""
331
 
332
+ #: lib/class-wp-smush-admin.php:402
333
  msgid ""
334
  "We successfully verified your membership, all the Pro features should work "
335
  "completely. "
336
  msgstr ""
337
 
338
+ #: lib/class-wp-smush-admin.php:403
339
  msgid "Your membership couldn't be verified."
340
  msgstr ""
341
 
342
+ #: lib/class-wp-smush-admin.php:404
343
  msgid "Missing file path."
344
  msgstr ""
345
 
346
+ #: lib/class-wp-smush-admin.php:406
347
  msgid "image could not be smushed."
348
  msgstr ""
349
 
350
+ #: lib/class-wp-smush-admin.php:407
351
  msgid "images could not be smushed."
352
  msgstr ""
353
 
354
+ #: lib/class-wp-smush-admin.php:408 lib/class-wp-smush.php:1001
355
+ #: lib/class-wp-smush.php:1008
356
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:193
357
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:196
358
  msgid "Already Optimized"
359
  msgstr ""
360
 
361
+ #: lib/class-wp-smush-admin.php:409
362
  msgid "Ajax Error"
363
  msgstr ""
364
 
365
+ #: lib/class-wp-smush-admin.php:410
366
  msgid "All Done!"
367
  msgstr ""
368
 
369
+ #: lib/class-wp-smush-admin.php:411 lib/class-wp-smush-ui.php:72
370
  msgid "QUICK SETUP"
371
  msgstr ""
372
 
373
+ #: lib/class-wp-smush-admin.php:411 lib/class-wp-smush-ui.php:878
374
  msgid "Skip"
375
  msgstr ""
376
 
377
+ #: lib/class-wp-smush-admin.php:412
378
+ msgid "Give us a moment while we sync the stats."
379
+ msgstr ""
380
+
381
+ #: lib/class-wp-smush-admin.php:587
382
+ #, php-format
383
+ msgid "%s%d%s Attachment(s) could not be smushed, as no ID was received."
384
+ msgstr ""
385
+
386
+ #: lib/class-wp-smush-admin.php:603
387
+ #, php-format
388
  msgid ""
389
+ "You've exceeded Bulk Smush limit of %d images at once for standard users. "
390
+ "Click on Bulk Smush to continue."
391
+ msgstr ""
392
+
393
+ #: lib/class-wp-smush-admin.php:627
394
+ #, php-format
395
+ msgid "%s%d%s Attachment(s) were skipped."
396
  msgstr ""
397
 
398
+ #: lib/class-wp-smush-admin.php:700
399
+ #, php-format
400
+ msgid ""
401
+ "%s%d%s Attachment(s) were not smushed due to a timeout error, You can "
402
+ "increase the request timeout to make sure Smush has enough time to process "
403
+ "larger files. `define('WP_SMUSH_API_TIMEOUT', 150);`"
404
+ msgstr ""
405
+
406
+ #: lib/class-wp-smush-admin.php:759 lib/class-wp-smush-nextgen.php:443
407
  msgid "You don't have permission to work with uploaded files."
408
  msgstr ""
409
 
410
+ #: lib/class-wp-smush-admin.php:763 lib/class-wp-smush-nextgen.php:447
411
  msgid "No attachment ID was provided."
412
  msgstr ""
413
 
414
+ #: lib/class-wp-smush-admin.php:775
415
  msgid "Attachment Skipped - Check `wp_smush_image` filter."
416
  msgstr ""
417
 
418
+ #: lib/class-wp-smush-admin.php:965
419
  #, php-format
420
  msgid "<strong>%d of %d images</strong> were sent for smushing:"
421
  msgstr ""
422
 
423
+ #: lib/class-wp-smush-admin.php:1154 lib/class-wp-smush.php:1092
424
  msgid "Smushing in progress.."
425
  msgstr ""
426
 
427
+ #: lib/class-wp-smush-admin.php:1160 lib/class-wp-smush.php:1111
428
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:269
429
  msgid "Smush Now!"
430
  msgstr ""
431
 
432
+ #: lib/class-wp-smush-admin.php:1181
433
  msgid "Settings"
434
  msgstr ""
435
 
436
+ #: lib/class-wp-smush-admin.php:1344
437
  msgid "Image not smushed, fields empty."
438
  msgstr ""
439
 
440
+ #: lib/class-wp-smush-admin.php:1351 lib/class-wp-smush-nextgen.php:631
441
  msgid ""
442
  "Image couldn't be smushed as the nonce verification failed, try reloading "
443
  "the page."
444
  msgstr ""
445
 
446
+ #: lib/class-wp-smush-admin.php:1393
 
 
 
 
447
  msgid ""
448
  "We haven’t found any images in your media library yet so there’s no smushing "
449
  "to be done! Once you upload images, reload this page and start playing!"
450
  msgstr ""
451
 
452
+ #: lib/class-wp-smush-admin.php:1408
453
  msgid "Yay! All images are optimized as per your current settings."
454
  msgstr ""
455
 
456
+ #: lib/class-wp-smush-admin.php:1611 lib/class-wp-smush-ui.php:905
457
  #, php-format
458
  msgid "You have images that need smushing. %sBulk smush now!%s"
459
  msgstr ""
460
 
461
+ #: lib/class-wp-smush-admin.php:1999
462
  msgid "Review your setting now."
463
  msgstr ""
464
 
465
+ #: lib/class-wp-smush-admin.php:2000 lib/class-wp-smush-dir.php:274
466
+ #: lib/class-wp-smush-ui.php:792 lib/class-wp-smush-ui.php:931
467
  msgid "WP Smush Pro"
468
  msgstr ""
469
 
470
+ #: lib/class-wp-smush-admin.php:2001
471
  msgid ""
472
  "Welcome to the newest version of WP Smush! In this update we've added the "
473
  "ability to bulk smush images in directories outside your uploads folder."
474
  msgstr ""
475
 
476
+ #: lib/class-wp-smush-admin.php:2004
477
  #, php-format
478
  msgid ""
479
  " And as a multisite user, you can manage %sSmush settings%s globally across "
480
  "all sites!"
481
  msgstr ""
482
 
483
+ #: lib/class-wp-smush-admin.php:2007
484
  #, php-format
485
  msgid " %sFind out more here >>%s"
486
  msgstr ""
487
 
488
+ #: lib/class-wp-smush-admin.php:2251
489
+ msgid "Smush Stats"
490
+ msgstr ""
491
+
492
+ #: lib/class-wp-smush-backup.php:148 lib/class-wp-smush-nextgen.php:530
493
  msgid "Error in processing restore action, Fields empty."
494
  msgstr ""
495
 
496
+ #: lib/class-wp-smush-backup.php:155 lib/class-wp-smush-nextgen.php:538
497
  msgid "Image not restored, Nonce verification failed."
498
  msgstr ""
499
 
500
+ #: lib/class-wp-smush-backup.php:282 lib/class-wp-smush-nextgen.php:613
501
  msgid "Unable to restore image"
502
  msgstr ""
503
 
504
+ #: lib/class-wp-smush-dir.php:91
505
  msgid "Directory-smush savings"
506
  msgstr ""
507
 
508
+ #: lib/class-wp-smush-dir.php:93
509
  msgid "Updating Stats"
510
  msgstr ""
511
 
512
+ #: lib/class-wp-smush-dir.php:103
513
  msgid "Smush images that aren't located in your uploads folder."
514
  msgstr ""
515
 
516
+ #: lib/class-wp-smush-dir.php:105
517
+ msgid "Select a directory you'd like to Smush."
518
+ msgstr ""
519
+
520
+ #: lib/class-wp-smush-dir.php:105
521
  msgid "Choose directory"
522
  msgstr ""
523
 
524
+ #: lib/class-wp-smush-dir.php:219
525
  msgid "RESUME LAST SCAN"
526
  msgstr ""
527
 
528
+ #: lib/class-wp-smush-dir.php:250
529
  msgid "DIRECTORY SMUSH"
530
  msgstr ""
531
 
532
+ #: lib/class-wp-smush-dir.php:255
533
  msgid ""
534
  "In addition to smushing your media uploads, you may want to also smush "
535
  "images living outside your uploads directory. Simply add any directories you "
536
  "wish to smush and bulk smush away!"
537
  msgstr ""
538
 
539
+ #: lib/class-wp-smush-dir.php:268
540
  msgid ""
541
  "All images for the selected directory are smushed and up to date. Awesome!"
542
  msgstr ""
543
 
544
+ #: lib/class-wp-smush-dir.php:271
545
  #, php-format
546
  msgid ""
547
  "%s/%s image(s) were successfully smushed, however %s image(s) could not be "
548
  "smushed due to an error."
549
  msgstr ""
550
 
551
+ #: lib/class-wp-smush-dir.php:274
552
  #, php-format
553
  msgid ""
554
  " %sUpgrade to pro%s to bulk smush all your directory images with one click. "
555
  "Free users can smush 50 images with each click."
556
  msgstr ""
557
 
558
+ #: lib/class-wp-smush-dir.php:278 lib/class-wp-smush-ui.php:143
559
+ #: lib/class-wp-smush-ui.php:773
560
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:404
561
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:445
562
  msgid "BULK SMUSH"
563
  msgstr ""
564
 
565
+ #: lib/class-wp-smush-dir.php:280
566
  msgid "Click to stop the directory smushing process."
567
  msgstr ""
568
 
569
+ #: lib/class-wp-smush-dir.php:281 lib/class-wp-smush-ui.php:840
570
  msgid "CANCEL"
571
  msgstr ""
572
 
573
+ #: lib/class-wp-smush-dir.php:289
574
  msgid "CHOOSE DIRECTORY"
575
  msgstr ""
576
 
577
+ #: lib/class-wp-smush-dir.php:459
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  msgid "Exclude directory from Smush List"
579
  msgstr ""
580
 
581
+ #: lib/class-wp-smush-dir.php:598
582
  msgid "We could not find any images in the selected directory."
583
  msgstr ""
584
 
585
+ #: lib/class-wp-smush-dir.php:921
586
  #, php-format
587
  msgid "%d images"
588
  msgstr ""
589
 
590
+ #: lib/class-wp-smush-dir.php:954
591
  msgid "Waiting.."
592
  msgstr ""
593
 
594
+ #: lib/class-wp-smush-dir.php:1076
595
  msgid "Incorrect image id"
596
  msgstr ""
597
 
598
+ #: lib/class-wp-smush-dir.php:1110
599
  msgid "Could not find image id in last scanned images"
600
  msgstr ""
601
 
602
+ #: lib/class-wp-smush-dir.php:1123
603
  msgid "Image couldn't be optimized"
604
  msgstr ""
605
 
606
+ #: lib/class-wp-smush-dir.php:1167 lib/class-wp-smush-dir.php:1300
607
  #, php-format
608
  msgid "You've smushed %d images in total."
609
  msgstr ""
610
 
611
+ #: lib/class-wp-smush-dir.php:1244
612
  msgid ""
613
  "We were unable to retrieve the image list from last scan, please continue "
614
+ "with the latest scan"
615
+ msgstr ""
616
+
617
+ #: lib/class-wp-smush-dir.php:1342
618
+ msgid "Directory list"
619
+ msgstr ""
620
+
621
+ #: lib/class-wp-smush-dir.php:1346
622
+ msgid "Choose the folder you wish to smush."
623
+ msgstr ""
624
+
625
+ #: lib/class-wp-smush-dir.php:1350
626
+ msgid ""
627
+ "Smush will also include any images in sub folders of your selected folder."
628
  msgstr ""
629
 
630
+ #: lib/class-wp-smush-dir.php:1353
631
+ msgid "ADD DIRECTORY"
632
+ msgstr ""
633
+
634
+ #: lib/class-wp-smush-nextgen.php:76
635
  msgid "Enable NextGen Gallery integration"
636
  msgstr ""
637
 
638
+ #: lib/class-wp-smush-nextgen.php:77
639
  msgid "NextGen Gallery"
640
  msgstr ""
641
 
642
+ #: lib/class-wp-smush-nextgen.php:78
643
  msgid "Allow smushing images directly through NextGen Gallery settings."
644
  msgstr ""
645
 
646
+ #: lib/class-wp-smush-nextgen.php:384
647
  msgid ""
648
  "We couldn't find the metadata for the image, possibly the image has been "
649
  "deleted."
650
  msgstr ""
651
 
652
+ #: lib/class-wp-smush-nextgen.php:624
653
  msgid "We couldn't process the image, fields empty."
654
  msgstr ""
655
 
656
+ #: lib/class-wp-smush-nextgen.php:648
657
  #, php-format
658
  msgid "Unable to smush image, %s"
659
  msgstr ""
670
  #, php-format
671
  msgid ""
672
  "Storing your image on S3 buckets using %sWP Offload S3%s? Smush can detect "
673
+ "and smush those assets for you, including when you're removing files from "
674
  "your host server."
675
  msgstr ""
676
 
677
  #: lib/class-wp-smush-s3.php:113
678
  #, php-format
679
  msgid ""
680
+ "We are having trouble interacting with WP Offload S3, make sure the plugin "
681
  "is activated. Or you can %sreport a bug%s."
682
  msgstr ""
683
 
684
  #: lib/class-wp-smush-s3.php:120
685
  #, php-format
686
  msgid ""
687
+ "It seems you haven't finished setting up WP Offload S3 yet. %sConfigure%s it "
688
  "now to enable Amazon S3 support."
689
  msgstr ""
690
 
695
  #: lib/class-wp-smush-s3.php:178
696
  #, php-format
697
  msgid ""
698
+ "We can see you have WP Offload S3 installed with the <strong>Remove Files "
699
  "From Server</strong> option activated. If you want to optimize your S3 "
700
  "images you'll need to enable the <a href='%s'><strong>Amazon S3 Support</"
701
  "strong></a> feature in Smush's settings."
704
  #: lib/class-wp-smush-s3.php:181
705
  #, php-format
706
  msgid ""
707
+ "We can see you have WP Offload S3 installed with the <strong>Remove Files "
708
  "From Server</strong> option activated. If you want to optimize your S3 "
709
  "images you'll need to <a href='%s'><strong>upgrade to Smush Pro</strong></a>"
710
  msgstr ""
742
  #: lib/class-wp-smush-ui.php:73
743
  msgid ""
744
  "Welcome to Smush - Winner of Torque Plugin Madness 2017! Let's quickly set "
745
+ "up the basics for you, then you can fine tune each setting as you go - our "
746
  "recommendations are on by default."
747
  msgstr ""
748
 
864
  msgid "Save a ton of space by not storing over-sized images on your server."
865
  msgstr ""
866
 
867
+ #: lib/class-wp-smush-ui.php:683
868
+ msgid "GET STARTED"
869
+ msgstr ""
870
+
871
+ #: lib/class-wp-smush-ui.php:701
872
  msgid "BOOST YOUR PERFORMANCE - HUMMINGBIRD"
873
  msgstr ""
874
 
875
+ #: lib/class-wp-smush-ui.php:739
876
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:389
877
  msgid "No attachments found - Upload some images"
878
  msgstr ""
879
 
880
+ #: lib/class-wp-smush-ui.php:741
881
  #, php-format
882
  msgid ""
883
  "We haven’t found any images in your %smedia library%s yet so there’s no "
885
  "playing!"
886
  msgstr ""
887
 
888
+ #: lib/class-wp-smush-ui.php:744
889
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:394
890
  msgid "UPLOAD IMAGES"
891
  msgstr ""
892
 
893
+ #: lib/class-wp-smush-ui.php:749
894
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:399
895
  msgid "All images are smushed and up to date. Awesome!"
896
  msgstr ""
897
 
898
+ #: lib/class-wp-smush-ui.php:753
899
  msgid "Still having trouble with PageSpeed tests? Give these a go…"
900
  msgstr ""
901
 
902
+ #: lib/class-wp-smush-ui.php:756
903
  #, php-format
904
  msgid "Upgrade to Smush Pro for advanced lossy compression. %sTry pro free%s."
905
  msgstr ""
906
 
907
+ #: lib/class-wp-smush-ui.php:758
908
  #, php-format
909
  msgid ""
910
  "Enable %sSuper-smush%s for advanced lossy compression to optimise images "
911
  "further with almost no visible drop in quality."
912
  msgstr ""
913
 
914
+ #: lib/class-wp-smush-ui.php:760
915
  #, php-format
916
  msgid ""
917
  "Make sure your images are the right size for your theme. %sLearn more%s."
918
  msgstr ""
919
 
920
+ #: lib/class-wp-smush-ui.php:763
921
  #, php-format
922
  msgid ""
923
  "Enable %sResize Original Images%s to scale big images down to a reasonable "
924
  "size and save a ton of space."
925
  msgstr ""
926
 
927
+ #: lib/class-wp-smush-ui.php:767
928
  msgid "DISMISS"
929
  msgstr ""
930
 
931
+ #: lib/class-wp-smush-ui.php:790
932
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:410
933
  #, php-format
934
  msgid "%s, you have %s%s%d%s attachment%s that needs smushing!"
936
  msgstr[0] ""
937
  msgstr[1] ""
938
 
939
+ #: lib/class-wp-smush-ui.php:792
940
  #, php-format
941
  msgid " %sUpgrade to Pro%s to bulk smush all your images with one click."
942
  msgstr ""
943
 
944
+ #: lib/class-wp-smush-ui.php:793
945
  msgid " Free users can smush 50 images with each click."
946
  msgstr ""
947
 
948
+ #: lib/class-wp-smush-ui.php:798
949
+ msgid "Click to start Bulk Smushing images in Media Library"
950
+ msgstr ""
951
+
952
+ #: lib/class-wp-smush-ui.php:803
953
  msgid ""
954
  "Tip: Enable Super-smush in the Settings area to get even more savings with "
955
+ "almost no visible drop in quality."
956
  msgstr ""
957
 
958
+ #: lib/class-wp-smush-ui.php:825
959
  #, php-format
960
  msgid ""
961
  "%sBulk smush is currently running.%s You need to keep this page open for the "
962
  "process to complete."
963
  msgstr ""
964
 
965
+ #: lib/class-wp-smush-ui.php:836
 
 
 
 
966
  #, php-format
967
  msgid "%s%d%s of your media attachments have been smushed."
968
  msgstr ""
969
 
970
+ #: lib/class-wp-smush-ui.php:840
971
  msgid "Stop current bulk smush process."
972
  msgstr ""
973
 
974
+ #: lib/class-wp-smush-ui.php:877
975
  #, php-format
976
  msgid "%s, you have %s%s%d%s attachment%s that needs re-compressing!"
977
  msgid_plural "%s, you have %s%s%d%s attachments%s that need re-compressing!"
978
  msgstr[0] ""
979
  msgstr[1] ""
980
 
981
+ #: lib/class-wp-smush-ui.php:878
982
+ msgid "Skip re-smushing the images"
983
+ msgstr ""
984
+
985
+ #: lib/class-wp-smush-ui.php:898
986
  msgid "Your settings have been updated!"
987
  msgstr ""
988
 
989
+ #. Plugin Name of the plugin/theme
990
+ #: lib/class-wp-smush-ui.php:931
991
+ #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:71
992
+ #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:90
993
+ #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:92
994
+ msgid "WP Smush"
995
+ msgstr ""
996
+
997
+ #: lib/class-wp-smush-ui.php:933
998
  #, php-format
999
  msgid ""
1000
  "Automatic smushing is %senabled%s. Newly uploaded images will be "
1001
  "automagically compressed."
1002
  msgstr ""
1003
 
1004
+ #: lib/class-wp-smush-ui.php:933
1005
  #, php-format
1006
  msgid ""
1007
  "Automatic smushing is %sdisabled%s. Newly uploaded images will need to be "
1008
  "manually smushed."
1009
  msgstr ""
1010
 
1011
+ #: lib/class-wp-smush-ui.php:980
1012
  msgid "Thanks for installing Smush. We hope you like it!"
1013
  msgstr ""
1014
 
1015
+ #: lib/class-wp-smush-ui.php:981
1016
  msgid ""
1017
  "And hey, if you do, you can join WPMU DEV for a free 30 day trial and get "
1018
  "access to even more features!"
1019
  msgstr ""
1020
 
1021
+ #: lib/class-wp-smush-ui.php:982 lib/class-wp-smush-ui.php:986
1022
  msgid "Try Smush Pro Free"
1023
  msgstr ""
1024
 
1025
+ #: lib/class-wp-smush-ui.php:984
1026
  msgid "Thanks for upgrading Smush!"
1027
  msgstr ""
1028
 
1029
+ #: lib/class-wp-smush-ui.php:1035
1030
  #, php-format
1031
  msgid ""
1032
  "Did you know WP Smush Pro delivers up to 2x better compression, allows you "
1034
  "absolutely FREE%s"
1035
  msgstr ""
1036
 
1037
+ #: lib/class-wp-smush-ui.php:1035 lib/class-wp-smush-ui.php:1060
1038
  msgid "Try WP Smush Pro for FREE"
1039
  msgstr ""
1040
 
1041
+ #: lib/class-wp-smush-ui.php:1060
1042
  #, php-format
1043
  msgid ""
1044
  "Smush Pro gives you all these extra settings and absolutely no limits on "
1047
  "%s"
1048
  msgstr ""
1049
 
1050
+ #: lib/class-wp-smush-ui.php:1083
1051
  msgid "Validating.."
1052
  msgstr ""
1053
 
1054
+ #: lib/class-wp-smush-ui.php:1085
1055
  #, php-format
1056
  msgid ""
1057
  "It looks like Smush couldn’t verify your WPMU DEV membership so Pro features "
1059
  "%s or get in touch with our %ssupport team%s."
1060
  msgstr ""
1061
 
1062
+ #: lib/class-wp-smush-ui.php:1107
1063
  msgid "UPDATE SETTINGS"
1064
  msgstr ""
1065
 
1066
+ #: lib/class-wp-smush-ui.php:1109
1067
  msgid "Smush will automatically check for any images that need re-smushing."
1068
  msgstr ""
1069
 
1070
+ #: lib/class-wp-smush-ui.php:1135
1071
  msgid ""
1072
  "Smush settings were updated, performing a quick scan to check if any of the "
1073
  "images need to be Smushed again."
1074
  msgstr ""
1075
 
1076
+ #: lib/class-wp-smush-ui.php:1156
1077
  #, php-format
1078
  msgid ""
1079
  "Every time you upload an image to your site, WordPress generates a resized "
1083
  "optimized:%s"
1084
  msgstr ""
1085
 
1086
+ #: lib/class-wp-smush-ui.php:1201
1087
  msgid "Max width"
1088
  msgstr ""
1089
 
1090
+ #: lib/class-wp-smush-ui.php:1204
1091
  msgid "Max height"
1092
  msgstr ""
1093
 
1094
+ #: lib/class-wp-smush-ui.php:1207
1095
  #, php-format
1096
+ msgid ""
1097
+ "Currently, your largest image size is set at %s%dpx wide %s %dpx high%s."
1098
  msgstr ""
1099
 
1100
+ #: lib/class-wp-smush-ui.php:1208
1101
  msgid ""
1102
  "Just to let you know, the width you've entered is less than your largest "
1103
  "image and may result in pixelation."
1104
  msgstr ""
1105
 
1106
+ #: lib/class-wp-smush-ui.php:1209
1107
  msgid ""
1108
  "Just to let you know, the height you’ve entered is less than your largest "
1109
  "image and may result in pixelation."
1110
  msgstr ""
1111
 
1112
+ #: lib/class-wp-smush-ui.php:1269
1113
  msgid ""
1114
  "Note: This data, called EXIF, adds to the size of the image. While this "
1115
  "information might be important to photographers, it’s unnecessary for most "
1116
  "users and safe to remove."
1117
  msgstr ""
1118
 
1119
+ #: lib/class-wp-smush-ui.php:1272
1120
  msgid ""
1121
  "Note: Any PNGs with transparency will be ignored. Smush will only convert "
1122
  "PNGs if it results in a smaller file size. The resulting file will have a "
1124
  "contain the original PNG filename will need to be updated."
1125
  msgstr ""
1126
 
1127
+ #: lib/class-wp-smush-ui.php:1275
1128
  msgid ""
1129
  "Note: For this process to happen automatically you need automatic smushing "
1130
  "enabled."
1131
  msgstr ""
1132
 
1133
+ #: lib/class-wp-smush-ui.php:1295
1134
+ msgid "GET SMUSH PRO"
1135
+ msgstr ""
1136
+
1137
+ #: lib/class-wp-smush-ui.php:1295 lib/class-wp-smush-ui.php:1325
1138
+ msgid "LEARN MORE"
1139
+ msgstr ""
1140
+
1141
+ #: lib/class-wp-smush-ui.php:1296
1142
+ msgid "Here’s what you’ll get by uprading to Smush Pro."
1143
+ msgstr ""
1144
+
1145
+ #: lib/class-wp-smush-ui.php:1300
1146
+ msgid "Double the compression"
1147
+ msgstr ""
1148
+
1149
+ #: lib/class-wp-smush-ui.php:1301
1150
+ msgid ""
1151
+ "Optimize images 2x more than regular smushing and with no visible loss in "
1152
+ "quality using Smush’s intelligent multi-pass lossy compression."
1153
+ msgstr ""
1154
+
1155
+ #: lib/class-wp-smush-ui.php:1305
1156
+ msgid "No limits"
1157
+ msgstr ""
1158
+
1159
+ #: lib/class-wp-smush-ui.php:1306
1160
+ msgid ""
1161
+ "The free version allows you to Smush up to 1Mb images, and 50 at a time. The "
1162
+ "Pro version releases all those limits so you can smush all the things."
1163
+ msgstr ""
1164
+
1165
+ #: lib/class-wp-smush-ui.php:1310
1166
+ msgid "Include your originals"
1167
+ msgstr ""
1168
+
1169
+ #: lib/class-wp-smush-ui.php:1311
1170
+ msgid ""
1171
+ "The free version of Smush only compresses your automatically generated image "
1172
+ "thumbnails. With Pro you can compress your original size images too - in "
1173
+ "case you want to use them in your theme."
1174
+ msgstr ""
1175
+
1176
+ #: lib/class-wp-smush-ui.php:1315
1177
+ msgid "Convert PNGs to JPEGs"
1178
+ msgstr ""
1179
+
1180
+ #: lib/class-wp-smush-ui.php:1316
1181
+ msgid ""
1182
+ "If any of your non-transparent PNGs can be made smaller by converting to "
1183
+ "JPEG, Smush will automatically convert them to JPEGs so they load faster for "
1184
+ "your visitors."
1185
+ msgstr ""
1186
+
1187
+ #: lib/class-wp-smush-ui.php:1320
1188
+ msgid "Integration with NextGen Gallery"
1189
+ msgstr ""
1190
+
1191
+ #: lib/class-wp-smush-ui.php:1321
1192
+ msgid ""
1193
+ "Using the NextGen Gallery plugin? The Pro version allows you to compress "
1194
+ "images directly through NextGen Gallery’s settings."
1195
+ msgstr ""
1196
+
1197
+ #: lib/class-wp-smush-ui.php:1324
1198
+ #, php-format
1199
+ msgid ""
1200
+ "Get all of this including 200% faster smushing, Amazon S3 support and heaps "
1201
+ "more as part of a WPMU DEV membership."
1202
+ msgstr ""
1203
+
1204
  #: lib/class-wp-smush.php:198
1205
  msgid "File path is empty"
1206
  msgstr ""
1229
  msgid "Unknown API error"
1230
  msgstr ""
1231
 
1232
+ #: lib/class-wp-smush.php:717
1233
  msgid ""
1234
+ "Skipped due to a timeout error. You can increase the request timeout to make "
1235
  "sure Smush has enough time to process larger files. "
1236
  "`define('WP_SMUSH_API_TIMEOUT', 150);`."
1237
  msgstr ""
1238
 
1239
+ #: lib/class-wp-smush.php:720
1240
  #, php-format
1241
  msgid "Error posting to API: %s"
1242
  msgstr ""
1243
 
1244
+ #: lib/class-wp-smush.php:727
1245
  #, php-format
1246
  msgid "Error posting to API: %s %s"
1247
  msgstr ""
1248
 
1249
+ #: lib/class-wp-smush.php:744
1250
  msgid "Smush data corrupted, try again."
1251
  msgstr ""
1252
 
1253
+ #: lib/class-wp-smush.php:770
1254
  msgid "Image couldn't be smushed"
1255
  msgstr ""
1256
 
1257
+ #: lib/class-wp-smush.php:1015
1258
  #, php-format
1259
  msgid "%d images reduced "
1260
  msgstr ""
1261
 
1262
+ #: lib/class-wp-smush.php:1015
1263
  msgid "Reduced "
1264
  msgstr ""
1265
 
1266
+ #: lib/class-wp-smush.php:1019
1267
  #, php-format
1268
  msgid "by %s %s"
1269
  msgstr ""
1270
 
1271
+ #: lib/class-wp-smush.php:1025
1272
  #, php-format
1273
  msgid "<br /> Image Size: %s"
1274
  msgstr ""
1275
 
1276
+ #: lib/class-wp-smush.php:1061
1277
  msgid "Detailed stats for all the image sizes"
1278
  msgstr ""
1279
 
1280
+ #: lib/class-wp-smush.php:1061
1281
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:236
1282
  msgid "Smush stats"
1283
  msgstr ""
1284
 
1285
+ #: lib/class-wp-smush.php:1105
1286
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:263
1287
  msgid "Not processed"
1288
  msgstr ""
1289
 
1290
+ #: lib/class-wp-smush.php:1420
1291
  #, php-format
1292
  msgid ""
1293
  "When you upload an image to WordPress it automatically creates %s thumbnail "
1296
  "site we don’t Smush them. Pro users can override this."
1297
  msgstr ""
1298
 
1299
+ #: lib/class-wp-smush.php:1423
1300
  msgid ""
1301
  "Image couldn't be smushed as it exceeded the 1Mb size limit, Pro users can "
1302
+ "smush images with size up to 32Mb."
1303
  msgstr ""
1304
 
1305
+ #: lib/class-wp-smush.php:1425
1306
  msgid " Skipped"
1307
  msgstr ""
1308
 
1309
+ #: lib/class-wp-smush.php:1447
1310
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:439
1311
  msgid "Image size"
1312
  msgstr ""
1313
 
1314
+ #: lib/class-wp-smush.php:1448
1315
  #: lib/nextgen-integration/class-wp-smush-nextgen-stats.php:440
1316
  msgid "Savings"
1317
  msgstr ""
1318
 
1319
+ #: lib/class-wp-smush.php:1696
1320
  msgid "Restore original image."
1321
  msgstr ""
1322
 
1323
+ #: lib/class-wp-smush.php:1696
1324
  msgid "Restore image"
1325
  msgstr ""
1326
 
1327
+ #: lib/class-wp-smush.php:1744
1328
  msgid "Smush image including original file."
1329
  msgstr ""
1330
 
1331
+ #: lib/class-wp-smush.php:1744
1332
  msgid "Resmush image"
1333
  msgstr ""
1334
 
1347
  #, php-format
1348
  msgid ""
1349
  "Enable Super-smush in the %sSettings%s area to get even more savings with "
1350
+ "almost no visible drop in quality."
1351
  msgstr ""
1352
 
1353
  #: lib/nextgen-integration/class-wp-smush-nextgen-admin.php:440
1370
 
1371
  #: lib/nextgen-integration/class-wp-smush-nextgen-bulk.php:31
1372
  msgid ""
1373
+ "Smush request timed out. You can try setting a higher value ( > 60 ) for "
1374
  "`WP_SMUSH_API_TIMEOUT`."
1375
  msgstr ""
1376
 
1403
  msgstr ""
1404
 
1405
  #. Author URI of the plugin/theme
1406
+ msgid "https://premium.wpmudev.org/"
1407
  msgstr ""
lib/class-wp-smush-admin.php CHANGED
@@ -76,7 +76,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
76
 
77
  /**
78
  * @var array Attachment ids which are smushed
79
- *
80
  */
81
  public $smushed_attachments = array();
82
 
@@ -155,7 +155,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
155
  //Handle Smush Single Ajax
156
  add_action( 'wp_ajax_wp_smushit_manual', array( $this, 'smush_manual' ) );
157
 
158
- //Handle Restore operation
159
  add_action( 'wp_ajax_smush_resmush_image', array( $this, 'resmush_image' ) );
160
 
161
  //Scan images as per the latest settings
@@ -169,8 +169,6 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
169
  $this,
170
  'settings_link'
171
  ) );
172
- //Attachment status, Grid view
173
- add_filter( 'attachment_fields_to_edit', array( $this, 'filter_attachment_fields_to_edit' ), 10, 2 );
174
 
175
  // Smush Upgrade
176
  add_action( 'admin_notices', array( $this, 'smush_upgrade' ) );
@@ -217,46 +215,57 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
217
  */
218
  add_action( 'wp_ajax_hide_pagespeed_suggestion', array( $this, 'hide_pagespeed_suggestion' ) );
219
 
 
 
 
 
 
 
 
 
 
 
 
220
  }
221
 
222
  function init_settings() {
223
  $this->settings = array(
224
- 'networkwide' => array(
225
  'label' => esc_html__( 'Use network settings for all the sub-sites.', 'wp-smushit' ),
226
  'short_label' => esc_html__( 'Multisite Control', 'wp-smushit' ),
227
  'desc' => esc_html__( 'Choose whether you want to use network settings for all sub-sites or whether sub-site admins can control Smush’s settings.', 'wp-smushit' )
228
  ),
229
- 'auto' => array(
230
  'label' => esc_html__( 'Automatically smush my images on upload', 'wp-smushit' ),
231
  'short_label' => esc_html__( 'Automatic Smush', 'wp-smushit' ),
232
  'desc' => esc_html__( 'When you upload images to your site, Smush will automatically optimize them for you.', 'wp-smushit' )
233
  ),
234
- 'lossy' => array(
235
  'label' => esc_html__( 'Super-smush my images', 'wp-smushit' ),
236
  'short_label' => esc_html__( 'Super-smush', 'wp-smushit' ),
237
  'desc' => esc_html__( 'Compress images up to 2x more than regular smush with almost no visible drop in quality.', 'wp-smushit' )
238
  ),
239
- 'original' => array(
240
  'label' => esc_html__( 'Smush my original full-size images', 'wp-smushit' ),
241
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
242
- 'desc' => esc_html__( 'Every time you upload an image to your site, WordPress generates a resized version of that image for every image size that your theme has registered. This means there are multiple versions of your images in your media library. By default, Smush only compresses these generated image. Activate this setting to also smush your original images. Note: Activating this setting doesn’t usually improve page speed.', 'wp-smushit' )
243
  ),
244
- 'keep_exif' => array(
245
  'label' => esc_html__( 'Preserve my image EXIF data', 'wp-smushit' ),
246
  'short_label' => esc_html__( 'EXIF data', 'wp-smushit' ),
247
  'desc' => esc_html__( 'EXIF data stores camera settings, focal length, date, time and location information in image files. EXIF data makes image files larger but if you are a photographer you may want to preserve this information.', 'wp-smushit' )
248
  ),
249
- 'resize' => array(
250
  'label' => esc_html__( 'Resize my full size images', 'wp-smushit' ),
251
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
252
  'desc' => esc_html__( 'Set a maximum height and width for all images uploaded to your site so that any unnecessarily large images are automatically resized before they are added to the media gallery. This setting does not apply to images smushed using Directory Smush feature.', 'wp-smushit' )
253
  ),
254
- 'backup' => array(
255
  'label' => esc_html__( 'Make a copy of my full size images', 'wp-smushit' ),
256
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
257
  'desc' => esc_html__( 'Save your original full-size images separately so you can restore them at any point. Note: Keeping a copy of your original files can significantly increase the size of your uploads folder by nearly twice as much.', 'wp-smushit' )
258
  ),
259
- 'png_to_jpg' => array(
260
  'label' => esc_html__( 'Auto-convert PNGs to JPEGs (lossy)', 'wp-smushit' ),
261
  'short_label' => esc_html__( 'PNG to JPEG conversion', 'wp-smushit' ),
262
  'desc' => esc_html__( "When you compress a PNG file, Smush will check if converting the file to JPEG will further reduce its size.", 'wp-smushit' )
@@ -269,36 +278,12 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
269
  * Like Nextgen and S3 integration
270
  *
271
  */
272
- $this->settings = apply_filters('wp_smush_settings', $this->settings );
273
 
274
  //Initialize Image dimensions
275
  $this->image_sizes = $this->image_dimensions();
276
  }
277
 
278
- /**
279
- * Adds smush button and status to attachment modal and edit page if it's an image
280
- *
281
- *
282
- * @param array $form_fields
283
- * @param WP_Post $post
284
- *
285
- * @return array $form_fields
286
- */
287
- function filter_attachment_fields_to_edit( $form_fields, $post ) {
288
- if ( ! wp_attachment_is_image( $post->ID ) ) {
289
- return $form_fields;
290
- }
291
- $form_fields['wp_smush'] = array(
292
- 'label' => __( 'WP Smush', 'wp-smushit' ),
293
- 'input' => 'html',
294
- 'html' => $this->smush_status( $post->ID ),
295
- 'show_in_edit' => true,
296
- 'show_in_modal' => true,
297
- );
298
-
299
- return $form_fields;
300
- }
301
-
302
  /**
303
  * Add Bulk option settings page
304
  */
@@ -340,11 +325,6 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
340
  'jquery'
341
  ), WP_SMUSH_VERSION );
342
 
343
- //UI JS
344
- wp_register_script( 'wp-smushit-ui-js', WP_SMUSH_URL . 'assets/js/ui.js', array(
345
- 'jquery'
346
- ), WP_SMUSH_VERSION );
347
-
348
  /* Register Style */
349
  wp_register_style( 'wp-smushit-admin-css', WP_SMUSH_URL . 'assets/css/wp-smushit-admin.css', array(), WP_SMUSH_VERSION );
350
  //Notice CSS
@@ -386,20 +366,10 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
386
  }
387
  $this->load_shared_ui( $current_page );
388
  wp_enqueue_script( 'wp-smushit-admin-js' );
389
- wp_enqueue_script( 'wp-smushit-ui-js' );
390
 
391
  //Style
392
  wp_enqueue_style( 'wp-smushit-admin-css' );
393
 
394
- //Enqueue Google Fonts for Tooltip On Media Pages, These are loaded by shared UI, but we
395
- // aren't loading shared UI on media library pages
396
- if ( ! wp_style_is( 'wdev-plugin-google_fonts', 'enqueued' ) ) {
397
- wp_enqueue_style(
398
- 'wdev-plugin-google_fonts',
399
- 'https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700|Roboto:400,500,300,300italic'
400
- );
401
- }
402
-
403
  //Load on Smush all page only
404
  if ( 'media_page_wp-smush-bulk' == $current_page ) {
405
  //Load Jquery tree on specified page
@@ -409,6 +379,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
409
 
410
  // localize translatable strings for js
411
  $this->localize();
 
412
  }
413
 
414
  /**
@@ -437,8 +408,8 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
437
  'already_optimised' => esc_html__( "Already Optimized", "wp-smushit" ),
438
  'ajax_error' => esc_html__( "Ajax Error", "wp-smushit" ),
439
  'all_done' => esc_html__( "All Done!", "wp-smushit" ),
440
- 'all_done' => esc_html__( "All Done!", "wp-smushit" ),
441
- 'quick_setup_title' => __( "QUICK SETUP", "wp-smushit" ) . '<form method="post" class="smush-skip-setup float-r"><input type="hidden" name="action" value="skipSmushSetup"/>' . wp_nonce_field( 'skipSmushSetup', '_wpnonce', true, false ) . '<button type="submit" class="button button-small button-secondary skip-button">' . __( "Skip", "wp-smushit" ) . '</button></form>',
442
  );
443
 
444
  wp_localize_script( $handle, 'wp_smush_msgs', $wp_smush_msgs );
@@ -506,7 +477,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
506
  //Check if settings were changed for a multisite, and localize whether to run re-check on page load
507
  if ( is_multisite() && $wpsmush_settings->settings['networkwide'] && ! is_network_admin() ) {
508
  //If not same, Set a variable to run re-check on page load
509
- if( get_site_option( WP_SMUSH_PREFIX . 'run_recheck', false ) ) {
510
  wp_localize_script( 'wp-smushit-admin-js', 'wp_smush_run_re_check', array( 1 ) );
511
  }
512
  }
@@ -545,7 +516,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
545
  $this->set_pro_savings();
546
 
547
  // Set smushed count
548
- $this->smushed_count = ! empty( $this->smushed_attachments ) ? count( $this->smushed_attachments ) : 0;
549
  $this->remaining_count = $this->remaining_count();
550
  }
551
 
@@ -571,14 +542,14 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
571
  );
572
 
573
  // Default values.
574
- $savings = $this->stats['percent'] > 0 ? $this->stats['percent'] : 0;
575
  $savings_bytes = $this->stats['human'] > 0 ? $this->stats['bytes'] : "0";
576
- $orig_diff = 2.22058824;
577
- if ( ! empty( $savings ) && $savings > 49 ) {
578
- $orig_diff = 1.22054412;
579
  }
580
  //Calculate Pro savings
581
- if( !empty( $savings ) ) {
582
  $savings = $orig_diff * $savings;
583
  $savings_bytes = $orig_diff * $savings_bytes;
584
  }
@@ -606,9 +577,17 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
606
  @error_reporting( 0 );
607
 
608
  $should_continue = true;
 
 
609
 
610
  if ( empty( $_REQUEST['attachment_id'] ) ) {
611
- wp_send_json_error( 'missing id' );
 
 
 
 
 
 
612
  }
613
 
614
  if ( ! $this->validate_install() ) {
@@ -620,14 +599,15 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
620
  if ( ! $should_continue ) {
621
  wp_send_json_error(
622
  array(
623
- 'error' => 'bulk_request_image_limit_exceeded',
624
- 'continue' => false
 
 
625
  )
626
  );
627
  }
628
 
629
- $error = '';
630
- $send_error = false;
631
 
632
  $attachment_id = (int) ( $_REQUEST['attachment_id'] );
633
 
@@ -642,15 +622,17 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
642
  *
643
  */
644
  if ( ! apply_filters( 'wp_smush_image', true, $attachment_id ) ) {
645
- $send_error = true;
646
- $error = $this->filter_error( esc_html__( "Attachment $attachment_id was skipped.", "wp-smushit" ), $attachment_id );
 
 
647
  }
648
 
649
  //Get the file path for backup
650
  $attachment_file_path = $wpsmush_helper->get_attached_file( $attachment_id );
651
 
652
  //Download if not exists
653
- do_action('smush_file_exists', $attachment_file_path, $attachment_id );
654
 
655
  //Take Backup
656
  global $wpsmush_backup;
@@ -711,10 +693,12 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
711
 
712
  $send_error = true;
713
 
714
- $error = $smush->get_error_message();
715
  //Check for timeout error and suggest to filter timeout
716
- if ( strpos( $error, 'timed out' ) ) {
717
- $error = esc_html__( "Skipped due to a timeout error, You can increase the request timeout to make sure Smush has enough time to process larger files. `define('WP_SMUSH_API_TIMEOUT', 150);`", "wp-smushit" );
 
 
718
  }
719
  } else {
720
  //Check if a resmush request, update the resmush list
@@ -730,14 +714,16 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
730
  do_action( 'image_smushed', $attachment_id, $stats );
731
  }
732
 
733
- /**
734
- * Used internally to modify the error message
735
- *
736
- */
737
- $error = $this->filter_error( $error, $attachment_id );
 
 
738
 
739
  //Wrap the error message in div
740
- $error = !empty( $error ) ? sprintf( '<p class="wp-smush-error-message">%s</p>', $error ) : $error;
741
 
742
  if ( ! $send_error ) {
743
  //Update the bulk Limit count
@@ -746,9 +732,11 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
746
 
747
  //Send ajax response
748
  $send_error ? wp_send_json_error( array(
749
- 'stats' => $stats,
750
- 'error_msg' => $error,
751
- 'show_warning' => intval( $this->show_warning() )
 
 
752
 
753
  ) ) : wp_send_json_success( array(
754
  'stats' => $stats,
@@ -784,7 +772,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
784
  *
785
  */
786
  if ( ! apply_filters( 'wp_smush_image', true, $attachemnt_id ) ) {
787
- $error = $this->filter_error( esc_html__( "Attachment Skipped - Check `wp_smush_image` filter.", "wp-smushit" ), $attachemnt_id );
788
  wp_send_json_error( array(
789
  'error_msg' => sprintf( '<p class="wp-smush-error-message">%s</p>', $error ),
790
  'show_warning' => intval( $this->show_warning() )
@@ -827,7 +815,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
827
  $attachment_file_path = $wpsmush_helper->get_attached_file( $attachment_id );
828
 
829
  //Download file if not exists
830
- do_action('smush_file_exists', $attachment_file_path, $attachment_id );
831
 
832
  //Take Backup
833
  global $wpsmush_backup;
@@ -865,8 +853,9 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
865
  if ( $return ) {
866
  return array( 'error' => $smush->get_error_message() );
867
  } else {
868
- wp_send_json_error( array( 'error_msg' => '<p class="wp-smush-error-message">' . $smush->get_error_message() . '</p>',
869
- 'show_warning' => intval( $this->show_warning() )
 
870
  ) );
871
  }
872
  } else {
@@ -947,10 +936,10 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
947
  function remaining_count() {
948
 
949
  //Check if the resmush count is equal to remaining count
950
- $resmush_count = count( $this->resmush_ids );
951
  $remaining_count = $this->total_count - $this->smushed_count;
952
  if ( $resmush_count > 0 && $resmush_count == $this->smushed_count ) {
953
- return $resmush_count + $remaining_count ;
954
  }
955
 
956
  return $remaining_count;
@@ -968,8 +957,8 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
968
  }
969
 
970
  ?>
971
- <div id="select-bulk" class="wp-smush-bulk-wrap">
972
- <p>
973
  <?php
974
  printf(
975
  __(
@@ -979,15 +968,15 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
979
  count( $send_ids ), count( $received_ids )
980
  );
981
  ?>
982
- </p>
983
- <ul id="wp-smush-selected-images">
984
  <?php
985
  foreach ( $received_ids as $attachment_id ) {
986
  $this->attachment_ui( $attachment_id );
987
  }
988
  ?>
989
- </ul>
990
- </div>
991
  <?php
992
  }
993
 
@@ -1003,9 +992,9 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1003
  * @todo: remove id from global stats stored in db
1004
  *
1005
  */
1006
- function global_stats( $force_update = false, $exclude_resmush = true ) {
1007
 
1008
- if ( $exclude_resmush && ! $force_update && $stats = get_option( 'smush_global_stats' ) ) {
1009
  if ( ! empty( $stats ) && ! empty( $stats['size_before'] ) ) {
1010
  if ( isset( $stats['id'] ) ) {
1011
  unset( $stats['id'] );
@@ -1015,7 +1004,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1015
  }
1016
  }
1017
 
1018
- global $wpdb, $wpsmush_db;
1019
 
1020
  $smush_data = array(
1021
  'size_before' => 0,
@@ -1033,17 +1022,17 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1033
  $offset = 0;
1034
  $query_next = true;
1035
 
1036
- $supersmushed_count = 0;
1037
- $smush_data['total_images'] = 0;
1038
 
1039
  while ( $query_next ) {
1040
 
1041
- $global_data = $wpdb->get_results( $wpdb->prepare( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key=%s LIMIT $offset, $limit", "wp-smpro-smush-data" ) );
1042
  if ( ! empty( $global_data ) ) {
1043
  foreach ( $global_data as $data ) {
1044
 
1045
- //Skip attachment, if in re-smush list
1046
- if ( $exclude_resmush && ! empty( $this->resmush_ids ) && in_array( $data->post_id, $this->resmush_ids ) ) {
1047
  continue;
1048
  }
1049
 
@@ -1058,7 +1047,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1058
  }
1059
 
1060
  //If the image was optimised
1061
- if ( !empty( $meta['stats'] ) && $meta['stats']['size_before'] >= $meta['stats']['size_after'] ) {
1062
  //Total Image Smushed
1063
  $smush_data['total_images'] += ! empty( $meta['sizes'] ) ? count( $meta['sizes'] ) : 0;
1064
 
@@ -1116,14 +1105,14 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1116
  }
1117
 
1118
  //Add the resize savings to bytes
1119
- $smush_data['bytes'] += $smush_data['resize_savings'];
1120
  $smush_data['size_before'] += $resize_savings['size_before'];
1121
- $smush_data['size_after'] += $resize_savings['size_after'];
1122
 
1123
  //Add Conversion Savings
1124
- $smush_data['bytes'] += $smush_data['conversion_savings'];
1125
  $smush_data['size_before'] += $conversion_savings['size_before'];
1126
- $smush_data['size_after'] += $conversion_savings['size_after'];
1127
 
1128
  if ( $smush_data['size_before'] > 0 ) {
1129
  $smush_data['percent'] = ( $smush_data['bytes'] / $smush_data['size_before'] ) * 100;
@@ -1210,7 +1199,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1210
  * Shows Notice for free users, displays a discount coupon
1211
  */
1212
  function smush_upgrade() {
1213
- global $wpsmush_bulkui;
1214
 
1215
  //Return, If a pro user, or not super admin, or don't have the admin privilleges
1216
  if ( $this->validate_install() || ! current_user_can( 'edit_others_posts' ) || ! is_super_admin() ) {
@@ -1275,7 +1264,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1275
 
1276
  //Update the offset
1277
  $offset += $limit;
1278
- if ( !empty( $this->total_count ) && $this->total_count <= $offset ) {
1279
  $query_next = false;
1280
  } else if ( ! $results || empty( $results ) ) {
1281
  $query_next = false;
@@ -1376,7 +1365,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1376
  } elseif ( ! empty( $smushed['error'] ) ) {
1377
 
1378
  //Send Error Message
1379
- wp_send_json_error( array( 'message' => '<div class="wp-smush-error">' . __( "Unable to smush image", "wp-smushit" ) . '</div>' ) );
1380
 
1381
  }
1382
  }
@@ -1402,11 +1391,11 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1402
  //If there aren't any images in the library, return the notice
1403
  if ( 0 == $wpsmush_db->get_media_attachments( true ) ) {
1404
  $notice = esc_html__( "We haven’t found any images in your media library yet so there’s no smushing to be done! Once you upload images, reload this page and start playing!", "wp-smushit" );
1405
- $resp = '<div class="wp-smush-notice wp-smush-resmush-message" tabindex="0"><i class="dev-icon dev-icon-tick"></i> ' . $notice . '
1406
- <i class="dev-icon dev-icon-cross"></i>
1407
  </div>';
1408
 
1409
- delete_site_option( WP_SMUSH_PREFIX . 'run_recheck');
1410
  wp_send_json_success( array(
1411
  'notice' => $resp,
1412
  'super_smush' => $WpSmush->lossy_enabled
@@ -1417,8 +1406,8 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1417
  //Default Notice, to be displayed at the top of page
1418
  //Show a message, at the top
1419
  $message = esc_html__( 'Yay! All images are optimized as per your current settings.', 'wp-smushit' );
1420
- $resp = '<div class="wp-smush-notice wp-smush-resmush-message" tabindex="0"><i class="dev-icon dev-icon-tick"></i> ' . $message . '
1421
- <i class="dev-icon dev-icon-cross"></i>
1422
  </div>';
1423
 
1424
  //Scanning for NextGen or Media Library
@@ -1451,7 +1440,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1451
 
1452
  if ( 0 == $remaining_count && ! $WpSmush->lossy_enabled && ! $WpSmush->smush_original && $WpSmush->keep_exif && ! $upfront_active ) {
1453
  delete_option( $key );
1454
- delete_site_option( WP_SMUSH_PREFIX . 'run_recheck');
1455
  wp_send_json_success( array( 'notice' => $resp ) );
1456
  }
1457
 
@@ -1474,7 +1463,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1474
  $image_count = $super_smushed_count = $smushed_count = 0;
1475
  //Check if any of the smushed image needs to be resmushed
1476
  if ( ! empty( $attachments ) && is_array( $attachments ) ) {
1477
- $stats = array(
1478
  'size_before' => 0,
1479
  'size_after' => 0,
1480
  'savings_resize' => 0,
@@ -1486,7 +1475,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1486
 
1487
  foreach ( $attachments as $attachment_k => $attachment ) {
1488
 
1489
- //Skip if already in resmuhs list
1490
  if ( ! empty( $wpsmushit_admin->resmush_ids ) && in_array( $attachment, $wpsmushit_admin->resmush_ids ) ) {
1491
  continue;
1492
  }
@@ -1620,18 +1609,18 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1620
 
1621
  if ( ! empty( $resmush_list ) || $remaining_count > 0 ) {
1622
  $message = sprintf( esc_html__( "You have images that need smushing. %sBulk smush now!%s", "wp-smushit" ), '<a href="#" class="wp-smush-trigger-bulk">', '</a>' );
1623
- $resp = '<div class="wp-smush-notice wp-smush-resmush-message wp-smush-resmush-pending" tabindex="0"><i class="dev-icon dev-icon-tick"></i> ' . $message . '
1624
- <i class="dev-icon dev-icon-cross"></i>
1625
  </div>';
1626
  }
1627
 
1628
  //Append the directory smush stats
1629
- $dir_smush_stats = get_option('dir_smush_stats');
1630
  if ( ! empty( $dir_smush_stats ) && is_array( $dir_smush_stats ) ) {
1631
 
1632
  if ( ! empty( $dir_smush_stats['dir_smush'] ) && ! empty( $dir_smush_stats['optimised'] ) ) {
1633
  $dir_smush_stats = $dir_smush_stats['dir_smush'];
1634
- $image_count += $dir_smush_stats['optimised'];
1635
  }
1636
 
1637
  //Add directory smush stats if not empty
@@ -1666,7 +1655,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1666
  $return['super_smush_stats'] = sprintf( '<strong><span class="smushed-count">%d</span>/%d</strong>', $ss_count, $wpsmushnextgenadmin->total_count );
1667
  }
1668
 
1669
- delete_site_option( WP_SMUSH_PREFIX . 'run_recheck');
1670
  wp_send_json_success( $return );
1671
 
1672
  }
@@ -1814,15 +1803,21 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1814
  */
1815
  function delete_resmush_list() {
1816
 
1817
- global $wpsmush_db;
1818
  $stats = array();
1819
 
1820
- $key = ! empty( $_POST['type'] ) && 'nextgen' == $_POST['type'] ? 'wp-smush-nextgen-resmush-list' : 'wp-smush-resmush-list';
 
1821
  if ( 'nextgen' != $_POST['type'] ) {
1822
  $resmush_list = get_option( $key );
1823
  if ( ! empty( $resmush_list ) && is_array( $resmush_list ) ) {
1824
  $stats = $wpsmush_db->get_savings_for_attachments( $resmush_list );
1825
  }
 
 
 
 
 
1826
  }
1827
 
1828
  //Delete the resmush list
@@ -1871,6 +1866,13 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1871
 
1872
  $image_sizes = get_intermediate_image_sizes();
1873
 
 
 
 
 
 
 
 
1874
  // Create the full array with sizes and crop info
1875
  foreach ( $image_sizes as $size ) {
1876
  if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
@@ -1928,7 +1930,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1928
  */
1929
  function query_limit() {
1930
  $limit = apply_filters( 'wp_smush_query_limit', 2000 );
1931
- $limit = !empty( $this->total_count ) && $limit > $this->total_count ? $this->total_count : $limit;
1932
  $limit = intval( $limit );
1933
 
1934
  return $limit;
@@ -1984,11 +1986,11 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
1984
  return true;
1985
  }
1986
 
1987
- $upgrade_url = add_query_arg(
1988
  array(
1989
- 'utm_source' => 'Smush-Free',
1990
- 'utm_medium' => 'Banner',
1991
- 'utm_campaign' => 'now-with-async'
1992
  ),
1993
  $this->upgrade_url
1994
  );
@@ -2004,11 +2006,11 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2004
  //Upgrade link for free users
2005
  $message_s .= ! $this->validate_install() ? sprintf( esc_html__( " %sFind out more here >>%s", "wp-smushit" ), $upgrade_link, '</a>' ) : '';
2006
  ?>
2007
- <div class="notice notice-info is-dismissible wp-smush-update-info">
2008
- <p><?php echo $message_s; ?></p>
2009
- </div><?php
2010
  //Notice JS
2011
- wp_enqueue_script('wp-smushit-notice-js', '', array(), '', true );
2012
  }
2013
 
2014
  /**
@@ -2019,23 +2021,23 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2019
  * @return bool true/false Whether to skip the image size or not
2020
  *
2021
  */
2022
- function skip_image_size ( $size = '' ) {
2023
  global $wpsmush_settings;
2024
 
2025
  //No image size specified, Don't skip
2026
- if( empty( $size ) ) {
2027
  return false;
2028
  }
2029
 
2030
- $image_sizes = $wpsmush_settings->get_setting( WP_SMUSH_PREFIX.'image_sizes' );
2031
 
2032
  //If Images sizes aren't set, don't skip any of the image size
2033
- if( false === $image_sizes ) {
2034
  return false;
2035
  }
2036
 
2037
  //Check if the size is in the smush list
2038
- if( is_array( $image_sizes ) && !in_array( $size, $image_sizes ) ) {
2039
  return true;
2040
  }
2041
 
@@ -2048,24 +2050,28 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2048
  function image_dimensions() {
2049
  global $_wp_additional_image_sizes;
2050
  $additional_sizes = get_intermediate_image_sizes();
2051
- $sizes = array();
 
 
 
 
2052
 
2053
  // Create the full array with sizes and crop info
2054
- foreach( $additional_sizes as $_size ) {
2055
  if ( in_array( $_size, array( 'thumbnail', 'medium', 'large' ) ) ) {
2056
- $sizes[ $_size ]['width'] = get_option( $_size . '_size_w' );
2057
  $sizes[ $_size ]['height'] = get_option( $_size . '_size_h' );
2058
- $sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' );
2059
  } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
2060
  $sizes[ $_size ] = array(
2061
- 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
2062
  'height' => $_wp_additional_image_sizes[ $_size ]['height'],
2063
- 'crop' => $_wp_additional_image_sizes[ $_size ]['crop']
2064
  );
2065
  }
2066
  }
2067
  //Medium Large
2068
- if ( !isset( $sizes['medium_large'] ) || empty( $sizes['medium_large'] ) ) {
2069
  $width = intval( get_option( 'medium_large_size_w' ) );
2070
  $height = intval( get_option( 'medium_large_size_h' ) );
2071
 
@@ -2084,17 +2090,17 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2084
  *
2085
  */
2086
  function media_library_membership_notice() {
2087
- global $wpsmush_bulkui;
2088
 
2089
  //No need to print it for free version
2090
- if( !$this->validate_install() ) {
2091
  return;
2092
  }
2093
  //Show it on Media Library page only
2094
- $screen = get_current_screen();
2095
- $screen_id = !empty( $screen ) ? $screen->id : '';
2096
  //Do not show notice anywhere else
2097
- if( empty( $screen ) || 'upload' != $screen_id ) {
2098
  return;
2099
  }
2100
 
@@ -2143,7 +2149,7 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2143
  function setupSmush() {
2144
 
2145
  if ( ! empty( $_POST['_wpnonce'] ) && ! wp_verify_nonce( $_POST['_wpnonce'], 'setupSmush' ) ) {
2146
- wp_send_json_error("Nonce verification failed");
2147
  }
2148
 
2149
  global $wpsmush_settings, $wpsmushit_admin, $WpSmush;
@@ -2166,10 +2172,10 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2166
  's3'
2167
  );
2168
 
2169
- foreach( $wpsmushit_admin->settings as $name => $values ) {
2170
 
2171
  //Update only specified settings
2172
- if( in_array( $name, $exclude ) ) {
2173
  continue;
2174
  }
2175
 
@@ -2179,10 +2185,10 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2179
  }
2180
 
2181
  //Update value in settings
2182
- if( in_array( WP_SMUSH_PREFIX . $name , $quick_settings ) ) {
2183
- $settings[$name] = 1;
2184
- }else{
2185
- $settings[$name] = 0;
2186
  }
2187
  }
2188
 
@@ -2190,12 +2196,16 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2190
  $resize_sizes['width'] = isset( $_POST['wp-smush-resize_width'] ) ? intval( $_POST['wp-smush-resize_width'] ) : 0;
2191
  $resize_sizes['height'] = isset( $_POST['wp-smush-resize_height'] ) ? intval( $_POST['wp-smush-resize_height'] ) : 0;
2192
 
 
 
 
 
2193
  // update the resize sizes
2194
  $wpsmush_settings->update_setting( WP_SMUSH_PREFIX . 'resize_sizes', $resize_sizes );
2195
 
2196
  $wpsmush_settings->update_setting( WP_SMUSH_PREFIX . 'last_settings', $settings );
2197
 
2198
- update_site_option('skip-smush-setup', 1 );
2199
 
2200
  wp_send_json_success();
2201
 
@@ -2205,10 +2215,89 @@ if ( ! class_exists( 'WpSmushitAdmin' ) ) {
2205
  * Store user preference for Pagespeed suggestions
2206
  */
2207
  function hide_pagespeed_suggestion() {
2208
- update_network_option( get_current_network_id(), WP_SMUSH_PREFIX . 'hide_pagespeed_suggestion', true );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2209
  wp_send_json_success();
2210
  }
2211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2212
  }
2213
 
2214
  global $wpsmushit_admin;
76
 
77
  /**
78
  * @var array Attachment ids which are smushed
79
+ *
80
  */
81
  public $smushed_attachments = array();
82
 
155
  //Handle Smush Single Ajax
156
  add_action( 'wp_ajax_wp_smushit_manual', array( $this, 'smush_manual' ) );
157
 
158
+ //Handle resmush operation
159
  add_action( 'wp_ajax_smush_resmush_image', array( $this, 'resmush_image' ) );
160
 
161
  //Scan images as per the latest settings
169
  $this,
170
  'settings_link'
171
  ) );
 
 
172
 
173
  // Smush Upgrade
174
  add_action( 'admin_notices', array( $this, 'smush_upgrade' ) );
215
  */
216
  add_action( 'wp_ajax_hide_pagespeed_suggestion', array( $this, 'hide_pagespeed_suggestion' ) );
217
 
218
+ /**
219
+ * Hide API Message
220
+ */
221
+ add_action( 'wp_ajax_hide_api_message', array( $this, 'hide_api_message' ) );
222
+
223
+ //Return Smush status for attachment opened in Grid view
224
+ add_action( 'wp_ajax_smush_get_attachment_details', array( $this, 'smush_send_status' ) );
225
+
226
+ //Send smush stats
227
+ add_action( 'wp_ajax_get_stats', array( $this, 'get_stats' ) );
228
+
229
  }
230
 
231
  function init_settings() {
232
  $this->settings = array(
233
+ 'networkwide' => array(
234
  'label' => esc_html__( 'Use network settings for all the sub-sites.', 'wp-smushit' ),
235
  'short_label' => esc_html__( 'Multisite Control', 'wp-smushit' ),
236
  'desc' => esc_html__( 'Choose whether you want to use network settings for all sub-sites or whether sub-site admins can control Smush’s settings.', 'wp-smushit' )
237
  ),
238
+ 'auto' => array(
239
  'label' => esc_html__( 'Automatically smush my images on upload', 'wp-smushit' ),
240
  'short_label' => esc_html__( 'Automatic Smush', 'wp-smushit' ),
241
  'desc' => esc_html__( 'When you upload images to your site, Smush will automatically optimize them for you.', 'wp-smushit' )
242
  ),
243
+ 'lossy' => array(
244
  'label' => esc_html__( 'Super-smush my images', 'wp-smushit' ),
245
  'short_label' => esc_html__( 'Super-smush', 'wp-smushit' ),
246
  'desc' => esc_html__( 'Compress images up to 2x more than regular smush with almost no visible drop in quality.', 'wp-smushit' )
247
  ),
248
+ 'original' => array(
249
  'label' => esc_html__( 'Smush my original full-size images', 'wp-smushit' ),
250
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
251
+ 'desc' => esc_html__( 'Every time you upload an image to your site, WordPress generates a resized version of that image for every default and/or custom image size that your theme has registered. This means there are multiple versions of your images in your media library. By default, Smush only compresses these generated image. Activate this setting to also smush your original images. Note: Activating this setting doesn’t usually improve page speed.', 'wp-smushit' )
252
  ),
253
+ 'keep_exif' => array(
254
  'label' => esc_html__( 'Preserve my image EXIF data', 'wp-smushit' ),
255
  'short_label' => esc_html__( 'EXIF data', 'wp-smushit' ),
256
  'desc' => esc_html__( 'EXIF data stores camera settings, focal length, date, time and location information in image files. EXIF data makes image files larger but if you are a photographer you may want to preserve this information.', 'wp-smushit' )
257
  ),
258
+ 'resize' => array(
259
  'label' => esc_html__( 'Resize my full size images', 'wp-smushit' ),
260
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
261
  'desc' => esc_html__( 'Set a maximum height and width for all images uploaded to your site so that any unnecessarily large images are automatically resized before they are added to the media gallery. This setting does not apply to images smushed using Directory Smush feature.', 'wp-smushit' )
262
  ),
263
+ 'backup' => array(
264
  'label' => esc_html__( 'Make a copy of my full size images', 'wp-smushit' ),
265
  'short_label' => esc_html__( 'Full size images', 'wp-smushit' ),
266
  'desc' => esc_html__( 'Save your original full-size images separately so you can restore them at any point. Note: Keeping a copy of your original files can significantly increase the size of your uploads folder by nearly twice as much.', 'wp-smushit' )
267
  ),
268
+ 'png_to_jpg' => array(
269
  'label' => esc_html__( 'Auto-convert PNGs to JPEGs (lossy)', 'wp-smushit' ),
270
  'short_label' => esc_html__( 'PNG to JPEG conversion', 'wp-smushit' ),
271
  'desc' => esc_html__( "When you compress a PNG file, Smush will check if converting the file to JPEG will further reduce its size.", 'wp-smushit' )
278
  * Like Nextgen and S3 integration
279
  *
280
  */
281
+ $this->settings = apply_filters( 'wp_smush_settings', $this->settings );
282
 
283
  //Initialize Image dimensions
284
  $this->image_sizes = $this->image_dimensions();
285
  }
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  /**
288
  * Add Bulk option settings page
289
  */
325
  'jquery'
326
  ), WP_SMUSH_VERSION );
327
 
 
 
 
 
 
328
  /* Register Style */
329
  wp_register_style( 'wp-smushit-admin-css', WP_SMUSH_URL . 'assets/css/wp-smushit-admin.css', array(), WP_SMUSH_VERSION );
330
  //Notice CSS
366
  }
367
  $this->load_shared_ui( $current_page );
368
  wp_enqueue_script( 'wp-smushit-admin-js' );
 
369
 
370
  //Style
371
  wp_enqueue_style( 'wp-smushit-admin-css' );
372
 
 
 
 
 
 
 
 
 
 
373
  //Load on Smush all page only
374
  if ( 'media_page_wp-smush-bulk' == $current_page ) {
375
  //Load Jquery tree on specified page
379
 
380
  // localize translatable strings for js
381
  $this->localize();
382
+ $this->extend_media_modal();
383
  }
384
 
385
  /**
408
  'already_optimised' => esc_html__( "Already Optimized", "wp-smushit" ),
409
  'ajax_error' => esc_html__( "Ajax Error", "wp-smushit" ),
410
  'all_done' => esc_html__( "All Done!", "wp-smushit" ),
411
+ 'quick_setup_title' => __( "QUICK SETUP", "wp-smushit" ) . '<form method="post" class="smush-skip-setup float-r"><input type="hidden" name="action" value="skipSmushSetup"/>' . wp_nonce_field( 'skipSmushSetup', '_wpnonce', true, false ) . '<button type="submit" class="button button-small button-secondary skip-button">' . __( "Skip", "wp-smushit" ) . '</button></form>',
412
+ 'sync_stats' => esc_html__( "Give us a moment while we sync the stats.", "wp-smushit" )
413
  );
414
 
415
  wp_localize_script( $handle, 'wp_smush_msgs', $wp_smush_msgs );
477
  //Check if settings were changed for a multisite, and localize whether to run re-check on page load
478
  if ( is_multisite() && $wpsmush_settings->settings['networkwide'] && ! is_network_admin() ) {
479
  //If not same, Set a variable to run re-check on page load
480
+ if ( get_site_option( WP_SMUSH_PREFIX . 'run_recheck', false ) ) {
481
  wp_localize_script( 'wp-smushit-admin-js', 'wp_smush_run_re_check', array( 1 ) );
482
  }
483
  }
516
  $this->set_pro_savings();
517
 
518
  // Set smushed count
519
+ $this->smushed_count = ! empty( $this->smushed_attachments ) ? count( $this->smushed_attachments ) : 0;
520
  $this->remaining_count = $this->remaining_count();
521
  }
522
 
542
  );
543
 
544
  // Default values.
545
+ $savings = $this->stats['percent'] > 0 ? $this->stats['percent'] : 0;
546
  $savings_bytes = $this->stats['human'] > 0 ? $this->stats['bytes'] : "0";
547
+ $orig_diff = 2.22058824;
548
+ if ( ! empty( $savings ) && $savings > 49 ) {
549
+ $orig_diff = 1.22054412;
550
  }
551
  //Calculate Pro savings
552
+ if ( ! empty( $savings ) ) {
553
  $savings = $orig_diff * $savings;
554
  $savings_bytes = $orig_diff * $savings_bytes;
555
  }
577
  @error_reporting( 0 );
578
 
579
  $should_continue = true;
580
+ $send_error = false;
581
+ $error_message = '';
582
 
583
  if ( empty( $_REQUEST['attachment_id'] ) ) {
584
+ wp_send_json_error(
585
+ array(
586
+ 'error' => 'missing_id',
587
+ 'error_message' => sprintf( esc_html__( "%s%d%s Attachment(s) could not be smushed, as no ID was received.", "wp-smushit" ), '<span class="image-error-count">', 1, '</span>' ),
588
+ 'error_class' => 'no_id'
589
+ )
590
+ );
591
  }
592
 
593
  if ( ! $this->validate_install() ) {
599
  if ( ! $should_continue ) {
600
  wp_send_json_error(
601
  array(
602
+ 'error' => 'bulk_request_image_limit_exceeded',
603
+ 'error_message' => sprintf( esc_html__( "You've exceeded Bulk Smush limit of %d images at once for standard users. Click on Bulk Smush to continue.", "wp-smushit" ), $this->max_free_bulk ),
604
+ 'error_class' => 'limit_exceeded',
605
+ 'continue' => false
606
  )
607
  );
608
  }
609
 
610
+ $error = $error_class = '';
 
611
 
612
  $attachment_id = (int) ( $_REQUEST['attachment_id'] );
613
 
622
  *
623
  */
624
  if ( ! apply_filters( 'wp_smush_image', true, $attachment_id ) ) {
625
+ $send_error = true;
626
+ $error = 'skipped';
627
+ $error_message = $this->filter_error( sprintf( esc_html__( "%s%d%s Attachment(s) were skipped.", "wp-smushit" ), '<span class="image-error-count">', 1, '</span>' ) );
628
+ $error_class = 'skipped';
629
  }
630
 
631
  //Get the file path for backup
632
  $attachment_file_path = $wpsmush_helper->get_attached_file( $attachment_id );
633
 
634
  //Download if not exists
635
+ do_action( 'smush_file_exists', $attachment_file_path, $attachment_id );
636
 
637
  //Take Backup
638
  global $wpsmush_backup;
693
 
694
  $send_error = true;
695
 
696
+ $error_message = $smush->get_error_message();
697
  //Check for timeout error and suggest to filter timeout
698
+ if ( strpos( $error_message, 'timed out' ) ) {
699
+ $error = 'timeout';
700
+ $error_message = sprintf( esc_html__( "%s%d%s Attachment(s) were not smushed due to a timeout error, You can increase the request timeout to make sure Smush has enough time to process larger files. `define('WP_SMUSH_API_TIMEOUT', 150);`", "wp-smushit" ), '<span class="image-error-count">', 1, "</span>" );
701
+ $error_class = ' timeout';
702
  }
703
  } else {
704
  //Check if a resmush request, update the resmush list
714
  do_action( 'image_smushed', $attachment_id, $stats );
715
  }
716
 
717
+ if ( ! empty( $error_message ) ) {
718
+ /**
719
+ * Used internally to modify the error message
720
+ *
721
+ */
722
+ $error_message = $this->filter_error( $error_message, $attachment_id, $error );
723
+ }
724
 
725
  //Wrap the error message in div
726
+ // $error = !empty( $error ) ? sprintf( '<p class="wp-smush-error-message'. $error_class .'">%s</p>', $error ) : $error;
727
 
728
  if ( ! $send_error ) {
729
  //Update the bulk Limit count
732
 
733
  //Send ajax response
734
  $send_error ? wp_send_json_error( array(
735
+ 'stats' => $stats,
736
+ 'error' => $error,
737
+ 'error_message' => $error_message,
738
+ 'error_class' => $error_class,
739
+ 'show_warning' => intval( $this->show_warning() )
740
 
741
  ) ) : wp_send_json_success( array(
742
  'stats' => $stats,
772
  *
773
  */
774
  if ( ! apply_filters( 'wp_smush_image', true, $attachemnt_id ) ) {
775
+ $error = $this->filter_error( esc_html__( "Attachment Skipped - Check `wp_smush_image` filter.", "wp-smushit" ), $attachemnt_id );
776
  wp_send_json_error( array(
777
  'error_msg' => sprintf( '<p class="wp-smush-error-message">%s</p>', $error ),
778
  'show_warning' => intval( $this->show_warning() )
815
  $attachment_file_path = $wpsmush_helper->get_attached_file( $attachment_id );
816
 
817
  //Download file if not exists
818
+ do_action( 'smush_file_exists', $attachment_file_path, $attachment_id );
819
 
820
  //Take Backup
821
  global $wpsmush_backup;
853
  if ( $return ) {
854
  return array( 'error' => $smush->get_error_message() );
855
  } else {
856
+ wp_send_json_error( array(
857
+ 'error_msg' => '<p class="wp-smush-error-message">' . $smush->get_error_message() . '</p>',
858
+ 'show_warning' => intval( $this->show_warning() )
859
  ) );
860
  }
861
  } else {
936
  function remaining_count() {
937
 
938
  //Check if the resmush count is equal to remaining count
939
+ $resmush_count = count( $this->resmush_ids );
940
  $remaining_count = $this->total_count - $this->smushed_count;
941
  if ( $resmush_count > 0 && $resmush_count == $this->smushed_count ) {
942
+ return $resmush_count + $remaining_count;
943
  }
944
 
945
  return $remaining_count;
957
  }
958
 
959
  ?>
960
+ <div id="select-bulk" class="wp-smush-bulk-wrap">
961
+ <p>
962
  <?php
963
  printf(
964
  __(
968
  count( $send_ids ), count( $received_ids )
969
  );
970
  ?>
971
+ </p>
972
+ <ul id="wp-smush-selected-images">
973
  <?php
974
  foreach ( $received_ids as $attachment_id ) {
975
  $this->attachment_ui( $attachment_id );
976
  }
977
  ?>
978
+ </ul>
979
+ </div>
980
  <?php
981
  }
982
 
992
  * @todo: remove id from global stats stored in db
993
  *
994
  */
995
+ function global_stats( $force_update = false ) {
996
 
997
+ if ( ! $force_update && $stats = get_option( 'smush_global_stats' ) ) {
998
  if ( ! empty( $stats ) && ! empty( $stats['size_before'] ) ) {
999
  if ( isset( $stats['id'] ) ) {
1000
  unset( $stats['id'] );
1004
  }
1005
  }
1006
 
1007
+ global $wpdb, $wpsmush_db, $WpSmush;
1008
 
1009
  $smush_data = array(
1010
  'size_before' => 0,
1022
  $offset = 0;
1023
  $query_next = true;
1024
 
1025
+ $supersmushed_count = 0;
1026
+ $smush_data['total_images'] = 0;
1027
 
1028
  while ( $query_next ) {
1029
 
1030
+ $global_data = $wpdb->get_results( $wpdb->prepare( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key=%s LIMIT $offset, $limit", $WpSmush->smushed_meta_key ) );
1031
  if ( ! empty( $global_data ) ) {
1032
  foreach ( $global_data as $data ) {
1033
 
1034
+ //Skip attachment, if in re-smush list, or not in attachment list
1035
+ if ( ( ! empty( $this->resmush_ids ) && in_array( $data->post_id, $this->resmush_ids ) ) || ! in_array( $data->post_id, $this->attachments ) ) {
1036
  continue;
1037
  }
1038
 
1047
  }
1048
 
1049
  //If the image was optimised
1050
+ if ( ! empty( $meta['stats'] ) && $meta['stats']['size_before'] >= $meta['stats']['size_after'] ) {
1051
  //Total Image Smushed
1052
  $smush_data['total_images'] += ! empty( $meta['sizes'] ) ? count( $meta['sizes'] ) : 0;
1053
 
1105
  }
1106
 
1107
  //Add the resize savings to bytes
1108
+ $smush_data['bytes'] += $smush_data['resize_savings'];
1109
  $smush_data['size_before'] += $resize_savings['size_before'];
1110
+ $smush_data['size_after'] += $resize_savings['size_after'];
1111
 
1112
  //Add Conversion Savings
1113
+ $smush_data['bytes'] += $smush_data['conversion_savings'];
1114
  $smush_data['size_before'] += $conversion_savings['size_before'];
1115
+ $smush_data['size_after'] += $conversion_savings['size_after'];
1116
 
1117
  if ( $smush_data['size_before'] > 0 ) {
1118
  $smush_data['percent'] = ( $smush_data['bytes'] / $smush_data['size_before'] ) * 100;
1199
  * Shows Notice for free users, displays a discount coupon
1200
  */
1201
  function smush_upgrade() {
1202
+ global $wpsmush_bulkui;
1203
 
1204
  //Return, If a pro user, or not super admin, or don't have the admin privilleges
1205
  if ( $this->validate_install() || ! current_user_can( 'edit_others_posts' ) || ! is_super_admin() ) {
1264
 
1265
  //Update the offset
1266
  $offset += $limit;
1267
+ if ( ! empty( $this->total_count ) && $this->total_count <= $offset ) {
1268
  $query_next = false;
1269
  } else if ( ! $results || empty( $results ) ) {
1270
  $query_next = false;
1365
  } elseif ( ! empty( $smushed['error'] ) ) {
1366
 
1367
  //Send Error Message
1368
+ wp_send_json_error( array( 'message' => '<div class="wp-smush-error">' . $smushed['error'] . '</div>' ) );
1369
 
1370
  }
1371
  }
1391
  //If there aren't any images in the library, return the notice
1392
  if ( 0 == $wpsmush_db->get_media_attachments( true ) ) {
1393
  $notice = esc_html__( "We haven’t found any images in your media library yet so there’s no smushing to be done! Once you upload images, reload this page and start playing!", "wp-smushit" );
1394
+ $resp = '<div class="wp-smush-notice wp-smush-resmush-message" tabindex="0"><i class="icon-fi-check-tick"></i> ' . $notice . '
1395
+ <i class="icon-fi-close"></i>
1396
  </div>';
1397
 
1398
+ delete_site_option( WP_SMUSH_PREFIX . 'run_recheck' );
1399
  wp_send_json_success( array(
1400
  'notice' => $resp,
1401
  'super_smush' => $WpSmush->lossy_enabled
1406
  //Default Notice, to be displayed at the top of page
1407
  //Show a message, at the top
1408
  $message = esc_html__( 'Yay! All images are optimized as per your current settings.', 'wp-smushit' );
1409
+ $resp = '<div class="wp-smush-notice wp-smush-resmush-message" tabindex="0"><i class="icon-fi-check-tick"></i> ' . $message . '
1410
+ <i class="icon-fi-close"></i>
1411
  </div>';
1412
 
1413
  //Scanning for NextGen or Media Library
1440
 
1441
  if ( 0 == $remaining_count && ! $WpSmush->lossy_enabled && ! $WpSmush->smush_original && $WpSmush->keep_exif && ! $upfront_active ) {
1442
  delete_option( $key );
1443
+ delete_site_option( WP_SMUSH_PREFIX . 'run_recheck' );
1444
  wp_send_json_success( array( 'notice' => $resp ) );
1445
  }
1446
 
1463
  $image_count = $super_smushed_count = $smushed_count = 0;
1464
  //Check if any of the smushed image needs to be resmushed
1465
  if ( ! empty( $attachments ) && is_array( $attachments ) ) {
1466
+ $stats = array(
1467
  'size_before' => 0,
1468
  'size_after' => 0,
1469
  'savings_resize' => 0,
1475
 
1476
  foreach ( $attachments as $attachment_k => $attachment ) {
1477
 
1478
+ //Skip if already in resmush list
1479
  if ( ! empty( $wpsmushit_admin->resmush_ids ) && in_array( $attachment, $wpsmushit_admin->resmush_ids ) ) {
1480
  continue;
1481
  }
1609
 
1610
  if ( ! empty( $resmush_list ) || $remaining_count > 0 ) {
1611
  $message = sprintf( esc_html__( "You have images that need smushing. %sBulk smush now!%s", "wp-smushit" ), '<a href="#" class="wp-smush-trigger-bulk">', '</a>' );
1612
+ $resp = '<div class="wp-smush-notice wp-smush-resmush-message wp-smush-resmush-pending" tabindex="0"><i class="icon-fi-check-tick"></i> ' . $message . '
1613
+ <i class="icon-fi-close"></i>
1614
  </div>';
1615
  }
1616
 
1617
  //Append the directory smush stats
1618
+ $dir_smush_stats = get_option( 'dir_smush_stats' );
1619
  if ( ! empty( $dir_smush_stats ) && is_array( $dir_smush_stats ) ) {
1620
 
1621
  if ( ! empty( $dir_smush_stats['dir_smush'] ) && ! empty( $dir_smush_stats['optimised'] ) ) {
1622
  $dir_smush_stats = $dir_smush_stats['dir_smush'];
1623
+ $image_count += $dir_smush_stats['optimised'];
1624
  }
1625
 
1626
  //Add directory smush stats if not empty
1655
  $return['super_smush_stats'] = sprintf( '<strong><span class="smushed-count">%d</span>/%d</strong>', $ss_count, $wpsmushnextgenadmin->total_count );
1656
  }
1657
 
1658
+ delete_site_option( WP_SMUSH_PREFIX . 'run_recheck' );
1659
  wp_send_json_success( $return );
1660
 
1661
  }
1803
  */
1804
  function delete_resmush_list() {
1805
 
1806
+ global $wpsmush_db, $wpsmushnextgenstats, $wpsmushnextgenadmin;
1807
  $stats = array();
1808
 
1809
+ $key = ! empty( $_POST['type'] ) && 'nextgen' == $_POST['type'] ? 'wp-smush-nextgen-resmush-list' : 'wp-smush-resmush-list';
1810
+ //For media Library
1811
  if ( 'nextgen' != $_POST['type'] ) {
1812
  $resmush_list = get_option( $key );
1813
  if ( ! empty( $resmush_list ) && is_array( $resmush_list ) ) {
1814
  $stats = $wpsmush_db->get_savings_for_attachments( $resmush_list );
1815
  }
1816
+ } else {
1817
+ //For Nextgen. Get the stats
1818
+ $stats = $wpsmushnextgenstats->get_smush_stats();
1819
+
1820
+ $stats['count_images'] = $wpsmushnextgenadmin->smushed_count;
1821
  }
1822
 
1823
  //Delete the resmush list
1866
 
1867
  $image_sizes = get_intermediate_image_sizes();
1868
 
1869
+ //If image sizes are filtered and no image size list is returned
1870
+ if ( empty( $image_sizes ) ) {
1871
+ return array(
1872
+ 'width' => $width,
1873
+ 'height' => $height
1874
+ );
1875
+ }
1876
  // Create the full array with sizes and crop info
1877
  foreach ( $image_sizes as $size ) {
1878
  if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
1930
  */
1931
  function query_limit() {
1932
  $limit = apply_filters( 'wp_smush_query_limit', 2000 );
1933
+ $limit = ! empty( $this->total_count ) && $limit > $this->total_count ? $this->total_count : $limit;
1934
  $limit = intval( $limit );
1935
 
1936
  return $limit;
1986
  return true;
1987
  }
1988
 
1989
+ $upgrade_url = add_query_arg(
1990
  array(
1991
+ 'utm_source' => 'smush',
1992
+ 'utm_medium' => 'plugin',
1993
+ 'utm_campaign' => 'smush_async_upgrade_notice'
1994
  ),
1995
  $this->upgrade_url
1996
  );
2006
  //Upgrade link for free users
2007
  $message_s .= ! $this->validate_install() ? sprintf( esc_html__( " %sFind out more here >>%s", "wp-smushit" ), $upgrade_link, '</a>' ) : '';
2008
  ?>
2009
+ <div class="notice notice-info is-dismissible wp-smush-update-info">
2010
+ <p><?php echo $message_s; ?></p>
2011
+ </div><?php
2012
  //Notice JS
2013
+ wp_enqueue_script( 'wp-smushit-notice-js', '', array(), '', true );
2014
  }
2015
 
2016
  /**
2021
  * @return bool true/false Whether to skip the image size or not
2022
  *
2023
  */
2024
+ function skip_image_size( $size = '' ) {
2025
  global $wpsmush_settings;
2026
 
2027
  //No image size specified, Don't skip
2028
+ if ( empty( $size ) ) {
2029
  return false;
2030
  }
2031
 
2032
+ $image_sizes = $wpsmush_settings->get_setting( WP_SMUSH_PREFIX . 'image_sizes' );
2033
 
2034
  //If Images sizes aren't set, don't skip any of the image size
2035
+ if ( false === $image_sizes ) {
2036
  return false;
2037
  }
2038
 
2039
  //Check if the size is in the smush list
2040
+ if ( is_array( $image_sizes ) && ! in_array( $size, $image_sizes ) ) {
2041
  return true;
2042
  }
2043
 
2050
  function image_dimensions() {
2051
  global $_wp_additional_image_sizes;
2052
  $additional_sizes = get_intermediate_image_sizes();
2053
+ $sizes = array();
2054
+
2055
+ if ( empty( $additional_sizes ) ) {
2056
+ return $sizes;
2057
+ }
2058
 
2059
  // Create the full array with sizes and crop info
2060
+ foreach ( $additional_sizes as $_size ) {
2061
  if ( in_array( $_size, array( 'thumbnail', 'medium', 'large' ) ) ) {
2062
+ $sizes[ $_size ]['width'] = get_option( $_size . '_size_w' );
2063
  $sizes[ $_size ]['height'] = get_option( $_size . '_size_h' );
2064
+ $sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' );
2065
  } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
2066
  $sizes[ $_size ] = array(
2067
+ 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
2068
  'height' => $_wp_additional_image_sizes[ $_size ]['height'],
2069
+ 'crop' => $_wp_additional_image_sizes[ $_size ]['crop']
2070
  );
2071
  }
2072
  }
2073
  //Medium Large
2074
+ if ( ! isset( $sizes['medium_large'] ) || empty( $sizes['medium_large'] ) ) {
2075
  $width = intval( get_option( 'medium_large_size_w' ) );
2076
  $height = intval( get_option( 'medium_large_size_h' ) );
2077
 
2090
  *
2091
  */
2092
  function media_library_membership_notice() {
2093
+ global $wpsmush_bulkui;
2094
 
2095
  //No need to print it for free version
2096
+ if ( ! $this->validate_install() ) {
2097
  return;
2098
  }
2099
  //Show it on Media Library page only
2100
+ $screen = get_current_screen();
2101
+ $screen_id = ! empty( $screen ) ? $screen->id : '';
2102
  //Do not show notice anywhere else
2103
+ if ( empty( $screen ) || 'upload' != $screen_id ) {
2104
  return;
2105
  }
2106
 
2149
  function setupSmush() {
2150
 
2151
  if ( ! empty( $_POST['_wpnonce'] ) && ! wp_verify_nonce( $_POST['_wpnonce'], 'setupSmush' ) ) {
2152
+ wp_send_json_error( "Nonce verification failed" );
2153
  }
2154
 
2155
  global $wpsmush_settings, $wpsmushit_admin, $WpSmush;
2172
  's3'
2173
  );
2174
 
2175
+ foreach ( $wpsmushit_admin->settings as $name => $values ) {
2176
 
2177
  //Update only specified settings
2178
+ if ( in_array( $name, $exclude ) ) {
2179
  continue;
2180
  }
2181
 
2185
  }
2186
 
2187
  //Update value in settings
2188
+ if ( in_array( WP_SMUSH_PREFIX . $name, $quick_settings ) ) {
2189
+ $settings[ $name ] = 1;
2190
+ } else {
2191
+ $settings[ $name ] = 0;
2192
  }
2193
  }
2194
 
2196
  $resize_sizes['width'] = isset( $_POST['wp-smush-resize_width'] ) ? intval( $_POST['wp-smush-resize_width'] ) : 0;
2197
  $resize_sizes['height'] = isset( $_POST['wp-smush-resize_height'] ) ? intval( $_POST['wp-smush-resize_height'] ) : 0;
2198
 
2199
+ //@todo: Improve the hardcoded 500 value
2200
+ $resize_sizes['width'] = $resize_sizes['width'] > 0 && $resize_sizes['width'] < 500 ? 500 : $resize_sizes['width'];
2201
+ $resize_sizes['height'] = $resize_sizes['height'] > 0 && $resize_sizes['height'] < 500 ? 500 : $resize_sizes['height'];
2202
+
2203
  // update the resize sizes
2204
  $wpsmush_settings->update_setting( WP_SMUSH_PREFIX . 'resize_sizes', $resize_sizes );
2205
 
2206
  $wpsmush_settings->update_setting( WP_SMUSH_PREFIX . 'last_settings', $settings );
2207
 
2208
+ update_site_option( 'skip-smush-setup', 1 );
2209
 
2210
  wp_send_json_success();
2211
 
2215
  * Store user preference for Pagespeed suggestions
2216
  */
2217
  function hide_pagespeed_suggestion() {
2218
+ update_site_option( WP_SMUSH_PREFIX . 'hide_pagespeed_suggestion', true );
2219
+ wp_send_json_success();
2220
+ }
2221
+
2222
+ /**
2223
+ * Hide API Message
2224
+ */
2225
+ function hide_api_message() {
2226
+ if ( ! current_user_can( 'manage_options' ) ) {
2227
+ return;
2228
+ }
2229
+ $api_message = get_site_option( WP_SMUSH_PREFIX . 'api_message', array() );
2230
+ if ( ! empty( $api_message ) && is_array( $api_message ) ) {
2231
+ $api_message[ key( $api_message ) ]['status'] = 'hide';
2232
+ }
2233
+ update_site_option( WP_SMUSH_PREFIX . 'api_message', true );
2234
  wp_send_json_success();
2235
  }
2236
 
2237
+ /**
2238
+ * Load media assets.
2239
+ */
2240
+ public function extend_media_modal() {
2241
+ if ( ! wp_script_is( 'smush-media-view', 'enqueued' ) ) {
2242
+ wp_enqueue_script( 'smush-media-view', WP_SMUSH_URL . 'assets/js/media.js', array(
2243
+ 'jquery',
2244
+ 'media-views',
2245
+ 'media-grid',
2246
+ 'wp-util',
2247
+ ), $this->version, true );
2248
+
2249
+ wp_localize_script( 'smush-media-view', 'smush_vars', array(
2250
+ 'strings' => array(
2251
+ 'stats_label' => esc_html__( "Smush Stats", "wp-smushit" )
2252
+ ),
2253
+ 'nonce' => array(
2254
+ 'get_smush_status' => wp_create_nonce( 'get-smush-status' ),
2255
+ ),
2256
+ ) );
2257
+ }
2258
+ }
2259
+
2260
+ /**
2261
+ * Return Smush status of an attachment
2262
+ *
2263
+ * @param $id
2264
+ */
2265
+ function smush_send_status() {
2266
+ if ( ! isset( $_POST['id'] ) ) {
2267
+ return;
2268
+ }
2269
+
2270
+ check_ajax_referer( 'get-smush-status', '_nonce' );
2271
+
2272
+ $id = intval( $_POST['id'] );
2273
+
2274
+ //Validate nonce
2275
+ $status = $this->smush_status( $id );
2276
+ wp_send_json_success( $status );
2277
+ }
2278
+
2279
+ /**
2280
+ * Return Latest stats
2281
+ *
2282
+ */
2283
+ function get_stats() {
2284
+ if ( empty( $this->stats ) ) {
2285
+ $this->setup_global_stats(true);
2286
+ }
2287
+ $stats = array(
2288
+ 'count_images' => ! empty( $this->stats ) && isset( $this->stats['total_images'] ) ? $this->stats['total_images'] : 0,
2289
+ 'count_resize' => ! empty( $this->stats ) && isset( $this->stats['resize_count'] ) ? $this->stats['resize_count'] : 0,
2290
+ 'count_smushed' => $this->smushed_count,
2291
+ 'count_supersmushed' => $this->super_smushed,
2292
+ 'count_total' => $this->total_count,
2293
+ 'savings_bytes' => ! empty( $this->stats ) && isset( $this->stats['bytes'] ) ? $this->stats['bytes'] : 0,
2294
+ 'savings_conversion' => ! empty( $this->stats ) && isset( $this->stats['conversion_savings'] ) ? $this->stats['conversion_savings'] : 0,
2295
+ 'savings_resize' => ! empty( $this->stats ) && isset( $this->stats['resize_savings'] ) ? $this->stats['resize_savings'] : 0,
2296
+ 'size_before' => ! empty( $this->stats ) && isset( $this->stats['size_before'] ) ? $this->stats['size_before'] : 0,
2297
+ 'size_after' => ! empty( $this->stats ) && isset( $this->stats['size_after'] ) ? $this->stats['size_after'] : 0,
2298
+ );
2299
+ wp_send_json_success( $stats );
2300
+ }
2301
  }
2302
 
2303
  global $wpsmushit_admin;
lib/class-wp-smush-db.php CHANGED
@@ -91,7 +91,7 @@ if ( ! class_exists( 'WpSmushDB' ) ) {
91
  while ( $get_posts ) {
92
 
93
  //Remove the Filters added by WP Media Folder
94
- $wpsmush_db->remove_filters();
95
 
96
  $query = new WP_Query( $args );
97
 
@@ -193,7 +193,7 @@ if ( ! class_exists( 'WpSmushDB' ) ) {
193
  $limit = $wpsmushit_admin->query_limit();
194
 
195
  $mime = implode( "', '", $wpsmushit_admin->mime_types );
196
- $query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_mime_type IN ('$mime') ORDER BY `ID` DESC LIMIT %d, %d";
197
  //Remove the Filters added by WP Media Folder
198
  $this->remove_filters();
199
 
@@ -265,6 +265,11 @@ if ( ! class_exists( 'WpSmushDB' ) ) {
265
  }
266
  }
267
 
 
 
 
 
 
268
  return $return_ids ? $posts : count( $posts );
269
  }
270
 
@@ -839,7 +844,8 @@ if ( ! class_exists( 'WpSmushDB' ) ) {
839
  'savings_conversion' => 0,
840
  'count_images' => 0,
841
  'count_supersmushed' => 0,
842
- 'count_smushed' => 0
 
843
  );
844
 
845
  //If we don't have any attachments, return empty array
@@ -868,8 +874,9 @@ if ( ! class_exists( 'WpSmushDB' ) ) {
868
  if ( ! empty( $resize_savings ) ) {
869
  //Add resize and conversion savings
870
  $stats['savings_resize'] += ! empty( $resize_savings['bytes'] ) ? $resize_savings['bytes'] : 0;
871
- $stats['size_before'] += ! empty( $resize_savings['size_before'] ) ? ! empty( $resize_savings['size_before'] ) : 0;
872
- $stats['size_after'] += ! empty( $resize_savings['size_after'] ) ? ! empty( $resize_savings['size_after'] ) : 0;
 
873
  }
874
 
875
  //Add conversion saving stats
91
  while ( $get_posts ) {
92
 
93
  //Remove the Filters added by WP Media Folder
94
+ $this->remove_filters();
95
 
96
  $query = new WP_Query( $args );
97
 
193
  $limit = $wpsmushit_admin->query_limit();
194
 
195
  $mime = implode( "', '", $wpsmushit_admin->mime_types );
196
+ $query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status = 'inherit' AND post_mime_type IN ('$mime') ORDER BY `ID` DESC LIMIT %d, %d";
197
  //Remove the Filters added by WP Media Folder
198
  $this->remove_filters();
199
 
265
  }
266
  }
267
 
268
+ //Remove resmush ids from the list
269
+ if ( ! empty( $wpsmushit_admin->resmush_ids ) && is_array( $wpsmushit_admin->resmush_ids ) ) {
270
+ $posts = array_diff( $posts, $wpsmushit_admin->resmush_ids );
271
+ }
272
+
273
  return $return_ids ? $posts : count( $posts );
274
  }
275
 
844
  'savings_conversion' => 0,
845
  'count_images' => 0,
846
  'count_supersmushed' => 0,
847
+ 'count_smushed' => 0,
848
+ 'count_resize' => 0
849
  );
850
 
851
  //If we don't have any attachments, return empty array
874
  if ( ! empty( $resize_savings ) ) {
875
  //Add resize and conversion savings
876
  $stats['savings_resize'] += ! empty( $resize_savings['bytes'] ) ? $resize_savings['bytes'] : 0;
877
+ $stats['size_before'] += ! empty( $resize_savings['size_before'] ) ? $resize_savings['size_before'] : 0;
878
+ $stats['size_after'] += ! empty( $resize_savings['size_after'] ) ? $resize_savings['size_after'] : 0;
879
+ $stats['count_resize'] += 1;
880
  }
881
 
882
  //Add conversion saving stats
lib/class-wp-smush-dir.php CHANGED
@@ -57,6 +57,9 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
57
  //Handle Ajax request for directory smush stats
58
  add_action( 'wp_ajax_get_dir_smush_stats', array( $this, 'get_dir_smush_stats' ) );
59
 
 
 
 
60
  }
61
 
62
  /**
@@ -97,8 +100,9 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
97
  <span class="wp-smush-stats-percent"><?php echo ! empty( $percent ) ? $percent : ''; ?>%</span><?php
98
  }
99
  } else { ?>
100
- <span class="wp-smush-stats-human settings-desc"><?php esc_html_e("Smush images that aren't located in your uploads folder.", "wp-smushit"); ?>
101
- <a href="#wp-smush-dir-browser" class="wp-smush-dir-link"><?php esc_html_e( "Choose directory", "wp-smushit" ); ?></a>
 
102
  </span>
103
  <span class="wp-smush-stats-sep hidden">/</span>
104
  <span class="wp-smush-stats-percent"></span>
@@ -260,14 +264,14 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
260
  current optimised image -->
261
  </div>
262
  <!-- Notices -->
263
- <div class="wp-smush-notice wp-smush-dir-all-done hidden" tabindex="0">
264
- <i class="dev-icon dev-icon-tick"></i><?php esc_html_e( "All images for the selected directory are smushed and up to date. Awesome!", "wp-smushit" ); ?>
265
  </div>
266
- <div class="wp-smush-notice wp-smush-dir-remaining hidden" tabindex="0">
267
- <i class="dev-icon wdv-icon wdv-icon-fw wdv-icon-exclamation-sign"></i><?php printf( esc_html__( "%s/%s image(s) were successfully smushed, however %s image(s) could not be smushed due to an error.", "wp-smushit" ), '<span class="wp-smush-dir-smushed"></span>', '<span class="wp-smush-dir-total"></span>', '<span class="wp-smush-dir-remaining"></span>' ); ?>
268
  </div>
269
- <div class="wp-smush-notice wp-smush-dir-limit hidden" tabindex="0">
270
- <i class="dev-icon wdv-icon wdv-icon-fw wdv-icon-info-sign"></i><?php printf( esc_html__( " %sUpgrade to pro%s to bulk smush all your directory images with one click. Free users can smush 50 images with each click.", "wp-smushit" ), '<a href="' . esc_url( $wpsmushit_admin->upgrade_url ) . '" target="_blank" title="' . esc_html__( "WP Smush Pro", "wp-smushit" ) . '">', '</a>' ); ?>
271
  </div>
272
  <div class="wp-smush-all-button-wrap bottom">
273
  <!-- @todo: Check status of the images in last scan and do not show smush now button, if already finished -->
@@ -287,26 +291,6 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
287
  $this->show_resume_button(); ?>
288
  <span class="spinner"></span>
289
  </div>
290
- <div class="dev-overlay wp-smush-list-dialog roboto-regular">
291
- <div class="back"></div>
292
- <div class="box-scroll">
293
- <div class="box">
294
- <div class="title"><h3><?php esc_html_e( "Directory list", "wp-smushit" ); ?></h3>
295
- <div class="close" aria-label="Close">×</div>
296
- </div>
297
- <div class="wp-smush-instruct"><?php esc_html_e( "Choose the folder you wish to smush.", "wp-smushit" ); ?></div>
298
- <div class="content">
299
- </div>
300
- <div class="wp-smush-select-button-wrap">
301
- <div class="wp-smush-section-desc"><?php esc_html_e( "Smush will also include any images in sub folders of your selected folder.", "wp-smushit" ); ?></div>
302
- <div class="wp-smush-select-button-wrap-child">
303
- <span class="spinner"></span>
304
- <button class="wp-smush-select-dir"><?php esc_html_e( "ADD DIRECTORY", "wp-smushit" ); ?></button>
305
- </div>
306
- </div>
307
- </div>
308
- </div>
309
- </div>
310
  <input type="hidden" name="wp-smush-base-path" value="<?php echo $this->get_root_path(); ?>">
311
  </div>
312
  </div><?php
@@ -370,12 +354,16 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
370
  if ( file_exists( $postDir ) ) {
371
 
372
  $files = scandir( $postDir );
 
 
 
 
373
  $returnDir = substr( $postDir, strlen( $root ) );
374
 
375
  natcasesort( $files );
376
 
377
  if ( count( $files ) > 2 ) {
378
- $list = "<ul class='jqueryFileTree'>";
379
  foreach ( $files as $file ) {
380
 
381
  $htmlRel = htmlentities( ltrim( path_join( $returnDir , $file ), '/' ) );
@@ -386,9 +374,9 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
386
  if ( file_exists( $file_path ) && $file != '.' && $file != '..' ) {
387
  if ( is_dir( $file_path ) && ! $this->skip_dir( $file_path ) ) {
388
  //Skip Uploads folder - Media Files
389
- $list .= "<li class='directory collapsed'><a rel='" . $htmlRel . "/'>" . $htmlName . "</a></li><br />";
390
  } else if ( in_array( $ext, $supported_image ) && ! $this->is_media_library_file( $file_path ) ) {
391
- $list .= "<li class='file ext_{$ext}'><a rel='" . $htmlRel . "'>" . $htmlName . "</a></li><br />";
392
  }
393
  }
394
  }
@@ -895,7 +883,7 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
895
  $this->total_stats();
896
 
897
  $div = wp_nonce_field( 'wp-smush-exclude-path', 'exclude-path-nonce', '', false );
898
- $div .= '<ul class="wp-smush-image-list roboto-regular">';
899
  //Flag - Whether to print top hr tag or not
900
  $hr = true;
901
  //Flag - Not to print hr tag, if first element is ul in the scanned image list
@@ -921,6 +909,8 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
921
  //Mark Smush plugin images optimised
922
  if ( false !== $wpsmush_helper->strposa( $image_path, $plugin_path ) ) {
923
  $wrapper_class = 'complete';
 
 
924
  }
925
 
926
  $div .= "<li class='wp-smush-image-ul {$wrapper_class}'>";
@@ -928,9 +918,9 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
928
  $div .= "<hr/>";
929
  }
930
 
931
- $div .= "<span class='wp-smush-li-path'>{$image_path} <span class='wp-smush-image-count'>" . sprintf( esc_html__( "%d images", "wp-smushit" ), $count ) . "</span></span>";
932
- $div .= $this->progress_ui( $count, $optimised_count, $image_path );
933
- $div .= "<ul class='wp-smush-image-list-inner'>";
934
  foreach ( $image as $item ) {
935
  //Check if the image is already in optimised list
936
  $class = is_array( $this->optimised_images ) && array_key_exists( $item, $this->optimised_images ) ? ' optimised' : '';
@@ -1251,7 +1241,7 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
1251
 
1252
  //If we don't get an error path, return an error message
1253
  if ( empty( $dir_path ) ) {
1254
- $message = "<div class='error'>" . esc_html__( "We were unable to retrieve the image list from last scan, please continue with a latest scan", "wp-smushit" ) . "</div>";
1255
  wp_send_json_error( array( 'message' => $message ) );
1256
  }
1257
 
@@ -1336,6 +1326,38 @@ if ( ! class_exists( 'WpSmushDir' ) ) {
1336
  wp_send_json_success( $result );
1337
  }
1338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1339
  }
1340
 
1341
  //Class Object
57
  //Handle Ajax request for directory smush stats
58
  add_action( 'wp_ajax_get_dir_smush_stats', array( $this, 'get_dir_smush_stats' ) );
59
 
60
+ //Add Directory list overlay at the end of content
61
+ add_action('admin_footer', array( $this, 'directory_list_dialog' ) );
62
+
63
  }
64
 
65
  /**
100
  <span class="wp-smush-stats-percent"><?php echo ! empty( $percent ) ? $percent : ''; ?>%</span><?php
101
  }
102
  } else { ?>
103
+ <span class="wp-smush-stats-human settings-desc"><?php esc_html_e( "Smush images that aren't located in your uploads folder.", "wp-smushit" ); ?>
104
+ <a href="#wp-smush-dir-browser" class="wp-smush-dir-link"
105
+ title="<?php esc_html_e( "Select a directory you'd like to Smush.", "wp-smushit" ); ?>"><?php esc_html_e( "Choose directory", "wp-smushit" ); ?></a>
106
  </span>
107
  <span class="wp-smush-stats-sep hidden">/</span>
108
  <span class="wp-smush-stats-percent"></span>
264
  current optimised image -->
265
  </div>
266
  <!-- Notices -->
267
+ <div class="wp-smush-notice wp-smush-dir-all-done hidden">
268
+ <i class="icon-fi-check-tick"></i><?php esc_html_e( "All images for the selected directory are smushed and up to date. Awesome!", "wp-smushit" ); ?>
269
  </div>
270
+ <div class="wp-smush-notice wp-smush-dir-remaining hidden">
271
+ <i class="icon-fi-warning-alert"></i><?php printf( esc_html__( "%s/%s image(s) were successfully smushed, however %s image(s) could not be smushed due to an error.", "wp-smushit" ), '<span class="wp-smush-dir-smushed"></span>', '<span class="wp-smush-dir-total"></span>', '<span class="wp-smush-dir-remaining"></span>' ); ?>
272
  </div>
273
+ <div class="wp-smush-notice wp-smush-dir-limit hidden">
274
+ <i class="icon-fi-info"></i><?php printf( esc_html__( " %sUpgrade to pro%s to bulk smush all your directory images with one click. Free users can smush 50 images with each click.", "wp-smushit" ), '<a href="' . esc_url( $wpsmushit_admin->upgrade_url ) . '" target="_blank" title="' . esc_html__( "WP Smush Pro", "wp-smushit" ) . '">', '</a>' ); ?>
275
  </div>
276
  <div class="wp-smush-all-button-wrap bottom">
277
  <!-- @todo: Check status of the images in last scan and do not show smush now button, if already finished -->
291
  $this->show_resume_button(); ?>
292
  <span class="spinner"></span>
293
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  <input type="hidden" name="wp-smush-base-path" value="<?php echo $this->get_root_path(); ?>">
295
  </div>
296
  </div><?php
354
  if ( file_exists( $postDir ) ) {
355
 
356
  $files = scandir( $postDir );
357
+ //Exclude hidden files
358
+ if ( ! empty( $files ) ) {
359
+ $files = preg_grep( '/^([^.])/', $files );
360
+ }
361
  $returnDir = substr( $postDir, strlen( $root ) );
362
 
363
  natcasesort( $files );
364
 
365
  if ( count( $files ) > 2 ) {
366
+ $list = "<ul class='jqueryFileTree' tabindex='0'>";
367
  foreach ( $files as $file ) {
368
 
369
  $htmlRel = htmlentities( ltrim( path_join( $returnDir , $file ), '/' ) );
374
  if ( file_exists( $file_path ) && $file != '.' && $file != '..' ) {
375
  if ( is_dir( $file_path ) && ! $this->skip_dir( $file_path ) ) {
376
  //Skip Uploads folder - Media Files
377
+ $list .= "<li class='directory collapsed'><a rel='" . $htmlRel . "/' tabindex='0'>" . $htmlName . "</a></li><br />";
378
  } else if ( in_array( $ext, $supported_image ) && ! $this->is_media_library_file( $file_path ) ) {
379
+ $list .= "<li class='file ext_{$ext}'><a rel='" . $htmlRel . "' tabindex='0'>" . $htmlName . "</a></li><br />";
380
  }
381
  }
382
  }
883
  $this->total_stats();
884
 
885
  $div = wp_nonce_field( 'wp-smush-exclude-path', 'exclude-path-nonce', '', false );
886
+ $div .= '<ul class="wp-smush-image-list roboto-regular" tabindex="0">';
887
  //Flag - Whether to print top hr tag or not
888
  $hr = true;
889
  //Flag - Not to print hr tag, if first element is ul in the scanned image list
909
  //Mark Smush plugin images optimised
910
  if ( false !== $wpsmush_helper->strposa( $image_path, $plugin_path ) ) {
911
  $wrapper_class = 'complete';
912
+ //Show 100% progress bar for Smush
913
+ $optimised_count = $count;
914
  }
915
 
916
  $div .= "<li class='wp-smush-image-ul {$wrapper_class}'>";
918
  $div .= "<hr/>";
919
  }
920
 
921
+ $div .= "<div class='image-list-wrapper'><span class='wp-smush-li-path'>{$image_path} <span class='wp-smush-image-count'>" . sprintf( esc_html__( "%d images", "wp-smushit" ), $count ) . "</span></span>";
922
+ $div .= $this->progress_ui( $count, $optimised_count, $image_path ) . '</div>';
923
+ $div .= "<ul class='wp-smush-image-list-inner' tabindex='0'>";
924
  foreach ( $image as $item ) {
925
  //Check if the image is already in optimised list
926
  $class = is_array( $this->optimised_images ) && array_key_exists( $item, $this->optimised_images ) ? ' optimised' : '';
1241
 
1242
  //If we don't get an error path, return an error message
1243
  if ( empty( $dir_path ) ) {
1244
+ $message = "<div class='error'>" . esc_html__( "We were unable to retrieve the image list from last scan, please continue with the latest scan", "wp-smushit" ) . "</div>";
1245
  wp_send_json_error( array( 'message' => $message ) );
1246
  }
1247
 
1326
  wp_send_json_success( $result );
1327
  }
1328
 
1329
+ /**
1330
+ * Output the content for Directory smush list dialog content
1331
+ *
1332
+ */
1333
+ function directory_list_dialog() {
1334
+ $current_screen = get_current_screen();
1335
+ if ( empty( $current_screen ) || empty( $current_screen->base ) || 'media_page_wp-smush-bulk' != $current_screen->base ) {
1336
+ return;
1337
+ } ?>
1338
+ <div class="dev-overlay small wp-smush-list-dialog roboto-regular">
1339
+ <div class="back"></div>
1340
+ <div class="box-scroll">
1341
+ <div class="box">
1342
+ <div class="title"><h3><?php esc_html_e( "Directory list", "wp-smushit" ); ?></h3>
1343
+ <div aria-hidden="true" class="close">&times;</div>
1344
+ <button class="wpdui-sr-only"><span class="wpdui-sr-only">Close</span></button>
1345
+ </div>
1346
+ <div class="wp-smush-instruct"><?php esc_html_e( "Choose the folder you wish to smush.", "wp-smushit" ); ?></div>
1347
+ <div class="content">
1348
+ </div>
1349
+ <div class="wp-smush-select-button-wrap">
1350
+ <div class="wp-smush-section-desc"><?php esc_html_e( "Smush will also include any images in sub folders of your selected folder.", "wp-smushit" ); ?></div>
1351
+ <div class="wp-smush-select-button-wrap-child">
1352
+ <span class="spinner"></span>
1353
+ <button class="wp-smush-select-dir"><?php esc_html_e( "ADD DIRECTORY", "wp-smushit" ); ?></button>
1354
+ </div>
1355
+ </div>
1356
+ </div>
1357
+ </div>
1358
+ </div><?php
1359
+ }
1360
+
1361
  }
1362
 
1363
  //Class Object
lib/class-wp-smush-helper.php CHANGED
@@ -133,6 +133,28 @@ if ( ! class_exists( 'WpSmushHelper' ) ) {
133
 
134
  return $file_exists;
135
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  }
137
 
138
  global $wpsmush_helper;
133
 
134
  return $file_exists;
135
  }
136
+
137
+ /**
138
+ * Add ellipsis in middle of long strings
139
+ *
140
+ * @param string $string
141
+ *
142
+ * @return string Truncated string
143
+ */
144
+ function add_ellipsis( $string = '' ) {
145
+ if( empty( $string ) ){
146
+ return $string;
147
+ }
148
+ //Return if the character length is 120 or less, else add ellipsis in between
149
+ if( strlen( $string ) < 121 ) {
150
+ return $string;
151
+ }
152
+ $start = substr( $string, 0, 60 );
153
+ $end = substr( $string, -40 );
154
+ $string = $start . '...' . $end;
155
+
156
+ return $string;
157
+ }
158
  }
159
 
160
  global $wpsmush_helper;
lib/class-wp-smush-nextgen.php CHANGED
@@ -31,15 +31,20 @@ if ( ! class_exists( 'WpSmushNextGen' ) ) {
31
  }
32
 
33
  function init() {
34
- global $WpSmush;
35
  //Filters the setting variable to add S3 setting title and description
36
  add_filter( 'wp_smush_settings', array( $this, 'register' ), 5 );
37
 
38
  //Filters the setting variable to add S3 setting in premium features
39
  add_filter( 'wp_smush_pro_settings', array( $this, 'add_setting' ), 5 );
40
 
41
- //return if not a pro user
42
- if( !$WpSmush->validate_install() ) {
 
 
 
 
 
43
  return;
44
  }
45
 
@@ -525,6 +530,7 @@ if ( ! class_exists( 'WpSmushNextGen' ) ) {
525
  'message' => esc_html__( "Error in processing restore action, Fields empty.", "wp-smushit" )
526
  ) );
527
  }
 
528
  //Check Nonce
529
  if ( ! wp_verify_nonce( $_POST['_nonce'], "wp-smush-restore-" . $_POST['attachment_id'] ) ) {
530
  wp_send_json_error( array(
31
  }
32
 
33
  function init() {
34
+ global $WpSmush, $wpsmush_settings;
35
  //Filters the setting variable to add S3 setting title and description
36
  add_filter( 'wp_smush_settings', array( $this, 'register' ), 5 );
37
 
38
  //Filters the setting variable to add S3 setting in premium features
39
  add_filter( 'wp_smush_pro_settings', array( $this, 'add_setting' ), 5 );
40
 
41
+ //Check if integration is Enabled or not
42
+ //Smush NextGen key
43
+ $opt_nextgen = WP_SMUSH_PREFIX . 'nextgen';
44
+ $opt_nextgen_val = $wpsmush_settings->get_setting( $opt_nextgen, false );
45
+
46
+ //return if not a pro user, or nextgen integration is not enabled
47
+ if( !$WpSmush->validate_install() || !$opt_nextgen_val ) {
48
  return;
49
  }
50
 
530
  'message' => esc_html__( "Error in processing restore action, Fields empty.", "wp-smushit" )
531
  ) );
532
  }
533
+
534
  //Check Nonce
535
  if ( ! wp_verify_nonce( $_POST['_nonce'], "wp-smush-restore-" . $_POST['attachment_id'] ) ) {
536
  wp_send_json_error( array(
lib/class-wp-smush-png_jpg.php CHANGED
@@ -291,17 +291,8 @@ if ( ! class_exists( 'WpSmushPngtoJpg' ) ) {
291
  $meta['sizes'][ $size_k ]['mime-type'] = $mime;
292
  }
293
 
294
- if ( 'full' == $size_k ) {
295
- //Get the updated image URL
296
- $n_url = wp_get_attachment_url( $id );
297
- } else {
298
- $n_url = dirname( $o_url ) . '/' . basename( $n_file );
299
- }
300
-
301
- //Update In Post Content
302
- global $wpdb;
303
- $query = $wpdb->prepare( "UPDATE $wpdb->posts SET post_content = REPLACE(post_content, '%s', '%s');", $o_url, $n_url );
304
- $wpdb->query( $query );
305
 
306
  //Delete the Original files if backup not enabled
307
  if ( 'conversion' == $o_type && ! $wpsmush_settings->settings['backup'] ) {
@@ -699,6 +690,50 @@ if ( ! class_exists( 'WpSmushPngtoJpg' ) ) {
699
 
700
  return false;
701
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
702
  }
703
 
704
  global $wpsmush_pngjpg;
291
  $meta['sizes'][ $size_k ]['mime-type'] = $mime;
292
  }
293
 
294
+ //To be called after the attached file key is updated for the image
295
+ $this->update_image_url( $id, $size_k, $n_file, $o_url );
 
 
 
 
 
 
 
 
 
296
 
297
  //Delete the Original files if backup not enabled
298
  if ( 'conversion' == $o_type && ! $wpsmush_settings->settings['backup'] ) {
690
 
691
  return false;
692
  }
693
+
694
+ /**
695
+ * Update Image URL in post content
696
+ *
697
+ * @param $id
698
+ * @param $size_k
699
+ * @param $n_file
700
+ * @param $o_url
701
+ */
702
+ function update_image_url( $id, $size_k, $n_file, $o_url ) {
703
+ if ( 'full' == $size_k ) {
704
+ //Get the updated image URL
705
+ $n_url = wp_get_attachment_url( $id );
706
+ } else {
707
+ $n_url = trailingslashit( dirname( $o_url ) ) . basename( $n_file );
708
+ }
709
+
710
+ //Update In Post Content, Loop Over a set of posts to avoid the query failure for large sites
711
+ global $wpdb;
712
+ //Get existing Images with current URL
713
+ $query = $wpdb->prepare(
714
+ "SELECT ID, post_content FROM $wpdb->posts WHERE post_content LIKE '%%%s%%'", $o_url );
715
+
716
+ $rows = $wpdb->get_results( $query, ARRAY_A );
717
+
718
+ //Iterate over rows to update post content
719
+ if ( ! empty( $rows ) && is_array( $rows ) ) {
720
+ foreach ( $rows as $row ) {
721
+ // replace old URLs with new URLs.
722
+ $post_content = $row["post_content"];
723
+ $post_content = str_replace( $o_url, $n_url, $post_content );
724
+ // Update Post content
725
+ $wpdb->update(
726
+ $wpdb->posts,
727
+ array(
728
+ 'post_content' => $post_content,
729
+ ),
730
+ array(
731
+ 'ID' => $row['ID'],
732
+ )
733
+ );
734
+ }
735
+ }
736
+ }
737
  }
738
 
739
  global $wpsmush_pngjpg;
lib/class-wp-smush-s3.php CHANGED
@@ -59,7 +59,7 @@ if ( ! class_exists( 'WpSmushS3' ) ) {
59
  $settings['s3'] = array(
60
  'label' => esc_html__( 'Enable Amazon S3 support', 'wp-smushit' ),
61
  'short_label' => esc_html__( 'Amazon S3', 'wp-smushit' ),
62
- 'desc' => sprintf( esc_html__( 'Storing your image on S3 buckets using %sWP Offload S3%s? Smush can detect and smush those assets for you, including when you\re removing files from your host server.', 'wp-smushit' ), "<a href='" . $plugin_url . "' target = '_blank'>", "</a>", "<b>", "</b>" )
63
  );
64
 
65
  return $settings;
@@ -110,14 +110,14 @@ if ( ! class_exists( 'WpSmushS3' ) ) {
110
  if ( ! is_object( $as3cf ) || ! method_exists( $as3cf, 'is_plugin_setup' ) ) {
111
  $show_error = true;
112
  $support_url = esc_url( "https://premium.wpmudev.org/contact" );
113
- $this->setup_notice = sprintf( esc_html__( "We are having trouble interacting with WP S3 Offload, make sure the plugin is activated. Or you can %sreport a bug%s.", "wp-smushit" ), '<a href="' . $support_url . '" target="_blank">', '</a>' );
114
  }
115
 
116
  //Plugin is not setup, or some information is missing
117
  if ( ! $as3cf->is_plugin_setup() ) {
118
  $show_error = true;
119
  $configure_url = $as3cf->get_plugin_page_url();
120
- $this->setup_notice = sprintf( esc_html__( "It seems you haven't finished setting up WP S3 Offload yet. %sConfigure%s it now to enable Amazon S3 support.", "wp-smushit" ), "<a href='" . $configure_url . "' target='_blank'>", "</a>" );
121
  } else {
122
 
123
  $this->message_type = 'notice';
@@ -131,7 +131,7 @@ if ( ! class_exists( 'WpSmushS3' ) ) {
131
  }
132
 
133
  $class = 'error' == $this->message_type ? ' smush-s3-setup-error' : ' smush-s3-setup-message';
134
- $icon_class = 'error' == $this->message_type ? ' dev-icon wdv-icon wdv-icon-fw wdv-icon-exclamation-sign' : ' dev-icon dev-icon-tick';
135
  echo "<div class='wp-smush-notice" . $class . "'><i class='" . $icon_class . "'></i><p>$this->setup_notice</p></div>";
136
  }
137
 
@@ -139,7 +139,7 @@ if ( ! class_exists( 'WpSmushS3' ) ) {
139
  * Error message to show when S3 support is required.
140
  *
141
  * Show a error message to admins, if they need to enable S3 support. If "remove files from
142
- * server" option is enabled in WP S3 Offload plugin, we need WP Smush Pro to enable S3 support.
143
  *
144
  * @return mixed
145
  */
@@ -175,13 +175,13 @@ if ( ! class_exists( 'WpSmushS3' ) ) {
175
 
176
  if ( $wpsmushit_admin->validate_install() ) {
177
  // If premium user, but S3 support is not enabled.
178
- $message = sprintf( __( "We can see you have WP S3 Offload installed with the <strong>Remove Files From Server</strong> option activated. If you want to optimize your S3 images you'll need to enable the <a href='%s'><strong>Amazon S3 Support</strong></a> feature in Smush's settings.", 'wp-smushit' ), $settings_link );
179
  } else {
180
  // If not a premium user.
181
- $message = sprintf( __( "We can see you have WP S3 Offload installed with the <strong>Remove Files From Server</strong> option activated. If you want to optimize your S3 images you'll need to <a href='%s'><strong>upgrade to Smush Pro</strong></a>", 'wp-smushit' ), esc_url( 'https://premium.wpmudev.org/project/wp-smush-pro' ) );
182
  }
183
 
184
- echo '<div class="wp-smush-notice wp-smush-s3support-alert notice"><span class="notice-message">' . $message . '</span><i class="dev-icon dev-icon-cross"></i></div>';
185
  }
186
 
187
  /**
59
  $settings['s3'] = array(
60
  'label' => esc_html__( 'Enable Amazon S3 support', 'wp-smushit' ),
61
  'short_label' => esc_html__( 'Amazon S3', 'wp-smushit' ),
62
+ 'desc' => sprintf( esc_html__( "Storing your image on S3 buckets using %sWP Offload S3%s? Smush can detect and smush those assets for you, including when you're removing files from your host server.", 'wp-smushit' ), "<a href='" . $plugin_url . "' target = '_blank'>", "</a>", "<b>", "</b>" )
63
  );
64
 
65
  return $settings;
110
  if ( ! is_object( $as3cf ) || ! method_exists( $as3cf, 'is_plugin_setup' ) ) {
111
  $show_error = true;
112
  $support_url = esc_url( "https://premium.wpmudev.org/contact" );
113
+ $this->setup_notice = sprintf( esc_html__( "We are having trouble interacting with WP Offload S3, make sure the plugin is activated. Or you can %sreport a bug%s.", "wp-smushit" ), '<a href="' . $support_url . '" target="_blank">', '</a>' );
114
  }
115
 
116
  //Plugin is not setup, or some information is missing
117
  if ( ! $as3cf->is_plugin_setup() ) {
118
  $show_error = true;
119
  $configure_url = $as3cf->get_plugin_page_url();
120
+ $this->setup_notice = sprintf( esc_html__( "It seems you haven't finished setting up WP Offload S3 yet. %sConfigure%s it now to enable Amazon S3 support.", "wp-smushit" ), "<a href='" . $configure_url . "' target='_blank'>", "</a>" );
121
  } else {
122
 
123
  $this->message_type = 'notice';
131
  }
132
 
133
  $class = 'error' == $this->message_type ? ' smush-s3-setup-error' : ' smush-s3-setup-message';
134
+ $icon_class = 'error' == $this->message_type ? ' icon-fi-warning-alert' : ' icon-fi-check-tick';
135
  echo "<div class='wp-smush-notice" . $class . "'><i class='" . $icon_class . "'></i><p>$this->setup_notice</p></div>";
136
  }
137
 
139
  * Error message to show when S3 support is required.
140
  *
141
  * Show a error message to admins, if they need to enable S3 support. If "remove files from
142
+ * server" option is enabled in WP Offload S3 plugin, we need WP Smush Pro to enable S3 support.
143
  *
144
  * @return mixed
145
  */
175
 
176
  if ( $wpsmushit_admin->validate_install() ) {
177
  // If premium user, but S3 support is not enabled.
178
+ $message = sprintf( __( "We can see you have WP Offload S3 installed with the <strong>Remove Files From Server</strong> option activated. If you want to optimize your S3 images you'll need to enable the <a href='%s'><strong>Amazon S3 Support</strong></a> feature in Smush's settings.", 'wp-smushit' ), $settings_link );
179
  } else {
180
  // If not a premium user.
181
+ $message = sprintf( __( "We can see you have WP Offload S3 installed with the <strong>Remove Files From Server</strong> option activated. If you want to optimize your S3 images you'll need to <a href='%s'><strong>upgrade to Smush Pro</strong></a>", 'wp-smushit' ), esc_url( 'https://premium.wpmudev.org/project/wp-smush-pro' ) );
182
  }
183
 
184
+ echo '<div class="wp-smush-notice wp-smush-s3support-alert notice"><span class="notice-message">' . $message . '</span><i class="icon-fi-close"></i></div>';
185
  }
186
 
187
  /**
lib/class-wp-smush-settings.php CHANGED
@@ -69,7 +69,12 @@ if ( ! class_exists( 'WpSmushSettings' ) ) {
69
  function get_serialised_settings() {
70
  $settings = array();
71
  foreach ( $this->settings as $key => $val ) {
72
- $settings[ $key ] = $this->get_setting( WP_SMUSH_PREFIX . $key );
 
 
 
 
 
73
  }
74
  $settings = maybe_serialize( $settings );
75
 
@@ -213,7 +218,7 @@ if ( ! class_exists( 'WpSmushSettings' ) ) {
213
  * @return bool|mixed|void
214
  *
215
  */
216
- function get_setting( $name = '', $default = '' ) {
217
 
218
  if( empty( $name ) ) {
219
  return false;
69
  function get_serialised_settings() {
70
  $settings = array();
71
  foreach ( $this->settings as $key => $val ) {
72
+ $value = $this->get_setting( WP_SMUSH_PREFIX . $key );;
73
+ if ( 'auto' == $key && $value === false ) {
74
+ $settings[ $key ] = 1;
75
+ } else {
76
+ $settings[ $key ] = $value;
77
+ }
78
  }
79
  $settings = maybe_serialize( $settings );
80
 
218
  * @return bool|mixed|void
219
  *
220
  */
221
+ function get_setting( $name = '', $default = false ) {
222
 
223
  if( empty( $name ) ) {
224
  return false;
lib/class-wp-smush-share.php CHANGED
@@ -31,11 +31,11 @@ if ( ! class_exists( 'WpSmushShare' ) ) {
31
  <!-- Twitter Button -->
32
  <a href="https://twitter.com/intent/tweet?text=<?php echo esc_attr( $share_msg ); ?>"
33
  class="button wp-smush-share-button" id="wp-smush-twitter-share">
34
- <i class="dev-icon dev-icon-twitter"></i><?php esc_html_e( "TWEET", "wp-smushit" ); ?></a>
35
  <!-- Facebook Button -->
36
  <a href="http://www.facebook.com/sharer.php?s=100&p[title]=WP Smush&p[url]=http://wordpress.org/plugins/wp-smushit/"
37
  class="button wp-smush-share-button" id="wp-smush-facebook-share">
38
- <i class="dev-icon dev-icon-facebook"></i><?php esc_html_e( "SHARE", "wp-smushit" ); ?></a>
39
  <a href="whatsapp://send?text='<?php echo esc_attr( $share_msg ); ?>'"
40
  class="button wp-smush-share-button"
41
  id="wp-smush-whatsapp-share">
31
  <!-- Twitter Button -->
32
  <a href="https://twitter.com/intent/tweet?text=<?php echo esc_attr( $share_msg ); ?>"
33
  class="button wp-smush-share-button" id="wp-smush-twitter-share">
34
+ <i class="icon-fi-social-twitter"></i><?php esc_html_e( "TWEET", "wp-smushit" ); ?></a>
35
  <!-- Facebook Button -->
36
  <a href="http://www.facebook.com/sharer.php?s=100&p[title]=WP Smush&p[url]=http://wordpress.org/plugins/wp-smushit/"
37
  class="button wp-smush-share-button" id="wp-smush-facebook-share">
38
+ <i class="icon-fi-social-facebook"></i><?php esc_html_e( "SHARE", "wp-smushit" ); ?></a>
39
  <a href="whatsapp://send?text='<?php echo esc_attr( $share_msg ); ?>'"
40
  class="button wp-smush-share-button"
41
  id="wp-smush-whatsapp-share">
lib/class-wp-smush-ui.php CHANGED
@@ -54,7 +54,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
54
  if ( $dismissible ) { ?>
55
  <div class="float-r smush-dismiss-welcome">
56
  <a href="#" title="<?php esc_html_e( "Dismiss Welcome notice", "wp-smushit" ); ?>">
57
- <i class="wdv-icon wdv-icon-fw wdv-icon-remove"></i>
58
  </a>
59
  </div><?php
60
  } ?>
@@ -70,7 +70,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
70
 
71
  //Header Of the Box ?>
72
  <dialog id="smush-quick-setup" title="<?php esc_html_e( "QUICK SETUP", "wp-smushit" ); ?>" class="small">
73
- <p class="wp-smush-welcome-message end"><?php esc_html_e( 'Welcome to Smush - Winner of Torque Plugin Madness 2017! Let\'s quickly set up the basics for you, then you can fine tweak each setting as you go - our recommendations are on by default.', "wp-smushit" ); ?></p>
74
  <div class="smush-quick-setup-settings">
75
  <form method="post">
76
  <input type="hidden" value="setupSmush" name="action"/><?php
@@ -96,25 +96,25 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
96
  continue;
97
  }
98
  $setting_m_key = WP_SMUSH_PREFIX . $name;
99
- $setting_val = $WpSmush->validate_install() ? $wpsmush_settings->get_setting( $setting_m_key, false ) : false;
100
  //Set the default value 1 for auto smush
101
  if( 'auto' == $name && false === $setting_val ) {
102
  $setting_val = 1;
103
  } ?>
104
  <div class='wp-smush-setting-row wp-smush-basic'>
105
- <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
106
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
107
  <small class="smush-setting-description">
108
  <?php echo $wpsmushit_admin->settings[ $name ]['desc']; ?>
109
  </small>
110
- <?php $this->resize_settings($name ); ?>
111
  </label>
112
  <span class="toggle float-r">
113
  <input type="checkbox" class="toggle-checkbox"
114
  id="<?php echo $setting_m_key . '-quick-setup'; ?>"
115
  name="smush_settings[]" <?php checked( $setting_val, 1, true ); ?> value="<?php echo $setting_m_key; ?>" tabindex="0">
116
- <label class="toggle-label" for="<?php echo $setting_m_key . '-quick-setup'; ?>"></label>
117
  </span>
 
118
  </div><?php
119
  }
120
  ?>
@@ -248,7 +248,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
248
  </div><?php
249
  } ?>
250
  <hr /><?php
251
- if( !$settings['resize'] ) {
252
  $class = ' settings-desc float-l';
253
  }elseif ( empty( $wpsmushit_admin->stats['resize_savings'] ) ) {
254
  $class = ' settings-desc float-r';
@@ -384,7 +384,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
384
  $setting_val = $WpSmush->validate_install() ? $wpsmush_settings->get_setting( $setting_m_key, false ) : 0;?>
385
  <div class='wp-smush-setting-row wp-smush-advanced'>
386
  <div class="column column-left">
387
- <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
388
  <span class="wp-smush-setting-label"><?php echo $label; ?></span>
389
  <br/>
390
  <small class="smush-setting-description"><?php
@@ -405,7 +405,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
405
  id="<?php echo $setting_m_key; ?>" <?php checked( $setting_val, 1, true ); ?>
406
  value="1"
407
  name="<?php echo $setting_m_key; ?>" tabindex= "0">
408
- <label class="toggle-label <?php echo $setting_m_key . '-label'; ?>" for="<?php echo $setting_m_key; ?>"></label>
409
  </span>
410
  <div class="column-right-content">
411
  <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
@@ -469,7 +469,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
469
  <!-- A tab index of 0 keeps the element in tab flow with other elements with an unspecified tab index which are still tabbable.) -->
470
  <div class='wp-smush-setting-row wp-smush-basic'>
471
  <div class="column column-left"">
472
- <label class="inline-label" for="<?php echo $opt_networkwide; ?>" tabindex="0">
473
  <span class="wp-smush-setting-label">
474
  <?php echo $wpsmushit_admin->settings['networkwide']['short_label']; ?>
475
  </span><br/>
@@ -482,11 +482,11 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
482
  <span class="toggle float-l">
483
  <input type="checkbox" class="toggle-checkbox"
484
  id="<?php echo $opt_networkwide; ?>"
485
- name="<?php echo $opt_networkwide; ?>" <?php checked( $opt_networkwide_val, 1, true ); ?> value="1" tabindex="0">
486
- <label class="toggle-label" for="<?php echo $opt_networkwide; ?>"></label>
487
  </span>
488
  <div class="column-right-content">
489
- <label class="inline-label" for="<?php echo $opt_networkwide; ?>" tabindex="0">
490
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings['networkwide']['label']; ?></span><br/>
491
  </label>
492
  </div>
@@ -528,7 +528,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
528
  $label = !empty( $wpsmushit_admin->settings[ $name ]['short_label'] ) ? $wpsmushit_admin->settings[ $name ]['short_label'] : $wpsmushit_admin->settings[ $name ]['label']; ?>
529
  <div class='wp-smush-setting-row wp-smush-basic'>
530
  <div class="column column-left">
531
- <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
532
  <span class="wp-smush-setting-label"><?php echo $label; ?></span><br/>
533
  <small class="smush-setting-description"><?php
534
  //For pro settings, print a different description for group setting
@@ -540,17 +540,17 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
540
  </small>
541
  </label>
542
  </div>
543
- <div class="column column-right"><?php
544
  //Do not print for Resize, Smush Original, Backup
545
  if( !in_array( $name, $this->setting_group ) ) { ?>
546
  <span class="toggle float-l">
547
- <input type="checkbox" class="toggle-checkbox"
548
  id="<?php echo $setting_m_key; ?>"
549
- name="<?php echo $setting_m_key; ?>" <?php checked( $setting_val, 1, true ); ?> value="1" tabindex="0">
550
- <label class="toggle-label <?php echo $setting_m_key . '-label'; ?>" for="<?php echo $setting_m_key; ?>"></label>
551
  </span>
552
  <div class="column-right-content">
553
- <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
554
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
555
  </label><?php
556
  $this->settings_desc( $name );
@@ -596,6 +596,10 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
596
  echo '<div class="block float-l">';
597
  $this->quick_setup();
598
  echo '</div>';
 
 
 
 
599
  } ?>
600
 
601
  <!-- Bulk Smush Progress Bar -->
@@ -676,8 +680,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
676
  Get access to the tools that will win you more clients and help you spend less time working.
677
  Start a free WPMU DEV trial today.</p>
678
  <span class="wp-smush-pro-cta tc">
679
- <a href="<?php echo esc_url( $upgrade_url ); ?>"
680
- class="button button-cta button-green" target="_blank">GET STARTED</a>
681
  </span>
682
  </div><?php
683
  echo "</section>";
@@ -727,7 +730,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
727
  );
728
 
729
  //Check whether to show pagespeed recommendation or not
730
- $hide_pagespeed = get_network_option(get_current_network_id(), WP_SMUSH_PREFIX . 'hide_pagespeed_suggestion');
731
 
732
  //If there are no images in Media Library
733
  if ( 0 >= $wpsmushit_admin->total_count ) { ?>
@@ -743,7 +746,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
743
  } else { ?>
744
  <!-- Hide All done div if there are images pending -->
745
  <div class="wp-smush-notice wp-smush-all-done<?php echo $all_done ? '' : ' hidden' ?>" tabindex="0">
746
- <i class="dev-icon dev-icon-tick"></i><?php esc_html_e( "All images are smushed and up to date. Awesome!", "wp-smushit" ); ?>
747
  </div><?php
748
  if( !$hide_pagespeed ) {?>
749
  <div class="wp-smush-pagespeed-recommendation<?php echo $all_done ? '' : ' hidden' ?>">
@@ -761,7 +764,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
761
  }
762
  ?>
763
  </ol>
764
- <span class="dismiss-recommendation"><i class="dev-icon dev-icon-cross"></i><?php esc_html_e("DISMISS", "wp-smushit"); ?></span>
765
  </div><?php
766
  } ?>
767
  <div class="wp-smush-bulk-wrapper <?php echo $all_done ? ' hidden' : ''; ?>"><?php
@@ -782,7 +785,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
782
  );
783
  ?>
784
  <div class="wp-smush-notice wp-smush-remaining<?php echo $class; ?>" tabindex="0">
785
- <i class="wdv-icon wdv-icon-fw wdv-icon-exclamation-sign"></i>
786
  <span class="wp-smush-notice-text"><?php
787
  printf( _n( "%s, you have %s%s%d%s attachment%s that needs smushing!", "%s, you have %s%s%d%s attachments%s that need smushing!", $wpsmushit_admin->remaining_count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $wpsmushit_admin->remaining_count, '</span>', '</strong>' );
788
  if( !$WpSmush->validate_install() && $wpsmushit_admin->remaining_count > 50 ) {
@@ -792,12 +795,12 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
792
  </span>
793
  </div><?php
794
  } ?>
795
- <button type="button" class="wp-smush-all wp-smush-button"><?php echo $button_content; ?></button>
796
  </div><?php
797
  $this->progress_bar( $wpsmushit_admin );
798
  //Enable Super Smush
799
  if ( $WpSmush->validate_install() && ! $WpSmush->lossy_enabled ) { ?>
800
- <p class="wp-smush-enable-lossy hidden"><?php esc_html_e( "Tip: Enable Super-smush in the Settings area to get even more savings with almost no noticeable quality loss.", "wp-smushit" ); ?></p><?php
801
  }
802
  $this->super_smush_promo();
803
  }
@@ -821,7 +824,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
821
  <div class="wp-smush-bulk-progress-bar-wrapper hidden">
822
  <p class="wp-smush-bulk-active roboto-medium"><?php printf( esc_html__( "%sBulk smush is currently running.%s You need to keep this page open for the process to complete.", "wp-smushit" ), '<strong>', '</strong>' ); ?></p>
823
  <div class="wp-smush-progress-wrap">
824
- <img src="<?php echo WP_SMUSH_URL . 'assets/images/loading.gif'; ?>" alt="<?php esc_html_e("Working..", "wp-smushit"); ?>" width="20px">
825
  <div class="wp-smush-progress-bar-wrap">
826
  <div class="wp-smush-progress-bar">
827
  <div class="wp-smush-progress-inner" style="width: <?php echo $smushed_pc; ?>%;">
@@ -870,9 +873,9 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
870
  //Show only if we have any images to ber resmushed
871
  if ( $show ) {
872
  return '<div class="wp-smush-notice wp-smush-resmush-notice wp-smush-remaining" tabindex="0">
873
- <i class="wdv-icon wdv-icon-fw wdv-icon-exclamation-sign"></i>
874
  <span class="wp-smush-notice-text">' . sprintf( _n( "%s, you have %s%s%d%s attachment%s that needs re-compressing!", "%s, you have %s%s%d%s attachments%s that need re-compressing!", $count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $count, '</span>', '</strong>' ) . '</span>
875
- <button class="button button-grey button-small wp-smush-skip-resmush">' . esc_html__( "Skip", "wp-smushit" ) . '</button>
876
  </div>';
877
  }
878
  }
@@ -901,8 +904,8 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
901
  if ( $smush_count || $resmush_count ) {
902
  $message .= ' ' . sprintf( esc_html__( "You have images that need smushing. %sBulk smush now!%s", "wp-smushit" ), '<a href="#" class="wp-smush-trigger-bulk">', '</a>' );
903
  }
904
- echo '<div class="wp-smush-notice wp-smush-settings-updated"><i class="dev-icon dev-icon-tick"></i> ' . $message . '
905
- <i class="dev-icon dev-icon-cross"></i>
906
  </div>';
907
 
908
  //Remove the option
@@ -927,7 +930,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
927
  //Page Heading for Free and Pro Version
928
  $page_heading = $WpSmush->validate_install() ? esc_html__( 'WP Smush Pro', 'wp-smushit' ) : esc_html__( 'WP Smush', 'wp-smushit' );
929
 
930
- $auto_smush_message = $WpSmush->is_auto_smush_enabled() ? sprintf( esc_html__( "Automatic smushing is %senabled%s. Newly uploaded images will be automagically compressed." ), '<span class="wp-smush-auto-enabled">', '</span>' ) : sprintf( esc_html__( "Automatic smushing is %sdisabled%s. Newly uploaded images will need to be manually smushed." ), '<span class="wp-smush-auto-disabled">', '</span>' );
931
 
932
  //User API check, and display a message if not valid
933
  $user_validation = $this->get_user_validation_message();
@@ -944,6 +947,10 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
944
  $user_validation .
945
  $recheck_notice .
946
  '</section>';
 
 
 
 
947
  //Check if settings were updated and shoe a notice
948
  $this->settings_updated();
949
 
@@ -1044,7 +1051,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1044
  array(
1045
  'utm_source' => 'Smush-Free',
1046
  'utm_medium' => 'Banner',
1047
- 'utm_campaign' => 'smush-lady-upgrade'
1048
  ),
1049
  $wpsmushit_admin->upgrade_url
1050
  ); ?>
@@ -1099,7 +1106,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1099
  <input type="submit" id="wp-smush-save-settings" class="button button-grey"
1100
  value="' . esc_html__( 'UPDATE SETTINGS', 'wp-smushit' ) . '">
1101
  <span class="spinner"></span>
1102
- <span class="smush-submit-note">' . esc_html__( "Smush will automatically check for any images that need re-smushing.", "wp-smsuhit") . '</span>
1103
  </span>
1104
  </form>';
1105
 
@@ -1125,7 +1132,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1125
  if( !$run_recheck ) {
1126
  return;
1127
  }
1128
- $message = '<div class="wp-smush-notice wp-smush-re-check-message">' . esc_html__( "Smush settings were updated, performing a quick scan to check if any of the images need to be Smushed again.", "wp-smushit") . '<i class="dev-icon dev-icon-cross"></i></div>';
1129
 
1130
  return $message;
1131
  }
@@ -1146,7 +1153,7 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1146
  if( !empty( $sizes ) ) { ?>
1147
  <!-- List of image sizes recognised by WP Smush -->
1148
  <div class="wp-smush-image-size-list">
1149
- <p><?php printf( esc_html__("Every time you upload an image to your site, WordPress generates a resized version of that image for every default and/or custom image size that your theme has registered. This means there are multiple versions of your images in your media library.%sChoose the images size/s below that you would like optimized:%s", "wp-smushit"), "<br /> <br />", "<br />"); ?></p><?php
1150
  foreach ( $sizes as $size_k => $size ) {
1151
  //If image sizes array isn't set, mark all checked ( Default Values )
1152
  if ( false === $image_sizes ) {
@@ -1170,9 +1177,11 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1170
  * Prints Dimensions required for Resizing
1171
  *
1172
  * @param string $name
 
 
1173
  * @param int $setting_status
1174
  */
1175
- function resize_settings( $name = '' ) {
1176
  if( empty( $name ) || 'resize' != $name ) {
1177
  return;
1178
  }
@@ -1184,18 +1193,20 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1184
 
1185
  $setting_status = !empty( $wpsmush_settings->settings['resize'] ) ? $wpsmush_settings->settings['resize'] : 0;
1186
 
 
 
1187
  //Placeholder width and Height
1188
  $p_width = $p_height = 2048; ?>
1189
  <div class="wp-smush-resize-settings-wrap<?php echo $setting_status ? '' : ' hidden'?>">
1190
- <label class="resize-width-label" for="<?php echo WP_SMUSH_PREFIX . $name . '_width'; ?>"><span class = "label-text"><?php esc_html_e("Max width", "wp-smushit"); ?></span>
1191
- <input type="text" id="<?php echo WP_SMUSH_PREFIX . $name . '_width'; ?>" class="wp-smush-resize-input" value="<?php echo isset( $resize_sizes['width'] ) && '' != $resize_sizes['width'] ? $resize_sizes['width'] : $p_width; ?>" placeholder="<?php echo $p_width; ?>" name="<?php echo WP_SMUSH_PREFIX . $name . '_width'; ?>" tabindex="0" width=100 /> px
1192
  </label>
1193
- <label class="resize-height-label" for"<?php echo WP_SMUSH_PREFIX . $name . '_height'; ?>"><span class = "label-text"><?php esc_html_e("Max height", "wp-smushit"); ?></span>
1194
- <input type="text" id="<?php echo WP_SMUSH_PREFIX . $name . '_height'; ?>" class="wp-smush-resize-input" value="<?php echo isset( $resize_sizes['height'] ) && '' != $resize_sizes['height'] ? $resize_sizes['height'] : $p_height; ?>" placeholder="<?php echo $p_height; ?>" name="<?php echo WP_SMUSH_PREFIX . $name . '_height'; ?>" tabindex="0" width=100 /> px
1195
  </label>
1196
- <div class="wp-smush-resize-note"><?php printf( esc_html__("Currently, your largest image size is set at %s%dpx wide x %dpx high%s.", "wp-smushit"), '<strong>', $max_sizes['width'], $max_sizes['height'], '</strong>' ); ?></div>
1197
- <div class="wp-smush-settings-info wp-smush-size-info wp-smush-update-width hidden"><?php esc_html_e( "Just to let you know, the width you've entered is less than your largest image and may result in pixelation.", "wp-smushit" ); ?></div>
1198
- <div class="wp-smush-settings-info wp-smush-size-info wp-smush-update-height hidden"><?php esc_html_e( "Just to let you know, the height you’ve entered is less than your largest image and may result in pixelation.", "wp-smushit" ); ?></div>
1199
  </div><?php
1200
  }
1201
 
@@ -1229,14 +1240,14 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1229
  <input type="checkbox" class="toggle-checkbox"
1230
  id="<?php echo WP_SMUSH_PREFIX . $name ; ?>" <?php checked( $setting_val, 1, true ); ?>
1231
  value="1"
1232
- name="<?php echo WP_SMUSH_PREFIX . $name; ?>" tabindex= "0">
1233
- <label class="toggle-label <?php echo WP_SMUSH_PREFIX . $name ; ?>-label" for="<?php echo WP_SMUSH_PREFIX . $name; ?>"></label>
1234
  </span>
1235
  <div class="column-right-content">
1236
- <label class="inline-label" for="<?php echo WP_SMUSH_PREFIX . $name; ?>" tabindex="0">
1237
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
1238
  </label>
1239
- <span class="wp-smush-setting-desc"><?php echo $wpsmushit_admin->settings[ $name ]['desc']; ?></span><br/><?php
1240
  $this->resize_settings( $name );?>
1241
  </div>
1242
  </div><?php
@@ -1248,10 +1259,10 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1248
  * @param string $setting_key
1249
  */
1250
  function settings_desc( $setting_key = '' ) {
1251
- if( empty( $setting_key ) ) {
1252
  return;
1253
  } ?>
1254
- <div class="column-right-content-description"><?php
1255
  switch ( $setting_key ) {
1256
 
1257
  case 'keep_exif':
@@ -1268,6 +1279,83 @@ if ( ! class_exists( 'WpSmushBulkUi' ) ) {
1268
  } ?>
1269
  </div><?php
1270
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1271
  }
1272
  global $wpsmush_bulkui;
1273
  $wpsmush_bulkui = new WpSmushBulkUi();
54
  if ( $dismissible ) { ?>
55
  <div class="float-r smush-dismiss-welcome">
56
  <a href="#" title="<?php esc_html_e( "Dismiss Welcome notice", "wp-smushit" ); ?>">
57
+ <i class="icon-fi-close"></i>
58
  </a>
59
  </div><?php
60
  } ?>
70
 
71
  //Header Of the Box ?>
72
  <dialog id="smush-quick-setup" title="<?php esc_html_e( "QUICK SETUP", "wp-smushit" ); ?>" class="small">
73
+ <p class="wp-smush-welcome-message end"><?php esc_html_e( 'Welcome to Smush - Winner of Torque Plugin Madness 2017! Let\'s quickly set up the basics for you, then you can fine tune each setting as you go - our recommendations are on by default.', "wp-smushit" ); ?></p>
74
  <div class="smush-quick-setup-settings">
75
  <form method="post">
76
  <input type="hidden" value="setupSmush" name="action"/><?php
96
  continue;
97
  }
98
  $setting_m_key = WP_SMUSH_PREFIX . $name;
99
+ $setting_val = $WpSmush->validate_install() ? $wpsmush_settings->settings[$name] : false;
100
  //Set the default value 1 for auto smush
101
  if( 'auto' == $name && false === $setting_val ) {
102
  $setting_val = 1;
103
  } ?>
104
  <div class='wp-smush-setting-row wp-smush-basic'>
105
+ <label class="inline-label" for="<?php echo $setting_m_key . '-quick-setup'; ?>">
106
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
107
  <small class="smush-setting-description">
108
  <?php echo $wpsmushit_admin->settings[ $name ]['desc']; ?>
109
  </small>
 
110
  </label>
111
  <span class="toggle float-r">
112
  <input type="checkbox" class="toggle-checkbox"
113
  id="<?php echo $setting_m_key . '-quick-setup'; ?>"
114
  name="smush_settings[]" <?php checked( $setting_val, 1, true ); ?> value="<?php echo $setting_m_key; ?>" tabindex="0">
115
+ <label class="toggle-label" for="<?php echo $setting_m_key . '-quick-setup'; ?>" aria-hidden="true"></label>
116
  </span>
117
+ <?php $this->resize_settings( $name, 'quick-setup-' ); ?>
118
  </div><?php
119
  }
120
  ?>
248
  </div><?php
249
  } ?>
250
  <hr /><?php
251
+ if( !$settings['resize'] && empty( $wpsmushit_admin->stats['resize_savings'] ) ) {
252
  $class = ' settings-desc float-l';
253
  }elseif ( empty( $wpsmushit_admin->stats['resize_savings'] ) ) {
254
  $class = ' settings-desc float-r';
384
  $setting_val = $WpSmush->validate_install() ? $wpsmush_settings->get_setting( $setting_m_key, false ) : 0;?>
385
  <div class='wp-smush-setting-row wp-smush-advanced'>
386
  <div class="column column-left">
387
+ <label class="inline-label" for="<?php echo $setting_m_key; ?>" aria-hidden="true">
388
  <span class="wp-smush-setting-label"><?php echo $label; ?></span>
389
  <br/>
390
  <small class="smush-setting-description"><?php
405
  id="<?php echo $setting_m_key; ?>" <?php checked( $setting_val, 1, true ); ?>
406
  value="1"
407
  name="<?php echo $setting_m_key; ?>" tabindex= "0">
408
+ <label class="toggle-label <?php echo $setting_m_key . '-label'; ?>" for="<?php echo $setting_m_key; ?>" aria-hidden="true"></label>
409
  </span>
410
  <div class="column-right-content">
411
  <label class="inline-label" for="<?php echo $setting_m_key; ?>" tabindex="0">
469
  <!-- A tab index of 0 keeps the element in tab flow with other elements with an unspecified tab index which are still tabbable.) -->
470
  <div class='wp-smush-setting-row wp-smush-basic'>
471
  <div class="column column-left"">
472
+ <label class="inline-label" for="<?php echo $opt_networkwide; ?>" aria-hidden="true">
473
  <span class="wp-smush-setting-label">
474
  <?php echo $wpsmushit_admin->settings['networkwide']['short_label']; ?>
475
  </span><br/>
482
  <span class="toggle float-l">
483
  <input type="checkbox" class="toggle-checkbox"
484
  id="<?php echo $opt_networkwide; ?>"
485
+ name="<?php echo $opt_networkwide; ?>" <?php checked( $opt_networkwide_val, 1, true ); ?> value="1">
486
+ <label class="toggle-label" for="<?php echo $opt_networkwide; ?>" aria-hidden="true"></label>
487
  </span>
488
  <div class="column-right-content">
489
+ <label class="inline-label" for="<?php echo $opt_networkwide; ?>">
490
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings['networkwide']['label']; ?></span><br/>
491
  </label>
492
  </div>
528
  $label = !empty( $wpsmushit_admin->settings[ $name ]['short_label'] ) ? $wpsmushit_admin->settings[ $name ]['short_label'] : $wpsmushit_admin->settings[ $name ]['label']; ?>
529
  <div class='wp-smush-setting-row wp-smush-basic'>
530
  <div class="column column-left">
531
+ <label class="inline-label" for="<?php echo 'column-' . $setting_m_key; ?>" aria-hidden="true">
532
  <span class="wp-smush-setting-label"><?php echo $label; ?></span><br/>
533
  <small class="smush-setting-description"><?php
534
  //For pro settings, print a different description for group setting
540
  </small>
541
  </label>
542
  </div>
543
+ <div class="column column-right" id="column-<?php echo $setting_m_key; ?>"><?php
544
  //Do not print for Resize, Smush Original, Backup
545
  if( !in_array( $name, $this->setting_group ) ) { ?>
546
  <span class="toggle float-l">
547
+ <input type="checkbox" class="toggle-checkbox" aria-describedby="<?php echo $setting_m_key . '-desc'?>"
548
  id="<?php echo $setting_m_key; ?>"
549
+ name="<?php echo $setting_m_key; ?>" <?php checked( $setting_val, 1, true ); ?> value="1">
550
+ <label class="toggle-label <?php echo $setting_m_key . '-label'; ?>" for="<?php echo $setting_m_key; ?>" aria-hidden="true"></label>
551
  </span>
552
  <div class="column-right-content">
553
+ <label class="inline-label" for="<?php echo $setting_m_key; ?>">
554
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
555
  </label><?php
556
  $this->settings_desc( $name );
596
  echo '<div class="block float-l">';
597
  $this->quick_setup();
598
  echo '</div>';
599
+ }
600
+ //If free version
601
+ if( !$WpSmush->validate_install() ) {
602
+ $this->smush_pro_modal();
603
  } ?>
604
 
605
  <!-- Bulk Smush Progress Bar -->
680
  Get access to the tools that will win you more clients and help you spend less time working.
681
  Start a free WPMU DEV trial today.</p>
682
  <span class="wp-smush-pro-cta tc">
683
+ <a href="#smush-pro-features" class="button button-cta button-green get-smush-pro-cta" rel="dialog" target="_blank"><?php esc_html_e("GET STARTED", "wp-smushit"); ?></a>
 
684
  </span>
685
  </div><?php
686
  echo "</section>";
730
  );
731
 
732
  //Check whether to show pagespeed recommendation or not
733
+ $hide_pagespeed = get_site_option(WP_SMUSH_PREFIX . 'hide_pagespeed_suggestion');
734
 
735
  //If there are no images in Media Library
736
  if ( 0 >= $wpsmushit_admin->total_count ) { ?>
746
  } else { ?>
747
  <!-- Hide All done div if there are images pending -->
748
  <div class="wp-smush-notice wp-smush-all-done<?php echo $all_done ? '' : ' hidden' ?>" tabindex="0">
749
+ <i class="icon-fi-check-tick"></i><?php esc_html_e( "All images are smushed and up to date. Awesome!", "wp-smushit" ); ?>
750
  </div><?php
751
  if( !$hide_pagespeed ) {?>
752
  <div class="wp-smush-pagespeed-recommendation<?php echo $all_done ? '' : ' hidden' ?>">
764
  }
765
  ?>
766
  </ol>
767
+ <span class="dismiss-recommendation"><i class="icon-fi-cross-close"></i><?php esc_html_e("DISMISS", "wp-smushit"); ?></span>
768
  </div><?php
769
  } ?>
770
  <div class="wp-smush-bulk-wrapper <?php echo $all_done ? ' hidden' : ''; ?>"><?php
785
  );
786
  ?>
787
  <div class="wp-smush-notice wp-smush-remaining<?php echo $class; ?>" tabindex="0">
788
+ <i class="icon-fi-warning-alert"></i>
789
  <span class="wp-smush-notice-text"><?php
790
  printf( _n( "%s, you have %s%s%d%s attachment%s that needs smushing!", "%s, you have %s%s%d%s attachments%s that need smushing!", $wpsmushit_admin->remaining_count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $wpsmushit_admin->remaining_count, '</span>', '</strong>' );
791
  if( !$WpSmush->validate_install() && $wpsmushit_admin->remaining_count > 50 ) {
795
  </span>
796
  </div><?php
797
  } ?>
798
+ <button type="button" class="wp-smush-all wp-smush-button" title="<?php esc_html_e('Click to start Bulk Smushing images in Media Library', 'wp-smushit'); ?>"><?php echo $button_content; ?></button>
799
  </div><?php
800
  $this->progress_bar( $wpsmushit_admin );
801
  //Enable Super Smush
802
  if ( $WpSmush->validate_install() && ! $WpSmush->lossy_enabled ) { ?>
803
+ <p class="wp-smush-enable-lossy hidden"><?php esc_html_e( "Tip: Enable Super-smush in the Settings area to get even more savings with almost no visible drop in quality.", "wp-smushit" ); ?></p><?php
804
  }
805
  $this->super_smush_promo();
806
  }
824
  <div class="wp-smush-bulk-progress-bar-wrapper hidden">
825
  <p class="wp-smush-bulk-active roboto-medium"><?php printf( esc_html__( "%sBulk smush is currently running.%s You need to keep this page open for the process to complete.", "wp-smushit" ), '<strong>', '</strong>' ); ?></p>
826
  <div class="wp-smush-progress-wrap">
827
+ <i class="icon-fi-loader"></i>
828
  <div class="wp-smush-progress-bar-wrap">
829
  <div class="wp-smush-progress-bar">
830
  <div class="wp-smush-progress-inner" style="width: <?php echo $smushed_pc; ?>%;">
873
  //Show only if we have any images to ber resmushed
874
  if ( $show ) {
875
  return '<div class="wp-smush-notice wp-smush-resmush-notice wp-smush-remaining" tabindex="0">
876
+ <i class="icon-fi-warning-alert"></i>
877
  <span class="wp-smush-notice-text">' . sprintf( _n( "%s, you have %s%s%d%s attachment%s that needs re-compressing!", "%s, you have %s%s%d%s attachments%s that need re-compressing!", $count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $count, '</span>', '</strong>' ) . '</span>
878
+ <button class="button button-grey button-small wp-smush-skip-resmush" title="' . esc_html__("Skip re-smushing the images", "wp-smushit") . '">' . esc_html__( "Skip", "wp-smushit" ) . '</button>
879
  </div>';
880
  }
881
  }
904
  if ( $smush_count || $resmush_count ) {
905
  $message .= ' ' . sprintf( esc_html__( "You have images that need smushing. %sBulk smush now!%s", "wp-smushit" ), '<a href="#" class="wp-smush-trigger-bulk">', '</a>' );
906
  }
907
+ echo '<div class="wp-smush-notice wp-smush-settings-updated"><i class="icon-fi-check-tick"></i> ' . $message . '
908
+ <i class="icon-fi-close"></i>
909
  </div>';
910
 
911
  //Remove the option
930
  //Page Heading for Free and Pro Version
931
  $page_heading = $WpSmush->validate_install() ? esc_html__( 'WP Smush Pro', 'wp-smushit' ) : esc_html__( 'WP Smush', 'wp-smushit' );
932
 
933
+ $auto_smush_message = $WpSmush->is_auto_smush_enabled() ? sprintf( esc_html__( "Automatic smushing is %senabled%s. Newly uploaded images will be automagically compressed.", "wp-smushit" ), '<span class="wp-smush-auto-enabled">', '</span>' ) : sprintf( esc_html__( "Automatic smushing is %sdisabled%s. Newly uploaded images will need to be manually smushed.", "wp-smushit" ), '<span class="wp-smush-auto-disabled">', '</span>' );
934
 
935
  //User API check, and display a message if not valid
936
  $user_validation = $this->get_user_validation_message();
947
  $user_validation .
948
  $recheck_notice .
949
  '</section>';
950
+
951
+ //Check for any stored API message and show it
952
+ $this->show_api_message();
953
+
954
  //Check if settings were updated and shoe a notice
955
  $this->settings_updated();
956
 
1051
  array(
1052
  'utm_source' => 'Smush-Free',
1053
  'utm_medium' => 'Banner',
1054
+ 'utm_campaign' => 'smush-advanced-settings-upsell'
1055
  ),
1056
  $wpsmushit_admin->upgrade_url
1057
  ); ?>
1106
  <input type="submit" id="wp-smush-save-settings" class="button button-grey"
1107
  value="' . esc_html__( 'UPDATE SETTINGS', 'wp-smushit' ) . '">
1108
  <span class="spinner"></span>
1109
+ <span class="smush-submit-note">' . esc_html__( "Smush will automatically check for any images that need re-smushing.", "wp-smushit") . '</span>
1110
  </span>
1111
  </form>';
1112
 
1132
  if( !$run_recheck ) {
1133
  return;
1134
  }
1135
+ $message = '<div class="wp-smush-notice wp-smush-re-check-message">' . esc_html__( "Smush settings were updated, performing a quick scan to check if any of the images need to be Smushed again.", "wp-smushit") . '<i class="icon-fi-close"></i></div>';
1136
 
1137
  return $message;
1138
  }
1153
  if( !empty( $sizes ) ) { ?>
1154
  <!-- List of image sizes recognised by WP Smush -->
1155
  <div class="wp-smush-image-size-list">
1156
+ <span id="wp-smush-auto-desc"><?php printf( esc_html__("Every time you upload an image to your site, WordPress generates a resized version of that image for every default and/or custom image size that your theme has registered. This means there are multiple versions of your images in your media library.%sChoose the images size/s below that you would like optimized:%s", "wp-smushit"), "<br /> <br />", "<br />"); ?></span><?php
1157
  foreach ( $sizes as $size_k => $size ) {
1158
  //If image sizes array isn't set, mark all checked ( Default Values )
1159
  if ( false === $image_sizes ) {
1177
  * Prints Dimensions required for Resizing
1178
  *
1179
  * @param string $name
1180
+ * @param string $class_prefix, To avoid element id repetition on settings page
1181
+ *
1182
  * @param int $setting_status
1183
  */
1184
+ function resize_settings( $name = '', $class_prefix = '' ) {
1185
  if( empty( $name ) || 'resize' != $name ) {
1186
  return;
1187
  }
1193
 
1194
  $setting_status = !empty( $wpsmush_settings->settings['resize'] ) ? $wpsmush_settings->settings['resize'] : 0;
1195
 
1196
+ $prefix = !empty( $class_prefix ) ? $class_prefix : WP_SMUSH_PREFIX;
1197
+
1198
  //Placeholder width and Height
1199
  $p_width = $p_height = 2048; ?>
1200
  <div class="wp-smush-resize-settings-wrap<?php echo $setting_status ? '' : ' hidden'?>">
1201
+ <label class="resize-width-label" aria-labelledby="<?php echo $prefix; ?>label-max-width" for="<?php echo $prefix . $name . '_width'; ?>"><span class = "label-text" id="<?php echo $prefix; ?>label-max-width"><?php esc_html_e("Max width", "wp-smushit"); ?></span>
1202
+ <input aria-required="true" type="text" aria-describedby="<?php echo $prefix; ?>wp-smush-resize-note" id="<?php echo $prefix . $name . '_width'; ?>" class="wp-smush-resize-input" value="<?php echo isset( $resize_sizes['width'] ) && '' != $resize_sizes['width'] ? $resize_sizes['width'] : $p_width; ?>" name="<?php echo WP_SMUSH_PREFIX . $name . '_width'; ?>" tabindex="0" width=100 /> px
1203
  </label>
1204
+ <label class="resize-height-label" aria-labelledby="<?php echo $prefix; ?>label-max-height" for = "<?php echo $prefix . $name . '_height'; ?>"><span class = "label-text" id="<?php echo $prefix; ?>label-max-height"><?php esc_html_e("Max height", "wp-smushit"); ?></span>
1205
+ <input aria-required="true" type="text" aria-describedby="<?php echo $prefix; ?>wp-smush-resize-note" id="<?php echo $prefix . $name . '_height'; ?>" class="wp-smush-resize-input" value="<?php echo isset( $resize_sizes['height'] ) && '' != $resize_sizes['height'] ? $resize_sizes['height'] : $p_height; ?>" name="<?php echo WP_SMUSH_PREFIX . $name . '_height'; ?>" tabindex="0" width=100 /> px
1206
  </label>
1207
+ <div class="wp-smush-resize-note" id="<?php echo $prefix; ?>wp-smush-resize-note"><?php printf( esc_html__("Currently, your largest image size is set at %s%dpx wide %s %dpx high%s.", "wp-smushit"), '<strong>', $max_sizes['width'], '&times;', $max_sizes['height'], '</strong>' ); ?></div>
1208
+ <div class="wp-smush-settings-info wp-smush-size-info wp-smush-update-width hidden" tabindex="0"><?php esc_html_e( "Just to let you know, the width you've entered is less than your largest image and may result in pixelation.", "wp-smushit" ); ?></div>
1209
+ <div class="wp-smush-settings-info wp-smush-size-info wp-smush-update-height hidden" tabindex="0"><?php esc_html_e( "Just to let you know, the height you’ve entered is less than your largest image and may result in pixelation.", "wp-smushit" ); ?></div>
1210
  </div><?php
1211
  }
1212
 
1240
  <input type="checkbox" class="toggle-checkbox"
1241
  id="<?php echo WP_SMUSH_PREFIX . $name ; ?>" <?php checked( $setting_val, 1, true ); ?>
1242
  value="1"
1243
+ name="<?php echo WP_SMUSH_PREFIX . $name; ?>" aria-describedby="<?php echo WP_SMUSH_PREFIX . $name . "-desc" ;?>">
1244
+ <label class="toggle-label <?php echo WP_SMUSH_PREFIX . $name ; ?>-label" for="<?php echo WP_SMUSH_PREFIX . $name; ?>" aria-hidden="true"></label>
1245
  </span>
1246
  <div class="column-right-content">
1247
+ <label class="inline-label" for="<?php echo WP_SMUSH_PREFIX . $name; ?>">
1248
  <span class="wp-smush-setting-label"><?php echo $wpsmushit_admin->settings[ $name ]['label']; ?></span><br/>
1249
  </label>
1250
+ <span class="wp-smush-setting-desc" id="<?php echo WP_SMUSH_PREFIX . $name . "-desc" ;?>"><?php echo $wpsmushit_admin->settings[ $name ]['desc']; ?></span><br/><?php
1251
  $this->resize_settings( $name );?>
1252
  </div>
1253
  </div><?php
1259
  * @param string $setting_key
1260
  */
1261
  function settings_desc( $setting_key = '' ) {
1262
+ if( empty( $setting_key ) || !in_array( $setting_key, array( 'keep_exif', 'png_to_jpg', 's3')) ) {
1263
  return;
1264
  } ?>
1265
+ <div class="column-right-content-description" id="<?php echo WP_SMUSH_PREFIX . $setting_key . "-desc"; ?>"><?php
1266
  switch ( $setting_key ) {
1267
 
1268
  case 'keep_exif':
1279
  } ?>
1280
  </div><?php
1281
  }
1282
+
1283
+ function smush_pro_modal() {
1284
+ //Header Of the Box
1285
+ global $wpsmushit_admin;
1286
+ //If we have any savings
1287
+ $upgrade_url = add_query_arg(
1288
+ array(
1289
+ 'utm_source' => 'Smush-Free',
1290
+ 'utm_medium' => 'Banner',
1291
+ 'utm_campaign'=> 'pro-only-stats'
1292
+ ),
1293
+ $wpsmushit_admin->upgrade_url
1294
+ );?>
1295
+ <dialog id="smush-pro-features" title='<?php esc_html_e( "GET SMUSH PRO", "wp-smushit" ); ?><a href="<?php echo $upgrade_url; ?>" class="smush-pro-link button button-small button-cta button-green" target="_blank"><?php esc_html_e("LEARN MORE", "wp-smushit"); ?></a>' class="wp-smush-get-pro small">
1296
+ <p class="smush-pro-features-message end"><?php esc_html_e( 'Here’s what you’ll get by uprading to Smush Pro.', "wp-smushit" ); ?></p>
1297
+ <ul class="smush-pro-features">
1298
+ <li class="smush-pro-feature-row">
1299
+ <div class="smush-pro-feature-title">
1300
+ <?php esc_html_e("Double the compression", "wp-smushit"); ?></div>
1301
+ <div class="smush-pro-feature-desc"><?php esc_html_e("Optimize images 2x more than regular smushing and with no visible loss in quality using Smush’s intelligent multi-pass lossy compression.", "wp-smushit"); ?></div>
1302
+ </li>
1303
+ <li class="smush-pro-feature-row">
1304
+ <div class="smush-pro-feature-title">
1305
+ <?php esc_html_e("No limits", "wp-smushit"); ?></div>
1306
+ <div class="smush-pro-feature-desc"><?php esc_html_e("The free version allows you to Smush up to 1Mb images, and 50 at a time. The Pro version releases all those limits so you can smush all the things.", "wp-smushit"); ?></div>
1307
+ </li>
1308
+ <li class="smush-pro-feature-row">
1309
+ <div class="smush-pro-feature-title">
1310
+ <?php esc_html_e("Include your originals", "wp-smushit"); ?></div>
1311
+ <div class="smush-pro-feature-desc"><?php esc_html_e("The free version of Smush only compresses your automatically generated image thumbnails. With Pro you can compress your original size images too - in case you want to use them in your theme.", "wp-smushit"); ?></div>
1312
+ </li>
1313
+ <li class="smush-pro-feature-row">
1314
+ <div class="smush-pro-feature-title">
1315
+ <?php esc_html_e("Convert PNGs to JPEGs", "wp-smushit"); ?></div>
1316
+ <div class="smush-pro-feature-desc"><?php esc_html_e("If any of your non-transparent PNGs can be made smaller by converting to JPEG, Smush will automatically convert them to JPEGs so they load faster for your visitors.", "wp-smushit"); ?></div>
1317
+ </li>
1318
+ <li class="smush-pro-feature-row">
1319
+ <div class="smush-pro-feature-title">
1320
+ <?php esc_html_e("Integration with NextGen Gallery", "wp-smushit"); ?></div>
1321
+ <div class="smush-pro-feature-desc"><?php esc_html_e("Using the NextGen Gallery plugin? The Pro version allows you to compress images directly through NextGen Gallery’s settings.", "wp-smushit"); ?></div>
1322
+ </li>
1323
+ </ul>
1324
+ <p class="smush-pro-upsell-text"><?php esc_html_e("Get all of this including 200% faster smushing, Amazon S3 support and heaps more as part of a WPMU DEV membership.", "wp-smushit"); ?></p>
1325
+ <div class="smush-pro-link-wrap"><a href="<?php echo $upgrade_url; ?>" class="smush-pro-link button button-cta button-green" target="_blank"><?php esc_html_e("LEARN MORE", "wp-smushit"); ?></a></div>
1326
+ </dialog><?php
1327
+ }
1328
+
1329
+ /**
1330
+ * Display a stored API message
1331
+ * @return null
1332
+ */
1333
+ function show_api_message() {
1334
+
1335
+ //Do not show message for any other users
1336
+ if( !is_network_admin() && !is_super_admin() ) {
1337
+ return null;
1338
+ }
1339
+
1340
+ $message_icon_class = '';
1341
+ $api_message = get_site_option( WP_SMUSH_PREFIX . 'api_message', array() );
1342
+ $api_message = current( $api_message );
1343
+
1344
+ //Return if the API message is not set or user dismissed it earlier
1345
+ if( empty( $api_message ) || !is_array( $api_message ) || $api_message['status'] != 'show' ) {
1346
+ return null;
1347
+ }
1348
+
1349
+ $message = !empty( $api_message['message'] ) ? $api_message['message'] : '';
1350
+ $message_type = is_array( $api_message ) && !empty( $api_message['type'] ) ? $api_message['type'] : 'info';
1351
+
1352
+ if( 'warning' == $message_type ) {
1353
+ $message_icon_class = "icon-fi-warning-alert";
1354
+ }else if( 'info' == $message_type ) {
1355
+ $message_icon_class = "icon-fi-info";
1356
+ }
1357
+ echo '<div class="wp-smush-notice wp-smush-api-message '. $message_type .'"><i class="'. $message_icon_class .'"></i>' . $message . '<i class="icon-fi-close"></i></div>';
1358
+ }
1359
  }
1360
  global $wpsmush_bulkui;
1361
  $wpsmush_bulkui = new WpSmushBulkUi();
lib/class-wp-smush.php CHANGED
@@ -605,7 +605,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
605
  //Set a transient to avoid multiple request
606
  set_transient( 'smush-in-progress-' . $ID, true, WP_SMUSH_TIMEOUT );
607
 
608
- global $wpsmush_resize, $wpsmush_pngjpg, $wpsmush_settings;
609
 
610
  // While uploading from Mobile App or other sources, admin_init action may not fire.
611
  // So we need to manually initialize those.
@@ -615,6 +615,13 @@ if ( ! class_exists( 'WpSmush' ) ) {
615
  //Check if auto is enabled
616
  $auto_smush = $this->is_auto_smush_enabled();
617
 
 
 
 
 
 
 
 
618
  //Optionally Resize Images
619
  $meta = $wpsmush_resize->auto_resize( $ID, $meta );
620
 
@@ -707,7 +714,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
707
  }
708
  //Check for timeout error and suggest to filter timeout
709
  if ( strpos( $er_msg, 'timed out' ) ) {
710
- $data['message'] = esc_html__( "Skipped due to a timeout error, You can increase the request timeout to make sure Smush has enough time to process larger files. `define('WP_SMUSH_API_TIMEOUT', 150);`.", "wp-smushit" );
711
  }else {
712
  //Handle error
713
  $data['message'] = sprintf( __( 'Error posting to API: %s', 'wp-smushit' ), $result->get_error_message() );
@@ -748,6 +755,12 @@ if ( ! class_exists( 'WpSmush' ) ) {
748
  $data['success'] = true;
749
  $data['data'] = $response->data;
750
  }
 
 
 
 
 
 
751
  //If is_premium is set in response, send it over to check for member validity
752
  if ( ! empty( $response->data ) && isset( $response->data->is_premium ) ) {
753
  $wpsmushit_admin->api_headers['is_premium'] = $response->data->is_premium;
@@ -981,15 +994,19 @@ if ( ! class_exists( 'WpSmush' ) ) {
981
  $percent = isset( $combined_stats['stats']['percent'] ) ? $combined_stats['stats']['percent'] : 0;
982
  $percent = $percent < 0 ? 0 : $percent;
983
 
984
- if ( isset( $wp_smush_data['stats']['size_before'] ) && $wp_smush_data['stats']['size_before'] == 0 && ! empty( $wp_smush_data['sizes'] ) ) {
985
- $status_txt = __( 'Already Optimized', 'wp-smushit' );
 
 
 
 
 
 
986
  $show_button = false;
987
  } else {
988
  if ( $bytes == 0 || $percent == 0 ) {
989
  $status_txt = __( 'Already Optimized', 'wp-smushit' );
990
 
991
- //Show resmush link, if the settings were changed
992
- $show_resmush = $this->show_resmush( $id, $wp_smush_data );
993
  if ( $show_resmush ) {
994
  $status_txt .= '<br />' . $this->get_resmsuh_link( $id );
995
  }
@@ -1152,8 +1169,9 @@ if ( ! class_exists( 'WpSmush' ) ) {
1152
  return $wrapper ? '<div class="smush-wrap' . $class . '">' . $html . '</div>' : $html;
1153
  }
1154
  }
 
1155
  if ( ! $echo ) {
1156
- $button_class = $wrapper ? 'button button-primary wp-smush-send' : 'button wp-smush-send';
1157
  $html .= '
1158
  <button class="' . $button_class . '" data-id="' . $id . '">
1159
  <span>' . $button_txt . '</span>
@@ -1169,7 +1187,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
1169
 
1170
  return $html;
1171
  } else {
1172
- $html .= '<button class="button wp-smush-send" data-id="' . $id . '">
1173
  <span>' . $button_txt . '</span>
1174
  </button>';
1175
  $html = $html . $this->progress_bar();
@@ -1402,7 +1420,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
1402
  $smush_orgnl_txt = sprintf( esc_html__( "When you upload an image to WordPress it automatically creates %s thumbnail sizes that are commonly used in your pages. WordPress also stores the original full-size image, but because these are not usually embedded on your site we don’t Smush them. Pro users can override this.", 'wp_smushit' ), $count );
1403
  $skip_msg = array(
1404
  'large_size' => $smush_orgnl_txt,
1405
- 'size_limit' => esc_html__( "Image couldn't be smushed as it exceeded the 1Mb size limit, Pro users can smush images with size upto 32Mb.", "wp-smushit" )
1406
  );
1407
  $skip_rsn = ! empty( $skip_msg[ $msg_id ] ) ? esc_html__( " Skipped", 'wp-smushit', 'wp-smushit' ) : '';
1408
  $skip_rsn = ! empty( $skip_rsn ) ? $skip_rsn . '<span tooltip="' . $skip_msg[ $msg_id ] . '"><i class="dashicons dashicons-editor-help"></i></span>' : '';
@@ -1539,7 +1557,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
1539
  */
1540
  function load_s3() {
1541
 
1542
- //If we don't have free or pro verison for WP S3 Offload, return
1543
  if ( ! class_exists( 'Amazon_S3_And_CloudFront' ) && ! class_exists( 'Amazon_S3_And_CloudFront_Pro' ) ) {
1544
  return;
1545
  }
@@ -1872,6 +1890,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
1872
  * @return bool
1873
  */
1874
  function show_resmush( $id = '', $wp_smush_data ) {
 
1875
  //Resmush: Show resmush link, Check if user have enabled smushing the original and full image was skipped
1876
  //Or: If keep exif is unchecked and the smushed image have exif
1877
  //PNG To JPEG
@@ -1882,6 +1901,11 @@ if ( ! class_exists( 'WpSmush' ) ) {
1882
  }
1883
  }
1884
 
 
 
 
 
 
1885
  //EXIF Check
1886
  if ( ! $this->keep_exif ) {
1887
  //If Keep Exif was set to true initially, and since it is set to false now
@@ -2017,7 +2041,7 @@ if ( ! class_exists( 'WpSmush' ) ) {
2017
  $backup_name = $this->get_image_backup_path( $file );
2018
 
2019
  //If file exists, corresponding to our backup path, delete it
2020
- @ unlink( $backup_name );
2021
 
2022
  //Check meta for rest of the sizes
2023
  if ( ! empty( $meta ) && ! empty( $meta['sizes'] ) ) {
@@ -2080,12 +2104,23 @@ if ( ! class_exists( 'WpSmush' ) ) {
2080
  return $smush_stats;
2081
  }
2082
 
 
 
 
 
 
 
 
 
 
2083
  //Full Image
2084
  if ( ! empty( $smush_stats['sizes']['full'] ) ) {
2085
  $smush_stats['sizes']['full']->bytes = ! empty( $resize_savings['bytes'] ) ? $smush_stats['sizes']['full']->bytes + $resize_savings['bytes'] : $smush_stats['sizes']['full']->bytes;
2086
  $smush_stats['sizes']['full']->size_before = ! empty( $resize_savings['size_before'] ) && ( $resize_savings['size_before'] > $smush_stats['sizes']['full']->size_before ) ? $resize_savings['size_before'] : $smush_stats['sizes']['full']->size_before;
2087
  $smush_stats['sizes']['full']->percent = ! empty( $smush_stats['sizes']['full']->bytes ) && $smush_stats['sizes']['full']->size_before > 0 ? ( $smush_stats['sizes']['full']->bytes / $smush_stats['sizes']['full']->size_before ) * 100 : $smush_stats['sizes']['full']->percent;
2088
 
 
 
2089
  $smush_stats['sizes']['full']->percent = round( $smush_stats['sizes']['full']->percent, 1 );
2090
  }
2091
 
@@ -2107,6 +2142,16 @@ if ( ! class_exists( 'WpSmush' ) ) {
2107
  return $stats;
2108
  }
2109
  foreach ( $conversion_savings as $size_k => $savings ) {
 
 
 
 
 
 
 
 
 
 
2110
  if ( ! empty( $stats['sizes'][ $size_k ] ) && ! empty( $savings ) ) {
2111
  $stats['sizes'][ $size_k ]->bytes = $stats['sizes'][ $size_k ]->bytes + $savings['bytes'];
2112
  $stats['sizes'][ $size_k ]->size_before = $stats['sizes'][ $size_k ]->size_before > $savings['size_before'] ? $stats['sizes'][ $size_k ]->size_before : $savings['size_before'];
@@ -2339,6 +2384,32 @@ if ( ! class_exists( 'WpSmush' ) ) {
2339
 
2340
  $request->send_json_success( $stats );
2341
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2342
  }
2343
 
2344
  global $WpSmush;
605
  //Set a transient to avoid multiple request
606
  set_transient( 'smush-in-progress-' . $ID, true, WP_SMUSH_TIMEOUT );
607
 
608
+ global $wpsmush_resize, $wpsmush_pngjpg, $wpsmush_settings, $wpsmush_helper;
609
 
610
  // While uploading from Mobile App or other sources, admin_init action may not fire.
611
  // So we need to manually initialize those.
615
  //Check if auto is enabled
616
  $auto_smush = $this->is_auto_smush_enabled();
617
 
618
+ //Get the file path for backup
619
+ $attachment_file_path = $wpsmush_helper->get_attached_file( $ID );
620
+
621
+ //Take Backup
622
+ global $wpsmush_backup;
623
+ $wpsmush_backup->create_backup( $attachment_file_path, '', $ID );
624
+
625
  //Optionally Resize Images
626
  $meta = $wpsmush_resize->auto_resize( $ID, $meta );
627
 
714
  }
715
  //Check for timeout error and suggest to filter timeout
716
  if ( strpos( $er_msg, 'timed out' ) ) {
717
+ $data['message'] = esc_html__( "Skipped due to a timeout error. You can increase the request timeout to make sure Smush has enough time to process larger files. `define('WP_SMUSH_API_TIMEOUT', 150);`.", "wp-smushit" );
718
  }else {
719
  //Handle error
720
  $data['message'] = sprintf( __( 'Error posting to API: %s', 'wp-smushit' ), $result->get_error_message() );
755
  $data['success'] = true;
756
  $data['data'] = $response->data;
757
  }
758
+
759
+ //Check for API message and store in db
760
+ if( isset( $response->data->api_message ) && !empty( $response->data->api_message ) ) {
761
+ $this->add_api_message( $response->data->api_message );
762
+ }
763
+
764
  //If is_premium is set in response, send it over to check for member validity
765
  if ( ! empty( $response->data ) && isset( $response->data->is_premium ) ) {
766
  $wpsmushit_admin->api_headers['is_premium'] = $response->data->is_premium;
994
  $percent = isset( $combined_stats['stats']['percent'] ) ? $combined_stats['stats']['percent'] : 0;
995
  $percent = $percent < 0 ? 0 : $percent;
996
 
997
+ //Show resmush link, if the settings were changed
998
+ $show_resmush = $this->show_resmush( $id, $wp_smush_data );
999
+
1000
+ if ( empty( $wp_resize_savings['bytes'] ) && isset( $wp_smush_data['stats']['size_before'] ) && $wp_smush_data['stats']['size_before'] == 0 && ! empty( $wp_smush_data['sizes'] ) ) {
1001
+ $status_txt = __( 'Already Optimized', 'wp-smushit' );
1002
+ if ( $show_resmush ) {
1003
+ $status_txt .= '<br />' . $this->get_resmsuh_link( $id );
1004
+ }
1005
  $show_button = false;
1006
  } else {
1007
  if ( $bytes == 0 || $percent == 0 ) {
1008
  $status_txt = __( 'Already Optimized', 'wp-smushit' );
1009
 
 
 
1010
  if ( $show_resmush ) {
1011
  $status_txt .= '<br />' . $this->get_resmsuh_link( $id );
1012
  }
1169
  return $wrapper ? '<div class="smush-wrap' . $class . '">' . $html . '</div>' : $html;
1170
  }
1171
  }
1172
+ $mode_class = ! empty( $_POST['mode'] ) && 'grid' == $_POST['mode'] ? ' button-primary' : '';
1173
  if ( ! $echo ) {
1174
+ $button_class = $wrapper || ! empty( $mode_class ) ? 'button button-primary wp-smush-send' : 'button wp-smush-send';
1175
  $html .= '
1176
  <button class="' . $button_class . '" data-id="' . $id . '">
1177
  <span>' . $button_txt . '</span>
1187
 
1188
  return $html;
1189
  } else {
1190
+ $html .= '<button class="button wp-smush-send' . $mode_class . '" data-id="' . $id . '">
1191
  <span>' . $button_txt . '</span>
1192
  </button>';
1193
  $html = $html . $this->progress_bar();
1420
  $smush_orgnl_txt = sprintf( esc_html__( "When you upload an image to WordPress it automatically creates %s thumbnail sizes that are commonly used in your pages. WordPress also stores the original full-size image, but because these are not usually embedded on your site we don’t Smush them. Pro users can override this.", 'wp_smushit' ), $count );
1421
  $skip_msg = array(
1422
  'large_size' => $smush_orgnl_txt,
1423
+ 'size_limit' => esc_html__( "Image couldn't be smushed as it exceeded the 1Mb size limit, Pro users can smush images with size up to 32Mb.", "wp-smushit" )
1424
  );
1425
  $skip_rsn = ! empty( $skip_msg[ $msg_id ] ) ? esc_html__( " Skipped", 'wp-smushit', 'wp-smushit' ) : '';
1426
  $skip_rsn = ! empty( $skip_rsn ) ? $skip_rsn . '<span tooltip="' . $skip_msg[ $msg_id ] . '"><i class="dashicons dashicons-editor-help"></i></span>' : '';
1557
  */
1558
  function load_s3() {
1559
 
1560
+ //If we don't have free or pro verison for WP Offload S3, return
1561
  if ( ! class_exists( 'Amazon_S3_And_CloudFront' ) && ! class_exists( 'Amazon_S3_And_CloudFront_Pro' ) ) {
1562
  return;
1563
  }
1890
  * @return bool
1891
  */
1892
  function show_resmush( $id = '', $wp_smush_data ) {
1893
+ global $wpsmush_resize;
1894
  //Resmush: Show resmush link, Check if user have enabled smushing the original and full image was skipped
1895
  //Or: If keep exif is unchecked and the smushed image have exif
1896
  //PNG To JPEG
1901
  }
1902
  }
1903
 
1904
+ //If image needs to be resized
1905
+ if( $wpsmush_resize->should_resize( $id ) ) {
1906
+ return true;
1907
+ }
1908
+
1909
  //EXIF Check
1910
  if ( ! $this->keep_exif ) {
1911
  //If Keep Exif was set to true initially, and since it is set to false now
2041
  $backup_name = $this->get_image_backup_path( $file );
2042
 
2043
  //If file exists, corresponding to our backup path, delete it
2044
+ @unlink( $backup_name );
2045
 
2046
  //Check meta for rest of the sizes
2047
  if ( ! empty( $meta ) && ! empty( $meta['sizes'] ) ) {
2104
  return $smush_stats;
2105
  }
2106
 
2107
+ //Initialize key full if not there already
2108
+ if( !isset( $smush_stats['sizes']['full'] ) ) {
2109
+ $smush_stats['sizes']['full'] = new stdClass();
2110
+ $smush_stats['sizes']['full']->bytes = 0;
2111
+ $smush_stats['sizes']['full']->size_before = 0;
2112
+ $smush_stats['sizes']['full']->size_after = 0;
2113
+ $smush_stats['sizes']['full']->percent = 0;
2114
+ }
2115
+
2116
  //Full Image
2117
  if ( ! empty( $smush_stats['sizes']['full'] ) ) {
2118
  $smush_stats['sizes']['full']->bytes = ! empty( $resize_savings['bytes'] ) ? $smush_stats['sizes']['full']->bytes + $resize_savings['bytes'] : $smush_stats['sizes']['full']->bytes;
2119
  $smush_stats['sizes']['full']->size_before = ! empty( $resize_savings['size_before'] ) && ( $resize_savings['size_before'] > $smush_stats['sizes']['full']->size_before ) ? $resize_savings['size_before'] : $smush_stats['sizes']['full']->size_before;
2120
  $smush_stats['sizes']['full']->percent = ! empty( $smush_stats['sizes']['full']->bytes ) && $smush_stats['sizes']['full']->size_before > 0 ? ( $smush_stats['sizes']['full']->bytes / $smush_stats['sizes']['full']->size_before ) * 100 : $smush_stats['sizes']['full']->percent;
2121
 
2122
+ $smush_stats['sizes']['full']->size_after = $smush_stats['sizes']['full']->size_before - $smush_stats['sizes']['full']->bytes;
2123
+
2124
  $smush_stats['sizes']['full']->percent = round( $smush_stats['sizes']['full']->percent, 1 );
2125
  }
2126
 
2142
  return $stats;
2143
  }
2144
  foreach ( $conversion_savings as $size_k => $savings ) {
2145
+
2146
+ //Initialize Object for size
2147
+ if ( empty( $stats['sizes'][ $size_k ] ) ) {
2148
+ $stats['sizes'][ $size_k ] = new stdClass();
2149
+ $stats['sizes'][ $size_k ]->bytes = 0;
2150
+ $stats['sizes'][ $size_k ]->size_before = 0;
2151
+ $stats['sizes'][ $size_k ]->size_after = 0;
2152
+ $stats['sizes'][ $size_k ]->percent = 0;
2153
+ }
2154
+
2155
  if ( ! empty( $stats['sizes'][ $size_k ] ) && ! empty( $savings ) ) {
2156
  $stats['sizes'][ $size_k ]->bytes = $stats['sizes'][ $size_k ]->bytes + $savings['bytes'];
2157
  $stats['sizes'][ $size_k ]->size_before = $stats['sizes'][ $size_k ]->size_before > $savings['size_before'] ? $stats['sizes'][ $size_k ]->size_before : $savings['size_before'];
2384
 
2385
  $request->send_json_success( $stats );
2386
  }
2387
+
2388
+ /**
2389
+ * Replace the old API message with the latest one if it doesn't exists already
2390
+ *
2391
+ * @param array $api_message
2392
+ *
2393
+ * @return null
2394
+ */
2395
+ function add_api_message( $api_message = array() ) {
2396
+ if ( empty( $api_message ) || ! sizeof( $api_message ) || empty( $api_message['timestamp'] ) || empty( $api_message['message'] ) ) {
2397
+ return null;
2398
+ }
2399
+ $o_api_message = get_site_option(WP_SMUSH_PREFIX . 'api_message', array() );
2400
+ if( array_key_exists( $api_message['timestamp'], $o_api_message ) ){
2401
+ return null;
2402
+ }
2403
+ $api_message['status'] = 'show';
2404
+
2405
+ $message = array();
2406
+ $message[$api_message['timestamp']] = array(
2407
+ 'message' => sanitize_text_field( $api_message['message'] ),
2408
+ 'type' => sanitize_text_field( $api_message['type'] ),
2409
+ 'status' => 'show'
2410
+ );
2411
+ update_site_option( WP_SMUSH_PREFIX . 'api_message', $message );
2412
+ }
2413
  }
2414
 
2415
  global $WpSmush;
lib/nextgen-integration/class-wp-smush-nextgen-admin.php CHANGED
@@ -396,7 +396,7 @@ if ( ! class_exists( 'WpSmushNextGenAdmin' ) ) {
396
  } else { ?>
397
  <!-- Hide All done div if there are images pending -->
398
  <div class="wp-smush-notice wp-smush-all-done<?php echo $all_done ? '' : ' hidden' ?>">
399
- <i class="dev-icon dev-icon-tick"></i><?php esc_html_e( "All images are smushed and up to date. Awesome!", "wp-smushit" ); ?>
400
  </div>
401
  <div class="wp-smush-bulk-wrapper <?php echo $all_done ? ' hidden' : ''; ?>"><?php
402
  //If all the images in media library are smushed
@@ -405,7 +405,7 @@ if ( ! class_exists( 'WpSmushNextGenAdmin' ) ) {
405
  // DO not show the remaining notice if we have resmush ids
406
  ?>
407
  <div class="wp-smush-notice wp-smush-remaining <?php echo count( $this->resmush_ids ) > 0 ? ' hidden' : ''; ?>">
408
- <i class="wdv-icon wdv-icon-fw wdv-icon-exclamation-sign"></i>
409
  <span class="wp-smush-notice-text">
410
  <?php printf( _n( "%s, you have %s%s%d%s attachment%s that needs smushing!", "%s, you have %s%s%d%s attachments%s that need smushing!", $this->remaining_count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $this->remaining_count, '</span>', '</strong>' ); ?>
411
  </span>
@@ -422,7 +422,7 @@ if ( ! class_exists( 'WpSmushNextGenAdmin' ) ) {
422
  ),
423
  $url
424
  ); ?>
425
- <p class="wp-smush-enable-lossy"><?php printf( esc_html__( "Enable Super-smush in the %sSettings%s area to get even more savings with almost no noticeable quality loss.", "wp-smushit" ), '<a href="' . $url .'" target="_blank">', "</a>"); ?></p><?php
426
  } ?>
427
  </div><?php
428
  $wpsmush_bulkui->progress_bar( $this );
@@ -644,7 +644,7 @@ if ( ! class_exists( 'WpSmushNextGenAdmin' ) ) {
644
  $smush_stats = ! empty( $metadata['wp_smush'] ) ? $metadata['wp_smush'] : '';
645
  $resize_savings = ! empty( $metadata['wp_smush_resize_savings'] ) ? $metadata['wp_smush_resize_savings'] : '';
646
 
647
- if ( empty( $resize_savings ) ) {
648
  return $metadata;
649
  }
650
 
396
  } else { ?>
397
  <!-- Hide All done div if there are images pending -->
398
  <div class="wp-smush-notice wp-smush-all-done<?php echo $all_done ? '' : ' hidden' ?>">
399
+ <i class="icon-fi-check-tick"></i><?php esc_html_e( "All images are smushed and up to date. Awesome!", "wp-smushit" ); ?>
400
  </div>
401
  <div class="wp-smush-bulk-wrapper <?php echo $all_done ? ' hidden' : ''; ?>"><?php
402
  //If all the images in media library are smushed
405
  // DO not show the remaining notice if we have resmush ids
406
  ?>
407
  <div class="wp-smush-notice wp-smush-remaining <?php echo count( $this->resmush_ids ) > 0 ? ' hidden' : ''; ?>">
408
+ <i class="icon-fi-warning-alert"></i>
409
  <span class="wp-smush-notice-text">
410
  <?php printf( _n( "%s, you have %s%s%d%s attachment%s that needs smushing!", "%s, you have %s%s%d%s attachments%s that need smushing!", $this->remaining_count, "wp-smushit" ), $wpsmushit_admin->get_user_name(), '<strong>', '<span class="wp-smush-remaining-count">', $this->remaining_count, '</span>', '</strong>' ); ?>
411
  </span>
422
  ),
423
  $url
424
  ); ?>
425
+ <p class="wp-smush-enable-lossy"><?php printf( esc_html__( "Enable Super-smush in the %sSettings%s area to get even more savings with almost no visible drop in quality.", "wp-smushit" ), '<a href="' . $url .'" target="_blank">', "</a>"); ?></p><?php
426
  } ?>
427
  </div><?php
428
  $wpsmush_bulkui->progress_bar( $this );
644
  $smush_stats = ! empty( $metadata['wp_smush'] ) ? $metadata['wp_smush'] : '';
645
  $resize_savings = ! empty( $metadata['wp_smush_resize_savings'] ) ? $metadata['wp_smush_resize_savings'] : '';
646
 
647
+ if ( empty( $resize_savings ) || empty( $smush_stats ) ) {
648
  return $metadata;
649
  }
650
 
lib/nextgen-integration/class-wp-smush-nextgen-bulk.php CHANGED
@@ -28,7 +28,7 @@ if ( ! class_exists( 'WPSmushNextGenBulk' ) ) {
28
  $error = $smush->get_error_message();
29
  //Check for timeout error and suggest to filter timeout
30
  if ( strpos( $error, 'timed out' ) ) {
31
- $msg = '<p class="wp-smush-error-message">' . esc_html__( "Smush request timed out, You can try setting a higher value ( > 60 ) for `WP_SMUSH_API_TIMEOUT`.", "wp-smushit" ) . '</p>';
32
  }
33
  } else {
34
  //Check if a resmush request, update the resmush list
28
  $error = $smush->get_error_message();
29
  //Check for timeout error and suggest to filter timeout
30
  if ( strpos( $error, 'timed out' ) ) {
31
+ $msg = '<p class="wp-smush-error-message">' . esc_html__( "Smush request timed out. You can try setting a higher value ( > 60 ) for `WP_SMUSH_API_TIMEOUT`.", "wp-smushit" ) . '</p>';
32
  }
33
  } else {
34
  //Check if a resmush request, update the resmush list
lib/nextgen-integration/class-wp-smush-nextgen-stats.php CHANGED
@@ -467,9 +467,17 @@ if ( ! class_exists( 'WpSmushNextGenStats' ) ) {
467
  if ( $size_value->bytes > 0 ) {
468
  $stats .= '<tr>
469
  <td>' . strtoupper( $size_key ) . '</td>
470
- <td>' . size_format( $size_value->bytes, 1 ) . ' ( ' . $size_value->percent . '% )</td>
471
- </tr>';
 
 
 
 
 
472
  }
 
 
 
473
  }
474
  $stats .= '</tbody>
475
  </table>
467
  if ( $size_value->bytes > 0 ) {
468
  $stats .= '<tr>
469
  <td>' . strtoupper( $size_key ) . '</td>
470
+ <td>' . size_format( $size_value->bytes, 1 );
471
+
472
+ }
473
+
474
+ //Add percentage if set
475
+ if ( isset( $size_value->percent ) && $size_value->percent > 0 ) {
476
+ $stats .= " ( $size_value->percent% )";
477
  }
478
+
479
+ $stats .='</td>
480
+ </tr>';
481
  }
482
  $stats .= '</tbody>
483
  </table>
readme.txt CHANGED
@@ -1,13 +1,13 @@
1
  === Smush Image Compression and Optimization ===
2
  Plugin Name: Smush Image Compression and Optimization
3
- Version: 2.7.6
4
  Author: WPMU DEV
5
- Author URI: http://premium.wpmudev.org/
6
  Contributors: WPMUDEV, alexdunae
7
  Tags: image, resize, optimize, optimise, compress, performance, optimisation, optimise JPG, photo, pictures, optimizer, Smush WordPress Compression, Smush.it
8
  Requires at least: 4.6
9
- Tested up to: 4.9.2
10
- Stable tag: 2.7.6
11
  Requires PHP: 5.2.4
12
  License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
13
 
@@ -20,7 +20,7 @@ Compress and optimize (or optimise) image files, improve performance and boost y
20
  (You say optimise I say optimize...lets call the whole thing off ;) )
21
 
22
  = Award Winning Image Optimizer =
23
- Smush has been benchmarked and tested number one for speed and quality and is the <a href="https://torquemag.io/2017/04/wp-smush-defeats-wordfence-wins-plugin-madness-2017/">award-winning</a>, proven crowd favorite image optimization plugin for WordPress.
24
 
25
  Now with image resizing! Set a max width and height and large images will scale down as they are being compressed.
26
 
@@ -88,7 +88,7 @@ Install WP Smush now and find out why it's the most popular image optimization p
88
 
89
  Smush can take care of all your image compression needs, for free!
90
 
91
- However, if you'd like to Super Smush lossy compression, the ability to optimize image up to 32MB, and bulk smush optimization for all your images in just one-click, you can always take the next step with <a href="https://premium.wpmudev.org/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme">WP Smush Pro</a>.
92
 
93
 
94
  == Frequently Asked Questions ==
@@ -135,7 +135,7 @@ Optimizing all the image sizes generated by WordPress, images being imported fro
135
  Smush automatically handles optimizing all your images no matter where they come from and can be used as a standalone tool or alongside Photoshop.
136
 
137
  = Is it optimize or optimise? =
138
- It depends what side of the pond you live on...but wether you say optimize, optimise, optimizer or Smush goddess of speed this plugin will make sure your images are loading lighting fast.
139
 
140
  == Screenshots ==
141
 
@@ -157,6 +157,22 @@ Yahoo's Smush.it API is gone forever. So WPMU DEV built our own free API that is
157
 
158
  == Changelog ==
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  = 2.7.6 =
161
 
162
  * Security: Fixed path traversal vulnerability. Thanks Ricardo Sánchez(@neorichi) for responsible disclosure.
1
  === Smush Image Compression and Optimization ===
2
  Plugin Name: Smush Image Compression and Optimization
3
+ Version: 2.7.8
4
  Author: WPMU DEV
5
+ Author URI: https://premium.wpmudev.org/
6
  Contributors: WPMUDEV, alexdunae
7
  Tags: image, resize, optimize, optimise, compress, performance, optimisation, optimise JPG, photo, pictures, optimizer, Smush WordPress Compression, Smush.it
8
  Requires at least: 4.6
9
+ Tested up to: 4.9.4
10
+ Stable tag: 2.7.8
11
  Requires PHP: 5.2.4
12
  License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
13
 
20
  (You say optimise I say optimize...lets call the whole thing off ;) )
21
 
22
  = Award Winning Image Optimizer =
23
+ Smush has been benchmarked and tested number one for speed and quality and is the <a href="https://torquemag.io/2018/04/smush-image-compression-wins-2018-plugin-madness/">award-winning</a>, back-to-back proven crowd favorite image optimization plugin for WordPress.
24
 
25
  Now with image resizing! Set a max width and height and large images will scale down as they are being compressed.
26
 
88
 
89
  Smush can take care of all your image compression needs, for free!
90
 
91
+ However, if you'd like Super Smush lossy compression, the ability to optimize images up to 32MB, bulk smush optimization for all your images in just one-click, auto-convert PNG to JPEG, the ability to Smush and make a copy of your full-sized images (to restore them at any point) you can always take the next step with <a href="https://premium.wpmudev.org/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme">WP Smush Pro</a>.
92
 
93
 
94
  == Frequently Asked Questions ==
135
  Smush automatically handles optimizing all your images no matter where they come from and can be used as a standalone tool or alongside Photoshop.
136
 
137
  = Is it optimize or optimise? =
138
+ It depends what side of the pond you live on...but whether you say optimize, optimise, optimizer or Smush goddess of speed this plugin will make sure your images are loading lighting fast.
139
 
140
  == Screenshots ==
141
 
157
 
158
  == Changelog ==
159
 
160
+ = 2.7.8 =
161
+
162
+ * Includes changes from update 2.7.7 and a fix for JS errors in custom posts screen disabling post editor tabs
163
+
164
+ * Updates:
165
+ * Minor UI Changes ( Accessibility Fixes )
166
+ * PNG to JPG: Iterate over rows while URL replacement to make sure all the occurrences are updated
167
+
168
+ * Fixed:
169
+ * Skip button doesn't skips images
170
+ * Show updated smush status in Media Grid attachment modal
171
+ * Font issue in WordPress backend for Ubuntu systems
172
+ * Fatal Error: get_current_network
173
+ * Async Smush not working for subdirectory sites
174
+ * File backups were not being created for Auto Smush if Async smush is disabled
175
+
176
  = 2.7.6 =
177
 
178
  * Security: Fixed path traversal vulnerability. Thanks Ricardo Sánchez(@neorichi) for responsible disclosure.
wp-smush.php CHANGED
@@ -4,8 +4,8 @@ Plugin Name: WP Smush
4
  Plugin URI: http://wordpress.org/extend/plugins/wp-smushit/
5
  Description: Reduce image file sizes, improve performance and boost your SEO using the free <a href="https://premium.wpmudev.org/">WPMU DEV</a> WordPress Smush API.
6
  Author: WPMU DEV
7
- Version: 2.7.6
8
- Author URI: http://premium.wpmudev.org/
9
  Text Domain: wp-smushit
10
  */
11
 
@@ -15,7 +15,7 @@ http://dialect.ca/
15
  */
16
 
17
  /*
18
- Copyright 2007-2016 Incsub (http://incsub.com)
19
 
20
  This program is free software; you can redistribute it and/or modify
21
  it under the terms of the GNU General Public License (Version 2 - GPLv2) as published by
@@ -35,7 +35,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
35
  * Constants
36
  */
37
  $prefix = 'WP_SMUSH_';
38
- $version = '2.7.6';
39
 
40
  //Deactivate the .org version, if pro version is active
41
  add_action( 'admin_init', 'deactivate_smush_org' );
@@ -60,7 +60,7 @@ $timeout = apply_filters( 'WP_SMUSH_API_TIMEOUT', 90 );
60
  // Remove the protocols and www, and get the domain name.
61
  $site_url = str_replace( array( 'http://', 'https://', 'www.' ), '', site_url() );
62
  // If current site's url is different from site_url, disable Async.
63
- if ( ! empty( $_SERVER['SERVER_NAME'] ) && ( 0 !== strpos( $_SERVER['SERVER_NAME'], $site_url ) ) && ! defined( $prefix . 'ASYNC' ) ) {
64
  define( $prefix . 'ASYNC', false );
65
  }
66
 
@@ -101,8 +101,8 @@ if ( ! function_exists( 'wp_smush_rating_message' ) ) {
101
  if ( empty( $wpsmushit_admin->stats ) ) {
102
  $wpsmushit_admin->setup_global_stats();
103
  }
104
- $savings = $wpsmushit_admin->stats;
105
- $show_stats = false;
106
 
107
  //If there is any saving, greater than 1Mb, show stats
108
  if ( ! empty( $savings ) && ! empty( $savings['bytes'] ) && $savings['bytes'] > 1048576 ) {
@@ -182,7 +182,7 @@ if ( is_admin() ) {
182
  'wdev-email-message-' . plugin_basename( __FILE__ ),
183
  'wp_smush_email_message'
184
  );
185
- } elseif ( strpos( $dir_path, 'wp-smush-pro' ) !== false ) {
186
 
187
  //Only for WPMU DEV Members
188
  require_once( WP_SMUSH_DIR . 'extras/dash-notice/wpmudev-dash-notification.php' );
@@ -207,9 +207,9 @@ add_action( 'admin_notices', 'smush_deactivated' );
207
  if ( ! function_exists( 'smush_deactivated' ) ) {
208
  function smush_deactivated() {
209
  if ( get_site_option( 'smush_deactivated' ) && is_super_admin() ) { ?>
210
- <div class="updated">
211
- <p><?php esc_html_e( 'WP Smush Free was deactivated. You have WP Smush Pro active!', 'wp-smushit' ); ?></p>
212
- </div> <?php
213
  delete_site_option( 'smush_deactivated' );
214
  }
215
  }
@@ -222,8 +222,8 @@ if ( ! function_exists( 'smush_activated' ) ) {
222
  function smush_activated() {
223
  global $wpsmush_settings;
224
 
225
- $version = get_site_option( WP_SMUSH_PREFIX . 'version' );
226
- $settings = !empty( $wpsmush_settings->settings ) ? $wpsmush_settings->settings : $wpsmush_settings->init_settings();
227
 
228
  //If the version is not saved or if the version is not same as the current version,
229
  if ( ! $version || WP_SMUSH_VERSION != $version ) {
@@ -289,7 +289,7 @@ if ( ! function_exists( 'smush_sanitize_hex_color_no_hash' ) ) {
289
  }
290
  //Load Translation files
291
  add_action( 'plugins_loaded', 'smush_i18n' );
292
- if( !function_exists('smush_i18n')) {
293
  function smush_i18n() {
294
  $path = path_join( dirname( plugin_basename( __FILE__ ) ), 'languages/' );
295
  load_plugin_textdomain( 'wp-smushit', false, $path );
4
  Plugin URI: http://wordpress.org/extend/plugins/wp-smushit/
5
  Description: Reduce image file sizes, improve performance and boost your SEO using the free <a href="https://premium.wpmudev.org/">WPMU DEV</a> WordPress Smush API.
6
  Author: WPMU DEV
7
+ Version: 2.7.8
8
+ Author URI: https://premium.wpmudev.org/
9
  Text Domain: wp-smushit
10
  */
11
 
15
  */
16
 
17
  /*
18
+ Copyright 2007-2018 Incsub (http://incsub.com)
19
 
20
  This program is free software; you can redistribute it and/or modify
21
  it under the terms of the GNU General Public License (Version 2 - GPLv2) as published by
35
  * Constants
36
  */
37
  $prefix = 'WP_SMUSH_';
38
+ $version = '2.7.8';
39
 
40
  //Deactivate the .org version, if pro version is active
41
  add_action( 'admin_init', 'deactivate_smush_org' );
60
  // Remove the protocols and www, and get the domain name.
61
  $site_url = str_replace( array( 'http://', 'https://', 'www.' ), '', site_url() );
62
  // If current site's url is different from site_url, disable Async.
63
+ if ( ! empty( $_SERVER['SERVER_NAME'] ) && ( 0 !== strpos( $site_url, $_SERVER['SERVER_NAME'] ) ) && ! defined( $prefix . 'ASYNC' ) ) {
64
  define( $prefix . 'ASYNC', false );
65
  }
66
 
101
  if ( empty( $wpsmushit_admin->stats ) ) {
102
  $wpsmushit_admin->setup_global_stats();
103
  }
104
+ $savings = $wpsmushit_admin->stats;
105
+ $show_stats = false;
106
 
107
  //If there is any saving, greater than 1Mb, show stats
108
  if ( ! empty( $savings ) && ! empty( $savings['bytes'] ) && $savings['bytes'] > 1048576 ) {
182
  'wdev-email-message-' . plugin_basename( __FILE__ ),
183
  'wp_smush_email_message'
184
  );
185
+ } elseif ( strpos( $dir_path, 'wp-smush-pro' ) !== false && file_exists( WP_SMUSH_DIR . 'extras/dash-notice/wpmudev-dash-notification.php' ) ) {
186
 
187
  //Only for WPMU DEV Members
188
  require_once( WP_SMUSH_DIR . 'extras/dash-notice/wpmudev-dash-notification.php' );
207
  if ( ! function_exists( 'smush_deactivated' ) ) {
208
  function smush_deactivated() {
209
  if ( get_site_option( 'smush_deactivated' ) && is_super_admin() ) { ?>
210
+ <div class="updated">
211
+ <p><?php esc_html_e( 'WP Smush Free was deactivated. You have WP Smush Pro active!', 'wp-smushit' ); ?></p>
212
+ </div> <?php
213
  delete_site_option( 'smush_deactivated' );
214
  }
215
  }
222
  function smush_activated() {
223
  global $wpsmush_settings;
224
 
225
+ $version = get_site_option( WP_SMUSH_PREFIX . 'version' );
226
+ $settings = ! empty( $wpsmush_settings->settings ) ? $wpsmush_settings->settings : $wpsmush_settings->init_settings();
227
 
228
  //If the version is not saved or if the version is not same as the current version,
229
  if ( ! $version || WP_SMUSH_VERSION != $version ) {
289
  }
290
  //Load Translation files
291
  add_action( 'plugins_loaded', 'smush_i18n' );
292
+ if ( ! function_exists( 'smush_i18n' ) ) {
293
  function smush_i18n() {
294
  $path = path_join( dirname( plugin_basename( __FILE__ ) ), 'languages/' );
295
  load_plugin_textdomain( 'wp-smushit', false, $path );