WP Product Review Lite - Version 3.4.9

Version Description

  • 2018-10-24
Download this release

Release Info

Developer codeinwp
Plugin Icon WP Product Review Lite
Version 3.4.9
Comparing to
See all releases

Code changes from version 3.4.8 to 3.4.9

Files changed (119) hide show
  1. CHANGELOG.md +5 -0
  2. dist/CHANGELOG.md +220 -22
  3. dist/LICENSE.txt +339 -0
  4. dist/assets/css/admin.css +162 -0
  5. dist/assets/css/chosen.min.css +3 -0
  6. dist/assets/css/circle.css +107 -0
  7. dist/assets/css/comments.css +142 -0
  8. dist/assets/css/common.css +36 -0
  9. dist/assets/css/cwppos-widget-admin.css +11 -0
  10. dist/assets/css/cwppos-widget-rating.css +19 -0
  11. dist/assets/css/cwppos-widget-style1.css +82 -0
  12. dist/assets/css/cwppos-widget.css +89 -0
  13. dist/assets/css/dashboard_styles.css +423 -0
  14. dist/assets/css/default.css +519 -0
  15. dist/assets/css/editor.css +131 -0
  16. dist/assets/css/font-awesome.min.css +1566 -0
  17. dist/assets/css/fonts/FontAwesome.otf +0 -0
  18. dist/assets/css/fonts/fontawesome-webfont.eot +0 -0
  19. dist/assets/css/fonts/fontawesome-webfont.svg +504 -0
  20. dist/assets/css/fonts/fontawesome-webfont.ttf +0 -0
  21. dist/assets/css/fonts/fontawesome-webfont.woff +0 -0
  22. dist/assets/css/jquery-ui.css +1917 -0
  23. dist/assets/css/lightbox.css +202 -0
  24. dist/assets/css/rating-amp.css +147 -0
  25. dist/assets/css/style1.css +289 -0
  26. dist/assets/css/style2.css +264 -0
  27. dist/assets/css/upsell.css +178 -0
  28. dist/assets/img/amazon-cart.png +0 -0
  29. dist/assets/img/cart-icon-hover.png +0 -0
  30. dist/assets/img/cart-icon.png +0 -0
  31. dist/assets/img/chosen-sprite.png +0 -0
  32. dist/assets/img/chosen-sprite@2x.png +0 -0
  33. dist/assets/img/close.png +0 -0
  34. dist/assets/img/comparison-table.gif +0 -0
  35. dist/assets/img/customize-icons.gif +0 -0
  36. dist/assets/img/default.png +0 -0
  37. dist/assets/img/loading.gif +0 -0
  38. dist/assets/img/logo.png +0 -0
  39. dist/assets/img/next.png +0 -0
  40. dist/assets/img/preload.png +0 -0
  41. dist/assets/img/prev.png +0 -0
  42. dist/assets/img/single.png +0 -0
  43. dist/assets/img/style1.png +0 -0
  44. dist/assets/img/templates/default.png +0 -0
  45. dist/assets/img/templates/style1.png +0 -0
  46. dist/assets/img/templates/style2.png +0 -0
  47. dist/assets/img/wppr-amazon-integration-and-support.jpg +0 -0
  48. dist/assets/img/wppr-import.jpg +0 -0
  49. dist/assets/img/wppr-logo.png +0 -0
  50. dist/assets/img/wppr-review-comparison.jpg +0 -0
  51. dist/assets/img/wppr-shortcodes.jpg +0 -0
  52. dist/assets/js/admin-review.js +52 -0
  53. dist/assets/js/admin.js +43 -0
  54. dist/assets/js/chosen.jquery.min.js +2 -0
  55. dist/assets/js/cpt.js +30 -0
  56. dist/assets/js/lightbox.min.js +10 -0
  57. dist/assets/js/lightbox.min.map +1 -0
  58. dist/assets/js/main.js +28 -0
  59. dist/assets/js/widget-admin.js +135 -0
  60. dist/class-wppr-autoloader.php +195 -0
  61. dist/includes/admin/class-wppr-admin.php +456 -0
  62. dist/includes/admin/class-wppr-editor.php +160 -0
  63. dist/includes/admin/class-wppr-global-settings.php +429 -0
  64. dist/includes/admin/controllers/class-wppr-admin-render-controller.php +143 -0
  65. dist/includes/admin/helpers/class-wppr-html-fields.php +243 -0
  66. dist/includes/admin/helpers/class-wppr-logger.php +81 -0
  67. dist/includes/admin/index.php +13 -0
  68. dist/includes/admin/layouts/css/settings.css +4 -0
  69. dist/includes/admin/layouts/editor-default-tpl.php +407 -0
  70. dist/includes/admin/layouts/header-part.php +24 -0
  71. dist/includes/admin/layouts/settings-tpl.php +70 -0
  72. dist/includes/admin/layouts/upsell-tpl.php +82 -0
  73. dist/includes/admin/layouts/widget-admin-tpl.php +124 -0
  74. dist/includes/admin/models/abstract/class-wppr-model-abstract.php +155 -0
  75. dist/includes/admin/models/class-wppr-editor-model.php +277 -0
  76. dist/includes/admin/models/class-wppr-options-model.php +27 -0
  77. dist/includes/admin/models/class-wppr-query-model.php +388 -0
  78. dist/includes/admin/models/class-wppr-review-model.php +1316 -0
  79. dist/includes/admin/widgets/abstract/class-wppr-widget-abstract.php +254 -0
  80. dist/includes/admin/widgets/class-wppr-latest-products-widget.php +134 -0
  81. dist/includes/admin/widgets/class-wppr-top-products-widget.php +189 -0
  82. dist/includes/class-wppr-activator.php +35 -0
  83. dist/includes/class-wppr-deactivator.php +35 -0
  84. dist/includes/class-wppr-i18n.php +46 -0
  85. dist/includes/class-wppr-loader.php +128 -0
  86. dist/includes/class-wppr-template.php +100 -0
  87. dist/includes/class-wppr.php +298 -0
  88. dist/includes/functions.php +160 -0
  89. dist/includes/gutenberg/class-wppr-gutenberg.php +175 -0
  90. dist/includes/gutenberg/dist/block.css +1 -0
  91. dist/includes/gutenberg/dist/block.js +664 -0
  92. dist/includes/gutenberg/package.json +36 -0
  93. dist/includes/gutenberg/src/block.js +472 -0
  94. dist/includes/gutenberg/src/style.scss +117 -0
  95. dist/includes/gutenberg/src/utils.js +12 -0
  96. dist/includes/gutenberg/webpack.config.js +66 -0
  97. dist/includes/index.php +13 -0
  98. dist/includes/legacy.php +60 -0
  99. dist/includes/public/class-wppr-public.php +736 -0
  100. dist/includes/public/index.php +13 -0
  101. dist/includes/public/layouts/default-tpl.php +16 -0
  102. dist/includes/public/layouts/default.php +151 -0
  103. dist/includes/public/layouts/rating-tpl.php +59 -0
  104. dist/includes/public/layouts/rich-json-ld.php +17 -0
  105. dist/includes/public/layouts/score-tpl.php +14 -0
  106. dist/includes/public/layouts/style1.php +140 -0
  107. dist/includes/public/layouts/style2.php +147 -0
  108. dist/includes/public/layouts/widget/default.php +74 -0
  109. dist/includes/public/layouts/widget/style 1.php +81 -0
  110. dist/index.php +13 -0
  111. dist/languages/cwppos-en_EN.mo +0 -0
  112. dist/languages/cwppos-en_EN.po +227 -0
  113. dist/languages/cwppos-fr_FR.mo +0 -0
  114. dist/languages/cwppos-fr_FR.po +231 -0
  115. dist/languages/cwppos-sk_SK.mo +0 -0
  116. dist/languages/cwppos-sk_SK.po +232 -0
  117. dist/languages/wp-product-review.pot +622 -0
  118. dist/readme.md +697 -0
  119. dist/readme.txt +664 -0
CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
 
 
 
 
 
 
2
  ### v3.4.8 - 2018-08-02
3
  **Changes:**
4
  * Added a new custom image of 50x50 for the custom WPPR widgets
1
 
2
+ ### v3.4.9 - 2018-10-24
3
+ **Changes:**
4
+ * Add support for review post type in preloader, shortcode and category archive page
5
+ * Fixed issue with certain templates not showing star rating properly
6
+
7
  ### v3.4.8 - 2018-08-02
8
  **Changes:**
9
  * Added a new custom image of 50x50 for the custom WPPR widgets
dist/CHANGELOG.md ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
- Development
 
 
 
1
- Added premium features tab
 
 
 
2
- Release 2.9.6
 
 
 
3
- Added amazon integration support
4
- Fixed some design issues
 
 
 
5
- Added filters for nofollow links in widgets
6
- Added dashes in pros/cons list
 
 
 
7
- Added color options in pro
8
- Fixed issue with shortcode markup
9
- Removed rel=friend
 
 
 
10
- Removed buy now or read review if text values are empty
11
- Fixed undefined notice on plugin activation.
 
 
 
12
- Removed addons page
13
- Changed title and urls
14
- Updated Upsell texts
15
- Apply do_shortcode on all review fields.
 
 
 
16
- Fixed img closing tag issue
17
- Fixed rich snippet error when comment influence is off
 
 
 
18
- Added compatibility with new pro addons
19
- Fixed layout issues with the review
20
- Fixed responsiveness bugs
21
- Fixed bug with enable/disable review box
22
 
1
+
2
+ ### v3.4.9 - 2018-10-24
3
+ **Changes:**
4
+ * Add support for review post type in preloader, shortcode and category archive page
5
+ * Fixed issue with certain templates not showing star rating properly
6
+
7
+ ### v3.4.8 - 2018-08-02
8
+ **Changes:**
9
+ * Added a new custom image of 50x50 for the custom WPPR widgets
10
+ * New Gutenberg block for WPPR
11
+
12
+ ### v3.4.7 - 2018-07-18
13
+ **Changes:**
14
+ * Fixed alignment issue with the price on the first template
15
+
16
+ ### v3.4.6 - 2018-07-12
17
+ **Changes:**
18
+ * Added RTL compatibility
19
+ * Allow overriding the Products Templates from the theme with a custom /wppr/ folder
20
+ * Fixed problem with missing alt texts
21
+ * Fixed problem with product image notice overlapping the featured image control
22
+
23
+ ### v3.4.5 - 2018-06-18
24
+ **Changes:**
25
+ * Fixed problem with product price alignment on the first template
26
+
27
+ ### v3.4.4 - 2018-06-11
28
+ **Changes:**
29
+ * Fixed issue with HTML tag not being closed
30
+ * Fixed issue with button icon not changing color
31
+ * Fixed issue with review comments form not responsive
32
+ * Fixed white screen when Jetpack is active
33
+ * Update docs
34
+ * New option to disable the AMP CSS output
35
+ * Changed the way fonts are loaded to inherit them from the theme
36
+
37
+ ### v3.4.3 - 2018-03-20
38
+ **Changes:**
39
+ * Fix FontAwesome icon issue in custom templates.
40
+ * Improve AMP compatibility, removes redundant CSS on AMP endpoints.
41
+ * Adds review custom post_type and review categories.
42
+
43
+ ### v3.4.2 - 2018-02-22
44
+ **Changes:**
45
+ * Fix AMP issue which was causing an issue with Google AMP validation.
46
+
47
+ ### v3.4.1 - 2018-02-21
48
+ **Changes:**
49
+ * Fix issue with category filtering when querying reviews.
50
+
51
+ ### v3.4.0 - 2018-02-20
52
+ **Changes:**
53
+ * Adds AMP support for the review box.
54
+ * Adds compatibility with 2 more review templates.
55
+ * Improves extensibility by adding more hooks.
56
+
57
+ ### v3.3.2 - 2018-01-05
58
+ **Changes:**
59
+ * Adds filtering option for posts/page admin listing page.
60
+ * Fix compatibility with Bookrev theme.
61
+ * Fix issue with comments slides when scrolled back.
62
+
63
+ ### v3.3.1 - 2017-12-11
64
+ **Changes:**
65
+ * Fix for comments rating if not all the options are provided.
66
+ * Improved review image description
67
+
68
+ ### v3.3.0 - 2017-11-27
69
+ **Changes:**
70
+ * Fix individual rating influenced by comments.
71
+ * Fix compatibility with various themes.
72
+ * Fix top product widgets sorting when comments influence is on.
73
+
74
+ ### v3.2.1 - 2017-11-16
75
+ **Changes:**
76
+ * Adds compatibility with WordPress 4.9
77
+
78
+ ### v3.2.0 - 2017-11-06
79
+ **Changes:**
80
+ * Adds support for custom post-type and taxonomies in widgets.
81
+ * Adds control for time-frame in top reviews widget.
82
+ * Improves responsiveness and removes dependency of pie-chart.js
83
+ * Improves notifications when Disqus and Jetpack comments are used.
84
+
85
+ ### v3.1.0 - 2017-09-22
86
+ **Changes:**
87
+ * Fix for some edge cases when the review box was gone.
88
+ * Improvements assets loading, removed redundant files.
89
+ * Improvements perfomance of review query.
90
+ * Various bug fixes reported by clients.
91
+
92
+ ### v3.0.12 - 2017-09-17
93
+ **Changes:**
94
+ * Fix for review box issues.
95
+
96
+ ### v3.0.11 - 2017-09-15
97
+ **Changes:**
98
+ * Fix for issue of hidden review box and widget area.
99
+
100
+ ### v3.0.10 - 2017-09-12
101
+ **Changes:**
102
+ * Fix for decimal separator in rich snippet.
103
+ * Improvements for template engine, allowing overwriting in child themes also.
104
+ * Added review content and excerpt proprieties.
105
+
106
+ ### v3.0.9 - 2017-09-07
107
+ **Changes:**
108
+ * Improved JSON-LD scheme.
109
+ * Fix for image lightbox link.
110
+ * FIx for json-ld description when html tags are present.
111
+ * Fix for widget layout margin when image is used.
112
+ * Improvements compatibility with various themes.
113
+
114
+ ### v3.0.8 - 2017-09-01
115
+ **Changes:**
116
+ * Fix for out of memory errors.
117
+ * Fix for options saving when there is no value for each option.
118
+ * Fix for compatibility with Bookrev.
119
+ * Fix for rich snippet reviewer author.
120
+
121
+ ### v3.0.7 - 2017-08-29
122
+ **Changes:**
123
+ * Fixed empty links for reviews.
124
+ * Fixed widget and reviews query.
125
+
126
+ ### v3.0.6 - 2017-08-29
127
+ **Changes:**
128
+ * Fix for category name matching when filtering reviews.
129
+ * Fix for is_active error on null object.
130
+
131
+ ### v3.0.5 - 2017-08-26
132
+ **Changes:**
133
+ * Fix for review links opening issue.
134
+ * Fix for comments legacy import.
135
+
136
+ ### v3.0.4 - 2017-08-25
137
+ **Changes:**
138
+ * Fix for rich snippets schema.
139
+ * Fix post update white screen of death.
140
+ * Fix for thumbnails in widgets.
141
+ * Fix for duplicate title for widgets list.
142
+ * Fix for link of the review in the widgets.
143
+ * Fix for click link behavior on review picture.
144
+ * Fix widget titles default values.
145
+ * Fix review rating when comments influence is on.
146
+ * Improved security.
147
+
148
+ ### v3.0.3 - 2017-08-24
149
+ **Changes:**
150
+ * Fixed widget assets loading error.
151
+
152
+ ### v3.0.2 - 2017-08-24
153
+ **Changes:**
154
+ * Fixed fatal error with is_active method.
155
+ * Fixed query reviews class.
156
+ * Fixed widget assets loading when there is no review on the page.
157
+
158
+ ### v3.0.1 - 2017-08-23
159
+ **Changes:**
160
+ * Fixed backwards compatibility when using cwppos_show_review.
161
+ * Fixed undefined index error in widgets.
162
+
163
+ ### v3.0.0 - 2017-08-23
164
+ **Changes:**
165
+ * Major code refactor ( Please test before update )
166
+ * Added JSON-LD support
167
+ * Improved compatibility with themes
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
 
dist/LICENSE.txt ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
dist/assets/css/admin.css ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wppr_top_tabs a {
2
+ text-decoration: none;
3
+ }
4
+
5
+ #wppr_top_tabs a:focus {
6
+ outline: none;
7
+ box-shadow: none;
8
+ }
9
+
10
+ #wppr-admin {
11
+ margin-top: 20px;
12
+ margin-right: 20px;
13
+ }
14
+
15
+ /* Tabbed Nav */
16
+ #wppr_top_tabs ul#tabs_menu {
17
+ margin: 0;
18
+ }
19
+
20
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab {
21
+ border-top: 2px solid #52aae2;
22
+ }
23
+
24
+ #wppr_top_tabs ul#tabs_menu li {
25
+ display: inline-block;
26
+ margin: 0;
27
+ padding: 15px;
28
+ border-bottom: none;
29
+ border-radius: 2px 2px 0 0;
30
+ background: rgb(245, 250, 250);
31
+ font-family: "Roboto",sans-serif;
32
+ font-size: 13px;
33
+ font-weight: 700;
34
+ line-height: 1;
35
+ }
36
+
37
+ #wppr_top_tabs ul#tabs_menu li.active,
38
+ #wppr_top_tabs ul#tabs_menu li:hover {
39
+ background: none repeat scroll 0 0 #fff;
40
+ cursor: pointer;
41
+ }
42
+
43
+ #wppr_top_tabs div.wppr-tab {
44
+ display: none;
45
+ float: left;
46
+ width: 100%;
47
+ border: 1px solid #eaeaea;
48
+ border-bottom: 0;
49
+ background: #fff;
50
+ }
51
+
52
+ .wppr-tab .wppr_top_tabs_vertical .wppr-tab-vertical {
53
+ float: left;
54
+ width: 85%;
55
+ }
56
+
57
+ #wppr_top_tabs div.wppr-tab.active {
58
+ display: block;
59
+ }
60
+
61
+ #wppr_top_tabs ul#tabs_menu li:hover:after,
62
+ #wppr_top_tabs ul#tabs_menu li.active:after {
63
+ display: block;
64
+ position: absolute;
65
+ bottom: -5px;
66
+ left: -1px;
67
+ width: 100%;
68
+ height: 5px;
69
+ border-right: 1px solid #fff;
70
+ border-left: 1px solid #fff;
71
+ background: #fff;
72
+ content: "\00A0";
73
+ }
74
+
75
+ #wppr_top_tabs {
76
+ margin-top: 10px;
77
+ }
78
+
79
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab.active a,
80
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab a:hover {
81
+ color: #f17052;
82
+ }
83
+
84
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab.active,
85
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab:hover {
86
+ position: relative;
87
+ border-top: 2px #f16848 solid;
88
+ color: #f17052;
89
+ }
90
+
91
+ #wppr_top_tabs ul#tabs_menu li.wppr-nav-tab:hover a {
92
+ color: #f17052;
93
+ }
94
+
95
+ .wppr-tab-content {
96
+ display: none;
97
+ }
98
+
99
+ #wppr-settings {
100
+ padding: 10px;
101
+ background: #fff;
102
+ }
103
+
104
+ #wppr-settings .controls {
105
+ display: table;
106
+ }
107
+
108
+ #wppr-settings .explain,
109
+ #wppr-settings .controls-content {
110
+ display: table-cell;
111
+ }
112
+
113
+ #wppr-settings .explain {
114
+ width: 200px;
115
+ padding: 1em 20px 1em 0;
116
+ }
117
+
118
+ #wppr-settings .explain h4 {
119
+ margin: 0;
120
+ }
121
+
122
+ #wppr-settings .controls-content p {
123
+ margin: 7px 0 1em;
124
+ color: #666;
125
+ font-size: 12px;
126
+ font-style: italic;
127
+ }
128
+
129
+ #wppr-settings .controls-content .wp-picker-container {
130
+ margin-top: -12px;
131
+ }
132
+
133
+ @media screen and (max-width: 1100px) {
134
+ #wppr-settings .explain,
135
+ #wppr-settings .controls-content {
136
+ text-align: left;
137
+ }
138
+ }
139
+
140
+ @media screen and (max-width: 992px) {
141
+ #wppr_top_tabs ul#tabs_menu li:hover:after,
142
+ #wppr_top_tabs ul#tabs_menu li.active:after {
143
+ display: none;
144
+ }
145
+ }
146
+
147
+ @media screen and (max-width: 480px) {
148
+ #wppr-settings .explain {
149
+ width: 150px;
150
+ }
151
+ }
152
+
153
+ #wppr-settings #info_bar .spinner {
154
+ float: none;
155
+ }
156
+
157
+ #wppr-settings label.wppr-upsell-label {
158
+ display: block;
159
+ padding: 10px;
160
+ background: #cae9ff;
161
+ text-align: center;
162
+ }
dist/assets/css/chosen.min.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+
3
+ .chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(../img/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(../img/chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(../img/chosen-sprite.png) no-repeat 100% -20px;background:url(../img/chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(../img/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(../img/chosen-sprite.png) no-repeat -30px -20px;background:url(../img/chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(../img/chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
dist/assets/css/circle.css ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /****************************************************************
2
+ *
3
+ * CSS Percentage Circle
4
+ * Author: Andre Firchow
5
+ *
6
+ *****************************************************************/
7
+ .rect-auto,
8
+ .wppr-c100.wppr-good .wppr-slice,
9
+ .wppr-c100.wppr-very-good .wppr-slice {
10
+ clip: rect(auto, auto, auto, auto);
11
+ }
12
+
13
+ .wppr-pie,
14
+ .wppr-c100 .wppr-bar,
15
+ .wppr-c100.wppr-good .wppr-fill,
16
+ .wppr-c100.wppr-very-good .wppr-fill {
17
+ clip: rect(0em, 0.5em, 1em, 0em);
18
+ position: absolute;
19
+ box-sizing: border-box;
20
+ width: 100%;
21
+ height: 100%;
22
+ border: 15px solid #333;
23
+ border-radius: 50%;
24
+ -webkit-transform: rotate(0deg);
25
+ -ms-transform: rotate(0deg);
26
+ transform: rotate(0deg);
27
+ }
28
+
29
+ .wppr-pie-fill,
30
+ .wppr-c100.wppr-good .wppr-bar:after,
31
+ .wppr-c100.wppr-good .wppr-fill,
32
+ .wppr-c100.wppr-very-good .wppr-bar:after,
33
+ .wppr-c100.wppr-very-good .wppr-fill {
34
+ -webkit-transform: rotate(180deg);
35
+ -ms-transform: rotate(180deg);
36
+ transform: rotate(180deg);
37
+ }
38
+
39
+ .wppr-c100 {
40
+ display: inline-block;
41
+ position: absolute;
42
+ top: 50%;
43
+ left: 50%;
44
+ width: 100%;
45
+ min-width: 100px;
46
+ max-width: 120px;
47
+ height: 100%;
48
+ min-height: 100px;
49
+ max-height: 120px;
50
+ border-radius: 50%;
51
+ background-color: #ebebeb;
52
+ font-size: 120px;
53
+ -webkit-transform: translate(-50%,-50%);
54
+ -ms-transform: translate(-50%,-50%);
55
+ transform: translate(-50%,-50%);
56
+ }
57
+
58
+ .wppr-c100.center {
59
+ float: none;
60
+ margin: 0 auto;
61
+ }
62
+
63
+ .wppr-c100 > span {
64
+ display: block;
65
+ position: absolute;
66
+ z-index: 1;
67
+ top: 0;
68
+ left: 0;
69
+ width: 100%;
70
+ width: 100%;
71
+ color: #333;
72
+ font-size: 33px;
73
+ font-weight: 900;
74
+ line-height: 120px;
75
+ text-align: center;
76
+ white-space: nowrap;
77
+ -webkit-transition-timing-function: ease-out;
78
+ transition-timing-function: ease-out;
79
+ -webkit-transition-duration: 0.2s;
80
+ transition-duration: 0.2s;
81
+ -webkit-transition-property: all;
82
+ transition-property: all;
83
+ }
84
+
85
+ .wppr-c100 .wppr-slice-center {
86
+ display: block;
87
+ box-sizing: border-box;
88
+ width: 100%;
89
+ height: 100%;
90
+ padding: 15px;
91
+ }
92
+
93
+ .wppr-c100 .wppr-slice-center:after {
94
+ display: block;
95
+ width: 100%;
96
+ height: 100%;
97
+ border-radius: 50%;
98
+ background-color: #fff;
99
+ content: " ";
100
+ }
101
+
102
+ .wppr-c100 .wppr-slice {
103
+ clip: rect(0em, 1em, 1em, 0.5em);
104
+ position: absolute;
105
+ width: 100%;
106
+ height: 100%;
107
+ }
dist/assets/css/comments.css ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wppr-slider-comment .wppr-comment-form-meta {
2
+ float: right;
3
+ position: relative;
4
+ width: 100%;
5
+ margin-bottom: 12px;
6
+ }
7
+
8
+ #wppr-slider-comment .wppr-comment-form-meta label {
9
+ display: block;
10
+ float: left;
11
+ width: 80%;
12
+ margin: 0;
13
+ padding: 0;
14
+ font-size: 14px;
15
+ line-height: 2;
16
+ }
17
+
18
+ #wppr-slider-comment .wppr-comment-form-meta .meta_option_input {
19
+ float: right;
20
+ width: 12%;
21
+ min-width: 0;
22
+ height: 26px;
23
+ margin: 0;
24
+ padding: 5px 0 0 0;
25
+ border: none;
26
+ font-size: 14px;
27
+ font-weight: bold;
28
+ line-height: 1.5;
29
+ text-align: center;
30
+ }
31
+
32
+ #wppr-slider-comment .wppr-comment-form-meta .wppr-comment-meta-slider {
33
+ float: left;
34
+ width: 100%;
35
+ height: 7px;
36
+ margin-top: 5px !important;
37
+ border: none;
38
+ background: #f3f3f3;
39
+ box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
40
+ }
41
+
42
+ #wppr-slider-comment .wppr-comment-form-meta .wppr-comment-meta-slider .ui-slider-handle {
43
+ top: -4px;
44
+ left: 5px;
45
+ width: 13px;
46
+ height: 13px;
47
+ border: none;
48
+ border-radius: 50%;
49
+ background: #3baeda;
50
+ }
51
+
52
+ #wppr-slider-comment .wppr-comment-form-meta .wppr-comment-meta-slider .ui-slider-handle:hover {
53
+ box-shadow: inset 0 0 4px rgba(255, 255, 255, 0.3);
54
+ cursor: pointer;
55
+ }
56
+
57
+ #wppr-slider-comment cite.review-info {
58
+ color: #ddd;
59
+ font-style: italic !important;
60
+ }
61
+
62
+ /* User Comment Grades Styles */
63
+
64
+ .user-comments-grades {
65
+ float: right;
66
+ width: 200px;
67
+ margin-top: 25px;
68
+ margin-left: 15px;
69
+ padding: 10px;
70
+ border: 1px solid #ddd;
71
+ border-radius: 5px;
72
+ }
73
+
74
+ .user-comments-grades * {
75
+ margin: 0 !important;
76
+ padding: 0 !important;
77
+ }
78
+
79
+ .user-comments-grades .comment-meta-option-name {
80
+ float: left;
81
+ margin-bottom: 3px !important;
82
+ color: #7d7d7d;
83
+ font-size: 10px;
84
+ text-transform: uppercase;
85
+ }
86
+
87
+ .user-comments-grades .comment-meta-option-grade {
88
+ float: right;
89
+ clear: none !important;
90
+ font-size: 10px;
91
+ font-weight: bold;
92
+ text-transform: uppercase;
93
+ }
94
+
95
+ .user-comments-grades .comment-meta-option {
96
+ margin-bottom: 10px !important;
97
+ }
98
+
99
+ .user-comments-grades .comment-meta-option:last-of-type {
100
+ margin-bottom: 0 !important;
101
+ }
102
+
103
+ /* Comment Form Meta Options - GRADE BAR */
104
+
105
+ .comment-meta-option .comment-meta-grade-bar {
106
+ overflow: hidden;
107
+ width: 100%;
108
+ height: 5px;
109
+ border-radius: 32px;
110
+ background: #ebedef;
111
+ box-shadow: none;
112
+ }
113
+
114
+ .comment-meta-grade {
115
+ height: 100%;
116
+ }
117
+
118
+ #wppr-slider-comment {
119
+ display: block;
120
+ width: 230px;
121
+ margin-top: 10px;
122
+ margin-bottom: 10px;
123
+ }
124
+
125
+ .wppr-comment-form-meta {
126
+ width: 100% !important;
127
+ }
128
+
129
+ .cwpr_clearfix {
130
+ clear: both !important;
131
+ }
132
+
133
+ /* Comment Form Meta Options - GRADE BAR */
134
+
135
+ #wppr-slider-comment .comment-meta-option .comment-meta-grade-bar {
136
+ overflow: hidden;
137
+ width: 100%;
138
+ height: 5px;
139
+ border-radius: 32px;
140
+ background: #ebedef;
141
+ box-shadow: none;
142
+ }
dist/assets/css/common.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .affiliate-button {
2
+ clear: both;
3
+ width: 100%;
4
+ margin-bottom: 20px;
5
+ }
6
+
7
+ .affiliate-button2 {
8
+ float: left;
9
+ clear: none !important;
10
+ width: 50% !important;
11
+ margin-bottom: 20px;
12
+ }
13
+
14
+ .affiliate-button a {
15
+ display: table;
16
+ margin: 20px auto 0;
17
+ padding: 10px 35px;
18
+ border: none;
19
+ border-radius: 5px;
20
+ text-decoration: none !important;
21
+ }
22
+
23
+ .affiliate-button a:hover span {
24
+ text-decoration: none;
25
+ ;
26
+ }
27
+
28
+ .affiliate-button a span {
29
+ margin-left: -10px;
30
+ padding-left: 20px;
31
+ font-size: 14px;
32
+ font-weight: normal;
33
+ font-style: italic;
34
+ text-decoration: none;
35
+ text-transform: uppercase;
36
+ }
dist/assets/css/cwppos-widget-admin.css ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ span.wppr-styleimg {
2
+ display: none;
3
+ position: relative;
4
+ width: 100%;
5
+ }
6
+
7
+ span.wppr-styleimg img {
8
+ position: absolute;
9
+ left: 10px;
10
+ border: 1px solid #000;
11
+ }
dist/assets/css/cwppos-widget-rating.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wppr-prodlist .wppr-rating {
2
+ display: block;
3
+ width: 80px;
4
+ height: 16px;
5
+ margin: 0;
6
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFRoZSBpY29uIGNhbiBiZSB1c2VkIGZyZWVseSBpbiBib3RoIHBlcnNvbmFsIGFuZCBjb21tZXJjaWFsIHByb2plY3RzIHdpdGggbm8gYXR0cmlidXRpb24gcmVxdWlyZWQsIGJ1dCBhbHdheXMgYXBwcmVjaWF0ZWQuIFlvdSBtYXkgTk9UIHN1Yi1saWNlbnNlLCByZXNlbGwsIHJlbnQsIHJlZGlzdHJpYnV0ZSBvciBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIGljb24gd2l0aG91dCBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIGljb25tb25zdHIuY29tIC0tPjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Igkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gaWQ9InN0YXItaWNvbiIgZmlsbD0iI0Q5RDlEOSIgcG9pbnRzPSIyNTYsNjAuMDgyIDMwNC42MywyMDkuNzUgNDYyLDIwOS43NSAzMzQuNjg2LDMwMi4yNSAzODMuMzE1LDQ1MS45MTggMjU2LDM1OS40MTggMTI4LjY4NSw0NTEuOTE4IAkxNzcuMzE1LDMwMi4yNSA1MCwyMDkuNzUgMjA3LjM3LDIwOS43NSAiLz48L3N2Zz4=);
7
+ background-size: contain;
8
+ }
9
+
10
+ .wppr-prodlist .wppr-rating div {
11
+ display: block;
12
+ overflow: hidden;
13
+ max-width: 100%;
14
+ height: 16px;
15
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFRoZSBpY29uIGNhbiBiZSB1c2VkIGZyZWVseSBpbiBib3RoIHBlcnNvbmFsIGFuZCBjb21tZXJjaWFsIHByb2plY3RzIHdpdGggbm8gYXR0cmlidXRpb24gcmVxdWlyZWQsIGJ1dCBhbHdheXMgYXBwcmVjaWF0ZWQuIFlvdSBtYXkgTk9UIHN1Yi1saWNlbnNlLCByZXNlbGwsIHJlbnQsIHJlZGlzdHJpYnV0ZSBvciBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIGljb24gd2l0aG91dCBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIGljb25tb25zdHIuY29tIC0tPjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB2ZXJzaW9uPSIxLjEiIGZpbGw9IiNGRjdFMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Igkgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTEyIDUxMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gaWQ9InN0YXItaWNvbiIgcG9pbnRzPSIyNTYsNjAuMDgyIDMwNC42MywyMDkuNzUgNDYyLDIwOS43NSAzMzQuNjg2LDMwMi4yNSAzODMuMzE1LDQ1MS45MTggMjU2LDM1OS40MTggMTI4LjY4NSw0NTEuOTE4IAkxNzcuMzE1LDMwMi4yNSA1MCwyMDkuNzUgMjA3LjM3LDIwOS43NSAiLz48L3N2Zz4=);
16
+ background-size: contain;
17
+ white-space: nowrap;
18
+ text-indent: 100%;
19
+ }
dist/assets/css/cwppos-widget-style1.css ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wppr-prodlist .wppr-prodrow {
2
+ width: 100%;
3
+ padding: 20px 0;
4
+ }
5
+
6
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowleft {
7
+ float: left;
8
+ width: 30%;
9
+ }
10
+
11
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright {
12
+ float: left;
13
+ }
14
+
15
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowrightadjust {
16
+ width: 65%;
17
+ margin-left: 3%;
18
+ }
19
+
20
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-rating {
21
+ margin-top: 5px;
22
+ }
23
+
24
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright p {
25
+ margin: 0 0 0 0;
26
+ line-height: 18px;
27
+ }
28
+
29
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-rating div {
30
+ min-width: 20%;
31
+ }
32
+
33
+ .clear {
34
+ clear: both;
35
+ }
36
+
37
+ .cwp-review-chart.relative {
38
+ position: relative;
39
+ }
40
+
41
+ .cwp-review-chart.absolute {
42
+ position: absolute;
43
+ }
44
+
45
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-bttn:first-child {
46
+ margin-right: 10px;
47
+ }
48
+
49
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright p.wppr-style1-buttons {
50
+ display: block;
51
+ overflow: hidden;
52
+ height: 32px;
53
+ margin-top: 10px;
54
+ }
55
+
56
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-bttn {
57
+ padding: 6px 9px;
58
+ border-radius: 3px;
59
+ color: #fff !important;
60
+ background-color: #3baeda;
61
+ font-size: 12px;
62
+ font-weight: bold;
63
+ line-height: 36px;
64
+ white-space: nowrap;
65
+ text-decoration: none;
66
+ text-transform: uppercase;
67
+ -webkit-transition: all 0.5s ease;
68
+ transition: all 0.5s ease;
69
+ }
70
+
71
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .bttn:hover {
72
+ opacity: 0.8;
73
+ }
74
+
75
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-review-stars.rtl .wppr-review-stars-grade i.fa-star-half-o {
76
+ transform: rotateY(180deg);
77
+ }
78
+
79
+ .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-review-stars .wppr-review-stars-grade {
80
+ color: #ff7e00;
81
+ }
82
+
dist/assets/css/cwppos-widget.css ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Sidebar Popular Reviews Widget */
2
+
3
+ .review-grade-widget .review-wu-grade-content {
4
+ float: right;
5
+ width: 40px;
6
+ height: 40px;
7
+ }
8
+
9
+ .review-grade-widget .review-wu-grade-content .wppr-c100 {
10
+ position: relative;
11
+ top: 0;
12
+ left: 0;
13
+ min-width: 40px;
14
+ max-width: 40px;
15
+ min-height: 40px;
16
+ max-height: 40px;
17
+ font-size: 40px;
18
+ -webkit-transform: none;
19
+ -ms-transform: none;
20
+ transform: none;
21
+ }
22
+
23
+ .review-grade-widget .review-wu-grade-content .wppr-c100 > span {
24
+ font-size: 14px;
25
+ line-height: 40px;
26
+ }
27
+
28
+ .review-grade-widget .review-wu-grade-content .wppr-c100 .wppr-bar,
29
+ .review-grade-widget .review-wu-grade-content .wppr-c100 .wppr-fill {
30
+ border-width: 4px;
31
+ }
32
+
33
+ .review-grade-widget .review-wu-grade-content .wppr-c100 .wppr-slice-center {
34
+ padding: 4px;
35
+ }
36
+
37
+ .cwp-popular-review {
38
+ display: table;
39
+ width: 100%;
40
+ margin: 0;
41
+ padding: 15px 0 !important;
42
+ border-bottom: 1px solid #ddd;
43
+ list-style: none;
44
+ }
45
+
46
+ .widget_cwp_top_products_widget ul,
47
+ .widget_cwp_latest_products_widget ul {
48
+ margin-left: 0 !important;
49
+ padding-left: 0 !important;
50
+ }
51
+
52
+ .widget_cwp_top_products_widget li,
53
+ .widget_cwp_latest_products_widget li {
54
+ margin-left: 0 !important;
55
+ background-image: none;
56
+ list-style: none!important;
57
+ }
58
+
59
+ .widget_cwp_top_products_widget li a,
60
+ .widget_cwp_latest_products_widget li a {
61
+ padding: 0 !important;
62
+ border: none!important;
63
+ }
64
+
65
+ .widget_cwp_top_products_widget {
66
+ overflow: hidden;
67
+ }
68
+
69
+ .cwp-popular-review .wppr-col {
70
+ display: table-cell;
71
+ width: auto;
72
+ vertical-align: middle;
73
+ }
74
+
75
+ .cwp-popular-review .wppr-post-title {
76
+ padding: 0 15px;
77
+ }
78
+
79
+ .cwp-popular-review .wppr-post-title.wppr-no-image {
80
+ padding-left: 0;
81
+ }
82
+
83
+ .cwp-popular-review .cwp_rev_image {
84
+ width: 50px;
85
+ }
86
+
87
+ .cwp-popular-review .review-grade-widget {
88
+ width: 40px;
89
+ }
dist/assets/css/dashboard_styles.css ADDED
@@ -0,0 +1,423 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* #Clearing
2
+
3
+ ================================================== */
4
+ /* Self Clearing Goodness
5
+ .preload_result, #cwp_review_meta_box,#cwp_container,.cwp_addons_wrap{*/
6
+
7
+ /* <div class="rowf1f1f1*/
8
+ .cwpr_clearfix:before,
9
+ .cwpr_clearfix:after {
10
+ display: block;
11
+ visibility: hidden;
12
+ overflow: hidden;
13
+ width: 0;
14
+ height: 0;
15
+ content: "\0020";
16
+ }
17
+
18
+ .cwpr_clearfix:after {
19
+ clear: both;
20
+ }
21
+
22
+ .cwpr_clearfix {
23
+ zoom: 1;
24
+ }
25
+
26
+ .product-review-meta-Yes .review-settings-notice {
27
+ display: block !important;
28
+ }
29
+
30
+ .product-review-meta-Yes .review-settings-group {
31
+ display: block !important;
32
+ }
33
+ .product-review-meta-No {
34
+ display: none;
35
+ }
36
+
37
+ .preloadInfo {
38
+ width: 89%;
39
+ }
40
+
41
+ .review-settings-notice h4 {
42
+ margin: 0 !important;
43
+ }
44
+
45
+ .review-settings-group .review-settings-group-option {
46
+ margin: 5px 0;
47
+ }
48
+
49
+ .review-settings-group input {
50
+ padding: 4px;
51
+ }
52
+
53
+ .review-settings-notice {
54
+ padding: 5px 10px;
55
+ border: 1px solid #ddd;
56
+ border-radius: 3px 3px 0 0;
57
+ background: #fff;
58
+ }
59
+
60
+ .review-settings-group {
61
+ margin-bottom: 5px;
62
+ padding: 10px;
63
+ border: 1px solid #ddd;
64
+ border-top: none;
65
+ border-radius: 0 0 3px 3px;
66
+ background: #fff;
67
+ }
68
+
69
+ .review-settings-group label.option_label {
70
+ display: block;
71
+ float: left;
72
+ margin: 1px -1px 1px 1px;
73
+ padding: 4.5px 7px;
74
+ border-radius: 3px 0 0 3px;
75
+ background: #e7e7e7;
76
+ font-weight: 700;
77
+ }
78
+
79
+ .review-settings-group .option_grade {
80
+ width: 55px;
81
+ margin-left: -3px;
82
+ border-left: none;
83
+ border-radius: 0 3px 3px 0;
84
+ text-align: center;
85
+ }
86
+
87
+ .review-settings-group .option_content {
88
+ margin-right: 0;
89
+ border-radius: 3px 0 0 3px;
90
+ }
91
+
92
+ .review-settings-group #option_overall_score {
93
+ width: 50px;
94
+ border-radius: 0 3px 3px 0;
95
+ }
96
+
97
+ .review-settings-group ul li label {
98
+ display: block;
99
+ float: left;
100
+ width: 140px;
101
+ font-weight: 700;
102
+ line-height: 2.3;
103
+ }
104
+
105
+ .review-settings-group ul li input {
106
+ width: 200px;
107
+ }
108
+
109
+ .cwp_image_link label {
110
+ display: inline !important;
111
+ float: none !important;
112
+ }
113
+
114
+ .review-settings-group ul li input[type=radio] {
115
+ width: 10px;
116
+ }
117
+
118
+ img.theme_options_logo {
119
+ margin-top: -5px;
120
+ margin-right: 20px;
121
+ }
122
+
123
+ .preload_result {
124
+ display: none;
125
+ position: absolute;
126
+ z-index: 9999 !important;
127
+ top: 0 !important;
128
+ right: 0;
129
+ bottom: 0 !important;
130
+ left: 0;
131
+ background: rgba(0, 0, 0, 0.3);
132
+ }
133
+
134
+ .preload_result .preload_inner {
135
+ position: fixed;
136
+ top: 50%;
137
+ left: 50%;
138
+ min-width: 600px;
139
+ height: 500px;
140
+ margin-top: -250px;
141
+ margin-left: -300px;
142
+ background: #fff;
143
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
144
+ }
145
+
146
+ .preload_result .preload_inner > header {
147
+ position: relative;
148
+ padding: 10px 20px;
149
+ border-bottom: 1px solid #ddd;
150
+ }
151
+
152
+ .preload_result .preload_inner > header h2 {
153
+ margin: 0;
154
+ padding: 10px 0;
155
+ line-height: 1;
156
+ }
157
+
158
+ .preload_result .preload_inner .preload_close {
159
+ position: absolute;
160
+ top: 20px;
161
+ right: 20px;
162
+ width: 20px;
163
+ height: 20px;
164
+ border-radius: 5px;
165
+ background: #ddd;
166
+ }
167
+
168
+ .preload_result .preload_inner .preload_close:before {
169
+ font: 400 20px/1 dashicons !important;
170
+ content: "\f158";
171
+ }
172
+
173
+ .preload_result .preload_inner .preload_close:hover {
174
+ opacity: 0.5;
175
+ cursor: pointer;
176
+ }
177
+
178
+ .preload_result .ajax_load_icon {
179
+ position: absolute;
180
+ top: 50%;
181
+ left: 50%;
182
+ width: 40px;
183
+ height: 40px;
184
+ margin-top: -20px;
185
+ margin-left: -20px;
186
+ }
187
+
188
+ .preload_result .preload_list {
189
+ overflow-y: scroll;
190
+ height: 400px;
191
+ }
192
+
193
+ .preload_result .preload_list .cwp_preloaded_item {
194
+ width: 98%;
195
+ margin: 0 2% 0 0;
196
+ padding: 5px;
197
+ border-bottom: 1px solid #ddd;
198
+ }
199
+
200
+ .preload_result .preload_list .cwp_preloaded_item:first-child {
201
+ border-top: 1px solid #ddd;
202
+ }
203
+
204
+ .preload_result .preload_list .cwp_preloaded_item header .cwp_p_title {
205
+ float: left;
206
+ width: 80%;
207
+ margin: 0;
208
+ padding: 0;
209
+ font-size: 13px;
210
+ line-height: 2;
211
+ }
212
+
213
+ .preload_result .preload_list .cwp_preloaded_item header .cwp_p_title:hover {
214
+ color: #2ea1cd;
215
+ cursor: pointer;
216
+ }
217
+
218
+ .preload_result .preload_list .cwp_preloaded_item header .cwp_p_title:before {
219
+ color: #ddd;
220
+ font: 400 13px/1 dashicons !important;
221
+ content: "\f139";
222
+ }
223
+
224
+ .preload_result .preload_list .cwp_preloaded_item header button.preload {
225
+ float: right;
226
+ width: 5%;
227
+ margin: 0;
228
+ padding: 3px 0 5px;
229
+ border: 1px solid #63a62f;
230
+ border-bottom: 1px solid #5b992b;
231
+ border-radius: 3px;
232
+ color: #fff;
233
+ background-color: #7fbf4d;
234
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #7fbf4d), color-stop(100%, #63a62f));
235
+ background-image: -webkit-linear-gradient(top, #7fbf4d, #63a62f);
236
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#63a62f));
237
+ background-image: -webkit-gradient( linear, left bottom, left top, from(#7fbf4d), to(#63a62f));
238
+ background-image: -webkit-linear-gradient( bottom, #7fbf4d, #63a62f);
239
+ background-image: linear-gradient( to top, #7fbf4d, #63a62f);
240
+ box-shadow: inset 0 1px 0 0 #96ca6d;
241
+ text-shadow: 0 -1px 0 #4c9021;
242
+ font: bold 20px/1;
243
+ text-align: center;
244
+ }
245
+
246
+ .preload_result .preload_list .cwp_preloaded_item header button.preload:hover {
247
+ background-color: #76b347;
248
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #76b347), color-stop(100%, #5e9e2e));
249
+ background-image: -webkit-linear-gradient(top, #76b347, #5e9e2e);
250
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#76b347), to(#5e9e2e));
251
+ background-image: -webkit-gradient( linear, left bottom, left top, from(#76b347), to(#5e9e2e));
252
+ background-image: -webkit-linear-gradient( bottom, #76b347, #5e9e2e);
253
+ background-image: linear-gradient( to top, #76b347, #5e9e2e);
254
+ box-shadow: inset 0 1px 0 0 #8dbf67;
255
+ cursor: pointer;
256
+ }
257
+
258
+ .preload_result .cwp_preloaded_item .cwp_pitem_info {
259
+ display: none;
260
+ float: left;
261
+ width: 100%;
262
+ margin-top: 5px;
263
+ }
264
+
265
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul {
266
+ float: left;
267
+ width: 30.66%;
268
+ margin: 0 4% 10px 0;
269
+ }
270
+
271
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul:last-of-type {
272
+ margin-right: 0 !important;
273
+ }
274
+
275
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul li {
276
+ padding-left: 10px;
277
+ border: 1px solid #f1f1f1;
278
+ border-bottom: none;
279
+ font-size: 10px;
280
+ -webkit-transition: all 0.2s ease-in-out;
281
+ transition: all 0.2s ease-in-out;
282
+ }
283
+
284
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul li:hover {
285
+ color: #fff;
286
+ background: #7fbf4d;
287
+ cursor: pointer;
288
+ }
289
+
290
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul li:last-of-type {
291
+ border-bottom: 1px solid #f1f1f1;
292
+ }
293
+
294
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul li,
295
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul h4 {
296
+ margin: 0;
297
+ }
298
+
299
+ .preload_result .cwp_preloaded_item .cwp_pitem_info ul h4 {
300
+ margin: 0;
301
+ padding: 3px 0;
302
+ border-radius: 3px 3px 0 0;
303
+ background: #f1f1f1;
304
+ text-align: center;
305
+ }
306
+
307
+ a.preload_info,
308
+ a.preload_info_upsell {
309
+ float: right;
310
+ margin-top: -14px;
311
+ padding: 5px 10px;
312
+ border: 1px solid #63a62f;
313
+ border-bottom: 1px solid #5b992b;
314
+ border-radius: 3px;
315
+ color: #fff;
316
+ background-color: #7fbf4d;
317
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #7fbf4d), color-stop(100%, #63a62f));
318
+ background-image: -webkit-linear-gradient(to top, #7fbf4d, #63a62f);
319
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#7fbf4d), to(#63a62f));
320
+ background-image: -webkit-linear-gradient(top, #7fbf4d, #63a62f);
321
+ background-image: -webkit-gradient(linear, left bottom, left top, from(#7fbf4d), to(#63a62f));
322
+ background-image: -webkit-linear-gradient(bottom, #7fbf4d, #63a62f);
323
+ background-image: linear-gradient(to top, #7fbf4d, #63a62f);
324
+ box-shadow: inset 0 1px 0 0 #96ca6d;
325
+ text-shadow: 0 -1px 0 #4c9021;
326
+ font: bold 20px/1;
327
+ text-align: center;
328
+ text-decoration: none;
329
+ }
330
+
331
+ a.preload_info:hover,
332
+ a.preload_info_upsell:hover {
333
+ background-color: #76b347;
334
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #76b347), color-stop(100%, #5e9e2e));
335
+ background-image: -webkit-linear-gradient(to top, #76b347, #5e9e2e);
336
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#76b347), to(#5e9e2e));
337
+ background-image: -webkit-linear-gradient(top, #76b347, #5e9e2e);
338
+ background-image: -webkit-gradient(linear, left bottom, left top, from(#76b347), to(#5e9e2e));
339
+ background-image: -webkit-linear-gradient(bottom, #76b347, #5e9e2e);
340
+ background-image: linear-gradient(to top, #76b347, #5e9e2e);
341
+ box-shadow: inset 0 1px 0 0 #8dbf67;
342
+ cursor: pointer;
343
+ }
344
+
345
+ /**
346
+ * Custom Icon
347
+ */
348
+ #bar-icon-elements {
349
+ display: none;
350
+ }
351
+
352
+ #bar-icon-elements.active {
353
+ display: block;
354
+ position: fixed;
355
+ top: 10%;
356
+ left: 50%;
357
+ width: 400px;
358
+ height: 200px;
359
+ margin-left: -200px;
360
+ padding: 20px;
361
+ border-radius: 3px;
362
+ background: #fff;
363
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
364
+ }
365
+
366
+ #bar-icon-elements i,
367
+ .current_bar_icon i {
368
+ display: inline-block;
369
+ width: 25px;
370
+ height: 25px;
371
+ margin: 3px;
372
+ border: 1px solid #ddd;
373
+ border-radius: 3px;
374
+ color: #858585;
375
+ font-size: 15px;
376
+ line-height: 26px;
377
+ }
378
+
379
+ #bar-icon-elements i:hover {
380
+ border: 1px solid #ff9300;
381
+ color: #ff9300;
382
+ cursor: pointer;
383
+ }
384
+
385
+ #bar-icon-elements .closeModal {
386
+ position: absolute;
387
+ top: -10px;
388
+ right: -10px;
389
+ }
390
+
391
+ #bar-icon-elements .closeModal:hover i,
392
+ #bar-icon-elements i.active {
393
+ color: #fff;
394
+ background: #ff9300;
395
+ }
396
+
397
+ #bar-icon-elements .closeModal i {
398
+ border: none;
399
+ border-radius: 50%;
400
+ color: #fff;
401
+ background: #000;
402
+ line-height: 25px;
403
+ text-align: center;
404
+ }
405
+
406
+ #tab-general_settings li {
407
+ margin-left: 0;
408
+ padding: 0;
409
+ list-style: none;
410
+ }
411
+
412
+ #cwp_add_button {
413
+ margin-left: 5px;
414
+ font-size: 20px;
415
+ text-decoration: none;
416
+ }
417
+ .cwp_hide_button2 {
418
+ display: none;
419
+ }
420
+ .cwp_proscons {
421
+ display: inline-block;
422
+ width: 49.8%;
423
+ }
dist/assets/css/default.css ADDED
@@ -0,0 +1,519 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Version: 3.4.2
3
+ */
4
+ #review-statistics {
5
+ width: 100%;
6
+ margin: auto;
7
+ }
8
+
9
+ #review-statistics div {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ .cwp-item-price {
14
+ float: right;
15
+ font-size: 1.75em;
16
+ }
17
+
18
+ #review-statistics h1,
19
+ #review-statistics h2,
20
+ #review-statistics h3,
21
+ #review-statistics h4,
22
+ #review-statistics h5,
23
+ #review-statistics h6 {
24
+ margin: 0;
25
+ padding: 0;
26
+ border: none;
27
+ font-weight: normal;
28
+ }
29
+
30
+ .rev-option h3 {
31
+ width: auto !important;
32
+ }
33
+
34
+ #review-statistics .photo-wrapup {
35
+ width: 100%;
36
+ }
37
+
38
+ #review-statistics .sec-top {
39
+ margin: 40px 0 20px 0;
40
+ border-top: 1px solid #ddd;
41
+ border-bottom: 1px solid #ddd;
42
+ }
43
+
44
+ #review-statistics .sec-top h2 {
45
+ margin: 0;
46
+ padding: 20px 0;
47
+ padding-left: 20px;
48
+ border-right: 4px solid #d8d8d8;
49
+ border-left: 4px solid #d8d8d8;
50
+ font-size: 1.643em;
51
+ font-weight: normal;
52
+ font-style: italic;
53
+ line-height: 0;
54
+ letter-spacing: -1px;
55
+ text-transform: uppercase;
56
+ }
57
+
58
+ #review-statistics .sec-top h2 i {
59
+ margin-right: 10px;
60
+ color: #d9d9d9;
61
+ }
62
+
63
+ #review-statistics .container .edit-article {
64
+ padding-right: 35px;
65
+ text-align: right;
66
+ }
67
+
68
+ #review-statistics .container .edit-article a {
69
+ padding: 5px 10px;
70
+ border-radius: 4px;
71
+ color: #7d7d7d;
72
+ background: #f3f3f3;
73
+ font-size: 12px;
74
+ text-decoration: none;
75
+ text-transform: uppercase;
76
+ }
77
+
78
+ #review-statistics .container .edit-article a:hover {
79
+ background: #ddd;
80
+ }
81
+
82
+ #review-statistics .article-meta {
83
+ margin: 20px 0 20px 0;
84
+ }
85
+
86
+ #review-statistics .icon-bar-chart:before {
87
+ content: "\f080";
88
+ }
89
+
90
+ #review-statistics .review-wu-right .cons {
91
+ margin-top: 15px;
92
+ }
93
+
94
+ #review-statistics .sec-top h2 i {
95
+ margin-right: 10px;
96
+ color: #d9d9d9;
97
+ }
98
+
99
+ #review-statistics .cwpr_clearfix:after {
100
+ display: block;
101
+ visibility: hidden;
102
+ overflow: hidden;
103
+ width: 0;
104
+ height: 0;
105
+ content: "\0020";
106
+ }
107
+
108
+ #review-statistics .cwpr_clearfix:after {
109
+ clear: both;
110
+ }
111
+
112
+ #review-statistics .cwpr_clearfix {
113
+ zoom: 1;
114
+ }
115
+
116
+ #review-statistics .cwp-review-chart {
117
+ float: left;
118
+ position: relative !important;
119
+ top: 0;
120
+ right: 0;
121
+ border-radius: 50%;
122
+ }
123
+
124
+ #review-statistics .cwp-review-percentage span {
125
+ display: block;
126
+ border-radius: 50%;
127
+ background: #fff;
128
+ font-size: 17px;
129
+ font-weight: 900;
130
+ }
131
+
132
+ .cwp-review-rating {
133
+ line-height: inherit !important;
134
+ }
135
+
136
+ #review-statistics .review-wrap-up {
137
+ margin-top: 20px;
138
+ }
139
+
140
+ #review-statistics .review-wu-bars h3,
141
+ .review-wu-bars span {
142
+ margin: 0;
143
+ padding: 0;
144
+ font-size: 13px !important;
145
+ font-style: italic;
146
+ line-height: 2;
147
+ text-transform: uppercase;
148
+ }
149
+
150
+ #review-statistics .review-wu-bars h3 {
151
+ float: left;
152
+ }
153
+
154
+ #review-statistics .review-wu-bars span {
155
+ line-height: 2;
156
+ text-align: right;
157
+ }
158
+
159
+ #review-statistics .review-wu-bars {
160
+ float: left;
161
+ width: 100%;
162
+ padding: 15px;
163
+ border-top: 1px solid #e6e6e6;
164
+ }
165
+
166
+ #review-statistics .review-wu-bars ul {
167
+ width: 100% !important;
168
+ margin: 0;
169
+ margin-left: 0 !important;
170
+ padding-left: 0 !important;
171
+ }
172
+
173
+ #review-statistics .review-wu-bars ul li {
174
+ display: inline-block;
175
+ float: left;
176
+ width: 8.2%;
177
+ height: 6px;
178
+ margin-right: 2%;
179
+ }
180
+
181
+ #review-statistics .rev-option.customBarIcon ul li {
182
+ width: 28px;
183
+ height: auto !important;
184
+ margin: 0;
185
+ background: none;
186
+ font-size: 15px;
187
+ }
188
+
189
+ #review-statistics .rev-option.customBarIcon ul li i {
190
+ font-size: 22px;
191
+ font-style: normal !important;
192
+ line-height: 1;
193
+ text-align: center;
194
+ }
195
+
196
+ #review-statistics .review-wu-bars ul.wppr-custom-icon li {
197
+ display: inline-block;
198
+ height: auto;
199
+ background: transparent !important;
200
+ font-size: 22px;
201
+ -webkit-font-smoothing: antialiased;
202
+ text-align: center;
203
+ text-rendering: auto;
204
+ }
205
+
206
+ #review-statistics .review-wu-bars ul li:nth-child(10) {
207
+ margin: 0 !important;
208
+ }
209
+
210
+ #review-statistics .review-wu-bars .rev-option div > * {
211
+ display: inline-block;
212
+ }
213
+
214
+ #review-statistics .review-wrap-up .cwpr-review-top {
215
+ padding: 20px;
216
+ border-top: 5px solid #3baeda;
217
+ border-right: 1px solid #e6e6e6;
218
+ border-left: 1px solid #e6e6e6;
219
+ }
220
+
221
+ #review-statistics .review-wrap-up .review-wu-content {
222
+ display: table;
223
+ width: 100%;
224
+ border-top: 1px solid #e6e6e6;
225
+ border-bottom: 1px solid #e6e6e6;
226
+ border-left: 1px solid #e6e6e6;
227
+ }
228
+
229
+ #review-statistics .review-wrap-up .cwpr-review-top .cwp-item {
230
+ margin: 0;
231
+ padding: 0;
232
+ font-weight: 400;
233
+ line-height: 1;
234
+ }
235
+
236
+ #review-statistics .review-wrap-up .cwpr-review-top h2.cwp-item {
237
+ float: left;
238
+ width: auto !important;
239
+ letter-spacing: 1px;
240
+ }
241
+
242
+ #review-statistics .review-wrap-up .cwpr-review-top .cwp-item-category a {
243
+ font-weight: 500;
244
+ font-style: italic;
245
+ text-decoration: none;
246
+ letter-spacing: 1px;
247
+ }
248
+
249
+ #review-statistics .review-wrap-up .cwpr-review-top .cwp-item-category a:hover {
250
+ text-decoration: underline;
251
+ }
252
+
253
+ #review-statistics .review-wrap-up .cwpr-review-top .cwp-item-category i {
254
+ margin-right: 5px;
255
+ color: #e3e3e3;
256
+ }
257
+
258
+ #review-statistics .review-wrap-up .review-wu-left {
259
+ display: table-cell;
260
+ width: 50%;
261
+ border-right: 1px solid #e6e6e6;
262
+ vertical-align: top;
263
+ }
264
+
265
+ #review-statistics .review-wrap-up .review-wu-left-top {
266
+ display: table;
267
+ width: 100%;
268
+ }
269
+
270
+ .wppr-review-container.wppr-review-no-pros.wppr-review-no-cons #review-statistics .review-wrap-up .review-wu-left {
271
+ width: 100%;
272
+ }
273
+
274
+ #review-statistics .review-wrap-up .review-wu-left .rev-wu-image {
275
+ display: table-cell;
276
+ overflow: hidden;
277
+ width: auto;
278
+ padding: 15px;
279
+ border-right: 1px solid #e6e6e6;
280
+ text-align: center;
281
+ vertical-align: middle;
282
+ }
283
+
284
+ #review-statistics .review-wrap-up .review-wu-left .rev-wu-image a {
285
+ display: inline-block;
286
+ }
287
+
288
+ #review-statistics .review-wrap-up .review-wu-left .rev-wu-image img {
289
+ display: inline-block;
290
+ width: 100%;
291
+ height: auto;
292
+ box-shadow: none;
293
+ }
294
+
295
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade {
296
+ display: table-cell;
297
+ width: auto;
298
+ min-width: 120px;
299
+ max-width: 50%;
300
+ padding: 15px;
301
+ text-align: center;
302
+ vertical-align: middle;
303
+ }
304
+
305
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade-content {
306
+ display: block;
307
+ position: relative;
308
+ width: 120px;
309
+ height: 120px;
310
+ margin: 0 auto;
311
+ }
312
+
313
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade .cwp-review-chart {
314
+ display: inline-block;
315
+ float: none;
316
+ position: relative;
317
+ margin: 0;
318
+ }
319
+
320
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade .cwp-review-chart .cwp-review-percentage {
321
+ width: 150px;
322
+ }
323
+
324
+ #review-statistics .review-wrap-up .review-wu-right {
325
+ display: table-cell;
326
+ width: 50%;
327
+ height: 100%;
328
+ padding: 15px;
329
+ border-right: 1px solid #e6e6e6;
330
+ vertical-align: top;
331
+ }
332
+
333
+ #review-statistics .review-wrap-up .review-wu-right h2 {
334
+ margin-bottom: 0;
335
+ font-size: 15px;
336
+ font-weight: 800;
337
+ text-transform: uppercase;
338
+ }
339
+
340
+ #review-statistics .review-wrap-up .review-wu-right ul li {
341
+ margin: 0 0 2%;
342
+ padding-left: 0;
343
+ font-size: 16px;
344
+ line-height: 1;
345
+ }
346
+
347
+ #review-statistics .review-wrap-up .review-wu-right ul li:before {
348
+ margin-right: 5px;
349
+ content: "-";
350
+ }
351
+
352
+ .review-wu-right ul li {
353
+ background: none !important;
354
+ }
355
+
356
+ .wppr-comment-form-meta input {
357
+ background: none !important;
358
+ }
359
+
360
+ .rev-wu-image img {
361
+ margin: 0 !important;
362
+ padding: 0 !important;
363
+ background: none !important;
364
+ }
365
+
366
+ .rev-option ul li {
367
+ margin-top: 0 !important;
368
+ margin-bottom: 0 !important;
369
+ margin-left: 0 !important;
370
+ padding-left: 0 !important;
371
+ }
372
+
373
+ #review-statistics .rev-option {
374
+ margin-top: 10px;
375
+ }
376
+
377
+ #review-statistics .rev-option ul > li {
378
+ font-family: FontAwesome;
379
+ }
380
+
381
+ #review-statistics .review-wrap-up .review-wu-right ul {
382
+ margin-top: 10px !important;
383
+ margin-left: 0;
384
+ padding-left: 0 !important;
385
+ list-style: none;
386
+ }
387
+
388
+ .review-wu-right ul li {
389
+ list-style: none !important;
390
+ }
391
+
392
+ .wppr-template-default #review-statistics .review-wrap-up .review-wu-content .review-wu-left .review-wu-bars .rev-option span:first-of-type {
393
+ float: left;
394
+ }
395
+
396
+ .wppr-template-default #review-statistics .review-wrap-up .review-wu-content .review-wu-left .review-wu-bars .rev-option span:last-of-type {
397
+ float: right;
398
+ }
399
+
400
+ .wppr-template-default.rtl #review-statistics .review-wrap-up .cwpr-review-top span:first-of-type {
401
+ float: right;
402
+ }
403
+
404
+ .wppr-template-default.rtl #review-statistics .review-wrap-up .cwpr-review-top span:last-of-type {
405
+ float: left;
406
+ }
407
+
408
+ .wppr-template-default.rtl #review-statistics .review-wrap-up .review-wu-content .review-wu-left .review-wu-bars .rev-option span:first-of-type {
409
+ float: right;
410
+ }
411
+
412
+ .wppr-template-default.rtl #review-statistics .review-wrap-up .review-wu-content .review-wu-left .review-wu-bars .rev-option span:last-of-type {
413
+ float: left;
414
+ }
415
+
416
+ .wppr-template-default.rtl .affiliate-button a span {
417
+ margin-right: -10px;
418
+ padding-right: 20px;
419
+ margin-left: auto;
420
+ padding-left: auto;
421
+ }
422
+
423
+
424
+ @media (max-width: 440px) {
425
+ #review-statistics .review-wrap-up .review-wu-left {
426
+ width: 100%;
427
+ }
428
+
429
+ #review-statistics .review-wrap-up .review-wu-right {
430
+ width: 95%;
431
+ padding-left: 5%;
432
+ }
433
+
434
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade {
435
+ border-right: none;
436
+ }
437
+
438
+ #review-statistics .review-wrap-up .review-wu-left .rev-wu-image,
439
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade {
440
+ height: 130px;
441
+ }
442
+
443
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade .cwp-review-chart .cwp-review-percentage {
444
+ margin-top: 10%;
445
+ }
446
+
447
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade .cwp-review-chart span {
448
+ font-size: 30px;
449
+ }
450
+ }
451
+
452
+ @media (max-width: 480px) {
453
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade {
454
+ width: 100px;
455
+ }
456
+
457
+ #review-statistics .review-wrap-up .review-wu-left .review-wu-grade-content {
458
+ width: 100px;
459
+ height: 100px;
460
+ }
461
+
462
+ #review-statistics .review-wu-grade .wppr-c100 {
463
+ font-size: 100px;
464
+ }
465
+
466
+ #review-statistics .review-wu-grade .wppr-c100 span {
467
+ font-size: 28px;
468
+ line-height: 100px;
469
+ }
470
+ }
471
+
472
+ @media (max-width: 768px) {
473
+ #review-statistics .review-wrap-up .review-wu-left,
474
+ #review-statistics .review-wrap-up .review-wu-right {
475
+ display: block;
476
+ float: left;
477
+ width: 100%;
478
+ }
479
+
480
+ #review-statistics .review-wrap-up .review-wu-right {
481
+ border-top: 1px solid #e6e6e6;
482
+ }
483
+ }
484
+
485
+ .cwp-review-percentage.cwp_easyPieChart canvas {
486
+ position: absolute;
487
+ left: 0;
488
+ }
489
+
490
+ .cwp-review-percentage.cwp_easyPieChart {
491
+ position: relative;
492
+ text-align: center;
493
+ }
494
+
495
+ .review-wu-grade .cwp-review-chart {
496
+ float: none;
497
+ position: relative;
498
+ }
499
+
500
+ .clearfix:after {
501
+ display: block;
502
+ visibility: hidden;
503
+ clear: both;
504
+ height: 0;
505
+ font-size: 0;
506
+ content: " ";
507
+ }
508
+
509
+ .clearfix {
510
+ display: inline-block;
511
+ }
512
+
513
+ * html .clearfix {
514
+ height: 1%;
515
+ }
516
+
517
+ .clearfix {
518
+ display: block;
519
+ }
dist/assets/css/editor.css ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wppr-review-yes,
2
+ #wppr-review-no {
3
+ margin-left: 10px;
4
+ }
5
+
6
+ #wppr-meta-yes {
7
+ display: block;
8
+ }
9
+
10
+ #wppr-meta-no {
11
+ display: none;
12
+ }
13
+
14
+ .wppr-review-section p,
15
+ h4 {
16
+ margin: 0;
17
+ }
18
+
19
+ .wppr-review-section label[for="wppr-editor-link-show"],
20
+ .wppr-review-section label[for="wppr-editor-link-open"] {
21
+ font-weight: normal;
22
+ }
23
+
24
+ .wppr-review-section span {
25
+ padding-bottom: 10px;
26
+ font-weight: bold;
27
+ }
28
+
29
+ #wppr-editor-link-show {
30
+ margin-left: 11px;
31
+ }
32
+
33
+ .wppr-review-section input[type="text"] {
34
+ width: 200px;
35
+ }
36
+
37
+ .wppr-review-section li {
38
+ margin-bottom: 12px;
39
+ }
40
+
41
+ #wppr-editor-image-button {
42
+ margin-left: 5px;
43
+ }
44
+
45
+ .wppr-review-section small {
46
+ display: block;
47
+ padding-bottom: 10px;
48
+ padding-left: 144px;
49
+ }
50
+
51
+ .wppr-review-section .size-text {
52
+ padding-bottom: 0;
53
+ }
54
+
55
+ #wppr-editor-new-link {
56
+ font-size: 20px;
57
+ font-weight: bold;
58
+ cursor: pointer;
59
+ }
60
+
61
+ .wppr-review-section h4,
62
+ .wppr-review-section p,
63
+ .wppr-review-section .wppr-review-fieldset {
64
+ padding: 3px 10px;
65
+ }
66
+
67
+ .wppr-review-fieldset {
68
+ border-top: 1px solid #ddd;
69
+ }
70
+
71
+ .wppr-review-section {
72
+ margin-bottom: 10px;
73
+ border: 1px solid #ddd;
74
+ border-radius: 3px 3px 0 0;
75
+ }
76
+
77
+ .wppr-review-section label {
78
+ display: inline-block;
79
+ width: 140px;
80
+ font-weight: bold;
81
+ }
82
+
83
+ .wppr-review-options-list input {
84
+ margin: 0;
85
+ }
86
+
87
+ .wppr-review-options-list label,
88
+ input {
89
+ height: 30px;
90
+ }
91
+
92
+ .wppr-review-section .wppr-review-options-list .wppr-option-number {
93
+ width: 60px;
94
+ }
95
+
96
+ .wppr-review-options-list label {
97
+ width: 30px;
98
+ height: 30px;
99
+ margin-right: -4px;
100
+ border-radius: 3px 0 0 3px;
101
+ background: #ddd;
102
+ line-height: 30px;
103
+ text-align: center;
104
+ vertical-align: top;
105
+ }
106
+
107
+ .wppr-review-pros,
108
+ .wppr-review-cons {
109
+ width: 49%;
110
+ }
111
+
112
+ .wppr-review-pros {
113
+ float: left;
114
+ }
115
+
116
+ .wppr-review-cons {
117
+ float: right;
118
+ }
119
+
120
+ label.wppr-upsell-label {
121
+ display: block;
122
+ width: 98%;
123
+ padding: 1%;
124
+ background: #cae9ff;
125
+ text-align: center;
126
+ }
127
+
128
+ .wppr-review-options a.preload_info {
129
+ margin-top: -42px;
130
+ margin-right: 10px;
131
+ }
dist/assets/css/font-awesome.min.css ADDED
@@ -0,0 +1,1566 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+ /* FONT PATH
6
+ * -------------------------- */
7
+ @font-face {
8
+ font-family: 'FontAwesome';
9
+ src: url('fonts/fontawesome-webfont.eot?v=4.1.0');
10
+ src: url('fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
11
+ font-weight: normal;
12
+ font-style: normal;
13
+ }
14
+ .fa {
15
+ display: inline-block;
16
+ font-family: FontAwesome;
17
+ font-style: normal;
18
+ font-weight: normal;
19
+ line-height: 1;
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+ /* makes the font 33% larger relative to the icon container */
24
+ .fa-lg {
25
+ font-size: 1.33333333em;
26
+ line-height: 0.75em;
27
+ vertical-align: -15%;
28
+ }
29
+ .fa-2x {
30
+ font-size: 2em;
31
+ }
32
+ .fa-3x {
33
+ font-size: 3em;
34
+ }
35
+ .fa-4x {
36
+ font-size: 4em;
37
+ }
38
+ .fa-5x {
39
+ font-size: 5em;
40
+ }
41
+ .fa-fw {
42
+ width: 1.28571429em;
43
+ text-align: center;
44
+ }
45
+ .fa-ul {
46
+ padding-left: 0;
47
+ margin-left: 2.14285714em;
48
+ list-style-type: none;
49
+ }
50
+ .fa-ul > li {
51
+ position: relative;
52
+ }
53
+ .fa-li {
54
+ position: absolute;
55
+ left: -2.14285714em;
56
+ width: 2.14285714em;
57
+ top: 0.14285714em;
58
+ text-align: center;
59
+ }
60
+ .fa-li.fa-lg {
61
+ left: -1.85714286em;
62
+ }
63
+ .fa-border {
64
+ padding: .2em .25em .15em;
65
+ border: solid 0.08em #eeeeee;
66
+ border-radius: .1em;
67
+ }
68
+ .pull-right {
69
+ float: right;
70
+ }
71
+ .pull-left {
72
+ float: left;
73
+ }
74
+ .fa.pull-left {
75
+ margin-right: .3em;
76
+ }
77
+ .fa.pull-right {
78
+ margin-left: .3em;
79
+ }
80
+ .fa-spin {
81
+ -webkit-animation: spin 2s infinite linear;
82
+ -moz-animation: spin 2s infinite linear;
83
+ -o-animation: spin 2s infinite linear;
84
+ animation: spin 2s infinite linear;
85
+ }
86
+ @-moz-keyframes spin {
87
+ 0% {
88
+ -moz-transform: rotate(0deg);
89
+ }
90
+ 100% {
91
+ -moz-transform: rotate(359deg);
92
+ }
93
+ }
94
+ @-webkit-keyframes spin {
95
+ 0% {
96
+ -webkit-transform: rotate(0deg);
97
+ }
98
+ 100% {
99
+ -webkit-transform: rotate(359deg);
100
+ }
101
+ }
102
+ @-o-keyframes spin {
103
+ 0% {
104
+ -o-transform: rotate(0deg);
105
+ }
106
+ 100% {
107
+ -o-transform: rotate(359deg);
108
+ }
109
+ }
110
+ @keyframes spin {
111
+ 0% {
112
+ -webkit-transform: rotate(0deg);
113
+ transform: rotate(0deg);
114
+ }
115
+ 100% {
116
+ -webkit-transform: rotate(359deg);
117
+ transform: rotate(359deg);
118
+ }
119
+ }
120
+ .fa-rotate-90 {
121
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
122
+ -webkit-transform: rotate(90deg);
123
+ -moz-transform: rotate(90deg);
124
+ -ms-transform: rotate(90deg);
125
+ -o-transform: rotate(90deg);
126
+ transform: rotate(90deg);
127
+ }
128
+ .fa-rotate-180 {
129
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
130
+ -webkit-transform: rotate(180deg);
131
+ -moz-transform: rotate(180deg);
132
+ -ms-transform: rotate(180deg);
133
+ -o-transform: rotate(180deg);
134
+ transform: rotate(180deg);
135
+ }
136
+ .fa-rotate-270 {
137
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
138
+ -webkit-transform: rotate(270deg);
139
+ -moz-transform: rotate(270deg);
140
+ -ms-transform: rotate(270deg);
141
+ -o-transform: rotate(270deg);
142
+ transform: rotate(270deg);
143
+ }
144
+ .fa-flip-horizontal {
145
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
146
+ -webkit-transform: scale(-1, 1);
147
+ -moz-transform: scale(-1, 1);
148
+ -ms-transform: scale(-1, 1);
149
+ -o-transform: scale(-1, 1);
150
+ transform: scale(-1, 1);
151
+ }
152
+ .fa-flip-vertical {
153
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
154
+ -webkit-transform: scale(1, -1);
155
+ -moz-transform: scale(1, -1);
156
+ -ms-transform: scale(1, -1);
157
+ -o-transform: scale(1, -1);
158
+ transform: scale(1, -1);
159
+ }
160
+ .fa-stack {
161
+ position: relative;
162
+ display: inline-block;
163
+ width: 2em;
164
+ height: 2em;
165
+ line-height: 2em;
166
+ vertical-align: middle;
167
+ }
168
+ .fa-stack-1x,
169
+ .fa-stack-2x {
170
+ position: absolute;
171
+ left: 0;
172
+ width: 100%;
173
+ text-align: center;
174
+ }
175
+ .fa-stack-1x {
176
+ line-height: inherit;
177
+ }
178
+ .fa-stack-2x {
179
+ font-size: 2em;
180
+ }
181
+ .fa-inverse {
182
+ color: #ffffff;
183
+ }
184
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
185
+ readers do not read off random characters that represent icons */
186
+ .fa-glass:before {
187
+ content: "\f000";
188
+ }
189
+ .fa-music:before {
190
+ content: "\f001";
191
+ }
192
+ .fa-search:before {
193
+ content: "\f002";
194
+ }
195
+ .fa-envelope-o:before {
196
+ content: "\f003";
197
+ }
198
+ .fa-heart:before {
199
+ content: "\f004";
200
+ }
201
+ .fa-star:before {
202
+ content: "\f005";
203
+ }
204
+ .fa-star-o:before {
205
+ content: "\f006";
206
+ }
207
+ .fa-user:before {
208
+ content: "\f007";
209
+ }
210
+ .fa-film:before {
211
+ content: "\f008";
212
+ }
213
+ .fa-th-large:before {
214
+ content: "\f009";
215
+ }
216
+ .fa-th:before {
217
+ content: "\f00a";
218
+ }
219
+ .fa-th-list:before {
220
+ content: "\f00b";
221
+ }
222
+ .fa-check:before {
223
+ content: "\f00c";
224
+ }
225
+ .fa-times:before {
226
+ content: "\f00d";
227
+ }
228
+ .fa-search-plus:before {
229
+ content: "\f00e";
230
+ }
231
+ .fa-search-minus:before {
232
+ content: "\f010";
233
+ }
234
+ .fa-power-off:before {
235
+ content: "\f011";
236
+ }
237
+ .fa-signal:before {
238
+ content: "\f012";
239
+ }
240
+ .fa-gear:before,
241
+ .fa-cog:before {
242
+ content: "\f013";
243
+ }
244
+ .fa-trash-o:before {
245
+ content: "\f014";
246
+ }
247
+ .fa-home:before {
248
+ content: "\f015";
249
+ }
250
+ .fa-file-o:before {
251
+ content: "\f016";
252
+ }
253
+ .fa-clock-o:before {
254
+ content: "\f017";
255
+ }
256
+ .fa-road:before {
257
+ content: "\f018";
258
+ }
259
+ .fa-download:before {
260
+ content: "\f019";
261
+ }
262
+ .fa-arrow-circle-o-down:before {
263
+ content: "\f01a";
264
+ }
265
+ .fa-arrow-circle-o-up:before {
266
+ content: "\f01b";
267
+ }
268
+ .fa-inbox:before {
269
+ content: "\f01c";
270
+ }
271
+ .fa-play-circle-o:before {
272
+ content: "\f01d";
273
+ }
274
+ .fa-rotate-right:before,
275
+ .fa-repeat:before {
276
+ content: "\f01e";
277
+ }
278
+ .fa-refresh:before {
279
+ content: "\f021";
280
+ }
281
+ .fa-list-alt:before {
282
+ content: "\f022";
283
+ }
284
+ .fa-lock:before {
285
+ content: "\f023";
286
+ }
287
+ .fa-flag:before {
288
+ content: "\f024";
289
+ }
290
+ .fa-headphones:before {
291
+ content: "\f025";
292
+ }
293
+ .fa-volume-off:before {
294
+ content: "\f026";
295
+ }
296
+ .fa-volume-down:before {
297
+ content: "\f027";
298
+ }
299
+ .fa-volume-up:before {
300
+ content: "\f028";
301
+ }
302
+ .fa-qrcode:before {
303
+ content: "\f029";
304
+ }
305
+ .fa-barcode:before {
306
+ content: "\f02a";
307
+ }
308
+ .fa-tag:before {
309
+ content: "\f02b";
310
+ }
311
+ .fa-tags:before {
312
+ content: "\f02c";
313
+ }
314
+ .fa-book:before {
315
+ content: "\f02d";
316
+ }
317
+ .fa-bookmark:before {
318
+ content: "\f02e";
319
+ }
320
+ .fa-print:before {
321
+ content: "\f02f";
322
+ }
323
+ .fa-camera:before {
324
+ content: "\f030";
325
+ }
326
+ .fa-font:before {
327
+ content: "\f031";
328
+ }
329
+ .fa-bold:before {
330
+ content: "\f032";
331
+ }
332
+ .fa-italic:before {
333
+ content: "\f033";
334
+ }
335
+ .fa-text-height:before {
336
+ content: "\f034";
337
+ }
338
+ .fa-text-width:before {
339
+ content: "\f035";
340
+ }
341
+ .fa-align-left:before {
342
+ content: "\f036";
343
+ }
344
+ .fa-align-center:before {
345
+ content: "\f037";
346
+ }
347
+ .fa-align-right:before {
348
+ content: "\f038";
349
+ }
350
+ .fa-align-justify:before {
351
+ content: "\f039";
352
+ }
353
+ .fa-list:before {
354
+ content: "\f03a";
355
+ }
356
+ .fa-dedent:before,
357
+ .fa-outdent:before {
358
+ content: "\f03b";
359
+ }
360
+ .fa-indent:before {
361
+ content: "\f03c";
362
+ }
363
+ .fa-video-camera:before {
364
+ content: "\f03d";
365
+ }
366
+ .fa-photo:before,
367
+ .fa-image:before,
368
+ .fa-picture-o:before {
369
+ content: "\f03e";
370
+ }
371
+ .fa-pencil:before {
372
+ content: "\f040";
373
+ }
374
+ .fa-map-marker:before {
375
+ content: "\f041";
376
+ }
377
+ .fa-adjust:before {
378
+ content: "\f042";
379
+ }
380
+ .fa-tint:before {
381
+ content: "\f043";
382
+ }
383
+ .fa-edit:before,
384
+ .fa-pencil-square-o:before {
385
+ content: "\f044";
386
+ }
387
+ .fa-share-square-o:before {
388
+ content: "\f045";
389
+ }
390
+ .fa-check-square-o:before {
391
+ content: "\f046";
392
+ }
393
+ .fa-arrows:before {
394
+ content: "\f047";
395
+ }
396
+ .fa-step-backward:before {
397
+ content: "\f048";
398
+ }
399
+ .fa-fast-backward:before {
400
+ content: "\f049";
401
+ }
402
+ .fa-backward:before {
403
+ content: "\f04a";
404
+ }
405
+ .fa-play:before {
406
+ content: "\f04b";
407
+ }
408
+ .fa-pause:before {
409
+ content: "\f04c";
410
+ }
411
+ .fa-stop:before {
412
+ content: "\f04d";
413
+ }
414
+ .fa-forward:before {
415
+ content: "\f04e";
416
+ }
417
+ .fa-fast-forward:before {
418
+ content: "\f050";
419
+ }
420
+ .fa-step-forward:before {
421
+ content: "\f051";
422
+ }
423
+ .fa-eject:before {
424
+ content: "\f052";
425
+ }
426
+ .fa-chevron-left:before {
427
+ content: "\f053";
428
+ }
429
+ .fa-chevron-right:before {
430
+ content: "\f054";
431
+ }
432
+ .fa-plus-circle:before {
433
+ content: "\f055";
434
+ }
435
+ .fa-minus-circle:before {
436
+ content: "\f056";
437
+ }
438
+ .fa-times-circle:before {
439
+ content: "\f057";
440
+ }
441
+ .fa-check-circle:before {
442
+ content: "\f058";
443
+ }
444
+ .fa-question-circle:before {
445
+ content: "\f059";
446
+ }
447
+ .fa-info-circle:before {
448
+ content: "\f05a";
449
+ }
450
+ .fa-crosshairs:before {
451
+ content: "\f05b";
452
+ }
453
+ .fa-times-circle-o:before {
454
+ content: "\f05c";
455
+ }
456
+ .fa-check-circle-o:before {
457
+ content: "\f05d";
458
+ }
459
+ .fa-ban:before {
460
+ content: "\f05e";
461
+ }
462
+ .fa-arrow-left:before {
463
+ content: "\f060";
464
+ }
465
+ .fa-arrow-right:before {
466
+ content: "\f061";
467
+ }
468
+ .fa-arrow-up:before {
469
+ content: "\f062";
470
+ }
471
+ .fa-arrow-down:before {
472
+ content: "\f063";
473
+ }
474
+ .fa-mail-forward:before,
475
+ .fa-share:before {
476
+ content: "\f064";
477
+ }
478
+ .fa-expand:before {
479
+ content: "\f065";
480
+ }
481
+ .fa-compress:before {
482
+ content: "\f066";
483
+ }
484
+ .fa-plus:before {
485
+ content: "\f067";
486
+ }
487
+ .fa-minus:before {
488
+ content: "\f068";
489
+ }
490
+ .fa-asterisk:before {
491
+ content: "\f069";
492
+ }
493
+ .fa-exclamation-circle:before {
494
+ content: "\f06a";
495
+ }
496
+ .fa-gift:before {
497
+ content: "\f06b";
498
+ }
499
+ .fa-leaf:before {
500
+ content: "\f06c";
501
+ }
502
+ .fa-fire:before {
503
+ content: "\f06d";
504
+ }
505
+ .fa-eye:before {
506
+ content: "\f06e";
507
+ }
508
+ .fa-eye-slash:before {
509
+ content: "\f070";
510
+ }
511
+ .fa-warning:before,
512
+ .fa-exclamation-triangle:before {
513
+ content: "\f071";
514
+ }
515
+ .fa-plane:before {
516
+ content: "\f072";
517
+ }
518
+ .fa-calendar:before {
519
+ content: "\f073";
520
+ }
521
+ .fa-random:before {
522
+ content: "\f074";
523
+ }
524
+ .fa-comment:before {
525
+ content: "\f075";
526
+ }
527
+ .fa-magnet:before {
528
+ content: "\f076";
529
+ }
530
+ .fa-chevron-up:before {
531
+ content: "\f077";
532
+ }
533
+ .fa-chevron-down:before {
534
+ content: "\f078";
535
+ }
536
+ .fa-retweet:before {
537
+ content: "\f079";
538
+ }
539
+ .fa-shopping-cart:before {
540
+ content: "\f07a";
541
+ }
542
+ .fa-folder:before {
543
+ content: "\f07b";
544
+ }
545
+ .fa-folder-open:before {
546
+ content: "\f07c";
547
+ }
548
+ .fa-arrows-v:before {
549
+ content: "\f07d";
550
+ }
551
+ .fa-arrows-h:before {
552
+ content: "\f07e";
553
+ }
554
+ .fa-bar-chart-o:before {
555
+ content: "\f080";
556
+ }
557
+ .fa-twitter-square:before {
558
+ content: "\f081";
559
+ }
560
+ .fa-facebook-square:before {
561
+ content: "\f082";
562
+ }
563
+ .fa-camera-retro:before {
564
+ content: "\f083";
565
+ }
566
+ .fa-key:before {
567
+ content: "\f084";
568
+ }
569
+ .fa-gears:before,
570
+ .fa-cogs:before {
571
+ content: "\f085";
572
+ }
573
+ .fa-comments:before {
574
+ content: "\f086";
575
+ }
576
+ .fa-thumbs-o-up:before {
577
+ content: "\f087";
578
+ }
579
+ .fa-thumbs-o-down:before {
580
+ content: "\f088";
581
+ }
582
+ .fa-star-half:before {
583
+ content: "\f089";
584
+ }
585
+ .fa-heart-o:before {
586
+ content: "\f08a";
587
+ }
588
+ .fa-sign-out:before {
589
+ content: "\f08b";
590
+ }
591
+ .fa-linkedin-square:before {
592
+ content: "\f08c";
593
+ }
594
+ .fa-thumb-tack:before {
595
+ content: "\f08d";
596
+ }
597
+ .fa-external-link:before {
598
+ content: "\f08e";
599
+ }
600
+ .fa-sign-in:before {
601
+ content: "\f090";
602
+ }
603
+ .fa-trophy:before {
604
+ content: "\f091";
605
+ }
606
+ .fa-github-square:before {
607
+ content: "\f092";
608
+ }
609
+ .fa-upload:before {
610
+ content: "\f093";
611
+ }
612
+ .fa-lemon-o:before {
613
+ content: "\f094";
614
+ }
615
+ .fa-phone:before {
616
+ content: "\f095";
617
+ }
618
+ .fa-square-o:before {
619
+ content: "\f096";
620
+ }
621
+ .fa-bookmark-o:before {
622
+ content: "\f097";
623
+ }
624
+ .fa-phone-square:before {
625
+ content: "\f098";
626
+ }
627
+ .fa-twitter:before {
628
+ content: "\f099";
629
+ }
630
+ .fa-facebook:before {
631
+ content: "\f09a";
632
+ }
633
+ .fa-github:before {
634
+ content: "\f09b";
635
+ }
636
+ .fa-unlock:before {
637
+ content: "\f09c";
638
+ }
639
+ .fa-credit-card:before {
640
+ content: "\f09d";
641
+ }
642
+ .fa-rss:before {
643
+ content: "\f09e";
644
+ }
645
+ .fa-hdd-o:before {
646
+ content: "\f0a0";
647
+ }
648
+ .fa-bullhorn:before {
649
+ content: "\f0a1";
650
+ }
651
+ .fa-bell:before {
652
+ content: "\f0f3";
653
+ }
654
+ .fa-certificate:before {
655
+ content: "\f0a3";
656
+ }
657
+ .fa-hand-o-right:before {
658
+ content: "\f0a4";
659
+ }
660
+ .fa-hand-o-left:before {
661
+ content: "\f0a5";
662
+ }
663
+ .fa-hand-o-up:before {
664
+ content: "\f0a6";
665
+ }
666
+ .fa-hand-o-down:before {
667
+ content: "\f0a7";
668
+ }
669
+ .fa-arrow-circle-left:before {
670
+ content: "\f0a8";
671
+ }
672
+ .fa-arrow-circle-right:before {
673
+ content: "\f0a9";
674
+ }
675
+ .fa-arrow-circle-up:before {
676
+ content: "\f0aa";
677
+ }
678
+ .fa-arrow-circle-down:before {
679
+ content: "\f0ab";
680
+ }
681
+ .fa-globe:before {
682
+ content: "\f0ac";
683
+ }
684
+ .fa-wrench:before {
685
+ content: "\f0ad";
686
+ }
687
+ .fa-tasks:before {
688
+ content: "\f0ae";
689
+ }
690
+ .fa-filter:before {
691
+ content: "\f0b0";
692
+ }
693
+ .fa-briefcase:before {
694
+ content: "\f0b1";
695
+ }
696
+ .fa-arrows-alt:before {
697
+ content: "\f0b2";
698
+ }
699
+ .fa-group:before,
700
+ .fa-users:before {
701
+ content: "\f0c0";
702
+ }
703
+ .fa-chain:before,
704
+ .fa-link:before {
705
+ content: "\f0c1";
706
+ }
707
+ .fa-cloud:before {
708
+ content: "\f0c2";
709
+ }
710
+ .fa-flask:before {
711
+ content: "\f0c3";
712
+ }
713
+ .fa-cut:before,
714
+ .fa-scissors:before {
715
+ content: "\f0c4";
716
+ }
717
+ .fa-copy:before,
718
+ .fa-files-o:before {
719
+ content: "\f0c5";
720
+ }
721
+ .fa-paperclip:before {
722
+ content: "\f0c6";
723
+ }
724
+ .fa-save:before,
725
+ .fa-floppy-o:before {
726
+ content: "\f0c7";
727
+ }
728
+ .fa-square:before {
729
+ content: "\f0c8";
730
+ }
731
+ .fa-navicon:before,
732
+ .fa-reorder:before,
733
+ .fa-bars:before {
734
+ content: "\f0c9";
735
+ }
736
+ .fa-list-ul:before {
737
+ content: "\f0ca";
738
+ }
739
+ .fa-list-ol:before {
740
+ content: "\f0cb";
741
+ }
742
+ .fa-strikethrough:before {
743
+ content: "\f0cc";
744
+ }
745
+ .fa-underline:before {
746
+ content: "\f0cd";
747
+ }
748
+ .fa-table:before {
749
+ content: "\f0ce";
750
+ }
751
+ .fa-magic:before {
752
+ content: "\f0d0";
753
+ }
754
+ .fa-truck:before {
755
+ content: "\f0d1";
756
+ }
757
+ .fa-pinterest:before {
758
+ content: "\f0d2";
759
+ }
760
+ .fa-pinterest-square:before {
761
+ content: "\f0d3";
762
+ }
763
+ .fa-google-plus-square:before {
764
+ content: "\f0d4";
765
+ }
766
+ .fa-google-plus:before {
767
+ content: "\f0d5";
768
+ }
769
+ .fa-money:before {
770
+ content: "\f0d6";
771
+ }
772
+ .fa-caret-down:before {
773
+ content: "\f0d7";
774
+ }
775
+ .fa-caret-up:before {
776
+ content: "\f0d8";
777
+ }
778
+ .fa-caret-left:before {
779
+ content: "\f0d9";
780
+ }
781
+ .fa-caret-right:before {
782
+ content: "\f0da";
783
+ }
784
+ .fa-columns:before {
785
+ content: "\f0db";
786
+ }
787
+ .fa-unsorted:before,
788
+ .fa-sort:before {
789
+ content: "\f0dc";
790
+ }
791
+ .fa-sort-down:before,
792
+ .fa-sort-desc:before {
793
+ content: "\f0dd";
794
+ }
795
+ .fa-sort-up:before,
796
+ .fa-sort-asc:before {
797
+ content: "\f0de";
798
+ }
799
+ .fa-envelope:before {
800
+ content: "\f0e0";
801
+ }
802
+ .fa-linkedin:before {
803
+ content: "\f0e1";
804
+ }
805
+ .fa-rotate-left:before,
806
+ .fa-undo:before {
807
+ content: "\f0e2";
808
+ }
809
+ .fa-legal:before,
810
+ .fa-gavel:before {
811
+ content: "\f0e3";
812
+ }
813
+ .fa-dashboard:before,
814
+ .fa-tachometer:before {
815
+ content: "\f0e4";
816
+ }
817
+ .fa-comment-o:before {
818
+ content: "\f0e5";
819
+ }
820
+ .fa-comments-o:before {
821
+ content: "\f0e6";
822
+ }
823
+ .fa-flash:before,
824
+ .fa-bolt:before {
825
+ content: "\f0e7";
826
+ }
827
+ .fa-sitemap:before {
828
+ content: "\f0e8";
829
+ }
830
+ .fa-umbrella:before {
831
+ content: "\f0e9";
832
+ }
833
+ .fa-paste:before,
834
+ .fa-clipboard:before {
835
+ content: "\f0ea";
836
+ }
837
+ .fa-lightbulb-o:before {
838
+ content: "\f0eb";
839
+ }
840
+ .fa-exchange:before {
841
+ content: "\f0ec";
842
+ }
843
+ .fa-cloud-download:before {
844
+ content: "\f0ed";
845
+ }
846
+ .fa-cloud-upload:before {
847
+ content: "\f0ee";
848
+ }
849
+ .fa-user-md:before {
850
+ content: "\f0f0";
851
+ }
852
+ .fa-stethoscope:before {
853
+ content: "\f0f1";
854
+ }
855
+ .fa-suitcase:before {
856
+ content: "\f0f2";
857
+ }
858
+ .fa-bell-o:before {
859
+ content: "\f0a2";
860
+ }
861
+ .fa-coffee:before {
862
+ content: "\f0f4";
863
+ }
864
+ .fa-cutlery:before {
865
+ content: "\f0f5";
866
+ }
867
+ .fa-file-text-o:before {
868
+ content: "\f0f6";
869
+ }
870
+ .fa-building-o:before {
871
+ content: "\f0f7";
872
+ }
873
+ .fa-hospital-o:before {
874
+ content: "\f0f8";
875
+ }
876
+ .fa-ambulance:before {
877
+ content: "\f0f9";
878
+ }
879
+ .fa-medkit:before {
880
+ content: "\f0fa";
881
+ }
882
+ .fa-fighter-jet:before {
883
+ content: "\f0fb";
884
+ }
885
+ .fa-beer:before {
886
+ content: "\f0fc";
887
+ }
888
+ .fa-h-square:before {
889
+ content: "\f0fd";
890
+ }
891
+ .fa-plus-square:before {
892
+ content: "\f0fe";
893
+ }
894
+ .fa-angle-double-left:before {
895
+ content: "\f100";
896
+ }
897
+ .fa-angle-double-right:before {
898
+ content: "\f101";
899
+ }
900
+ .fa-angle-double-up:before {
901
+ content: "\f102";
902
+ }
903
+ .fa-angle-double-down:before {
904
+ content: "\f103";
905
+ }
906
+ .fa-angle-left:before {
907
+ content: "\f104";
908
+ }
909
+ .fa-angle-right:before {
910
+ content: "\f105";
911
+ }
912
+ .fa-angle-up:before {
913
+ content: "\f106";
914
+ }
915
+ .fa-angle-down:before {
916
+ content: "\f107";
917
+ }
918
+ .fa-desktop:before {
919
+ content: "\f108";
920
+ }
921
+ .fa-laptop:before {
922
+ content: "\f109";
923
+ }
924
+ .fa-tablet:before {
925
+ content: "\f10a";
926
+ }
927
+ .fa-mobile-phone:before,
928
+ .fa-mobile:before {
929
+ content: "\f10b";
930
+ }
931
+ .fa-circle-o:before {
932
+ content: "\f10c";
933
+ }
934
+ .fa-quote-left:before {
935
+ content: "\f10d";
936
+ }
937
+ .fa-quote-right:before {
938
+ content: "\f10e";
939
+ }
940
+ .fa-spinner:before {
941
+ content: "\f110";
942
+ }
943
+ .fa-circle:before {
944
+ content: "\f111";
945
+ }
946
+ .fa-mail-reply:before,
947
+ .fa-reply:before {
948
+ content: "\f112";
949
+ }
950
+ .fa-github-alt:before {
951
+ content: "\f113";
952
+ }
953
+ .fa-folder-o:before {
954
+ content: "\f114";
955
+ }
956
+ .fa-folder-open-o:before {
957
+ content: "\f115";
958
+ }
959
+ .fa-smile-o:before {
960
+ content: "\f118";
961
+ }
962
+ .fa-frown-o:before {
963
+ content: "\f119";
964
+ }
965
+ .fa-meh-o:before {
966
+ content: "\f11a";
967
+ }
968
+ .fa-gamepad:before {
969
+ content: "\f11b";
970
+ }
971
+ .fa-keyboard-o:before {
972
+ content: "\f11c";
973
+ }
974
+ .fa-flag-o:before {
975
+ content: "\f11d";
976
+ }
977
+ .fa-flag-checkered:before {
978
+ content: "\f11e";
979
+ }
980
+ .fa-terminal:before {
981
+ content: "\f120";
982
+ }
983
+ .fa-code:before {
984
+ content: "\f121";
985
+ }
986
+ .fa-mail-reply-all:before,
987
+ .fa-reply-all:before {
988
+ content: "\f122";
989
+ }
990
+ .fa-star-half-empty:before,
991
+ .fa-star-half-full:before,
992
+ .fa-star-half-o:before {
993
+ content: "\f123";
994
+ }
995
+ .fa-location-arrow:before {
996
+ content: "\f124";
997
+ }
998
+ .fa-crop:before {
999
+ content: "\f125";
1000
+ }
1001
+ .fa-code-fork:before {
1002
+ content: "\f126";
1003
+ }
1004
+ .fa-unlink:before,
1005
+ .fa-chain-broken:before {
1006
+ content: "\f127";
1007
+ }
1008
+ .fa-question:before {
1009
+ content: "\f128";
1010
+ }
1011
+ .fa-info:before {
1012
+ content: "\f129";
1013
+ }
1014
+ .fa-exclamation:before {
1015
+ content: "\f12a";
1016
+ }
1017
+ .fa-superscript:before {
1018
+ content: "\f12b";
1019
+ }
1020
+ .fa-subscript:before {
1021
+ content: "\f12c";
1022
+ }
1023
+ .fa-eraser:before {
1024
+ content: "\f12d";
1025
+ }
1026
+ .fa-puzzle-piece:before {
1027
+ content: "\f12e";
1028
+ }
1029
+ .fa-microphone:before {
1030
+ content: "\f130";
1031
+ }
1032
+ .fa-microphone-slash:before {
1033
+ content: "\f131";
1034
+ }
1035
+ .fa-shield:before {
1036
+ content: "\f132";
1037
+ }
1038
+ .fa-calendar-o:before {
1039
+ content: "\f133";
1040
+ }
1041
+ .fa-fire-extinguisher:before {
1042
+ content: "\f134";
1043
+ }
1044
+ .fa-rocket:before {
1045
+ content: "\f135";
1046
+ }
1047
+ .fa-maxcdn:before {
1048
+ content: "\f136";
1049
+ }
1050
+ .fa-chevron-circle-left:before {
1051
+ content: "\f137";
1052
+ }
1053
+ .fa-chevron-circle-right:before {
1054
+ content: "\f138";
1055
+ }
1056
+ .fa-chevron-circle-up:before {
1057
+ content: "\f139";
1058
+ }
1059
+ .fa-chevron-circle-down:before {
1060
+ content: "\f13a";
1061
+ }
1062
+ .fa-html5:before {
1063
+ content: "\f13b";
1064
+ }
1065
+ .fa-css3:before {
1066
+ content: "\f13c";
1067
+ }
1068
+ .fa-anchor:before {
1069
+ content: "\f13d";
1070
+ }
1071
+ .fa-unlock-alt:before {
1072
+ content: "\f13e";
1073
+ }
1074
+ .fa-bullseye:before {
1075
+ content: "\f140";
1076
+ }
1077
+ .fa-ellipsis-h:before {
1078
+ content: "\f141";
1079
+ }
1080
+ .fa-ellipsis-v:before {
1081
+ content: "\f142";
1082
+ }
1083
+ .fa-rss-square:before {
1084
+ content: "\f143";
1085
+ }
1086
+ .fa-play-circle:before {
1087
+ content: "\f144";
1088
+ }
1089
+ .fa-ticket:before {
1090
+ content: "\f145";
1091
+ }
1092
+ .fa-minus-square:before {
1093
+ content: "\f146";
1094
+ }
1095
+ .fa-minus-square-o:before {
1096
+ content: "\f147";
1097
+ }
1098
+ .fa-level-up:before {
1099
+ content: "\f148";
1100
+ }
1101
+ .fa-level-down:before {
1102
+ content: "\f149";
1103
+ }
1104
+ .fa-check-square:before {
1105
+ content: "\f14a";
1106
+ }
1107
+ .fa-pencil-square:before {
1108
+ content: "\f14b";
1109
+ }
1110
+ .fa-external-link-square:before {
1111
+ content: "\f14c";
1112
+ }
1113
+ .fa-share-square:before {
1114
+ content: "\f14d";
1115
+ }
1116
+ .fa-compass:before {
1117
+ content: "\f14e";
1118
+ }
1119
+ .fa-toggle-down:before,
1120
+ .fa-caret-square-o-down:before {
1121
+ content: "\f150";
1122
+ }
1123
+ .fa-toggle-up:before,
1124
+ .fa-caret-square-o-up:before {
1125
+ content: "\f151";
1126
+ }
1127
+ .fa-toggle-right:before,
1128
+ .fa-caret-square-o-right:before {
1129
+ content: "\f152";
1130
+ }
1131
+ .fa-euro:before,
1132
+ .fa-eur:before {
1133
+ content: "\f153";
1134
+ }
1135
+ .fa-gbp:before {
1136
+ content: "\f154";
1137
+ }
1138
+ .fa-dollar:before,
1139
+ .fa-usd:before {
1140
+ content: "\f155";
1141
+ }
1142
+ .fa-rupee:before,
1143
+ .fa-inr:before {
1144
+ content: "\f156";
1145
+ }
1146
+ .fa-cny:before,
1147
+ .fa-rmb:before,
1148
+ .fa-yen:before,
1149
+ .fa-jpy:before {
1150
+ content: "\f157";
1151
+ }
1152
+ .fa-ruble:before,
1153
+ .fa-rouble:before,
1154
+ .fa-rub:before {
1155
+ content: "\f158";
1156
+ }
1157
+ .fa-won:before,
1158
+ .fa-krw:before {
1159
+ content: "\f159";
1160
+ }
1161
+ .fa-bitcoin:before,
1162
+ .fa-btc:before {
1163
+ content: "\f15a";
1164
+ }
1165
+ .fa-file:before {
1166
+ content: "\f15b";
1167
+ }
1168
+ .fa-file-text:before {
1169
+ content: "\f15c";
1170
+ }
1171
+ .fa-sort-alpha-asc:before {
1172
+ content: "\f15d";
1173
+ }
1174
+ .fa-sort-alpha-desc:before {
1175
+ content: "\f15e";
1176
+ }
1177
+ .fa-sort-amount-asc:before {
1178
+ content: "\f160";
1179
+ }
1180
+ .fa-sort-amount-desc:before {
1181
+ content: "\f161";
1182
+ }
1183
+ .fa-sort-numeric-asc:before {
1184
+ content: "\f162";
1185
+ }
1186
+ .fa-sort-numeric-desc:before {
1187
+ content: "\f163";
1188
+ }
1189
+ .fa-thumbs-up:before {
1190
+ content: "\f164";
1191
+ }
1192
+ .fa-thumbs-down:before {
1193
+ content: "\f165";
1194
+ }
1195
+ .fa-youtube-square:before {
1196
+ content: "\f166";
1197
+ }
1198
+ .fa-youtube:before {
1199
+ content: "\f167";
1200
+ }
1201
+ .fa-xing:before {
1202
+ content: "\f168";
1203
+ }
1204
+ .fa-xing-square:before {
1205
+ content: "\f169";
1206
+ }
1207
+ .fa-youtube-play:before {
1208
+ content: "\f16a";
1209
+ }
1210
+ .fa-dropbox:before {
1211
+ content: "\f16b";
1212
+ }
1213
+ .fa-stack-overflow:before {
1214
+ content: "\f16c";
1215
+ }
1216
+ .fa-instagram:before {
1217
+ content: "\f16d";
1218
+ }
1219
+ .fa-flickr:before {
1220
+ content: "\f16e";
1221
+ }
1222
+ .fa-adn:before {
1223
+ content: "\f170";
1224
+ }
1225
+ .fa-bitbucket:before {
1226
+ content: "\f171";
1227
+ }
1228
+ .fa-bitbucket-square:before {
1229
+ content: "\f172";
1230
+ }
1231
+ .fa-tumblr:before {
1232
+ content: "\f173";
1233
+ }
1234
+ .fa-tumblr-square:before {
1235
+ content: "\f174";
1236
+ }
1237
+ .fa-long-arrow-down:before {
1238
+ content: "\f175";
1239
+ }
1240
+ .fa-long-arrow-up:before {
1241
+ content: "\f176";
1242
+ }
1243
+ .fa-long-arrow-left:before {
1244
+ content: "\f177";
1245
+ }
1246
+ .fa-long-arrow-right:before {
1247
+ content: "\f178";
1248
+ }
1249
+ .fa-apple:before {
1250
+ content: "\f179";
1251
+ }
1252
+ .fa-windows:before {
1253
+ content: "\f17a";
1254
+ }
1255
+ .fa-android:before {
1256
+ content: "\f17b";
1257
+ }
1258
+ .fa-linux:before {
1259
+ content: "\f17c";
1260
+ }
1261
+ .fa-dribbble:before {
1262
+ content: "\f17d";
1263
+ }
1264
+ .fa-skype:before {
1265
+ content: "\f17e";
1266
+ }
1267
+ .fa-foursquare:before {
1268
+ content: "\f180";
1269
+ }
1270
+ .fa-trello:before {
1271
+ content: "\f181";
1272
+ }
1273
+ .fa-female:before {
1274
+ content: "\f182";
1275
+ }
1276
+ .fa-male:before {
1277
+ content: "\f183";
1278
+ }
1279
+ .fa-gittip:before {
1280
+ content: "\f184";
1281
+ }
1282
+ .fa-sun-o:before {
1283
+ content: "\f185";
1284
+ }
1285
+ .fa-moon-o:before {
1286
+ content: "\f186";
1287
+ }
1288
+ .fa-archive:before {
1289
+ content: "\f187";
1290
+ }
1291
+ .fa-bug:before {
1292
+ content: "\f188";
1293
+ }
1294
+ .fa-vk:before {
1295
+ content: "\f189";
1296
+ }
1297
+ .fa-weibo:before {
1298
+ content: "\f18a";
1299
+ }
1300
+ .fa-renren:before {
1301
+ content: "\f18b";
1302
+ }
1303
+ .fa-pagelines:before {
1304
+ content: "\f18c";
1305
+ }
1306
+ .fa-stack-exchange:before {
1307
+ content: "\f18d";
1308
+ }
1309
+ .fa-arrow-circle-o-right:before {
1310
+ content: "\f18e";
1311
+ }
1312
+ .fa-arrow-circle-o-left:before {
1313
+ content: "\f190";
1314
+ }
1315
+ .fa-toggle-left:before,
1316
+ .fa-caret-square-o-left:before {
1317
+ content: "\f191";
1318
+ }
1319
+ .fa-dot-circle-o:before {
1320
+ content: "\f192";
1321
+ }
1322
+ .fa-wheelchair:before {
1323
+ content: "\f193";
1324
+ }
1325
+ .fa-vimeo-square:before {
1326
+ content: "\f194";
1327
+ }
1328
+ .fa-turkish-lira:before,
1329
+ .fa-try:before {
1330
+ content: "\f195";
1331
+ }
1332
+ .fa-plus-square-o:before {
1333
+ content: "\f196";
1334
+ }
1335
+ .fa-space-shuttle:before {
1336
+ content: "\f197";
1337
+ }
1338
+ .fa-slack:before {
1339
+ content: "\f198";
1340
+ }
1341
+ .fa-envelope-square:before {
1342
+ content: "\f199";
1343
+ }
1344
+ .fa-wordpress:before {
1345
+ content: "\f19a";
1346
+ }
1347
+ .fa-openid:before {
1348
+ content: "\f19b";
1349
+ }
1350
+ .fa-institution:before,
1351
+ .fa-bank:before,
1352
+ .fa-university:before {
1353
+ content: "\f19c";
1354
+ }
1355
+ .fa-mortar-board:before,
1356
+ .fa-graduation-cap:before {
1357
+ content: "\f19d";
1358
+ }
1359
+ .fa-yahoo:before {
1360
+ content: "\f19e";
1361
+ }
1362
+ .fa-google:before {
1363
+ content: "\f1a0";
1364
+ }
1365
+ .fa-reddit:before {
1366
+ content: "\f1a1";
1367
+ }
1368
+ .fa-reddit-square:before {
1369
+ content: "\f1a2";
1370
+ }
1371
+ .fa-stumbleupon-circle:before {
1372
+ content: "\f1a3";
1373
+ }
1374
+ .fa-stumbleupon:before {
1375
+ content: "\f1a4";
1376
+ }
1377
+ .fa-delicious:before {
1378
+ content: "\f1a5";
1379
+ }
1380
+ .fa-digg:before {
1381
+ content: "\f1a6";
1382
+ }
1383
+ .fa-pied-piper-square:before,
1384
+ .fa-pied-piper:before {
1385
+ content: "\f1a7";
1386
+ }
1387
+ .fa-pied-piper-alt:before {
1388
+ content: "\f1a8";
1389
+ }
1390
+ .fa-drupal:before {
1391
+ content: "\f1a9";
1392
+ }
1393
+ .fa-joomla:before {
1394
+ content: "\f1aa";
1395
+ }
1396
+ .fa-language:before {
1397
+ content: "\f1ab";
1398
+ }
1399
+ .fa-fax:before {
1400
+ content: "\f1ac";
1401
+ }
1402
+ .fa-building:before {
1403
+ content: "\f1ad";
1404
+ }
1405
+ .fa-child:before {
1406
+ content: "\f1ae";
1407
+ }
1408
+ .fa-paw:before {
1409
+ content: "\f1b0";
1410
+ }
1411
+ .fa-spoon:before {
1412
+ content: "\f1b1";
1413
+ }
1414
+ .fa-cube:before {
1415
+ content: "\f1b2";
1416
+ }
1417
+ .fa-cubes:before {
1418
+ content: "\f1b3";
1419
+ }
1420
+ .fa-behance:before {
1421
+ content: "\f1b4";
1422
+ }
1423
+ .fa-behance-square:before {
1424
+ content: "\f1b5";
1425
+ }
1426
+ .fa-steam:before {
1427
+ content: "\f1b6";
1428
+ }
1429
+ .fa-steam-square:before {
1430
+ content: "\f1b7";
1431
+ }
1432
+ .fa-recycle:before {
1433
+ content: "\f1b8";
1434
+ }
1435
+ .fa-automobile:before,
1436
+ .fa-car:before {
1437
+ content: "\f1b9";
1438
+ }
1439
+ .fa-cab:before,
1440
+ .fa-taxi:before {
1441
+ content: "\f1ba";
1442
+ }
1443
+ .fa-tree:before {
1444
+ content: "\f1bb";
1445
+ }
1446
+ .fa-spotify:before {
1447
+ content: "\f1bc";
1448
+ }
1449
+ .fa-deviantart:before {
1450
+ content: "\f1bd";
1451
+ }
1452
+ .fa-soundcloud:before {
1453
+ content: "\f1be";
1454
+ }
1455
+ .fa-database:before {
1456
+ content: "\f1c0";
1457
+ }
1458
+ .fa-file-pdf-o:before {
1459
+ content: "\f1c1";
1460
+ }
1461
+ .fa-file-word-o:before {
1462
+ content: "\f1c2";
1463
+ }
1464
+ .fa-file-excel-o:before {
1465
+ content: "\f1c3";
1466
+ }
1467
+ .fa-file-powerpoint-o:before {
1468
+ content: "\f1c4";
1469
+ }
1470
+ .fa-file-photo-o:before,
1471
+ .fa-file-picture-o:before,
1472
+ .fa-file-image-o:before {
1473
+ content: "\f1c5";
1474
+ }
1475
+ .fa-file-zip-o:before,
1476
+ .fa-file-archive-o:before {
1477
+ content: "\f1c6";
1478
+ }
1479
+ .fa-file-sound-o:before,
1480
+ .fa-file-audio-o:before {
1481
+ content: "\f1c7";
1482
+ }
1483
+ .fa-file-movie-o:before,
1484
+ .fa-file-video-o:before {
1485
+ content: "\f1c8";
1486
+ }
1487
+ .fa-file-code-o:before {
1488
+ content: "\f1c9";
1489
+ }
1490
+ .fa-vine:before {
1491
+ content: "\f1ca";
1492
+ }
1493
+ .fa-codepen:before {
1494
+ content: "\f1cb";
1495
+ }
1496
+ .fa-jsfiddle:before {
1497
+ content: "\f1cc";
1498
+ }
1499
+ .fa-life-bouy:before,
1500
+ .fa-life-saver:before,
1501
+ .fa-support:before,
1502
+ .fa-life-ring:before {
1503
+ content: "\f1cd";
1504
+ }
1505
+ .fa-circle-o-notch:before {
1506
+ content: "\f1ce";
1507
+ }
1508
+ .fa-ra:before,
1509
+ .fa-rebel:before {
1510
+ content: "\f1d0";
1511
+ }
1512
+ .fa-ge:before,
1513
+ .fa-empire:before {
1514
+ content: "\f1d1";
1515
+ }
1516
+ .fa-git-square:before {
1517
+ content: "\f1d2";
1518
+ }
1519
+ .fa-git:before {
1520
+ content: "\f1d3";
1521
+ }
1522
+ .fa-hacker-news:before {
1523
+ content: "\f1d4";
1524
+ }
1525
+ .fa-tencent-weibo:before {
1526
+ content: "\f1d5";
1527
+ }
1528
+ .fa-qq:before {
1529
+ content: "\f1d6";
1530
+ }
1531
+ .fa-wechat:before,
1532
+ .fa-weixin:before {
1533
+ content: "\f1d7";
1534
+ }
1535
+ .fa-send:before,
1536
+ .fa-paper-plane:before {
1537
+ content: "\f1d8";
1538
+ }
1539
+ .fa-send-o:before,
1540
+ .fa-paper-plane-o:before {
1541
+ content: "\f1d9";
1542
+ }
1543
+ .fa-history:before {
1544
+ content: "\f1da";
1545
+ }
1546
+ .fa-circle-thin:before {
1547
+ content: "\f1db";
1548
+ }
1549
+ .fa-header:before {
1550
+ content: "\f1dc";
1551
+ }
1552
+ .fa-paragraph:before {
1553
+ content: "\f1dd";
1554
+ }
1555
+ .fa-sliders:before {
1556
+ content: "\f1de";
1557
+ }
1558
+ .fa-share-alt:before {
1559
+ content: "\f1e0";
1560
+ }
1561
+ .fa-share-alt-square:before {
1562
+ content: "\f1e1";
1563
+ }
1564
+ .fa-bomb:before {
1565
+ content: "\f1e2";
1566
+ }
dist/assets/css/fonts/FontAwesome.otf ADDED
Binary file
dist/assets/css/fonts/fontawesome-webfont.eot ADDED
Binary file
dist/assets/css/fonts/fontawesome-webfont.svg ADDED
@@ -0,0 +1,504 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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></metadata>
5
+ <defs>
6
+ <font id="fontawesomeregular" horiz-adv-x="1536" >
7
+ <font-face units-per-em="1792" ascent="1536" descent="-256" />
8
+ <missing-glyph horiz-adv-x="448" />
9
+ <glyph unicode=" " horiz-adv-x="448" />
10
+ <glyph unicode="&#x09;" horiz-adv-x="448" />
11
+ <glyph unicode="&#xa0;" horiz-adv-x="448" />
12
+ <glyph unicode="&#xa8;" horiz-adv-x="1792" />
13
+ <glyph unicode="&#xa9;" horiz-adv-x="1792" />
14
+ <glyph unicode="&#xae;" horiz-adv-x="1792" />
15
+ <glyph unicode="&#xb4;" horiz-adv-x="1792" />
16
+ <glyph unicode="&#xc6;" horiz-adv-x="1792" />
17
+ <glyph unicode="&#xd8;" horiz-adv-x="1792" />
18
+ <glyph unicode="&#x2000;" horiz-adv-x="768" />
19
+ <glyph unicode="&#x2001;" horiz-adv-x="1537" />
20
+ <glyph unicode="&#x2002;" horiz-adv-x="768" />
21
+ <glyph unicode="&#x2003;" horiz-adv-x="1537" />
22
+ <glyph unicode="&#x2004;" horiz-adv-x="512" />
23
+ <glyph unicode="&#x2005;" horiz-adv-x="384" />
24
+ <glyph unicode="&#x2006;" horiz-adv-x="256" />
25
+ <glyph unicode="&#x2007;" horiz-adv-x="256" />
26
+ <glyph unicode="&#x2008;" horiz-adv-x="192" />
27
+ <glyph unicode="&#x2009;" horiz-adv-x="307" />
28
+ <glyph unicode="&#x200a;" horiz-adv-x="85" />
29
+ <glyph unicode="&#x202f;" horiz-adv-x="307" />
30
+ <glyph unicode="&#x205f;" horiz-adv-x="384" />
31
+ <glyph unicode="&#x2122;" horiz-adv-x="1792" />
32
+ <glyph unicode="&#x221e;" horiz-adv-x="1792" />
33
+ <glyph unicode="&#x2260;" horiz-adv-x="1792" />
34
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
35
+ <glyph unicode="&#xf000;" horiz-adv-x="1792" d="M93 1350q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78z" />
36
+ <glyph unicode="&#xf001;" d="M0 -64q0 50 34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5 q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89z" />
37
+ <glyph unicode="&#xf002;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
38
+ <glyph unicode="&#xf003;" horiz-adv-x="1792" d="M0 32v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5 t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768zM128 1120q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317 q54 43 100.5 115.5t46.5 131.5v11v13.5t-0.5 13t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5z" />
39
+ <glyph unicode="&#xf004;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z " />
40
+ <glyph unicode="&#xf005;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48z" />
41
+ <glyph unicode="&#xf006;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354 q-25 27 -25 48zM221 829l306 -297l-73 -421l378 199l377 -199l-72 421l306 297l-422 62l-189 382l-189 -382z" />
42
+ <glyph unicode="&#xf007;" horiz-adv-x="1408" d="M0 131q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5 h-874q-121 0 -194 69.5t-73 189.5zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5z" />
43
+ <glyph unicode="&#xf008;" horiz-adv-x="1920" d="M0 -96v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 64v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM128 320q0 -26 19 -45t45 -19h128 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19 h-128q-26 0 -45 -19t-19 -45v-128zM512 -64q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM512 704q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM1536 64 v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM1536 320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128z" />
44
+ <glyph unicode="&#xf009;" horiz-adv-x="1664" d="M0 128v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM0 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 128v384q0 52 38 90t90 38h512q52 0 90 -38 t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90z" />
45
+ <glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 608v192 q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
46
+ <glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68z" />
47
+ <glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M121 608q0 40 28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68z" />
48
+ <glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M110 214q0 40 28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-294 -294l294 -294q28 -28 28 -68t-28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294 q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68z" />
49
+ <glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
50
+ <glyph unicode="&#xf010;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5z" />
51
+ <glyph unicode="&#xf011;" d="M0 640q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181 q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298zM640 768v640q0 52 38 90t90 38t90 -38t38 -90v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90z" />
52
+ <glyph unicode="&#xf012;" horiz-adv-x="1792" d="M0 -96v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM384 -96v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM768 -96v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576 q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 -96v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1536 -96v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23z" />
53
+ <glyph unicode="&#xf013;" d="M0 531v222q0 12 8 23t19 13l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10 q129 -119 165 -170q7 -8 7 -22q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108 q-44 -23 -91 -38q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5z M512 640q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
54
+ <glyph unicode="&#xf014;" horiz-adv-x="1408" d="M0 1056v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23zM256 76q0 -22 7 -40.5 t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5v948h-896v-948zM384 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM640 224v576q0 14 9 23t23 9h64 q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM896 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23z" />
55
+ <glyph unicode="&#xf015;" horiz-adv-x="1664" d="M26 636.5q1 13.5 11 21.5l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5zM256 64 v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45z" />
56
+ <glyph unicode="&#xf016;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22 v-376z" />
57
+ <glyph unicode="&#xf017;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 544v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
58
+ <glyph unicode="&#xf018;" horiz-adv-x="1920" d="M50 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256 q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73zM809 540q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4z" />
59
+ <glyph unicode="&#xf019;" horiz-adv-x="1664" d="M0 96v320q0 40 28 68t68 28h465l135 -136q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 985q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39q17 -41 -14 -70 l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70zM1152 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
60
+ <glyph unicode="&#xf01a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM418 620q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35z" />
61
+ <glyph unicode="&#xf01b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM416 672q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23z" />
62
+ <glyph unicode="&#xf01c;" d="M0 64v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552q25 -61 25 -123v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM197 576h316l95 -192h320l95 192h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8 t-2.5 -8z" />
63
+ <glyph unicode="&#xf01d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 320v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55t-32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56z" />
64
+ <glyph unicode="&#xf01e;" d="M0 640q0 156 61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5 t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298z" />
65
+ <glyph unicode="&#xf021;" d="M0 0v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129 q-19 -19 -45 -19t-45 19t-19 45zM18 800v7q65 268 270 434.5t480 166.5q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179 q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5z" />
66
+ <glyph unicode="&#xf022;" horiz-adv-x="1792" d="M0 160v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832z M256 288v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 544v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z M256 800v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 288v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z M512 544v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5zM512 800v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z " />
67
+ <glyph unicode="&#xf023;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192z" />
68
+ <glyph unicode="&#xf024;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110zM320 320v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19 q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45z" />
69
+ <glyph unicode="&#xf025;" horiz-adv-x="1664" d="M0 650q0 151 67 291t179 242.5t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32 q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32 q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314z" />
70
+ <glyph unicode="&#xf026;" horiz-adv-x="768" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45z" />
71
+ <glyph unicode="&#xf027;" horiz-adv-x="1152" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5z" />
72
+ <glyph unicode="&#xf028;" horiz-adv-x="1664" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5zM1008 228q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5 q140 -59 225 -188.5t85 -282.5t-85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45zM1109 -7q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19 q13 0 26 -5q211 -91 338 -283.5t127 -422.5t-127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45z" />
73
+ <glyph unicode="&#xf029;" horiz-adv-x="1408" d="M0 0v640h640v-640h-640zM0 768v640h640v-640h-640zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM256 256v128h128v-128h-128zM256 1024v128h128v-128h-128zM768 0v640h384v-128h128v128h128v-384h-384v128h-128v-384h-128zM768 768v640h640v-640h-640z M896 896h384v384h-384v-384zM1024 0v128h128v-128h-128zM1024 1024v128h128v-128h-128zM1280 0v128h128v-128h-128z" />
74
+ <glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M0 0v1408h63v-1408h-63zM94 1v1407h32v-1407h-32zM189 1v1407h31v-1407h-31zM346 1v1407h31v-1407h-31zM472 1v1407h62v-1407h-62zM629 1v1407h31v-1407h-31zM692 1v1407h31v-1407h-31zM755 1v1407h31v-1407h-31zM880 1v1407h63v-1407h-63zM1037 1v1407h63v-1407h-63z M1163 1v1407h63v-1407h-63zM1289 1v1407h63v-1407h-63zM1383 1v1407h63v-1407h-63zM1541 1v1407h94v-1407h-94zM1666 1v1407h32v-1407h-32zM1729 0v1408h63v-1408h-63z" />
75
+ <glyph unicode="&#xf02b;" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
76
+ <glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5zM704 1408h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5z" />
77
+ <glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M10 184q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23 t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57 q38 -15 59 -43q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5zM575 1056 q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
78
+ <glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62z" />
79
+ <glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M0 160v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-224 q-13 0 -22.5 9.5t-9.5 22.5zM384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1408 576q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
80
+ <glyph unicode="&#xf030;" horiz-adv-x="1920" d="M0 128v896q0 106 75 181t181 75h224l51 136q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181zM512 576q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM672 576q0 119 84.5 203.5t203.5 84.5t203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5z" />
81
+ <glyph unicode="&#xf031;" horiz-adv-x="1664" d="M0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8 t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27 q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14zM555 527q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452z" />
82
+ <glyph unicode="&#xf032;" horiz-adv-x="1408" d="M0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5 t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12zM533 1292q0 -50 4 -151t4 -152q0 -27 -0.5 -80 t-0.5 -79q0 -46 1 -69q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13zM538.5 165q0.5 -37 4.5 -83.5t12 -66.5q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25 t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5z" />
83
+ <glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
84
+ <glyph unicode="&#xf034;" horiz-adv-x="1792" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5 q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9 t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44zM1414 109.5q9 18.5 42 18.5h80v1024 h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5z" />
85
+ <glyph unicode="&#xf035;" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1 t-103 1t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29 t78 27q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44zM5 -64q0 28 26 49q4 3 36 30t59.5 49 t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5q12 0 42 -19.5t57.5 -41.5t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5 t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49z" />
86
+ <glyph unicode="&#xf036;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1536 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
87
+ <glyph unicode="&#xf037;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h896 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45z" />
88
+ <glyph unicode="&#xf038;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h1280 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
89
+ <glyph unicode="&#xf039;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45z" />
90
+ <glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 416v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5zM0 800v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192 q-13 0 -22.5 9.5t-9.5 22.5zM384 32v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 416v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 800v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 1184v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5z" />
91
+ <glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5 t-9.5 22.5zM32 704q0 14 9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088 q-13 0 -22.5 9.5t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
92
+ <glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 416v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23t-9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5z M0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5 t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
93
+ <glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5q39 -17 39 -59v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5 t-84.5 203.5z" />
94
+ <glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v192l320 320l160 -160l512 512l416 -416v-448h-1408zM256 960q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
95
+ <glyph unicode="&#xf040;" d="M0 -128v416l832 832l416 -416l-832 -832h-416zM128 128h128v-128h107l91 91l-235 235l-91 -91v-107zM298 384q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17zM896 1184l166 165q36 38 90 38q53 0 91 -38l235 -234 q37 -39 37 -91q0 -53 -37 -90l-166 -166z" />
96
+ <glyph unicode="&#xf041;" horiz-adv-x="1024" d="M0 896q0 212 150 362t362 150t362 -150t150 -362q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179zM256 896q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
97
+ <glyph unicode="&#xf042;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73v1088q-148 0 -273 -73t-198 -198t-73 -273z" />
98
+ <glyph unicode="&#xf043;" horiz-adv-x="1024" d="M0 512q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275q0 -212 -150 -362t-362 -150t-362 150t-150 362zM256 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69z" />
99
+ <glyph unicode="&#xf044;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29v-190 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM640 256v288l672 672l288 -288l-672 -672h-288zM736 448h96v-96h56l116 116l-152 152l-116 -116v-56zM944 688q16 -16 33 1l350 350q17 17 1 33t-33 -1l-350 -350q-17 -17 -1 -33zM1376 1280l92 92 q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68l-92 -92z" />
100
+ <glyph unicode="&#xf045;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h255q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29v-259 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM256 704q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45l-384 -384 q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5t-38.5 114t-17.5 122z" />
101
+ <glyph unicode="&#xf046;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3 q20 -8 20 -29v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM257 768q0 33 24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110q24 -24 24 -57t-24 -57l-814 -814q-24 -24 -57 -24t-57 24l-430 430 q-24 24 -24 57z" />
102
+ <glyph unicode="&#xf047;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256 q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
103
+ <glyph unicode="&#xf048;" horiz-adv-x="1024" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45z" />
104
+ <glyph unicode="&#xf049;" horiz-adv-x="1792" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-710q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45 t-45 -19h-128q-26 0 -45 19t-19 45z" />
105
+ <glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M122 640q0 26 19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45z" />
106
+ <glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M0 -96v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31l-1328 -738q-23 -13 -39.5 -3t-16.5 36z" />
107
+ <glyph unicode="&#xf04c;" d="M0 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM896 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45z" />
108
+ <glyph unicode="&#xf04d;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
109
+ <glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
110
+ <glyph unicode="&#xf050;" horiz-adv-x="1792" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32v710 q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
111
+ <glyph unicode="&#xf051;" horiz-adv-x="1024" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
112
+ <glyph unicode="&#xf052;" horiz-adv-x="1538" d="M1 64v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM1 525q-6 13 13 32l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13z" />
113
+ <glyph unicode="&#xf053;" horiz-adv-x="1280" d="M154 704q0 26 19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45z" />
114
+ <glyph unicode="&#xf054;" horiz-adv-x="1280" d="M90 128q0 26 19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45z" />
115
+ <glyph unicode="&#xf055;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19 t19 45v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128z" />
116
+ <glyph unicode="&#xf056;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19 t-19 -45v-128z" />
117
+ <glyph unicode="&#xf057;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM387 414q0 -27 19 -46l90 -90q19 -19 46 -19q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19 l90 90q19 19 19 46q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45z" />
118
+ <glyph unicode="&#xf058;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 621q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45q0 28 -18 46l-91 90 q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46z" />
119
+ <glyph unicode="&#xf059;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM417 939q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26 t37.5 -59q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213zM640 160q0 -14 9 -23t23 -9 h192q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192z" />
120
+ <glyph unicode="&#xf05a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320 q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160zM640 1056q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160z" />
121
+ <glyph unicode="&#xf05b;" d="M0 576v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143 q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45zM339 512q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5h-109q-26 0 -45 19 t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109z" />
122
+ <glyph unicode="&#xf05c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM429 480q0 13 10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23l-137 -137l137 -137q10 -10 10 -23t-10 -23l-146 -146q-10 -10 -23 -10t-23 10l-137 137 l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23z" />
123
+ <glyph unicode="&#xf05d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM346 640q0 26 19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45z" />
124
+ <glyph unicode="&#xf05e;" d="M0 643q0 157 61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5t-61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61t-245 164t-163.5 246t-61 300zM224 643q0 -162 89 -299l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199 t-73 -274zM471 185q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5q0 161 -87 295z" />
125
+ <glyph unicode="&#xf060;" d="M64 576q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5t32.5 -90.5v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90 z" />
126
+ <glyph unicode="&#xf061;" d="M0 512v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5z" />
127
+ <glyph unicode="&#xf062;" horiz-adv-x="1664" d="M53 565q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651q37 -39 37 -91q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75 q-38 38 -38 90z" />
128
+ <glyph unicode="&#xf063;" horiz-adv-x="1664" d="M53 704q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90z" />
129
+ <glyph unicode="&#xf064;" horiz-adv-x="1792" d="M0 416q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45t-19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123 q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22t-13.5 30t-10.5 24q-127 285 -127 451z" />
130
+ <glyph unicode="&#xf065;" d="M0 -64v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45zM781 800q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448 q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
131
+ <glyph unicode="&#xf066;" d="M13 32q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23zM768 704v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10 t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45z" />
132
+ <glyph unicode="&#xf067;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68z" />
133
+ <glyph unicode="&#xf068;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68z" />
134
+ <glyph unicode="&#xf069;" horiz-adv-x="1664" d="M122.5 408.5q13.5 51.5 59.5 77.5l266 154l-266 154q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5 l-266 -154l266 -154q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5z" />
135
+ <glyph unicode="&#xf06a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM624 1126l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5l18 621q0 12 -10 18 q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18zM640 161q0 -13 10 -23t23 -10h192q13 0 22 9.5t9 23.5v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190z" />
136
+ <glyph unicode="&#xf06b;" d="M0 544v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68 t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23zM376 1120q0 -40 28 -68t68 -28h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68zM608 180q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5v56v468v192h-320v-192v-468v-56zM870 1024h194q40 0 68 28 t28 68t-28 68t-68 28q-43 0 -69 -31z" />
137
+ <glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M0 121q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96 q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5zM384 448q0 -26 19 -45t45 -19q24 0 45 19 q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45t-19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45z" />
138
+ <glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M0 -160q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64zM256 640q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100 t113.5 -122.5t72.5 -150.5t27.5 -184q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184z" />
139
+ <glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M0 576q0 34 20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69t-20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69zM128 576q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5q-152 236 -381 353 q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5z" />
140
+ <glyph unicode="&#xf070;" horiz-adv-x="1792" d="M0 576q0 38 20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5q16 -10 16 -27q0 -7 -1 -9q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87 q-143 65 -263.5 173t-208.5 245q-20 31 -20 69zM128 576q167 -258 427 -375l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5zM896 0l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69t-20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95zM1056 286l280 502q8 -45 8 -84q0 -139 -79 -253.5t-209 -164.5z" />
141
+ <glyph unicode="&#xf071;" horiz-adv-x="1792" d="M16 61l768 1408q17 31 47 49t65 18t65 -18t47 -49l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126zM752 992l17 -457q0 -10 10 -16.5t24 -6.5h185q14 0 23.5 6.5t10.5 16.5l18 459q0 12 -10 19q-13 11 -24 11h-220 q-11 0 -24 -11q-10 -7 -10 -21zM768 161q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190z" />
142
+ <glyph unicode="&#xf072;" horiz-adv-x="1408" d="M0 477q-1 13 9 25l96 97q9 9 23 9q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16 l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23z" />
143
+ <glyph unicode="&#xf073;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h288v288h-288v-288zM128 224 h288v320h-288v-320zM128 608h288v288h-288v-288zM384 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM480 -128h320v288h-320v-288zM480 224h320v320h-320v-320zM480 608h320v288h-320 v-288zM864 -128h320v288h-320v-288zM864 224h320v320h-320v-320zM864 608h320v288h-320v-288zM1152 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM1248 -128h288v288h-288v-288z M1248 224h288v320h-288v-320zM1248 608h288v288h-288v-288z" />
144
+ <glyph unicode="&#xf074;" horiz-adv-x="1792" d="M0 160v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23zM0 1056v192q0 14 9 23t23 9h224q250 0 410 -225q-60 -92 -137 -273q-22 45 -37 72.5 t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23zM743 353q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 q-32 0 -85 -0.5t-81 -1t-73 1t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5z" />
145
+ <glyph unicode="&#xf075;" horiz-adv-x="1792" d="M0 640q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5 t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281z" />
146
+ <glyph unicode="&#xf076;" d="M0 576v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5 t-98.5 362zM0 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45zM1024 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45z" />
147
+ <glyph unicode="&#xf077;" horiz-adv-x="1792" d="M90 250.5q0 26.5 19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5z" />
148
+ <glyph unicode="&#xf078;" horiz-adv-x="1792" d="M90 773.5q0 26.5 19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5z" />
149
+ <glyph unicode="&#xf079;" horiz-adv-x="1920" d="M0 704q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45z M640 1120q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20z " />
150
+ <glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M0 1216q0 26 19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024 q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45zM384 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
151
+ <glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158z" />
152
+ <glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5t-0.5 12.5zM73 56q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43 q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43z" />
153
+ <glyph unicode="&#xf07d;" horiz-adv-x="768" d="M64 64q0 26 19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45z" />
154
+ <glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
155
+ <glyph unicode="&#xf080;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v384h256v-384h-256zM640 128v896h256v-896h-256zM1024 128v640h256v-640h-256zM1408 128v1024h256v-1024h-256z" />
156
+ <glyph unicode="&#xf081;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 286q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109 q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4q21 -63 74.5 -104 t121.5 -42q-116 -90 -261 -90q-26 0 -50 3z" />
157
+ <glyph unicode="&#xf082;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544 q-119 0 -203.5 84.5t-84.5 203.5z" />
158
+ <glyph unicode="&#xf083;" horiz-adv-x="1792" d="M0 0v1280q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5zM128 0h1536v128h-1536v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM256 1216h384v128h-384v-128zM512 574 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM640 574q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM736 576q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9 t9 23t-9 23t-23 9q-66 0 -113 -47t-47 -113z" />
159
+ <glyph unicode="&#xf084;" horiz-adv-x="1792" d="M0 752q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41q0 -17 -49 -66t-66 -49 q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5zM192 768q0 -80 56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56 t56 136t-56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136z" />
160
+ <glyph unicode="&#xf085;" horiz-adv-x="1920" d="M0 549v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8 q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90 q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5zM384 640q0 -106 75 -181t181 -75 t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181zM1152 58v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31 v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1152 1082v140q0 16 149 31q13 29 30 52 q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71 q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1408 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90zM1408 1152q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90z" />
161
+ <glyph unicode="&#xf086;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM616 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5 t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
162
+ <glyph unicode="&#xf087;" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5 t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85 t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640z" />
163
+ <glyph unicode="&#xf088;" d="M0 512v640q0 53 37.5 90.5t90.5 37.5h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186 q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5zM128 1088q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 512h32q16 0 35.5 -9 t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5 t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640z" />
164
+ <glyph unicode="&#xf089;" horiz-adv-x="896" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48z" />
165
+ <glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z M128 940q0 -168 187 -355l581 -560l580 559q188 188 188 356q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5 t-21.5 -143z" />
166
+ <glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5q0 -4 1 -20t0.5 -26.5t-3 -23.5 t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5zM384 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45z" />
167
+ <glyph unicode="&#xf08c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM223 1030q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86z M237 122h231v694h-231v-694zM595 122h231v388q0 38 7 56q15 35 45 59.5t74 24.5q116 0 116 -157v-371h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694z" />
168
+ <glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M0 320q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19 t-19 45zM416 672q0 -14 9 -23t23 -9t23 9t9 23v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448z" />
169
+ <glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832 q-119 0 -203.5 84.5t-84.5 203.5zM685 576q0 13 10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
170
+ <glyph unicode="&#xf090;" d="M0 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45zM894.5 78.5q0.5 10.5 3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113 t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5q0 4 -1 20t-0.5 26.5z" />
171
+ <glyph unicode="&#xf091;" horiz-adv-x="1664" d="M0 928v128q0 40 28 68t68 28h288v96q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91t97.5 -37q75 0 133.5 -45.5 t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143zM128 928q0 -78 94.5 -162t235.5 -113q-74 162 -74 371 h-256v-96zM1206 653q141 29 235.5 113t94.5 162v96h-256q0 -209 -74 -371z" />
172
+ <glyph unicode="&#xf092;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204 q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52 t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5h-224q-119 0 -203.5 84.5t-84.5 203.5zM271 315q3 5 13 2 q10 -5 7 -12q-5 -7 -13 -2q-10 5 -7 12zM304 290q6 6 16 -3q9 -11 2 -16q-6 -7 -16 3q-9 11 -2 16zM335 233q-9 13 0 18q9 7 17 -6q9 -12 0 -19q-8 -6 -17 7zM370 206q8 9 20 -3q12 -11 4 -19q-8 -9 -20 3q-13 11 -4 19zM419 168q4 11 19 7q16 -5 13 -16q-4 -12 -19 -6 q-17 4 -13 15zM481 154q0 11 16 11q17 2 17 -11q0 -11 -16 -11q-17 -2 -17 11zM540 158q-2 12 14 15q16 2 18 -9q2 -10 -14 -14t-18 8z" />
173
+ <glyph unicode="&#xf093;" horiz-adv-x="1664" d="M0 -32v320q0 40 28 68t68 28h427q21 -56 70.5 -92t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 936q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69q-17 -40 -59 -40 h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40zM1152 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
174
+ <glyph unicode="&#xf094;" d="M0 433q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5q0 -165 -70 -327.5 t-196 -288t-281 -180.5q-124 -44 -326 -44q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5zM128 434q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5 q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24 q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5z" />
175
+ <glyph unicode="&#xf095;" horiz-adv-x="1408" d="M0 1069q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235 t235 -174q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5 t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5z" />
176
+ <glyph unicode="&#xf096;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832z" />
177
+ <glyph unicode="&#xf097;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62zM128 38l423 406l89 85l89 -85l423 -406 v1242h-1024v-1242z" />
178
+ <glyph unicode="&#xf098;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 905q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5 q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5 t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5z" />
179
+ <glyph unicode="&#xf099;" horiz-adv-x="1664" d="M44 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5 q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145z" />
180
+ <glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M95 631v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255z" />
181
+ <glyph unicode="&#xf09b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44 l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3 q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5z" />
182
+ <glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M0 96v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68z" />
183
+ <glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v608h-1664v-608zM128 1024h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600 q-13 0 -22.5 -9.5t-9.5 -22.5v-224zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
184
+ <glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M0 192q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 697v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5t259 -181.5q114 -113 181.5 -259t80.5 -306q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5 t-391.5 184.5q-25 2 -41.5 20t-16.5 43zM0 1201v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294q187 -186 294 -425.5t120 -501.5q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102 q-25 1 -42.5 19.5t-17.5 43.5z" />
185
+ <glyph unicode="&#xf0a0;" d="M0 160v320q0 25 16 75l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-1216 q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM880 320q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1136 320q0 33 23.5 56.5t56.5 23.5 t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5z" />
186
+ <glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M0 672v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50 t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113zM768 633q377 -42 768 -341v954q-394 -302 -768 -343v-270z" />
187
+ <glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
188
+ <glyph unicode="&#xf0a3;" d="M2 435q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70l-53 -186l188 -48 q40 -10 52 -51q10 -42 -20 -70l-138 -135l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53 q-41 -12 -70 19q-31 29 -19 70l53 186l-188 48q-40 10 -52 51z" />
189
+ <glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179q0 -105 -75.5 -181 t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q72 0 167 -32 t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139 q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106q-69 -57 -140 -57h-32v-640z" />
190
+ <glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M0 769q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5v-640 q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181zM128 768q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119 q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5 t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5t-39 -89.5zM1536 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
191
+ <glyph unicode="&#xf0a6;" d="M0 640q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5t-90.5 -37.5h-640 q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5zM128 640q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140 v-32h640v32q0 72 32 167t64 193.5t32 179.5q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576q-20 0 -48.5 15t-55 33t-68 33t-84.5 15 q-67 0 -97.5 -44.5t-30.5 -115.5zM1152 -64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
192
+ <glyph unicode="&#xf0a7;" d="M0 640q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317q0 -142 -77.5 -230t-217.5 -87 l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5zM128 640q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33t55 33t48.5 15v-576q0 -50 38.5 -89 t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112 q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5zM1152 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
193
+ <glyph unicode="&#xf0a8;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM251 640q0 -27 18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45z" />
194
+ <glyph unicode="&#xf0a9;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM256 576q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18 l362 362l91 91q18 18 18 45t-18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128z" />
195
+ <glyph unicode="&#xf0aa;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 641q0 -27 18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19 t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45t-18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45z" />
196
+ <glyph unicode="&#xf0ab;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 639q0 -27 18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45t-18 45l-91 91 q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45z" />
197
+ <glyph unicode="&#xf0ac;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM226 979q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18 q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13 q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5 t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13 q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25 t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5 t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4 q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5q15 10 -7 16q-17 5 -43 -12q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8 q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5 q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26 q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5 q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14 q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5 q-16 0 -22 -1q-146 -80 -235 -222zM877 26q0 -6 2 -16q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7 t-10 1.5t-11.5 -7q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5z" />
198
+ <glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M21 0q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90zM256 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM768 960q0 185 131.5 316.5t316.5 131.5q58 0 121.5 -16.5 t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25q0 -39 -23 -106q-47 -134 -164.5 -217.5t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5z" />
199
+ <glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M0 64v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 576v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1088v256q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM640 640h1024v128h-1024v-128zM1024 128h640v128h-640v-128zM1280 1152h384v128h-384v-128z" />
200
+ <glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M5 1241q17 39 59 39h1280q42 0 59 -39q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70z" />
201
+ <glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M0 160v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 736v384q0 66 47 113t113 47h352v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113v-384h-1792z M640 1280h512v128h-512v-128zM768 512v128h256v-128h-256z" />
202
+ <glyph unicode="&#xf0b2;" d="M0 -64v448q0 42 40 59q39 17 69 -14l144 -144l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45 v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19l-144 144l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19 t-19 45z" />
203
+ <glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M0 671q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5zM128 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM256 3q0 53 3.5 103.5 t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5 zM576 896q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1280 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM1327 640q81 117 81 256q0 29 -5 66q66 -23 133 -23 q59 0 119 21.5t97.5 42.5t43.5 21q124 0 124 -353q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128z" />
204
+ <glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l206 -207q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204t-85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88 q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204zM208 1088q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15t21.5 -21.5t18.5 -19q33 31 33 73 q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67zM911 383q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26l147 146q28 28 28 67q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5 q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73z" />
205
+ <glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M0 448q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z" />
206
+ <glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M115.5 -64.5q-34.5 63.5 21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399l503 -793q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5zM476 384h712l-272 429l-20 31v37v399h-128v-399v-37 l-20 -31z" />
207
+ <glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M1 157q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148q4 -48 -10 -97q4 -1 12 -5 l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56l-507 -398l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207zM168 176q-25 -66 21 -108q39 -36 113 -36q100 0 192 59q81 51 106 117t-21 108q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117zM168 976q25 -66 106 -117q92 -59 192 -59q74 0 113 36q46 42 21 108t-106 117q-92 59 -192 59 q-74 0 -113 -36q-46 -42 -21 -108zM672 448l9 -8q2 -2 7 -6q4 -4 11 -12t11 -12l26 -26l160 96l96 -32l736 576l-128 64l-768 -431v-113zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 576q0 26 19 45t45 19t45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1018 391l582 -327l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
208
+ <glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M0 224v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68zM128 256h512v256q0 40 20 88t48 76l316 316v416h-384 v-416q0 -40 -28 -68t-68 -28h-416v-640zM213 1024h299v299zM768 -128h896v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640zM853 640h299v299z" />
209
+ <glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M4 1023q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581 q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776 q-113 115 -113 271z" />
210
+ <glyph unicode="&#xf0c7;" d="M0 -32v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 0h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20 t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280zM384 0h768v384h-768v-384zM640 928q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320z" />
211
+ <glyph unicode="&#xf0c8;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5z" />
212
+ <glyph unicode="&#xf0c9;" d="M0 64v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 576v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 1088v128q0 26 19 45t45 19h1408 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
213
+ <glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M0 128q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 640q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 1152q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM512 32v192 q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z M512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
214
+ <glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M15 438q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105v-159h-362q-6 36 -6 54zM19 -190 l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66zM34 1400l136 127h106v-404h108v-99 h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54zM512 32v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
215
+ <glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M0 544v64q0 14 9 23t23 9h1728q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23zM384 972q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6l-14 2q-50 149 -103 205 q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743q-28 35 -51 80q-48 97 -48 188zM414 154q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22 q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156z" />
216
+ <glyph unicode="&#xf0cd;" d="M0 -32v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-1472q-14 0 -23 -9t-9 -23zM0 1405q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5 t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2 q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195 q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39q-37 2 -45 4z" />
217
+ <glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M0 160v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 544q0 -14 9 -23t23 -9h320 q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192zM640 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23 v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192z" />
218
+ <glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M27 160q0 27 18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45t-18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45zM128 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM320 1216l196 60l60 196l60 -196l196 -60l-196 -60 l-60 -196l-60 196zM768 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM1083 1062l107 -107l293 293l-107 107zM1408 768l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98z" />
219
+ <glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M64 192q0 26 19 45t45 19v320q0 8 -0.5 35t0 38t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45v-1024q0 -15 -4 -26.5t-13.5 -18.5t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5 q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM384 128q0 -52 38 -90t90 -38 t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90zM1280 128q0 -52 38 -90t90 -38t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90z" />
220
+ <glyph unicode="&#xf0d2;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63 q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5 q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423z" />
221
+ <glyph unicode="&#xf0d3;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5 q-104 0 -194.5 -28.5t-153 -76.5t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118 q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5z" />
222
+ <glyph unicode="&#xf0d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM276 309q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117 q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94 q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95zM395 338q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78z M462 969q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5t-57.5 96.5t-17.5 106zM960 672h128v-160h64v160h128v64h-128v128h-64v-128h-128v-64z" />
223
+ <glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M32 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65 t-59.5 -61.5t-24.5 -66q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131zM218 228q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5q58 0 111.5 13t99 39t73 73 t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5zM324 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q38 0 78 16.5t66 43.5q53 57 53 159 q0 58 -17 125t-48.5 129.5t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160zM1084 731v108h212v217h105v-217h213v-108h-213v-219h-105v219h-212z" />
224
+ <glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M0 64v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45zM128 384q106 0 181 -75t75 -181h1152q0 106 75 181t181 75v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512zM640 640q0 70 21 142 t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142t-21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142zM762 791l77 -80q42 37 55 57h2v-288h-128v-96h384v96h-128v448h-114z" />
225
+ <glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M0 832q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
226
+ <glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M0 320q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
227
+ <glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M64 640q0 26 19 45l448 448q19 19 45 19t45 -19t19 -45v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45z" />
228
+ <glyph unicode="&#xf0da;" horiz-adv-x="640" d="M0 192v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45z" />
229
+ <glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M0 32v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h608v1152h-640v-1120zM896 0h608q13 0 22.5 9.5t9.5 22.5v1120h-640v-1152z" />
230
+ <glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45zM0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
231
+ <glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
232
+ <glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
233
+ <glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M0 32v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 1098q0 78 41.5 130t118.5 52h1472 q65 0 112.5 -47t47.5 -113q0 -79 -49 -151t-122 -123q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5z" />
234
+ <glyph unicode="&#xf0e1;" d="M0 1217q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122zM19 -80v991h330v-991h-330zM531 -80q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5v-568 h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329z" />
235
+ <glyph unicode="&#xf0e2;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45z" />
236
+ <glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M40 736q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18 q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5 q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5 t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68z" />
237
+ <glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M0 384q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29q-141 221 -141 483zM128 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M320 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM710 241q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91l101 382q6 26 -7.5 48.5t-38.5 29.5t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5 t-63 -98.5zM768 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1216 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 384q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
238
+ <glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M0 640q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5 t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281zM128 640q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5t-381.5 -69.5 t-282 -187.5t-104.5 -255z" />
239
+ <glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM128 768q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52t-286 -52t-211.5 -141t-78.5 -191zM616 132 q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22 t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
240
+ <glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M1 551l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39z" />
241
+ <glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M0 -32v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
242
+ <glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M0 681q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17 q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5z M384 128q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180zM768 1310v98q0 26 19 45t45 19t45 -19t19 -45v-98q-42 2 -64 2t-64 -2z" />
243
+ <glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M0 96v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88v-672q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68zM256 1312q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5v64 q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64zM768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1280 640h299l-299 299v-299z" />
244
+ <glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M0 960q0 99 44.5 184.5t117 142t164 89t186.5 32.5t186.5 -32.5t164 -89t117 -142t44.5 -184.5q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47q0 -46 -31.5 -71t-77.5 -25 q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268zM128 960q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228 q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134zM480 1088q0 13 9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5 q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5z" />
245
+ <glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M0 256q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22zM0 800v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23 t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5z" />
246
+ <glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 608q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5z" />
247
+ <glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 672q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24z" />
248
+ <glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M0 131q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89 q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5 t81 -103t47.5 -132.5t24 -138t5.5 -131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190zM256 192q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5 t-271.5 112.5t-112.5 271.5z" />
249
+ <glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M0 768v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48 q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5 t-131.5 271.5v132q-164 20 -274 128t-110 252zM1152 832q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
250
+ <glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h64v-1280h-64q-92 0 -158 66t-66 158zM384 -128v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128v-1280h-1024zM640 1152h512v128h-512v-128zM1504 -128v1280h64q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-64z " />
251
+ <glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
252
+ <glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 480v736q0 26 19 45t45 19h1152q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158zM1408 704h64q80 0 136 56t56 136 t-56 136t-136 56h-64v-384z" />
253
+ <glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M0 832v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128 q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111zM768 416v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
254
+ <glyph unicode="&#xf0f6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM384 160v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64 q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 416v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 672v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
255
+ <glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1536h-1152v-1536zM256 160v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 928v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 1184v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
256
+ <glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M0 -192v1280q0 26 19 45t45 19h320v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1152h-256 v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152zM256 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1056q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128 v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
257
+ <glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M64 192q0 26 19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128 q-26 0 -45 19t-19 45zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM384 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 800q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192 q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM1280 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
258
+ <glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h32v-1280h-32q-92 0 -158 66t-66 158zM352 -128v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160v-1280h-1088zM512 416q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192 q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM640 1152h512v128h-512v-128zM1536 -128v1280h32q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-32z" />
259
+ <glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M0 512v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93l1 -3q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5 t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8z" />
260
+ <glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M64 1152l32 128h480l32 128h960l32 -192l-64 -32v-800l128 -192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320zM384 768q0 -53 37.5 -90.5t90.5 -37.5h128v384h-256v-256z" />
261
+ <glyph unicode="&#xf0fd;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 192q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896z" />
262
+ <glyph unicode="&#xf0fe;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128z" />
263
+ <glyph unicode="&#xf100;" horiz-adv-x="1024" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM429 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23 l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
264
+ <glyph unicode="&#xf101;" horiz-adv-x="1024" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM397 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10 l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
265
+ <glyph unicode="&#xf102;" horiz-adv-x="1152" d="M77 224q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM77 608q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23 l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
266
+ <glyph unicode="&#xf103;" horiz-adv-x="1152" d="M77 672q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM77 1056q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10 l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
267
+ <glyph unicode="&#xf104;" horiz-adv-x="640" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
268
+ <glyph unicode="&#xf105;" horiz-adv-x="640" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
269
+ <glyph unicode="&#xf106;" horiz-adv-x="1152" d="M77 352q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
270
+ <glyph unicode="&#xf107;" horiz-adv-x="1152" d="M77 800q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
271
+ <glyph unicode="&#xf108;" horiz-adv-x="1920" d="M0 288v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113zM128 544q0 -13 9.5 -22.5 t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832z" />
272
+ <glyph unicode="&#xf109;" horiz-adv-x="1920" d="M0 96v96h160h1600h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68zM256 416v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113zM384 416q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5 t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM864 112q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16z" />
273
+ <glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M0 160v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-832q-66 0 -113 47t-47 113zM128 288q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM512 128 q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
274
+ <glyph unicode="&#xf10b;" horiz-adv-x="768" d="M0 128v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM96 288q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM288 1136 q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16zM304 128q0 -33 23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5z" />
275
+ <glyph unicode="&#xf10c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273z" />
276
+ <glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M0 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z M896 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z" />
277
+ <glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M0 832v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136zM896 832v384 q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136z" />
278
+ <glyph unicode="&#xf110;" horiz-adv-x="1568" d="M0 640q0 66 47 113t113 47t113 -47t47 -113t-47 -113t-113 -47t-113 47t-47 113zM176 1088q0 73 51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5t-51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5zM208 192q0 60 42 102t102 42q59 0 101.5 -42t42.5 -102t-42.5 -102 t-101.5 -42q-60 0 -102 42t-42 102zM608 1280q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM672 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1136 192q0 46 33 79t79 33t79 -33t33 -79 t-33 -79t-79 -33t-79 33t-33 79zM1168 1088q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1344 640q0 40 28 68t68 28t68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68z" />
279
+ <glyph unicode="&#xf111;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5z" />
280
+ <glyph unicode="&#xf112;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101 t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19l-512 512q-19 19 -19 45z" />
281
+ <glyph unicode="&#xf113;" horiz-adv-x="1664" d="M0 496q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218q0 -87 -27 -168q136 -160 136 -398q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86t-170 -47.5t-171.5 -22t-167 -4.5 q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331zM224 320q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11 q-152 21 -195 21q-118 0 -187 -84t-69 -204zM384 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82zM1024 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34 t-43 76t-12.5 82z" />
282
+ <glyph unicode="&#xf114;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158zM128 224q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64 q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960z" />
283
+ <glyph unicode="&#xf115;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158zM128 331l256 315q44 53 116 87.5 t140 34.5h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-853zM171 163q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40z " />
284
+ <glyph unicode="&#xf116;" horiz-adv-x="1792" />
285
+ <glyph unicode="&#xf117;" horiz-adv-x="1792" />
286
+ <glyph unicode="&#xf118;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 461q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38 q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5q-37 -121 -138 -195t-228 -74t-228 74t-138 195zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
287
+ <glyph unicode="&#xf119;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 307q37 121 138 195t228 74t228 -74t138 -195q8 -25 -4 -48.5 t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
288
+ <glyph unicode="&#xf11a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 448q0 26 19 45t45 19h640q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
289
+ <glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M0 512q0 212 150 362t362 150h896q212 0 362 -150t150 -362t-150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150t-150 362zM192 448q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23v128 q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128zM1152 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 640q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
290
+ <glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M0 128v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5zM128 128h1664v896h-1664v-896zM256 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM256 528v96 q0 16 16 16h224q16 0 16 -16v-96q0 -16 -16 -16h-224q-16 0 -16 16zM256 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM512 272v96q0 16 16 16h864q16 0 16 -16v-96q0 -16 -16 -16h-864q-16 0 -16 16zM512 784v96q0 16 16 16h96q16 0 16 -16v-96 q0 -16 -16 -16h-96q-16 0 -16 16zM640 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM768 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM896 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z M1024 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1152 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1280 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1408 528v96q0 16 16 16h112v240 q0 16 16 16h96q16 0 16 -16v-352q0 -16 -16 -16h-224q-16 0 -16 16zM1536 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z" />
291
+ <glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599z" />
292
+ <glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q205 96 384 110v192q-181 -16 -384 -117v-185zM448 836q215 111 384 118v197q-172 -8 -384 -126v-189zM832 730h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15 t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2q-23 0 -49 -3v-222zM1280 828q148 -42 384 90v189q-169 -91 -306 -91q-45 0 -78 8v-196z" />
293
+ <glyph unicode="&#xf120;" horiz-adv-x="1664" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM640 32v64q0 14 9 23t23 9h960q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-960 q-14 0 -23 9t-9 23z" />
294
+ <glyph unicode="&#xf121;" horiz-adv-x="1920" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM712 -52l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5 l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5zM1293 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
295
+ <glyph unicode="&#xf122;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45l397 -397v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45zM384 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221 q169 -173 169 -509q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45z" />
296
+ <glyph unicode="&#xf123;" horiz-adv-x="1664" d="M2 900.5q9 27.5 54 34.5l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5z M832 310l59 -31l318 -168l-60 355l-12 66l49 47l257 250l-356 52l-66 10l-30 60l-159 322v-963z" />
297
+ <glyph unicode="&#xf124;" horiz-adv-x="1408" d="M2 561q-5 22 4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5z" />
298
+ <glyph unicode="&#xf125;" horiz-adv-x="1664" d="M0 928v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864 q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23zM512 301l595 595h-595v-595zM557 256h595v595z" />
299
+ <glyph unicode="&#xf126;" horiz-adv-x="1024" d="M0 64q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136 q0 -52 -26 -96.5t-70 -69.5q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136zM96 64q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM96 1216q0 -40 28 -68 t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM736 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
300
+ <glyph unicode="&#xf127;" horiz-adv-x="1664" d="M0 448q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23zM16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56l-239 -18l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68 l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204zM128 32q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23zM544 -96v320q0 14 9 23t23 9t23 -9t9 -23v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23zM633 364 l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56zM1056 1184v320q0 14 9 23t23 9t23 -9t9 -23v-320 q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1216 1120q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23zM1280 960q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
301
+ <glyph unicode="&#xf128;" horiz-adv-x="1024" d="M96.5 986q-2.5 15 5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5t-10.5 37.5v45q0 83 65 156.5 t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25zM384 40v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28z" />
302
+ <glyph unicode="&#xf129;" horiz-adv-x="640" d="M0 64v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM128 1152v192q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-192 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
303
+ <glyph unicode="&#xf12a;" horiz-adv-x="640" d="M98 1344q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45zM128 64v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
304
+ <glyph unicode="&#xf12b;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1013 713q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80h126v-206h-514l-3 27q-4 28 -4 46z " />
305
+ <glyph unicode="&#xf12c;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1015 -183q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126v-206h-514l-4 27q-3 45 -3 46z" />
306
+ <glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M1.5 146.5q5.5 37.5 30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5zM128 128h768l336 384h-768z" />
307
+ <glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M0 0v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5 q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124 q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89 q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1z" />
308
+ <glyph unicode="&#xf130;" horiz-adv-x="1152" d="M0 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45 t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5zM256 704v512q0 132 94 226t226 94t226 -94t94 -226v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226z" />
309
+ <glyph unicode="&#xf131;" horiz-adv-x="1408" d="M13 64q0 13 10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23t-10 -23l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5 t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23zM128 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113l-101 -101 q-42 103 -42 214zM384 704v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
310
+ <glyph unicode="&#xf132;" horiz-adv-x="1280" d="M0 576v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150t-33.5 170.5zM640 79 q119 63 213 137q235 184 235 360v640h-448v-1137z" />
311
+ <glyph unicode="&#xf133;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h1408v1024h-1408v-1024z M384 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288zM1152 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288z" />
312
+ <glyph unicode="&#xf134;" horiz-adv-x="1408" d="M3.5 940q-8.5 25 3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96 q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37 zM384 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
313
+ <glyph unicode="&#xf135;" horiz-adv-x="1664" d="M36 464l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85 q-3 -1 -9 -1q-14 0 -23 9l-64 64q-17 19 -5 39zM1248 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
314
+ <glyph unicode="&#xf136;" horiz-adv-x="1792" d="M0 0l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334z" />
315
+ <glyph unicode="&#xf137;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM346 640q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l102 102q19 19 19 45t-19 45l-307 307l307 307 q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
316
+ <glyph unicode="&#xf138;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM506 288q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-454 454 q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45z" />
317
+ <glyph unicode="&#xf139;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 544q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19l102 102 q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
318
+ <glyph unicode="&#xf13a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 736q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-102 102 q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
319
+ <glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M0 1408h1408l-128 -1438l-578 -162l-574 162zM262 1114l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674l16 175h-884z" />
320
+ <glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M12 75l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208l59 297h1505l-266 -1333l-804 -267z" />
321
+ <glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M0 0v352q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5 l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30zM832 1280q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
322
+ <glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181v-320h736q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28 t-28 68z" />
323
+ <glyph unicode="&#xf140;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM256 640q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM384 640q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
324
+ <glyph unicode="&#xf141;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM512 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM1024 608v192q0 40 28 68t68 28h192 q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
325
+ <glyph unicode="&#xf142;" horiz-adv-x="384" d="M0 96v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h192q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
326
+ <glyph unicode="&#xf143;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M256 575q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10t9 24q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128zM256 959q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128 q13 0 23 10q11 9 9 23q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128z" />
327
+ <glyph unicode="&#xf144;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 320q0 -37 32 -56q16 -8 32 -8q17 0 32 9l544 320q32 18 32 55t-32 55l-544 320q-31 19 -64 1 q-32 -19 -32 -56v-640z" />
328
+ <glyph unicode="&#xf145;" horiz-adv-x="1792" d="M54 448.5q0 53.5 37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136t-136 56t-136 -56l-125 126q-37 37 -37 90.5z M342 512q0 -26 19 -45l362 -362q18 -18 45 -18t45 18l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45zM452 512l572 572l316 -316l-572 -572z" />
329
+ <glyph unicode="&#xf146;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h896q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128 z" />
330
+ <glyph unicode="&#xf147;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
331
+ <glyph unicode="&#xf148;" horiz-adv-x="1024" d="M3 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18z" />
332
+ <glyph unicode="&#xf149;" horiz-adv-x="1024" d="M3 1261q9 19 29 19h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34z" />
333
+ <glyph unicode="&#xf14a;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 640q0 -26 19 -45l358 -358q19 -19 45 -19t45 19l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19 t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
334
+ <glyph unicode="&#xf14b;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 128h288l544 544l-288 288l-544 -544v-288zM352 320v56l52 52l152 -152l-52 -52h-56v96h-96zM494 494 q-14 13 3 30l291 291q17 17 30 3q14 -13 -3 -30l-291 -291q-17 -17 -30 -3zM864 1024l288 -288l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28z" />
335
+ <glyph unicode="&#xf14c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM282 320q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59 v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45z" />
336
+ <glyph unicode="&#xf14d;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 448q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5t224 23.5v-160 q0 -42 40 -59q12 -5 24 -5q26 0 45 19l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5z" />
337
+ <glyph unicode="&#xf14e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 241v542l512 256v-542zM640 448l256 128l-256 128v-256z" />
338
+ <glyph unicode="&#xf150;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 861q17 35 57 35h640q40 0 57 -35q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66z" />
339
+ <glyph unicode="&#xf151;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 419q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66q-17 -35 -57 -35h-640q-40 0 -57 35z" />
340
+ <glyph unicode="&#xf152;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -14 9 -23t23 -9h960q14 0 23 9t9 23v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960z M512 320v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52t-27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57z" />
341
+ <glyph unicode="&#xf153;" horiz-adv-x="1024" d="M0 514v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5 t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5 l12 3l5 2q13 5 26 -2q12 -7 15 -21l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5z" />
342
+ <glyph unicode="&#xf154;" horiz-adv-x="1024" d="M0 32v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215 h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23z" />
343
+ <glyph unicode="&#xf155;" horiz-adv-x="1024" d="M52 171l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242 t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48 t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50t53 -63.5t31.5 -76.5t13 -94q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5 t-17.5 18q-17 21 -2 41z" />
344
+ <glyph unicode="&#xf156;" horiz-adv-x="898" d="M0 605v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171 q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22z" />
345
+ <glyph unicode="&#xf157;" horiz-adv-x="1027" d="M4 1360q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103 q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214z" />
346
+ <glyph unicode="&#xf158;" horiz-adv-x="1280" d="M0 256v128q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315t-126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9 h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23zM487 747h320q106 0 171 62t65 162t-65 162t-171 62h-320v-448z" />
347
+ <glyph unicode="&#xf159;" horiz-adv-x="1792" d="M0 672v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111 q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23z M373 896l32 -128h225l35 128h-292zM436 640l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5l81 299h-159zM822 768h139l-35 128h-70zM1118 896l34 -128h230l33 128h-297zM1187 640l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3l78 300h-162z" />
348
+ <glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M56 0l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89 t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200zM522 182q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30t24.5 40t9.5 51q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1 t-47.5 -1v-338zM522 674q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307z" />
349
+ <glyph unicode="&#xf15b;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
350
+ <glyph unicode="&#xf15c;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM384 160q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 416q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 672q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
351
+ <glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 768v106h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106 h-287zM988 -166l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121v-233h-584v90zM1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18 t-7.5 -29z" />
352
+ <glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 -150h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287 v106zM988 768v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248v119h121v-233h-584zM1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29 z" />
353
+ <glyph unicode="&#xf160;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23z" />
354
+ <glyph unicode="&#xf161;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h256q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
355
+ <glyph unicode="&#xf162;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 261q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 1351l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17 v16h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 261q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
356
+ <glyph unicode="&#xf163;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 1285q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 327l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16 h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 1285q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
357
+ <glyph unicode="&#xf164;" horiz-adv-x="1664" d="M0 64v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45zM128 192q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45zM480 64v641q0 25 18 43.5t43 20.5q24 2 76 59 t101 121q68 87 101 120q18 18 31 48t17.5 48.5t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135 q0 -86 -55 -149q15 -44 15 -76q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5z" />
358
+ <glyph unicode="&#xf165;" horiz-adv-x="1664" d="M0 448q0 -26 19 -45t45 -19h288q26 0 45 19t19 45v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640zM128 960q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45zM480 447v641q0 26 19 44.5t45 19.5q35 1 158 44 q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76q55 -61 55 -149q-1 -78 -57.5 -135t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39 t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121t-76 59q-25 2 -43 20.5t-18 43.5z" />
359
+ <glyph unicode="&#xf166;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 366q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73 q20 84 20 260q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5q-20 -87 -20 -260zM300 551v70h232v-70h-80v-423h-74v423h-78zM396 1313l24 -69t23 -69q35 -103 46 -158v-201h74v201l90 296h-75l-51 -195l-53 195 h-78zM542 205v290h66v-270q0 -24 1 -26q1 -15 15 -15q20 0 42 31v280h67v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54zM654 936q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38q-21 -29 -21 -87v-130zM721 923 v156q0 52 32 52t32 -52v-156q0 -51 -32 -51t-32 51zM790 128v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67zM857 200q16 -16 33 -16q29 0 29 49v157q0 50 -29 50q-17 0 -33 -16v-224zM907 893q0 -37 6 -55 q11 -27 43 -27q36 0 77 45v-40h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293zM1037 247v129q0 59 20 86q29 38 80 38t78 -38q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68v-9q0 -29 -2 -43q-3 -22 -15 -40 q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86zM1103 355h66v34q0 51 -33 51t-33 -51v-34z" />
360
+ <glyph unicode="&#xf167;" d="M27 260q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99q-26 112 -26 350zM138 509h105v-569h100v569h107v94h-312 v-94zM266 1536h106l71 -263l68 263h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187zM463 43q0 -49 8 -73q12 -37 58 -37q48 0 102 61v-54h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391zM614 1028v175q0 80 28 117q38 51 105 51 q69 0 106 -51q28 -37 28 -117v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51q-28 38 -28 118zM704 1011q0 -70 43 -70t43 70v210q0 69 -43 69t-43 -69v-210zM798 -60h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89 v-663zM887 36v301q22 22 45 22q39 0 39 -67v-211q0 -67 -39 -67q-23 0 -45 22zM955 971v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75zM1130 100q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54 q2 9 2 58v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51q-28 -37 -28 -116v-173zM1219 245v46q0 68 45 68t45 -68v-46h-90z" />
361
+ <glyph unicode="&#xf168;" horiz-adv-x="1408" d="M5 384q-10 17 0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45l164 -286q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17zM536 539q18 32 531 942q25 45 64 45h241q22 0 31 -15q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37 q-10 -15 -32 -15h-239q-42 0 -66 45z" />
362
+ <glyph unicode="&#xf169;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM227 396q8 -13 24 -13h185q31 0 50 36l199 352q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29 l125 -216v-1l-196 -346q-9 -14 0 -28zM638 516q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1l409 723q8 16 0 28q-7 12 -24 12h-187q-30 0 -49 -35z" />
363
+ <glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M0 640q0 96 1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150t-1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58 t-69.5 123q-14 65 -21.5 147.5t-8.5 136.5t-1 150zM640 320q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54t-30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640z" />
364
+ <glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M64 558l338 271l494 -305l-342 -285zM64 1099l490 319l342 -285l-494 -304zM407 166v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284l147 96v-108l-490 -293v-1l-1 1l-1 -1v1zM896 524l494 305l338 -271l-489 -319zM896 1133l343 285l489 -319l-338 -270z" />
365
+ <glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M0 -255v736h121v-618h928v618h120v-701l-1 -35v-1h-1132l-35 1h-1zM221 -17v151l707 1v-151zM227 243l14 150l704 -65l-13 -150zM270 563l39 146l683 -183l-39 -146zM395 928l77 130l609 -360l-77 -130zM707 1303l125 86l398 -585l-124 -85zM1136 1510l149 26l121 -697 l-149 -26z" />
366
+ <glyph unicode="&#xf16d;" d="M0 69v1142q0 81 58 139t139 58h1142q81 0 139 -58t58 -139v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139zM171 110q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62 q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648zM461 643q0 -124 90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5t-90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5zM1050 1003q0 -29 20 -49t49 -20h174q29 0 49 20t20 49v165q0 28 -20 48.5 t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165z" />
367
+ <glyph unicode="&#xf16e;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM274 640q0 -88 62 -150t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150zM838 640q0 -88 62 -150 t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150z" />
368
+ <glyph unicode="&#xf170;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM309 384h94l104 160h522l104 -160h94l-459 691zM567 608l201 306l201 -306h-402z" />
369
+ <glyph unicode="&#xf171;" horiz-adv-x="1408" d="M0 1222q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34 t-6 39.5t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158zM173 285l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18t-76.5 27 t-73 43.5t-52 61.5q-25 96 -57 292zM243 1240q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5q-20 27 -56 44.5t-58 22t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43zM481 657q4 -91 77.5 -155t165.5 -56q91 8 152 84 t50 168q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5zM599 710q14 41 52 58q36 18 72.5 12t64 -35.5t27.5 -67.5q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82z" />
370
+ <glyph unicode="&#xf172;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM260 1060q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63 q24 13 39.5 23t31 29t19.5 40q48 267 80 473q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54zM385 384q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71q0 7 5.5 26.5t3 32 t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6zM436 1073q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5t-52.5 16t-54.5 32.5zM607 653q-2 49 25.5 93t72.5 64 q70 31 141.5 -10t81.5 -118q8 -66 -36 -121t-110 -61t-119 40t-56 113zM687.5 660.5q0.5 -52.5 43.5 -70.5q39 -23 81 4t36 72q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5z" />
371
+ <glyph unicode="&#xf173;" horiz-adv-x="1024" d="M78 779v217q91 30 155 84q64 55 103 132q39 78 54 196h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170z" />
372
+ <glyph unicode="&#xf174;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM413 744h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49v181 q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163z" />
373
+ <glyph unicode="&#xf175;" horiz-adv-x="768" d="M3 237q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19t-5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35z" />
374
+ <glyph unicode="&#xf176;" horiz-adv-x="768" d="M3 1043q-8 19 5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19z" />
375
+ <glyph unicode="&#xf177;" horiz-adv-x="1792" d="M64 637q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23z" />
376
+ <glyph unicode="&#xf178;" horiz-adv-x="1792" d="M0 544v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23z" />
377
+ <glyph unicode="&#xf179;" horiz-adv-x="1408" d="M0 634q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32 q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503zM683 1131q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17z" />
378
+ <glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M0 -27v557h682v-651zM0 614v565l682 94v-659h-682zM757 -131v661h907v-786zM757 614v669l907 125v-794h-907z" />
379
+ <glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M0 337v430q0 42 30 72t73 30q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30t-73 30t-30 73zM241 886q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20l-71 -131q107 -55 171 -153.5t64 -215.5 h-925zM245 184v666h918v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78zM455 1092q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27.5 t-27.5 11.5t-27 -11.5t-11 -27.5zM876 1092q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5zM1203 337v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73z" />
380
+ <glyph unicode="&#xf17c;" d="M11 -115q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5 t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195q-12 112 -16 310q-2 90 24 151.5 t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5 t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13 t16.5 -9.5q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5 q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5zM321 495q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54 t7 -70.5q46 24 7 92q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5 t60 -22.5q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18zM372 630q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12zM603 1190q2 -5 5 -6 q10 0 7 -15q-3 -20 8 -20q3 0 3 3q3 17 -2.5 30t-11.5 15q-9 2 -9 -7zM634 1110q0 12 19 15h10q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5zM721 1122q24 11 32 -2q3 -6 -3 -9q-4 -1 -11.5 6.5t-17.5 4.5zM835 1196l4 -2q14 -4 18 -31q0 -3 8 2l2 3q0 11 -5 19.5t-11 12.5 t-9 3q-14 -1 -7 -7zM851 1381.5q-1 -2.5 3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9zM981 1002q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20q-2 8 -6.5 11.5t-13 5 t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5z" />
381
+ <glyph unicode="&#xf17d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM112 640q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81t99.5 48l37 13 q4 1 13 3.5t13 4.5q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21zM126 775q302 0 606 80q-120 213 -244 378q-138 -65 -234 -186t-128 -272zM350 134q184 -150 418 -150q132 0 256 52q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5 t-103 -148zM609 1276q1 1 2 1q-1 0 -2 -1zM613 1277q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5l12.5 17.5q-185 164 -433 164q-76 0 -155 -19zM909 797q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5 t36.5 -6t25 -4.5l10 -2q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5zM1007 565q87 -239 128 -469q111 75 185 189.5t96 250.5q-210 60 -409 29z" />
382
+ <glyph unicode="&#xf17e;" d="M0 1024q0 159 112.5 271.5t271.5 112.5q130 0 234 -80q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225 t-55.5 273.5q0 73 16 150q-80 104 -80 234zM376 399q0 -92 122 -157.5t291 -65.5q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12 t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5 q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75z" />
383
+ <glyph unicode="&#xf180;" horiz-adv-x="1664" d="M0 640q0 75 53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41l619 619l2 -3q53 -53 53 -128t-53 -128l-587 -587 q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128zM302 660q0 21 14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36z" />
384
+ <glyph unicode="&#xf181;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM160 192q0 -14 9 -23t23 -9h480q14 0 23 9t9 23v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024zM832 576q0 -14 9 -23t23 -9h480q14 0 23 9t9 23 v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640z" />
385
+ <glyph unicode="&#xf182;" horiz-adv-x="1280" d="M0 480q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192 q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43q-40 0 -68 28t-28 68zM416 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
386
+ <glyph unicode="&#xf183;" horiz-adv-x="1024" d="M0 416v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68z M288 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
387
+ <glyph unicode="&#xf184;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM399.5 766q8.5 -37 24.5 -59l349 -473l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5 t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85z" />
388
+ <glyph unicode="&#xf185;" horiz-adv-x="1792" d="M44 363q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29q-4 -15 -20 -20 l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20zM320 640q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5 t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5z" />
389
+ <glyph unicode="&#xf186;" d="M0 640q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384z" />
390
+ <glyph unicode="&#xf187;" horiz-adv-x="1792" d="M64 1088v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM128 -64v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM704 704q0 -26 19 -45t45 -19h256 q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
391
+ <glyph unicode="&#xf188;" horiz-adv-x="1664" d="M32 576q0 26 19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19t19 -45t-19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19 t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45z M512 1152q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5h-640z" />
392
+ <glyph unicode="&#xf189;" horiz-adv-x="1920" d="M-1 1004q0 11 3 16l4 6q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24 q17 19 38 30q53 26 239 24q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5 t13 3t20 0.5l288 2q39 5 64 -2.5t31 -16.5l6 -10q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12 q-30 21 -70 64t-68.5 77.5t-61 58t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211 t-130.5 272q-6 16 -6 27z" />
393
+ <glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M0 391q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5q0 -68 -37 -139.5 t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5zM181 320q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5zM413.5 230.5 q-40.5 92.5 6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5q-45 -102 -158 -150t-224 -12q-107 34 -147.5 126.5zM495 257.5q9 -34.5 43 -50.5t74.5 -2.5t62.5 47.5q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5zM705 399 q-17 -31 13 -45q14 -5 29 0.5t22 18.5q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5zM1165 1274q-6 28 9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158 q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5zM1224 1047q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5t54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37z" />
394
+ <glyph unicode="&#xf18b;" d="M0 638q0 187 83.5 349.5t229.5 269.5t325 137v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495zM398 -34q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211q-171 -94 -368 -94q-196 0 -367 94zM898 909v485q179 -30 325 -137t229.5 -269.5 t83.5 -349.5q0 -280 -181 -495q-204 99 -330.5 306.5t-126.5 459.5z" />
395
+ <glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M0 -211q0 19 13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23 t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89 t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283 q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32z" />
396
+ <glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M21 217v66h1238v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5zM21 354v255h1238v-255h-1238zM21 682v255h1238v-255h-1238zM21 1010v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5v-67h-1238z" />
397
+ <glyph unicode="&#xf18e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 544v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5z" />
398
+ <glyph unicode="&#xf190;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 640q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23z" />
399
+ <glyph unicode="&#xf191;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM448 640q0 33 27 52l448 320q17 12 37 12q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52z" />
400
+ <glyph unicode="&#xf192;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
401
+ <glyph unicode="&#xf193;" horiz-adv-x="1664" d="M0 320q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5zM416 1348q-2 16 6 42 q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455l198 99l58 -114l-256 -128q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5z" />
402
+ <glyph unicode="&#xf194;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 806q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5 q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237q104 139 172.5 292.5t82.5 226.5q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143 q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7z" />
403
+ <glyph unicode="&#xf195;" horiz-adv-x="1152" d="M0 608v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31 l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26z" />
404
+ <glyph unicode="&#xf196;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23z" />
405
+ <glyph unicode="&#xf197;" horiz-adv-x="2176" d="M0 576q0 12 38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113q-110 -64 -268 -64h-128v64 h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5zM323 336h29q157 0 273 64h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96zM323 816l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5 t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64h-29zM1739 484l81 -30q68 48 68 122t-68 122l-81 -30q53 -36 53 -92t-53 -92z" />
406
+ <glyph unicode="&#xf198;" horiz-adv-x="1664" d="M0 796q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5 t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72 l-55 163l-153 -53q-29 -9 -50 -9q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5zM620 811l105 -313l310 105l-105 315z" />
407
+ <glyph unicode="&#xf199;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 352q0 -40 28 -68t68 -28h832q40 0 68 28t28 68v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99 q-98 -69 -164 -69t-164 69q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436zM256 928q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13 t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68z" />
408
+ <glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM41 640q0 -173 68 -331.5t182.5 -273t273 -182.5t331.5 -68t331.5 68t273 182.5t182.5 273t68 331.5 t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5zM127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM254 1062q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5 q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21t14.5 -24t14 -23q63 -107 63 -212q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15 t-1.5 -18.5t9 -16.5t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5zM679 -97l230 670l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1282 -24l235 678q59 169 59 276q0 42 -6 79 q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5z" />
409
+ <glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M0 455q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360l272 133v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5zM1134 860v172q277 -33 481 -157l140 79l37 -390l-525 114l147 83 q-119 70 -280 99z" />
410
+ <glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M0 -128q0 26 20.5 45t48.5 19h1782q28 0 48.5 -19t20.5 -45v-128h-1920v128zM0 1024v128l960 384l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128zM128 0v64q0 26 20.5 45t48.5 19h59v768h256v-768h128v768h256v-768h128v768h256 v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664z" />
411
+ <glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M0 1024q0 23 22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31t-22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433 q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31zM512 384l18 316l574 -181q22 -7 48 -7t48 7l574 181l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128z" />
412
+ <glyph unicode="&#xf19e;" d="M109 1536q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610l13 -707q-62 11 -105 11 q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287z" />
413
+ <glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M111 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5t-59.5 -93 t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131zM297 228q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13 t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5zM403 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5 q53 56 53 159q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160z" />
414
+ <glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M0 722q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58 q94 0 160 -66t66 -160q0 -62 -31 -114t-83 -82q5 -33 5 -61q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5zM77 722q0 -67 51 -111 q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM178 465q0 -101 59.5 -194t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5 t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5zM555 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM661 209.5q0 16.5 11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77q11 11 27 11t27 -11t11 -27.5t-11 -27.5 q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5zM1153 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM1555 1350q0 -45 32 -77t77 -32t77 32t32 77t-32 77t-77 32t-77 -32t-32 -77zM1672 843q131 -105 178 -238 q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28z" />
415
+ <glyph unicode="&#xf1a2;" d="M0 193v894q0 133 94 227t226 94h896q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227zM155 709q0 -37 19.5 -67.5t52.5 -45.5q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54 q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43 q-51 0 -87 -36.5t-36 -87.5zM493 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM560 375q0 11 8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18z M882 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM1143 1120q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50z" />
416
+ <glyph unicode="&#xf1a3;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 502q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14 q19 0 32.5 -14t13.5 -33v-54l60 -28l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122zM806 500q0 -80 58 -137t139 -57t138.5 57t57.5 139v122h-150v-126q0 -20 -13.5 -33.5t-33.5 -13.5 q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123z" />
417
+ <glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M0 336v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58l-131 61v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5zM1062 332 v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275h328v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5z" />
418
+ <glyph unicode="&#xf1a5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM64 640h704v-704h480q93 0 158.5 65.5t65.5 158.5v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480z " />
419
+ <glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M0 271v697h328v286h204v-983h-532zM205 435h123v369h-123v-369zM614 271h205v697h-205v-697zM614 1050h205v204h-205v-204zM901 26v163h328v82h-328v697h533v-942h-533zM1106 435h123v369h-123v-369zM1516 26v163h327v82h-327v697h532v-942h-532zM1720 435h123v369h-123 v-369z" />
420
+ <glyph unicode="&#xf1a7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM293 388l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229t-88.5 229t-213.5 95q-74 0 -141 -36h-186v-840z M504 804v277q28 17 70 17q53 0 91 -45t38 -109t-38 -109.5t-91 -45.5q-43 0 -70 15zM636 -39l211 41v206q51 -19 117 -19q125 0 213 95t88 229t-88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101v-636zM847 377v277q28 17 70 17q53 0 91 -45.5t38 -109.5 t-38 -109t-91 -45q-43 0 -70 15z" />
421
+ <glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M41 455q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80 t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5l1 -21q75 3 143.5 -20.5 t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14q6 -5 28 -23.5t25.5 -22t19 -18 t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63 t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27zM764 676q10 1 32.5 7t34.5 6q19 0 35 -10l-96 -20zM822 568l48 12l109 -177l-73 -48zM859 884q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1 v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5 t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43zM1061 45h31l10 -83l-41 -12v95zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM1116 29 q21 2 60.5 8.5t72 10t60.5 3.5h14q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13t-54 -9.5t-53.5 -7.5t-32 -4.5zM1947 1528l1 3l2 4l-1 -5zM1950 1535v1v-1zM1950 1535l1 1z" />
422
+ <glyph unicode="&#xf1a9;" d="M0 520q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5 t19.5 -177.5q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302zM333 256q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5zM685.5 -76q-0.5 -10 7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5 q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16zM852 31q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5 t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10q-29 -12 -78 -56q-26 -24 -12 -44z" />
423
+ <glyph unicode="&#xf1aa;" d="M0 78q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160l151 -152l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5 t-60 145.5zM2 1202q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5t149.5 -87.5l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5 q-70 15 -115 71t-45 129zM446 803l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126t135.5 51q85 0 145 -60.5t60 -145.5q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152 l-160 -160zM776 793l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5q76 -11 126.5 -68.5t50.5 -134.5q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30 l-152 152z" />
424
+ <glyph unicode="&#xf1ab;" d="M0 -16v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5q20 0 20 -21v-418l147 -47v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3zM39 15l694 232v1032l-694 -233v-1031zM147 293q6 4 82 92 q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8 t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110 q-4 -2 -19.5 -4t-18.5 0zM268 933l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41zM310 -116q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11q73 -37 159.5 -61.5t157.5 -24.5 q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5l-43 73l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16zM777 1294l573 -184v380zM885 453l102 -31l45 110l211 -65l37 -135l102 -31l-181 657l-100 31z M1071 630l76 185l63 -227z" />
425
+ <glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M0 -96v1088q0 66 47 113t113 47h128q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113zM512 -96v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-163q58 -34 93 -93t35 -128v-768q0 -106 -75 -181 t-181 -75h-864q-66 0 -113 47t-47 113zM640 896h896v256h-160q-40 0 -68 28t-28 68v160h-640v-512zM736 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM736 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9 h-128q-14 0 -23 -9t-9 -23v-128zM736 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 256q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23 v-128zM1248 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128z" />
426
+ <glyph unicode="&#xf1ad;" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM256 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 1184q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 96v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23zM512 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM512 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 928q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM1024 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64z" />
427
+ <glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M64 1056q0 40 28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68zM416 1152q0 93 65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
428
+ <glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M0 724q0 80 42 139.5t119 59.5q76 0 141.5 -55.5t100.5 -134t35 -152.5q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152zM256 19q0 86 56 191.5t139.5 192.5t187.5 146t193 59q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45 t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146zM333 1163q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151zM884 1064 q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5q-61 0 -105 39t-63 92.5t-19 113.5zM1226 581q0 74 35 152.5t100.5 134t141.5 55.5q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5 q-77 0 -119 59t-42 139z" />
429
+ <glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M64 1008q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5z" />
430
+ <glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M0 256v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65zM134 1026l698 -254l698 254l-698 254zM896 -93l640 349v636l-640 -233v-752z" />
431
+ <glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M0 96v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70v-400l434 -186q36 -16 57 -48t21 -70v-416q0 -36 -19 -67t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4 l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67zM172 531l404 -173l404 173l-404 173zM640 -96l384 192v314l-384 -164v-342zM647 1219l441 -189l441 189l-441 189zM1152 651l384 165v266l-384 -164v-267zM1196 531l404 -173l404 173l-404 173zM1664 -96 l384 192v314l-384 -164v-342z" />
432
+ <glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M0 22v1260h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5 t45.5 113.5q0 144 -190 144h-260v-294zM1137 477q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658q0 -111 57.5 -171.5t166.5 -60.5q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347zM1337 1073h511v124 h-511v-124zM1388 576h408q-18 195 -200 195q-90 0 -146 -52.5t-62 -142.5z" />
433
+ <glyph unicode="&#xf1b5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 254h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5t-56.5 60.5t-79 29.5 t-97 8.5h-371v-787zM301 388v217h189q124 0 124 -113q0 -104 -128 -104h-185zM301 723v184h163q119 0 119 -90q0 -94 -106 -94h-176zM838 538q0 -135 79 -217t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20q-68 0 -104 38t-36 107h411q1 10 1 30 q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216zM964 911v77h319v-77h-319zM996 600q4 56 39 89t91 33q113 0 124 -122h-254z" />
434
+ <glyph unicode="&#xf1b6;" horiz-adv-x="2048" d="M0 764q0 86 61 146.5t146 60.5q73 0 130 -46t73 -117l783 -315q49 29 106 29q14 0 21 -1l173 248q1 114 82 194.5t195 80.5q115 0 196.5 -81t81.5 -196t-81.5 -196.5t-196.5 -81.5l-265 -194q-8 -80 -67.5 -133.5t-138.5 -53.5q-73 0 -130 46t-73 117l-783 315 q-51 -30 -106 -30q-85 0 -146 61t-61 147zM55 764q0 -64 44.5 -108.5t107.5 -44.5q11 0 33 4l-64 26q-33 14 -52.5 44.5t-19.5 66.5q0 50 35.5 85.5t85.5 35.5q20 0 41 -8v1l76 -31q-20 37 -56.5 59t-78.5 22q-63 0 -107.5 -44.5t-44.5 -107.5zM1164 244q19 -37 55.5 -59 t79.5 -22q63 0 107.5 44.5t44.5 107.5t-44.5 108t-107.5 45q-13 0 -33 -4q2 -1 20 -8t21.5 -8.5t18.5 -8.5t19 -10t16 -11t15.5 -13.5t11 -14.5t10 -18t5 -21t2.5 -25q0 -50 -35.5 -85.5t-85.5 -35.5q-14 0 -31.5 4.5t-29 9t-31.5 13.5t-28 12zM1584 767q0 -77 54.5 -131.5 t131.5 -54.5t132 54.5t55 131.5t-55 131.5t-132 54.5q-76 0 -131 -54.5t-55 -131.5zM1623 767q0 62 43.5 105.5t104.5 43.5t105 -44t44 -105t-43.5 -104.5t-105.5 -43.5q-61 0 -104.5 43.5t-43.5 104.5z" />
435
+ <glyph unicode="&#xf1b7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 693q0 -53 38 -91t92 -38q36 0 66 18l489 -197q10 -44 45.5 -73t81.5 -29q50 0 86.5 34t41.5 83l167 122 q71 0 122 50.5t51 122.5t-51 123t-122 51q-72 0 -122.5 -50.5t-51.5 -121.5l-108 -155q-2 0 -6.5 0.5t-6.5 0.5q-35 0 -67 -19l-489 197q-10 44 -45.5 73t-80.5 29q-54 0 -92 -38t-38 -92zM162 693q0 40 28 68t68 28q27 0 49.5 -14t34.5 -37l-48 19q-29 11 -56.5 -2 t-38.5 -41q-12 -29 -0.5 -57t39.5 -40v-1l40 -16q-14 -2 -20 -2q-40 0 -68 27.5t-28 67.5zM855 369q5 -2 47 -19q29 -12 58 0.5t41 41.5q11 29 -1 57.5t-41 40.5l-40 16q14 2 21 2q39 0 67 -27.5t28 -67.5t-28 -67.5t-67 -27.5q-59 0 -85 51zM1118 695q0 48 34 82t83 34 q48 0 82 -34t34 -82t-34 -82t-82 -34q-49 0 -83 34t-34 82zM1142 696q0 -39 27.5 -66t65.5 -27t65.5 27t27.5 66q0 38 -27.5 65.5t-65.5 27.5t-65.5 -27.5t-27.5 -65.5z" />
436
+ <glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M16 970l433 -17l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188zM270.5 158q-3.5 28 4 65t12 55t21.5 64t19 53q78 -12 509 -28l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5 q-11 27 -14.5 55zM294 1124l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5t36 -39.5t32 -35q-47 -63 -265 -435l-317 187zM782 1524l405 -1q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190l142 83l-220 -373l-419 20l151 86q-34 89 -75 166 t-75.5 123.5t-64.5 80t-47 46.5zM953 197l211 362l7 -173q170 -16 283 -5t170 33l56 22l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164zM1218 847l313 195l19 11l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22 t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436z" />
437
+ <glyph unicode="&#xf1b9;" horiz-adv-x="1984" d="M0 160v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h704q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-928v-128q0 -80 -56 -136 t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23zM160 448q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 768h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 448q0 -66 47 -113t113 -47t113 47t47 113 t-47 113t-113 47t-113 -47t-47 -113z" />
438
+ <glyph unicode="&#xf1ba;" horiz-adv-x="1984" d="M0 32v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h64q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-64q0 -80 -56 -136t-136 -56 t-136 56t-56 136v64h-928v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23zM160 320q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 640h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 320 q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113z" />
439
+ <glyph unicode="&#xf1bb;" d="M32 64q0 26 19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45t-19 -45t-45 -19 h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45z" />
440
+ <glyph unicode="&#xf1bc;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM237 886q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37q159 0 309.5 -34t253.5 -95q21 -12 40 -12 q29 0 50.5 20.5t21.5 51.5q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5zM289 637q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5q0 40 -35 61 q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64zM321 406q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52z" />
441
+ <glyph unicode="&#xf1bd;" d="M0 11v1258q0 58 40.5 98.5t98.5 40.5h1258q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5zM71 11q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258z M121 11v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5zM121 709v560q0 7 5.5 12.5 t12.5 5.5h1258q7 0 12.5 -5.5t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137zM246 413q-24 203 166 305l129 -270l-255 -61q-14 -3 -26 4.5t-14 21.5z" />
442
+ <glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M0 405l17 128q2 9 9 9t9 -9l20 -128l-20 -126q-2 -9 -9 -9t-9 9zM79 405l23 207q0 9 9 9q8 0 10 -9l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10zM169 405l21 245q2 12 12 12q11 0 11 -12l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11zM259 405l21 252q0 13 13 13 q12 0 14 -13l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13zM350 405l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5zM401 159zM442 405l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5l21 -380l-21 -246q0 -7 -5 -12.5 t-12 -5.5q-16 0 -18 18zM534 403l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19zM628 405l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5l18 -506l-18 -242q-2 -21 -22 -21q-19 0 -21 21zM723 405l14 -241 q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17zM784 164zM817 405l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18zM913 404l12 492q1 12 9 20t19 8t18.5 -8 t8.5 -20l14 -492l-14 -236q0 -11 -8 -19t-19 -8t-19 8t-9 19zM1010 405q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11q11 0 20 9q9 7 9 20l1 24l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6zM1079 169zM1103 404l12 636v3q2 15 12 24q9 7 20 7 q8 0 15 -5q14 -8 16 -26l14 -639l-14 -231q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114zM1204 174v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22z" />
443
+ <glyph unicode="&#xf1c0;" d="M0 0v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 384v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 768 v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 1152v128q0 69 103 128t280 93.5t385 34.5t385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128z" />
444
+ <glyph unicode="&#xf1c1;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM257 60q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4 q52 85 107 197q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38 q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83z M714 842q1 7 7 44q0 3 7 43q1 4 4 8q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2q-15 -42 -2 -132zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1098 353q76 -28 124 -28q14 0 18 1q0 1 -2 3q-24 24 -140 24z" />
445
+ <glyph unicode="&#xf1c2;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM233 661h70l164 -661h159l128 485q7 20 10 46q2 16 2 24 h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300v-107zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
446
+ <glyph unicode="&#xf1c3;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM429 0h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4 h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107h-290v-107h68l189 -272l-194 -283h-68v-106zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
447
+ <glyph unicode="&#xf1c4;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM416 0h327v106h-93v167h137q76 0 118 15q67 23 106.5 87 t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92v-106zM650 386v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15h-119zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
448
+ <glyph unicode="&#xf1c5;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 0v192l192 192l128 -128l384 384l320 -320v-320 h-1024zM256 704q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
449
+ <glyph unicode="&#xf1c6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536zM384 192q0 25 8 52q21 63 120 396 v128h128v-128h79q22 0 39 -13t23 -34l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5zM512 192q0 -26 37.5 -45t90.5 -19t90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45zM512 896h128v128h-128v-128zM512 1152h128v128h-128v-128 zM640 768h128v128h-128v-128zM640 1024h128v128h-128v-128zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
450
+ <glyph unicode="&#xf1c7;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 288v192q0 14 9 23t23 9h131l166 167q16 15 35 7 q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23zM762 206.5q1 -26.5 20 -44.5q20 -17 44 -17q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5z M973.5 54.5q2.5 -26.5 23.5 -42.5q18 -15 40 -15q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
451
+ <glyph unicode="&#xf1c8;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 256v384q0 52 38 90t90 38h384q52 0 90 -38t38 -90 v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90zM960 403v90l265 266q9 9 23 9q4 0 12 -2q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
452
+ <glyph unicode="&#xf1c9;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM254 429q-14 19 0 38l226 301q8 11 21 12.5t24 -6.5 l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5zM636 43l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5l-63 10q-13 2 -20.5 13t-5.5 24zM947.5 181 q-1.5 13 6.5 24l182 243l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5l226 -301q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
453
+ <glyph unicode="&#xf1ca;" d="M39 1286h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132 t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390z" />
454
+ <glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M0 367v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64v-546q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64zM154 511l193 129l-193 129v-258zM216 367l603 -402v359l-334 223zM216 913l269 -180l334 223v359zM624 640 l272 -182l272 182l-272 182zM973 -35l603 402l-269 180l-334 -223v-359zM973 956l334 -223l269 180l-603 402v-359zM1445 640l193 -129v258z" />
455
+ <glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M0 407q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5 h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55t121.5 -21 q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z " />
456
+ <glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM128 640q0 -190 90 -361l194 194q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361zM512 640 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM535 -38q171 -90 361 -90t361 90l-194 194q-82 -28 -167 -28t-167 28zM535 1318l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90t-361 -90z M1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
457
+ <glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M0 640q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348z" />
458
+ <glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
459
+ <glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM44 640q0 -173 67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331 t-67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331zM87 640q0 205 98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385zM206 217l58 34q29 -49 73 -99 l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13v-66q-208 6 -385 109.5t-283 275.5zM207 1063q106 172 282 275.5t385 109.5v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98zM415 805q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10 t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162q-67 77 -98 169l232 80q-14 42 -14 85t14 85zM918 -102 q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99l58 -34q-106 -172 -283 -275.5t-385 -109.5v66zM918 1382v66q209 -6 385 -109.5t282 -275.5l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13zM1516 428q36 103 36 212q0 112 -35 212l82 28 q-19 56 -49 112l57 33q98 -180 98 -385t-98 -385l-57 33q27 52 49 112z" />
460
+ <glyph unicode="&#xf1d2;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 218q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5 t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85q0 -53 41 -77v-3q-113 -37 -113 -139zM382 225q0 64 98 64q102 0 102 -61q0 -66 -93 -66 q-107 0 -107 63zM395 693q0 90 77 90q36 0 55 -25.5t19 -63.5q0 -85 -74 -85q-77 0 -77 84zM755 1072q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392q0 -50 -3 -75z M966 771q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117z" />
461
+ <glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M68 7q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47q98 0 218 47v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58q0 -31 22.5 -51.5t58 -32 t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5zM272 18q0 -101 172 -101q151 0 151 105q0 100 -165 100q-158 0 -158 -104zM293 775q0 -135 124 -135q119 0 119 137q0 61 -30 102t-89 41 q-124 0 -124 -145zM875 1389q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5t-39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5zM901 220q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134h-222zM1217 901v190h96v76q0 54 -6 89h227q-6 -41 -6 -165 h171v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6z" />
462
+ <glyph unicode="&#xf1d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM368 1135l323 -589v-435h134v436l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3 q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150z" />
463
+ <glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M57 953q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5t-78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153 t-153 102t-186 38t-186 -38t-153 -102t-102 -153t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265zM113.5 38.5q10.5 121.5 29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5t136.5 -56.5 t56.5 -136.5t-57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5z" />
464
+ <glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M18 264q0 275 252 466q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5 t3.5 -5t2 -3.5q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9 t-98 20t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20 q-18 -41 -54.5 -74.5t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100z" />
465
+ <glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M0 858q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490z M380 1075q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5t-25 66t-66 25q-43 0 -76 -25.5t-33 -65.5zM816 404q0 143 81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109q-150 -37 -218 -37 q-169 0 -311 70.5t-223.5 191.5t-81.5 264zM888 1075q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5t-24.5 66t-65.5 25q-43 0 -76 -25.5t-33 -65.5zM1160 568q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5 t-22.5 -49.5zM1559 568q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5z" />
466
+ <glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M0 508q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55z" />
467
+ <glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M0 508q-3 39 32 59l1664 960q35 21 68 -2q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55zM209 522l336 -137l863 639l-478 -797l492 -201 l221 1323z" />
468
+ <glyph unicode="&#xf1da;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45zM512 480v64q0 14 9 23t23 9h224v352 q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
469
+ <glyph unicode="&#xf1db;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5z" />
470
+ <glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M62 1338q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5 t45 -15t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18 q-15 10 -45 12t-53 2t-41 14t-18 45z" />
471
+ <glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M24 926q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108 q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179q-64 117 -64 259z" />
472
+ <glyph unicode="&#xf1de;" d="M0 736v64q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM128 -96v672h256v-672q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM128 960v416q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-416h-256zM512 224v64q0 40 28 68 t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 64h256v-160q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v160zM640 448v928q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-928h-256zM1024 992v64q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1152 -96v928h256v-928q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 1216v160q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-160h-256z" />
473
+ <glyph unicode="&#xf1e0;" d="M0 640q0 133 93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5z" />
474
+ <glyph unicode="&#xf1e1;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 640q0 -88 62.5 -150.5t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5 t150.5 62.5t62.5 150.5t-62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5z" />
475
+ <glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M0 448q0 143 55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68l243 244l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5 t-225 150t-150 225t-55.5 273.5zM170 615q10 -24 35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49t-34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49zM1376 1472q0 13 9 23q10 9 23 9t23 -9l90 -91q10 -9 10 -22.5t-10 -22.5 q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23zM1536 1408v96q0 14 9 23t23 9t23 -9t9 -23v-96q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1605 1242.5q0 13.5 10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5z M1605 1381.5q0 13.5 10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5zM1632 1312q0 14 9 23t23 9h96q14 0 23 -9t9 -23t-9 -23t-23 -9h-96q-14 0 -23 9t-9 23z" />
476
+ <glyph unicode="&#xf1e3;" horiz-adv-x="1792" />
477
+ <glyph unicode="&#xf1e4;" horiz-adv-x="1792" />
478
+ <glyph unicode="&#xf1e5;" horiz-adv-x="1792" />
479
+ <glyph unicode="&#xf1e6;" horiz-adv-x="1792" />
480
+ <glyph unicode="&#xf1e7;" horiz-adv-x="1792" />
481
+ <glyph unicode="&#xf1e8;" horiz-adv-x="1792" />
482
+ <glyph unicode="&#xf1e9;" horiz-adv-x="1792" />
483
+ <glyph unicode="&#xf1ea;" horiz-adv-x="1792" />
484
+ <glyph unicode="&#xf1eb;" horiz-adv-x="1792" />
485
+ <glyph unicode="&#xf1ec;" horiz-adv-x="1792" />
486
+ <glyph unicode="&#xf1ed;" horiz-adv-x="1792" />
487
+ <glyph unicode="&#xf1ee;" horiz-adv-x="1792" />
488
+ <glyph unicode="&#xf500;" horiz-adv-x="1792" />
489
+ <glyph horiz-adv-x="1792" />
490
+ <glyph horiz-adv-x="1792" />
491
+ <glyph horiz-adv-x="1792" />
492
+ <glyph horiz-adv-x="1792" />
493
+ <glyph horiz-adv-x="1792" />
494
+ <glyph horiz-adv-x="1792" />
495
+ <glyph horiz-adv-x="1792" />
496
+ <glyph horiz-adv-x="1792" />
497
+ <glyph horiz-adv-x="1792" />
498
+ <glyph horiz-adv-x="1792" />
499
+ <glyph horiz-adv-x="1792" />
500
+ <glyph horiz-adv-x="1792" />
501
+ <glyph horiz-adv-x="1792" />
502
+ <glyph horiz-adv-x="1792" />
503
+ </font>
504
+ </defs></svg>
dist/assets/css/fonts/fontawesome-webfont.ttf ADDED
Binary file
dist/assets/css/fonts/fontawesome-webfont.woff ADDED
Binary file
dist/assets/css/jquery-ui.css ADDED
@@ -0,0 +1,1917 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.10.3 - 2013-05-03
2
+
3
+ * http://jqueryui.com
4
+
5
+ * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
6
+
7
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
8
+
9
+ * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
10
+
11
+
12
+ /* Layout helpers
13
+
14
+ ----------------------------------*/
15
+
16
+ .ui-helper-hidden {
17
+ display: none;
18
+ }
19
+
20
+ .ui-helper-hidden-accessible {
21
+ overflow: hidden;
22
+ clip: rect(0 0 0 0);
23
+ position: absolute;
24
+ width: 1px;
25
+ height: 1px;
26
+ margin: -1px;
27
+ padding: 0;
28
+ border: 0;
29
+ }
30
+
31
+ .ui-helper-reset {
32
+ margin: 0;
33
+ padding: 0;
34
+ border: 0;
35
+ outline: 0;
36
+ font-size: 100%;
37
+ line-height: 1.3;
38
+ text-decoration: none;
39
+ list-style: none;
40
+ }
41
+
42
+ .ui-helper-cwpr_clearfix:before,
43
+ .ui-helper-cwpr_clearfix:after {
44
+ display: table;
45
+ border-collapse: collapse;
46
+ content: "";
47
+ }
48
+
49
+ .ui-helper-cwpr_clearfix:after {
50
+ clear: both;
51
+ }
52
+
53
+ .ui-helper-cwpr_clearfix {
54
+ min-height: 0;
55
+ /* support: IE7 */
56
+ }
57
+
58
+ .ui-helper-zfix {
59
+ position: absolute;
60
+ top: 0;
61
+ left: 0;
62
+ width: 100%;
63
+ height: 100%;
64
+ opacity: 0;
65
+
66
+ filter: Alpha(Opacity=0);
67
+ }
68
+
69
+ .ui-front {
70
+ z-index: 100;
71
+ }
72
+
73
+
74
+ /* Interaction Cues
75
+
76
+ ----------------------------------*/
77
+
78
+ .ui-state-disabled {
79
+ cursor: default !important;
80
+ }
81
+
82
+
83
+ /* Icons
84
+
85
+ ----------------------------------*/
86
+
87
+ /* states and images */
88
+
89
+ .ui-icon {
90
+ display: block;
91
+ overflow: hidden;
92
+ background-repeat: no-repeat;
93
+ text-indent: -99999px;
94
+ }
95
+
96
+
97
+ /* Misc visuals
98
+
99
+ ----------------------------------*/
100
+
101
+ /* Overlays */
102
+
103
+ .ui-widget-overlay {
104
+ position: fixed;
105
+ top: 0;
106
+ left: 0;
107
+ width: 100%;
108
+ height: 100%;
109
+ }
110
+
111
+ .ui-accordion .ui-accordion-header {
112
+ display: block;
113
+ position: relative;
114
+ min-height: 0;
115
+ margin-top: 2px;
116
+ padding: 0.5em 0.5em 0.5em 0.7em;
117
+ cursor: pointer;
118
+ /* support: IE7 */
119
+ }
120
+
121
+ .ui-accordion .ui-accordion-icons {
122
+ padding-left: 2.2em;
123
+ }
124
+
125
+ .ui-accordion .ui-accordion-noicons {
126
+ padding-left: 0.7em;
127
+ }
128
+
129
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
130
+ padding-left: 2.2em;
131
+ }
132
+
133
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
134
+ position: absolute;
135
+ top: 50%;
136
+ left: 0.5em;
137
+ margin-top: -8px;
138
+ }
139
+
140
+ .ui-accordion .ui-accordion-content {
141
+ overflow: auto;
142
+ padding: 1em 2.2em;
143
+ border-top: 0;
144
+ }
145
+
146
+ .ui-autocomplete {
147
+ position: absolute;
148
+ top: 0;
149
+ left: 0;
150
+ cursor: default;
151
+ }
152
+
153
+ .ui-button {
154
+ display: inline-block;
155
+ overflow: visible;
156
+ position: relative;
157
+ margin-right: 0.1em;
158
+ padding: 0;
159
+ line-height: normal;
160
+ text-align: center;
161
+ vertical-align: middle;
162
+ cursor: pointer;
163
+ /* removes extra width in IE */
164
+ }
165
+
166
+ .ui-button,
167
+ .ui-button:link,
168
+ .ui-button:visited,
169
+ .ui-button:hover,
170
+ .ui-button:active {
171
+ text-decoration: none;
172
+ }
173
+
174
+ /* to make room for the icon, a width needs to be set here */
175
+
176
+ .ui-button-icon-only {
177
+ width: 2.2em;
178
+ }
179
+
180
+ /* button elements seem to need a little more width */
181
+
182
+ button.ui-button-icon-only {
183
+ width: 2.4em;
184
+ }
185
+
186
+ .ui-button-icons-only {
187
+ width: 3.4em;
188
+ }
189
+
190
+ button.ui-button-icons-only {
191
+ width: 3.7em;
192
+ }
193
+
194
+ /* button text element */
195
+
196
+ .ui-button .ui-button-text {
197
+ display: block;
198
+ line-height: normal;
199
+ }
200
+
201
+ .ui-button-text-only .ui-button-text {
202
+ padding: 0.4em 1em;
203
+ }
204
+
205
+ .ui-button-icon-only .ui-button-text,
206
+ .ui-button-icons-only .ui-button-text {
207
+ padding: 0.4em;
208
+ text-indent: -9999999px;
209
+ }
210
+
211
+ .ui-button-text-icon-primary .ui-button-text,
212
+ .ui-button-text-icons .ui-button-text {
213
+ padding: 0.4em 1em 0.4em 2.1em;
214
+ }
215
+
216
+ .ui-button-text-icon-secondary .ui-button-text,
217
+ .ui-button-text-icons .ui-button-text {
218
+ padding: 0.4em 2.1em 0.4em 1em;
219
+ }
220
+
221
+ .ui-button-text-icons .ui-button-text {
222
+ padding-right: 2.1em;
223
+ padding-left: 2.1em;
224
+ }
225
+
226
+ /* no icon support for input elements, provide padding by default */
227
+
228
+ input.ui-button {
229
+ padding: 0.4em 1em;
230
+ }
231
+
232
+ /* button icon element(s) */
233
+
234
+ .ui-button-icon-only .ui-icon,
235
+ .ui-button-text-icon-primary .ui-icon,
236
+ .ui-button-text-icon-secondary .ui-icon,
237
+ .ui-button-text-icons .ui-icon,
238
+ .ui-button-icons-only .ui-icon {
239
+ position: absolute;
240
+ top: 50%;
241
+ margin-top: -8px;
242
+ }
243
+
244
+ .ui-button-icon-only .ui-icon {
245
+ left: 50%;
246
+ margin-left: -8px;
247
+ }
248
+
249
+ .ui-button-text-icon-primary .ui-button-icon-primary,
250
+ .ui-button-text-icons .ui-button-icon-primary,
251
+ .ui-button-icons-only .ui-button-icon-primary {
252
+ left: 0.5em;
253
+ }
254
+
255
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
256
+ .ui-button-text-icons .ui-button-icon-secondary,
257
+ .ui-button-icons-only .ui-button-icon-secondary {
258
+ right: 0.5em;
259
+ }
260
+
261
+ /* button sets */
262
+
263
+ .ui-buttonset {
264
+ margin-right: 7px;
265
+ }
266
+
267
+ .ui-buttonset .ui-button {
268
+ margin-right: -0.3em;
269
+ margin-left: 0;
270
+ }
271
+
272
+ /* workarounds */
273
+
274
+ /* reset extra padding in Firefox, see h5bp.com/l */
275
+
276
+ input.ui-button::-moz-focus-inner,
277
+ button.ui-button::-moz-focus-inner {
278
+ padding: 0;
279
+ border: 0;
280
+ }
281
+
282
+ .ui-datepicker {
283
+ display: none;
284
+ width: 17em;
285
+ padding: 0.2em 0.2em 0;
286
+ }
287
+
288
+ .ui-datepicker .ui-datepicker-header {
289
+ position: relative;
290
+ padding: 0.2em 0;
291
+ }
292
+
293
+ .ui-datepicker .ui-datepicker-prev,
294
+ .ui-datepicker .ui-datepicker-next {
295
+ position: absolute;
296
+ top: 2px;
297
+ width: 1.8em;
298
+ height: 1.8em;
299
+ }
300
+
301
+ .ui-datepicker .ui-datepicker-prev-hover,
302
+ .ui-datepicker .ui-datepicker-next-hover {
303
+ top: 1px;
304
+ }
305
+
306
+ .ui-datepicker .ui-datepicker-prev {
307
+ left: 2px;
308
+ }
309
+
310
+ .ui-datepicker .ui-datepicker-next {
311
+ right: 2px;
312
+ }
313
+
314
+ .ui-datepicker .ui-datepicker-prev-hover {
315
+ left: 1px;
316
+ }
317
+
318
+ .ui-datepicker .ui-datepicker-next-hover {
319
+ right: 1px;
320
+ }
321
+
322
+ .ui-datepicker .ui-datepicker-prev span,
323
+ .ui-datepicker .ui-datepicker-next span {
324
+ display: block;
325
+ position: absolute;
326
+ top: 50%;
327
+ left: 50%;
328
+ margin-top: -8px;
329
+ margin-left: -8px;
330
+ }
331
+
332
+ .ui-datepicker .ui-datepicker-title {
333
+ margin: 0 2.3em;
334
+ line-height: 1.8em;
335
+ text-align: center;
336
+ }
337
+
338
+ .ui-datepicker .ui-datepicker-title select {
339
+ margin: 1px 0;
340
+ font-size: 1em;
341
+ }
342
+
343
+ .ui-datepicker select.ui-datepicker-month-year {
344
+ width: 100%;
345
+ }
346
+
347
+ .ui-datepicker select.ui-datepicker-month,
348
+ .ui-datepicker select.ui-datepicker-year {
349
+ width: 49%;
350
+ }
351
+
352
+ .ui-datepicker table {
353
+ width: 100%;
354
+ margin: 0 0 0.4em;
355
+ border-collapse: collapse;
356
+ font-size: 0.9em;
357
+ }
358
+
359
+ .ui-datepicker th {
360
+ padding: 0.7em 0.3em;
361
+ border: 0;
362
+ font-weight: bold;
363
+ text-align: center;
364
+ }
365
+
366
+ .ui-datepicker td {
367
+ padding: 1px;
368
+ border: 0;
369
+ }
370
+
371
+ .ui-datepicker td span,
372
+ .ui-datepicker td a {
373
+ display: block;
374
+ padding: 0.2em;
375
+ text-align: right;
376
+ text-decoration: none;
377
+ }
378
+
379
+ .ui-datepicker .ui-datepicker-buttonpane {
380
+ margin: 0.7em 0 0 0;
381
+ padding: 0 0.2em;
382
+ border-right: 0;
383
+ border-bottom: 0;
384
+ border-left: 0;
385
+ background-image: none;
386
+ }
387
+
388
+ .ui-datepicker .ui-datepicker-buttonpane button {
389
+ float: right;
390
+ overflow: visible;
391
+ width: auto;
392
+ margin: 0.5em 0.2em 0.4em;
393
+ padding: 0.2em 0.6em 0.3em 0.6em;
394
+ cursor: pointer;
395
+ }
396
+
397
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
398
+ float: left;
399
+ }
400
+
401
+ /* with multiple calendars */
402
+
403
+ .ui-datepicker.ui-datepicker-multi {
404
+ width: auto;
405
+ }
406
+
407
+ .ui-datepicker-multi .ui-datepicker-group {
408
+ float: left;
409
+ }
410
+
411
+ .ui-datepicker-multi .ui-datepicker-group table {
412
+ width: 95%;
413
+ margin: 0 auto 0.4em;
414
+ }
415
+
416
+ .ui-datepicker-multi-2 .ui-datepicker-group {
417
+ width: 50%;
418
+ }
419
+
420
+ .ui-datepicker-multi-3 .ui-datepicker-group {
421
+ width: 33.3%;
422
+ }
423
+
424
+ .ui-datepicker-multi-4 .ui-datepicker-group {
425
+ width: 25%;
426
+ }
427
+
428
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
429
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
430
+ border-left-width: 0;
431
+ }
432
+
433
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
434
+ clear: left;
435
+ }
436
+
437
+ .ui-datepicker-row-break {
438
+ clear: both;
439
+ width: 100%;
440
+ font-size: 0;
441
+ }
442
+
443
+ /* RTL support */
444
+
445
+ .ui-datepicker-rtl {
446
+ direction: rtl;
447
+ }
448
+
449
+ .ui-datepicker-rtl .ui-datepicker-prev {
450
+ right: 2px;
451
+ left: auto;
452
+ }
453
+
454
+ .ui-datepicker-rtl .ui-datepicker-next {
455
+ right: auto;
456
+ left: 2px;
457
+ }
458
+
459
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
460
+ right: 1px;
461
+ left: auto;
462
+ }
463
+
464
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
465
+ right: auto;
466
+ left: 1px;
467
+ }
468
+
469
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
470
+ clear: right;
471
+ }
472
+
473
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
474
+ float: left;
475
+ }
476
+
477
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
478
+ .ui-datepicker-rtl .ui-datepicker-group {
479
+ float: right;
480
+ }
481
+
482
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
483
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
484
+ border-right-width: 0;
485
+ border-left-width: 1px;
486
+ }
487
+
488
+ .ui-dialog {
489
+ position: absolute;
490
+ top: 0;
491
+ left: 0;
492
+ padding: 0.2em;
493
+ outline: 0;
494
+ }
495
+
496
+ .ui-dialog .ui-dialog-titlebar {
497
+ position: relative;
498
+ padding: 0.4em 1em;
499
+ }
500
+
501
+ .ui-dialog .ui-dialog-title {
502
+ float: left;
503
+ overflow: hidden;
504
+ width: 90%;
505
+ margin: 0.1em 0;
506
+ white-space: nowrap;
507
+ text-overflow: ellipsis;
508
+ }
509
+
510
+ .ui-dialog .ui-dialog-titlebar-close {
511
+ position: absolute;
512
+ top: 50%;
513
+ right: 0.3em;
514
+ width: 21px;
515
+ height: 20px;
516
+ margin: -10px 0 0 0;
517
+ padding: 1px;
518
+ }
519
+
520
+ .ui-dialog .ui-dialog-content {
521
+ overflow: auto;
522
+ position: relative;
523
+ padding: 0.5em 1em;
524
+ border: 0;
525
+ background: none;
526
+ }
527
+
528
+ .ui-dialog .ui-dialog-buttonpane {
529
+ margin-top: 0.5em;
530
+ padding: 0.3em 1em 0.5em 0.4em;
531
+ border-width: 1px 0 0 0;
532
+ background-image: none;
533
+ text-align: left;
534
+ }
535
+
536
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
537
+ float: right;
538
+ }
539
+
540
+ .ui-dialog .ui-dialog-buttonpane button {
541
+ margin: 0.5em 0.4em 0.5em 0;
542
+ cursor: pointer;
543
+ }
544
+
545
+ .ui-dialog .ui-resizable-se {
546
+ right: -5px;
547
+ bottom: -5px;
548
+ width: 12px;
549
+ height: 12px;
550
+ background-position: 16px 16px;
551
+ }
552
+
553
+ .ui-draggable .ui-dialog-titlebar {
554
+ cursor: move;
555
+ }
556
+
557
+ .ui-menu {
558
+ display: block;
559
+ margin: 0;
560
+ padding: 2px;
561
+ outline: none;
562
+ list-style: none;
563
+ }
564
+
565
+ .ui-menu .ui-menu {
566
+ position: absolute;
567
+ margin-top: -3px;
568
+ }
569
+
570
+ .ui-menu .ui-menu-item {
571
+ width: 100%;
572
+ margin: 0;
573
+ padding: 0;
574
+ /* support: IE10, see #8844 */
575
+ list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP//yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
576
+ }
577
+
578
+ .ui-menu .ui-menu-divider {
579
+ height: 0;
580
+ margin: 5px -2px 5px -2px;
581
+ border-width: 1px 0 0 0;
582
+ font-size: 0;
583
+ line-height: 0;
584
+ }
585
+
586
+ .ui-menu .ui-menu-item a {
587
+ display: block;
588
+ min-height: 0;
589
+ padding: 2px 0.4em;
590
+ /* support: IE7 */
591
+ font-weight: normal;
592
+ line-height: 1.5;
593
+ text-decoration: none;
594
+ }
595
+
596
+ .ui-menu .ui-menu-item a.ui-state-focus,
597
+ .ui-menu .ui-menu-item a.ui-state-active {
598
+ margin: -1px;
599
+ font-weight: normal;
600
+ }
601
+
602
+ .ui-menu .ui-state-disabled {
603
+ margin: 0.4em 0 0.2em;
604
+ font-weight: normal;
605
+ line-height: 1.5;
606
+ }
607
+
608
+ .ui-menu .ui-state-disabled a {
609
+ cursor: default;
610
+ }
611
+
612
+ /* icon support */
613
+
614
+ .ui-menu-icons {
615
+ position: relative;
616
+ }
617
+
618
+ .ui-menu-icons .ui-menu-item a {
619
+ position: relative;
620
+ padding-left: 2em;
621
+ }
622
+
623
+ /* left-aligned */
624
+
625
+ .ui-menu .ui-icon {
626
+ position: absolute;
627
+ top: 0.2em;
628
+ left: 0.2em;
629
+ }
630
+
631
+ /* right-aligned */
632
+
633
+ .ui-menu .ui-menu-icon {
634
+ float: right;
635
+ position: static;
636
+ }
637
+
638
+ .ui-progressbar {
639
+ overflow: hidden;
640
+ height: 2em;
641
+ text-align: left;
642
+ }
643
+
644
+ .ui-progressbar .ui-progressbar-value {
645
+ height: 100%;
646
+ margin: -1px;
647
+ }
648
+
649
+ .ui-progressbar .ui-progressbar-overlay {
650
+ height: 100%;
651
+ opacity: 0.25;
652
+ background: url("images/animated-overlay.gif");
653
+
654
+ filter: alpha(opacity=25);
655
+ }
656
+
657
+ .ui-progressbar-indeterminate .ui-progressbar-value {
658
+ background-image: none;
659
+ }
660
+
661
+ .ui-resizable {
662
+ position: relative;
663
+ }
664
+
665
+ .ui-resizable-handle {
666
+ display: block;
667
+ position: absolute;
668
+ font-size: 0.1px;
669
+ }
670
+
671
+ .ui-resizable-disabled .ui-resizable-handle,
672
+ .ui-resizable-autohide .ui-resizable-handle {
673
+ display: none;
674
+ }
675
+
676
+ .ui-resizable-n {
677
+ top: -5px;
678
+ left: 0;
679
+ width: 100%;
680
+ height: 7px;
681
+ cursor: n-resize;
682
+ }
683
+
684
+ .ui-resizable-s {
685
+ bottom: -5px;
686
+ left: 0;
687
+ width: 100%;
688
+ height: 7px;
689
+ cursor: s-resize;
690
+ }
691
+
692
+ .ui-resizable-e {
693
+ top: 0;
694
+ right: -5px;
695
+ width: 7px;
696
+ height: 100%;
697
+ cursor: e-resize;
698
+ }
699
+
700
+ .ui-resizable-w {
701
+ top: 0;
702
+ left: -5px;
703
+ width: 7px;
704
+ height: 100%;
705
+ cursor: w-resize;
706
+ }
707
+
708
+ .ui-resizable-se {
709
+ right: 1px;
710
+ bottom: 1px;
711
+ width: 12px;
712
+ height: 12px;
713
+ cursor: se-resize;
714
+ }
715
+
716
+ .ui-resizable-sw {
717
+ bottom: -5px;
718
+ left: -5px;
719
+ width: 9px;
720
+ height: 9px;
721
+ cursor: sw-resize;
722
+ }
723
+
724
+ .ui-resizable-nw {
725
+ top: -5px;
726
+ left: -5px;
727
+ width: 9px;
728
+ height: 9px;
729
+ cursor: nw-resize;
730
+ }
731
+
732
+ .ui-resizable-ne {
733
+ top: -5px;
734
+ right: -5px;
735
+ width: 9px;
736
+ height: 9px;
737
+ cursor: ne-resize;
738
+ }
739
+
740
+ .ui-selectable-helper {
741
+ position: absolute;
742
+ z-index: 100;
743
+ border: 1px dotted black;
744
+ }
745
+
746
+ .ui-slider {
747
+ position: relative;
748
+ text-align: left;
749
+ }
750
+
751
+ .ui-slider .ui-slider-handle {
752
+ position: absolute;
753
+ z-index: 2;
754
+ width: 1.2em;
755
+ height: 1.2em;
756
+ cursor: default;
757
+ }
758
+
759
+ .ui-slider .ui-slider-range {
760
+ display: block;
761
+ position: absolute;
762
+ z-index: 1;
763
+ border: 0;
764
+ background-position: 0 0;
765
+ font-size: 0.7em;
766
+ }
767
+
768
+ /* For IE8 - See #6727 */
769
+
770
+ .ui-slider.ui-state-disabled .ui-slider-handle,
771
+ .ui-slider.ui-state-disabled .ui-slider-range {
772
+ -webkit-filter: inherit;
773
+ filter: inherit;
774
+ }
775
+
776
+ .ui-slider-horizontal {
777
+ height: 0.8em;
778
+ }
779
+
780
+ .ui-slider-horizontal .ui-slider-handle {
781
+ top: -0.3em;
782
+ margin-left: -0.6em;
783
+ }
784
+
785
+ .ui-slider-horizontal .ui-slider-range {
786
+ top: 0;
787
+ height: 100%;
788
+ }
789
+
790
+ .ui-slider-horizontal .ui-slider-range-min {
791
+ left: 0;
792
+ }
793
+
794
+ .ui-slider-horizontal .ui-slider-range-max {
795
+ right: 0;
796
+ }
797
+
798
+ .ui-slider-vertical {
799
+ width: 0.8em;
800
+ height: 100px;
801
+ }
802
+
803
+ .ui-slider-vertical .ui-slider-handle {
804
+ left: -0.3em;
805
+ margin-bottom: -0.6em;
806
+ margin-left: 0;
807
+ }
808
+
809
+ .ui-slider-vertical .ui-slider-range {
810
+ left: 0;
811
+ width: 100%;
812
+ }
813
+
814
+ .ui-slider-vertical .ui-slider-range-min {
815
+ bottom: 0;
816
+ }
817
+
818
+ .ui-slider-vertical .ui-slider-range-max {
819
+ top: 0;
820
+ }
821
+
822
+ .ui-spinner {
823
+ display: inline-block;
824
+ overflow: hidden;
825
+ position: relative;
826
+ padding: 0;
827
+ vertical-align: middle;
828
+ }
829
+
830
+ .ui-spinner-input {
831
+ margin: 0.2em 22px 0.2em 0.4em;
832
+ padding: 0;
833
+ border: none;
834
+ color: inherit;
835
+ background: none;
836
+ vertical-align: middle;
837
+ }
838
+
839
+ .ui-spinner-button {
840
+ display: block;
841
+ overflow: hidden;
842
+ position: absolute;
843
+ right: 0;
844
+ width: 16px;
845
+ height: 50%;
846
+ margin: 0;
847
+ padding: 0;
848
+ font-size: 0.5em;
849
+ text-align: center;
850
+ cursor: default;
851
+ }
852
+
853
+ /* more specificity required here to overide default borders */
854
+
855
+ .ui-spinner a.ui-spinner-button {
856
+ border-top: none;
857
+ border-right: none;
858
+ border-bottom: none;
859
+ }
860
+
861
+ /* vertical centre icon */
862
+
863
+ .ui-spinner .ui-icon {
864
+ position: absolute;
865
+ top: 50%;
866
+ left: 0;
867
+ margin-top: -8px;
868
+ }
869
+
870
+ .ui-spinner-up {
871
+ top: 0;
872
+ }
873
+
874
+ .ui-spinner-down {
875
+ bottom: 0;
876
+ }
877
+
878
+ /* TR overrides */
879
+
880
+ .ui-spinner .ui-icon-triangle-1-s {
881
+ /* need to fix icons sprite */
882
+ background-position: -65px -16px;
883
+ }
884
+
885
+ .ui-tabs {
886
+ position: relative;
887
+ /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
888
+ padding: 0.2em;
889
+ }
890
+
891
+ .ui-tabs .ui-tabs-nav {
892
+ margin: 0;
893
+ padding: 0.2em 0.2em 0;
894
+ }
895
+
896
+ .ui-tabs .ui-tabs-nav li {
897
+ float: left;
898
+ position: relative;
899
+ top: 0;
900
+ margin: 1px 0.2em 0 0;
901
+ padding: 0;
902
+ border-bottom-width: 0;
903
+ white-space: nowrap;
904
+ list-style: none;
905
+ }
906
+
907
+ .ui-tabs .ui-tabs-nav li a {
908
+ float: left;
909
+ padding: 0.5em 1em;
910
+ text-decoration: none;
911
+ }
912
+
913
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
914
+ margin-bottom: -1px;
915
+ padding-bottom: 1px;
916
+ }
917
+
918
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
919
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
920
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
921
+ cursor: text;
922
+ }
923
+
924
+ .ui-tabs .ui-tabs-nav li a,
925
+ /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
926
+
927
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
928
+ cursor: pointer;
929
+ }
930
+
931
+ .ui-tabs .ui-tabs-panel {
932
+ display: block;
933
+ padding: 1em 1.4em;
934
+ border-width: 0;
935
+ background: none;
936
+ }
937
+
938
+ .ui-tooltip {
939
+ position: absolute;
940
+ z-index: 9999;
941
+ max-width: 300px;
942
+ padding: 8px;
943
+ box-shadow: 0 0 5px #aaa;
944
+ }
945
+
946
+ body .ui-tooltip {
947
+ border-width: 2px;
948
+ }
949
+
950
+
951
+ /* Component containers
952
+
953
+ ----------------------------------*/
954
+
955
+ .ui-widget {
956
+ font-family: Verdana,Arial,sans-serif;
957
+ font-size: 1.1em;
958
+ }
959
+
960
+ .ui-widget .ui-widget {
961
+ font-size: 1em;
962
+ }
963
+
964
+ .ui-widget input,
965
+ .ui-widget select,
966
+ .ui-widget textarea,
967
+ .ui-widget button {
968
+ font-family: Verdana,Arial,sans-serif;
969
+ font-size: 1em;
970
+ }
971
+
972
+ .ui-widget-content {
973
+ border: 1px solid #aaa;
974
+ color: #222;
975
+ background: #fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
976
+ }
977
+
978
+ .ui-widget-content a {
979
+ color: #222;
980
+ }
981
+
982
+ .ui-widget-header {
983
+ border: 1px solid #aaa;
984
+ color: #222;
985
+ background: #ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
986
+ font-weight: bold;
987
+ }
988
+
989
+ .ui-widget-header a {
990
+ color: #222;
991
+ }
992
+
993
+
994
+ /* Interaction states
995
+
996
+ ----------------------------------*/
997
+
998
+ .ui-state-default,
999
+ .ui-widget-content .ui-state-default,
1000
+ .ui-widget-header .ui-state-default {
1001
+ border: 1px solid #d3d3d3;
1002
+ color: #555;
1003
+ background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
1004
+ font-weight: normal;
1005
+ }
1006
+
1007
+ .ui-state-default a,
1008
+ .ui-state-default a:link,
1009
+ .ui-state-default a:visited {
1010
+ color: #555;
1011
+ text-decoration: none;
1012
+ }
1013
+
1014
+ .ui-state-hover,
1015
+ .ui-widget-content .ui-state-hover,
1016
+ .ui-widget-header .ui-state-hover,
1017
+ .ui-state-focus,
1018
+ .ui-widget-content .ui-state-focus,
1019
+ .ui-widget-header .ui-state-focus {
1020
+ border: 1px solid #999;
1021
+ color: #212121;
1022
+ background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
1023
+ font-weight: normal;
1024
+ }
1025
+
1026
+ .ui-state-hover a,
1027
+ .ui-state-hover a:hover,
1028
+ .ui-state-hover a:link,
1029
+ .ui-state-hover a:visited {
1030
+ color: #212121;
1031
+ text-decoration: none;
1032
+ }
1033
+
1034
+ .ui-state-active,
1035
+ .ui-widget-content .ui-state-active,
1036
+ .ui-widget-header .ui-state-active {
1037
+ border: 1px solid #aaa;
1038
+ color: #212121;
1039
+ background: #fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
1040
+ font-weight: normal;
1041
+ }
1042
+
1043
+ .ui-state-active a,
1044
+ .ui-state-active a:link,
1045
+ .ui-state-active a:visited {
1046
+ color: #212121;
1047
+ text-decoration: none;
1048
+ }
1049
+
1050
+
1051
+ /* Interaction Cues
1052
+
1053
+ ----------------------------------*/
1054
+
1055
+ .ui-state-highlight,
1056
+ .ui-widget-content .ui-state-highlight,
1057
+ .ui-widget-header .ui-state-highlight {
1058
+ border: 1px solid #fcefa1;
1059
+ color: #363636;
1060
+ background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
1061
+ }
1062
+
1063
+ .ui-state-highlight a,
1064
+ .ui-widget-content .ui-state-highlight a,
1065
+ .ui-widget-header .ui-state-highlight a {
1066
+ color: #363636;
1067
+ }
1068
+
1069
+ .ui-state-error,
1070
+ .ui-widget-content .ui-state-error,
1071
+ .ui-widget-header .ui-state-error {
1072
+ border: 1px solid #cd0a0a;
1073
+ color: #cd0a0a;
1074
+ background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
1075
+ }
1076
+
1077
+ .ui-state-error a,
1078
+ .ui-widget-content .ui-state-error a,
1079
+ .ui-widget-header .ui-state-error a {
1080
+ color: #cd0a0a;
1081
+ }
1082
+
1083
+ .ui-state-error-text,
1084
+ .ui-widget-content .ui-state-error-text,
1085
+ .ui-widget-header .ui-state-error-text {
1086
+ color: #cd0a0a;
1087
+ }
1088
+
1089
+ .ui-priority-primary,
1090
+ .ui-widget-content .ui-priority-primary,
1091
+ .ui-widget-header .ui-priority-primary {
1092
+ font-weight: bold;
1093
+ }
1094
+
1095
+ .ui-priority-secondary,
1096
+ .ui-widget-content .ui-priority-secondary,
1097
+ .ui-widget-header .ui-priority-secondary {
1098
+ opacity: 0.7;
1099
+ font-weight: normal;
1100
+
1101
+ filter: Alpha(Opacity=70);
1102
+ }
1103
+
1104
+ .ui-state-disabled,
1105
+ .ui-widget-content .ui-state-disabled,
1106
+ .ui-widget-header .ui-state-disabled {
1107
+ opacity: 0.35;
1108
+ background-image: none;
1109
+
1110
+ filter: Alpha(Opacity=35);
1111
+ }
1112
+
1113
+ .ui-state-disabled .ui-icon {
1114
+ filter: Alpha(Opacity=35);
1115
+ /* For IE8 - See #6059 */
1116
+ }
1117
+
1118
+
1119
+ /* Icons
1120
+
1121
+ ----------------------------------*/
1122
+
1123
+ /* states and images */
1124
+
1125
+ .ui-icon {
1126
+ width: 16px;
1127
+ height: 16px;
1128
+ }
1129
+
1130
+ .ui-icon,
1131
+ .ui-widget-content .ui-icon {
1132
+ background-image: url(images/ui-icons_222222_256x240.png);
1133
+ }
1134
+
1135
+ .ui-widget-header .ui-icon {
1136
+ background-image: url(images/ui-icons_222222_256x240.png);
1137
+ }
1138
+
1139
+ .ui-state-default .ui-icon {
1140
+ background-image: url(images/ui-icons_888888_256x240.png);
1141
+ }
1142
+
1143
+ .ui-state-hover .ui-icon,
1144
+ .ui-state-focus .ui-icon {
1145
+ background-image: url(images/ui-icons_454545_256x240.png);
1146
+ }
1147
+
1148
+ .ui-state-active .ui-icon {
1149
+ background-image: url(images/ui-icons_454545_256x240.png);
1150
+ }
1151
+
1152
+ .ui-state-highlight .ui-icon {
1153
+ background-image: url(images/ui-icons_2e83ff_256x240.png);
1154
+ }
1155
+
1156
+ .ui-state-error .ui-icon,
1157
+ .ui-state-error-text .ui-icon {
1158
+ background-image: url(images/ui-icons_cd0a0a_256x240.png);
1159
+ }
1160
+
1161
+ /* positioning */
1162
+
1163
+ .ui-icon-blank {
1164
+ background-position: 16px 16px;
1165
+ }
1166
+
1167
+ .ui-icon-carat-1-n {
1168
+ background-position: 0 0;
1169
+ }
1170
+
1171
+ .ui-icon-carat-1-ne {
1172
+ background-position: -16px 0;
1173
+ }
1174
+
1175
+ .ui-icon-carat-1-e {
1176
+ background-position: -32px 0;
1177
+ }
1178
+
1179
+ .ui-icon-carat-1-se {
1180
+ background-position: -48px 0;
1181
+ }
1182
+
1183
+ .ui-icon-carat-1-s {
1184
+ background-position: -64px 0;
1185
+ }
1186
+
1187
+ .ui-icon-carat-1-sw {
1188
+ background-position: -80px 0;
1189
+ }
1190
+
1191
+ .ui-icon-carat-1-w {
1192
+ background-position: -96px 0;
1193
+ }
1194
+
1195
+ .ui-icon-carat-1-nw {
1196
+ background-position: -112px 0;
1197
+ }
1198
+
1199
+ .ui-icon-carat-2-n-s {
1200
+ background-position: -128px 0;
1201
+ }
1202
+
1203
+ .ui-icon-carat-2-e-w {
1204
+ background-position: -144px 0;
1205
+ }
1206
+
1207
+ .ui-icon-triangle-1-n {
1208
+ background-position: 0 -16px;
1209
+ }
1210
+
1211
+ .ui-icon-triangle-1-ne {
1212
+ background-position: -16px -16px;
1213
+ }
1214
+
1215
+ .ui-icon-triangle-1-e {
1216
+ background-position: -32px -16px;
1217
+ }
1218
+
1219
+ .ui-icon-triangle-1-se {
1220
+ background-position: -48px -16px;
1221
+ }
1222
+
1223
+ .ui-icon-triangle-1-s {
1224
+ background-position: -64px -16px;
1225
+ }
1226
+
1227
+ .ui-icon-triangle-1-sw {
1228
+ background-position: -80px -16px;
1229
+ }
1230
+
1231
+ .ui-icon-triangle-1-w {
1232
+ background-position: -96px -16px;
1233
+ }
1234
+
1235
+ .ui-icon-triangle-1-nw {
1236
+ background-position: -112px -16px;
1237
+ }
1238
+
1239
+ .ui-icon-triangle-2-n-s {
1240
+ background-position: -128px -16px;
1241
+ }
1242
+
1243
+ .ui-icon-triangle-2-e-w {
1244
+ background-position: -144px -16px;
1245
+ }
1246
+
1247
+ .ui-icon-arrow-1-n {
1248
+ background-position: 0 -32px;
1249
+ }
1250
+
1251
+ .ui-icon-arrow-1-ne {
1252
+ background-position: -16px -32px;
1253
+ }
1254
+
1255
+ .ui-icon-arrow-1-e {
1256
+ background-position: -32px -32px;
1257
+ }
1258
+
1259
+ .ui-icon-arrow-1-se {
1260
+ background-position: -48px -32px;
1261
+ }
1262
+
1263
+ .ui-icon-arrow-1-s {
1264
+ background-position: -64px -32px;
1265
+ }
1266
+
1267
+ .ui-icon-arrow-1-sw {
1268
+ background-position: -80px -32px;
1269
+ }
1270
+
1271
+ .ui-icon-arrow-1-w {
1272
+ background-position: -96px -32px;
1273
+ }
1274
+
1275
+ .ui-icon-arrow-1-nw {
1276
+ background-position: -112px -32px;
1277
+ }
1278
+
1279
+ .ui-icon-arrow-2-n-s {
1280
+ background-position: -128px -32px;
1281
+ }
1282
+
1283
+ .ui-icon-arrow-2-ne-sw {
1284
+ background-position: -144px -32px;
1285
+ }
1286
+
1287
+ .ui-icon-arrow-2-e-w {
1288
+ background-position: -160px -32px;
1289
+ }
1290
+
1291
+ .ui-icon-arrow-2-se-nw {
1292
+ background-position: -176px -32px;
1293
+ }
1294
+
1295
+ .ui-icon-arrowstop-1-n {
1296
+ background-position: -192px -32px;
1297
+ }
1298
+
1299
+ .ui-icon-arrowstop-1-e {
1300
+ background-position: -208px -32px;
1301
+ }
1302
+
1303
+ .ui-icon-arrowstop-1-s {
1304
+ background-position: -224px -32px;
1305
+ }
1306
+
1307
+ .ui-icon-arrowstop-1-w {
1308
+ background-position: -240px -32px;
1309
+ }
1310
+
1311
+ .ui-icon-arrowthick-1-n {
1312
+ background-position: 0 -48px;
1313
+ }
1314
+
1315
+ .ui-icon-arrowthick-1-ne {
1316
+ background-position: -16px -48px;
1317
+ }
1318
+
1319
+ .ui-icon-arrowthick-1-e {
1320
+ background-position: -32px -48px;
1321
+ }
1322
+
1323
+ .ui-icon-arrowthick-1-se {
1324
+ background-position: -48px -48px;
1325
+ }
1326
+
1327
+ .ui-icon-arrowthick-1-s {
1328
+ background-position: -64px -48px;
1329
+ }
1330
+
1331
+ .ui-icon-arrowthick-1-sw {
1332
+ background-position: -80px -48px;
1333
+ }
1334
+
1335
+ .ui-icon-arrowthick-1-w {
1336
+ background-position: -96px -48px;
1337
+ }
1338
+
1339
+ .ui-icon-arrowthick-1-nw {
1340
+ background-position: -112px -48px;
1341
+ }
1342
+
1343
+ .ui-icon-arrowthick-2-n-s {
1344
+ background-position: -128px -48px;
1345
+ }
1346
+
1347
+ .ui-icon-arrowthick-2-ne-sw {
1348
+ background-position: -144px -48px;
1349
+ }
1350
+
1351
+ .ui-icon-arrowthick-2-e-w {
1352
+ background-position: -160px -48px;
1353
+ }
1354
+
1355
+ .ui-icon-arrowthick-2-se-nw {
1356
+ background-position: -176px -48px;
1357
+ }
1358
+
1359
+ .ui-icon-arrowthickstop-1-n {
1360
+ background-position: -192px -48px;
1361
+ }
1362
+
1363
+ .ui-icon-arrowthickstop-1-e {
1364
+ background-position: -208px -48px;
1365
+ }
1366
+
1367
+ .ui-icon-arrowthickstop-1-s {
1368
+ background-position: -224px -48px;
1369
+ }
1370
+
1371
+ .ui-icon-arrowthickstop-1-w {
1372
+ background-position: -240px -48px;
1373
+ }
1374
+
1375
+ .ui-icon-arrowreturnthick-1-w {
1376
+ background-position: 0 -64px;
1377
+ }
1378
+
1379
+ .ui-icon-arrowreturnthick-1-n {
1380
+ background-position: -16px -64px;
1381
+ }
1382
+
1383
+ .ui-icon-arrowreturnthick-1-e {
1384
+ background-position: -32px -64px;
1385
+ }
1386
+
1387
+ .ui-icon-arrowreturnthick-1-s {
1388
+ background-position: -48px -64px;
1389
+ }
1390
+
1391
+ .ui-icon-arrowreturn-1-w {
1392
+ background-position: -64px -64px;
1393
+ }
1394
+
1395
+ .ui-icon-arrowreturn-1-n {
1396
+ background-position: -80px -64px;
1397
+ }
1398
+
1399
+ .ui-icon-arrowreturn-1-e {
1400
+ background-position: -96px -64px;
1401
+ }
1402
+
1403
+ .ui-icon-arrowreturn-1-s {
1404
+ background-position: -112px -64px;
1405
+ }
1406
+
1407
+ .ui-icon-arrowrefresh-1-w {
1408
+ background-position: -128px -64px;
1409
+ }
1410
+
1411
+ .ui-icon-arrowrefresh-1-n {
1412
+ background-position: -144px -64px;
1413
+ }
1414
+
1415
+ .ui-icon-arrowrefresh-1-e {
1416
+ background-position: -160px -64px;
1417
+ }
1418
+
1419
+ .ui-icon-arrowrefresh-1-s {
1420
+ background-position: -176px -64px;
1421
+ }
1422
+
1423
+ .ui-icon-arrow-4 {
1424
+ background-position: 0 -80px;
1425
+ }
1426
+
1427
+ .ui-icon-arrow-4-diag {
1428
+ background-position: -16px -80px;
1429
+ }
1430
+
1431
+ .ui-icon-extlink {
1432
+ background-position: -32px -80px;
1433
+ }
1434
+
1435
+ .ui-icon-newwin {
1436
+ background-position: -48px -80px;
1437
+ }
1438
+
1439
+ .ui-icon-refresh {
1440
+ background-position: -64px -80px;
1441
+ }
1442
+
1443
+ .ui-icon-shuffle {
1444
+ background-position: -80px -80px;
1445
+ }
1446
+
1447
+ .ui-icon-transfer-e-w {
1448
+ background-position: -96px -80px;
1449
+ }
1450
+
1451
+ .ui-icon-transferthick-e-w {
1452
+ background-position: -112px -80px;
1453
+ }
1454
+
1455
+ .ui-icon-folder-collapsed {
1456
+ background-position: 0 -96px;
1457
+ }
1458
+
1459
+ .ui-icon-folder-open {
1460
+ background-position: -16px -96px;
1461
+ }
1462
+
1463
+ .ui-icon-document {
1464
+ background-position: -32px -96px;
1465
+ }
1466
+
1467
+ .ui-icon-document-b {
1468
+ background-position: -48px -96px;
1469
+ }
1470
+
1471
+ .ui-icon-note {
1472
+ background-position: -64px -96px;
1473
+ }
1474
+
1475
+ .ui-icon-mail-closed {
1476
+ background-position: -80px -96px;
1477
+ }
1478
+
1479
+ .ui-icon-mail-open {
1480
+ background-position: -96px -96px;
1481
+ }
1482
+
1483
+ .ui-icon-suitcase {
1484
+ background-position: -112px -96px;
1485
+ }
1486
+
1487
+ .ui-icon-comment {
1488
+ background-position: -128px -96px;
1489
+ }
1490
+
1491
+ .ui-icon-person {
1492
+ background-position: -144px -96px;
1493
+ }
1494
+
1495
+ .ui-icon-print {
1496
+ background-position: -160px -96px;
1497
+ }
1498
+
1499
+ .ui-icon-trash {
1500
+ background-position: -176px -96px;
1501
+ }
1502
+
1503
+ .ui-icon-locked {
1504
+ background-position: -192px -96px;
1505
+ }
1506
+
1507
+ .ui-icon-unlocked {
1508
+ background-position: -208px -96px;
1509
+ }
1510
+
1511
+ .ui-icon-bookmark {
1512
+ background-position: -224px -96px;
1513
+ }
1514
+
1515
+ .ui-icon-tag {
1516
+ background-position: -240px -96px;
1517
+ }
1518
+
1519
+ .ui-icon-home {
1520
+ background-position: 0 -112px;
1521
+ }
1522
+
1523
+ .ui-icon-flag {
1524
+ background-position: -16px -112px;
1525
+ }
1526
+
1527
+ .ui-icon-calendar {
1528
+ background-position: -32px -112px;
1529
+ }
1530
+
1531
+ .ui-icon-cart {
1532
+ background-position: -48px -112px;
1533
+ }
1534
+
1535
+ .ui-icon-pencil {
1536
+ background-position: -64px -112px;
1537
+ }
1538
+
1539
+ .ui-icon-clock {
1540
+ background-position: -80px -112px;
1541
+ }
1542
+
1543
+ .ui-icon-disk {
1544
+ background-position: -96px -112px;
1545
+ }
1546
+
1547
+ .ui-icon-calculator {
1548
+ background-position: -112px -112px;
1549
+ }
1550
+
1551
+ .ui-icon-zoomin {
1552
+ background-position: -128px -112px;
1553
+ }
1554
+
1555
+ .ui-icon-zoomout {
1556
+ background-position: -144px -112px;
1557
+ }
1558
+
1559
+ .ui-icon-search {
1560
+ background-position: -160px -112px;
1561
+ }
1562
+
1563
+ .ui-icon-wrench {
1564
+ background-position: -176px -112px;
1565
+ }
1566
+
1567
+ .ui-icon-gear {
1568
+ background-position: -192px -112px;
1569
+ }
1570
+
1571
+ .ui-icon-heart {
1572
+ background-position: -208px -112px;
1573
+ }
1574
+
1575
+ .ui-icon-star {
1576
+ background-position: -224px -112px;
1577
+ }
1578
+
1579
+ .ui-icon-link {
1580
+ background-position: -240px -112px;
1581
+ }
1582
+
1583
+ .ui-icon-cancel {
1584
+ background-position: 0 -128px;
1585
+ }
1586
+
1587
+ .ui-icon-plus {
1588
+ background-position: -16px -128px;
1589
+ }
1590
+
1591
+ .ui-icon-plusthick {
1592
+ background-position: -32px -128px;
1593
+ }
1594
+
1595
+ .ui-icon-minus {
1596
+ background-position: -48px -128px;
1597
+ }
1598
+
1599
+ .ui-icon-minusthick {
1600
+ background-position: -64px -128px;
1601
+ }
1602
+
1603
+ .ui-icon-close {
1604
+ background-position: -80px -128px;
1605
+ }
1606
+
1607
+ .ui-icon-closethick {
1608
+ background-position: -96px -128px;
1609
+ }
1610
+
1611
+ .ui-icon-key {
1612
+ background-position: -112px -128px;
1613
+ }
1614
+
1615
+ .ui-icon-lightbulb {
1616
+ background-position: -128px -128px;
1617
+ }
1618
+
1619
+ .ui-icon-scissors {
1620
+ background-position: -144px -128px;
1621
+ }
1622
+
1623
+ .ui-icon-clipboard {
1624
+ background-position: -160px -128px;
1625
+ }
1626
+
1627
+ .ui-icon-copy {
1628
+ background-position: -176px -128px;
1629
+ }
1630
+
1631
+ .ui-icon-contact {
1632
+ background-position: -192px -128px;
1633
+ }
1634
+
1635
+ .ui-icon-image {
1636
+ background-position: -208px -128px;
1637
+ }
1638
+
1639
+ .ui-icon-video {
1640
+ background-position: -224px -128px;
1641
+ }
1642
+
1643
+ .ui-icon-script {
1644
+ background-position: -240px -128px;
1645
+ }
1646
+
1647
+ .ui-icon-alert {
1648
+ background-position: 0 -144px;
1649
+ }
1650
+
1651
+ .ui-icon-info {
1652
+ background-position: -16px -144px;
1653
+ }
1654
+
1655
+ .ui-icon-notice {
1656
+ background-position: -32px -144px;
1657
+ }
1658
+
1659
+ .ui-icon-help {
1660
+ background-position: -48px -144px;
1661
+ }
1662
+
1663
+ .ui-icon-check {
1664
+ background-position: -64px -144px;
1665
+ }
1666
+
1667
+ .ui-icon-bullet {
1668
+ background-position: -80px -144px;
1669
+ }
1670
+
1671
+ .ui-icon-radio-on {
1672
+ background-position: -96px -144px;
1673
+ }
1674
+
1675
+ .ui-icon-radio-off {
1676
+ background-position: -112px -144px;
1677
+ }
1678
+
1679
+ .ui-icon-pin-w {
1680
+ background-position: -128px -144px;
1681
+ }
1682
+
1683
+ .ui-icon-pin-s {
1684
+ background-position: -144px -144px;
1685
+ }
1686
+
1687
+ .ui-icon-play {
1688
+ background-position: 0 -160px;
1689
+ }
1690
+
1691
+ .ui-icon-pause {
1692
+ background-position: -16px -160px;
1693
+ }
1694
+
1695
+ .ui-icon-seek-next {
1696
+ background-position: -32px -160px;
1697
+ }
1698
+
1699
+ .ui-icon-seek-prev {
1700
+ background-position: -48px -160px;
1701
+ }
1702
+
1703
+ .ui-icon-seek-end {
1704
+ background-position: -64px -160px;
1705
+ }
1706
+
1707
+ .ui-icon-seek-start {
1708
+ background-position: -80px -160px;
1709
+ }
1710
+
1711
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1712
+
1713
+ .ui-icon-seek-first {
1714
+ background-position: -80px -160px;
1715
+ }
1716
+
1717
+ .ui-icon-stop {
1718
+ background-position: -96px -160px;
1719
+ }
1720
+
1721
+ .ui-icon-eject {
1722
+ background-position: -112px -160px;
1723
+ }
1724
+
1725
+ .ui-icon-volume-off {
1726
+ background-position: -128px -160px;
1727
+ }
1728
+
1729
+ .ui-icon-volume-on {
1730
+ background-position: -144px -160px;
1731
+ }
1732
+
1733
+ .ui-icon-power {
1734
+ background-position: 0 -176px;
1735
+ }
1736
+
1737
+ .ui-icon-signal-diag {
1738
+ background-position: -16px -176px;
1739
+ }
1740
+
1741
+ .ui-icon-signal {
1742
+ background-position: -32px -176px;
1743
+ }
1744
+
1745
+ .ui-icon-battery-0 {
1746
+ background-position: -48px -176px;
1747
+ }
1748
+
1749
+ .ui-icon-battery-1 {
1750
+ background-position: -64px -176px;
1751
+ }
1752
+
1753
+ .ui-icon-battery-2 {
1754
+ background-position: -80px -176px;
1755
+ }
1756
+
1757
+ .ui-icon-battery-3 {
1758
+ background-position: -96px -176px;
1759
+ }
1760
+
1761
+ .ui-icon-circle-plus {
1762
+ background-position: 0 -192px;
1763
+ }
1764
+
1765
+ .ui-icon-circle-minus {
1766
+ background-position: -16px -192px;
1767
+ }
1768
+
1769
+ .ui-icon-circle-close {
1770
+ background-position: -32px -192px;
1771
+ }
1772
+
1773
+ .ui-icon-circle-triangle-e {
1774
+ background-position: -48px -192px;
1775
+ }
1776
+
1777
+ .ui-icon-circle-triangle-s {
1778
+ background-position: -64px -192px;
1779
+ }
1780
+
1781
+ .ui-icon-circle-triangle-w {
1782
+ background-position: -80px -192px;
1783
+ }
1784
+
1785
+ .ui-icon-circle-triangle-n {
1786
+ background-position: -96px -192px;
1787
+ }
1788
+
1789
+ .ui-icon-circle-arrow-e {
1790
+ background-position: -112px -192px;
1791
+ }
1792
+
1793
+ .ui-icon-circle-arrow-s {
1794
+ background-position: -128px -192px;
1795
+ }
1796
+
1797
+ .ui-icon-circle-arrow-w {
1798
+ background-position: -144px -192px;
1799
+ }
1800
+
1801
+ .ui-icon-circle-arrow-n {
1802
+ background-position: -160px -192px;
1803
+ }
1804
+
1805
+ .ui-icon-circle-zoomin {
1806
+ background-position: -176px -192px;
1807
+ }
1808
+
1809
+ .ui-icon-circle-zoomout {
1810
+ background-position: -192px -192px;
1811
+ }
1812
+
1813
+ .ui-icon-circle-check {
1814
+ background-position: -208px -192px;
1815
+ }
1816
+
1817
+ .ui-icon-circlesmall-plus {
1818
+ background-position: 0 -208px;
1819
+ }
1820
+
1821
+ .ui-icon-circlesmall-minus {
1822
+ background-position: -16px -208px;
1823
+ }
1824
+
1825
+ .ui-icon-circlesmall-close {
1826
+ background-position: -32px -208px;
1827
+ }
1828
+
1829
+ .ui-icon-squaresmall-plus {
1830
+ background-position: -48px -208px;
1831
+ }
1832
+
1833
+ .ui-icon-squaresmall-minus {
1834
+ background-position: -64px -208px;
1835
+ }
1836
+
1837
+ .ui-icon-squaresmall-close {
1838
+ background-position: -80px -208px;
1839
+ }
1840
+
1841
+ .ui-icon-grip-dotted-vertical {
1842
+ background-position: 0 -224px;
1843
+ }
1844
+
1845
+ .ui-icon-grip-dotted-horizontal {
1846
+ background-position: -16px -224px;
1847
+ }
1848
+
1849
+ .ui-icon-grip-solid-vertical {
1850
+ background-position: -32px -224px;
1851
+ }
1852
+
1853
+ .ui-icon-grip-solid-horizontal {
1854
+ background-position: -48px -224px;
1855
+ }
1856
+
1857
+ .ui-icon-gripsmall-diagonal-se {
1858
+ background-position: -64px -224px;
1859
+ }
1860
+
1861
+ .ui-icon-grip-diagonal-se {
1862
+ background-position: -80px -224px;
1863
+ }
1864
+
1865
+
1866
+ /* Misc visuals
1867
+
1868
+ ----------------------------------*/
1869
+
1870
+ /* Corner radius */
1871
+
1872
+ .ui-corner-all,
1873
+ .ui-corner-top,
1874
+ .ui-corner-left,
1875
+ .ui-corner-tl {
1876
+ border-top-left-radius: 4px;
1877
+ }
1878
+
1879
+ .ui-corner-all,
1880
+ .ui-corner-top,
1881
+ .ui-corner-right,
1882
+ .ui-corner-tr {
1883
+ border-top-right-radius: 4px;
1884
+ }
1885
+
1886
+ .ui-corner-all,
1887
+ .ui-corner-bottom,
1888
+ .ui-corner-left,
1889
+ .ui-corner-bl {
1890
+ border-bottom-left-radius: 4px;
1891
+ }
1892
+
1893
+ .ui-corner-all,
1894
+ .ui-corner-bottom,
1895
+ .ui-corner-right,
1896
+ .ui-corner-br {
1897
+ border-bottom-right-radius: 4px;
1898
+ }
1899
+
1900
+ /* Overlays */
1901
+
1902
+ .ui-widget-overlay {
1903
+ opacity: 0.3;
1904
+ background: #aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1905
+
1906
+ filter: Alpha(Opacity=30);
1907
+ }
1908
+
1909
+ .ui-widget-shadow {
1910
+ margin: -8px 0 0 -8px;
1911
+ padding: 8px;
1912
+ border-radius: 8px;
1913
+ opacity: 0.3;
1914
+ background: #aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1915
+
1916
+ filter: Alpha(Opacity=30);
1917
+ }
dist/assets/css/lightbox.css ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Preload images */
2
+ body:after {
3
+ display: none;
4
+ content: url(../img/close.png) url(../img/loading.gif) url(../img/prev.png) url(../img/next.png);
5
+ }
6
+
7
+ .lightboxOverlay {
8
+ display: none;
9
+ position: absolute;
10
+ z-index: 9999;
11
+ top: 0;
12
+ left: 0;
13
+ opacity: 0.8;
14
+ background-color: black;
15
+
16
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
17
+ }
18
+
19
+ .lightbox {
20
+ position: absolute;
21
+ z-index: 10000;
22
+ left: 0;
23
+ width: 100%;
24
+ font-weight: normal;
25
+ line-height: 0;
26
+ text-align: center;
27
+ }
28
+
29
+ .lightbox .lb-image {
30
+ display: block;
31
+ max-width: inherit;
32
+ height: auto;
33
+ border-radius: 3px;
34
+ }
35
+
36
+ .lightbox a img {
37
+ border: none;
38
+ }
39
+
40
+ .lb-outerContainer {
41
+ position: relative;
42
+ width: 250px;
43
+ height: 250px;
44
+ margin: 0 auto;
45
+ border-radius: 4px;
46
+ background-color: white;
47
+
48
+ *zoom: 1;
49
+ }
50
+
51
+ .lb-outerContainer:after {
52
+ display: table;
53
+ clear: both;
54
+ content: "";
55
+ }
56
+
57
+ .lb-container {
58
+ padding: 4px;
59
+ }
60
+
61
+ .lb-loader {
62
+ position: absolute;
63
+ top: 43%;
64
+ left: 0;
65
+ width: 100%;
66
+ height: 25%;
67
+ line-height: 0;
68
+ text-align: center;
69
+ }
70
+
71
+ .lb-cancel {
72
+ display: block;
73
+ width: 32px;
74
+ height: 32px;
75
+ margin: 0 auto;
76
+ background: url(../img/loading.gif) no-repeat;
77
+ }
78
+
79
+ .lb-nav {
80
+ position: absolute;
81
+ z-index: 10;
82
+ top: 0;
83
+ left: 0;
84
+ width: 100%;
85
+ height: 100%;
86
+ }
87
+
88
+ .lb-container > .nav {
89
+ left: 0;
90
+ }
91
+
92
+ .lb-nav a {
93
+ outline: none;
94
+ background-image: url("data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
95
+ }
96
+
97
+ .lb-prev,
98
+ .lb-next {
99
+ display: block;
100
+ height: 100%;
101
+ cursor: pointer;
102
+ }
103
+
104
+ .lb-nav a.lb-prev {
105
+ float: left;
106
+ left: 0;
107
+ width: 34%;
108
+ opacity: 0;
109
+ background: url(../img/prev.png) left 48% no-repeat;
110
+ -webkit-transition: opacity 0.6s;
111
+ transition: opacity 0.6s;
112
+
113
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
114
+ }
115
+
116
+ .lb-nav a.lb-prev:hover {
117
+ opacity: 1;
118
+
119
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
120
+ }
121
+
122
+ .lb-nav a.lb-next {
123
+ float: right;
124
+ right: 0;
125
+ width: 64%;
126
+ opacity: 0;
127
+ background: url(../img/next.png) right 48% no-repeat;
128
+ -webkit-transition: opacity 0.6s;
129
+ transition: opacity 0.6s;
130
+
131
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
132
+ }
133
+
134
+ .lb-nav a.lb-next:hover {
135
+ opacity: 1;
136
+
137
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
138
+ }
139
+
140
+ .lb-dataContainer {
141
+ width: 100%;
142
+ margin: 0 auto;
143
+ padding-top: 5px;
144
+ border-bottom-right-radius: 4px;
145
+ border-bottom-left-radius: 4px;
146
+
147
+ *zoom: 1;
148
+ }
149
+
150
+ .lb-dataContainer:after {
151
+ display: table;
152
+ clear: both;
153
+ content: "";
154
+ }
155
+
156
+ .lb-data {
157
+ padding: 0 4px;
158
+ color: #ccc;
159
+ }
160
+
161
+ .lb-data .lb-details {
162
+ float: left;
163
+ width: 85%;
164
+ line-height: 1.1em;
165
+ text-align: left;
166
+ }
167
+
168
+ .lb-data .lb-caption {
169
+ font-size: 13px;
170
+ font-weight: bold;
171
+ line-height: 1em;
172
+ }
173
+
174
+ .lb-data .lb-number {
175
+ display: block;
176
+ clear: left;
177
+ padding-bottom: 1em;
178
+ color: #999;
179
+ font-size: 12px;
180
+ }
181
+
182
+ .lb-data .lb-close {
183
+ display: block;
184
+ float: right;
185
+ width: 30px;
186
+ height: 30px;
187
+ outline: none;
188
+ opacity: 0.7;
189
+ background: url(../img/close.png) top right no-repeat;
190
+ text-align: right;
191
+ -webkit-transition: opacity 0.2s;
192
+ transition: opacity 0.2s;
193
+
194
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
195
+ }
196
+
197
+ .lb-data .lb-close:hover {
198
+ opacity: 1;
199
+ cursor: pointer;
200
+
201
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
202
+ }
dist/assets/css/rating-amp.css ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wppr-c100.wppr-p100 .wppr-bar {
2
+ -webkit-transform: rotate(360deg);
3
+ -ms-transform: rotate(360deg);
4
+ transform: rotate(360deg);
5
+ }
6
+
7
+ .wppr-c100.wppr-p80 .wppr-bar,
8
+ .wppr-c100.wppr-p81 .wppr-bar,
9
+ .wppr-c100.wppr-p82 .wppr-bar,
10
+ .wppr-c100.wppr-p83 .wppr-bar,
11
+ .wppr-c100.wppr-p84 .wppr-bar,
12
+ .wppr-c100.wppr-p85 .wppr-bar,
13
+ .wppr-c100.wppr-p86 .wppr-bar,
14
+ .wppr-c100.wppr-p87 .wppr-bar,
15
+ .wppr-c100.wppr-p88 .wppr-bar,
16
+ .wppr-c100.wppr-p89 .wppr-bar,
17
+ .wppr-c100.wppr-p90 .wppr-bar,
18
+ .wppr-c100.wppr-p91 .wppr-bar,
19
+ .wppr-c100.wppr-p92 .wppr-bar,
20
+ .wppr-c100.wppr-p93 .wppr-bar,
21
+ .wppr-c100.wppr-p94 .wppr-bar,
22
+ .wppr-c100.wppr-p95 .wppr-bar,
23
+ .wppr-c100.wppr-p96 .wppr-bar,
24
+ .wppr-c100.wppr-p97 .wppr-bar,
25
+ .wppr-c100.wppr-p98 .wppr-bar,
26
+ .wppr-c100.wppr-p99 .wppr-bar {
27
+ -webkit-transform: rotate(324deg);
28
+ -ms-transform: rotate(324deg);
29
+ transform: rotate(324deg);
30
+ }
31
+
32
+ .wppr-c100.wppr-p60 .wppr-bar,
33
+ .wppr-c100.wppr-p62 .wppr-bar,
34
+ .wppr-c100.wppr-p61 .wppr-bar,
35
+ .wppr-c100.wppr-p63 .wppr-bar,
36
+ .wppr-c100.wppr-p64 .wppr-bar,
37
+ .wppr-c100.wppr-p65 .wppr-bar,
38
+ .wppr-c100.wppr-p66 .wppr-bar,
39
+ .wppr-c100.wppr-p67 .wppr-bar,
40
+ .wppr-c100.wppr-p68 .wppr-bar,
41
+ .wppr-c100.wppr-p69 .wppr-bar,
42
+ .wppr-c100.wppr-p70 .wppr-bar,
43
+ .wppr-c100.wppr-p71 .wppr-bar,
44
+ .wppr-c100.wppr-p71 .wppr-bar,
45
+ .wppr-c100.wppr-p72 .wppr-bar,
46
+ .wppr-c100.wppr-p74 .wppr-bar,
47
+ .wppr-c100.wppr-p75 .wppr-bar,
48
+ .wppr-c100.wppr-p76 .wppr-bar,
49
+ .wppr-c100.wppr-p77 .wppr-bar,
50
+ .wppr-c100.wppr-p78 .wppr-bar,
51
+ .wppr-c100.wppr-p79 .wppr-bar {
52
+ -webkit-transform: rotate(252deg);
53
+ -ms-transform: rotate(252deg);
54
+ transform: rotate(252deg);
55
+ }
56
+
57
+ .wppr-c100.wppr-p40 .wppr-bar,
58
+ .wppr-c100.wppr-p41 .wppr-bar,
59
+ .wppr-c100.wppr-p42 .wppr-bar,
60
+ .wppr-c100.wppr-p43 .wppr-bar,
61
+ .wppr-c100.wppr-p44 .wppr-bar,
62
+ .wppr-c100.wppr-p45 .wppr-bar,
63
+ .wppr-c100.wppr-p46 .wppr-bar,
64
+ .wppr-c100.wppr-p47 .wppr-bar,
65
+ .wppr-c100.wppr-p48 .wppr-bar,
66
+ .wppr-c100.wppr-p49 .wppr-bar,
67
+ .wppr-c100.wppr-p50 .wppr-bar,
68
+ .wppr-c100.wppr-p51 .wppr-bar,
69
+ .wppr-c100.wppr-p52 .wppr-bar,
70
+ .wppr-c100.wppr-p53 .wppr-bar,
71
+ .wppr-c100.wppr-p54 .wppr-bar,
72
+ .wppr-c100.wppr-p55 .wppr-bar,
73
+ .wppr-c100.wppr-p56 .wppr-bar,
74
+ .wppr-c100.wppr-p57 .wppr-bar,
75
+ .wppr-c100.wppr-p58 .wppr-bar,
76
+ .wppr-c100.wppr-p59 .wppr-bar {
77
+ -webkit-transform: rotate(180deg);
78
+ -ms-transform: rotate(180deg);
79
+ transform: rotate(180deg);
80
+ }
81
+
82
+ .wppr-c100.wppr-p20 .wppr-bar,
83
+ .wppr-c100.wppr-p21 .wppr-bar,
84
+ .wppr-c100.wppr-p22 .wppr-bar,
85
+ .wppr-c100.wppr-p23 .wppr-bar,
86
+ .wppr-c100.wppr-p24 .wppr-bar,
87
+ .wppr-c100.wppr-p25 .wppr-bar,
88
+ .wppr-c100.wppr-p26 .wppr-bar,
89
+ .wppr-c100.wppr-p27 .wppr-bar,
90
+ .wppr-c100.wppr-p28 .wppr-bar,
91
+ .wppr-c100.wppr-p29 .wppr-bar,
92
+ .wppr-c100.wppr-p30 .wppr-bar,
93
+ .wppr-c100.wppr-p31 .wppr-bar,
94
+ .wppr-c100.wppr-p32 .wppr-bar,
95
+ .wppr-c100.wppr-p33 .wppr-bar,
96
+ .wppr-c100.wppr-p34 .wppr-bar,
97
+ .wppr-c100.wppr-p35 .wppr-bar,
98
+ .wppr-c100.wppr-p36 .wppr-bar,
99
+ .wppr-c100.wppr-p37 .wppr-bar,
100
+ .wppr-c100.wppr-p38 .wppr-bar,
101
+ .wppr-c100.wppr-p39 .wppr-bar {
102
+ -webkit-transform: rotate(108deg);
103
+ -ms-transform: rotate(108deg);
104
+ transform: rotate(108deg);
105
+ }
106
+
107
+ .wppr-c100.wppr-p1 .wppr-bar,
108
+ .wppr-c100.wppr-p2 .wppr-bar,
109
+ .wppr-c100.wppr-p3 .wppr-bar,
110
+ .wppr-c100.wppr-p4 .wppr-bar,
111
+ .wppr-c100.wppr-p5 .wppr-bar,
112
+ .wppr-c100.wppr-p6 .wppr-bar,
113
+ .wppr-c100.wppr-p7 .wppr-bar,
114
+ .wppr-c100.wppr-p6 .wppr-bar,
115
+ .wppr-c100.wppr-p7 .wppr-bar,
116
+ .wppr-c100.wppr-p8 .wppr-bar,
117
+ .wppr-c100.wppr-p9 .wppr-bar,
118
+ .wppr-c100.wppr-p10 .wppr-bar,
119
+ .wppr-c100.wppr-p11 .wppr-bar,
120
+ .wppr-c100.wppr-p12 .wppr-bar,
121
+ .wppr-c100.wppr-p13 .wppr-bar,
122
+ .wppr-c100.wppr-p14 .wppr-bar,
123
+ .wppr-c100.wppr-p15 .wppr-bar,
124
+ .wppr-c100.wppr-p16 .wppr-bar,
125
+ .wppr-c100.wppr-p17 .wppr-bar,
126
+ .wppr-c100.wppr-p18 .wppr-bar,
127
+ .wppr-c100.wppr-p19 .wppr-bar {
128
+ -webkit-transform: rotate(36deg);
129
+ -ms-transform: rotate(36deg);
130
+ transform: rotate(36deg);
131
+ }
132
+
133
+ .wppr-inline-pie-chart {
134
+ position: relative;
135
+ width: 120px;
136
+ height: 120px;
137
+ }
138
+
139
+ .wppr-default-img {
140
+ width: 150px;
141
+ height: 150px;
142
+ }
143
+
144
+ .wppr-product-image {
145
+ width: 150px;
146
+ height: 150px;
147
+ }
dist/assets/css/style1.css ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Template 1
3
+ */
4
+
5
+ .wppr-template-1 .wppr-review-stars-author,
6
+ .wppr-template-1 .wppr-review-grade-number,
7
+ .wppr-template-1 .wppr-review-grade-option-header span,
8
+ .wppr-template-1 .wppr-review-pros-cons h3 {
9
+ color: inherit;
10
+ }
11
+
12
+ .wppr-template-1 .wppr-review-grade,
13
+ .wppr-template-1 .wppr-review-pros-cons {
14
+ margin-top: 30px;
15
+ }
16
+
17
+ .wppr-template-1 .wppr-review-grade {
18
+ display: table;
19
+ width: 100%;
20
+ }
21
+
22
+ .wppr-template-1 .wppr-review-stars-grade {
23
+ display: table-cell;
24
+ float: left;
25
+ position: relative;
26
+ font-family: FontAwesome;
27
+ font-size: 38px;
28
+ -webkit-font-smoothing: antialiased;
29
+ line-height: 1;
30
+ }
31
+
32
+ .wppr-template-1.rtl .wppr-review-stars-grade {
33
+ float: right;
34
+ }
35
+
36
+ .wppr-template-1 .wppr-review-stars.rtl .wppr-review-stars-grade i.fa-star-half-o {
37
+ transform: rotateY(180deg);
38
+ }
39
+
40
+
41
+ .wppr-template-1 .wppr-review-stars-author {
42
+ display: table-cell;
43
+ width: 100%;
44
+ padding-left: 15px;
45
+ font-weight: 700;
46
+ vertical-align: middle;
47
+ }
48
+
49
+ .wppr-template-1.rtl .wppr-review-stars-author {
50
+ padding-left: 0px;
51
+ padding-right: 15px;
52
+ }
53
+
54
+ .wppr-template-1 .wppr-review-grade-number,
55
+ .wppr-template-1 .wppr-review-grade-options {
56
+ display: table-cell;
57
+ width: 100%;
58
+ vertical-align: top;
59
+ }
60
+
61
+ .wppr-template-1 .wppr-review-grade-number {
62
+ float: left;
63
+ font-size: 60px;
64
+ font-weight: 700;
65
+ line-height: 1;
66
+ letter-spacing: -0.085em;
67
+ }
68
+
69
+ .wppr-template-1 .wppr-review-grade-option-header span {
70
+ float: left;
71
+ width: 50%;
72
+ }
73
+
74
+ .wppr-template-1.rtl .wppr-review-grade-option-header span {
75
+ float: right;
76
+ width: 50%;
77
+ }
78
+
79
+ .wppr-template-1 .wppr-review-grade-options {
80
+ padding-left: 45px;
81
+ }
82
+
83
+ .wppr-template-1 .wppr-review-grade-options.rtl {
84
+ padding-right: 45px;
85
+ padding-left: 0px;
86
+ }
87
+
88
+
89
+ .wppr-template-1 .wppr-review-grade-option-header span:last-of-type {
90
+ font-weight: 700;
91
+ text-align: right;
92
+ }
93
+
94
+ .wppr-template-1.rtl .wppr-review-grade-option-header span:last-of-type {
95
+ font-weight: 700;
96
+ text-align: left;
97
+ }
98
+
99
+ .wppr-template-1 .wppr-review-grade-option-header span:first-of-type {
100
+ font-weight: 700;
101
+ text-align: left;
102
+ }
103
+ .wppr-template-1.rtl .wppr-review-grade-option-header span:first-of-type {
104
+ text-align: right;
105
+ }
106
+
107
+ .wppr-template-1 .wppr-review-grade-option-rating {
108
+ display: block;
109
+ float: left;
110
+ overflow: hidden;
111
+ position: relative;
112
+ width: 100%;
113
+ height: 8px;
114
+ margin-bottom: 15px;
115
+ border-radius: 10px;
116
+ }
117
+
118
+ .wppr-template-1 .wppr-review-grade-option-rating span {
119
+ position: absolute;
120
+ top: 0;
121
+ left: 0;
122
+ height: 100%;
123
+ -webkit-animation: animFiller 2s ease-in-out;
124
+ animation: animFiller 2s ease-in-out;
125
+ }
126
+
127
+ .wppr-template-1 .wppr-review-pros-cons {
128
+ display: table;
129
+ width: 100%;
130
+ }
131
+
132
+ .wppr-template-1 .wppr-review-pros-cons > div {
133
+ display: table-cell;
134
+ width: 50%;
135
+ vertical-align: top;
136
+ }
137
+
138
+ .wppr-template-1 .wppr-review-one-column > div {
139
+ width: 100%;
140
+ }
141
+
142
+ .wppr-template-1 .wppr-review-pros-cons h3 {
143
+ margin: 0 !important;
144
+ font-size: 18px;
145
+ font-weight: 700;
146
+ text-transform: uppercase;
147
+ }
148
+
149
+ .wppr-template-1 .wppr-review-pros-cons ul {
150
+ margin: 0;
151
+ padding-left: 20px;
152
+ color: inherit;
153
+ font-size: 16px;
154
+ list-style-type: square;
155
+ }
156
+
157
+ .wppr-template-1.rtl .wppr-review-pros-cons ul {
158
+ list-style-position: inside;
159
+ }
160
+
161
+ .wppr-template-1.rtl .affiliate-button a span {
162
+ margin-right: -10px;
163
+ padding-right: 20px;
164
+ margin-left: auto;
165
+ padding-left: auto;
166
+ }
167
+
168
+ @media (max-width: 768px) {
169
+ .wppr-template-1 .wppr-review-stars {
170
+ width: 100%;
171
+ text-align: center;
172
+ }
173
+
174
+ .wppr-template-1 .wppr-review-stars .wppr-review-stars-grade {
175
+ display: inline-block;
176
+ float: none;
177
+ }
178
+
179
+ .wppr-template-1 .wppr-review-stars-author {
180
+ display: block;
181
+ }
182
+
183
+ .wppr-template-1 .wppr-review-stars .wppr-review-stars-grade li {
184
+ float: none;
185
+ }
186
+
187
+ .wppr-template-1 .wppr-review-pros-cons > div {
188
+ display: block;
189
+ width: 100%;
190
+ }
191
+ }
192
+
193
+ .wppr-template-1 .wppr-review-product-image {
194
+ display: inline-block;
195
+ float: left;
196
+ overflow: hidden;
197
+ position: relative;
198
+ width: 120px;
199
+ height: 120px;
200
+ }
201
+
202
+ .amp-single .wppr-template-1 .wppr-review-product-image .wppr-default-img,
203
+ .amp-single .wppr-template-1 .wppr-review-product-image .wppr-product-image {
204
+ width: 100px;
205
+ height: 100px;
206
+ }
207
+
208
+ .wppr-template-1 .wppr-review-product-image {
209
+ width: 100px;
210
+ height: 100px;
211
+ margin-top: 5px;
212
+ }
213
+
214
+ .wppr-template-1 .wppr-review-product-image img {
215
+ position: absolute;
216
+ top: 50%;
217
+ bottom: -40px;
218
+ left: 50%;
219
+ width: 100%;
220
+ -webkit-transform: translate(-50%,-50%);
221
+ -ms-transform: translate(-50%,-50%);
222
+ transform: translate(-50%,-50%);
223
+ }
224
+
225
+ .wppr-template-1 .wppr-review-product-image.wppr-review-product-image-full img {
226
+ width: auto;
227
+ max-width: none;
228
+ height: 100%;
229
+ }
230
+
231
+ .wppr-template-1 ul.wppr-custom-icon {
232
+ width: 100% !important;
233
+ margin: 0;
234
+ margin-left: 0 !important;
235
+ padding-left: 0 !important;
236
+ }
237
+
238
+ .wppr-template-1 ul.wppr-custom-icon li {
239
+ display: inline-block;
240
+ height: auto;
241
+ background: transparent !important;
242
+ font-family: FontAwesome;
243
+ font-size: 22px;
244
+ -webkit-font-smoothing: antialiased;
245
+ text-align: center;
246
+ text-rendering: auto;
247
+ }
248
+
249
+ @media (max-width: 480px) {
250
+ .wppr-template-1 .wppr-review-grade-options,
251
+ .wppr-template-1 .wppr-review-grade-number {
252
+ display: block;
253
+ width: 100%;
254
+ text-align: center;
255
+ padding: 0;
256
+ }
257
+
258
+ .wppr-template-1 .wppr-review-stars .wppr-review-stars-grade,
259
+ .wppr-template-1 .wppr-review-stars .wppr-review-full-stars {
260
+ font-size: 28px;
261
+ }
262
+
263
+ .wppr-template-1 .wppr-review-grade-number {
264
+ font-size: 48px;
265
+ }
266
+
267
+ .wppr-template-1 .wppr-review-grade-option-header span {
268
+ text-align: left;
269
+ }
270
+
271
+ .wppr-template-1 .wppr-review-product-image {
272
+ float: none;
273
+ margin: auto;
274
+ display: block;
275
+ }
276
+
277
+ }
278
+
279
+ @-webkit-keyframes animFiller {
280
+ 0% {
281
+ width: 0;
282
+ }
283
+ }
284
+
285
+ @keyframes animFiller {
286
+ 0% {
287
+ width: 0;
288
+ }
289
+ }
dist/assets/css/style2.css ADDED
@@ -0,0 +1,264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Template 2
3
+ */
4
+
5
+ .wppr-template-2 .wppr-review-head {
6
+ display: table;
7
+ width: 100%;
8
+ }
9
+
10
+ .wppr-template-2 .wppr-review-rating,
11
+ .wppr-template-2 .wppr-review-pros,
12
+ .wppr-template-2 .wppr-review-cons {
13
+ display: table-cell;
14
+ vertical-align: top;
15
+ }
16
+
17
+ .wppr-template-2 .wppr-review-head:not(.wppr-review-with-pros-cons) .wppr-review-rating {
18
+ float: left;
19
+ }
20
+
21
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons:not(.wppr-review-with-image) .wppr-review-rating-grade,
22
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons:not(.wppr-review-with-image) .wppr-review-rating-users {
23
+ float: none;
24
+ width: 100%;
25
+ }
26
+
27
+ .wppr-template-2 .wppr-review-head.wppr-review-with-image .wppr-review-rating {
28
+ float: left;
29
+ box-sizing: content-box;
30
+ width: 240px;
31
+ }
32
+
33
+ .wppr-template-2 .wppr-review-head:not(.wppr-review-with-image) .wppr-review-rating {
34
+ float: left;
35
+ }
36
+
37
+ .wppr-template-2 .wppr-review-head:not(.wppr-review-with-image):not(.wppr-review-with-pros-cons) .wppr-review-rating {
38
+ float: left;
39
+ }
40
+
41
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating {
42
+ padding-right: 30px;
43
+ }
44
+
45
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating.rtl {
46
+ padding-left: 30px;
47
+ padding-right: 0px;
48
+ }
49
+
50
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating-grade,
51
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating-image {
52
+ float: left;
53
+ }
54
+
55
+ .wppr-template-2.rtl .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating-grade,
56
+ .wppr-template-2.rtl .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating-image {
57
+ float: right;
58
+ }
59
+
60
+
61
+ .wppr-template-2 .wppr-review-pros,
62
+ .wppr-template-2 .wppr-review-cons {
63
+ width: 50%;
64
+ padding-left: 30px;
65
+ }
66
+
67
+ .wppr-template-2 .wppr-review-rating-grade {
68
+ display: inline-block;
69
+ float: left;
70
+ min-width: 120px;
71
+ height: 120px;
72
+ color: #fff;
73
+ font-size: 60px;
74
+ font-weight: 700;
75
+ line-height: 120px;
76
+ text-align: center;
77
+ letter-spacing: -0.05em;
78
+ }
79
+
80
+ .wppr-template-2 .wppr-review-head:not(.wppr-review-with-image) .wppr-review-rating-grade {
81
+ width: 100%;
82
+ }
83
+
84
+ .wppr-template-2 .wppr-review-product-image,
85
+ .wppr-template-2 .wppr-review-product-image img {
86
+ width: 120px;
87
+ height: 120px;
88
+ margin: 0;
89
+
90
+ object-fit: fill;
91
+ }
92
+
93
+ .wppr-template-2 .wppr-review-product-image {
94
+ display: inline-block;
95
+ float: left;
96
+ overflow: hidden;
97
+ position: relative;
98
+ }
99
+
100
+ .wppr-template-2 .wppr-review-product-image img {
101
+ position: absolute;
102
+ top: 50%;
103
+ bottom: -60px;
104
+ left: 50%;
105
+ width: 100%;
106
+ -webkit-transform: translate(-50%,-50%);
107
+ -ms-transform: translate(-50%,-50%);
108
+ transform: translate(-50%,-50%);
109
+ }
110
+
111
+ .wppr-template-2 .wppr-review-product-image.wppr-review-product-image-full img {
112
+ width: auto;
113
+ max-width: none;
114
+ height: 100%;
115
+ }
116
+
117
+ .wppr-template-2 .wppr-review-rating-users {
118
+ display: block;
119
+ float: left;
120
+ width: 100%;
121
+ padding: 8px;
122
+ color: #fff;
123
+ font-size: 14px;
124
+ line-height: 1;
125
+ text-align: center;
126
+ white-space: nowrap;
127
+ }
128
+
129
+ .wppr-template-2 .wppr-review-rating-users strong {
130
+ font-size: 16px;
131
+ font-weight: 700;
132
+ }
133
+
134
+ .wppr-template-2 .wppr-review-pros h3,
135
+ .wppr-template-2 .wppr-review-cons h3 {
136
+ margin: 0 !important;
137
+ font-size: 18px;
138
+ font-weight: 700;
139
+ text-transform: uppercase;
140
+ }
141
+
142
+ .wppr-template-2 .wppr-review-pros ul,
143
+ .wppr-template-2 .wppr-review-cons ul {
144
+ margin: 0;
145
+ padding-left: 20px;
146
+ color: inherit;
147
+ font-size: 16px;
148
+ list-style-type: square;
149
+ }
150
+
151
+ .wppr-template-2.rtl .wppr-review-pros ul,
152
+ .wppr-template-2.rtl .wppr-review-cons ul {
153
+ list-style-position: inside;
154
+ }
155
+
156
+ .wppr-template-2 .wppr-review-options {
157
+ float: left;
158
+ width: 100%;
159
+ margin-top: 45px;
160
+ }
161
+
162
+ .wppr-template-2 .wppr-review-option {
163
+ display: table;
164
+ width: 100%;
165
+ margin-bottom: 10px;
166
+ }
167
+
168
+ .wppr-template-2 .wppr-review-option-header {
169
+ display: table-cell;
170
+ width: 150px;
171
+ vertical-align: middle;
172
+ }
173
+
174
+ .wppr-template-2 .wppr-review-option-rating {
175
+ display: table-cell;
176
+ margin: 0;
177
+ padding: 0;
178
+ vertical-align: middle;
179
+ list-style: none;
180
+ }
181
+
182
+ .wppr-template-2 .wppr-review-option-rating li {
183
+ display: inline-block;
184
+ float: left;
185
+ margin-right: 10px;
186
+ font-family: FontAwesome;
187
+ font-size: 25px;
188
+ -webkit-font-smoothing: antialiased;
189
+ line-height: 1;
190
+ }
191
+
192
+ .wppr-template-2 .wppr-review-option-rating li:first-child {
193
+ text-align: left;
194
+ }
195
+
196
+ .wppr-template-2 .wppr-review-option-rating li:last-child {
197
+ text-align: right;
198
+ }
199
+
200
+ .wppr-template-2 .wppr-review-option-rating li:before {
201
+ content: "\f005";
202
+ }
203
+
204
+ .wppr-template-2.rtl .affiliate-button a span {
205
+ margin-right: -10px;
206
+ padding-right: 20px;
207
+ margin-left: auto;
208
+ padding-left: auto;
209
+ }
210
+
211
+ .wppr-template-2.rtl .wppr-review-option-rating {
212
+ float: right;
213
+ }
214
+
215
+ @media (max-width: 768px) {
216
+ .wppr-template-2 .wppr-review-pros,
217
+ .wppr-template-2 .wppr-review-cons {
218
+ display: block;
219
+ float: left;
220
+ width: 100%;
221
+ }
222
+
223
+ .wppr-template-2 .wppr-review-head {
224
+ display: block;
225
+ float: left;
226
+ }
227
+
228
+ .wppr-template-2 .wppr-review-pros,
229
+ .wppr-template-2 .wppr-review-cons {
230
+ margin-top: 15px;
231
+ padding-left: 0;
232
+ }
233
+
234
+ .wppr-template-2 .wppr-review-rating {
235
+ text-align: center;
236
+ }
237
+
238
+ .wppr-template-2 .wppr-review-head.wppr-review-with-pros-cons .wppr-review-rating {
239
+ padding: 0;
240
+ }
241
+ }
242
+
243
+ @media (max-width: 480px) {
244
+ .wppr-template-2 .wppr-review-option-header,
245
+ .wppr-template-2 .wppr-review-option-rating {
246
+ display: block;
247
+ float: left;
248
+ width: 100%;
249
+ }
250
+
251
+ .wppr-template-2 .wppr-review-option-rating li {
252
+ margin-right: 0;
253
+ }
254
+
255
+ .wppr-template-2 .wppr-review-rating-users {
256
+ white-space: normal;
257
+ }
258
+
259
+ .wppr-template-2 .wppr-review-head .wppr-review-rating-grade,
260
+ .wppr-template-2 .wppr-review-product-image,
261
+ .wppr-template-2 .wppr-review-head.wppr-review-with-image .wppr-review-rating {
262
+ width: 100%;
263
+ }
264
+ }
dist/assets/css/upsell.css ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wppr-admin .pro-features-header {
2
+ padding: 20px 10px;
3
+ border-top: 5px solid #252b37;
4
+ background: #fff;
5
+ }
6
+
7
+ #wppr-admin .logo {
8
+ display: inline-block;
9
+ margin: 0 0 0 20px;
10
+ padding: 0 0 0 70px;
11
+ color: #3c3c3c;
12
+ background: url(../img/wppr-logo.png) no-repeat left center;
13
+ font-family: "Open Sans", sans-serif;
14
+ font-size: 2em;
15
+ font-weight: 700;
16
+ line-height: 60px;
17
+ letter-spacing: -1px;
18
+ }
19
+
20
+ #wppr-admin .slogan {
21
+ display: inline-block;
22
+ margin: 0 0 0 5px;
23
+ padding: 0;
24
+ color: #858585;
25
+ font-family: "Open Sans", sans-serif;
26
+ font-size: 17px;
27
+ line-height: 3.5;
28
+ }
29
+
30
+ #wppr-admin .slogan a {
31
+ color: #858585;
32
+ font-weight: 600;
33
+ font-style: italic;
34
+ text-decoration: none;
35
+ -webkit-transition: all 0.250s ease-in-out;
36
+ transition: all 0.250s ease-in-out;
37
+ }
38
+
39
+ #wppr-admin .slogan a:hover {
40
+ color: #ff6160;
41
+ }
42
+
43
+ #wppr-admin .slogan a:focus {
44
+ outline: none;
45
+ box-shadow: none;
46
+ }
47
+
48
+ #wppr-admin .header-btns {
49
+ float: right;
50
+ margin: 7px 20px;
51
+ text-align: right;
52
+ }
53
+
54
+ #wppr-admin .header-btns .buy-now {
55
+ display: inline-block;
56
+ margin-top: 2px;
57
+ margin-right: 5px;
58
+ padding: 15px 25px;
59
+ border-radius: 3px;
60
+ border-radius: 3px;
61
+ color: #fff;
62
+ background: #e33b3f;
63
+ font-family: "Open Sans", sans-serif;
64
+ font-size: 18px;
65
+ font-weight: bold;
66
+ text-decoration: none;
67
+ text-transform: uppercase;
68
+ -webkit-transition: all 0.250s ease-in-out;
69
+ transition: all 0.250s ease-in-out;
70
+ }
71
+
72
+ #wppr-admin .header-btns .buy-now:hover {
73
+ background: #252b37;
74
+ }
75
+
76
+ #wppr-admin .header-btns .buy-now .dashicons {
77
+ padding-right: 3px;
78
+ }
79
+
80
+ #wppr-admin .pro-features-header,
81
+ #wppr-admin .pro-feature {
82
+ display: block;
83
+ margin: 10px;
84
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
85
+ }
86
+
87
+ #wppr-admin .pro-feature .pro-feature-features,
88
+ #wppr-admin .pro-feature .pro-feature-image {
89
+ display: table-cell;
90
+ margin: 0;
91
+ vertical-align: middle;
92
+ }
93
+
94
+ #wppr-admin .pro-feature .pro-feature-features {
95
+ box-sizing: border-box;
96
+ padding: 30px;
97
+ }
98
+
99
+ #wppr-admin .pro-feature .pro-feature-image {
100
+ width: 470px;
101
+ }
102
+
103
+ #wppr-admin .pro-feature .pro-feature-features h2 {
104
+ margin: 0 0 20px;
105
+ font-size: 28px;
106
+ }
107
+
108
+ #wppr-admin .pro-feature .pro-feature-features h4 {
109
+ margin: 0 0 10px;
110
+ font-size: 20px;
111
+ }
112
+
113
+ #wppr-admin .pro-feature .pro-feature-features p {
114
+ margin: 0 0 15px;
115
+ font-size: 16px;
116
+ line-height: 1.5;
117
+ }
118
+
119
+ #wppr-admin .pro-feature .pro-feature-image img {
120
+ width: 100%;
121
+ height: auto;
122
+ }
123
+
124
+ @media screen and (max-width: 1200px) {
125
+ #wppr-admin .pro-feature .pro-feature-features,
126
+ #wppr-admin .pro-feature .pro-feature-image {
127
+ display: block;
128
+ }
129
+
130
+ #wppr-admin .pro-feature .pro-feature-image {
131
+ width: 470px;
132
+ margin: 0 auto 20px;
133
+ text-align: center;
134
+ }
135
+
136
+ #wppr-admin .slogan {
137
+ display: none;
138
+ }
139
+ }
140
+
141
+ @media screen and (max-width: 1100px) {
142
+ #wppr-admin {
143
+ text-align: center;
144
+ }
145
+
146
+ #wppr-admin .logo {
147
+ margin-left: 0;
148
+ }
149
+
150
+ #wppr-admin .header-btns {
151
+ display: block;
152
+ float: none;
153
+ margin: 0 0 10px 0;
154
+ text-align: center;
155
+ }
156
+ }
157
+
158
+ @media screen and (max-width: 782px) {
159
+ #cwp_form #header .button {
160
+ padding: 0 4px 1px !important;
161
+ font-size: 11px !important;
162
+ }
163
+
164
+ #cwp_form #header .logo h2 {
165
+ margin: 0 !important;
166
+ padding: 0 !important;
167
+ }
168
+
169
+ #wppr-admin .pro-feature .pro-feature-image {
170
+ width: 100%;
171
+ }
172
+ }
173
+
174
+ #wppr-admin .pro-feature .pro-feature-inner {
175
+ display: table;
176
+ width: 100%;
177
+ background: #fff;
178
+ }
dist/assets/img/amazon-cart.png ADDED
Binary file
dist/assets/img/cart-icon-hover.png ADDED
Binary file
dist/assets/img/cart-icon.png ADDED
Binary file
dist/assets/img/chosen-sprite.png ADDED
Binary file
dist/assets/img/chosen-sprite@2x.png ADDED
Binary file
dist/assets/img/close.png ADDED
Binary file
dist/assets/img/comparison-table.gif ADDED
Binary file
dist/assets/img/customize-icons.gif ADDED
Binary file
dist/assets/img/default.png ADDED
Binary file
dist/assets/img/loading.gif ADDED
Binary file
dist/assets/img/logo.png ADDED
Binary file
dist/assets/img/next.png ADDED
Binary file
dist/assets/img/preload.png ADDED
Binary file
dist/assets/img/prev.png ADDED
Binary file
dist/assets/img/single.png ADDED
Binary file
dist/assets/img/style1.png ADDED
Binary file
dist/assets/img/templates/default.png ADDED
Binary file
dist/assets/img/templates/style1.png ADDED
Binary file
dist/assets/img/templates/style2.png ADDED
Binary file
dist/assets/img/wppr-amazon-integration-and-support.jpg ADDED
Binary file
dist/assets/img/wppr-import.jpg ADDED
Binary file
dist/assets/img/wppr-logo.png ADDED
Binary file
dist/assets/img/wppr-review-comparison.jpg ADDED
Binary file
dist/assets/img/wppr-shortcodes.jpg ADDED
Binary file
dist/assets/js/admin-review.js ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* jshint ignore:start */
2
+ jQuery( document ).ready(function(){
3
+
4
+ var meta_image_frame;
5
+
6
+ jQuery( '#wppr-editor-image-button' ).click(function(e){
7
+
8
+ e.preventDefault();
9
+
10
+ if ( meta_image_frame ) {
11
+ wp.media.frame.open();
12
+ return;
13
+ }
14
+ var mtitle = editor_vars.image_title ;
15
+ var mbutton = editor_vars.image_button;
16
+
17
+ meta_image_frame = wp.media.frames.meta_image_frame = wp.media({
18
+ title: mtitle,
19
+ button: { text: mbutton },
20
+ library: { type: 'image' }
21
+ });
22
+
23
+ meta_image_frame.on('select', function(){
24
+
25
+ var media_attachment = meta_image_frame.state().get( 'selection' ).first().toJSON();
26
+
27
+ jQuery( '#wppr-editor-image' ).val( media_attachment.url );
28
+ });
29
+
30
+ wp.media.frame.open();
31
+ });
32
+
33
+ jQuery( 'input:radio[name="wppr-review-status"]' ).change(function(){
34
+ var value = jQuery( this ).val();
35
+ if (value === "yes") {
36
+
37
+ jQuery( "#wppr-meta-yes" ).show();
38
+ jQuery( "#wppr-meta-no" ).show();
39
+ } else {
40
+ jQuery( "#wppr-meta-yes" ).hide();
41
+ jQuery( "#wppr-meta-no" ).hide();
42
+ }
43
+ });
44
+
45
+ jQuery( '#wppr-editor-new-link' ).click(function(e){
46
+ e.preventDefault();
47
+ jQuery( '.hidden_fields' ).show();
48
+ jQuery( this ).hide();
49
+ return false;
50
+ })
51
+
52
+ });
dist/assets/js/admin.js ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* jshint ignore:start */
2
+ jQuery(document).ready(function ($) {
3
+ jQuery(".subo-color-picker").wpColorPicker({
4
+ change: function (event, ui) {
5
+ var color = ui.color.toCSS();
6
+ var id = jQuery(this).attr('id').replace('_color_selector', '');
7
+ jQuery("#" + id + "_color").val(color);
8
+ }
9
+ });
10
+
11
+ update_nav($("#wppr_top_tabs .wppr-nav-tab:first"));
12
+ $("#wppr_top_tabs").on('click', '.wppr-nav-tab', function () {
13
+ update_nav($(this));
14
+ return false;
15
+ })
16
+
17
+ function update_nav(obj) {
18
+ var tab = obj.attr('data-tab');
19
+ var id = obj.find('a').attr('href');
20
+ $('.wppr-nav-tab').removeClass('active');
21
+ obj.addClass('active');
22
+ $('.wppr-tab-content').hide();
23
+ $(id).show();
24
+ }
25
+ });
26
+
27
+ jQuery("document").ready(function () {
28
+ jQuery('.cwp_save').on('click', function () {
29
+ var $btn = jQuery(this);
30
+ $btn.parent().find('.spinner').addClass('is-active');
31
+ $btn.addClass('disabled');
32
+ var form_data = jQuery('#wppr-settings').serializeArray()
33
+ var data = {
34
+ 'action': 'update_options',
35
+ 'cwppos_options': form_data
36
+ };
37
+ // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
38
+ jQuery.post(ajaxurl, data, function (response) {
39
+ $btn.parent().find('.spinner').removeClass('is-active');
40
+ $btn.removeClass('disabled');
41
+ });
42
+ });
43
+ });
dist/assets/js/chosen.jquery.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+ (function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),title:a.title?a.title:void 0,children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,title:a.title?a.title:void 0,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,group_label:null!=b?this.parsed[b].label:null,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(a){return this.include_group_label_in_selected&&null!=a.group_label?"<b class='group-name'>"+a.group_label+"</b>"+a.html:a.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(a){var b=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(a){var b=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return b.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f,g,h;for(b="",e=0,h=this.results_data,f=0,g=h.length;g>f&&(c=h[f],d="",d=c.group?this.result_add_group(c):this.result_add_option(c),""!==d&&(e++,b+=d),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(c))),!(e>=this.max_shown_results));f++);return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match&&this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return(a.search_match||a.group_match)&&a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),b.search_text=b.group?b.label:b.html,(!b.group||this.group_search)&&(b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:/IEMobile/i.test(window.navigator.userAgent)?!1:/Windows Phone/i.test(window.navigator.userAgent)?!1:/BlackBerry/i.test(window.navigator.userAgent)?!1:/BB10/i.test(window.navigator.userAgent)?!1:"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(c){var d,e;return d=a(this),e=d.data("chosen"),"destroy"===b?void(e instanceof Chosen&&e.destroy()):void(e instanceof Chosen||d.data("chosen",new Chosen(this,b)))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.bind("touchend.chosen",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(b)+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),b.addClass("result-selected"),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}).call(this);
dist/assets/js/cpt.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery */
2
+ /* global wppr */
3
+
4
+ (function($, wppr){
5
+
6
+ $(document).ready(function(){
7
+ onReady();
8
+ });
9
+
10
+ $(window).load(function(){
11
+ onLoad();
12
+ });
13
+
14
+ function onReady() {
15
+ // check the is review radio button.
16
+ $('#wppr-review-yes').attr('checked', 'checked');
17
+ // hide the radio button settings.
18
+ $('p.wppr-active').hide();
19
+ // auto show the review settings.
20
+ $('.wppr-review-editor').show();
21
+ // hide the product name row.
22
+ $('#wppr-editor-product-name').parent().hide();
23
+ // change the title placeholder.
24
+ $('#title-prompt-text').html(wppr.i10n.title_placeholder);
25
+ }
26
+
27
+ function onLoad() {
28
+ }
29
+
30
+ })(jQuery, wppr);
dist/assets/js/lightbox.min.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /* jshint ignore:start */
2
+ /**
3
+ * Lightbox v2.7.1
4
+ * by Lokesh Dhakar - http:
5
+ *
6
+ * @license http:
7
+ * - Free for use in both personal and commercial projects
8
+ * - Attribution requires leaving author name, author link, and the license info intact
9
+ */
10
+ (function(){var a=jQuery,b=function(){function a(){this.fadeDuration=500,this.fitImagesInViewport=!0,this.resizeDuration=700,this.positionFromTop=50,this.showImageNumberLabel=!0,this.alwaysShowNavOnTouchDevices=!1,this.wrapAround=!1}return a.prototype.albumLabel=function(a,b){return"Image "+a+" of "+b},a}(),c=function(){function b(a){this.options=a,this.album=[],this.currentImageIndex=void 0,this.init()}return b.prototype.init=function(){this.enable(),this.build()},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){var b=this;a("<div id='lightboxOverlay' class='lightboxOverlay'></div><div id='lightbox' class='lightbox'><div class='lb-outerContainer'><div class='lb-container'><img class='lb-image' src='' /><div class='lb-nav'><a class='lb-prev' href='' ></a><a class='lb-next' href='' ></a></div><div class='lb-loader'><a class='lb-cancel'></a></div></div></div><div class='lb-dataContainer'><div class='lb-data'><div class='lb-details'><span class='lb-caption'></span><span class='lb-number'></span></div><div class='lb-closeContainer'><a class='lb-close'></a></div></div></div></div>").appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return b.changeImage(0===b.currentImageIndex?b.album.length-1:b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.changeImage(b.currentImageIndex===b.album.length-1?0:b.currentImageIndex+1),!1}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return b.end(),!1})},b.prototype.start=function(b){function c(a){d.album.push({link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),a("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i<f.length;i=++i)c(a(f[i])),f[i]===b[0]&&(g=i)}else if("lightbox"===b.attr("rel"))c(b);else{f=a(b.prop("tagName")+'[rel="'+b.attr("rel")+'"]');for(var j=0;j<f.length;j=++j)c(a(f[j])),f[j]===b[0]&&(g=j)}var k=e.scrollTop()+this.options.positionFromTop,l=e.scrollLeft();this.$lightbox.css({top:k+"px",left:l+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(g)},b.prototype.changeImage=function(b){var c=this;this.disableKeyboardNav();var d=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration),a(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var e=new Image;e.onload=function(){var f,g,h,i,j,k,l;d.attr("src",c.album[b].link),f=a(e),d.width(e.width),d.height(e.height),c.options.fitImagesInViewport&&(l=a(window).width(),k=a(window).height(),j=l-c.containerLeftPadding-c.containerRightPadding-20,i=k-c.containerTopPadding-c.containerBottomPadding-120,(e.width>j||e.height>i)&&(e.width/j>e.height/i?(h=j,g=parseInt(e.height/(e.width/h),10),d.width(h),d.height(g)):(g=i,h=parseInt(e.width/(e.height/g),10),d.width(h),d.height(g)))),c.sizeContainer(d.width(),d.height())},e.src=this.album[b].link,this.currentImageIndex=b},b.prototype.sizeOverlay=function(){this.$overlay.width(a(window).width()).height(a(document).height())},b.prototype.sizeContainer=function(a,b){function c(){d.$lightbox.find(".lb-dataContainer").width(g),d.$lightbox.find(".lb-prevLink").height(h),d.$lightbox.find(".lb-nextLink").height(h),d.showImage()}var d=this,e=this.$outerContainer.outerWidth(),f=this.$outerContainer.outerHeight(),g=a+this.containerLeftPadding+this.containerRightPadding,h=b+this.containerTopPadding+this.containerBottomPadding;e!==g||f!==h?this.$outerContainer.animate({width:g,height:h},this.options.resizeDuration,"swing",function(){c()}):c()},b.prototype.showImage=function(){this.$lightbox.find(".lb-loader").hide(),this.$lightbox.find(".lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},b.prototype.updateNav=function(){var a=!1;try{document.createEvent("TouchEvent"),a=this.options.alwaysShowNavOnTouchDevices?!0:!1}catch(b){}this.$lightbox.find(".lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(a&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),a&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),a&&this.$lightbox.find(".lb-next").css("opacity","1"))))},b.prototype.updateDetails=function(){var b=this;"undefined"!=typeof this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title&&this.$lightbox.find(".lb-caption").html(this.album[this.currentImageIndex].title).fadeIn("fast").find("a").on("click",function(){location.href=a(this).attr("href")}),this.album.length>1&&this.options.showImageNumberLabel?this.$lightbox.find(".lb-number").text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn("fast"):this.$lightbox.find(".lb-number").hide(),this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return b.sizeOverlay()})},b.prototype.preloadNeighboringImages=function(){if(this.album.length>this.currentImageIndex+1){var a=new Image;a.src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){var b=new Image;b.src=this.album[this.currentImageIndex-1].link}},b.prototype.enableKeyboardNav=function(){a(document).on("keyup.keyboard",a.proxy(this.keyboardAction,this))},b.prototype.disableKeyboardNav=function(){a(document).off(".keyboard")},b.prototype.keyboardAction=function(a){var b=27,c=37,d=39,e=a.keyCode,f=String.fromCharCode(e).toLowerCase();e===b||f.match(/x|o|c/)?this.end():"p"===f||e===c?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):("n"===f||e===d)&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},b.prototype.end=function(){this.disableKeyboardNav(),a(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),a("select, object, embed").css({visibility:"visible"})},b}();a(function(){{var a=new b;new c(a)}})}).call(this);
dist/assets/js/lightbox.min.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"lightbox.min.js","sources":["lightbox.js"],"names":["$","jQuery","LightboxOptions","this","fadeDuration","fitImagesInViewport","resizeDuration","positionFromTop","showImageNumberLabel","alwaysShowNavOnTouchDevices","wrapAround","prototype","albumLabel","curImageNum","albumSize","Lightbox","options","album","currentImageIndex","init","enable","build","self","on","event","start","currentTarget","appendTo","$lightbox","$overlay","$outerContainer","find","$container","containerTopPadding","parseInt","css","containerRightPadding","containerBottomPadding","containerLeftPadding","hide","end","target","attr","changeImage","length","$link","addToAlbum","push","link","title","$window","window","proxy","sizeOverlay","visibility","$links","imageNumber","dataLightboxValue","prop","i","j","top","scrollTop","left","scrollLeft","fadeIn","disableKeyboardNav","$image","addClass","preloader","Image","onload","$preloader","imageHeight","imageWidth","maxImageHeight","maxImageWidth","windowHeight","windowWidth","width","height","sizeContainer","src","document","postResize","newWidth","newHeight","showImage","oldWidth","outerWidth","oldHeight","outerHeight","animate","updateNav","updateDetails","preloadNeighboringImages","enableKeyboardNav","alwaysShowNav","createEvent","e","show","html","location","href","text","removeClass","preloadNext","preloadPrev","keyboardAction","off","KEYCODE_ESC","KEYCODE_LEFTARROW","KEYCODE_RIGHTARROW","keycode","keyCode","key","String","fromCharCode","toLowerCase","match","fadeOut","call"],"mappings":";;;;;;;;CASA,WAEE,GAAIA,GAAIC,OAEJC,EAAkB,WACpB,QAASA,KACPC,KAAKC,aAA8B,IACnCD,KAAKE,qBAA8B,EACnCF,KAAKG,eAA8B,IACnCH,KAAKI,gBAA8B,GACnCJ,KAAKK,sBAA8B,EACnCL,KAAKM,6BAA8B,EACnCN,KAAKO,YAA8B,EAQrC,MAJAR,GAAgBS,UAAUC,WAAa,SAASC,EAAaC,GAC3D,MAAO,SAAWD,EAAc,OAASC,GAGpCZ,KAILa,EAAW,WACb,QAASA,GAASC,GAChBb,KAAKa,QAAoBA,EACzBb,KAAKc,SACLd,KAAKe,kBAAoB,OACzBf,KAAKgB,OA2WP,MAxWAJ,GAASJ,UAAUQ,KAAO,WACxBhB,KAAKiB,SACLjB,KAAKkB,SAKPN,EAASJ,UAAUS,OAAS,WAC1B,GAAIE,GAAOnB,IACXH,GAAE,QAAQuB,GAAG,QAAS,+EAAgF,SAASC,GAE7G,MADAF,GAAKG,MAAMzB,EAAEwB,EAAME,iBACZ,KAMXX,EAASJ,UAAUU,MAAQ,WACzB,GAAIC,GAAOnB,IACXH,GAAE,mjBAAmjB2B,SAAS3B,EAAE,SAGhkBG,KAAKyB,UAAkB5B,EAAE,aACzBG,KAAK0B,SAAkB7B,EAAE,oBACzBG,KAAK2B,gBAAkB3B,KAAKyB,UAAUG,KAAK,sBAC3C5B,KAAK6B,WAAkB7B,KAAKyB,UAAUG,KAAK,iBAG3C5B,KAAK8B,oBAAsBC,SAAS/B,KAAK6B,WAAWG,IAAI,eAAgB,IACxEhC,KAAKiC,sBAAwBF,SAAS/B,KAAK6B,WAAWG,IAAI,iBAAkB,IAC5EhC,KAAKkC,uBAAyBH,SAAS/B,KAAK6B,WAAWG,IAAI,kBAAmB,IAC9EhC,KAAKmC,qBAAuBJ,SAAS/B,KAAK6B,WAAWG,IAAI,gBAAiB,IAG1EhC,KAAK0B,SAASU,OAAOhB,GAAG,QAAS,WAE/B,MADAD,GAAKkB,OACE,IAGTrC,KAAKyB,UAAUW,OAAOhB,GAAG,QAAS,SAASC,GAIzC,MAHmC,aAA/BxB,EAAEwB,EAAMiB,QAAQC,KAAK,OACvBpB,EAAKkB,OAEA,IAGTrC,KAAK2B,gBAAgBP,GAAG,QAAS,SAASC,GAIxC,MAHmC,aAA/BxB,EAAEwB,EAAMiB,QAAQC,KAAK,OACvBpB,EAAKkB,OAEA,IAGTrC,KAAKyB,UAAUG,KAAK,YAAYR,GAAG,QAAS,WAM1C,MAJED,GAAKqB,YADwB,IAA3BrB,EAAKJ,kBACUI,EAAKL,MAAM2B,OAAS,EAEpBtB,EAAKJ,kBAAoB,IAErC,IAGTf,KAAKyB,UAAUG,KAAK,YAAYR,GAAG,QAAS,WAM1C,MAJED,GAAKqB,YADHrB,EAAKJ,oBAAsBI,EAAKL,MAAM2B,OAAS,EAChC,EAEAtB,EAAKJ,kBAAoB,IAErC,IAGTf,KAAKyB,UAAUG,KAAK,yBAAyBR,GAAG,QAAS,WAEvD,MADAD,GAAKkB,OACE,KAKXzB,EAASJ,UAAUc,MAAQ,SAASoB,GAelC,QAASC,GAAWD,GAClBvB,EAAKL,MAAM8B,MACTC,KAAMH,EAAMH,KAAK,QACjBO,MAAOJ,EAAMH,KAAK,eAAiBG,EAAMH,KAAK,WAjBlD,GAAIpB,GAAUnB,KACV+C,EAAUlD,EAAEmD,OAEhBD,GAAQ3B,GAAG,SAAUvB,EAAEoD,MAAMjD,KAAKkD,YAAalD,OAE/CH,EAAE,yBAAyBmC,KACzBmB,WAAY,WAGdnD,KAAKkD,cAELlD,KAAKc,QACL,IAWIsC,GAXAC,EAAc,EAUdC,EAAoBZ,EAAMH,KAAK,gBAGnC,IAAIe,EAAmB,CACrBF,EAASvD,EAAE6C,EAAMa,KAAK,WAAa,mBAAqBD,EAAoB,KAC5E,KAAK,GAAIE,GAAI,EAAGA,EAAIJ,EAAOX,OAAQe,IAAMA,EACvCb,EAAW9C,EAAEuD,EAAOI,KAChBJ,EAAOI,KAAOd,EAAM,KACtBW,EAAcG,OAIlB,IAA0B,aAAtBd,EAAMH,KAAK,OAEbI,EAAWD,OACN,CAELU,EAASvD,EAAE6C,EAAMa,KAAK,WAAa,SAAWb,EAAMH,KAAK,OAAS,KAClE,KAAK,GAAIkB,GAAI,EAAGA,EAAIL,EAAOX,OAAQgB,IAAMA,EACvCd,EAAW9C,EAAEuD,EAAOK,KAChBL,EAAOK,KAAOf,EAAM,KACtBW,EAAcI,GAOtB,GAAIC,GAAOX,EAAQY,YAAc3D,KAAKa,QAAQT,gBAC1CwD,EAAOb,EAAQc,YACnB7D,MAAKyB,UAAUO,KACb0B,IAAKA,EAAM,KACXE,KAAMA,EAAO,OACZE,OAAO9D,KAAKa,QAAQZ,cAEvBD,KAAKwC,YAAYa,IAInBzC,EAASJ,UAAUgC,YAAc,SAASa,GACxC,GAAIlC,GAAOnB,IAEXA,MAAK+D,oBACL,IAAIC,GAAShE,KAAKyB,UAAUG,KAAK,YAEjC5B,MAAK0B,SAASoC,OAAO9D,KAAKa,QAAQZ,cAElCJ,EAAE,cAAciE,OAAO,QACvB9D,KAAKyB,UAAUG,KAAK,uFAAuFQ,OAE3GpC,KAAK2B,gBAAgBsC,SAAS,YAG9B,IAAIC,GAAY,GAAIC,MACpBD,GAAUE,OAAS,WACjB,GAAIC,GAAYC,EAAaC,EAAYC,EAAgBC,EAAeC,EAAcC,CACtFX,GAAOzB,KAAK,MAAOpB,EAAKL,MAAMuC,GAAaR,MAE3CwB,EAAaxE,EAAEqE,GAEfF,EAAOY,MAAMV,EAAUU,OACvBZ,EAAOa,OAAOX,EAAUW,QAEpB1D,EAAKN,QAAQX,sBAIfyE,EAAiB9E,EAAEmD,QAAQ4B,QAC3BF,EAAiB7E,EAAEmD,QAAQ6B,SAC3BJ,EAAiBE,EAAcxD,EAAKgB,qBAAuBhB,EAAKc,sBAAwB,GACxFuC,EAAiBE,EAAevD,EAAKW,oBAAsBX,EAAKe,uBAAyB,KAGpFgC,EAAUU,MAAQH,GAAmBP,EAAUW,OAASL,KACtDN,EAAUU,MAAQH,EAAkBP,EAAUW,OAASL,GAC1DD,EAAcE,EACdH,EAAcvC,SAASmC,EAAUW,QAAUX,EAAUU,MAAQL,GAAa,IAC1EP,EAAOY,MAAML,GACbP,EAAOa,OAAOP,KAEdA,EAAcE,EACdD,EAAaxC,SAASmC,EAAUU,OAASV,EAAUW,OAASP,GAAc,IAC1EN,EAAOY,MAAML,GACbP,EAAOa,OAAOP,MAIpBnD,EAAK2D,cAAcd,EAAOY,QAASZ,EAAOa,WAG5CX,EAAUa,IAAe/E,KAAKc,MAAMuC,GAAaR,KACjD7C,KAAKe,kBAAoBsC,GAI3BzC,EAASJ,UAAU0C,YAAc,WAC/BlD,KAAK0B,SACFkD,MAAM/E,EAAEmD,QAAQ4B,SAChBC,OAAOhF,EAAEmF,UAAUH,WAIxBjE,EAASJ,UAAUsE,cAAgB,SAASP,EAAYD,GAQtD,QAASW,KACP9D,EAAKM,UAAUG,KAAK,qBAAqBgD,MAAMM,GAC/C/D,EAAKM,UAAUG,KAAK,gBAAgBiD,OAAOM,GAC3ChE,EAAKM,UAAUG,KAAK,gBAAgBiD,OAAOM,GAC3ChE,EAAKiE,YAXP,GAAIjE,GAAOnB,KAEPqF,EAAYrF,KAAK2B,gBAAgB2D,aACjCC,EAAYvF,KAAK2B,gBAAgB6D,cACjCN,EAAYX,EAAavE,KAAKmC,qBAAuBnC,KAAKiC,sBAC1DkD,EAAYb,EAActE,KAAK8B,oBAAsB9B,KAAKkC,sBAS1DmD,KAAaH,GAAYK,IAAcJ,EACzCnF,KAAK2B,gBAAgB8D,SACnBb,MAAOM,EACPL,OAAQM,GACPnF,KAAKa,QAAQV,eAAgB,QAAS,WACvC8E,MAGFA,KAKJrE,EAASJ,UAAU4E,UAAY,WAC7BpF,KAAKyB,UAAUG,KAAK,cAAcQ,OAClCpC,KAAKyB,UAAUG,KAAK,aAAakC,OAAO,QAExC9D,KAAK0F,YACL1F,KAAK2F,gBACL3F,KAAK4F,2BACL5F,KAAK6F,qBAIPjF,EAASJ,UAAUkF,UAAY,WAI7B,GAAII,IAAgB,CACpB,KACEd,SAASe,YAAY,cACrBD,EAAiB9F,KAAKa,QAAmC,6BAAG,GAAM,EAClE,MAAOmF,IAEThG,KAAKyB,UAAUG,KAAK,WAAWqE,OAE3BjG,KAAKc,MAAM2B,OAAS,IAClBzC,KAAKa,QAAQN,YACXuF,GACF9F,KAAKyB,UAAUG,KAAK,sBAAsBI,IAAI,UAAW,KAE3DhC,KAAKyB,UAAUG,KAAK,sBAAsBqE,SAEtCjG,KAAKe,kBAAoB,IAC3Bf,KAAKyB,UAAUG,KAAK,YAAYqE,OAC5BH,GACF9F,KAAKyB,UAAUG,KAAK,YAAYI,IAAI,UAAW,MAG/ChC,KAAKe,kBAAoBf,KAAKc,MAAM2B,OAAS,IAC/CzC,KAAKyB,UAAUG,KAAK,YAAYqE,OAC5BH,GACF9F,KAAKyB,UAAUG,KAAK,YAAYI,IAAI,UAAW,SAQzDpB,EAASJ,UAAUmF,cAAgB,WACjC,GAAIxE,GAAOnB,IAI6C,oBAA7CA,MAAKc,MAAMd,KAAKe,mBAAmB+B,OAAsE,KAA7C9C,KAAKc,MAAMd,KAAKe,mBAAmB+B,OACxG9C,KAAKyB,UAAUG,KAAK,eACjBsE,KAAKlG,KAAKc,MAAMd,KAAKe,mBAAmB+B,OACxCgB,OAAO,QACPlC,KAAK,KAAKR,GAAG,QAAS,WACrB+E,SAASC,KAAOvG,EAAEG,MAAMuC,KAAK,UAI/BvC,KAAKc,MAAM2B,OAAS,GAAKzC,KAAKa,QAAQR,qBACxCL,KAAKyB,UAAUG,KAAK,cAAcyE,KAAKrG,KAAKa,QAAQJ,WAAWT,KAAKe,kBAAoB,EAAGf,KAAKc,MAAM2B,SAASqB,OAAO,QAEtH9D,KAAKyB,UAAUG,KAAK,cAAcQ,OAGpCpC,KAAK2B,gBAAgB2E,YAAY,aAEjCtG,KAAKyB,UAAUG,KAAK,qBAAqBkC,OAAO9D,KAAKa,QAAQV,eAAgB,WAC3E,MAAOgB,GAAK+B,iBAKhBtC,EAASJ,UAAUoF,yBAA2B,WAC5C,GAAI5F,KAAKc,MAAM2B,OAASzC,KAAKe,kBAAoB,EAAG,CAClD,GAAIwF,GAAc,GAAIpC,MACtBoC,GAAYxB,IAAM/E,KAAKc,MAAMd,KAAKe,kBAAoB,GAAG8B,KAE3D,GAAI7C,KAAKe,kBAAoB,EAAG,CAC9B,GAAIyF,GAAc,GAAIrC,MACtBqC,GAAYzB,IAAM/E,KAAKc,MAAMd,KAAKe,kBAAoB,GAAG8B,OAI7DjC,EAASJ,UAAUqF,kBAAoB,WACrChG,EAAEmF,UAAU5D,GAAG,iBAAkBvB,EAAEoD,MAAMjD,KAAKyG,eAAgBzG,QAGhEY,EAASJ,UAAUuD,mBAAqB,WACtClE,EAAEmF,UAAU0B,IAAI,cAGlB9F,EAASJ,UAAUiG,eAAiB,SAASpF,GAC3C,GAAIsF,GAAqB,GACrBC,EAAqB,GACrBC,EAAqB,GAErBC,EAAUzF,EAAM0F,QAChBC,EAAUC,OAAOC,aAAaJ,GAASK,aACvCL,KAAYH,GAAeK,EAAII,MAAM,SACvCpH,KAAKqC,MACY,MAAR2E,GAAeF,IAAYF,EACL,IAA3B5G,KAAKe,kBACPf,KAAKwC,YAAYxC,KAAKe,kBAAoB,GACjCf,KAAKa,QAAQN,YAAcP,KAAKc,MAAM2B,OAAS,GACxDzC,KAAKwC,YAAYxC,KAAKc,MAAM2B,OAAS,IAEtB,MAARuE,GAAeF,IAAYD,KAChC7G,KAAKe,oBAAsBf,KAAKc,MAAM2B,OAAS,EACjDzC,KAAKwC,YAAYxC,KAAKe,kBAAoB,GACjCf,KAAKa,QAAQN,YAAcP,KAAKc,MAAM2B,OAAS,GACxDzC,KAAKwC,YAAY,KAMvB5B,EAASJ,UAAU6B,IAAM,WACvBrC,KAAK+D,qBACLlE,EAAEmD,QAAQ0D,IAAI,SAAU1G,KAAKkD,aAC7BlD,KAAKyB,UAAU4F,QAAQrH,KAAKa,QAAQZ,cACpCD,KAAK0B,SAAS2F,QAAQrH,KAAKa,QAAQZ,cACnCJ,EAAE,yBAAyBmC,KACzBmB,WAAY,aAITvC,IAITf,GAAE,WACA,CAAA,GAAIgB,GAAW,GAAId,EACJ,IAAIa,GAASC,QAG7ByG,KAAKtH"}
dist/assets/js/main.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* jshint ignore:start */
2
+ /**
3
+ * Main JavaScript File
4
+ */
5
+ jQuery(document).ready(function ($) {
6
+
7
+ $(".wppr-comment-meta-slider").each(function () {
8
+ var comm_meta_input = $(this).parent(".wppr-comment-form-meta").children("input");
9
+ $(this).slider({
10
+ min: 0,
11
+ max: 100,
12
+ value: 0,
13
+ slide: function (event, ui) {
14
+ $(comm_meta_input).val(ui.value / 10);
15
+ }
16
+ });
17
+ });
18
+
19
+ // Check if review image width is bigger than height.
20
+ if ( $( '.wppr-template-2' ).length > 0 ) {
21
+ var reviewImage = $( '.wppr-review-product-image' );
22
+ if ( reviewImage.length > 0 ) {
23
+ if ( reviewImage.find('img').width() > reviewImage.find('img').height() ) {
24
+ reviewImage.addClass('wppr-review-product-image-full');
25
+ }
26
+ }
27
+ }
28
+ });
dist/assets/js/widget-admin.js ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* jshint ignore:start */
2
+ (function ($, w) {
3
+ $(document).ready(function () {
4
+ initAll();
5
+ });
6
+
7
+ function initAll() {
8
+ var widget_selector = $('.widget');
9
+ if (widget_selector.length > 0) {
10
+ widget_selector.each(function () {
11
+ var id = $(this).attr("id")
12
+ for(name in wppr_widget.names){
13
+ if (id.indexOf(wppr_widget.names[name]) !== -1) {
14
+ toggleCustomFields(true, id);
15
+ }
16
+ }
17
+
18
+ });
19
+ } else {
20
+ toggleCustomFields(true, "wpcontent");
21
+ }
22
+
23
+
24
+ $('.wppr-range-slider').each(function(){
25
+ $(this).slider({
26
+ range : true,
27
+ step : 1,
28
+ min : parseInt($(this).attr('data-wppr-min')),
29
+ max : parseInt($(this).attr('data-wppr-max')),
30
+ values : JSON.parse('[' + $(this).attr('data-wppr-value') + ']'),
31
+ slide : function( event, ui ) {
32
+ var $desc = $('#' + $(this).attr('data-wppr-desc'));
33
+ $desc.find('input').val(ui.values[0] + ',' + ui.values[1]);
34
+ $desc.find('span.wppr-range-min').html(Math.abs(ui.values[0]));
35
+ $desc.find('span.wppr-range-max').html(Math.abs(ui.values[1]));
36
+ }
37
+ });
38
+ });
39
+
40
+ $(document).on('widget-updated widget-added', function (e, widget) {
41
+ initEvents(widget);
42
+ });
43
+
44
+ initEvents(null);
45
+ }
46
+
47
+ function initEvents(widget) {
48
+ if(widget){
49
+ widget.find( '.chosen-container' ).remove();
50
+ widget.find('select.wppr-chosen').chosen({
51
+ width : '100%',
52
+ search_contains : true
53
+ });
54
+ widget.find('.wppr-post-types').on('change', function(evt, params) {
55
+ get_categories(params, $(this), $('#' + $(this).attr('data-wppr-cat-combo')));
56
+ });
57
+ }else{
58
+ $('select.wppr-chosen').chosen({
59
+ width : '100%',
60
+ search_contains : true
61
+ });
62
+ $('.wppr-post-types').on('change', function(evt, params) {
63
+ get_categories(params, $(this), $('#' + $(this).attr('data-wppr-cat-combo')));
64
+ });
65
+ }
66
+
67
+ }
68
+
69
+ function get_categories(params, types, categories){
70
+ if(params.selected){
71
+ $('.wppr-cat-spinner').css('visibility', 'visible').show();
72
+ $.ajax({
73
+ url : ajaxurl,
74
+ method : 'post',
75
+ data : {
76
+ action : 'get_categories',
77
+ nonce : w.ajax.nonce,
78
+ type : params.selected
79
+ },
80
+ success : function(data){
81
+ if(data.data.categories){
82
+ var $group = '<optgroup label="' + types.find('option[value="' + params.selected + '"]').text() + '">';
83
+ $.each(data.data.categories, function(slug, name){
84
+ $group += '<option value="' + slug + '">' + name + '</option>';
85
+ });
86
+ $group += '</optgroup>';
87
+ categories.append($group);
88
+ categories.trigger("chosen:updated");
89
+ }
90
+ $('.wppr-cat-spinner').css('visibility', 'hidden').hide();
91
+ }
92
+ });
93
+ }else{
94
+ categories.find('optgroup[label="' + types.find('option[value="' + params.deselected + '"]').text() + '"]').remove();
95
+ categories.trigger("chosen:updated");
96
+ }
97
+ }
98
+
99
+
100
+ function toggleCustomFields(deflt, widgetID) {
101
+ var val = getWidgetStyle(widgetID);
102
+ if (val === "default.php") {
103
+ $("#" + widgetID).find(".wppr-customField").hide();
104
+ } else {
105
+ $("#" + widgetID).find(".wppr-customField").show();
106
+ }
107
+
108
+ addListeners(widgetID);
109
+ }
110
+
111
+ $(document).on('widget-updated widget-added', function (e, w) {
112
+ toggleCustomFields(true, w[0]["id"]);
113
+ });
114
+
115
+ function addListeners(widgetID) {
116
+ var widget = $("#" + widgetID);
117
+ widget.find("input.wppr-stylestyle").on("click", function (e) {
118
+ toggleCustomFields(false, widgetID);
119
+ });
120
+ widget.find("label.wppr-stylestyle").hover(function (e) {
121
+ var img = $("#" + $(this).attr("for") + "img");
122
+ img.show();
123
+ img.css('position', 'absolute');
124
+ img.css('width', '100%');
125
+ }, function (e) {
126
+ $("#" + $(this).attr("for") + "img").hide();
127
+ });
128
+ }
129
+
130
+ function getWidgetStyle(id) {
131
+ var name = $("#" + id).find("input:radio.wppr-stylestyle").attr("name");
132
+ return $("input:radio[name='" + name + "']:checked").val();
133
+ }
134
+
135
+ })(jQuery, wppr_widget);
dist/class-wppr-autoloader.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that defines autoload class
4
+ *
5
+ * A simple autoloader that loads class files recursively starting in the directory
6
+ * where this class resides. Additional options can be provided to control the naming
7
+ * convention of the class files.
8
+ *
9
+ * @link https://themeisle.com
10
+ * @copyright Copyright (c) 2017, Bogdan Preda
11
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
12
+ *
13
+ * @since 1.0.0
14
+ * @package WPPR
15
+ */
16
+
17
+ /**
18
+ * The WPPR_Autoloader class.
19
+ *
20
+ * @since 3.0.0
21
+ * @package WPPR
22
+ * @author Themeisle <friends@themeisle.com>
23
+ */
24
+ class WPPR_Autoloader {
25
+
26
+ /**
27
+ * File extension as a string. Defaults to ".php".
28
+ *
29
+ * @since 3.0.0
30
+ * @access protected
31
+ * @var string $file_ext The file extension to look for.
32
+ */
33
+ protected static $file_ext = '.php';
34
+
35
+ /**
36
+ * The top level directory where recursion will begin. Defaults to the current
37
+ * directory.
38
+ *
39
+ * @since 3.0.0
40
+ * @access protected
41
+ * @var string $path_top The root directory.
42
+ */
43
+ protected static $path_top = __DIR__;
44
+
45
+ /**
46
+ * Holds an array of namespaces to filter in autoloading if set.
47
+ *
48
+ * @since 3.0.0
49
+ * @access protected
50
+ * @var array $namespaces The namespace array, used if not empty on autoloading.
51
+ */
52
+ protected static $namespaces = array();
53
+
54
+ /**
55
+ * An array of files to exclude when looking to autoload.
56
+ *
57
+ * @since 3.0.0
58
+ * @access protected
59
+ * @var array $excluded_files The excluded files list.
60
+ */
61
+ protected static $excluded_files = array();
62
+
63
+ /**
64
+ * A placeholder to hold the file iterator so that directory traversal is only
65
+ * performed once.
66
+ *
67
+ * @since 3.0.0
68
+ * @access protected
69
+ * @var RecursiveIteratorIterator $file_iterator Holds an instance of the iterator class.
70
+ */
71
+ protected static $file_iterator = null;
72
+
73
+ /**
74
+ * Autoload function for registration with spl_autoload_register
75
+ *
76
+ * Looks recursively through project directory and loads class files based on
77
+ * filename match.
78
+ *
79
+ * @since 3.0.0
80
+ * @access public
81
+ *
82
+ * @param string $class_name The class name requested.
83
+ *
84
+ * @return mixed
85
+ */
86
+ public static function loader( $class_name ) {
87
+
88
+ if ( ! empty( static::$namespaces ) ) {
89
+ $found = static::check_namespaces( $class_name );
90
+ if ( ! $found ) {
91
+ return $found;
92
+ }
93
+ }
94
+
95
+ $directory = new RecursiveDirectoryIterator( static::$path_top . DIRECTORY_SEPARATOR . 'includes', RecursiveDirectoryIterator::SKIP_DOTS );
96
+
97
+ if ( is_null( static::$file_iterator ) ) {
98
+ $Iterator = new RecursiveIteratorIterator( $directory );
99
+ $Regex = new RegexIterator( $Iterator, '/^.+\.php$/i', RecursiveRegexIterator::MATCH );
100
+ static::$file_iterator = iterator_to_array( $Regex, false );
101
+ }
102
+
103
+ $filename = 'class-' . str_replace( '_', '-', strtolower( $class_name ) ) . static::$file_ext;
104
+ foreach ( static::$file_iterator as $file ) {
105
+ if ( strtolower( $file->getFileName() ) === strtolower( $filename ) && is_readable( $file->getPathName() ) ) {
106
+ require( $file->getPathName() );
107
+
108
+ return true;
109
+ }
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Method to check in allowed namespaces.
115
+ *
116
+ * @since 3.0.0
117
+ * @access protected
118
+ *
119
+ * @param string $class_name the class name to check with the namespaces.
120
+ *
121
+ * @return bool
122
+ */
123
+ protected static function check_namespaces( $class_name ) {
124
+ $found = false;
125
+ foreach ( static::$namespaces as $namespace ) {
126
+ if ( substr( $class_name, 0, strlen( $namespace ) ) == $namespace ) {
127
+ $found = true;
128
+ }
129
+ }
130
+
131
+ return $found;
132
+ }
133
+
134
+ /**
135
+ * Sets the $file_ext property
136
+ *
137
+ * @since 3.0.0
138
+ * @access public
139
+ *
140
+ * @param string $file_ext The file extension used for class files. Default is "php".
141
+ */
142
+ public static function set_file_ext( $file_ext ) {
143
+ static::$file_ext = $file_ext;
144
+ }
145
+
146
+ /**
147
+ * Sets the $plugins_path property
148
+ *
149
+ * @since 3.0.0
150
+ * @access public
151
+ *
152
+ * @param string $path The path representing the top level where recursion should
153
+ * begin for plugins. Defaults to empty ( does not look in plugins ).
154
+ */
155
+ public static function set_plugins_path( $path ) {
156
+ static::$plugins_path = $path;
157
+ }
158
+
159
+ /**
160
+ * Sets the $path property
161
+ *
162
+ * @since 3.0.0
163
+ * @access public
164
+ *
165
+ * @param string $path The path representing the top level where recursion should
166
+ * begin. Defaults to the current directory.
167
+ */
168
+ public static function set_path( $path ) {
169
+ static::$path_top = $path;
170
+ }
171
+
172
+ /**
173
+ * Adds a new file to the exclusion list.
174
+ *
175
+ * @since 3.0.0
176
+ * @access public
177
+ *
178
+ * @param string $file_name The file name to exclude from autoload.
179
+ */
180
+ public static function exclude_file( $file_name ) {
181
+ static::$excluded_files[] = $file_name;
182
+ }
183
+
184
+ /**
185
+ * Sets the namespaces used in autoloading if any.
186
+ *
187
+ * @since 3.0.0
188
+ * @access public
189
+ *
190
+ * @param array $namespaces The namespaces to use.
191
+ */
192
+ public static function define_namespaces( $namespaces = array() ) {
193
+ static::$namespaces = $namespaces;
194
+ }
195
+ }
dist/includes/admin/class-wppr-admin.php ADDED
@@ -0,0 +1,456 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The admin-specific functionality of the plugin.
4
+ *
5
+ * @link https://themeisle.com/
6
+ * @since 3.0.0
7
+ *
8
+ * @package WPPR
9
+ * @subpackage WPPR/admin
10
+ */
11
+
12
+ /**
13
+ * The admin-specific functionality of the plugin.
14
+ *
15
+ * Defines the plugin name, version, and two examples hooks for how to
16
+ * enqueue the admin-specific stylesheet and JavaScript.
17
+ *
18
+ * @package WPPR
19
+ * @subpackage WPPR/admin
20
+ * @author ThemeIsle <friends@themeisle.com>
21
+ */
22
+ class WPPR_Admin {
23
+
24
+ /**
25
+ * The ID of this plugin.
26
+ *
27
+ * @since 3.0.0
28
+ * @access private
29
+ * @var string $plugin_name The ID of this plugin.
30
+ */
31
+ private $plugin_name;
32
+
33
+ /**
34
+ * The version of this plugin.
35
+ *
36
+ * @since 3.0.0
37
+ * @access private
38
+ * @var string $version The current version of this plugin.
39
+ */
40
+ private $version;
41
+
42
+ /**
43
+ * Initialize the class and set its properties.
44
+ *
45
+ * @since 3.0.0
46
+ *
47
+ * @param string $plugin_name The name of this plugin.
48
+ * @param string $version The version of this plugin.
49
+ */
50
+ public function __construct( $plugin_name, $version ) {
51
+
52
+ $this->plugin_name = $plugin_name;
53
+ $this->version = $version;
54
+
55
+ }
56
+
57
+ /**
58
+ * Register the stylesheets for the admin area.
59
+ *
60
+ * @since 3.0.0
61
+ * @access public
62
+ *
63
+ * @param string $hook The hook used filter loaded styles.
64
+ */
65
+ public function enqueue_styles( $hook ) {
66
+
67
+ /**
68
+ * This function is provided for demonstration purposes only.
69
+ *
70
+ * An instance of this class should be passed to the run() function
71
+ * defined in WPPR_Loader as all of the hooks are defined
72
+ * in that particular class.
73
+ *
74
+ * The WPPR_Loader will then create the relationship
75
+ * between the defined hooks and the functions defined in this
76
+ * class.
77
+ */
78
+
79
+ if ( $hook == 'toplevel_page_wppr' ) {
80
+ wp_enqueue_style( 'wp-color-picker' );
81
+ wp_enqueue_style( $this->plugin_name . '-dashboard-css', WPPR_URL . '/assets/css/dashboard_styles.css', array(), $this->version );
82
+ wp_enqueue_style( $this->plugin_name . '-admin-css', WPPR_URL . '/assets/css/admin.css', array(), $this->version );
83
+ }
84
+ if ( $hook == 'product-review_page_wppr_pro_upsell' || $hook == 'toplevel_page_wppr' ) {
85
+ wp_enqueue_style( $this->plugin_name . '-upsell-css', WPPR_URL . '/assets/css/upsell.css', array(), $this->version );
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Register the JavaScript for the admin area.
91
+ *
92
+ * @since 3.0.0
93
+ * @access public
94
+ *
95
+ * @param string $hook The hook used filter loaded scripts.
96
+ */
97
+ public function enqueue_scripts( $hook ) {
98
+
99
+ /**
100
+ * This function is provided for demonstration purposes only.
101
+ *
102
+ * An instance of this class should be passed to the run() function
103
+ * defined in WPPR_Loader as all of the hooks are defined
104
+ * in that particular class.
105
+ *
106
+ * The WPPR_Loader will then create the relationship
107
+ * between the defined hooks and the functions defined in this
108
+ * class.
109
+ */
110
+
111
+ if ( $hook == 'toplevel_page_wppr' ) {
112
+ wp_enqueue_script(
113
+ $this->plugin_name . '-admin-js',
114
+ WPPR_URL . '/assets/js/admin.js',
115
+ array(
116
+ 'jquery',
117
+ 'wp-color-picker',
118
+ ),
119
+ $this->version
120
+ );
121
+ }
122
+
123
+ $this->load_review_cpt();
124
+ }
125
+
126
+ /**
127
+ * Add admin menu items.
128
+ *
129
+ * @since 3.0.0
130
+ * @access public
131
+ */
132
+ public function menu_pages() {
133
+ add_menu_page(
134
+ __( 'WP Product Review', 'wp-product-review' ),
135
+ __( 'Product Review', 'wp-product-review' ),
136
+ 'manage_options',
137
+ 'wppr',
138
+ array(
139
+ $this,
140
+ 'page_settings',
141
+ ),
142
+ 'dashicons-star-half',
143
+ '99.87414'
144
+ );
145
+ if ( ! defined( 'WPPR_PRO_VERSION' ) ) {
146
+ add_submenu_page(
147
+ 'wppr',
148
+ __( 'More Features', 'wp-product-review' ),
149
+ __( 'More Features ', 'wp-product-review' ) . '<span class="dashicons
150
+ dashicons-star-filled" style="vertical-align:-5px; padding-left:2px; color:#FFCA54;"></span>',
151
+ 'manage_options',
152
+ 'wppr_pro_upsell',
153
+ array(
154
+ $this,
155
+ 'page_upsell',
156
+ )
157
+ );
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Method to render settings page.
163
+ *
164
+ * @since 3.0.0
165
+ * @access public
166
+ */
167
+ public function page_settings() {
168
+ $model = new WPPR_Options_Model();
169
+ $render = new WPPR_Admin_Render_Controller( $this->plugin_name, $this->version );
170
+ $render->retrive_template( 'settings', $model );
171
+ }
172
+
173
+ /**
174
+ * Method to render up-sell page.
175
+ *
176
+ * @since 3.0.0
177
+ * @access public
178
+ */
179
+ public function page_upsell() {
180
+ $render = new WPPR_Admin_Render_Controller( $this->plugin_name, $this->version );
181
+ $render->retrive_template( 'upsell' );
182
+ }
183
+
184
+ /**
185
+ * Method called from AJAX request to update options.
186
+ *
187
+ * @since 3.0.0
188
+ * @access public
189
+ */
190
+ public function update_options() {
191
+ $model = new WPPR_Options_Model();
192
+ $data = $_POST['cwppos_options'];
193
+
194
+ $nonce = $data[ count( $data ) - 1 ];
195
+ if ( ! isset( $nonce['name'] ) ) {
196
+ die( 'invalid nonce field' );
197
+ }
198
+ if ( $nonce['name'] != 'wppr_nonce_settings' ) {
199
+ die( 'invalid nonce name' );
200
+ }
201
+ if ( wp_verify_nonce( $nonce['value'], 'wppr_save_global_settings' ) != 1 ) {
202
+ die( 'invalid nonce value' );
203
+ }
204
+
205
+ foreach ( $data as $option ) {
206
+ $model->wppr_set_option( $option['name'], $option['value'] );
207
+ }
208
+ die();
209
+ }
210
+
211
+ /**
212
+ * Method called from AJAX request to populate categories of specified post types.
213
+ *
214
+ * @since 3.0.0
215
+ * @access public
216
+ */
217
+ public function get_categories() {
218
+ check_ajax_referer( WPPR_SLUG, 'nonce' );
219
+
220
+ if ( isset( $_POST['type'] ) ) {
221
+ echo wp_send_json_success( array( 'categories' => self::get_category_for_post_type( $_POST['type'] ) ) );
222
+ }
223
+ wp_die();
224
+ }
225
+
226
+ /**
227
+ * Method that returns the categories of specified post types.
228
+ *
229
+ * @since 3.0.0
230
+ * @access public
231
+ */
232
+ public static function get_category_for_post_type( $post_type ) {
233
+ $categories = array();
234
+ if ( $post_type ) {
235
+ $taxonomies = get_taxonomies(
236
+ array( 'object_type' => array( $post_type ),
237
+ 'hierarchical' => true,
238
+ ),
239
+ 'objects'
240
+ );
241
+ if ( $taxonomies ) {
242
+ foreach ( $taxonomies as $tax ) {
243
+ $terms = get_terms(
244
+ $tax->name,
245
+ array(
246
+ 'hide_empty' => false,
247
+ )
248
+ );
249
+ if ( empty( $terms ) ) {
250
+ continue;
251
+ }
252
+ foreach ( $terms as $term ) {
253
+ $categories[ $term->slug ] = $term->name;
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ return $categories;
260
+ }
261
+
262
+ /**
263
+ * Adds the additional fields (columns, filters etc.) to the post listing screen.
264
+ *
265
+ * @since 3.0.0
266
+ * @access public
267
+ */
268
+ public function get_additional_fields() {
269
+ // add filter to post listing.
270
+ add_action( 'restrict_manage_posts', array( $this, 'restrict_manage_posts' ), 10, 2 );
271
+ add_filter( 'parse_query', array( $this, 'show_only_review_posts' ), 10 );
272
+
273
+ // add columns to post listing.
274
+ $post_types = apply_filters( 'wppr_post_types_custom_columns', array() );
275
+ if ( $post_types ) {
276
+ foreach ( $post_types as $post_type ) {
277
+ $type = in_array( $post_type, array( 'post', 'page' ) ) ? "{$post_type}s" : "{$post_type}_posts";
278
+ add_filter( "manage_{$type}_columns", array( $this, 'manage_posts_columns' ), 10, 1 );
279
+ add_action( "manage_{$type}_custom_column", array( $this, 'manage_posts_custom_column' ), 10, 2 );
280
+ }
281
+ }
282
+
283
+ $this->get_additional_fields_for_cpt();
284
+ }
285
+
286
+ /**
287
+ * Show the filter.
288
+ *
289
+ * @access public
290
+ */
291
+ public function restrict_manage_posts( $post_type, $which ) {
292
+ $post_types = apply_filters( 'wppr_post_types_custom_filter', array( 'post', 'page' ) );
293
+ if ( ! $post_types || ! in_array( $post_type, $post_types ) ) {
294
+ return;
295
+ }
296
+
297
+ echo "<select name='wppr_filter' id='wppr_filter' class='postform'>";
298
+ echo "<option value=''>" . __( 'Show All', 'wp-product-review' ) . '</option>';
299
+ $selected = isset( $_REQUEST['wppr_filter'] ) && 'only-wppr' === $_REQUEST['wppr_filter'] ? 'selected' : '';
300
+ echo "<option value='only-wppr' $selected>" . __( 'Show only Reviews', 'wp-product-review' ) . '</option>';
301
+ echo '</select>';
302
+ }
303
+
304
+ /**
305
+ * Filter only reviews.
306
+ *
307
+ * @access public
308
+ */
309
+ public function show_only_review_posts( $query ) {
310
+ if ( ! ( is_admin() && $query->is_main_query() ) ) {
311
+ return $query;
312
+ }
313
+
314
+ if ( ! isset( $_REQUEST['wppr_filter'] ) || 'only-wppr' !== $_REQUEST['wppr_filter'] ) {
315
+ return $query;
316
+ }
317
+
318
+ $post_types = apply_filters( 'wppr_post_types_custom_filter', array( 'post', 'page' ) );
319
+ if ( ! in_array( $query->query['post_type'], $post_types ) ) {
320
+ return $query;
321
+ }
322
+
323
+ $query->query_vars['meta_query'] = array(
324
+ array(
325
+ 'field' => 'cwp_meta_box_check',
326
+ 'value' => 'Yes',
327
+ 'compare' => '=',
328
+ 'type' => 'CHAR',
329
+ ),
330
+ );
331
+
332
+ return $query;
333
+ }
334
+
335
+ /**
336
+ * Define the additional columns.
337
+ *
338
+ * @access public
339
+ */
340
+ public function manage_posts_columns( $columns ) {
341
+ $columns['wppr_review'] = __( 'Review', 'wp-product-review' );
342
+ return $columns;
343
+ }
344
+
345
+ /**
346
+ * Manage the additional column.s
347
+ *
348
+ * @access public
349
+ */
350
+ public function manage_posts_custom_column( $column, $id ) {
351
+ switch ( $column ) {
352
+ case 'wppr_review':
353
+ $model = new WPPR_Review_Model( $id );
354
+ echo $model->get_rating();
355
+ break;
356
+ }
357
+ }
358
+
359
+ /**
360
+ * Loads the assets for the CPT.
361
+ */
362
+ public function load_review_cpt() {
363
+ $current_screen = get_current_screen();
364
+
365
+ if ( ! isset( $current_screen->id ) ) {
366
+ return;
367
+ }
368
+ if ( $current_screen->id != 'wppr_review' ) {
369
+ return;
370
+ }
371
+
372
+ wp_enqueue_script(
373
+ $this->plugin_name . '-cpt-js',
374
+ WPPR_URL . '/assets/js/cpt.js',
375
+ array(
376
+ 'jquery',
377
+ ),
378
+ $this->version
379
+ );
380
+
381
+ wp_localize_script(
382
+ $this->plugin_name . '-cpt-js',
383
+ 'wppr',
384
+ array(
385
+ 'i10n' => array(
386
+ 'title_placeholder' => __( 'Enter Review Title', 'wp-product-review' ),
387
+ ),
388
+ )
389
+ );
390
+ }
391
+
392
+ /**
393
+ * Loads the additional fields for the CPT.
394
+ */
395
+ private function get_additional_fields_for_cpt() {
396
+ $model = new WPPR_Query_Model();
397
+ if ( 'yes' !== $model->wppr_get_option( 'wppr_cpt' ) ) {
398
+ return;
399
+ }
400
+
401
+ add_filter( 'manage_wppr_review_posts_columns', array( $this, 'manage_cpt_columns' ), 10, 1 );
402
+ add_action( 'manage_wppr_review_posts_custom_column', array( $this, 'manage_cpt_custom_column' ), 10, 2 );
403
+ }
404
+
405
+ /**
406
+ * Define the additional columns for the CPT.
407
+ *
408
+ * @access public
409
+ */
410
+ public function manage_cpt_columns( $columns ) {
411
+ $custom = array(
412
+ 'wppr_price' => __( 'Product Price', 'wp-product-review' ),
413
+ 'wppr_rating' => __( 'Rating', 'wp-product-review' ),
414
+ );
415
+
416
+ // add before the date column.
417
+ return array_slice( $columns, 0, -1, true ) + $custom + array_slice( $columns, -1, null, true );
418
+ }
419
+
420
+ /**
421
+ * Manage the additional columns for the CPT.
422
+ *
423
+ * @access public
424
+ */
425
+ public function manage_cpt_custom_column( $column, $id ) {
426
+ switch ( $column ) {
427
+ case 'wppr_price':
428
+ $model = new WPPR_Review_Model( $id );
429
+ echo $model->get_price();
430
+ break;
431
+ case 'wppr_rating':
432
+ $model = new WPPR_Review_Model( $id );
433
+ echo $model->get_rating();
434
+ break;
435
+ }
436
+ }
437
+
438
+ /**
439
+ * Add an upsell bar when the tab starts.
440
+ *
441
+ * @param string $section Name of the section.
442
+ */
443
+ public function settings_section_upsell( $section ) {
444
+ if ( 'general' === $section ) {
445
+ echo '<label class="wppr-upsell-label"> You can display the review using the <b>[P_REVIEW]</b> shortcode. You can read more about it <a href="https://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation" target="_blank">here</a></label>.';
446
+ }
447
+ }
448
+
449
+ /**
450
+ * Add a custom image size for widgets.
451
+ */
452
+ public function add_image_size() {
453
+ add_image_size( 'wppr-widget', 50, 50 );
454
+ }
455
+
456
+ }
dist/includes/admin/class-wppr-editor.php ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Up-sell layout in the admin dashboard.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Admin
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Editor
14
+ */
15
+ class WPPR_Editor {
16
+
17
+ /**
18
+ * The ID of this plugin.
19
+ *
20
+ * @since 3.0.0
21
+ * @access private
22
+ * @var string $plugin_name The ID of this plugin.
23
+ */
24
+ private $plugin_name;
25
+
26
+ /**
27
+ * The version of this plugin.
28
+ *
29
+ * @since 3.0.0
30
+ * @access private
31
+ * @var string $version The current version of this plugin.
32
+ */
33
+ private $version;
34
+
35
+ /**
36
+ * Initialize the class and set its properties.
37
+ *
38
+ * @since 3.0.0
39
+ *
40
+ * @param string $plugin_name The name of this plugin.
41
+ * @param string $version The version of this plugin.
42
+ */
43
+ public function __construct( $plugin_name, $version ) {
44
+
45
+ $this->plugin_name = $plugin_name;
46
+ $this->version = $version;
47
+
48
+ }
49
+
50
+ /**
51
+ * Method to add editor meta box.
52
+ *
53
+ * @since 3.0.0
54
+ * @access public
55
+ */
56
+ public function set_editor() {
57
+ add_meta_box(
58
+ 'wppr_editor_metabox',
59
+ __( 'Product Review Extra Settings', 'wp-product-review' ),
60
+ array(
61
+ $this,
62
+ 'render_metabox',
63
+ )
64
+ );
65
+ }
66
+
67
+ /**
68
+ * Method to render editor.
69
+ *
70
+ * @since 3.0.0
71
+ * @access public
72
+ *
73
+ * @param WP_Post $post The post object.
74
+ */
75
+ public function render_metabox( $post ) {
76
+ $editor = $this->get_editor_name( $post );
77
+ wp_nonce_field( 'wppr_editor_save.' . $post->ID, '_wppr_nonce' );
78
+ $render_controller = new WPPR_Admin_Render_Controller( $this->plugin_name, $this->version );
79
+ $render_controller->render_editor_metabox( $editor->get_template(), $editor );
80
+ }
81
+
82
+ /**
83
+ * Method to return editor object.
84
+ *
85
+ * @since 3.0.0
86
+ * @access public
87
+ *
88
+ * @param WP_Post $post The post object.
89
+ *
90
+ * @return WPPR_Editor_Abstract
91
+ */
92
+ private function get_editor_name( $post ) {
93
+ $editor_name = 'WPPR_' . str_replace( '-', '_', ucfirst( $post->post_type ) . '_Editor' );
94
+ if ( class_exists( $editor_name ) ) {
95
+ $editor = new $editor_name( $post );
96
+ } else {
97
+ $editor = new WPPR_Editor_Model( $post );
98
+ }
99
+
100
+ return $editor;
101
+ }
102
+
103
+ /**
104
+ * Method to load required assets.
105
+ *
106
+ * @since 3.0.0
107
+ * @access public
108
+ *
109
+ * @param WP_Post $post The post object.
110
+ */
111
+ public function load_assets( $post ) {
112
+ global $post;
113
+ if ( is_a( $post, 'WP_Post' ) ) {
114
+ $editor = $this->get_editor_name( $post );
115
+ $assets = $editor->get_assets();
116
+ if ( ! empty( $assets ) ) {
117
+ if ( isset( $assets['js'] ) ) {
118
+ foreach ( $assets['js'] as $handle => $data ) {
119
+ if ( isset( $data['path'] ) ) {
120
+ wp_enqueue_script( 'wppr-' . $handle . '-js', $data['path'], $data['required'], $this->version, true );
121
+ }
122
+ if ( isset( $data['vars'] ) ) {
123
+ wp_localize_script( 'wppr-' . $handle . '-js', $handle . '_vars', $data['vars'] );
124
+ }
125
+ }
126
+ }
127
+
128
+ if ( isset( $assets['css'] ) ) {
129
+ foreach ( $assets['css'] as $handle => $data ) {
130
+ if ( isset( $data['path'] ) ) {
131
+ wp_enqueue_style( 'wppr-' . $handle . '-css', $data['path'], $data['required'], $this->version );
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Method to save options.
141
+ *
142
+ * @since 3.0.0
143
+ * @access public
144
+ *
145
+ * @param int $post_id The post ID.
146
+ */
147
+ public function editor_save( $post_id ) {
148
+ $editor = $this->get_editor_name( get_post( $post_id ) );
149
+
150
+ $is_autosave = wp_is_post_autosave( $post_id );
151
+ $is_revision = wp_is_post_revision( $post_id );
152
+ $nonce = isset( $_REQUEST['_wppr_nonce'] ) ? $_REQUEST['_wppr_nonce'] : '';
153
+ $is_valid_nonce = wp_verify_nonce( $nonce, 'wppr_editor_save.' . $post_id );
154
+
155
+ if ( $is_autosave || $is_revision || ! $is_valid_nonce ) {
156
+ return;
157
+ }
158
+ $editor->save();
159
+ }
160
+ }
dist/includes/admin/class-wppr-global-settings.php ADDED
@@ -0,0 +1,429 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The main loader file for wppr.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Settings
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ // Exit if accessed directly.
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
+ }
16
+
17
+ /**
18
+ * Class WPPR_Global_Settings for handling global options.
19
+ */
20
+ class WPPR_Global_Settings {
21
+ /**
22
+ * The main instance var.
23
+ *
24
+ * @since 3.0.0
25
+ * @access public
26
+ * @var WPPR_Global_Settings The one WPPR_Global_Settings istance.
27
+ */
28
+ public static $instance;
29
+
30
+ /**
31
+ * Stores the default fields data.
32
+ *
33
+ * @since 3.0.0
34
+ * @access public
35
+ * @var array|mixed|void $fields Options fields.
36
+ */
37
+ public $fields = array();
38
+
39
+ /**
40
+ * Stores the sections for the settings page.
41
+ *
42
+ * @since 3.0.0
43
+ * @access public
44
+ * @var array|mixed|void $sections Sections of the admin page.
45
+ */
46
+ public $sections = array();
47
+
48
+ /**
49
+ * The instance method for the static class.
50
+ * Defines and returns the instance of the static class.
51
+ *
52
+ * @since 3.0.0
53
+ * @access public
54
+ * @return WPPR_Global_Settings
55
+ */
56
+ public static function instance() {
57
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WPPR_Global_Settings ) ) {
58
+ self::$instance = new WPPR_Global_Settings;
59
+ self::$instance->sections = apply_filters(
60
+ 'wppr_settings_sections',
61
+ array(
62
+ 'general' => __( 'General settings', 'wp-product-review' ),
63
+ 'rating' => __( 'Rating colors', 'wp-product-review' ),
64
+ 'typography' => __( 'Typography', 'wp-product-review' ),
65
+ 'buy' => __( 'Buy button', 'wp-product-review' ),
66
+ )
67
+ );
68
+ self::$instance->fields = apply_filters(
69
+ 'wppr_settings_fields',
70
+ array(
71
+ 'general' => array(
72
+ 'cwppos_show_reviewbox' => array(
73
+ 'id' => 'review_position',
74
+ 'name' => __( 'Position of the review box', 'wp-product-review' ),
75
+ 'description' => '',
76
+ 'type' => 'select',
77
+ 'options' => array(
78
+ 'yes' => __( 'After content', 'wp-product-review' ),
79
+ 'no' => __( 'Before content', 'wp-product-review' ),
80
+ 'manual' => __( 'Manually placed', 'wp-product-review' ),
81
+ ),
82
+ 'default' => 'yes',
83
+ ),
84
+ 'cwppos_show_userreview' => array(
85
+ 'id' => 'show_review',
86
+ 'name' => __( 'Show review comment', 'wp-product-review' ),
87
+ 'description' => self::enable_user_comments() ? __( 'Activate comment review user', 'wp-product-review' ) : self::disable_user_comments_msg(),
88
+ 'type' => 'select',
89
+ 'options' => array(
90
+ 'yes' => __( 'Yes', 'wp-product-review' ),
91
+ 'no' => __( 'No', 'wp-product-review' ),
92
+ ),
93
+ 'disabled' => ! self::enable_user_comments(),
94
+ 'default' => 'no',
95
+ ),
96
+ 'cwppos_infl_userreview' => array(
97
+ 'id' => 'comment_influence',
98
+ 'name' => __( 'Visitor Review Influence', 'wp-product-review' ),
99
+ 'description' => __( 'Select how much visitors rating will affect the main one', 'wp-product-review' ),
100
+ 'type' => 'select',
101
+ 'options' => array(
102
+ '0' => 'No influence',
103
+ '10' => '10%',
104
+ '20' => '20%',
105
+ '30' => '30%',
106
+ '40' => '40%',
107
+ '50' => '50%',
108
+ '60' => '60%',
109
+ '70' => '70%',
110
+ '80' => '80%',
111
+ '90' => '90%',
112
+ '100' => '100%',
113
+ ),
114
+ 'default' => '0',
115
+ ),
116
+ 'cwppos_option_nr' => array(
117
+ 'id' => 'options_no',
118
+ 'name' => __( 'Number of options/pros/cons', 'wp-product-review' ),
119
+ 'description' => __( 'You can select the default number of options / pros/ cons (3-10)', 'wp-product-review' ),
120
+ 'type' => 'select',
121
+ 'options' => array(
122
+ '3' => '3',
123
+ '4' => '4',
124
+ '5' => '5',
125
+ '6' => '6',
126
+ '7' => '7',
127
+ '8' => '8',
128
+ '9' => '9',
129
+ '10' => '10',
130
+ ),
131
+ 'default' => '5',
132
+ ),
133
+ 'cwppos_widget_size' => array(
134
+ 'type' => 'input_text',
135
+ 'name' => __( 'Content width', 'wp-product-review' ),
136
+ 'description' => __( 'Write your content width in pixels in this format : 600 if you want to limit the review box width.', 'wp-product-review' ),
137
+ 'id' => 'widget_size',
138
+ 'default' => '',
139
+ ),
140
+ 'cwppos_lighbox' => array(
141
+ 'type' => 'select',
142
+ 'name' => __( 'Disable Lighbox images', 'wp-product-review' ),
143
+ 'description' => __( 'Disable lightbox effect on product images (increase loading speed)', 'wp-product-review' ),
144
+ 'id' => 'use_lightbox',
145
+ 'options' => array(
146
+ 'yes' => __( 'Yes', 'wp-product-review' ),
147
+ 'no' => __( 'No', 'wp-product-review' ),
148
+ ),
149
+ 'default' => 'no',
150
+ ),
151
+ 'cwppos_fontawesome' => array(
152
+ 'type' => 'select',
153
+ 'name' => __( 'Disable Font Awesome', 'wp-product-review' ),
154
+ 'description' => __( 'Disable Font Awesome for websites that already are including it (increase loading speed)', 'wp-product-review' ),
155
+ 'id' => 'use_fontawesome',
156
+ 'options' => array(
157
+ 'yes' => __( 'Yes', 'wp-product-review' ),
158
+ 'no' => __( 'No', 'wp-product-review' ),
159
+ ),
160
+ 'default' => 'no',
161
+ ),
162
+ 'wppr_rich_snippet' => array(
163
+ 'type' => 'select',
164
+ 'name' => __( 'Enable Rich Snippets', 'wp-product-review' ),
165
+ 'description' => __( 'Enable rich snippets on the product page.', 'wp-product-review' ),
166
+ 'id' => 'use_rich_snippet',
167
+ 'options' => array(
168
+ 'yes' => __( 'Yes', 'wp-product-review' ),
169
+ 'no' => __( 'No', 'wp-product-review' ),
170
+ ),
171
+ 'default' => 'yes',
172
+ ),
173
+ 'wppr_cpt' => array(
174
+ 'type' => 'select',
175
+ 'name' => __( 'Enable review post type', 'wp-product-review' ),
176
+ 'description' => __( 'Enabling this will create a new post type where you can manage your reviews.', 'wp-product-review' ),
177
+ 'id' => 'use_cpt',
178
+ 'options' => array(
179
+ 'yes' => __( 'Yes', 'wp-product-review' ),
180
+ 'no' => __( 'No', 'wp-product-review' ),
181
+ ),
182
+ 'default' => 'no',
183
+ ),
184
+ 'wppr_amp' => array(
185
+ 'type' => 'select',
186
+ 'name' => __( 'Enable AMP CSS.', 'wp-product-review' ),
187
+ 'description' => __( 'Enabling this will result in including custom CSS for AMP.', 'wp-product-review' ),
188
+ 'id' => 'wppr_amp',
189
+ 'options' => array(
190
+ 'yes' => __( 'Yes', 'wp-product-review' ),
191
+ 'no' => __( 'No', 'wp-product-review' ),
192
+ ),
193
+ 'default' => 'yes',
194
+ ),
195
+ ),
196
+ 'rating' => array(
197
+ 'cwppos_rating_default' => array(
198
+ 'type' => 'color',
199
+ 'name' => __( 'Rating options default color', 'wp-product-review' ),
200
+ 'description' => __( 'Select the color to be used by default on rating.', 'wp-product-review' ),
201
+ 'id' => 'rating_default',
202
+ 'default' => '#E1E2E0',
203
+ ),
204
+ 'cwppos_rating_chart_default' => array(
205
+ 'type' => 'color',
206
+ 'name' => __( 'Rating chart default color', 'wp-product-review' ),
207
+ 'description' => __( 'Select the color to be used by default on rating chart.', 'wp-product-review' ),
208
+ 'id' => 'rating_chart_default',
209
+ 'default' => '#ebebeb',
210
+ ),
211
+ 'cwppos_rating_weak' => array(
212
+ 'type' => 'color',
213
+ 'name' => __( 'Weak rating', 'wp-product-review' ),
214
+ 'description' => __( 'Select the color to be used when the rating is weak. ( < 2.5)', 'wp-product-review' ),
215
+ 'id' => 'rating_weak',
216
+ 'default' => '#FF7F66',
217
+ ),
218
+ 'cwppos_rating_notbad' => array(
219
+ 'type' => 'color',
220
+ 'name' => __( 'Not bad rating', 'wp-product-review' ),
221
+ 'description' => __( 'Select the color to be used when the rating is not bad. ( > 2.5 and < 5)', 'wp-product-review' ),
222
+ 'id' => 'rating_notbad',
223
+ 'default' => '#FFCE55',
224
+ ),
225
+ 'cwppos_rating_good' => array(
226
+ 'type' => 'color',
227
+ 'name' => __( 'Good rating', 'wp-product-review' ),
228
+ 'description' => __( 'Select the color to be used when the rating is good. ( >5 and <7.5)', 'wp-product-review' ),
229
+ 'id' => 'rating_good',
230
+ 'default' => '#50C1E9',
231
+ ),
232
+ 'cwppos_rating_very_good' => array(
233
+ 'type' => 'color',
234
+ 'name' => __( 'Very good rating', 'wp-product-review' ),
235
+ 'description' => __( 'Select the color to be used when the rating is very good. ( 7.5 < and <10)', 'wp-product-review' ),
236
+ 'id' => 'rating_very_good',
237
+ 'default' => '#8DC153',
238
+ ),
239
+
240
+ ),
241
+ 'typography' => array(
242
+ 'cwppos_font_color' => array(
243
+ 'type' => 'color',
244
+ 'name' => __( 'Font color', 'wp-product-review' ),
245
+ 'description' => __( 'Select the color to be used on the font.', 'wp-product-review' ),
246
+ 'id' => 'font_color',
247
+ 'default' => '#3D3D3D',
248
+ ),
249
+ 'cwppos_pros_color' => array(
250
+ 'type' => 'color',
251
+ 'name' => __( 'Pros text color', 'wp-product-review' ),
252
+ 'description' => __( 'Select the color to be used on the \'Pros\' text.', 'wp-product-review' ),
253
+ 'id' => 'pros_color',
254
+ 'default' => '#8DC153',
255
+ ),
256
+ 'cwppos_cons_color' => array(
257
+ 'type' => 'color',
258
+ 'name' => __( 'Cons text color', 'wp-product-review' ),
259
+ 'description' => __( 'Select the color to be used on the Cons text.', 'wp-product-review' ),
260
+ 'id' => 'cons_color',
261
+ 'default' => '#C15353',
262
+ ),
263
+ 'cwppos_pros_text' => array(
264
+ 'type' => 'text',
265
+ 'name' => __( 'Pros text', 'wp-product-review' ),
266
+ 'description' => __( 'Specify text for pros heading', 'wp-product-review' ),
267
+ 'id' => 'pros_text',
268
+ 'default' => 'Pros',
269
+ ),
270
+ 'cwppos_cons_text' => array(
271
+ 'type' => 'text',
272
+ 'name' => __( 'Cons text', 'wp-product-review' ),
273
+ 'description' => __( 'Specify text for cons heading', 'wp-product-review' ),
274
+ 'id' => 'cons_text',
275
+ 'default' => 'Cons',
276
+ ),
277
+ 'cwppos_reviewboxbd_color' => array(
278
+ 'type' => 'color',
279
+ 'name' => __( 'Review box border', 'wp-product-review' ),
280
+ 'description' => __( 'Select the border color to be used on the review box', 'wp-product-review' ),
281
+ 'id' => 'reviewboxbd_color',
282
+ 'default' => '#3BAEDA',
283
+ ),
284
+ 'cwppos_reviewboxbd_width' => array(
285
+ 'type' => 'input_text',
286
+ 'name' => __( 'Review box border width', 'wp-product-review' ),
287
+ 'description' => __( 'Select the width in pixels of the top border of the review box', 'wp-product-review' ),
288
+ 'id' => 'review_box_border_width',
289
+ 'default' => '5',
290
+ ),
291
+ ),
292
+ 'buy' => array(
293
+ 'cwppos_show_icon' => array(
294
+ 'type' => 'select',
295
+ 'name' => __( 'Show button icon', 'wp-product-review' ),
296
+ 'description' => __( 'Show icon on the cart icon on button.', 'wp-product-review' ),
297
+ 'id' => 'show_icon',
298
+ 'options' => array(
299
+ 'yes' => 'Yes',
300
+ 'no' => 'No',
301
+ ),
302
+ 'default' => 'yes',
303
+ ),
304
+ 'cwppos_buttonbd_color' => array(
305
+ 'type' => 'color',
306
+ 'name' => __( 'Button border', 'wp-product-review' ),
307
+ 'description' => __( 'Select the border color to be used on the buy button for the default state', 'wp-product-review' ),
308
+ 'id' => 'buttonbd_color',
309
+ 'default' => '#3BAEDA',
310
+ ),
311
+ 'cwppos_buttonbh_color' => array(
312
+ 'type' => 'color',
313
+ 'name' => __( 'Button border hover', 'wp-product-review' ),
314
+ 'description' => __( 'Select the border color to be used on the buy button for the hover state', 'wp-product-review' ),
315
+ 'id' => 'buttonbh_color',
316
+ 'default' => '#3BAEDA',
317
+ ),
318
+ 'cwppos_buttonbkd_color' => array(
319
+ 'type' => 'color',
320
+ 'name' => __( 'Button background', 'wp-product-review' ),
321
+ 'description' => __( 'Select the background color to be used on the buy button for the default state', 'wp-product-review' ),
322
+ 'id' => 'buttonbkd_color',
323
+ 'default' => '#ffffff',
324
+ ),
325
+ 'cwppos_buttonbkh_color' => array(
326
+ 'type' => 'color',
327
+ 'name' => __( 'Button background hover', 'wp-product-review' ),
328
+ 'description' => __( 'Select the background color to be used on the buy button for the hover state', 'wp-product-review' ),
329
+ 'id' => 'buttonbkh_color',
330
+ 'default' => '#3BAEDA',
331
+ ),
332
+ 'cwppos_buttontxtd_color' => array(
333
+ 'type' => 'color',
334
+ 'name' => __( 'Button text color', 'wp-product-review' ),
335
+ 'description' => __( 'Select the text color to be used on the buy button for the default state', 'wp-product-review' ),
336
+ 'id' => 'buttontxtd_color',
337
+ 'default' => '#3BAEDA',
338
+ ),
339
+ 'cwppos_buttontxth_color' => array(
340
+ 'type' => 'color',
341
+ 'name' => __( 'Button text color hover', 'wp-product-review' ),
342
+ 'description' => __( 'Select the text color to be used on the buy button for the hover state', 'wp-product-review' ),
343
+ 'id' => 'buttontxth_color',
344
+ 'default' => '#FFFFFF',
345
+ ),
346
+ ),
347
+ )
348
+ );
349
+
350
+ }// End if().
351
+
352
+ return self::$instance;
353
+ }
354
+
355
+ /**
356
+ * When Disqus or Jetpack Comments are enabled, the user review doesn't work.
357
+ */
358
+ private static function enable_user_comments() {
359
+ if ( ! is_admin() ) {
360
+ return true;
361
+ }
362
+ if ( function_exists( 'is_plugin_active' ) && is_plugin_active( 'disqus-comment-system/disqus.php' ) || ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'comments' ) ) ) {
363
+ return false;
364
+ }
365
+
366
+ return true;
367
+ }
368
+
369
+ /**
370
+ * When Disqus or Jetpack Comments are enabled, show this to the user.
371
+ */
372
+ private static function disable_user_comments_msg() {
373
+ if ( ! is_admin() ) {
374
+ return true;
375
+ }
376
+ $active = array();
377
+ if ( function_exists( 'is_plugin_active' ) && is_plugin_active( 'disqus-comment-system/disqus.php' ) ) {
378
+ $active[] = 'Disqus';
379
+ }
380
+ if ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'comments' ) ) {
381
+ $active[] = 'Jetpack Comments';
382
+ }
383
+ if ( $active ) {
384
+ return sprintf( __( 'We see %s active, so user feedback is disabled', 'wp-product-review' ), implode( ',', $active ) );
385
+ }
386
+
387
+ return '';
388
+ }
389
+
390
+ /**
391
+ * Return the section array.
392
+ *
393
+ * @since 3.0.0
394
+ * @access public
395
+ * @return array
396
+ */
397
+ public function get_sections() {
398
+ return self::$instance->sections;
399
+ }
400
+
401
+ /**
402
+ * Return the fields array.
403
+ *
404
+ * @since 3.0.0
405
+ * @access public
406
+ * @return array
407
+ */
408
+ public function get_fields() {
409
+ return self::$instance->fields;
410
+ }
411
+
412
+ /**
413
+ * Return a filterd array based on sections value.
414
+ *
415
+ * @since 3.0.0
416
+ * @access public
417
+ * @return array
418
+ */
419
+ public function get_filtered_fields() {
420
+ $fields = array();
421
+ foreach ( self::$instance->sections as $key => $value ) {
422
+ foreach ( self::$instance->fields[ $key ] as $field_key => $field_values ) {
423
+ $fields[ $field_key ] = $field_values;
424
+ }
425
+ }
426
+
427
+ return $fields;
428
+ }
429
+ }
dist/includes/admin/controllers/class-wppr-admin-render-controller.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPPR Admin Render Controller
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Admin
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Admin_Render_Controller for handling page rendering.
14
+ */
15
+ class WPPR_Admin_Render_Controller {
16
+
17
+ /**
18
+ * The ID of this plugin.
19
+ *
20
+ * @since 3.0.0
21
+ * @access private
22
+ * @var string $plugin_name The ID of this plugin.
23
+ */
24
+ private $plugin_name;
25
+
26
+ /**
27
+ * The version of this plugin.
28
+ *
29
+ * @since 3.0.0
30
+ * @access private
31
+ * @var string $version The current version of this plugin.
32
+ */
33
+ private $version;
34
+
35
+ /**
36
+ * Stores the helper class to render elements.
37
+ *
38
+ * @since 3.0.0
39
+ * @access private
40
+ * @var WPPR_Html_Fields $html_helper The HTML helper class.
41
+ */
42
+ private $html_helper;
43
+
44
+ /**
45
+ * Initialize the class and set its properties.
46
+ *
47
+ * @since 3.0.0
48
+ * @param string $plugin_name The name of this plugin.
49
+ * @param string $version The version of this plugin.
50
+ */
51
+ public function __construct( $plugin_name, $version ) {
52
+ $this->plugin_name = $plugin_name;
53
+ $this->version = $version;
54
+ $this->html_helper = new WPPR_Html_Fields();
55
+ }
56
+
57
+ /**
58
+ * Utility method to include required layout.
59
+ *
60
+ * @since 3.0.0
61
+ * @access public
62
+ * @param string $name The name of the layout to be retrieved.
63
+ * @param bool|WPPR_Abstract_Model $model Optional pass a model to use in template.
64
+ */
65
+ public function retrive_template( $name, $model = false ) {
66
+ /*
67
+ Let's check for user templates inside the wppr folder in the theme.
68
+ We expect the following files
69
+ /wppr/<name>.php
70
+ /wppr/<name>.css
71
+ /wppr/<name>.png
72
+ */
73
+ if ( file_exists( get_stylesheet_directory() . '/wppr' ) ) {
74
+ if ( file_exists( get_stylesheet_directory() . '/wppr/' . $name . '.css' ) ) {
75
+ wp_enqueue_style( $this->plugin_name . '-' . $name . '-custom', get_stylesheet_directory_uri() . '/wppr/' . $name . '.css', array(), $this->version );
76
+ }
77
+ if ( file_exists( get_stylesheet_directory() . '/wppr/' . $name . '.php' ) ) {
78
+ include_once( get_stylesheet_directory() . '/wppr/' . $name . '.php' );
79
+ return;
80
+ }
81
+ }
82
+
83
+ if ( file_exists( WPPR_PATH . '/includes/admin/layouts/css/' . $name . '.css' ) ) {
84
+ wp_enqueue_style( $this->plugin_name . '-' . $name . '-css', WPPR_URL . '/includes/admin/layouts/css/' . $name . '.css', array(), $this->version );
85
+ }
86
+ include_once( WPPR_PATH . '/includes/admin/layouts/' . $name . '-tpl.php' );
87
+ }
88
+
89
+ /**
90
+ * Render editor metabox.
91
+ *
92
+ * @since 3.0.0
93
+ * @access public
94
+ * @param string $template Path to template file or template name.
95
+ * @param bool|WPPR_Abstract_Model $model Optional pass a model to use in template.
96
+ */
97
+ public function render_editor_metabox( $template, $model = false ) {
98
+ if ( ! file_exists( $template ) ) {
99
+ $template = WPPR_PATH . '/includes/admin/layouts/' . $template . '-tpl.php';
100
+ }
101
+ $html_helper = new WPPR_Html_Fields();
102
+ include_once( $template );
103
+ }
104
+
105
+ /**
106
+ * Method to controll what element is rendered based on type.
107
+ *
108
+ * @since 3.0.0
109
+ * @access public
110
+ * @param array $field The array to use when rendering.
111
+ * @return mixed
112
+ */
113
+ public function add_element( $field ) {
114
+ $output = '
115
+ <div class="controls">
116
+ <div class="explain"><h4>' . $field['title'] . '</h4></div>
117
+ <div class="controls-content">
118
+ ';
119
+ switch ( $field['type'] ) {
120
+ case 'input_text':
121
+ $output .= $this->html_helper->text( $field );
122
+ break;
123
+ case 'select':
124
+ $output .= $this->html_helper->select( $field );
125
+ break;
126
+ case 'color':
127
+ $output .= $this->html_helper->color( $field );
128
+ break;
129
+ case 'text':
130
+ $output .= $this->html_helper->text( $field );
131
+ break;
132
+ case 'icon_font':
133
+ $output .= $this->html_helper->icon_font( $field );
134
+ break;
135
+ }
136
+
137
+ $output .= '<p class="field_description">' . $field['description'] . '</p></div></div><hr/>';
138
+ echo $output;
139
+
140
+ if ( isset( $errors ) ) {
141
+ return $errors; }
142
+ }
143
+ }
dist/includes/admin/helpers/class-wppr-html-fields.php ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class for HTML fields.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Helpers
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Html_Fields
14
+ */
15
+ class WPPR_Html_Fields {
16
+
17
+ /**
18
+ * Validate a class string.
19
+ *
20
+ * @since 3.0.0
21
+ * @access private
22
+ * @param string $class Class name string to validate.
23
+ * @return string
24
+ */
25
+ private function validate_class( $class ) {
26
+ return implode( ' ', array_map( 'sanitize_html_class', explode( ' ', str_replace( ' ', ' ', $class ) ) ) );
27
+ }
28
+
29
+ /**
30
+ * Merges specific defaults with general ones.
31
+ *
32
+ * @since 3.0.0
33
+ * @access private
34
+ * @param array $specific_defaults The specific defaults array.
35
+ * @return array
36
+ */
37
+ private function define_defaults( $specific_defaults ) {
38
+ $general_defaults = array(
39
+ 'id' => null,
40
+ 'name' => null,
41
+ 'value' => null,
42
+ 'class' => '',
43
+ 'default' => '',
44
+ 'placeholder' => '',
45
+ 'disabled' => false,
46
+ );
47
+
48
+ return wp_parse_args( $specific_defaults, $general_defaults );
49
+ }
50
+
51
+ /**
52
+ * Render a radio html element.
53
+ *
54
+ * @since 3.0.0
55
+ * @access public
56
+ * @param array $args The field settings.
57
+ * @return string
58
+ */
59
+ public function radio( $args ) {
60
+ $defaults = $this->define_defaults(
61
+ array(
62
+ 'class' => 'wppr-radio',
63
+ )
64
+ );
65
+ $args = wp_parse_args( $args, $defaults );
66
+ $class = $this->validate_class( $args['class'] );
67
+ $disabled = '';
68
+ if ( ! empty( $args['options']['disabled'] ) ) {
69
+ $disabled .= ' disabled="disabled"';
70
+ }
71
+ if ( is_null( $args['id'] ) ) {
72
+ $args['id'] = $args['name'];
73
+ }
74
+ $output = '<input type="radio" ' . $disabled . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="' . $class . '" ' . checked( $args['value'], $args['current'], false ) . ' value="' . esc_attr( $args['value'] ) . '" />';
75
+
76
+ return apply_filters( 'wppr_field', $output, $args );
77
+ }
78
+
79
+ /**
80
+ * Render a text input string.
81
+ *
82
+ * @since 3.0.0
83
+ * @access public
84
+ * @param array $args The settings of the input.
85
+ * @return string
86
+ */
87
+ public function text( $args ) {
88
+ $defaults = $this->define_defaults(
89
+ array(
90
+ 'class' => 'wppr-text',
91
+ )
92
+ );
93
+ $args = wp_parse_args( $args, $defaults );
94
+ $class = $this->validate_class( $args['class'] );
95
+ $disabled = '';
96
+ if ( $args['disabled'] ) {
97
+ $disabled = ' disabled="disabled"';
98
+ }
99
+ if ( is_null( $args['id'] ) ) {
100
+ $args['id'] = $args['name'];
101
+ }
102
+ if ( $args['value'] == null ) {
103
+ $args['value'] = $args['default'];
104
+ }
105
+ $output = '<input type="text" ' . $disabled . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="' . $class . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" />';
106
+
107
+ return apply_filters( 'wppr_field', $output, $args );
108
+ }
109
+
110
+ /**
111
+ * Render a image field.
112
+ *
113
+ * @since 3.0.0
114
+ * @access public
115
+ * @param array $args The settings of the input.
116
+ * @return string
117
+ */
118
+ public function image( $args ) {
119
+ $defaults = $this->define_defaults(
120
+ array(
121
+ 'class' => 'wppr-image',
122
+ 'action' => __( 'Choose image', 'wp-product-review' ),
123
+ )
124
+ );
125
+ $args = wp_parse_args( $args, $defaults );
126
+ $class = $this->validate_class( $args['class'] );
127
+ $disabled = '';
128
+ if ( $args['disabled'] ) {
129
+ $disabled = ' disabled="disabled"';
130
+ }
131
+ if ( is_null( $args['id'] ) ) {
132
+ $args['id'] = $args['name'];
133
+ }
134
+ $output = '<input type="text" ' . $disabled . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="' . $class . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" />';
135
+ $output .= '<input type="button" id="' . esc_attr( $args['id'] ) . '-button" class="wppr-image-button button" value="' . esc_attr( $args['action'] ) . '"/>';
136
+
137
+ return apply_filters( 'wppr_field', $output, $args );
138
+ }
139
+
140
+ /**
141
+ * Render a select input.
142
+ *
143
+ * @since 3.0.0
144
+ * @access public
145
+ * @param array $args The settings of the input.
146
+ * @return mixed
147
+ */
148
+ public function select( $args ) {
149
+ $defaults = $this->define_defaults(
150
+ array(
151
+ 'class' => 'wppr-select',
152
+ )
153
+ );
154
+ $args = wp_parse_args( $args, $defaults );
155
+ $class = $this->validate_class( $args['class'] );
156
+ if ( $args['value'] == null ) {
157
+ $args['value'] = $args['default'];
158
+ }
159
+ $disabled = '';
160
+ if ( ! empty( $args['disabled'] ) ) {
161
+ $disabled .= ' disabled="disabled"';
162
+ }
163
+ $options = array();
164
+ foreach ( $args['options'] as $ov => $op ) {
165
+ $options[ esc_attr( $ov ) ] = esc_html( $op );
166
+ }
167
+ $output = '<select class="' . $class . '" name="' . esc_attr( $args['name'] ) . '"' . $disabled . ' > ';
168
+ foreach ( $options as $k => $v ) {
169
+ $output .= "<option value='" . $k . "' " . ( ( isset( $args['value'] ) && $args['value'] == $k ) ? 'selected' : '' ) . '>' . $v . '</option>';
170
+ }
171
+ $output .= '</select>';
172
+
173
+ return apply_filters( 'wppr_field', $output, $args );
174
+ }
175
+
176
+ /**
177
+ * Render a color picker.
178
+ *
179
+ * @since 3.0.0
180
+ * @access public
181
+ * @param array $args The settings of the input.
182
+ * @return mixed
183
+ */
184
+ public function color( $args ) {
185
+ $defaults = $this->define_defaults(
186
+ array(
187
+ 'class' => 'wppr-color',
188
+ )
189
+ );
190
+ $args = wp_parse_args( $args, $defaults );
191
+ $class = $this->validate_class( $args['class'] );
192
+ if ( $args['value'] == null ) {
193
+ $args['value'] = $args['default'];
194
+ }
195
+ $output = '<input type="hidden" class="' . $class . '" id="' . esc_attr( $args['id'] ) . '_color" name="' . esc_attr( $args['name'] ) . '" value="' . esc_attr( $args['value'] ) . '"/></br>
196
+ <input type="text" name="" class="subo-color-picker" id="' . esc_attr( $args['id'] ) . '_color_selector" value="' . esc_attr( $args['value'] ) . '" /><br/>';
197
+
198
+ return apply_filters( 'wppr_field', $output, $args );
199
+ }
200
+
201
+ /**
202
+ * Render a Icon font picker.
203
+ *
204
+ * @since 3.0.0
205
+ * @access public
206
+ * @param array $args The settings of the input.
207
+ * @return mixed
208
+ */
209
+ public function icon_font( $args ) {
210
+ $defaults = $this->define_defaults(
211
+ array(
212
+ 'class' => 'cwp_bar_icon_field',
213
+ )
214
+ );
215
+ $args = wp_parse_args( $args, $defaults );
216
+ if ( is_array( $args['value'] ) ) {
217
+ $value = $args['value'][0];
218
+ } else {
219
+ $value = $args['value'];
220
+ }
221
+ if ( trim( $value ) != '' ) {
222
+ $active_icon = '
223
+ <i class="fa fa-fw">&' . $value . '</i>
224
+ <a href="#" class="useDefault">' . __( '. Use Default Styling', 'wp-product-review' ) . ' </a>
225
+ ';
226
+ } else {
227
+ $active_icon = __( '* Currently set to the default styling', 'wp-product-review' );
228
+ }
229
+ $output = '
230
+ <button id="cwp_select_bar_icon">Select Bar Icon</button>
231
+ <input type="hidden" id="cwp_bar_icon_field" name="' . esc_attr( $args['name'] ) . '" value="' . esc_attr( $value ) . '">
232
+ <span class="current_bar_icon">
233
+ ' . $active_icon . '
234
+ </span>
235
+ ';
236
+
237
+ if ( ! class_exists( 'WPPR_PRO' ) ) {
238
+ $output = '<span style="color:red;">' . __( 'You need the PRO <a style="color:red;" href="http://bit.ly/2bhylar" target="_blank" >add-on</a> in order to change the review icons.', 'wp-product-review' ) . '</span>';
239
+ }
240
+
241
+ return apply_filters( 'wppr_field', $output, $args );
242
+ }
243
+ }
dist/includes/admin/helpers/class-wppr-logger.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPPR Logger Controller
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Helpers
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Logger.
14
+ */
15
+ class WPPR_Logger {
16
+
17
+ /**
18
+ * Report a message as warning.
19
+ *
20
+ * @since 3.0.0
21
+ * @access public
22
+ *
23
+ * @param string $msg The message to report.
24
+ */
25
+ public function warning( $msg = '' ) {
26
+ $this->message( $msg, 'warning' );
27
+ }
28
+
29
+ /**
30
+ * Report a message as error|warning|notice.
31
+ *
32
+ * @since 3.0.0
33
+ * @access private
34
+ *
35
+ * @param string $msg The message.
36
+ * @param string $type The type of the message.
37
+ */
38
+ private function message( $msg, $type ) {
39
+
40
+ if ( ! defined( 'WPPR_DEBUG' ) ) {
41
+ return;
42
+ }
43
+ if ( ! WPPR_DEBUG ) {
44
+ return;
45
+ }
46
+ $type = strtoupper( $type );
47
+ $msg = $type . ' : ' . $msg;
48
+ $bt = debug_backtrace();
49
+ $caller = array_shift( $bt );
50
+ $caller = array_shift( $bt );
51
+ $caller = array_shift( $bt );
52
+ $msg = $msg . ' [ ' . $caller['file'];
53
+ $msg = $msg . ' : ' . $caller['line'] . ' ]';
54
+ error_log( $msg );
55
+
56
+ }
57
+
58
+ /**
59
+ * The error msg to report.
60
+ *
61
+ * @since 3.0.0
62
+ * @access public
63
+ *
64
+ * @param string $msg The error msg.
65
+ */
66
+ public function error( $msg = '' ) {
67
+ $this->message( $msg, 'error' );
68
+ }
69
+
70
+ /**
71
+ * Report a message as notice.
72
+ *
73
+ * @since 3.0.0
74
+ * @access public
75
+ *
76
+ * @param string $msg The message to report as notice.
77
+ */
78
+ public function notice( $msg = '' ) {
79
+ $this->message( $msg, 'notice' );
80
+ }
81
+ }
dist/includes/admin/index.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Silence is golden
4
+ *
5
+ * @package WPPR
6
+ * @copyright Copyright (c) 2017, Bogdan Preda
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ * @since 3.0.0
9
+ */
10
+
11
+ /**
12
+ * Nothing to do here.
13
+ */
dist/includes/admin/layouts/css/settings.css ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /**
2
+ * Settings CSS
3
+ * 3.0.0
4
+ */
dist/includes/admin/layouts/editor-default-tpl.php ADDED
@@ -0,0 +1,407 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Editor Metabox layout for post page.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @global $model WPPR_Editor_Model
8
+ * @copyright Copyright (c) 2017, Bogdan Preda
9
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10
+ * @since 3.0.0
11
+ */
12
+
13
+ $review = $model->review;
14
+ if ( empty( $review ) ) {
15
+ return;
16
+ }
17
+ $check = $review->is_active() ? 'yes' : 'no';
18
+ ?>
19
+ <p class="wppr-active wppr-<?php echo $check; ?>">
20
+ <label for="wppr-review-yes"><?php _e( 'Is this a review post ?', 'wp-product-review' ); ?> </label>
21
+ <?php
22
+ echo $html_helper->radio(
23
+ array(
24
+ 'name' => 'wppr-review-status',
25
+ 'id' => 'wppr-review-yes',
26
+ 'class' => 'wppr-review-status',
27
+ 'value' => 'yes',
28
+ 'current' => $check,
29
+ )
30
+ );
31
+ ?>
32
+ <label for="wppr-review-no"><?php _e( 'Yes', 'wp-product-review' ); ?></label>
33
+ <?php
34
+ echo $html_helper->radio(
35
+ array(
36
+ 'name' => 'wppr-review-status',
37
+ 'id' => 'wppr-review-no',
38
+ 'class' => 'wppr-review-status',
39
+ 'value' => 'no',
40
+ 'current' => $check,
41
+ )
42
+ );
43
+ ?>
44
+ <label for="wppr-review-no"><?php _e( 'No', 'wp-product-review' ); ?></label>
45
+
46
+ </p>
47
+ <div class="wppr-review-editor " id="wppr-meta-<?php echo $check; ?>">
48
+
49
+ <?php do_action( 'wppr_editor_before', $model->post ); ?>
50
+ <div class="wppr-review-details wppr-review-section">
51
+ <h4><?php _e( 'Product Details', 'wp-product-review' ); ?></h4>
52
+ <p><?php _e( 'Specify the general details for the reviewed product.', 'wp-product-review' ); ?></p>
53
+ <?php do_action( 'wppr_editor_details_before', $model->post ); ?>
54
+ <div class="wppr-review-details-fields wppr-review-fieldset">
55
+ <ul>
56
+ <?php
57
+ $templates = apply_filters( 'wppr_review_templates', array( 'default', 'style1', 'style2' ) );
58
+ if ( $templates ) {
59
+ ?>
60
+ <li>
61
+ <label for="wppr-editor-template"><?php _e( 'Template', 'wp-product-review' ); ?></label>
62
+ <?php
63
+ foreach ( $templates as $template ) {
64
+ $template_id = 'wppr-review-template-' . esc_attr( $template );
65
+ echo $html_helper->radio(
66
+ array(
67
+ 'name' => 'wppr-review-template',
68
+ 'id' => $template_id,
69
+ 'class' => 'wppr-review-template',
70
+ 'value' => $template,
71
+ 'current' => $review->get_template(),
72
+ 'options' => array(
73
+ 'disabled' => ! defined( 'WPPR_PRO_SLUG' ) && 'default' !== $template,
74
+ ),
75
+ )
76
+ );
77
+ ?>
78
+ <label for="<?php echo $template_id; ?>">
79
+ <?php
80
+ $image = null;
81
+ if ( file_exists( WPPR_PATH . "/assets/img/templates/$template.png" ) ) {
82
+ $image = WPPR_URL . "/assets/img/templates/$template.png";
83
+ } elseif ( file_exists( get_stylesheet_directory() . "/wppr/$template.png" ) ) {
84
+ $image = get_stylesheet_directory_uri() . "/wppr/$template.png";
85
+ }
86
+ if ( $image ) {
87
+ ?>
88
+ <img src='<?php echo $image; ?>' class="wppr-review-template"/>
89
+ <?php
90
+ }
91
+ ?>
92
+ </label>
93
+ <?php
94
+ }
95
+ ?>
96
+ </li>
97
+ <?php
98
+ }
99
+ if ( ! defined( 'WPPR_PRO_SLUG' ) ) {
100
+ ?>
101
+ <label class="wppr-upsell-label"><?php echo sprintf( esc_html__( 'You will need the %1$spremium%2$s version to use the extra review templates. You can checkout this %3$sdemo%4$s to see how they are looking.', 'wp-product-review' ), '<a href="' . WPPR_UPSELL_LINK . '">', '</a>', '<a href="https://demo.themeisle.com/wp-product-review/multiple-review-templates/">', '</a>' ); ?></label>
102
+ <br/>
103
+ <?php
104
+ }
105
+ ?>
106
+ <li>
107
+ <label for="wppr-editor-product-name"><?php _e( 'Product Name', 'wp-product-review' ); ?></label>
108
+ <?php
109
+ echo $html_helper->text(
110
+ array(
111
+ 'name' => 'wppr-editor-product-name',
112
+ 'value' => $review->get_name(),
113
+ 'placeholder' => __( 'Product name', 'wp-product-review' ),
114
+ )
115
+ );
116
+ ?>
117
+ </li>
118
+ <li>
119
+ <label for="wppr-editor-product-image"><?php _e( 'Product Image', 'wp-product-review' ); ?></label>
120
+ <?php
121
+ echo $html_helper->image(
122
+ array(
123
+ 'name' => 'wppr-editor-image',
124
+ 'value' => $review->get_image(),
125
+ 'action' => __( 'Choose or Upload an Image', 'wp-product-review' ),
126
+ )
127
+ )
128
+ ?>
129
+ <small class="size-text">
130
+ *<?php _e( 'The optimum size of the product image must be 600 x 600 px', 'wp-product-review' ); ?>
131
+ </small>
132
+ <small>
133
+ *<?php _e( 'If no image is provided, featured image is used', 'wp-product-review' ); ?>
134
+ </small>
135
+ </li>
136
+ <li>
137
+ <span><?php _e( 'Product Image Click', 'wp-product-review' ); ?>
138
+ : </span>
139
+ <?php
140
+ echo $html_helper->radio(
141
+ array(
142
+ 'name' => 'wppr-editor-link',
143
+ 'id' => 'wppr-editor-link-show',
144
+ 'class' => 'wppr-editor-link',
145
+ 'value' => 'image',
146
+ 'current' => $model->get_value( 'wppr-editor-link' ),
147
+ )
148
+ );
149
+ ?>
150
+ <label for="wppr-editor-link-show"><?php _e( 'Show Whole Image', 'wp-product-review' ); ?></label>
151
+ <?php
152
+ echo $html_helper->radio(
153
+ array(
154
+ 'name' => 'wppr-editor-link',
155
+ 'id' => 'wppr-editor-link-open',
156
+ 'class' => 'wppr-editor-link',
157
+ 'value' => 'link',
158
+ 'current' => $model->get_value( 'wppr-editor-link' ),
159
+ )
160
+ );
161
+ ?>
162
+ <label for="wppr-editor-link-open"><?php _e( 'Open Affiliate link', 'wp-product-review' ); ?> </label>
163
+
164
+ </li>
165
+ <?php
166
+ $links = $review->get_links();
167
+ ?>
168
+ <li>
169
+ <label for="wppr-editor-button-text"><?php _e( 'Affiliate Button Text', 'wp-product-review' ); ?> </label>
170
+ <?php
171
+ echo $html_helper->text(
172
+ array(
173
+ 'name' => 'wppr-editor-button-text',
174
+ 'value' => $model->get_value( 'wppr-editor-button-text' ),
175
+ 'placeholder' => __( 'Affiliate Button Text', 'wp-product-review' ),
176
+ )
177
+ );
178
+ ?>
179
+ </li>
180
+ <li>
181
+ <label for="wppr-editor-button-link"><?php _e( 'Affiliate Link', 'wp-product-review' ); ?> </label>
182
+ <?php
183
+ echo $html_helper->text(
184
+ array(
185
+ 'name' => 'wppr-editor-button-link',
186
+ 'value' => $model->get_value( 'wppr-editor-button-link' ),
187
+ 'placeholder' => __( 'Affiliate Link', 'wp-product-review' ),
188
+ )
189
+ );
190
+ ?>
191
+ <?php if ( count( $links ) < 2 ) : ?>
192
+ <a id="wppr-editor-new-link"
193
+ title="<?php _e( 'Add new link', 'wp-product-review' ); ?>">+
194
+ </a>
195
+ <?php endif; ?>
196
+ </li>
197
+ <?php if ( count( $links ) < 2 ) { ?>
198
+ <li class="hidden_fields" style="display: none;">
199
+ <label for="wppr-editor-button-text"><?php _e( 'Affiliate Button Text', 'wp-product-review' ); ?> </label>
200
+ <?php
201
+ echo $html_helper->text(
202
+ array(
203
+ 'name' => 'wppr-editor-button-text-2',
204
+ 'value' => $model->get_value( 'wppr-editor-button-text-2' ),
205
+ 'placeholder' => __( 'Affiliate Button Text', 'wp-product-review' ),
206
+ )
207
+ );
208
+ ?>
209
+ </li>
210
+ <li class="hidden_fields" style="display: none;">
211
+ <label for="wppr-editor-button-link"><?php _e( 'Affiliate Link', 'wp-product-review' ); ?> </label>
212
+ <?php
213
+ echo $html_helper->text(
214
+ array(
215
+ 'name' => 'wppr-editor-button-link-2',
216
+ 'value' => $model->get_value( 'wppr-editor-button-link-2' ),
217
+ 'placeholder' => __( 'Affiliate Link', 'wp-product-review' ),
218
+ )
219
+ );
220
+ ?>
221
+ </li>
222
+ <?php
223
+ }
224
+ ?>
225
+ <?php
226
+ if ( ! empty( $links ) ) {
227
+ if ( count( $links ) > 1 ) {
228
+ $i = 1;
229
+ foreach ( $links as $text => $url ) {
230
+ if ( $i > 1 ) {
231
+ ?>
232
+ <li>
233
+ <label for="wppr-editor-button-text-<?php $i; ?>"><?php echo __( 'Affiliate Button Text', 'wp-product-review' ) . ' ' . $i; ?> </label>
234
+ <?php
235
+ echo $html_helper->text(
236
+ array(
237
+ 'name' => 'wppr-editor-button-text-' . $i,
238
+ 'value' => $text,
239
+ 'placeholder' => __( 'Affiliate Button Text', 'wp-product-review' ) . ' ' . $i,
240
+ )
241
+ );
242
+ ?>
243
+ </li>
244
+ <li>
245
+ <label for="wppr-editor-button-link-<?php $i; ?>"><?php echo __( 'Affiliate Link', 'wp-product-review' ) . ' ' . $i; ?> </label>
246
+ <?php
247
+ echo $html_helper->text(
248
+ array(
249
+ 'name' => 'wppr-editor-button-link-' . $i,
250
+ 'value' => $url,
251
+ 'placeholder' => __( 'Affiliate Link', 'wp-product-review' ) . ' ' . $i,
252
+ )
253
+ );
254
+ ?>
255
+ </li>
256
+ <?php
257
+ }
258
+ $i ++;
259
+ }
260
+ }
261
+ }
262
+ ?>
263
+
264
+ <li>
265
+ <label for="wppr-editor-price"><?php _e( 'Product Price', 'wp-product-review' ); ?> </label>
266
+ <?php
267
+ echo $html_helper->text(
268
+ array(
269
+ 'name' => 'wppr-editor-price',
270
+ 'value' => $review->get_price_raw(),
271
+ 'placeholder' => __( 'Product Price', 'wp-product-review' ),
272
+ )
273
+ );
274
+ ?>
275
+ </li>
276
+
277
+ </ul>
278
+ </div>
279
+ <?php do_action( 'wppr_editor_details_after', $model->post ); ?>
280
+ </div><!-- end .review-settings-notice -->
281
+ <div class="wppr-review-options wppr-review-section">
282
+ <h4><?php _e( 'Product Options', 'wp-product-review' ); ?></h4>
283
+ <p><?php _e( 'Insert your options and their grades. Grading must be done from 0 to 100.', 'wp-product-review' ); ?></p>
284
+ <div class="cwpr_clearfix">
285
+ <?php
286
+ if ( $model->wppr_get_option( 'cwppos_show_poweredby' ) === 'yes' || class_exists( 'WPPR_Pro' ) || function_exists( 'wppr_ep_js_preloader' ) ) {
287
+ ?>
288
+ <a href="#" class="preload_info"><?php _e( 'Preload Info', 'wp-product-review' ); ?></a>
289
+ <?php
290
+ } else {
291
+ echo '<label class="wppr-upsell-label">' . __( ' In order to be able to automatically load your options from another posts, you need the ', 'wp-product-review' ) . '<a href="' . WPPR_UPSELL_LINK . '" target="_blank" >' . __( 'PRO add-on', 'wp-product-review' ) . '</a></label>';
292
+ }
293
+ ?>
294
+ </div>
295
+ <?php do_action( 'wppr_editor_options_before', $model->post ); ?>
296
+ <div class="wppr-review-fieldset wppr-review-options-fields">
297
+ <ul class="wppr-review-options-list">
298
+ <?php
299
+
300
+ $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
301
+ for ( $i = 1; $i <= $options_nr; $i ++ ) {
302
+ ?>
303
+ <li>
304
+ <label for="wppr-editor-options-text-<?php echo $i; ?>"><?php echo $i; ?></label>
305
+ <?php
306
+ echo $html_helper->text(
307
+ array(
308
+ 'name' => 'wppr-editor-options-name[' . $i . ']',
309
+ 'id' => 'wppr-editor-options-name-' . $i,
310
+ 'value' => $model->get_value( 'wppr-option-name-' . $i ),
311
+ 'placeholder' => __( 'Option', 'wp-product-review' ) . ' ' . $i,
312
+ )
313
+ );
314
+ echo $html_helper->text(
315
+ array(
316
+ 'name' => 'wppr-editor-options-value[' . $i . ']',
317
+ 'id' => 'wppr-editor-options-value-' . $i,
318
+ 'class' => 'wppr-text wppr-option-number',
319
+ 'value' => $model->get_value( 'wppr-option-value-' . $i ),
320
+ 'placeholder' => __( 'Grade', 'wp-product-review' ),
321
+ )
322
+ );
323
+ ?>
324
+ </li>
325
+ <?php
326
+ }
327
+ ?>
328
+ </ul>
329
+ </div>
330
+ <?php do_action( 'wppr_editor_options_after', $model->post ); ?>
331
+
332
+ </div>
333
+ <div class="wppr-review-pros wppr-review-section">
334
+ <h4><?php _e( 'Pro Features', 'wp-product-review' ); ?></h4>
335
+ <p><?php _e( 'Insert product\'s pro features below.', 'wp-product-review' ); ?></p>
336
+
337
+ <?php do_action( 'wppr_editor_pros_before', $model->post ); ?>
338
+ <div class="wppr-review-fieldset wppr-review-pros-fields">
339
+ <ul class="wppr-review-options-list ">
340
+ <?php
341
+ $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
342
+ $pros = $review->get_pros();
343
+ for ( $i = 1; $i <= $options_nr; $i ++ ) {
344
+ ?>
345
+ <li>
346
+ <label for="wppr-editor-pros-<?php echo $i; ?>"><?php echo $i; ?></label>
347
+ <?php
348
+ echo $html_helper->text(
349
+ array(
350
+ 'name' => 'wppr-editor-pros[]',
351
+ 'id' => 'wppr-editor-pros-' . $i,
352
+ 'value' => isset( $pros[ $i - 1 ] ) ? $pros[ $i - 1 ] : '',
353
+ 'placeholder' => __( 'Option', 'wp-product-review' ) . ' ' . $i,
354
+ )
355
+ );
356
+ ?>
357
+ </li>
358
+ <?php
359
+ }
360
+ ?>
361
+ </ul>
362
+ </div>
363
+ <?php do_action( 'wppr_editor_pros_after', $model->post ); ?>
364
+ </div>
365
+ <div class="wppr-review-cons wppr-review-section">
366
+ <h4><?php _e( 'Cons Features', 'wp-product-review' ); ?></h4>
367
+ <p><?php _e( 'Insert product\'s cons features below.', 'wp-product-review' ); ?></p>
368
+ <?php do_action( 'wppr_editor_cons_before', $model->post ); ?>
369
+ <div class="wppr-review-fieldset wppr-review-cons-fields">
370
+ <ul class="wppr-review-options-list ">
371
+ <?php
372
+ $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
373
+ $cons = $review->get_cons();
374
+ for ( $i = 1; $i <= $options_nr; $i ++ ) {
375
+ ?>
376
+ <li>
377
+ <label for="wppr-editor-cons-<?php echo $i; ?>"><?php echo $i; ?></label>
378
+ <?php
379
+ echo $html_helper->text(
380
+ array(
381
+ 'name' => 'wppr-editor-cons[]',
382
+ 'id' => 'wppr-editor-cons-' . $i,
383
+ 'value' => isset( $cons[ $i - 1 ] ) ? $cons[ $i - 1 ] : '',
384
+ 'placeholder' => __( 'Option', 'wp-product-review' ) . ' ' . $i,
385
+ )
386
+ );
387
+ ?>
388
+ </li>
389
+ <?php
390
+ }
391
+ ?>
392
+ </ul>
393
+ </div>
394
+ <?php do_action( 'wppr_editor_cons_after', $model->post ); ?>
395
+ </div>
396
+
397
+ <br class="clear">
398
+
399
+ <?php if ( ! shortcode_exists( 'P_REVIEW' ) ) : ?>
400
+ <label class="wppr-upsell-label"> You can use the shortcode <b>[P_REVIEW]</b> to show a review you already made
401
+ or
402
+ <b>[wpr_landing]</b> to display a comparision table of them. The shortcodes are available on the <a
403
+ target="_blank" href="<?php echo WPPR_UPSELL_LINK; ?>">Pro Bundle</a><br/><br/></label>
404
+ <?php endif; ?>
405
+
406
+ <?php do_action( 'wppr_editor_after', $model->post ); ?>
407
+ </div>
dist/includes/admin/layouts/header-part.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Header for admin pages.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage WPPR/Layouts
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ ?>
13
+ <div class="pro-features-header">
14
+ <p class="logo">WP Product Review</p>
15
+ <span class="slogan">by <a
16
+ href="https://themeisle.com/">ThemeIsle</a></span>
17
+ <div class="header-btns">
18
+ <?php if ( ! class_exists( 'WPPR_Pro' ) ) { ?>
19
+ <a target="_blank" href="<?php echo WPPR_UPSELL_LINK; ?>" class="buy-now"><span
20
+ class="dashicons dashicons-cart"></span> More features</a>
21
+ <?php } ?>
22
+ </div>
23
+ <div class="clear"></div>
24
+ </div>
dist/includes/admin/layouts/settings-tpl.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Settings layout in the admin dashboard.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ $global_settings = WPPR_Global_Settings::instance();
13
+ $sections = $global_settings->get_sections();
14
+ $fields = $global_settings->get_fields();
15
+
16
+ ?>
17
+ <div id="wppr-admin">
18
+ <?php do_action( 'wppr_admin_page_before' ); ?>
19
+
20
+ <?php include WPPR_PATH . '/includes/admin/layouts/header-part.php'; ?>
21
+
22
+ <div id="wppr_top_tabs" class="clearfix">
23
+ <ul id="tabs_menu" role="menu">
24
+ <?php foreach ( $sections as $section_key => $section_name ) : ?>
25
+ <li class="wppr-nav-tab" id="wppr-nav-tab-<?php echo $section_key; ?>"
26
+ data-tab="wppr-tab-<?php echo $section_key; ?>">
27
+ <a href="#wppr-tab-<?php echo $section_key; ?>" title="<?php esc_attr( $section_name ); ?>">
28
+ <?php echo esc_html( $section_name ); ?>
29
+ </a>
30
+ </li>
31
+ <?php endforeach; ?>
32
+ </ul>
33
+
34
+ </div>
35
+ <form id="wppr-settings" method="post" action="#" enctype="multipart/form-data">
36
+
37
+ <?php foreach ( $sections as $section_key => $section_name ) : ?>
38
+ <div id="wppr-tab-<?php echo $section_key; ?>" class="wppr-tab-content">
39
+ <?php
40
+ if ( ! shortcode_exists( 'P_REVIEW' ) ) {
41
+ ?>
42
+ <label class="wppr-upsell-label"> You can use the shortcode <b>[P_REVIEW]</b> to show a review you
43
+ already made or
44
+ <b>[wpr_landing]</b> to display a comparison table of them. The shortcodes are available on the
45
+ <a
46
+ target="_blank" href="<?php echo WPPR_UPSELL_LINK; ?>">Pro Bundle</a><br/><br/></label>
47
+ <?php
48
+ } else {
49
+ do_action( 'wppr_settings_section_upsell', $section_key );
50
+ }
51
+ foreach ( $fields[ $section_key ] as $name => $field ) {
52
+ $field['title'] = $field['name'];
53
+ $field['name'] = $name;
54
+ $field['value'] = $model->wppr_get_option( $name );
55
+ $this->add_element( $field );
56
+ }
57
+ ?>
58
+ </div>
59
+
60
+ <?php endforeach; ?>
61
+
62
+ <div id="info_bar">
63
+ <button type="button"
64
+ class="button-primary cwp_save"><?php _e( 'Save All Changes', 'wp-product-review' ); ?></button>
65
+ <span class="spinner"></span>
66
+ </div><!--.info_bar-->
67
+ <?php wp_nonce_field( 'wppr_save_global_settings', 'wppr_nonce_settings', false ); ?>
68
+ </form>
69
+ <?php do_action( 'wppr_admin_page_after' ); ?>
70
+ </div>
dist/includes/admin/layouts/upsell-tpl.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Up-sell layout in the admin dashboard.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ ?>
13
+ <div id="wppr-admin">
14
+
15
+ <?php
16
+ include WPPR_PATH . '/includes/admin/layouts/header-part.php';
17
+ ?>
18
+
19
+ <div class="pro-feature">
20
+ <div class="pro-feature-inner">
21
+ <div class="pro-feature-features">
22
+ <h2>Amazon Integration</h2>
23
+ <h4>Connects your site with Amazon in just a click</h4>
24
+ <p>If you want the Amazon data to be imported to your site, you don't have to do it manually. Add the
25
+ product ID and, by just clicking a button, the name, image, affiliate link, and price will be
26
+ transferred. Saves a lot of time.</p>
27
+ <h4>Synchronizes the prices with Amazon</h4>
28
+ <p>The add-on automatically synchronizes the prices with the ones from Amazon, so you won't have to do
29
+ it
30
+ manually everytime they change. Because prices vary all the time and you probably have better stuff
31
+ to
32
+ do instead of tracking them.</p>
33
+ </div>
34
+ <div class="pro-feature-image"><img
35
+ src="<?php echo WPPR_URL; ?>/assets/img/wppr-amazon-integration-and-support.jpg">
36
+ </div>
37
+ <div class="clear"></div>
38
+ </div>
39
+ </div>
40
+ <div class="clear"></div>
41
+
42
+ <div class="pro-feature">
43
+ <div class="pro-feature-inner">
44
+ <div class="pro-feature-features">
45
+ <h2>Shortcodes</h2>
46
+ <p>Position the review box anywhere in the post with the help of shortcodes. Add as many reviews as you want
47
+ in the same page.</p>
48
+
49
+ </div>
50
+ <div class="pro-feature-image"><img src="<?php echo WPPR_URL; ?>/assets/img/wppr-shortcodes.jpg"></div>
51
+ <div class="clear"></div>
52
+ </div>
53
+ </div>
54
+ <div class="clear"></div>
55
+
56
+ <div class="pro-feature">
57
+ <div class="pro-feature-inner">
58
+ <div class="pro-feature-features">
59
+ <h2>Comparison Table</h2>
60
+ <p>Our powerful ranking table add-on is also included in the bundle and by using it you can automatically
61
+ generate comparison landing pages or enhance your review articles even more</p>
62
+ </div>
63
+ <div class="pro-feature-image"><img src="<?php echo WPPR_URL; ?>/assets/img/wppr-review-comparison.jpg"></div>
64
+ <div class="clear"></div>
65
+ </div>
66
+ </div>
67
+ <div class="clear"></div>
68
+
69
+ <div class="pro-feature">
70
+ <div class="pro-feature-inner">
71
+ <div class="pro-feature-features">
72
+ <h2>Import</h2>
73
+ <p>No need to set up each product review separately. You can import options from other reviews you’ve
74
+ previously built</p>
75
+
76
+ </div>
77
+ <div class="pro-feature-image"><img src="<?php echo WPPR_URL; ?>/assets/img/wppr-import.jpg"></div>
78
+ <div class="clear"></div>
79
+ </div>
80
+ </div>
81
+ <div class="clear"></div>
82
+ </div>
dist/includes/admin/layouts/widget-admin-tpl.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Widget layout for the admin dashboard.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ // @codingStandardsIgnoreStart
13
+ ?>
14
+ <p>
15
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'wp-product-review' ); ?></label>
16
+ <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
17
+ </p>
18
+ <p>
19
+ <label for="<?php echo $this->get_field_id( 'no_items' ); ?>"><?php _e( 'Number of posts to show:', 'wp-product-review' ); ?></label>
20
+ <input id="<?php echo $this->get_field_id( 'no_items' ); ?>" name="<?php echo $this->get_field_name( 'no_items' ); ?>" size="3" type="text" value="<?php echo esc_attr( $instance['no_items'] ); ?>" />
21
+ </p>
22
+ <p>
23
+ <label for="<?php echo $this->get_field_id( 'cwp_tp_post_types' ); ?>"><?php _e( 'Post Types:', 'wp-product-review' ); ?></label>
24
+ <select id="<?php echo $this->get_field_id( 'cwp_tp_post_types' ); ?>" name="<?php echo $this->get_field_name( 'cwp_tp_post_types' ); ?>[]" class="wppr-chosen wppr-post-types" data-wppr-cat-combo="<?php echo $this->get_field_id( 'cwp_tp_category' ); ?>" multiple>
25
+ <?php
26
+ foreach( get_post_types( '', 'objects' ) as $post_type ) {
27
+ ?>
28
+ <option value="<?php echo $post_type->name;?>" <?php echo in_array($post_type->name, $instance['cwp_tp_post_types']) ? 'selected' : '';?>><?php echo $post_type->label;?></option>
29
+ <?php
30
+ }
31
+ ?>
32
+ </select>
33
+ </p>
34
+
35
+ <p>
36
+ <?php $all_cats = isset( $instance['cwp_tp_all_categories'] ) ? $instance['cwp_tp_all_categories'] : ''; ?>
37
+ <label for="<?php echo $this->get_field_id( 'cwp_tp_category' ); ?>"><?php _e( 'Category:', 'wp-product-review' ); ?></label>
38
+ <select id="<?php echo $this->get_field_id( 'cwp_tp_category' ); ?>" name="<?php echo $this->get_field_name( 'cwp_tp_category' ); ?>" class="wppr-chosen wppr-cats">
39
+ <option>All</option>
40
+ <?php
41
+ if ( $all_cats ) {
42
+ foreach ( $all_cats as $post_type => $cats ) {
43
+ ?>
44
+ <optgroup label='<?php echo $post_type;?>'>
45
+ <?php
46
+ foreach ( $cats as $k => $v ) {
47
+ ?>
48
+ <option value="<?php echo $k;?>" <?php selected($k, $instance['cwp_tp_category'])?>><?php echo $v;?></option>
49
+ <?php
50
+ }
51
+ ?>
52
+ </optgroup>
53
+ <?php
54
+ }
55
+ }
56
+ ?>
57
+ </select>
58
+ <div class="spinner wppr-cat-spinner"></div>
59
+ </p>
60
+ <?php
61
+ if ( 'cwp_top_products_widget' === $this->id_base ) {
62
+ $timespan = $instance['cwp_timespan'];
63
+ $min = 0;
64
+ $max = 0;
65
+ if ( ! empty( $timespan ) && false !== $timespan ) {
66
+ $min_max = explode( ',', $timespan );
67
+ $min = reset( $min_max );
68
+ $max = end( $min_max );
69
+ }
70
+ ?>
71
+ <p>
72
+ <label for="<?php echo $this->get_field_id( 'cwp_timespan' ); ?>"><?php _e( 'Timespan (weeks):', 'wp-product-review' ); ?></label>
73
+ <div data-wppr-value="<?php echo $timespan; ?>" data-wppr-min="-52" data-wppr-max="0" class="wppr-timespan wppr-range-slider" data-wppr-desc="<?php echo $this->get_field_id( 'cwp_timespan_desc' ); ?>"></div>
74
+ <div class="wppr-timespan-desc" id="<?php echo $this->get_field_id( 'cwp_timespan_desc' ); ?>">
75
+ <input type="hidden" id="<?php echo $this->get_field_id( 'cwp_timespan' ); ?>" name="<?php echo $this->get_field_name( 'cwp_timespan' ); ?>" value="<?php echo $timespan; ?>">
76
+ <?php echo sprintf(__( 'Posts published between %s%d%s and %s%d%s week(s) ago', 'wp-product-review' ), '<span class="wppr-range-min">', abs($min), '</span>', '<span class="wppr-range-max">', abs($max), '</span>');?>
77
+ </div>
78
+ </p>
79
+ <?php
80
+ }
81
+ ?>
82
+ <p>
83
+ <?php $cwp_tp_layout = esc_attr( $instance['cwp_tp_layout'] ); ?>
84
+ <label for="<?php echo $this->get_field_id( 'cwp_tp_layout' ); ?>"><?php _e( 'Layout:', 'wp-product-review' ); ?></label>
85
+ <?php
86
+ $layouts = array();
87
+ $customLayoutFiles = glob( WPPR_PATH . '/includes/public/layouts/widget/*.php' );
88
+ foreach ( $customLayoutFiles as $file ) {
89
+ $layouts[ basename( $file ) ] = ucwords( basename( $file, '.php' ) );
90
+ }
91
+ foreach ( $layouts as $key => $val ) :
92
+ $extra = '';
93
+ if ( $key == $cwp_tp_layout ) { $extra = 'checked'; }
94
+ $styleName = strtolower( str_replace( ' ', '', $val ) );
95
+ $id = $this->get_field_id( $styleName );
96
+ ?>
97
+ <br>
98
+ <input type="radio" name="<?php echo $this->get_field_name( 'cwp_tp_layout' ); ?>" value="<?php echo $key;?>" id="<?php echo $id . 'style'?>" <?php echo $extra;?> class="wppr-stylestyle"><label for="<?php echo $id . 'style';?>" class="wppr-stylestyle"><?php echo $val;?></label>
99
+ <span class="wppr-styleimg" id="<?php echo $id . 'style'?>img">
100
+ <img src="<?php echo WPPR_URL . '/assets/img/' . $styleName . '.png';?>">
101
+ </span>
102
+ <?php
103
+ endforeach;
104
+ ?>
105
+ </p>
106
+ <p class="wppr-customField" style="display: none">
107
+ <?php $cwp_tp_buynow = esc_attr( $instance['cwp_tp_buynow'] ); ?>
108
+ <label for="<?php echo $this->get_field_id( 'cwp_tp_buynow' ); ?>"><?php _e( 'Buy Now text:', 'wp-product-review' ); ?></label>
109
+ <input id="<?php echo $this->get_field_id( 'cwp_tp_buynow' ); ?>" name="<?php echo $this->get_field_name( 'cwp_tp_buynow' ); ?>" class="widefat" type="text" value="<?php echo $cwp_tp_buynow; ?>" />
110
+ </p>
111
+ <p class="wppr-customField" style="display: none">
112
+ <?php $cwp_tp_readreview = esc_attr( $instance['cwp_tp_readreview'] ); ?>
113
+ <label for="<?php echo $this->get_field_id( 'cwp_tp_readreview' ); ?>"><?php _e( 'Read Review text:', 'wp-product-review' ); ?></label>
114
+ <input id="<?php echo $this->get_field_id( 'cwp_tp_readreview' ); ?>" name="<?php echo $this->get_field_name( 'cwp_tp_readreview' ); ?>" class="widefat" type="text" value="<?php echo $cwp_tp_readreview; ?>" />
115
+ </p>
116
+ <p>
117
+ <label for="<?php echo $this->get_field_id( 'title_type' ); ?>"><?php _e( 'Display Product Titles :', 'wp-product-review' ); ?></label>
118
+ <input id="<?php echo $this->get_field_id( 'title_type' ); ?>" name="<?php echo $this->get_field_name( 'title_type' ); ?>" type="checkbox" <?php checked( $instance['title_type'] ); ?> />
119
+ </p>
120
+ <p>
121
+ <label for="<?php echo $this->get_field_id( 'show_image' ); ?>"><?php _e( 'Display Product Image :', 'wp-product-review' ); ?></label>
122
+ <input id="<?php echo $this->get_field_id( 'show_image' ); ?>" name="<?php echo $this->get_field_name( 'show_image' ); ?>" type="checkbox" <?php checked( $instance['show_image'] ); ?> />
123
+ </p>
124
+ <?php // @codingStandardsIgnoreEnd ?>
dist/includes/admin/models/abstract/class-wppr-model-abstract.php ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Abstract class for Models.
4
+ * Defines inheritable utility methods.
5
+ *
6
+ * @package WPPR
7
+ * @subpackage Models
8
+ * @copyright Copyright (c) 2017, Bogdan Preda
9
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10
+ * @since 3.0.0
11
+ */
12
+
13
+ /**
14
+ * Class WPPR_Model_Abstract
15
+ */
16
+ class WPPR_Model_Abstract {
17
+
18
+ /**
19
+ * The logger class.
20
+ *
21
+ * @since 3.0.0
22
+ * @access public
23
+ * @var WPPR_Logger $logger The logger utility class.
24
+ */
25
+ public $logger;
26
+ /**
27
+ * The main options array.
28
+ *
29
+ * @since 3.0.0
30
+ * @access private
31
+ * @var array $options The options array.
32
+ */
33
+ private $options;
34
+ /**
35
+ * The option namespace.
36
+ *
37
+ * @since 3.0.0
38
+ * @access private
39
+ * @var string $namespace The options namespace.
40
+ */
41
+ private $namespace = 'cwppos_options';
42
+
43
+ /**
44
+ * WPPR_Model_Abstract constructor.
45
+ *
46
+ * @since 3.0.0
47
+ * @access public
48
+ */
49
+ public function __construct() {
50
+ $this->options = get_option( $this->namespace, array() );
51
+ $this->logger = new WPPR_Logger();
52
+ }
53
+
54
+ /**
55
+ * Get the global wppr option.
56
+ *
57
+ * @since 3.0.0
58
+ * @access public
59
+ *
60
+ * @param string $key The option key.
61
+ *
62
+ * @return mixed
63
+ */
64
+ public function wppr_get_option( $key = '' ) {
65
+ return $this->get_var( $key );
66
+ }
67
+
68
+ /**
69
+ * Get the key option value from DB.
70
+ *
71
+ * @since 3.0.0
72
+ * @access protected
73
+ *
74
+ * @param string $key The key name of the option.
75
+ *
76
+ * @return bool|mixed
77
+ */
78
+ protected function get_var( $key ) {
79
+ $this->logger->notice( 'Getting value for ' . $key );
80
+ if ( isset( $this->options[ $key ] ) ) {
81
+ return apply_filters( 'wppr_get_old_option', $this->options[ $key ], $key );
82
+ }
83
+ $default = $this->get_default( $key );
84
+
85
+ return apply_filters( 'wppr_get_default_option', $default, $key );
86
+ }
87
+
88
+ /**
89
+ * Get the default setting value based on the settings definition.
90
+ *
91
+ * @param string $key The key name.
92
+ *
93
+ * @return bool|mixed The default value.
94
+ */
95
+ private function get_default( $key ) {
96
+ $settings = WPPR_Global_Settings::instance()->get_fields();
97
+ $all = array();
98
+ foreach ( $settings as $section ) {
99
+ $all = array_merge( $all, $section );
100
+ }
101
+ if ( ! isset( $all[ $key ] ) ) {
102
+ return false;
103
+ }
104
+ if ( ! isset( $all[ $key ]['default'] ) ) {
105
+ return false;
106
+ }
107
+
108
+ return $all[ $key ]['default'];
109
+ }
110
+
111
+ /**
112
+ * Return all options.
113
+ *
114
+ * @return array All options.
115
+ */
116
+ public function get_all() {
117
+ return $this->options;
118
+ }
119
+
120
+ /**
121
+ * Update a global wppr option.
122
+ *
123
+ * @since 3.0.0
124
+ * @access public
125
+ *
126
+ * @param string $key The option key.
127
+ * @param string $value The option value.
128
+ *
129
+ * @return mixed
130
+ */
131
+ public function wppr_set_option( $key = '', $value = '' ) {
132
+ return $this->set_var( $key, $value );
133
+ }
134
+
135
+ /**
136
+ * Setter method for updating the options array.
137
+ *
138
+ * @since 3.0.0
139
+ * @access protected
140
+ *
141
+ * @param string $key The name of option.
142
+ * @param string $value The value of the option.
143
+ *
144
+ * @return bool|mixed
145
+ */
146
+ protected function set_var( $key, $value = '' ) {
147
+ $this->logger->notice( 'Setting value for ' . $key . ' with ' . print_r( $value, true ) );
148
+ if ( ! array_key_exists( $key, $this->options ) ) {
149
+ $this->options[ $key ] = '';
150
+ }
151
+ $this->options[ $key ] = apply_filters( 'wppr_pre_option_' . $key, $value );
152
+
153
+ return update_option( $this->namespace, $this->options );
154
+ }
155
+ }
dist/includes/admin/models/class-wppr-editor-model.php ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Short desc
4
+ *
5
+ * Long desc
6
+ *
7
+ * @package WPPR
8
+ * @subpackage WPPR_Editor
9
+ * @copyright Copyright (c) 2017, Marius Cristea
10
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
11
+ * @since 3.0.0
12
+ */
13
+
14
+ /**
15
+ * The default editor class.
16
+ *
17
+ * Class WPPR_Default_Editor.
18
+ */
19
+ class WPPR_Editor_Model extends WPPR_Model_Abstract {
20
+
21
+ /**
22
+ * The WP_Post object.
23
+ *
24
+ * @since 3.0.0
25
+ * @access public
26
+ * @var WP_Post $post The WordPress post object.
27
+ */
28
+ public $post;
29
+
30
+ /**
31
+ * The WPPR_Review object.
32
+ *
33
+ * @since 3.0.0
34
+ * @access public
35
+ * @var WPPR_Review $review The Review Model class.
36
+ */
37
+ public $review;
38
+
39
+ /**
40
+ * The last review id saved.
41
+ *
42
+ * @since 3.0.0
43
+ * @access private
44
+ * @var int $previous The previous review id.
45
+ */
46
+ private $previous;
47
+
48
+ /**
49
+ * The template to use for this editor.
50
+ *
51
+ * @since 3.0.0
52
+ * @access private
53
+ * @var string $template_to_use The template name or path for this editor.
54
+ */
55
+ private $template_to_use = 'editor-default';
56
+
57
+ /**
58
+ * WPPR_Default_Editor constructor.
59
+ *
60
+ * @since 3.0.0
61
+ * @access public
62
+ *
63
+ * @param WP_Post $post The post object.
64
+ */
65
+ public function __construct( $post ) {
66
+ parent::__construct();
67
+
68
+ if ( $post instanceof WP_Post ) {
69
+ $this->post = $post;
70
+ $this->review = new WPPR_Review_Model( $this->post->ID );
71
+ } else {
72
+ $this->logger->error( 'No WP_Post provided = ' . var_export( $post, true ) );
73
+ }
74
+ $previous = $this->wppr_get_option( 'last_review' );
75
+ if ( ! empty( $previous ) ) {
76
+ $this->previous = new WPPR_Review_Model( $previous );
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Method to get the template needed for this editor.
82
+ *
83
+ * @since 3.0.0
84
+ * @access public
85
+ * @return string
86
+ */
87
+ public function get_template() {
88
+ return $this->template_to_use;
89
+ }
90
+
91
+ /**
92
+ * Retrive the smart values based on the last saved review.
93
+ *
94
+ * @since 3.0.0
95
+ * @access public
96
+ *
97
+ * @param string $key The field name.
98
+ *
99
+ * @return string
100
+ */
101
+ public function get_value( $key ) {
102
+ switch ( true ) {
103
+ case ( $key === 'wppr-editor-button-text' ):
104
+ case ( $key === 'wppr-editor-button-link' ):
105
+ if ( $this->review->is_active() ) {
106
+ $links = $this->review->get_links();
107
+ if ( ! empty( $links ) ) {
108
+ if ( $key == 'wppr-editor-button-link' ) {
109
+ $values = array_values( $links );
110
+ } else {
111
+ $values = array_keys( $links );
112
+ }
113
+
114
+ return isset( $values[0] ) ? $values[0] : '';
115
+ }
116
+ } else {
117
+ if ( ! empty( $this->previous ) ) {
118
+ $links = $this->previous->get_links();
119
+ if ( ! empty( $links ) ) {
120
+ if ( $key == 'wppr-editor-button-link' ) {
121
+ $values = array_values( $links );
122
+ } else {
123
+ $values = array_keys( $links );
124
+ }
125
+
126
+ return isset( $values[0] ) ? $values[0] : '';
127
+ }
128
+ }
129
+ }
130
+
131
+ return '';
132
+ break;
133
+ case ( strpos( $key, 'wppr-option-name-' ) !== false ):
134
+ case ( strpos( $key, 'wppr-option-value-' ) !== false ):
135
+ $options = array();
136
+ if ( $this->review->is_active() ) {
137
+ $options = $this->review->get_options();
138
+ } else {
139
+ if ( ! empty( $this->previous ) ) {
140
+ $options = $this->previous->get_options();
141
+ }
142
+ }
143
+ $first_key = key( $options );
144
+ $parts = explode( '-', $key );
145
+ $index = $parts[ count( $parts ) - 1 ];
146
+ $index = intval( $index ) - ( $first_key === 0 ? 1 : 0 );
147
+ $type = $parts[ count( $parts ) - 2 ];
148
+
149
+ return isset( $options[ $index ] ) ? $options[ $index ][ $type ] : '';
150
+ break;
151
+ case ( $key === 'wppr-editor-link' ):
152
+ if ( $this->review->is_active() ) {
153
+ return $this->review->get_click();
154
+ } else {
155
+ if ( ! empty( $this->previous ) ) {
156
+ return $this->previous->get_click();
157
+ }
158
+ }
159
+
160
+ return 'image';
161
+ break;
162
+ default:
163
+ return '';
164
+ }// End switch().
165
+ }
166
+
167
+ /**
168
+ * Save the editor data.
169
+ *
170
+ * @since 3.0.0
171
+ * @access public
172
+ */
173
+ public function save() {
174
+ $data = $_POST;
175
+
176
+ do_action( 'wppr_before_save', $this->post, $data );
177
+ $status = isset( $data['wppr-review-status'] ) ? strval( $data['wppr-review-status'] ) : 'no';
178
+
179
+ $review = $this->review;
180
+ if ( $status === 'yes' ) {
181
+
182
+ $review->activate();
183
+ $name = isset( $data['wppr-editor-product-name'] ) ? sanitize_text_field( $data['wppr-editor-product-name'] ) : '';
184
+ $image = isset( $data['wppr-editor-image'] ) ? esc_url( $data['wppr-editor-image'] ) : '';
185
+ $click = isset( $data['wppr-editor-link'] ) ? strval( sanitize_text_field( $data['wppr-editor-link'] ) ) : 'image';
186
+ $template = isset( $data['wppr-review-template'] ) ? strval( sanitize_text_field( $data['wppr-review-template'] ) ) : 'default';
187
+
188
+ // TODO Setup links as array.
189
+ $link = isset( $data['wppr-editor-button-text'] ) ? strval( sanitize_text_field( $data['wppr-editor-button-text'] ) ) : '';
190
+ $text = isset( $data['wppr-editor-button-link'] ) ? strval( esc_url( $data['wppr-editor-button-link'] ) ) : '';
191
+ $link2 = isset( $data['wppr-editor-button-text-2'] ) ? strval( sanitize_text_field( $data['wppr-editor-button-text-2'] ) ) : '';
192
+ $text2 = isset( $data['wppr-editor-button-link-2'] ) ? strval( esc_url( $data['wppr-editor-button-link-2'] ) ) : '';
193
+ $price = isset( $data['wppr-editor-price'] ) ? sanitize_text_field( $data['wppr-editor-price'] ) : 0;
194
+ $options_names = isset( $data['wppr-editor-options-name'] ) ? $data['wppr-editor-options-name'] : array();
195
+ $options_values = isset( $data['wppr-editor-options-value'] ) ? $data['wppr-editor-options-value'] : array();
196
+ $pros = isset( $data['wppr-editor-pros'] ) ? $data['wppr-editor-pros'] : array();
197
+ $cons = isset( $data['wppr-editor-cons'] ) ? $data['wppr-editor-cons'] : array();
198
+ $options = array();
199
+ foreach ( $options_names as $k => $op_name ) {
200
+ if ( ! empty( $op_name ) ) {
201
+ $options[ $k ] = array(
202
+ 'name' => sanitize_text_field( $op_name ),
203
+ 'value' => sanitize_text_field( isset( $options_values[ $k ] ) ? ( empty( $options_values[ $k ] ) ? 0 : $options_values[ $k ] ) : 0 ),
204
+ );
205
+
206
+ }
207
+ }
208
+ if ( is_array( $pros ) ) {
209
+ $pros = array_map( 'sanitize_text_field', $pros );
210
+ } else {
211
+ $pros = array();
212
+ }
213
+ if ( is_array( $cons ) ) {
214
+ $cons = array_map( 'sanitize_text_field', $cons );
215
+ } else {
216
+ $cons = array();
217
+ }
218
+ $review->set_name( $name );
219
+ $review->set_template( $template );
220
+ $review->set_image( $image );
221
+ if ( $click === 'image' || $click === 'link' ) {
222
+ $review->set_click( $click );
223
+
224
+ }
225
+ $links = array();
226
+ if ( ! empty( $link ) && ! empty( $text ) ) {
227
+ $links[ $link ] = $text;
228
+ }
229
+ if ( ! empty( $link2 ) && ! empty( $text2 ) ) {
230
+ $links[ $link2 ] = $text2;
231
+ }
232
+ $review->set_links( $links );
233
+ $review->set_price( $price );
234
+ $review->set_pros( $pros );
235
+ $review->set_cons( $cons );
236
+ $review->set_options( $options );
237
+ $this->wppr_set_option( 'last_review', $review->get_ID() );
238
+ } else {
239
+ $review->deactivate();
240
+ }// End if().
241
+ do_action( 'wppr_after_save', $this->post, $data );
242
+ }
243
+
244
+ /**
245
+ * Method to retrieve editor model assets.
246
+ *
247
+ * @since 3.0.0
248
+ * @access public
249
+ * @return array
250
+ */
251
+ public function get_assets() {
252
+ $assets = array(
253
+ 'css' => array(
254
+ 'dashboard-styles' => array(
255
+ 'path' => WPPR_URL . '/assets/css/dashboard_styles.css',
256
+ 'required' => array(),
257
+ ),
258
+ 'default-editor' => array(
259
+ 'path' => WPPR_URL . '/assets/css/editor.css',
260
+ 'required' => array(),
261
+ ),
262
+ ),
263
+ 'js' => array(
264
+ 'editor' => array(
265
+ 'path' => WPPR_URL . '/assets/js/admin-review.js',
266
+ 'required' => array( 'jquery' ),
267
+ 'vars' => array(
268
+ 'image_title' => __( 'Add a product image to the review', 'wp-product-review' ),
269
+ 'image_button' => __( 'Attach the image', 'wp-product-review' ),
270
+ ),
271
+ ),
272
+ ),
273
+ );
274
+
275
+ return $assets;
276
+ }
277
+ }
dist/includes/admin/models/class-wppr-options-model.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Model responsible for direct access to options .
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Models
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Options_Model
14
+ */
15
+ class WPPR_Options_Model extends WPPR_Model_Abstract {
16
+
17
+ /**
18
+ * WPPR_Options_Model constructor.
19
+ *
20
+ * @since 3.0.0
21
+ * @access public
22
+ */
23
+ public function __construct() {
24
+ parent::__construct();
25
+ }
26
+
27
+ }
dist/includes/admin/models/class-wppr-query-model.php ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that defines a model class for easier access to DB
4
+ * functionality, an abstract layer for core and addons to use.
5
+ *
6
+ * @link https://themeisle.com
7
+ * @since 2.0.0
8
+ *
9
+ * @package WPPR_Pro
10
+ * @subpackage WPPR_Pro/includes/models
11
+ */
12
+
13
+ /**
14
+ * Class WPPR_Query_Model
15
+ *
16
+ * A model class for abstracting DB actions.
17
+ *
18
+ * @since 2.0.0
19
+ * @package WPPR_Pro
20
+ * @subpackage WPPR_Pro/includes/model
21
+ */
22
+ class WPPR_Query_Model extends WPPR_Model_Abstract {
23
+
24
+ /**
25
+ * Holds an instance of WPPR_Review_Model
26
+ *
27
+ * @since 2.0.0
28
+ * @access protected
29
+ * @var WPPR_Review_Model $review Holds an instance of WPPR_Review_Model.
30
+ */
31
+ protected $review;
32
+
33
+ /**
34
+ * Holds an instance of the WP DB Object
35
+ *
36
+ * @since 2.0.0
37
+ * @access private
38
+ * @var WPDB $db Holds an instance of the WP DB Object.
39
+ */
40
+ private $db;
41
+
42
+ /**
43
+ * WPPR_Pro_Model constructor.
44
+ *
45
+ * @since 2.0.0
46
+ * @access public
47
+ */
48
+ public function __construct() {
49
+ parent::__construct();
50
+
51
+ global $wpdb;
52
+ $this->db = $wpdb;
53
+ }
54
+
55
+ /**
56
+ * Utility method to return products by category ID.
57
+ *
58
+ * @since 2.0.0
59
+ * @access public
60
+ *
61
+ * @param int $cat_id The category ID.
62
+ * @param int $limit Optional. The results limit.
63
+ * @param array|false $filter Optional. The filter array.
64
+ * @param array|false $order Optional. The order array.
65
+ *
66
+ * @return array
67
+ */
68
+ public function find_by_cat_id( $cat_id, $limit = 20, $filter = array(), $order = array() ) {
69
+ return $this->find(
70
+ array(
71
+ 'category_id' => $cat_id,
72
+ ),
73
+ $limit,
74
+ $filter,
75
+ $order
76
+ );
77
+ }
78
+
79
+ /**
80
+ * Mai utility method to retrive an array of products.
81
+ *
82
+ * @since 2.0.0
83
+ * @access public
84
+ *
85
+ * @param array|false $post The post data to filter by.
86
+ * @param int $limit The limit for the returned results.
87
+ * @param array|false $filter The fields to filter data by.
88
+ * @param array|false $order The fields to order by and the order.
89
+ *
90
+ * @return array
91
+ */
92
+ public function find(
93
+ $post = array(
94
+ 'category_id' => false,
95
+ 'category_name' => false,
96
+ 'post_type' => array( 'post', 'page' ),
97
+ 'post_date_range_weeks' => false,
98
+ ),
99
+ $limit = 20,
100
+ $filter = array(
101
+ 'name' => false,
102
+ 'price' => false,
103
+ 'rating' => false,
104
+ ),
105
+ $order = array(
106
+ 'rating' => false,
107
+ 'price' => false,
108
+ 'date' => false,
109
+ )
110
+ ) {
111
+ if ( ! is_numeric( $limit ) && $limit >= 0 ) {
112
+ $limit = 20;
113
+ }
114
+ if ( ! isset( $post['post_type'] ) ) {
115
+ $types = array( 'post', 'page' );
116
+ if ( 'yes' === $this->wppr_get_option( 'wppr_cpt' ) ) {
117
+ $types[] = 'wppr_review';
118
+ }
119
+ $post['post_type'] = $types;
120
+ }
121
+ $sub_query_posts = $this->get_sub_query_posts( $post );
122
+
123
+ $order_by = $this->get_order_by( $order );
124
+ $conditions = $this->get_query_conditions( $post, $filter );
125
+ $conditions_where = '';
126
+ if ( isset( $conditions['where'] ) ) {
127
+ $conditions_where = $conditions['where'];
128
+ }
129
+ $conditions_having = '';
130
+ if ( isset( $conditions['having'] ) ) {
131
+ $conditions_having = $conditions['having'];
132
+ }
133
+
134
+ $final_rating = '`rating`';
135
+ $comment_influence = intval( $this->wppr_get_option( 'cwppos_infl_userreview' ) );
136
+ if ( $comment_influence > 0 ) {
137
+ $final_rating = "IF(`comment_rating` = 0, `rating`, (`comment_rating` * 10 * ( $comment_influence / 100 ) + `rating` * ( ( 100 - $comment_influence ) / 100 ) ) )";
138
+ }
139
+
140
+ $final_order = isset( $order['rating'] ) && in_array( $order['rating'], array( 'ASC', 'DESC' ) ) ? " ORDER BY `final_rating` {$order['rating']}" : '';
141
+
142
+ $query = "
143
+ SELECT ID, post_date, post_title, `check`, `name`, `price`, `rating`, `comment_rating`, $final_rating as 'final_rating' FROM
144
+ (
145
+ SELECT
146
+ ID,
147
+ post_date,
148
+ post_title,
149
+ GROUP_CONCAT( DISTINCT IF( `meta_key` = 'cwp_meta_box_check', `meta_value`, '' ) SEPARATOR '' ) AS 'check',
150
+ GROUP_CONCAT( DISTINCT IF( `meta_key` = 'cwp_rev_product_name', `meta_value`, '' ) SEPARATOR '' ) AS 'name',
151
+ GROUP_CONCAT( DISTINCT IF( `meta_key` = 'cwp_rev_price', FORMAT( `meta_value`, 2 ), '' ) SEPARATOR '' ) AS 'price',
152
+ GROUP_CONCAT( DISTINCT IF( `meta_key` = 'wppr_rating', IF(FORMAT(`meta_value`, 2) = '100.00','99.99', FORMAT(`meta_value`, 2) ), '') SEPARATOR '' ) AS 'rating',
153
+ GROUP_CONCAT( DISTINCT IF( `meta_key` = 'wppr_comment_rating', `meta_value`, '') SEPARATOR '' ) AS 'comment_rating'
154
+ FROM {$this->db->postmeta} m INNER JOIN {$this->db->posts} p on p.ID = m.post_ID
155
+
156
+ {$sub_query_posts}
157
+ where p.post_status = 'publish'
158
+ {$conditions_where}
159
+ GROUP BY `ID`
160
+ HAVING `check` = 'Yes'
161
+ {$conditions_having}
162
+ ORDER BY
163
+ {$order_by}
164
+ `name` ASC
165
+ LIMIT {$limit}
166
+ ) T1 $final_order
167
+ ";
168
+ $key = hash( 'sha256', $query );
169
+ $results = wp_cache_get( $key, 'wppr' );
170
+ if ( ! is_array( $results ) ) {
171
+ $results = $this->db->get_results( $query, ARRAY_A );
172
+ if ( ! WPPR_CACHE_DISABLED ) {
173
+ wp_cache_set( $key, $results, 'wppr', ( 60 * 60 ) );
174
+ }
175
+ }// End if().
176
+
177
+ return $results;
178
+ }
179
+
180
+
181
+ /**
182
+ * Build the sub query.
183
+ *
184
+ * @since 2.0.0
185
+ * @access private
186
+ *
187
+ * @param array|false $post The post data to filter by.
188
+ *
189
+ * @return string
190
+ */
191
+ private function get_sub_query_posts( $post ) {
192
+ // TODO Build validation methods for category name and id and reuse them here and in get_sub_query_conditions method.
193
+ if ( ! isset( $post['category_name'] ) && ! isset( $post['category_id'] ) ) {
194
+ return '';
195
+ }
196
+ $sub_selection_query = "INNER JOIN {$this->db->term_relationships } wtr ON wtr.object_id = p.ID
197
+ INNER JOIN {$this->db->term_taxonomy} wtt on wtt.term_taxonomy_id = wtr.term_taxonomy_id AND wtt.taxonomy = 'category'
198
+ INNER JOIN {$this->db->terms} wt
199
+ ON wt.term_id = wtt.term_id";
200
+
201
+ return $sub_selection_query;
202
+ }
203
+
204
+ /**
205
+ * Build the order by query part.
206
+ *
207
+ * @since 2.0.0
208
+ * @access private
209
+ *
210
+ * @param array|false $order The fields to order by and the order.
211
+ *
212
+ * @return string
213
+ */
214
+ private function get_order_by( $order ) {
215
+ $order_by = '';
216
+ if ( isset( $order['rating'] ) && in_array( $order['rating'], array( 'ASC', 'DESC' ) ) ) {
217
+ $order_by .= "`rating` {$order['rating']}, ";
218
+ }
219
+
220
+ if ( isset( $order['price'] ) && in_array( $order['price'], array( 'ASC', 'DESC' ) ) ) {
221
+ $order_by .= "`price` {$order['price']}, ";
222
+ }
223
+ if ( isset( $order['date'] ) && in_array( $order['date'], array( 'ASC', 'DESC' ) ) ) {
224
+ $order_by .= "`post_date` {$order['date']}, ";
225
+ }
226
+
227
+ $order_by .= apply_filters( 'wppr_order_by_clause', '', $order );
228
+
229
+ return $order_by;
230
+ }
231
+
232
+ /**
233
+ * Build the query conditions.
234
+ *
235
+ * @since 2.0.0
236
+ * @access private
237
+ *
238
+ * @param array|false $post The fields to filter data by.
239
+ * @param array|false $filter The post details to filter data by.
240
+ *
241
+ * @return array
242
+ */
243
+ private function get_query_conditions( $post, $filter ) {
244
+ $conditions = array( 'where' => '', 'having' => '' );
245
+ $conditions['where'] = $this->get_sub_query_conditions( $post );
246
+ if ( isset( $filter['name'] ) && $filter['name'] != false ) {
247
+ $conditions['having'] .= $this->db->prepare( ' AND `name` LIKE %s ', '%' . $filter['name'] . '%' );
248
+ }
249
+
250
+ // TODO comparision arguments for price filter.
251
+ if ( isset( $filter['price'] ) && $filter['price'] != false && is_numeric( $filter['price'] ) ) {
252
+ $conditions['having'] .= $this->db->prepare( ' AND `price` > FORMAT( %d, 2 ) ', $filter['price'] );
253
+ }
254
+ // TODO comparision arguments for rating filter.
255
+ if ( isset( $filter['rating'] ) && $filter['rating'] != false && is_numeric( $filter['rating'] ) ) {
256
+ $conditions['having'] .= $this->db->prepare( ' AND `rating` > %f ', $filter['rating'] );
257
+ }
258
+
259
+ $conditions = apply_filters( 'wppr_where_clause', $conditions, $post, $filter );
260
+
261
+ return $conditions;
262
+ }
263
+
264
+ /**
265
+ * Build the sub query conditions.
266
+ *
267
+ * @since 2.0.0
268
+ * @access private
269
+ *
270
+ * @param array|false $post The post data to filter by.
271
+ *
272
+ * @return string
273
+ */
274
+ private function get_sub_query_conditions( $post ) {
275
+ $sub_query_conditions = '';
276
+ if ( isset( $post['category_id'] ) && $post['category_id'] != false && is_numeric( $post['category_id'] ) && $post['category_id'] > 0 ) {
277
+ $sub_query_conditions .= $this->db->prepare( " AND wt.term_id = '%d' ", $post['category_id'] );
278
+ }
279
+
280
+ if ( isset( $post['category_name'] ) && $post['category_name'] != false ) {
281
+ $sub_query_conditions .= $this->db->prepare( ' AND wt.slug = %s ', $post['category_name'] );
282
+ }
283
+ // TODO Check against available post_types.
284
+ if ( isset( $post['post_type'] ) && is_array( $post['post_type'] ) ) {
285
+ $filter_post_type = array_fill( 0, count( $post['post_type'] ), ' p.post_type = %s ' );
286
+ $filter_post_type = implode( ' OR ', $filter_post_type );
287
+ $filter_post_type = ' AND ( ' . $filter_post_type . ' ) ';
288
+ $sub_query_conditions .= $this->db->prepare( $filter_post_type, $post['post_type'] );
289
+ }
290
+
291
+ if ( isset( $post['post_date_range_weeks'] ) && ! is_bool( $post['post_date_range_weeks'] ) && is_array( $post['post_date_range_weeks'] ) ) {
292
+ $min = reset( $post['post_date_range_weeks'] );
293
+ $max = end( $post['post_date_range_weeks'] );
294
+ $sub_query_conditions .= $this->db->prepare( ' AND p.post_date >= DATE_ADD(now(), INTERVAL %d WEEK) AND p.post_date <= DATE_ADD(now(), INTERVAL %d WEEK) ', $min, $max );
295
+ }
296
+
297
+ $sub_query_conditions .= apply_filters( 'wppr_where_sub_clause', '', $post );
298
+
299
+ return $sub_query_conditions;
300
+ }
301
+
302
+ /**
303
+ * Utility method to return products by category name.
304
+ *
305
+ * @since 2.0.0
306
+ * @access public
307
+ *
308
+ * @param string $category The category name.
309
+ * @param int $limit Optional. The results limit.
310
+ * @param array|false $filter Optional. The filter array.
311
+ * @param array|false $order Optional. The order array.
312
+ *
313
+ * @return array
314
+ */
315
+ public function find_by_category( $category, $limit = 20, $filter = array(), $order = array() ) {
316
+ return $this->find(
317
+ array(
318
+ 'category_name' => $category,
319
+ ),
320
+ $limit,
321
+ $filter,
322
+ $order
323
+ );
324
+ }
325
+
326
+ /**
327
+ * Utility method to find a product or more by name.
328
+ *
329
+ * @since 2.0.0
330
+ * @access public
331
+ *
332
+ * @param string $name The name to look for.
333
+ * @param int $limit Optional. The results limit.
334
+ *
335
+ * @return array
336
+ */
337
+ public function find_by_name( $name, $limit = 20 ) {
338
+ return $this->find(
339
+ false,
340
+ $limit,
341
+ array(
342
+ 'name' => $name,
343
+ )
344
+ );
345
+ }
346
+
347
+ /**
348
+ * Utility method to find a product or more by price.
349
+ *
350
+ * @since 2.0.0
351
+ * @access public
352
+ *
353
+ * @param float|int $price The price to look for.
354
+ * @param int $limit Optional. The results limit.
355
+ *
356
+ * @return array
357
+ */
358
+ public function find_by_price( $price, $limit = 20 ) {
359
+ return $this->find(
360
+ false,
361
+ $limit,
362
+ array(
363
+ 'price' => $price,
364
+ )
365
+ );
366
+ }
367
+
368
+ /**
369
+ * Utility method to find a product or more by price.
370
+ *
371
+ * @since 2.0.0
372
+ * @access public
373
+ *
374
+ * @param float|int $rating The rating to look for.
375
+ * @param int $limit Optional. The results limit.
376
+ *
377
+ * @return array
378
+ */
379
+ public function find_by_rating( $rating, $limit = 20 ) {
380
+ return $this->find(
381
+ false,
382
+ $limit,
383
+ array(
384
+ 'rating' => $rating,
385
+ )
386
+ );
387
+ }
388
+ }
dist/includes/admin/models/class-wppr-review-model.php ADDED
@@ -0,0 +1,1316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Model responsible for the reviews in WPPR.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Models
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ // Exit if accessed directly
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
+ }
16
+
17
+ /**
18
+ * Class WPPR_Review
19
+ *
20
+ * @since 3.0
21
+ */
22
+ class WPPR_Review_Model extends WPPR_Model_Abstract {
23
+
24
+ /**
25
+ * The review ID.
26
+ *
27
+ * @since 3.0.0
28
+ * @access private
29
+ * @var int $ID The review id.
30
+ */
31
+ private $ID = 0;
32
+
33
+ /**
34
+ * The overall score of the review.
35
+ *
36
+ * @since 3.0.0
37
+ * @access private
38
+ * @var float $score The overall score of the review.
39
+ */
40
+ private $score = 0;
41
+
42
+ /**
43
+ * If the review is active or not.
44
+ *
45
+ * @since 3.0.0
46
+ * @access private
47
+ * @var bool $is_active If the review is active or not.
48
+ */
49
+ private $is_active = false;
50
+
51
+ /**
52
+ * Array containg the list of pros for the review.
53
+ *
54
+ * @since 3.0.0
55
+ * @access private
56
+ * @var array $pros The list of pros.
57
+ */
58
+ private $pros = array();
59
+
60
+ /**
61
+ * The array containg the list of cons for the review.
62
+ *
63
+ * @since 3.0.0
64
+ * @access private
65
+ * @var array $cons The list of cons.
66
+ */
67
+ private $cons = array();
68
+
69
+ /**
70
+ * The review title.
71
+ *
72
+ * @since 3.0.0
73
+ * @access private
74
+ * @var string $name The review title.
75
+ */
76
+ private $name = '';
77
+
78
+ /**
79
+ * The url of the image used in the review.
80
+ *
81
+ * @since 3.0.0
82
+ * @access private
83
+ * @var array $image The urls of the images used.
84
+ */
85
+ private $image = '';
86
+
87
+ /**
88
+ * The click behaviour.
89
+ *
90
+ * @since 3.0.0
91
+ * @access private
92
+ * @var string $click The click behaviour.
93
+ */
94
+ private $click = '';
95
+
96
+ /**
97
+ * The list of links as url=>link_title
98
+ *
99
+ * @since 3.0.0
100
+ * @access private
101
+ * @var array $links The list of links from the review
102
+ */
103
+ private $links = array();
104
+
105
+ /**
106
+ * The price of the product reviewed.
107
+ *
108
+ * @since 3.0.0
109
+ * @access private
110
+ * @var string $price The price of the product reviewed.
111
+ */
112
+ private $price = '0.00';
113
+ /**
114
+ * The price raw of the product reviewed.
115
+ *
116
+ * @since 3.0.0
117
+ * @access private
118
+ * @var string $price The price raw of the product reviewed containg currency and value.
119
+ */
120
+ private $price_raw = '0.00';
121
+
122
+ /**
123
+ * The price currency of the product reviewed.
124
+ *
125
+ * @since 3.0.0
126
+ * @access private
127
+ * @var string $price The currency of the product reviewed.
128
+ */
129
+ private $currency = '$';
130
+
131
+ /**
132
+ * An array keeping the list of options for the product reviewed.
133
+ *
134
+ * @since 3.0.0
135
+ * @access private
136
+ * @var array $options The options of the product reviewed.
137
+ */
138
+ private $options = array();
139
+
140
+ /**
141
+ * The review template.
142
+ *
143
+ * @access private
144
+ * @var string $name The review template.
145
+ */
146
+ private $template = 'default';
147
+
148
+ /**
149
+ * WPPR_Review constructor.
150
+ *
151
+ * @since 3.0.0
152
+ * @access public
153
+ *
154
+ * @param mixed $review_id The review id.
155
+ */
156
+ public function __construct( $review_id = false ) {
157
+ parent::__construct();
158
+
159
+ if ( $review_id === false ) {
160
+ $this->logger->error( 'No review id provided.' );
161
+
162
+ return false;
163
+ }
164
+ if ( $this->check_post( $review_id ) ) {
165
+ $this->ID = $review_id;
166
+ $this->logger->notice( 'Checking review status for ID: ' . $review_id );
167
+ $this->setup_status();
168
+ if ( $this->is_active() ) {
169
+ $this->logger->notice( 'Setting up review for ID: ' . $review_id );
170
+ $this->setup_cpt();
171
+ $this->setup_price();
172
+ $this->setup_name();
173
+ $this->setup_template();
174
+ $this->setup_click();
175
+ $this->setup_image();
176
+ $this->setup_links();
177
+ $this->setup_pros_cons();
178
+ $this->setup_options();
179
+ $this->count_rating();
180
+ if ( ! is_admin() ) {
181
+ $this->alter_options();
182
+ }
183
+
184
+ $this->backward_compatibility();
185
+
186
+ return true;
187
+ } else {
188
+ $this->logger->warning( 'Review is not active for this ID: ' . $review_id );
189
+
190
+ return false;
191
+ }
192
+ } else {
193
+ $this->logger->error( 'No post id found to attach this review.' );
194
+ }
195
+
196
+ return false;
197
+ }
198
+
199
+ /**
200
+ * Setup hooks if this review is a CPT.
201
+ */
202
+ private function setup_cpt() {
203
+ if ( 'wppr_review' === get_post_type( $this->ID ) ) {
204
+ add_filter( 'wppr_name', array( $this, 'get_name_for_cpt' ), 10, 2 );
205
+ }
206
+ }
207
+
208
+ /**
209
+ * If this is a CPT, use the post title as the product name.
210
+ */
211
+ public function get_name_for_cpt( $name, $id ) {
212
+ return get_the_title( $id );
213
+ }
214
+
215
+ /**
216
+ * Check if post record exists with that id.
217
+ *
218
+ * @since 3.0.0
219
+ * @access private
220
+ *
221
+ * @param string $review_id The review id to check.
222
+ *
223
+ * @return bool
224
+ */
225
+ private function check_post( $review_id ) {
226
+ return is_string( get_post_type( $review_id ) );
227
+ }
228
+
229
+ /**
230
+ * Setup the review status.
231
+ *
232
+ * @since 3.0.0
233
+ * @access private
234
+ */
235
+ private function setup_status() {
236
+ $status = get_post_meta( $this->ID, 'cwp_meta_box_check', true );
237
+ if ( $status === 'Yes' ) {
238
+ $this->is_active = true;
239
+ } else {
240
+ $this->is_active = false;
241
+ }
242
+ }
243
+
244
+ /**
245
+ * Check if review is active or not.
246
+ *
247
+ * @since 3.0.0
248
+ * @access public
249
+ * @return bool
250
+ */
251
+ public function is_active() {
252
+ return apply_filters( 'wppr_is_review_active', $this->is_active, $this->ID, $this );
253
+ }
254
+
255
+ /**
256
+ * Setup the price of the review.
257
+ *
258
+ * @since 3.0.0
259
+ * @access private
260
+ */
261
+ private function setup_price() {
262
+ $price = get_post_meta( $this->ID, 'cwp_rev_price', true );
263
+ $this->price_raw = $price;
264
+ $currency = $this->format_currency( $price );
265
+ $price = $this->format_price( $price );
266
+ $this->price = $price;
267
+ $this->currency = $currency;
268
+ }
269
+
270
+ /**
271
+ * Format a string to a currency format.
272
+ *
273
+ * @since 3.0.0
274
+ * @access private
275
+ *
276
+ * @param string $string The currency for the price.
277
+ *
278
+ * @return string
279
+ */
280
+ private function format_currency( $string ) {
281
+ $currency = preg_replace( '/[0-9.,]/', '', $string );
282
+
283
+ return $currency;
284
+ }
285
+
286
+ /**
287
+ * Format a string to a price format.
288
+ *
289
+ * @since 3.0.0
290
+ * @access private
291
+ *
292
+ * @param string $string The string for the price.
293
+ *
294
+ * @return string
295
+ */
296
+ private function format_price( $string ) {
297
+ $price = preg_replace( '/[^0-9.,]/', '', $string );
298
+
299
+ return floatval( $price );
300
+ }
301
+
302
+ /**
303
+ * Setup the name of the review.
304
+ *
305
+ * @since 3.0.0
306
+ * @access private
307
+ */
308
+ private function setup_name() {
309
+ $name = get_post_meta( $this->ID, 'cwp_rev_product_name', true );
310
+ $this->name = $name;
311
+ }
312
+
313
+ /**
314
+ * Setup the template of the review.
315
+ *
316
+ * @access private
317
+ */
318
+ private function setup_template() {
319
+ $template = get_post_meta( $this->ID, '_wppr_review_template', true );
320
+ if ( empty( $template ) ) {
321
+ $template = 'default';
322
+ }
323
+ $this->template = $template;
324
+ }
325
+
326
+ /**
327
+ * Setup the link behaviour
328
+ *
329
+ * @since 3.0.0
330
+ * @access private
331
+ */
332
+ private function setup_click() {
333
+ $click = get_post_meta( $this->ID, 'cwp_image_link', true );
334
+ if ( $click === 'image' || $click === 'link' ) {
335
+ $this->click = $click;
336
+ }
337
+ }
338
+
339
+ /**
340
+ * Setup the image url.
341
+ *
342
+ * @since 3.0.0
343
+ * @access private
344
+ */
345
+ private function setup_image() {
346
+ $image = get_post_meta( $this->ID, 'cwp_rev_product_image', true );
347
+ if ( empty( $image ) ) {
348
+ $image = wp_get_attachment_url( get_post_thumbnail_id( $this->ID ) );
349
+ }
350
+ $this->image = $image;
351
+ }
352
+
353
+ /**
354
+ * Setup the links array.
355
+ *
356
+ * @since 3.0.0
357
+ * @access private
358
+ */
359
+ private function setup_links() {
360
+ $link_text = get_post_meta( $this->ID, 'cwp_product_affiliate_text', true );
361
+ $link_url = get_post_meta( $this->ID, 'cwp_product_affiliate_link', true );
362
+ $this->links[ $link_text ] = $link_url;
363
+ $link_text = get_post_meta( $this->ID, 'cwp_product_affiliate_text2', true );
364
+ $link_url = get_post_meta( $this->ID, 'cwp_product_affiliate_link2', true );
365
+ $this->links[ $link_text ] = $link_url;
366
+ $new_links = get_post_meta( $this->ID, 'wppr_links', true );
367
+ if ( ! empty( $new_links ) ) {
368
+ $this->links = $new_links;
369
+ }
370
+ }
371
+
372
+ /**
373
+ * Setup the pros and cons array.
374
+ *
375
+ * @since 3.0.0
376
+ * @access private
377
+ */
378
+ private function setup_pros_cons() {
379
+ $options_nr = $this->wppr_get_option( 'cwppos_option_nr' );
380
+ $pros = array();
381
+ $cons = array();
382
+ for ( $i = 1; $i <= $options_nr; $i ++ ) {
383
+ $tmp_pro = get_post_meta( $this->ID, 'cwp_option_' . $i . '_pro', true );
384
+ $tmp_con = get_post_meta( $this->ID, 'cwp_option_' . $i . '_cons', true );
385
+ if ( ! empty( $tmp_pro ) ) {
386
+ $pros[] = $tmp_pro;
387
+ }
388
+ if ( ! empty( $tmp_con ) ) {
389
+ $cons[] = $tmp_con;
390
+ }
391
+ }
392
+ // New pros meta.
393
+ $new_pros = get_post_meta( $this->ID, 'wppr_pros', true );
394
+ if ( ! empty( $new_pros ) ) {
395
+ $pros = $new_pros;
396
+ }
397
+ $this->pros = array_filter( $pros );
398
+ // New cons meta.
399
+ $new_cons = get_post_meta( $this->ID, 'wppr_cons', true );
400
+ if ( ! empty( $new_cons ) ) {
401
+ $cons = $new_cons;
402
+ }
403
+ $this->cons = array_filter( $cons );
404
+
405
+ }
406
+
407
+ /**
408
+ * Setup the options array.
409
+ *
410
+ * @since 3.0.0
411
+ * @access private
412
+ */
413
+ private function setup_options() {
414
+ $options = array();
415
+ $options_nr = $this->wppr_get_option( 'cwppos_option_nr' );
416
+ for ( $i = 1; $i <= $options_nr; $i ++ ) {
417
+ $tmp_name = get_post_meta( $this->ID, 'option_' . $i . '_content', true );
418
+ if ( $tmp_name != '' ) {
419
+ $tmp_score = get_post_meta( $this->ID, 'option_' . $i . '_grade', true );
420
+ $options[ $i ] = array(
421
+ 'name' => $tmp_name,
422
+ 'value' => $tmp_score,
423
+ );
424
+ }
425
+ }
426
+ $new_options = get_post_meta( $this->ID, 'wppr_options', true );
427
+ if ( ! empty( $new_options ) ) {
428
+ $options = $new_options;
429
+ }
430
+ $this->options = $options;
431
+ }
432
+
433
+ /**
434
+ * Calculate the review rating.
435
+ *
436
+ * @since 3.0.0
437
+ * @access public
438
+ */
439
+ public function count_rating() {
440
+ $values = wp_list_pluck( $this->options, 'value' );
441
+ $this->score = ( count( $this->options ) > 0 ) ? floatval( array_sum( $values ) / count( $this->options ) ) : 0;
442
+
443
+ update_post_meta( $this->ID, 'wppr_rating', number_format( $this->score, 2 ) );
444
+ }
445
+
446
+ /**
447
+ * Alter options based on user influence.
448
+ *
449
+ * @access private
450
+ */
451
+ private function alter_options() {
452
+ $comment_influence = intval( $this->wppr_get_option( 'cwppos_infl_userreview' ) );
453
+
454
+ if ( 0 === $comment_influence ) {
455
+ return;
456
+ }
457
+
458
+ $comments = $this->get_comments_options();
459
+ if ( ! $comments ) {
460
+ return;
461
+ }
462
+
463
+ $combined = array();
464
+ foreach ( $comments as $comment ) {
465
+ $array = wp_list_pluck( $comment['options'], 'value', 'name' );
466
+ foreach ( $array as $k => $v ) {
467
+ if ( ! isset( $combined[ $k ] ) ) {
468
+ $combined[ $k ] = floatval( $v );
469
+ } else {
470
+ $combined[ $k ] += floatval( $v );
471
+ }
472
+ }
473
+ }
474
+ $new_options = array();
475
+ foreach ( $this->options as $index => $option ) {
476
+ $k = $option['name'];
477
+ $rating = $option['value'];
478
+ $v = floatval( $combined [ $k ] ) / count( $comments );
479
+ $weighted = $v * 10 * ( $comment_influence / 100 ) + floatval( $rating ) * ( ( 100 - $comment_influence ) / 100 );
480
+ $new_options[ $index ] = array(
481
+ 'name' => $k,
482
+ 'value' => $weighted,
483
+ );
484
+ }
485
+
486
+ $this->options = $new_options;
487
+ }
488
+
489
+ /**
490
+ * Get all comments associated with the review.
491
+ *
492
+ * @return array|int The list of comments..
493
+ */
494
+ public function get_comments_options() {
495
+ if ( $this->ID === 0 ) {
496
+ $this->logger->error( 'Can not get comments rating, id is not set' );
497
+
498
+ return array();
499
+ }
500
+ $comments_query = new WP_Comment_Query;
501
+ $comments = $comments_query->query(
502
+ array(
503
+ 'fields' => 'ids',
504
+ 'status' => 'approve',
505
+ 'post_id' => $this->ID,
506
+ )
507
+ );
508
+ $valid = array();
509
+ foreach ( $comments as $comment ) {
510
+ $options = $this->get_comment_options( $comment );
511
+ if ( ! empty( $options ) ) {
512
+ $valid[ $comment ] = array(
513
+ 'options' => $options,
514
+ 'date' => get_comment_date( '', $comment ),
515
+ 'author' => get_comment_author( $comment ),
516
+ 'title' => wp_strip_all_tags( get_comment_excerpt( $comment ) ),
517
+ 'content' => get_comment_text( $comment ),
518
+ );
519
+ }
520
+ }
521
+
522
+ return $valid;
523
+ }
524
+
525
+ /**
526
+ * Return the options values and names associated with the comment.
527
+ *
528
+ * @since 3.0.0
529
+ * @access public
530
+ *
531
+ * @param int $comment_id The comment id.
532
+ *
533
+ * @return array
534
+ */
535
+ public function get_comment_options( $comment_id ) {
536
+ $options = array();
537
+ if ( $this->wppr_get_option( 'cwppos_show_userreview' ) === 'yes' ) {
538
+ $options_names = wp_list_pluck( $this->options, 'name' );
539
+ $comment_options = array();
540
+ $valid_comment = false;
541
+ foreach ( $options_names as $k => $name ) {
542
+ $value = get_comment_meta( $comment_id, 'meta_option_' . $k, true );
543
+
544
+ $comment_options[] = array(
545
+ 'name' => $name,
546
+ 'value' => number_format( (float) $value, 2 ),
547
+ );
548
+ if ( is_numeric( $value ) ) {
549
+ $valid_comment = true;
550
+ }
551
+ }
552
+ if ( ! $valid_comment ) {
553
+ return array();
554
+ }
555
+
556
+ $options = $comment_options;
557
+ }
558
+
559
+ return $options;
560
+
561
+ }
562
+
563
+ /**
564
+ * Add backward compatibility so that when a review is viewed, its meta data can be updated.
565
+ *
566
+ * @access private
567
+ */
568
+ private function backward_compatibility() {
569
+ $comment_influence = intval( $this->wppr_get_option( 'cwppos_infl_userreview' ) );
570
+
571
+ if ( 0 === $comment_influence ) {
572
+ return;
573
+ }
574
+ $comment_ratings = get_post_meta( $this->ID, 'wppr_comment_rating', true );
575
+ if ( empty( $comment_ratings ) ) {
576
+ update_post_meta( $this->ID, 'wppr_comment_rating', $this->get_comments_rating() );
577
+ }
578
+ }
579
+
580
+ /**
581
+ * Get comments rating.
582
+ *
583
+ * @since 3.0.0
584
+ * @access public
585
+ * @return float|int
586
+ */
587
+ public function get_comments_rating() {
588
+ $comments = $this->get_comments_options();
589
+ if ( $comments ) {
590
+ $options = array();
591
+ foreach ( $comments as $comment ) {
592
+ $options = array_merge( $options, $comment['options'] );
593
+ }
594
+
595
+ if ( count( $options ) != 0 ) {
596
+ return ( array_sum( wp_list_pluck( $options, 'value' ) ) / count( $options ) );
597
+ } else {
598
+ return 0;
599
+ }
600
+ } else {
601
+ return 0;
602
+ }
603
+
604
+ }
605
+
606
+ /**
607
+ * Update comments rating.
608
+ *
609
+ * @access public
610
+ */
611
+ public function update_comments_rating() {
612
+ $comment_influence = intval( $this->wppr_get_option( 'cwppos_infl_userreview' ) );
613
+
614
+ if ( 0 === $comment_influence ) {
615
+ return;
616
+ }
617
+
618
+ update_post_meta( $this->get_ID(), 'wppr_comment_rating', $this->get_comments_rating() );
619
+ }
620
+
621
+ /**
622
+ * Return the review id.
623
+ *
624
+ * @since 3.0.0
625
+ * @access public
626
+ * @return int
627
+ */
628
+ public function get_ID() {
629
+ return $this->ID;
630
+ }
631
+
632
+ /**
633
+ * Deactivate the review.
634
+ *
635
+ * @since 3.0.0
636
+ * @access public
637
+ */
638
+ public function deactivate() {
639
+ if ( $this->is_active === false ) {
640
+ $this->logger->warning( 'Review is already inactive for ID: ' . $this->ID );
641
+ }
642
+
643
+ $this->is_active = apply_filters( 'wppr_review_change_status', false, $this->ID, $this );
644
+
645
+ do_action( 'wppr_review_deactivate', $this->ID, $this );
646
+
647
+ return update_post_meta( $this->ID, 'cwp_meta_box_check', 'No' );
648
+ }
649
+
650
+ /**
651
+ * Activate the review.
652
+ *
653
+ * @since 3.0.0
654
+ * @access public
655
+ */
656
+ public function activate() {
657
+ if ( $this->is_active === true ) {
658
+ $this->logger->warning( 'Review is already active for ID: ' . $this->ID );
659
+ }
660
+
661
+ $this->is_active = apply_filters( 'wppr_review_change_status', true, $this->ID, $this );
662
+ do_action( 'wppr_review_activate', $this->ID, $this );
663
+
664
+ return update_post_meta( $this->ID, 'cwp_meta_box_check', 'Yes' );
665
+ }
666
+
667
+ /**
668
+ * Method to retrieve the review model data as an array.
669
+ *
670
+ * @since 3.0.0
671
+ * @access public
672
+ * @return array
673
+ */
674
+ public function get_review_data() {
675
+ $data = array(
676
+ 'id' => $this->get_ID(),
677
+ 'name' => $this->get_name(),
678
+ 'template' => $this->get_template(),
679
+ 'price' => $this->get_price(),
680
+ 'price_raw' => $this->get_price_raw(),
681
+ 'currency' => $this->get_currency(),
682
+ 'click' => $this->get_click(),
683
+ 'image' => array(
684
+ 'full' => $this->get_image(),
685
+ 'thumb' => $this->get_small_thumbnail(),
686
+ ),
687
+ 'rating' => $this->get_rating(),
688
+ 'comment_rating' => $this->get_comments_rating(),
689
+ 'pros' => $this->get_pros(),
690
+ 'cons' => $this->get_cons(),
691
+ 'options' => $this->get_options(),
692
+ 'links' => $this->get_links(),
693
+ );
694
+
695
+ return $data;
696
+ }
697
+
698
+ /**
699
+ * Return the review name.
700
+ *
701
+ * @since 3.0.0
702
+ * @access public
703
+ * @return string
704
+ */
705
+ public function get_name() {
706
+ return apply_filters( 'wppr_name', $this->name, $this->ID, $this );
707
+ }
708
+
709
+ /**
710
+ * Filter to display review product name in comparison table
711
+ *
712
+ * @since 3.4.3
713
+ * @access public
714
+ * @return bool
715
+ */
716
+ public function hide_name() {
717
+ return apply_filters( 'wppr_hide_product_name', $this->name, $this->ID, $this );
718
+ }
719
+ /**
720
+ * Return the review template.
721
+ *
722
+ * @access public
723
+ * @return string
724
+ */
725
+ public function get_template() {
726
+ return apply_filters( 'wppr_template', $this->template, $this->ID, $this );
727
+ }
728
+
729
+ /**
730
+ * Setter method for saving the review name.
731
+ *
732
+ * @since 3.0.0
733
+ * @access public
734
+ *
735
+ * @param string $name The new review name.
736
+ *
737
+ * @return bool
738
+ */
739
+ public function set_name( $name ) {
740
+ $name = apply_filters( 'wppr_name_format', $name, $this->ID, $this );
741
+ if ( $name !== $this->name ) {
742
+ $this->name = $name;
743
+
744
+ return update_post_meta( $this->ID, 'cwp_rev_product_name', $name );
745
+ }
746
+
747
+ return false;
748
+ }
749
+
750
+ /**
751
+ * Setter method for saving the review template.
752
+ *
753
+ * @access public
754
+ *
755
+ * @param string $template The new review template.
756
+ *
757
+ * @return bool
758
+ */
759
+ public function set_template( $template ) {
760
+ $this->template = $template;
761
+
762
+ return update_post_meta( $this->ID, '_wppr_review_template', $template );
763
+
764
+ }
765
+
766
+ /**
767
+ * Returns the review price.
768
+ *
769
+ * @since 3.0.0
770
+ * @access public
771
+ * @return string
772
+ */
773
+ public function get_price() {
774
+ return apply_filters( 'wppr_price', $this->price, $this->ID, $this );
775
+ }
776
+
777
+ /**
778
+ * Setup the new price.
779
+ *
780
+ * @since 3.0.0
781
+ * @access public
782
+ *
783
+ * @param string $price The new price.
784
+ *
785
+ * @return bool
786
+ */
787
+ public function set_price( $price ) {
788
+ $price = apply_filters( 'wppr_price_raw', $price, $this->ID, $this );
789
+ if ( $price !== $this->price_raw ) {
790
+ $this->price_raw = $price;
791
+
792
+ $update = update_post_meta( $this->ID, 'cwp_rev_price', $price );
793
+
794
+ $this->setup_price();
795
+
796
+ return $update;
797
+ } else {
798
+ $this->logger->warning( 'Review: ' . $this->ID . ' price is the same.' );
799
+ }
800
+
801
+ return false;
802
+ }
803
+
804
+ /**
805
+ * Returns the raw price.
806
+ *
807
+ * @since 3.0.0
808
+ * @access public
809
+ * @return string
810
+ */
811
+ public function get_price_raw() {
812
+ return apply_filters( 'wppr_price_raw', $this->price_raw, $this->ID, $this );
813
+ }
814
+
815
+ /**
816
+ * Returns the currency price.
817
+ *
818
+ * @since 3.0.0
819
+ * @access public
820
+ * @return string
821
+ */
822
+ public function get_currency() {
823
+ return apply_filters( 'wppr_currency_code', apply_filters( 'wppr_currency', empty( $this->currency ) ? '$' : $this->currency, $this->ID, $this ) );
824
+ }
825
+
826
+ /**
827
+ * Return the click behaviour.
828
+ *
829
+ * @since 3.0.0
830
+ * @access public
831
+ * @return string
832
+ */
833
+ public function get_click() {
834
+ return apply_filters( 'wppr_click', $this->click, $this->ID, $this );
835
+ }
836
+
837
+ /**
838
+ * Setter for click behaviour.
839
+ *
840
+ * @since 3.0.0
841
+ * @access public
842
+ *
843
+ * @param string $click The new click behaviour.
844
+ *
845
+ * @return bool
846
+ */
847
+ public function set_click( $click ) {
848
+ if ( $click === 'image' || $click === 'link' ) {
849
+ if ( $this->click != $click ) {
850
+ $this->click = $click;
851
+
852
+ return update_post_meta( $this->ID, 'cwp_image_link', $this->click );
853
+ } else {
854
+ $this->logger->warning( 'Value for click already set in ID: ' . $this->ID );
855
+ }
856
+ } else {
857
+ $this->logger->warning( 'Wrong value for click on ID : ' . $this->ID );
858
+ }
859
+
860
+ return false;
861
+ }
862
+
863
+ /**
864
+ * Get the list of images for the review.
865
+ *
866
+ * @since 3.0.0
867
+ * @access public
868
+ * @return array
869
+ */
870
+ public function get_image() {
871
+ return apply_filters( 'wppr_images', $this->image, $this->ID, $this );
872
+ }
873
+
874
+ /**
875
+ * Set the new image url.
876
+ *
877
+ * @since 3.0.0
878
+ * @access public
879
+ *
880
+ * @param string $image The new image url.
881
+ *
882
+ * @return bool
883
+ */
884
+ public function set_image( $image ) {
885
+ $image = apply_filters( 'wppr_image_format', $image, $this->ID, $this );
886
+ if ( $image !== $this->image ) {
887
+ $this->image = $image;
888
+
889
+ return update_post_meta( $this->ID, 'cwp_rev_product_image', $image );
890
+ } else {
891
+ $this->logger->warning( 'Image already used for ID: ' . $this->ID );
892
+ }
893
+
894
+ return false;
895
+ }
896
+
897
+ /**
898
+ * Return the review image ID.
899
+ *
900
+ * @since 3.4.3
901
+ * @access public
902
+ * @return int
903
+ */
904
+ public function get_image_id() {
905
+ global $wpdb;
906
+ $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE guid=%s", $this->image ) );
907
+ $image_id = isset( $attachment[0] ) ? $attachment[0] : '';
908
+ return $image_id;
909
+ }
910
+
911
+ /**
912
+ * Return the url of the thumbnail.
913
+ *
914
+ * @since 3.0.0
915
+ * @access public
916
+ * @return string
917
+ */
918
+ public function get_small_thumbnail() {
919
+ // filter for image size;
920
+ $size = apply_filters( 'wppr_review_image_size', 'thumbnail', $this->ID, $this );
921
+ $image_thumb = '';
922
+ $image_id = $this->get_image_id();
923
+ if ( ! empty( $image_id ) ) {
924
+ $image_thumb = wp_get_attachment_image_src( $image_id, $size );
925
+ if ( $size !== 'thumbnail' ) {
926
+ if ( $image_thumb[0] === $this->image ) {
927
+ $image_thumb = wp_get_attachment_image_src( $image_id, 'thumbnail' );
928
+ }
929
+ }
930
+ }
931
+
932
+ return apply_filters( 'wppr_thumb', isset( $image_thumb[0] ) ? $image_thumb[0] : $this->image, $this->ID, $this );
933
+ }
934
+
935
+ /**
936
+ * Return the review image's alt text.
937
+ *
938
+ * @since 3.4.3
939
+ * @access public
940
+ * @return string
941
+ */
942
+ public function get_image_alt() {
943
+ $image_id = $this->get_image_id();
944
+ if ( empty( $image_id ) ) {
945
+ return $this->get_name();
946
+ }
947
+ $alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
948
+ if ( empty( $alt ) ) {
949
+ return $this->get_name();
950
+ }
951
+ return $alt;
952
+ }
953
+
954
+ /**
955
+ * Return the rating of the review.
956
+ *
957
+ * @since 3.0.0
958
+ * @access public
959
+ * @return float
960
+ */
961
+ public function get_rating() {
962
+ $comment_influence = intval( $this->wppr_get_option( 'cwppos_infl_userreview' ) );
963
+
964
+ $rating = $this->score;
965
+ if ( $comment_influence > 0 ) {
966
+ $comments_rating = $this->get_comments_rating();
967
+ if ( $comments_rating > 0 ) {
968
+ $rating = $comments_rating * 10 * ( $comment_influence / 100 ) + $rating * ( ( 100 - $comment_influence ) / 100 );
969
+ }
970
+ }
971
+
972
+ return apply_filters( 'wppr_rating', $rating, $this->ID, $this );
973
+ }
974
+
975
+ /**
976
+ * Getter for the pros array.
977
+ *
978
+ * @since 3.0.0
979
+ * @access public
980
+ * @return array
981
+ */
982
+ public function get_pros() {
983
+ return apply_filters( 'wppr_pros', $this->pros, $this->ID, $this );
984
+ }
985
+
986
+ /**
987
+ * Update the pros array.
988
+ *
989
+ * @since 3.0.0
990
+ * @access public
991
+ *
992
+ * @param array|string $pros The pros array or string to add.
993
+ *
994
+ * @return bool
995
+ */
996
+ public function set_pros( $pros ) {
997
+ $pros = apply_filters( 'wppr_pros_format', $pros, $this->ID, $this );
998
+ if ( is_array( $pros ) ) {
999
+ // We update the whole array.
1000
+ $this->pros = $pros;
1001
+ $this->logger->notice( 'Update pros array for ID . ' . $this->ID );
1002
+
1003
+ return update_post_meta( $this->ID, 'wppr_pros', $this->pros );
1004
+ } else {
1005
+ // We add the text to the old array.
1006
+ $this->pros[] = $pros;
1007
+ $this->logger->notice( 'Adding pros option for ID . ' . $this->ID );
1008
+
1009
+ return update_post_meta( $this->ID, 'wppr_pros', $this->pros );
1010
+ }
1011
+ }
1012
+
1013
+ /**
1014
+ * Getter for the cons array.
1015
+ *
1016
+ * @since 3.0.0
1017
+ * @access public
1018
+ * @return array
1019
+ */
1020
+ public function get_cons() {
1021
+ return apply_filters( 'wppr_cons', $this->cons, $this->ID, $this );
1022
+ }
1023
+
1024
+ /**
1025
+ * Update the cons array.
1026
+ *
1027
+ * @since 3.0.0
1028
+ * @access public
1029
+ *
1030
+ * @param array|string $cons The cons array or string to add.
1031
+ *
1032
+ * @return bool
1033
+ */
1034
+ public function set_cons( $cons ) {
1035
+ $cons = apply_filters( 'wppr_cons_format', $cons, $this->ID, $this );
1036
+ if ( is_array( $cons ) ) {
1037
+ // We update the whole array.
1038
+ $this->cons = $cons;
1039
+ $this->logger->notice( 'Update cons array for ID . ' . $this->ID );
1040
+
1041
+ return update_post_meta( $this->ID, 'wppr_cons', $this->cons );
1042
+ } else {
1043
+ // We add the text to the old array.
1044
+ $this->pros[] = $cons;
1045
+ $this->logger->notice( 'Adding cons option for ID . ' . $this->ID );
1046
+
1047
+ return update_post_meta( $this->ID, 'wppr_cons', $this->cons );
1048
+ }
1049
+
1050
+ }
1051
+
1052
+ /**
1053
+ * Return the options array of the review.
1054
+ *
1055
+ * @since 3.0.0
1056
+ * @access public
1057
+ * @return array
1058
+ */
1059
+ public function get_options() {
1060
+ return apply_filters( 'wppr_options', $this->options, $this->ID, $this );
1061
+ }
1062
+
1063
+ /**
1064
+ * Setter method for options.
1065
+ *
1066
+ * We update the options array if there is only a single component like :
1067
+ * array(
1068
+ * 'name'=>'Review name',
1069
+ * 'value'=>Option rating
1070
+ * )
1071
+ * or the all options array if we get smth like:
1072
+ * array(
1073
+ * array(
1074
+ * 'name'=>'Review name',
1075
+ * 'value'=>Option rating
1076
+ * ),
1077
+ * array(
1078
+ * 'name'=>'Review name',
1079
+ * 'value'=>Option rating
1080
+ * )
1081
+ * )
1082
+ *
1083
+ * @since 3.0.0
1084
+ * @access public
1085
+ *
1086
+ * @param array $options The options array.
1087
+ *
1088
+ * @return bool
1089
+ */
1090
+ public function set_options( $options ) {
1091
+ if ( is_array( $options ) ) {
1092
+ $options = apply_filters( 'wppr_options_format', $options, $this->ID, $this );
1093
+ if ( isset( $options['name'] ) ) {
1094
+ /**
1095
+ * Add options if the param is
1096
+ * array(
1097
+ * 'name'=>'Review name',
1098
+ * 'value'=>Option rating
1099
+ * )
1100
+ */
1101
+ $this->options[] = $options;
1102
+ $this->count_rating();
1103
+
1104
+ return update_post_meta( $this->ID, 'wppr_options', $this->options );
1105
+ } else {
1106
+ /**
1107
+ * Update the all list of options.
1108
+ */
1109
+ $this->options = $options;
1110
+ $this->count_rating();
1111
+
1112
+ return update_post_meta( $this->ID, 'wppr_options', $this->options );
1113
+
1114
+ }
1115
+ } else {
1116
+ $this->logger->error( 'Invalid value for options in review: ' . $this->ID );
1117
+ }
1118
+
1119
+ return false;
1120
+ }
1121
+
1122
+ /**
1123
+ * Return the list of links in url=>text format.
1124
+ *
1125
+ * @since 3.0.0
1126
+ * @access public
1127
+ * @return array
1128
+ */
1129
+ public function get_links() {
1130
+ return apply_filters( 'wppr_links', $this->links, $this->ID );
1131
+
1132
+ }
1133
+
1134
+ /**
1135
+ * Save the links array ( url=>title ) to the postmeta.
1136
+ *
1137
+ * @since 3.0.0
1138
+ * @access public
1139
+ *
1140
+ * @param array $links The new links array.
1141
+ *
1142
+ * @return bool Either was saved or not.
1143
+ */
1144
+ public function set_links( $links ) {
1145
+ $links = apply_filters( 'wppr_links_format', $links, $this->ID, $this );
1146
+ if ( is_array( $links ) ) {
1147
+ $this->links = $links;
1148
+
1149
+ return update_post_meta( $this->ID, 'wppr_links', $links );
1150
+ } else {
1151
+ $this->logger->error( 'Review: ' . $this->ID . ' Invalid array for links, it should be url=>text' );
1152
+ }
1153
+
1154
+ return false;
1155
+ }
1156
+
1157
+ /**
1158
+ * Returns the JSON-LD array.
1159
+ *
1160
+ * @return array The JSON-LD array.
1161
+ */
1162
+ public function get_json_ld() {
1163
+ $ld = array(
1164
+ '@context' => 'http://schema.org/',
1165
+ '@type' => 'Product',
1166
+ 'name' => $this->get_name(),
1167
+ 'image' => $this->get_small_thumbnail(),
1168
+ 'description' => $this->get_excerpt(),
1169
+ );
1170
+ $ld['offers'] = array(
1171
+ '@type' => 'Offer',
1172
+ 'price' => number_format( $this->get_price(), 2, '.', '' ),
1173
+ 'priceCurrency' => $this->get_currency(),
1174
+ 'seller' => array(
1175
+ '@type' => 'Person',
1176
+ 'name' => $this->get_author(),
1177
+ ),
1178
+ );
1179
+
1180
+ $review_default = array(
1181
+ '@type' => 'Review',
1182
+ 'reviewRating' => array(
1183
+ '@type' => 'Rating',
1184
+ 'bestRating' => '10',
1185
+ 'worstRating' => '0',
1186
+ 'ratingValue' => number_format( ( $this->get_rating() / 10 ), 2 ),
1187
+ ),
1188
+ 'name' => $this->get_name(),
1189
+ 'reviewBody' => $this->get_content(),
1190
+ 'author' => array(
1191
+ '@type' => 'Person',
1192
+ 'name' => $this->get_author(),
1193
+ ),
1194
+ 'datePublished' => get_the_time( 'Y-m-d', $this->get_ID() ),
1195
+ );
1196
+
1197
+ if ( $this->wppr_get_option( 'cwppos_show_userreview' ) != 'yes' ) {
1198
+ $ld['review'] = $review_default;
1199
+
1200
+ return $ld;
1201
+ }
1202
+ $ld['review'][] = $review_default;
1203
+
1204
+ $comments = $this->get_comments_options();
1205
+ foreach ( $comments as $comment ) {
1206
+ $ld['review'][] = array(
1207
+ '@type' => 'Review',
1208
+ 'reviewRating' => array(
1209
+ '@type' => 'Rating',
1210
+ 'bestRating' => '10',
1211
+ 'worstRating' => '0',
1212
+ 'ratingValue' => number_format( ( $this->rating_by_options( $comment['options'] ) ), 2 ),
1213
+ ),
1214
+ 'name' => $comment['title'],
1215
+ 'reviewBody' => $comment['content'],
1216
+ 'author' => array(
1217
+ '@type' => 'Person',
1218
+ 'name' => $comment['author'],
1219
+ ),
1220
+ 'datePublished' => get_the_time( 'Y-m-d', $comment['date'] ),
1221
+ );
1222
+ }
1223
+ $ld['aggregateRating'] = array(
1224
+ '@type' => 'AggregateRating',
1225
+ 'bestRating' => '10',
1226
+ 'worstRating' => '0',
1227
+ 'ratingValue' => number_format( ( $this->get_rating() / 10 ), 2 ),
1228
+ 'reviewCount' => count( $ld['review'] ),
1229
+ );
1230
+
1231
+ return $ld;
1232
+ }
1233
+
1234
+ /**
1235
+ * Returns the excerpt of the description
1236
+ *
1237
+ * @return string The excerpt of description.
1238
+ */
1239
+ public function get_excerpt() {
1240
+ if ( ! $this->is_active() ) {
1241
+ return '';
1242
+ }
1243
+ $content = $this->get_content();
1244
+ $content = strip_shortcodes( $content );
1245
+
1246
+ $excerpt_length = apply_filters( 'wppr_excerpt_length', 55 );
1247
+
1248
+ return wp_trim_words( $content, $excerpt_length, '...' );
1249
+ }
1250
+
1251
+ /**
1252
+ * Get the review post content.
1253
+ *
1254
+ * @return string The review post content.
1255
+ */
1256
+ public function get_content() {
1257
+ if ( ! $this->is_active() ) {
1258
+ return '';
1259
+ }
1260
+ $content = get_post_field( 'post_content', $this->get_ID() );
1261
+ if ( empty( $content ) ) {
1262
+ return '';
1263
+ }
1264
+
1265
+ $content = wp_strip_all_tags( strip_shortcodes( $content ) );
1266
+
1267
+ return apply_filters( 'wppr_content', $content, $this->ID, $this );
1268
+ }
1269
+
1270
+ /**
1271
+ * Get the review author.
1272
+ */
1273
+ public function get_author() {
1274
+ if ( ! $this->is_active() ) {
1275
+ return '';
1276
+ }
1277
+
1278
+ $author_id = get_post_field( 'post_author', $this->get_ID() );
1279
+
1280
+ return get_the_author_meta( 'display_name', $author_id );
1281
+ }
1282
+
1283
+ /**
1284
+ * Calculate rating by options pair.
1285
+ *
1286
+ * @param array $options Options pair.
1287
+ *
1288
+ * @return float|int The rating by options pairs.
1289
+ */
1290
+ public function rating_by_options( $options ) {
1291
+ if ( empty( $options ) ) {
1292
+ return 0;
1293
+ }
1294
+
1295
+ return ( array_sum( wp_list_pluck( $options, 'value' ) ) / count( $options ) );
1296
+
1297
+ }
1298
+
1299
+ /**
1300
+ * Return css class based on the rating.
1301
+ *
1302
+ * @return string CSS class for the rating.
1303
+ */
1304
+ public function get_rating_class( $value = - 1 ) {
1305
+ $element = ( $value < 0 ) ? $this->get_rating() : $value;
1306
+ if ( $element >= 75 ) {
1307
+ return 'wppr-very-good';
1308
+ } elseif ( $element < 75 && $element >= 50 ) {
1309
+ return 'wppr-good';
1310
+ } elseif ( $element < 50 && $element >= 25 ) {
1311
+ return 'wppr-not-bad';
1312
+ } else {
1313
+ return 'wppr-weak';
1314
+ }
1315
+ }
1316
+ }
dist/includes/admin/widgets/abstract/class-wppr-widget-abstract.php ADDED
@@ -0,0 +1,254 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The WPPR Widget Abstract Class.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Widget
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Widget_Abstract
14
+ */
15
+ abstract class WPPR_Widget_Abstract extends WP_Widget {
16
+ const RESTRICT_TITLE_CHARS = 100;
17
+
18
+ /**
19
+ * Method to load assets required for front end display.
20
+ *
21
+ * @since 3.0.0
22
+ * @access public
23
+ */
24
+ public function assets( $review_object ) {
25
+
26
+ $dependencies = $this->load_assets();
27
+
28
+ wp_enqueue_style( WPPR_SLUG . '-pac-widget-stylesheet', WPPR_URL . '/assets/css/cwppos-widget.css', isset( $dependencies['css'] ) ? $dependencies['css'] : array(), WPPR_LITE_VERSION );
29
+ wp_enqueue_style( WPPR_SLUG . '-widget-stylesheet-one', WPPR_URL . '/assets/css/cwppos-widget-style1.css', array( WPPR_SLUG . '-pac-widget-stylesheet' ), WPPR_LITE_VERSION );
30
+ wp_enqueue_style( WPPR_SLUG . '-widget-rating', WPPR_URL . '/assets/css/cwppos-widget-rating.css', array( WPPR_SLUG . '-pac-widget-stylesheet' ), WPPR_LITE_VERSION );
31
+
32
+ $plugin = new WPPR();
33
+ $public = new Wppr_Public( $plugin->get_plugin_name(), $plugin->get_version() );
34
+
35
+ $public->load_review_assets( $review_object );
36
+ }
37
+
38
+ /**
39
+ * Load public assets specific to this widget.
40
+ *
41
+ * @since 3.0.0
42
+ * @access public
43
+ */
44
+ public abstract function load_assets();
45
+
46
+ /**
47
+ * Method for displaying the widget on the front end.
48
+ *
49
+ * @since 3.0.0
50
+ * @access public
51
+ *
52
+ * @param array $args Arguments for this method.
53
+ * @param array $instance Instance array for the widget.
54
+ *
55
+ * @return array
56
+ */
57
+ public function widget( $args, $instance ) {
58
+ $instance['title'] = apply_filters( 'widget_title', $instance['title'] );
59
+ $instance['no_items'] = apply_filters( 'widget_content', $instance['no_items'] );
60
+
61
+ if ( ! isset( $instance['cwp_tp_post_types'] ) || empty( $instance['cwp_tp_post_types'] ) ) {
62
+ $instance['cwp_tp_post_types'] = array( 'post', 'page' );
63
+ }
64
+
65
+ $instance['cwp_tp_post_types'] = apply_filters( 'widget_content', $instance['cwp_tp_post_types'] );
66
+ $instance['cwp_tp_category'] = apply_filters( 'widget_content', $instance['cwp_tp_category'] );
67
+ if ( isset( $instance['title_type'] ) ) {
68
+ $instance['post_type'] = apply_filters( 'widget_content', $instance['title_type'] );
69
+ } else {
70
+ $instance['post_type'] = false;
71
+ }
72
+ if ( isset( $instance['show_image'] ) ) {
73
+ $instance['show_image'] = apply_filters( 'widget_content', $instance['show_image'] );
74
+ } else {
75
+ $instance['show_image'] = false;
76
+ }
77
+ // @codingStandardsIgnoreStart
78
+ if ( $instance['cwp_tp_category'] == 'All' ) {
79
+ $instance['cwp_tp_category'] = '';
80
+ }
81
+ if ( ! isset( $instance['cwp_tp_buynow'] ) ) {
82
+ $instance['cwp_tp_buynow'] = __( 'Buy Now', 'wp-product-review' );
83
+ }
84
+ if ( ! isset( $instance['cwp_tp_readreview'] ) ) {
85
+ $instance['cwp_tp_readreview'] = __( 'Read Review', 'wp-product-review' );
86
+ }
87
+ if ( ! isset( $instance['cwp_tp_layout'] ) ) {
88
+ $instance['cwp_tp_layout'] = 'default.php';
89
+ }
90
+ if ( ! isset( $instance['cwp_tp_rating_type'] ) ) {
91
+ $instance['cwp_tp_rating_type'] = 'round';
92
+ }
93
+
94
+ // @codingStandardsIgnoreEnd
95
+
96
+ add_filter( 'wppr_review_image_size', array( $this, 'image_size' ), 10, 3 );
97
+
98
+ return $instance;
99
+ }
100
+
101
+ /**
102
+ * Change size to wppr-widget.
103
+ *
104
+ * @access public
105
+ *
106
+ * @param string $size The size of the image.
107
+ * @param int $id The id of the review.
108
+ * @param WPPR_Review_Model $model The review model.
109
+ *
110
+ * @return string
111
+ */
112
+ public function image_size( $size, $id, $model ) {
113
+ return 'wppr-widget';
114
+ }
115
+
116
+ /**
117
+ * The admin widget form method.
118
+ *
119
+ * @since 3.0.0
120
+ * @access public
121
+ *
122
+ * @param array $instance The instance array for this widget.
123
+ *
124
+ * @return array
125
+ */
126
+ public function form( $instance ) {
127
+
128
+ if ( ! isset( $instance['no_items'] ) ) {
129
+ $instance['no_items'] = __( '10', 'wp-product-review' );
130
+ }
131
+
132
+ if ( ! isset( $instance['cwp_tp_category'] ) ) {
133
+ $instance['cwp_tp_category'] = __( 'Select Category', 'wp-product-review' );
134
+ }
135
+
136
+ if ( ! isset( $instance['title_type'] ) ) {
137
+ $instance['title_type'] = false;
138
+ }
139
+
140
+ if ( ! isset( $instance['show_image'] ) ) {
141
+ $instance['show_image'] = false;
142
+ }
143
+
144
+ if ( ! isset( $instance['cwp_tp_buynow'] ) ) {
145
+ $instance['cwp_tp_buynow'] = __( 'Buy Now', 'wp-product-review' );
146
+ }
147
+
148
+ if ( ! isset( $instance['cwp_tp_readreview'] ) ) {
149
+ $instance['cwp_tp_readreview'] = __( 'Read Review', 'wp-product-review' );
150
+ }
151
+
152
+ if ( ! isset( $instance['cwp_tp_layout'] ) ) {
153
+ $instance['cwp_tp_layout'] = 'default.php';
154
+ }
155
+
156
+ if ( $instance['cwp_tp_layout'] == 'default.php' ) {
157
+ $instance['cwp_tp_rating_type'] = 'round';
158
+ } else {
159
+ $instance['cwp_tp_rating_type'] = 'star';
160
+ }
161
+
162
+ if ( ! isset( $instance['cwp_tp_post_types'] ) || empty( $instance['cwp_tp_post_types'] ) ) {
163
+ // backward compatibility with previous versions where you could not select post types
164
+ $instance['cwp_tp_post_types'] = array( 'post', 'page' );
165
+ }
166
+
167
+ if ( isset( $instance['cwp_tp_post_types'] ) && ! empty( $instance['cwp_tp_post_types'] ) ) {
168
+ $categories = array();
169
+ foreach ( $instance['cwp_tp_post_types'] as $type ) {
170
+ $post_type = get_post_type_object( $type );
171
+ $cats = WPPR_Admin::get_category_for_post_type( $type );
172
+ if ( $cats ) {
173
+ $categories[ $post_type->label ] = $cats;
174
+ }
175
+ }
176
+ $instance['cwp_tp_all_categories'] = $categories;
177
+ }
178
+
179
+ return $instance;
180
+ }
181
+
182
+ /**
183
+ * Method to update widget data.
184
+ *
185
+ * @since 3.0.0
186
+ * @access public
187
+ *
188
+ * @param array $new_instance The new instance array for the widget.
189
+ * @param array $old_instance The old instance array of the widget.
190
+ *
191
+ * @return array
192
+ */
193
+ public function update( $new_instance, $old_instance ) {
194
+
195
+ $instance = $old_instance;
196
+
197
+ $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
198
+
199
+ $instance['no_items'] = ( ! empty( $new_instance['no_items'] ) ) ? strip_tags( $new_instance['no_items'] ) : '';
200
+
201
+ $instance['cwp_tp_post_types'] = ( ! empty( $new_instance['cwp_tp_post_types'] ) ) ? esc_sql( $new_instance['cwp_tp_post_types'] ) : '';
202
+ $instance['cwp_tp_category'] = ( ! empty( $new_instance['cwp_tp_category'] ) ) ? strip_tags( $new_instance['cwp_tp_category'] ) : '';
203
+
204
+ $instance['title_type'] = ( isset( $new_instance['title_type'] ) ) ? (bool) $new_instance['title_type'] : false;
205
+ $instance['show_image'] = ( isset( $new_instance['show_image'] ) ) ? (bool) $new_instance['show_image'] : false;
206
+
207
+ $instance['cwp_tp_buynow'] = ( ! empty( $new_instance['cwp_tp_buynow'] ) ) ? strip_tags( $new_instance['cwp_tp_buynow'] ) : '';
208
+ $instance['cwp_tp_readreview'] = ( ! empty( $new_instance['cwp_tp_readreview'] ) ) ? strip_tags( $new_instance['cwp_tp_readreview'] ) : '';
209
+ $instance['cwp_tp_layout'] = ( ! empty( $new_instance['cwp_tp_layout'] ) ) ? strip_tags( $new_instance['cwp_tp_layout'] ) : '';
210
+ $instance['cwp_tp_rating_type'] = ( ! empty( $new_instance['cwp_tp_rating_type'] ) ) ? strip_tags( $new_instance['cwp_tp_rating_type'] ) : '';
211
+
212
+ return $instance;
213
+ }
214
+
215
+ /**
216
+ * Method for loading admin widget assets.
217
+ *
218
+ * @since 3.0.0
219
+ * @access public
220
+ */
221
+ public function adminAssets() {
222
+ if ( is_admin() ) {
223
+
224
+ $dependencies = $this->load_admin_assets();
225
+
226
+ wp_enqueue_style( WPPR_SLUG . '-widget-admin-css', WPPR_URL . '/assets/css/cwppos-widget-admin.css', isset( $dependencies['css'] ) ? $dependencies['css'] : array(), WPPR_LITE_VERSION );
227
+ wp_enqueue_style( WPPR_SLUG . '-chosen', WPPR_URL . '/assets/css/chosen.min.css', array(), WPPR_LITE_VERSION );
228
+
229
+ wp_enqueue_script( WPPR_SLUG . '-chosen', WPPR_URL . '/assets/js/chosen.jquery.min.js', array( 'jquery' ), WPPR_LITE_VERSION );
230
+ wp_register_script( WPPR_SLUG . '-widget-script', WPPR_URL . '/assets/js/widget-admin.js', array_merge( array( WPPR_SLUG . '-chosen' ), isset( $dependencies['js'] ) ? $dependencies['js'] : array() ), WPPR_LITE_VERSION );
231
+
232
+ wp_localize_script(
233
+ WPPR_SLUG . '-widget-script',
234
+ 'wppr_widget',
235
+ array(
236
+ 'names' => array( 'cwp_top_products_widget', 'cwp_latest_products_widget' ),
237
+ 'ajax' => array(
238
+ 'nonce' => wp_create_nonce( WPPR_SLUG ),
239
+ ),
240
+ )
241
+ );
242
+ wp_enqueue_script( WPPR_SLUG . '-widget-script' );
243
+
244
+ }
245
+ }
246
+
247
+ /**
248
+ * Load admin assets specific to this widget.
249
+ *
250
+ * @since 3.0.0
251
+ * @access public
252
+ */
253
+ public abstract function load_admin_assets();
254
+ }
dist/includes/admin/widgets/class-wppr-latest-products-widget.php ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The WPPR Latest Widget Class.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Widget
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Latest_Products_Widget
14
+ */
15
+ class WPPR_Latest_Products_Widget extends WPPR_Widget_Abstract {
16
+
17
+ /**
18
+ * WPPR_Latest_Products_Widget constructor.
19
+ *
20
+ * @since 3.0.0
21
+ * @access public
22
+ */
23
+ public function __construct() {
24
+ parent::__construct(
25
+ 'cwp_latest_products_widget',
26
+ __( 'Latest Products Widget', 'wp-product-review' ),
27
+ array(
28
+ 'description' => __( 'This widget displays the latest products based on their rating.', 'wp-product-review' ),
29
+ )
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Method to register the widget.
35
+ *
36
+ * @since 3.0.0
37
+ * @access public
38
+ */
39
+ public function register() {
40
+ register_widget( 'WPPR_Latest_Products_Widget' );
41
+ }
42
+
43
+ /**
44
+ * Method for displaying the widget on the front end.
45
+ *
46
+ * @since 3.0.0
47
+ * @access public
48
+ *
49
+ * @param array $args Arguments for this method.
50
+ * @param array $instance Instance array for the widget.
51
+ *
52
+ * @return mixed
53
+ */
54
+ public function widget( $args, $instance ) {
55
+ $instance = parent::widget( $args, $instance );
56
+
57
+ $reviews = new WPPR_Query_Model();
58
+ $post = array();
59
+ if ( isset( $instance['cwp_tp_category'] ) && trim( $instance['cwp_tp_category'] ) != '' ) {
60
+ $post['category_name'] = $instance['cwp_tp_category'];
61
+ }
62
+ if ( isset( $instance['cwp_tp_post_types'] ) && ! empty( $instance['cwp_tp_post_types'] ) ) {
63
+ $post['post_type'] = $instance['cwp_tp_post_types'];
64
+ }
65
+ $order = array();
66
+ $order['date'] = 'DESC';
67
+
68
+ $results = $reviews->find( $post, $instance['no_items'], array(), $order );
69
+ if ( ! empty( $results ) ) {
70
+ $first = reset( $results );
71
+ $first = isset( $first['ID'] ) ? $first['ID'] : 0;
72
+ $review = new WPPR_Review_Model( $first );
73
+ $this->assets( $review );
74
+ }
75
+ // before and after widget arguments are defined by themes
76
+ echo $args['before_widget'];
77
+
78
+ if ( ! empty( $instance['title'] ) ) {
79
+ echo $args['before_title'] . $instance['title'] . $args['after_title'];
80
+ }
81
+ $template = new WPPR_Template();
82
+ $template->render(
83
+ 'widget/' . $instance['cwp_tp_layout'],
84
+ array(
85
+ 'results' => $results,
86
+ 'title_length' => self::RESTRICT_TITLE_CHARS,
87
+ 'instance' => $instance,
88
+ )
89
+ );
90
+
91
+ echo $args['after_widget'];
92
+ }
93
+
94
+ /**
95
+ * The admin widget form method.
96
+ *
97
+ * @since 3.0.0
98
+ * @access public
99
+ *
100
+ * @param array $instance The instance array for this widget.
101
+ *
102
+ * @return mixed
103
+ */
104
+ public function form( $instance ) {
105
+ $this->adminAssets();
106
+ if ( ! isset( $instance['title'] ) ) {
107
+ $instance['title'] = __( 'Latest Products', 'wp-product-review' );
108
+ }
109
+
110
+ $instance = parent::form( $instance );
111
+
112
+ include( WPPR_PATH . '/includes/admin/layouts/widget-admin-tpl.php' );
113
+ }
114
+
115
+ /**
116
+ * Load public assets specific to this widget.
117
+ *
118
+ * @since 3.0.0
119
+ * @access public
120
+ */
121
+ public function load_assets() {
122
+ // empty.
123
+ }
124
+
125
+ /**
126
+ * Load admin assets specific to this widget.
127
+ *
128
+ * @since 3.0.0
129
+ * @access public
130
+ */
131
+ public function load_admin_assets() {
132
+ // empty.
133
+ }
134
+ }
dist/includes/admin/widgets/class-wppr-top-products-widget.php ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The WPPR Top Widget Class.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Widget
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ /**
13
+ * Class WPPR_Top_Products_Widget
14
+ */
15
+ class WPPR_Top_Products_Widget extends WPPR_Widget_Abstract {
16
+
17
+ /**
18
+ * WPPR_Top_Products_Widget constructor.
19
+ *
20
+ * @since 3.0.0
21
+ * @access public
22
+ */
23
+ public function __construct() {
24
+ parent::__construct(
25
+ 'cwp_top_products_widget',
26
+ __( 'Top Products Widget', 'wp-product-review' ),
27
+ array(
28
+ 'description' => __( 'This widget displays the top products based on their rating.', 'wp-product-review' ),
29
+ )
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Method to register the widget.
35
+ *
36
+ * @since 3.0.0
37
+ * @access public
38
+ */
39
+ public function register() {
40
+ register_widget( 'WPPR_Top_Products_Widget' );
41
+ }
42
+
43
+ /**
44
+ * Method to filter posts order.
45
+ *
46
+ * @since 3.0.0
47
+ * @access public
48
+ *
49
+ * @param string $orderby The condition string for ordering.
50
+ *
51
+ * @return string
52
+ */
53
+ public function custom_order_by( $orderby ) {
54
+ return 'mt1.meta_value DESC, mt2.meta_value+0 DESC';
55
+ }
56
+
57
+ /**
58
+ * Method for displaying the widget on the front end.
59
+ *
60
+ * @since 3.0.0
61
+ * @access public
62
+ *
63
+ * @param array $args Arguments for this method.
64
+ * @param array $instance Instance array for the widget.
65
+ *
66
+ * @return mixed
67
+ */
68
+ public function widget( $args, $instance ) {
69
+
70
+ $instance = parent::widget( $args, $instance );
71
+
72
+ $reviews = new WPPR_Query_Model();
73
+ $post = array();
74
+ if ( isset( $instance['cwp_tp_category'] ) && trim( $instance['cwp_tp_category'] ) != '' ) {
75
+ $post['category_name'] = $instance['cwp_tp_category'];
76
+ }
77
+
78
+ if ( isset( $instance['cwp_timespan'] ) && trim( $instance['cwp_timespan'] ) != '' ) {
79
+ $min_max = explode( ',', $instance['cwp_timespan'] );
80
+ $min = intval( reset( $min_max ) );
81
+ $max = intval( end( $min_max ) );
82
+ if ( 0 === $min && 0 === $max ) {
83
+ $post['post_date_range_weeks'] = false;
84
+ } else {
85
+ $post['post_date_range_weeks'] = array( $min, $max );
86
+ }
87
+ }
88
+ if ( isset( $instance['cwp_tp_post_types'] ) && ! empty( $instance['cwp_tp_post_types'] ) ) {
89
+ $post['post_type'] = $instance['cwp_tp_post_types'];
90
+ }
91
+ $order = array();
92
+ $order['rating'] = 'DESC';
93
+
94
+ $results = $reviews->find( $post, $instance['no_items'], array(), $order );
95
+ if ( ! empty( $results ) ) {
96
+ $first = reset( $results );
97
+ $first = isset( $first['ID'] ) ? $first['ID'] : 0;
98
+ $review = new WPPR_Review_Model( $first );
99
+
100
+ $this->assets( $review );
101
+ }
102
+ // before and after widget arguments are defined by themes
103
+ echo $args['before_widget'];
104
+
105
+ if ( ! empty( $instance['title'] ) ) {
106
+ echo $args['before_title'] . $instance['title'] . $args['after_title'];
107
+ }
108
+ $template = new WPPR_Template();
109
+ $template->render(
110
+ 'widget/' . $instance['cwp_tp_layout'],
111
+ array(
112
+ 'results' => $results,
113
+ 'title_length' => self::RESTRICT_TITLE_CHARS,
114
+ 'instance' => $instance,
115
+ )
116
+ );
117
+ echo $args['after_widget'];
118
+ }
119
+
120
+ /**
121
+ * The admin widget form method.
122
+ *
123
+ * @since 3.0.0
124
+ * @access public
125
+ *
126
+ * @param array $instance The instance array for this widget.
127
+ *
128
+ * @return mixed
129
+ */
130
+ public function form( $instance ) {
131
+ $this->adminAssets();
132
+ if ( ! isset( $instance['title'] ) ) {
133
+ $instance['title'] = __( 'Top Products', 'wp-product-review' );
134
+ }
135
+
136
+ if ( ! isset( $instance['cwp_timespan'] ) || empty( $instance['cwp_timespan'] ) ) {
137
+ $instance['cwp_timespan'] = '0,0';
138
+ }
139
+
140
+ $instance = parent::form( $instance );
141
+
142
+ include( WPPR_PATH . '/includes/admin/layouts/widget-admin-tpl.php' );
143
+ }
144
+
145
+ /**
146
+ * Load public assets specific to this widget.
147
+ *
148
+ * @since 3.0.0
149
+ * @access public
150
+ */
151
+ public function load_assets() {
152
+ // empty.
153
+ }
154
+
155
+ /**
156
+ * Load admin assets specific to this widget.
157
+ *
158
+ * @since 3.0.0
159
+ * @access public
160
+ */
161
+ public function load_admin_assets() {
162
+ wp_enqueue_script( 'jquery-ui-slider' );
163
+ wp_enqueue_style( WPPR_SLUG . '-jqueryui', WPPR_URL . '/assets/css/jquery-ui.css', array(), WPPR_LITE_VERSION );
164
+
165
+ $deps = array();
166
+ $deps['js'] = array( 'jquery-ui-slider' );
167
+ $deps['css'] = array( WPPR_SLUG . '-jqueryui' );
168
+ return $deps;
169
+ }
170
+
171
+ /**
172
+ * Method to update widget data.
173
+ *
174
+ * @since 3.0.0
175
+ * @access public
176
+ *
177
+ * @param array $new_instance The new instance array for the widget.
178
+ * @param array $old_instance The old instance array of the widget.
179
+ *
180
+ * @return array
181
+ */
182
+ public function update( $new_instance, $old_instance ) {
183
+ $instance = parent::update( $new_instance, $old_instance );
184
+
185
+ $instance['cwp_timespan'] = ( ! empty( $new_instance['cwp_timespan'] ) ) ? strip_tags( $new_instance['cwp_timespan'] ) : '';
186
+ return $instance;
187
+ }
188
+
189
+ }
dist/includes/class-wppr-activator.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fired during plugin activation
4
+ *
5
+ * @link https://themeisle.com/
6
+ * @since 3.0.0
7
+ *
8
+ * @package WPPR
9
+ * @subpackage WPPR/includes
10
+ */
11
+
12
+ /**
13
+ * Fired during plugin activation.
14
+ *
15
+ * This class defines all code necessary to run during the plugin's activation.
16
+ *
17
+ * @since 3.0.0
18
+ * @package WPPR
19
+ * @subpackage WPPR/includes
20
+ * @author ThemeIsle <friends@themeisle.com>
21
+ */
22
+ class WPPR_Activator {
23
+
24
+ /**
25
+ * Short Description. (use period)
26
+ *
27
+ * Long Description.
28
+ *
29
+ * @since 1.0.0
30
+ */
31
+ public static function activate() {
32
+
33
+ }
34
+
35
+ }
dist/includes/class-wppr-deactivator.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Fired during plugin deactivation
4
+ *
5
+ * @link https://themeisle.com/
6
+ * @since 3.0.0
7
+ *
8
+ * @package WPPR
9
+ * @subpackage WPPR/includes
10
+ */
11
+
12
+ /**
13
+ * Fired during plugin deactivation.
14
+ *
15
+ * This class defines all code necessary to run during the plugin's deactivation.
16
+ *
17
+ * @since 3.0.0
18
+ * @package WPPR
19
+ * @subpackage WPPR/includes
20
+ * @author ThemeIsle <friends@themeisle.com>
21
+ */
22
+ class WPPR_Deactivator {
23
+
24
+ /**
25
+ * Short Description. (use period)
26
+ *
27
+ * Long Description.
28
+ *
29
+ * @since 3.0.0
30
+ */
31
+ public static function deactivate() {
32
+
33
+ }
34
+
35
+ }
dist/includes/class-wppr-i18n.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Define the internationalization functionality
4
+ *
5
+ * Loads and defines the internationalization files for this plugin
6
+ * so that it is ready for translation.
7
+ *
8
+ * @link https://themeisle.com/
9
+ * @since 3.0.0
10
+ *
11
+ * @package WPPR
12
+ * @subpackage WPPR/includes
13
+ */
14
+
15
+ /**
16
+ * Define the internationalization functionality.
17
+ *
18
+ * Loads and defines the internationalization files for this plugin
19
+ * so that it is ready for translation.
20
+ *
21
+ * @since 3.0.0
22
+ * @package WPPR
23
+ * @subpackage WPPR/includes
24
+ * @author ThemeIsle <friends@themeisle.com>
25
+ */
26
+ class WPPR_I18n {
27
+
28
+
29
+ /**
30
+ * Load the plugin text domain for translation.
31
+ *
32
+ * @since 3.0.0
33
+ */
34
+ public function load_plugin_textdomain() {
35
+
36
+ load_plugin_textdomain(
37
+ 'wp-product-review',
38
+ false,
39
+ dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
40
+ );
41
+
42
+ }
43
+
44
+
45
+
46
+ }
dist/includes/class-wppr-loader.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Register all actions and filters for the plugin
4
+ *
5
+ * @link https://themeisle.com/
6
+ * @since 3.0.0
7
+ *
8
+ * @package WPPR
9
+ * @subpackage WPPR/includes
10
+ */
11
+
12
+ /**
13
+ * Register all actions and filters for the plugin.
14
+ *
15
+ * Maintain a list of all hooks that are registered throughout
16
+ * the plugin, and register them with the WordPress API. Call the
17
+ * run function to execute the list of actions and filters.
18
+ *
19
+ * @package WPPR
20
+ * @subpackage WPPR/includes
21
+ * @author ThemeIsle <friends@themeisle.com>
22
+ */
23
+ class WPPR_Loader {
24
+
25
+ /**
26
+ * The array of actions registered with WordPress.
27
+ *
28
+ * @since 3.0.0
29
+ * @access protected
30
+ * @var array $actions The actions registered with WordPress to fire when the plugin loads.
31
+ */
32
+ protected $actions;
33
+
34
+ /**
35
+ * The array of filters registered with WordPress.
36
+ *
37
+ * @since 3.0.0
38
+ * @access protected
39
+ * @var array $filters The filters registered with WordPress to fire when the plugin loads.
40
+ */
41
+ protected $filters;
42
+
43
+ /**
44
+ * Initialize the collections used to maintain the actions and filters.
45
+ *
46
+ * @since 3.0.0
47
+ */
48
+ public function __construct() {
49
+
50
+ $this->actions = array();
51
+ $this->filters = array();
52
+
53
+ }
54
+
55
+ /**
56
+ * Add a new action to the collection to be registered with WordPress.
57
+ *
58
+ * @since 3.0.0
59
+ * @param string $hook The name of the WordPress action that is being registered.
60
+ * @param object $component A reference to the instance of the object on which the action is defined.
61
+ * @param string $callback The name of the function definition on the $component.
62
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
63
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
64
+ */
65
+ public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
66
+ $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
67
+ }
68
+
69
+ /**
70
+ * Add a new filter to the collection to be registered with WordPress.
71
+ *
72
+ * @since 3.0.0
73
+ * @param string $hook The name of the WordPress filter that is being registered.
74
+ * @param object $component A reference to the instance of the object on which the filter is defined.
75
+ * @param string $callback The name of the function definition on the $component.
76
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
77
+ * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
78
+ */
79
+ public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
80
+ $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
81
+ }
82
+
83
+ /**
84
+ * A utility function that is used to register the actions and hooks into a single
85
+ * collection.
86
+ *
87
+ * @since 3.0.0
88
+ * @access private
89
+ * @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
90
+ * @param string $hook The name of the WordPress filter that is being registered.
91
+ * @param object $component A reference to the instance of the object on which the filter is defined.
92
+ * @param string $callback The name of the function definition on the $component.
93
+ * @param int $priority The priority at which the function should be fired.
94
+ * @param int $accepted_args The number of arguments that should be passed to the $callback.
95
+ * @return array The collection of actions and filters registered with WordPress.
96
+ */
97
+ private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
98
+
99
+ $hooks[] = array(
100
+ 'hook' => $hook,
101
+ 'component' => $component,
102
+ 'callback' => $callback,
103
+ 'priority' => $priority,
104
+ 'accepted_args' => $accepted_args,
105
+ );
106
+
107
+ return $hooks;
108
+
109
+ }
110
+
111
+ /**
112
+ * Register the filters and actions with WordPress.
113
+ *
114
+ * @since 3.0.0
115
+ */
116
+ public function run() {
117
+
118
+ foreach ( $this->filters as $hook ) {
119
+ add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
120
+ }
121
+
122
+ foreach ( $this->actions as $hook ) {
123
+ add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
124
+ }
125
+
126
+ }
127
+
128
+ }
dist/includes/class-wppr-template.php ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Implements templating behaviour in WPPR.
5
+ *
6
+ * @package WPPR
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.10
10
+ */
11
+ class WPPR_Template {
12
+ /**
13
+ * Directories where to search in.
14
+ *
15
+ * @var array Directories path.
16
+ */
17
+ private $dirs = array();
18
+
19
+ /**
20
+ * WPPR_Template constructor.
21
+ */
22
+ public function __construct() {
23
+ $this->setup_locations();
24
+ }
25
+
26
+ /**
27
+ * Setup directories where wppr templates resides.
28
+ */
29
+ private function setup_locations() {
30
+ $this->dirs[] = WPPR_PATH . '/includes/public/layouts/';
31
+ $custom_paths = apply_filters( 'wppr_templates_dir', array() );
32
+ $theme_paths = array();
33
+ $theme_paths[] = get_template_directory() . '/wppr';
34
+ $theme_paths[] = get_stylesheet_directory() . '/wppr';
35
+ $this->dirs = array_merge( $this->dirs, $custom_paths, $theme_paths );
36
+ $this->dirs = array_map( 'trailingslashit', $this->dirs );
37
+
38
+ }
39
+
40
+ /**
41
+ * Render the template file.
42
+ *
43
+ * @param string $template Template name.
44
+ * @param array $args Args of variable to load.
45
+ * @param bool $echo Either to echo or return content.
46
+ *
47
+ * @return string Return template content.
48
+ */
49
+ public function render( $template, $args = array(), $echo = true ) {
50
+ $location = $this->locate_template( $template );
51
+ if ( empty( $location ) ) {
52
+ return '';
53
+ }
54
+ foreach ( $args as $name => $value ) {
55
+ if ( is_numeric( $name ) ) {
56
+ continue;
57
+ }
58
+ $$name = $value;
59
+ }
60
+ /**
61
+ * Store the view output in cache based on the args it needs.
62
+ */
63
+ $cache_key = md5( $location . serialize( $args ) );
64
+ $content = wp_cache_get( $cache_key, 'wppr' );
65
+ if ( empty( $content ) ) {
66
+ ob_start();
67
+ require( $location );
68
+ $content = ob_get_contents();
69
+ ob_end_clean();
70
+
71
+ wp_cache_set( $cache_key, $content, 'wppr', 5 * 60 );
72
+ }
73
+ if ( ! $echo ) {
74
+ return $content;
75
+ }
76
+ echo $content;
77
+
78
+ return '';
79
+ }
80
+
81
+ /**
82
+ * Locate template file.
83
+ *
84
+ * @param string $template Filename to look for.
85
+ *
86
+ * @return string The template location.
87
+ */
88
+ public function locate_template( $template ) {
89
+ $dirs = array_reverse( $this->dirs );
90
+ $template = str_replace( '.php', '', $template );
91
+ $template = $template . '.php';
92
+ foreach ( $dirs as $dir ) {
93
+ if ( file_exists( $dir . $template ) ) {
94
+ return $dir . $template;
95
+ }
96
+ }
97
+
98
+ return '';
99
+ }
100
+ }
dist/includes/class-wppr.php ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that defines the core plugin class
4
+ *
5
+ * A class definition that includes attributes and functions used across both the
6
+ * public-facing side of the site and the admin area.
7
+ *
8
+ * @link https://themeisle.com/
9
+ * @since 3.0.0
10
+ *
11
+ * @package WPPR
12
+ * @subpackage WPPR/includes
13
+ */
14
+
15
+ /**
16
+ * The core plugin class.
17
+ *
18
+ * This is used to define internationalization, admin-specific hooks, and
19
+ * public-facing site hooks.
20
+ *
21
+ * Also maintains the unique identifier of this plugin as well as the current
22
+ * version of the plugin.
23
+ *
24
+ * @since 3.0.0
25
+ * @package WPPR
26
+ * @subpackage WPPR/includes
27
+ * @author ThemeIsle <friends@themeisle.com>
28
+ */
29
+ class WPPR {
30
+
31
+ /**
32
+ * The loader that's responsible for maintaining and registering all hooks that power
33
+ * the plugin.
34
+ *
35
+ * @since 3.0.0
36
+ * @access protected
37
+ * @var WPPR_Loader $loader Maintains and registers all hooks for the plugin.
38
+ */
39
+ protected $loader;
40
+
41
+ /**
42
+ * The unique identifier of this plugin.
43
+ *
44
+ * @since 3.0.0
45
+ * @access protected
46
+ * @var string $plugin_name The string used to uniquely identify this plugin.
47
+ */
48
+ protected $plugin_name;
49
+
50
+ /**
51
+ * The current version of the plugin.
52
+ *
53
+ * @since 3.0.0
54
+ * @access protected
55
+ * @var string $version The current version of the plugin.
56
+ */
57
+ protected $version;
58
+
59
+ /**
60
+ * Define the core functionality of the plugin.
61
+ *
62
+ * Set the plugin name and the plugin version that can be used throughout the plugin.
63
+ * Load the dependencies, define the locale, and set the hooks for the admin area and
64
+ * the public-facing side of the site.
65
+ *
66
+ * @since 3.0.0
67
+ */
68
+ public function __construct() {
69
+ $this->plugin_name = 'wppr';
70
+ $this->version = '3.4.8';
71
+
72
+ $this->load_dependencies();
73
+ $this->set_locale();
74
+ $this->define_common_hooks();
75
+ $this->define_admin_hooks();
76
+ $this->define_public_hooks();
77
+ }
78
+
79
+ /**
80
+ * Load the required dependencies for this plugin.
81
+ *
82
+ * Include the following files that make up the plugin:
83
+ *
84
+ * - WPPR_Loader. Orchestrates the hooks of the plugin.
85
+ * - WPPR_I18n. Defines internationalization functionality.
86
+ * - WPPR_Admin. Defines all hooks for the admin area.
87
+ * - WPPR_Public. Defines all hooks for the public side of the site.
88
+ *
89
+ * Create an instance of the loader which will be used to register the hooks
90
+ * with WordPress.
91
+ *
92
+ * @since 3.0.0
93
+ * @access private
94
+ */
95
+ private function load_dependencies() {
96
+ $this->loader = new WPPR_Loader();
97
+ }
98
+
99
+ /**
100
+ * Define the locale for this plugin for internationalization.
101
+ *
102
+ * Uses the WPPR_I18n class in order to set the domain and to register the hook
103
+ * with WordPress.
104
+ *
105
+ * @since 3.0.0
106
+ * @access private
107
+ */
108
+ private function set_locale() {
109
+ $plugin_i18n = new WPPR_I18n();
110
+ $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
111
+ }
112
+
113
+ /**
114
+ * Register common hooks here.
115
+ *
116
+ * @access private
117
+ */
118
+ private function define_common_hooks() {
119
+ $this->loader->add_action( 'init', $this, 'register_cpt', 11 );
120
+ }
121
+
122
+ /**
123
+ * Register all of the hooks related to the admin area functionality
124
+ * of the plugin.
125
+ *
126
+ * @since 3.0.0
127
+ * @access private
128
+ */
129
+ private function define_admin_hooks() {
130
+
131
+ $plugin_admin = new WPPR_Admin( $this->get_plugin_name(), $this->get_version() );
132
+ $this->loader->add_action( 'admin_menu', $plugin_admin, 'menu_pages' );
133
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
134
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
135
+ $this->loader->add_action( 'wp_ajax_update_options', $plugin_admin, 'update_options' );
136
+ $this->loader->add_action( 'load-edit.php', $plugin_admin, 'get_additional_fields' );
137
+ $this->loader->add_action( 'wppr_settings_section_upsell', $plugin_admin, 'settings_section_upsell', 10, 1 );
138
+ $this->loader->add_action( 'after_setup_theme', $plugin_admin, 'add_image_size' );
139
+
140
+ $plugin_editor = new WPPR_Editor( $this->get_plugin_name(), $this->get_version() );
141
+ $this->loader->add_action( 'add_meta_boxes', $plugin_editor, 'set_editor' );
142
+ $this->loader->add_action( 'save_post', $plugin_editor, 'editor_save' );
143
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_editor, 'load_assets' );
144
+
145
+ $plugin_widget_latest = new WPPR_Latest_Products_Widget();
146
+ $this->loader->add_action( 'widgets_init', $plugin_widget_latest, 'register' );
147
+
148
+ $plugin_widget_top = new WPPR_Top_Products_Widget();
149
+ $this->loader->add_action( 'widgets_init', $plugin_widget_top, 'register' );
150
+ }
151
+
152
+ /**
153
+ * The name of the plugin used to uniquely identify it within the context of
154
+ * WordPress and to define internationalization functionality.
155
+ *
156
+ * @since 3.0.0
157
+ * @return string The name of the plugin.
158
+ */
159
+ public function get_plugin_name() {
160
+ return $this->plugin_name;
161
+ }
162
+
163
+ /**
164
+ * Retrieve the version number of the plugin.
165
+ *
166
+ * @since 3.0.0
167
+ * @return string The version number of the plugin.
168
+ */
169
+ public function get_version() {
170
+ return $this->version;
171
+ }
172
+
173
+ /**
174
+ * Register all of the hooks related to the public-facing functionality
175
+ * of the plugin.
176
+ *
177
+ * @since 3.0.0
178
+ * @access private
179
+ */
180
+ private function define_public_hooks() {
181
+
182
+ $plugin_public = new WPPR_Public( $this->get_plugin_name(), $this->get_version() );
183
+
184
+ $this->loader->add_action( 'comment_post', $plugin_public, 'save_comment_fields', 1 );
185
+
186
+ if ( is_admin() ) {
187
+ return;
188
+ }
189
+ $this->loader->add_action( 'wp', $plugin_public, 'setup_post' );
190
+ $this->loader->add_action( 'wp', $plugin_public, 'amp_support', 11 );
191
+ $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'load_review_assets' );
192
+ $this->loader->add_action( 'comment_form_logged_in_after', $plugin_public, 'add_comment_fields' );
193
+ $this->loader->add_action( 'comment_form_after_fields', $plugin_public, 'add_comment_fields' );
194
+ $this->loader->add_filter( 'comment_text', $plugin_public, 'show_comment_ratings' );
195
+ $currentTheme = wp_get_theme();
196
+ if ( $currentTheme->get( 'Name' ) !== 'Bookrev' && $currentTheme->get( 'Name' ) !== 'Book Rev Lite' ) {
197
+
198
+ $this->loader->add_filter( 'the_content', $plugin_public, 'display_on_front' );
199
+ }
200
+
201
+ $this->loader->add_filter( 'wppr_rating_circle_bar_styles', $plugin_public, 'rating_circle_bar_styles', 10, 2 );
202
+ $this->loader->add_filter( 'wppr_rating_circle_fill_styles', $plugin_public, 'rating_circle_fill_styles', 10, 2 );
203
+ }
204
+
205
+ /**
206
+ * The reference to the class that orchestrates the hooks with the plugin.
207
+ *
208
+ * @since 3.0.0
209
+ * @return WPPR_Loader Orchestrates the hooks of the plugin.
210
+ */
211
+ public function get_loader() {
212
+ return $this->loader;
213
+ }
214
+
215
+ /**
216
+ * Run the loader to execute all of the hooks with WordPress.
217
+ *
218
+ * @since 3.0.0
219
+ */
220
+ public function run() {
221
+ $this->loader->run();
222
+ }
223
+ /**
224
+ * Registers the custom post attributes, if enabled.
225
+ */
226
+ public function register_cpt() {
227
+ $model = new WPPR_Query_Model();
228
+ if ( 'yes' !== $model->wppr_get_option( 'wppr_cpt' ) ) {
229
+ return;
230
+ }
231
+
232
+ $labels = array(
233
+ 'name' => _x( 'Reviews', 'post type general name', 'wp-product-review' ),
234
+ 'singular_name' => _x( 'Review', 'post type singular name', 'wp-product-review' ),
235
+ 'menu_name' => _x( 'Reviews', 'admin menu', 'wp-product-review' ),
236
+ 'name_admin_bar' => _x( 'Review', 'add new on admin bar', 'wp-product-review' ),
237
+ 'add_new' => _x( 'Add New', 'review', 'wp-product-review' ),
238
+ 'add_new_item' => __( 'Add New Review', 'wp-product-review' ),
239
+ 'new_item' => __( 'New Review', 'wp-product-review' ),
240
+ 'edit_item' => __( 'Edit Review', 'wp-product-review' ),
241
+ 'view_item' => __( 'View Review', 'wp-product-review' ),
242
+ 'all_items' => __( 'All Reviews', 'wp-product-review' ),
243
+ 'search_items' => __( 'Search Reviews', 'wp-product-review' ),
244
+ 'parent_item_colon' => __( 'Parent Review:', 'wp-product-review' ),
245
+ 'not_found' => __( 'No review found.', 'wp-product-review' ),
246
+ 'not_found_in_trash' => __( 'No reviews found in Trash.', 'wp-product-review' ),
247
+ );
248
+ $args = array(
249
+ 'labels' => $labels,
250
+ 'description' => __( 'Reviews from WP Product Review', 'wp-product-review' ),
251
+ 'public' => true,
252
+ 'publicly_queryable' => true,
253
+ 'exclude_from_search' => true,
254
+ 'show_in_nav_menus' => true,
255
+ 'show_ui' => true,
256
+ 'show_in_menu' => true,
257
+ 'query_var' => true,
258
+ 'has_archive' => true,
259
+ 'hierarchical' => false,
260
+ 'supports' => array( 'title', 'editor', 'thumbnail' ),
261
+ 'taxonomies' => array( 'wppr_category' ),
262
+ 'can_export' => true,
263
+ 'capability_type' => 'post',
264
+ 'show_in_rest' => true,
265
+ 'rest_base' => 'wppr_review',
266
+ 'rest_controller_class' => 'WP_REST_Posts_Controller',
267
+ );
268
+ register_post_type( 'wppr_review', $args );
269
+
270
+ register_taxonomy(
271
+ 'wppr_category',
272
+ 'wppr_review',
273
+ array(
274
+ 'hierarchical' => true,
275
+ 'labels' => array(
276
+ 'name' => __( 'Review Category', 'wp-product-review' ),
277
+ 'singular_name' => __( 'Review Category', 'wp-product-review' ),
278
+ 'search_items' => __( 'Search Review Categories', 'wp-product-review' ),
279
+ 'all_items' => __( 'All Review Categories', 'wp-product-review' ),
280
+ 'parent_item' => __( 'Parent Review Category', 'wp-product-review' ),
281
+ 'parent_item_colon' => __( 'Parent Review Category', 'wp-product-review' ) . ':',
282
+ 'edit_item' => __( 'Edit Review Category', 'wp-product-review' ),
283
+ 'update_item' => __( 'Update Review Category', 'wp-product-review' ),
284
+ 'add_new_item' => __( 'Add New Review Category', 'wp-product-review' ),
285
+ 'new_item_name' => __( 'New Review Category', 'wp-product-review' ),
286
+ 'menu_name' => __( 'Review Categories', 'wp-product-review' ),
287
+ ),
288
+ 'show_admin_column' => true,
289
+ 'public' => true,
290
+ 'show_in_menu' => true,
291
+ 'rewrite' => array( 'slug' => 'wpprcategory', 'with_front' => true ),
292
+ )
293
+ );
294
+
295
+ flush_rewrite_rules();
296
+
297
+ }
298
+ }
dist/includes/functions.php ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The file that contains global functions.
4
+ *
5
+ * @link https://themeisle.com/
6
+ *
7
+ * @package WPPR
8
+ * @subpackage WPPR/includes
9
+ */
10
+
11
+
12
+ if ( ! function_exists( 'wppr_display_rating' ) ) {
13
+ /**
14
+ * Display the star/icon rating.
15
+ */
16
+ function wppr_display_rating( $template, $review_object ) {
17
+ $icon = apply_filters( 'wppr_option_custom_icon', '' );
18
+ if ( empty( $icon ) ) {
19
+ wppr_display_rating_stars( $template, $review_object, true );
20
+ } else {
21
+ wppr_display_rating_custom_icon( $template, $review_object );
22
+ }
23
+ }
24
+ }
25
+
26
+
27
+ if ( ! function_exists( 'wppr_display_rating_stars' ) ) {
28
+
29
+ /**
30
+ * Display the star rating.
31
+ */
32
+ function wppr_display_rating_stars( $template, $review_object, $include_author = true ) {
33
+ $review_rating = $review_object->get_rating();
34
+ $rating_10 = round( $review_rating, 0 ) / 10;
35
+ $rating_5 = round( $review_rating / 20, PHP_ROUND_HALF_UP );
36
+ ?>
37
+ <div class="wppr-review-stars <?php echo is_rtl() ? 'rtl' : ''; ?>" style="direction: <?php echo is_rtl() ? 'rtl' : ''; ?>">
38
+ <div class="wppr-review-stars-grade <?php echo $review_object->get_rating_class(); ?>">
39
+ <?php
40
+ $stars = array( 'full' => intval( $rating_5 ), 'half' => $rating_5 > intval( $rating_5 ), 'empty' => 4 - intval( $rating_5 ) );
41
+
42
+ foreach ( $stars as $key => $value ) {
43
+ switch ( $key ) {
44
+ case 'full':
45
+ for ( $i = 0; $i < intval( $rating_5 ); $i++ ) {
46
+ ?>
47
+ <i class="fa fa-star"></i>
48
+ <?php
49
+ }
50
+ break;
51
+ case 'half':
52
+ if ( $rating_5 > intval( $rating_5 ) ) {
53
+ ?>
54
+ <i class="fa fa-star-half-o"></i>
55
+ <?php
56
+ }
57
+ break;
58
+ case 'empty':
59
+ for ( $i = 0; $i < 4 - intval( $rating_5 ); $i++ ) {
60
+ ?>
61
+ <i class="fa fa-star-o"></i>
62
+ <?php
63
+ }
64
+ break;
65
+ }
66
+ }
67
+ ?>
68
+ </div>
69
+ <?php
70
+ if ( $include_author ) {
71
+ ?>
72
+ <span class="wppr-review-stars-author"><?php echo get_the_author() . __( '\'s rating', 'wp-product-review' ); ?></span>
73
+ <?php
74
+ }
75
+ ?>
76
+ </div>
77
+ <?php
78
+ }
79
+ }
80
+
81
+ if ( ! function_exists( 'wppr_display_rating_custom_icon' ) ) {
82
+
83
+ /**
84
+ * Display the custom icon rating.
85
+ */
86
+ function wppr_display_rating_custom_icon( $template, $review_object ) {
87
+ ?>
88
+ <div id="review-statistics">
89
+ <div class="review-wu-bars">
90
+ <ul class="cwpr_clearfix <?php echo ' ' . $review_object->get_rating_class( $review_rating ) . apply_filters( 'wppr_option_custom_icon', '' ); ?>">
91
+ <?php
92
+ for ( $i = 1; $i <= 5; $i ++ ) {
93
+ ?>
94
+ <li <?php echo $i <= round( $review_rating / 20 ) ? ' class="colored"' : ''; ?>></li>
95
+ <?php
96
+ }
97
+ ?>
98
+ </ul>
99
+ </div>
100
+ </div>
101
+ <?php
102
+ }
103
+ }
104
+
105
+
106
+ if ( ! function_exists( 'wppr_default_get_image' ) ) {
107
+
108
+ /**
109
+ * Display the imaage for the default template.
110
+ */
111
+ function wppr_default_get_image( $review_object ) {
112
+ $links = $review_object->get_links();
113
+ $links = array_filter( $links );
114
+ $image_link = reset( $links );
115
+ $lightbox = '';
116
+ if ( $review_object->get_click() == 'image' ) {
117
+ $lightbox = 'data-lightbox="' . esc_url( $review_object->get_small_thumbnail() ) . '"';
118
+ $image_link = $review_object->get_image();
119
+ }
120
+ ?>
121
+ <div class="rev-wu-image">
122
+ <a class="wppr-default-img" href="<?php echo esc_url( $image_link ); ?>" <?php echo $lightbox; ?> rel="nofollow" target="_blank">
123
+ <img
124
+ src="<?php echo esc_attr( $review_object->get_small_thumbnail() ); ?>"
125
+ alt="<?php echo esc_attr( $review_object->get_name() ); ?>"
126
+ class="photo photo-wrapup wppr-product-image"/>
127
+ </a>
128
+ </div><!-- end .rev-wu-image -->
129
+ <?php
130
+ }
131
+ }
132
+
133
+ if ( ! function_exists( 'wppr_default_get_rating' ) ) {
134
+
135
+ /**
136
+ * Display the rating for the default template.
137
+ */
138
+ function wppr_default_get_rating( $review_object ) {
139
+ $rating = round( $review_object->get_rating() );
140
+ $rating_10 = round( $review_object->get_rating(), 0 ) / 10;
141
+ ?>
142
+ <div class="review-wu-grade">
143
+ <div class="review-wu-grade-content">
144
+ <div class="wppr-c100 wppr-p<?php echo esc_attr( $rating ) . ' ' . $review_object->get_rating_class(); ?>">
145
+ <span><?php echo esc_html( $rating_10 ); ?></span>
146
+ <div class="wppr-slice">
147
+ <div class="wppr-bar" style="<?php echo apply_filters( 'wppr_rating_circle_bar_styles', '', $rating ); ?>"></div>
148
+ <div class="wppr-fill" style="<?php echo apply_filters( 'wppr_rating_circle_fill_styles', '', $rating ); ?>"></div>
149
+ </div>
150
+ <div class="wppr-slice-center"></div>
151
+ </div>
152
+ </div>
153
+ </div><!-- end .review-wu-grade -->
154
+ <?php
155
+ }
156
+ }
157
+
158
+ if ( function_exists( 'register_block_type' ) ) {
159
+ WPPR_Gutenberg::get_instance();
160
+ }
dist/includes/gutenberg/class-wppr-gutenberg.php ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class for functionalities related to Gutenberg.
4
+ *
5
+ * Defines the functions that need to be used for Gutenberg,
6
+ * and REST router.
7
+ *
8
+ * @package wp-product-review
9
+ * @subpackage wp-product-review/includes/guteneberg
10
+ * @author Themeisle <friends@themeisle.com>
11
+ */
12
+ class WPPR_Gutenberg {
13
+
14
+ /**
15
+ * A reference to an instance of this class.
16
+ *
17
+ * @var WPPR_Gutenberg The one WPPR_Gutenberg instance.
18
+ */
19
+ private static $instance;
20
+
21
+ /**
22
+ * WP Product Review version.
23
+ *
24
+ * @var string $version The current version of the plugin.
25
+ */
26
+ protected $version;
27
+
28
+ /**
29
+ * Returns an instance of this class.
30
+ */
31
+ public static function get_instance() {
32
+ if ( null == self::$instance ) {
33
+ self::$instance = new WPPR_Gutenberg();
34
+ }
35
+ return self::$instance;
36
+ }
37
+
38
+ /**
39
+ * Initializes the plugin by setting filters and administration functions.
40
+ */
41
+ private function __construct() {
42
+ $plugin = new WPPR();
43
+ $this->version = $plugin->get_version();
44
+ // Add a filter to load functions when all plugins have been loaded
45
+ add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_gutenberg_scripts' ) );
46
+ add_action( 'init', array( $this, 'register_endpoints' ) );
47
+ add_action( 'rest_api_init', array( $this, 'update_posts_endpoints' ) );
48
+ }
49
+
50
+ /**
51
+ * Enqueue editor JavaScript and CSS
52
+ */
53
+ public function enqueue_gutenberg_scripts() {
54
+ if ( WPPR_CACHE_DISABLED ) {
55
+ $version = filemtime( WPPR_URL . '/includes/gutenberg/dist/block.js' );
56
+ } else {
57
+ $version = $this->version;
58
+ }
59
+
60
+ // Enqueue the bundled block JS file
61
+ wp_enqueue_script( 'wppr-gutenberg-block-js', WPPR_URL . '/includes/gutenberg/dist/block.js', array( 'wp-i18n', 'wp-edit-post', 'wp-element', 'wp-editor', 'wp-components', 'wp-data', 'wp-plugins', 'wp-edit-post', 'wp-api' ), $version );
62
+
63
+ // Enqueue editor block styles
64
+ wp_enqueue_style( 'wppr-gutenberg-block-css', WPPR_URL . '/includes/gutenberg/dist/block.css', '', $version );
65
+ }
66
+
67
+ /**
68
+ * Hook server side rendering into render callback
69
+ */
70
+ public function update_posts_endpoints() {
71
+ register_rest_route(
72
+ 'wp-product-review',
73
+ '/update-review',
74
+ array(
75
+ 'methods' => 'POST',
76
+ 'callback' => array( $this, 'update_review_callback' ),
77
+ 'args' => array(
78
+ 'id' => array(
79
+ 'sanitize_callback' => 'absint',
80
+ ),
81
+ ),
82
+ )
83
+ );
84
+ }
85
+
86
+ /**
87
+ * Rest Callbackk Method
88
+ */
89
+ public function update_review_callback( $data ) {
90
+ if ( ! empty( $data['id'] ) ) {
91
+ $review = new WPPR_Review_Model( $data['id'] );
92
+ if ( $data['cwp_meta_box_check'] === 'Yes' ) {
93
+ $review->activate();
94
+
95
+ if ( $data['postType'] === 'wppr_review' ) {
96
+ $name = get_the_title( $data['id'] );
97
+ } else {
98
+ $name = isset( $data['cwp_rev_product_name'] ) ? sanitize_text_field( $data['cwp_rev_product_name'] ) : '';
99
+ }
100
+ $image = isset( $data['cwp_rev_product_image'] ) ? esc_url( $data['cwp_rev_product_image'] ) : '';
101
+ $click = isset( $data['cwp_image_link'] ) ? strval( sanitize_text_field( $data['cwp_image_link'] ) ) : 'image';
102
+ $template = isset( $data['_wppr_review_template'] ) ? strval( sanitize_text_field( $data['_wppr_review_template'] ) ) : 'default';
103
+ $affiliates = isset( $data['wppr_links'] ) ? $data['wppr_links'] : array( '' => '' );
104
+ $price = isset( $data['cwp_rev_price'] ) ? sanitize_text_field( $data['cwp_rev_price'] ) : 0;
105
+ $options = isset( $data['wppr_options'] ) ? $data['wppr_options'] : array();
106
+ $pros = isset( $data['wppr_pros'] ) ? $data['wppr_pros'] : array();
107
+ $cons = isset( $data['wppr_cons'] ) ? $data['wppr_cons'] : array();
108
+
109
+ foreach ( $options as $key => $option ) {
110
+ if ( $option['name'] == '' && $option['value'] == 0 ) {
111
+ unset( $options[ $key ] );
112
+ }
113
+ }
114
+
115
+ $review->set_name( $name );
116
+ $review->set_image( $image );
117
+ $review->set_click( $click );
118
+ $review->set_template( $template );
119
+ $review->set_links( $affiliates );
120
+ $review->set_price( $price );
121
+ $review->set_options( $options );
122
+ $review->set_pros( $pros );
123
+ $review->set_cons( $cons );
124
+ } else {
125
+ $review->deactivate();
126
+ }
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Register Rest Field
132
+ */
133
+ public function register_endpoints() {
134
+ register_rest_field(
135
+ array( 'post', 'wppr_review' ),
136
+ 'wppr_data',
137
+ array(
138
+ 'get_callback' => array( $this, 'get_post_meta' ),
139
+ 'schema' => null,
140
+ )
141
+ );
142
+ }
143
+
144
+ /**
145
+ * Get Post Meta Fields
146
+ */
147
+ public function get_post_meta( $post ) {
148
+ $data = array();
149
+ $post_id = $post['id'];
150
+ $post_type = $post['type'];
151
+ $options = array(
152
+ 'cwp_meta_box_check',
153
+ 'cwp_rev_product_name',
154
+ '_wppr_review_template',
155
+ 'cwp_rev_product_image',
156
+ 'cwp_image_link',
157
+ 'wppr_links',
158
+ 'cwp_rev_price',
159
+ 'wppr_pros',
160
+ 'wppr_cons',
161
+ 'wppr_rating',
162
+ 'wppr_options',
163
+ );
164
+ foreach ( $options as $option ) {
165
+ if ( get_post_meta( $post_id, $option ) ) {
166
+ $object = get_post_meta( $post_id, $option );
167
+ $object = $object[0];
168
+ $data[ $option ] = $object;
169
+ }
170
+ }
171
+
172
+ return $data;
173
+ }
174
+
175
+ }
dist/includes/gutenberg/dist/block.css ADDED
@@ -0,0 +1 @@
 
1
+ .wp-product-review-product-details .wp-product-review-sidebar-base-control{padding-bottom:10px}.wp-product-review-product-details .wp-product-review-sidebar-base-control label{padding-bottom:10px}.wp-product-review-product-details .wp-product-review-sidebar-base-control .wppr_image_upload{display:block;margin-bottom:10px}.wp-product-review-product-details .wppr-review-links-list button{margin-bottom:10px}.wp-product-review-product-options .wppr-review-options-list label{width:15%;margin-right:-4px;border-radius:3px 0 0 3px;background:#ddd;line-height:30px;text-align:center;vertical-align:top;display:inline-block}.wp-product-review-product-options .wppr-review-options-list .wppr-text{width:60%;display:inline-block}.wp-product-review-product-options .wppr-review-options-list .wppr-text input{height:30px}.wp-product-review-product-options .wppr-review-options-list .wppr-option-number{width:25%;display:inline-block}.wp-product-review-product-options .wppr-review-options-list .wppr-option-number input{height:30px}.wp-product-review-product-pros .wppr-review-pro-list label{width:15%;margin-right:-4px;border-radius:3px 0 0 3px;background:#ddd;line-height:30px;text-align:center;vertical-align:top;display:inline-block}.wp-product-review-product-pros .wppr-review-pro-list .wppr-text{width:85%;display:inline-block}.wp-product-review-product-pros .wppr-review-pro-list .wppr-text input{height:30px;margin-top:0}.wp-product-review-product-cons .wppr-review-con-list label{width:15%;margin-right:-4px;border-radius:3px 0 0 3px;background:#ddd;line-height:30px;text-align:center;vertical-align:top;display:inline-block}.wp-product-review-product-cons .wppr-review-con-list .wppr-text{width:85%;display:inline-block}.wp-product-review-product-cons .wppr-review-con-list .wppr-text input{height:30px;margin-top:0}
dist/includes/gutenberg/dist/block.js ADDED
@@ -0,0 +1,664 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, {
40
+ /******/ configurable: false,
41
+ /******/ enumerable: true,
42
+ /******/ get: getter
43
+ /******/ });
44
+ /******/ }
45
+ /******/ };
46
+ /******/
47
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
48
+ /******/ __webpack_require__.n = function(module) {
49
+ /******/ var getter = module && module.__esModule ?
50
+ /******/ function getDefault() { return module['default']; } :
51
+ /******/ function getModuleExports() { return module; };
52
+ /******/ __webpack_require__.d(getter, 'a', getter);
53
+ /******/ return getter;
54
+ /******/ };
55
+ /******/
56
+ /******/ // Object.prototype.hasOwnProperty.call
57
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
+ /******/
59
+ /******/ // __webpack_public_path__
60
+ /******/ __webpack_require__.p = "";
61
+ /******/
62
+ /******/ // Load entry module and return exports
63
+ /******/ return __webpack_require__(__webpack_require__.s = 43);
64
+ /******/ })
65
+ /************************************************************************/
66
+ /******/ ([
67
+ /* 0 */
68
+ /***/ (function(module, exports) {
69
+
70
+ eval("var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qcz8xNWUwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjUuNycgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n");
71
+
72
+ /***/ }),
73
+ /* 1 */
74
+ /***/ (function(module, exports) {
75
+
76
+ eval("// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZ2xvYmFsLmpzP2VjYWIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n");
77
+
78
+ /***/ }),
79
+ /* 2 */
80
+ /***/ (function(module, exports) {
81
+
82
+ eval("var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzPzBmNjIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oYXMuanNcbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n");
83
+
84
+ /***/ }),
85
+ /* 3 */
86
+ /***/ (function(module, exports, __webpack_require__) {
87
+
88
+ eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar ctx = __webpack_require__(34);\nvar hide = __webpack_require__(7);\nvar has = __webpack_require__(2);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzPzkwY2QiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n");
89
+
90
+ /***/ }),
91
+ /* 4 */
92
+ /***/ (function(module, exports, __webpack_require__) {
93
+
94
+ eval("var anObject = __webpack_require__(12);\nvar IE8_DOM_DEFINE = __webpack_require__(35);\nvar toPrimitive = __webpack_require__(23);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzPzdhZjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n");
95
+
96
+ /***/ }),
97
+ /* 5 */
98
+ /***/ (function(module, exports, __webpack_require__) {
99
+
100
+ eval("// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(9)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVzY3JpcHRvcnMuanM/Zjg0ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5\n");
101
+
102
+ /***/ }),
103
+ /* 6 */
104
+ /***/ (function(module, exports, __webpack_require__) {
105
+
106
+ eval("// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(31);\nvar defined = __webpack_require__(18);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcz80ZGM0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6\n");
107
+
108
+ /***/ }),
109
+ /* 7 */
110
+ /***/ (function(module, exports, __webpack_require__) {
111
+
112
+ eval("var dP = __webpack_require__(4);\nvar createDesc = __webpack_require__(16);\nmodule.exports = __webpack_require__(5) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qcz84NDljIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19oaWRlLmpzXG4vLyBtb2R1bGUgaWQgPSA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7\n");
113
+
114
+ /***/ }),
115
+ /* 8 */
116
+ /***/ (function(module, exports) {
117
+
118
+ eval("module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzPzEyYTgiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8\n");
119
+
120
+ /***/ }),
121
+ /* 9 */
122
+ /***/ (function(module, exports) {
123
+
124
+ eval("module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZmFpbHMuanM/NGJjZCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZmFpbHMuanNcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9\n");
125
+
126
+ /***/ }),
127
+ /* 10 */
128
+ /***/ (function(module, exports, __webpack_require__) {
129
+
130
+ eval("var store = __webpack_require__(21)('wks');\nvar uid = __webpack_require__(15);\nvar Symbol = __webpack_require__(1).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcz83NTJjIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n");
131
+
132
+ /***/ }),
133
+ /* 11 */
134
+ /***/ (function(module, exports, __webpack_require__) {
135
+
136
+ eval("// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(30);\nvar enumBugKeys = __webpack_require__(22);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzPzk2NGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gJGtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qc1xuLy8gbW9kdWxlIGlkID0gMTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n");
137
+
138
+ /***/ }),
139
+ /* 12 */
140
+ /***/ (function(module, exports, __webpack_require__) {
141
+
142
+ eval("var isObject = __webpack_require__(8);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FuLW9iamVjdC5qcz9lZmIzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///12\n");
143
+
144
+ /***/ }),
145
+ /* 13 */
146
+ /***/ (function(module, exports, __webpack_require__) {
147
+
148
+ eval("// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(18);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcz9iMDFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///13\n");
149
+
150
+ /***/ }),
151
+ /* 14 */
152
+ /***/ (function(module, exports) {
153
+
154
+ eval("module.exports = true;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanM/M2I4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qc1xuLy8gbW9kdWxlIGlkID0gMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///14\n");
155
+
156
+ /***/ }),
157
+ /* 15 */
158
+ /***/ (function(module, exports) {
159
+
160
+ eval("var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcz9kYzRhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///15\n");
161
+
162
+ /***/ }),
163
+ /* 16 */
164
+ /***/ (function(module, exports) {
165
+
166
+ eval("module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanM/NWZjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanNcbi8vIG1vZHVsZSBpZCA9IDE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///16\n");
167
+
168
+ /***/ }),
169
+ /* 17 */
170
+ /***/ (function(module, exports) {
171
+
172
+ eval("exports.f = {}.propertyIsEnumerable;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1waWUuanM/MzY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzXG4vLyBtb2R1bGUgaWQgPSAxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///17\n");
173
+
174
+ /***/ }),
175
+ /* 18 */
176
+ /***/ (function(module, exports) {
177
+
178
+ eval("// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanM/ZTc2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanNcbi8vIG1vZHVsZSBpZCA9IDE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///18\n");
179
+
180
+ /***/ }),
181
+ /* 19 */
182
+ /***/ (function(module, exports) {
183
+
184
+ eval("// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWludGVnZXIuanM/NTJlMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///19\n");
185
+
186
+ /***/ }),
187
+ /* 20 */
188
+ /***/ (function(module, exports, __webpack_require__) {
189
+
190
+ eval("var shared = __webpack_require__(21)('keys');\nvar uid = __webpack_require__(15);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC1rZXkuanM/NmIxZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20\n");
191
+
192
+ /***/ }),
193
+ /* 21 */
194
+ /***/ (function(module, exports, __webpack_require__) {
195
+
196
+ eval("var core = __webpack_require__(0);\nvar global = __webpack_require__(1);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(14) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcz83YmMwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///21\n");
197
+
198
+ /***/ }),
199
+ /* 22 */
200
+ /***/ (function(module, exports) {
201
+
202
+ eval("// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanM/YzY3NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19lbnVtLWJ1Zy1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n");
203
+
204
+ /***/ }),
205
+ /* 23 */
206
+ /***/ (function(module, exports, __webpack_require__) {
207
+
208
+ eval("// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(8);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcz8zMjYzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1wcmltaXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n");
209
+
210
+ /***/ }),
211
+ /* 24 */
212
+ /***/ (function(module, exports) {
213
+
214
+ eval("exports.f = Object.getOwnPropertySymbols;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BzLmpzP2Q2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qc1xuLy8gbW9kdWxlIGlkID0gMjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///24\n");
215
+
216
+ /***/ }),
217
+ /* 25 */
218
+ /***/ (function(module, exports) {
219
+
220
+ eval("module.exports = {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcz9mZGI0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge307XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlcmF0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///25\n");
221
+
222
+ /***/ }),
223
+ /* 26 */
224
+ /***/ (function(module, exports, __webpack_require__) {
225
+
226
+ eval("// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(12);\nvar dPs = __webpack_require__(70);\nvar enumBugKeys = __webpack_require__(22);\nvar IE_PROTO = __webpack_require__(20)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(36)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(71).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanM/NjI4NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///26\n");
227
+
228
+ /***/ }),
229
+ /* 27 */
230
+ /***/ (function(module, exports, __webpack_require__) {
231
+
232
+ eval("var def = __webpack_require__(4).f;\nvar has = __webpack_require__(2);\nvar TAG = __webpack_require__(10)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzPzdiYTkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanNcbi8vIG1vZHVsZSBpZCA9IDI3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///27\n");
233
+
234
+ /***/ }),
235
+ /* 28 */
236
+ /***/ (function(module, exports, __webpack_require__) {
237
+
238
+ eval("exports.f = __webpack_require__(10);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanM/MmExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZXh0LmpzXG4vLyBtb2R1bGUgaWQgPSAyOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///28\n");
239
+
240
+ /***/ }),
241
+ /* 29 */
242
+ /***/ (function(module, exports, __webpack_require__) {
243
+
244
+ eval("var global = __webpack_require__(1);\nvar core = __webpack_require__(0);\nvar LIBRARY = __webpack_require__(14);\nvar wksExt = __webpack_require__(28);\nvar defineProperty = __webpack_require__(4).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1kZWZpbmUuanM/NzJiOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fd2tzLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///29\n");
245
+
246
+ /***/ }),
247
+ /* 30 */
248
+ /***/ (function(module, exports, __webpack_require__) {
249
+
250
+ eval("var has = __webpack_require__(2);\nvar toIObject = __webpack_require__(6);\nvar arrayIndexOf = __webpack_require__(47)(false);\nvar IE_PROTO = __webpack_require__(20)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzPzIxYjgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanNcbi8vIG1vZHVsZSBpZCA9IDMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n");
251
+
252
+ /***/ }),
253
+ /* 31 */
254
+ /***/ (function(module, exports, __webpack_require__) {
255
+
256
+ eval("// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(32);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanM/MzE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDMxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///31\n");
257
+
258
+ /***/ }),
259
+ /* 32 */
260
+ /***/ (function(module, exports) {
261
+
262
+ eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcz80N2QzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanNcbi8vIG1vZHVsZSBpZCA9IDMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///32\n");
263
+
264
+ /***/ }),
265
+ /* 33 */
266
+ /***/ (function(module, exports, __webpack_require__) {
267
+
268
+ eval("// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(3);\nvar core = __webpack_require__(0);\nvar fails = __webpack_require__(9);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1zYXAuanM/YmFhNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGV4ZWMpIHtcbiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldO1xuICB2YXIgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qtc2FwLmpzXG4vLyBtb2R1bGUgaWQgPSAzM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///33\n");
269
+
270
+ /***/ }),
271
+ /* 34 */
272
+ /***/ (function(module, exports, __webpack_require__) {
273
+
274
+ eval("// optional / simple context binding\nvar aFunction = __webpack_require__(50);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcz9mOTkzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jdHguanNcbi8vIG1vZHVsZSBpZCA9IDM0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///34\n");
275
+
276
+ /***/ }),
277
+ /* 35 */
278
+ /***/ (function(module, exports, __webpack_require__) {
279
+
280
+ eval("module.exports = !__webpack_require__(5) && !__webpack_require__(9)(function () {\n return Object.defineProperty(__webpack_require__(36)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2llOC1kb20tZGVmaW5lLmpzPzQ5ZjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n");
281
+
282
+ /***/ }),
283
+ /* 36 */
284
+ /***/ (function(module, exports, __webpack_require__) {
285
+
286
+ eval("var isObject = __webpack_require__(8);\nvar document = __webpack_require__(1).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanM/MzhkZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAzNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///36\n");
287
+
288
+ /***/ }),
289
+ /* 37 */
290
+ /***/ (function(module, exports, __webpack_require__) {
291
+
292
+ eval("// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(2);\nvar toObject = __webpack_require__(13);\nvar IE_PROTO = __webpack_require__(20)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanM/M2YzYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzXG4vLyBtb2R1bGUgaWQgPSAzN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///37\n");
293
+
294
+ /***/ }),
295
+ /* 38 */
296
+ /***/ (function(module, exports, __webpack_require__) {
297
+
298
+ "use strict";
299
+ eval("\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(65);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(76);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcz9hNDU2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2l0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG52YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTtcblxudmFyIF9zeW1ib2wgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2xcIik7XG5cbnZhciBfc3ltYm9sMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbCk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgX2l0ZXJhdG9yMi5kZWZhdWx0ID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgX3R5cGVvZihfaXRlcmF0b3IyLmRlZmF1bHQpID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy90eXBlb2YuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///38\n");
300
+
301
+ /***/ }),
302
+ /* 39 */
303
+ /***/ (function(module, exports, __webpack_require__) {
304
+
305
+ "use strict";
306
+ eval("\nvar LIBRARY = __webpack_require__(14);\nvar $export = __webpack_require__(3);\nvar redefine = __webpack_require__(40);\nvar hide = __webpack_require__(7);\nvar Iterators = __webpack_require__(25);\nvar $iterCreate = __webpack_require__(69);\nvar setToStringTag = __webpack_require__(27);\nvar getPrototypeOf = __webpack_require__(37);\nvar ITERATOR = __webpack_require__(10)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItZGVmaW5lLmpzP2JjODAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRlZmluZS5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///39\n");
307
+
308
+ /***/ }),
309
+ /* 40 */
310
+ /***/ (function(module, exports, __webpack_require__) {
311
+
312
+ eval("module.exports = __webpack_require__(7);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzP2YzY2QiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcmVkZWZpbmUuanNcbi8vIG1vZHVsZSBpZCA9IDQwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n");
313
+
314
+ /***/ }),
315
+ /* 41 */
316
+ /***/ (function(module, exports, __webpack_require__) {
317
+
318
+ eval("// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(30);\nvar hiddenKeys = __webpack_require__(22).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzPzlmNDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGhpZGRlbktleXMpO1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///41\n");
319
+
320
+ /***/ }),
321
+ /* 42 */
322
+ /***/ (function(module, exports, __webpack_require__) {
323
+
324
+ eval("var pIE = __webpack_require__(17);\nvar createDesc = __webpack_require__(16);\nvar toIObject = __webpack_require__(6);\nvar toPrimitive = __webpack_require__(23);\nvar has = __webpack_require__(2);\nvar IE8_DOM_DEFINE = __webpack_require__(35);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(5) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BkLmpzPzJjYTYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciBnT1BEID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGdPUEQgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZ09QRChPLCBQKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXMoTywgUCkpIHJldHVybiBjcmVhdGVEZXNjKCFwSUUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanNcbi8vIG1vZHVsZSBpZCA9IDQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///42\n");
325
+
326
+ /***/ }),
327
+ /* 43 */
328
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
329
+
330
+ "use strict";
331
+ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_object_get_prototype_of__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_object_get_prototype_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_object_get_prototype_of__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__ = __webpack_require__(86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__style_scss__ = __webpack_require__(94);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__style_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__style_scss__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rename_key__ = __webpack_require__(95);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rename_key___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_rename_key__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils__ = __webpack_require__(96);\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * WordPress dependencies\n */\nvar __ = wp.i18n.__;\nvar registerPlugin = wp.plugins.registerPlugin;\nvar MediaUpload = wp.editor.MediaUpload;\nvar _wp$data = wp.data,\n withSelect = _wp$data.withSelect,\n withDispatch = _wp$data.withDispatch;\nvar _wp$editPost = wp.editPost,\n PluginPostStatusInfo = _wp$editPost.PluginPostStatusInfo,\n PluginSidebarMoreMenuItem = _wp$editPost.PluginSidebarMoreMenuItem,\n PluginSidebar = _wp$editPost.PluginSidebar;\nvar _wp$element = wp.element,\n Component = _wp$element.Component,\n Fragment = _wp$element.Fragment,\n compose = _wp$element.compose;\nvar _wp$components = wp.components,\n PanelBody = _wp$components.PanelBody,\n TextControl = _wp$components.TextControl,\n FormToggle = _wp$components.FormToggle,\n Button = _wp$components.Button,\n SelectControl = _wp$components.SelectControl,\n withAPIData = _wp$components.withAPIData;\n\nvar WP_Product_Review = function (_Component) {\n\t__WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default()(WP_Product_Review, _Component);\n\n\tfunction WP_Product_Review() {\n\t\t__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, WP_Product_Review);\n\n\t\tvar _this = __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default()(this, (WP_Product_Review.__proto__ || __WEBPACK_IMPORTED_MODULE_2_babel_runtime_core_js_object_get_prototype_of___default()(WP_Product_Review)).apply(this, arguments));\n\n\t\t_this.toggleReviewStatus = _this.toggleReviewStatus.bind(_this);\n\t\t_this.onChangeReviewTitle = _this.onChangeReviewTitle.bind(_this);\n\t\t_this.onChangeReviewImage = _this.onChangeReviewImage.bind(_this);\n\t\t_this.onChangeImageLink = _this.onChangeImageLink.bind(_this);\n\t\t_this.onChangeReviewAffiliateTitle = _this.onChangeReviewAffiliateTitle.bind(_this);\n\t\t_this.onChangeReviewAffiliateLink = _this.onChangeReviewAffiliateLink.bind(_this);\n\t\t_this.addButton = _this.addButton.bind(_this);\n\t\t_this.onChangeReviewPrice = _this.onChangeReviewPrice.bind(_this);\n\t\t_this.onChangeOptionText = _this.onChangeOptionText.bind(_this);\n\t\t_this.onChangeOptionNumber = _this.onChangeOptionNumber.bind(_this);\n\t\t_this.addOption = _this.addOption.bind(_this);\n\t\t_this.onChangeProText = _this.onChangeProText.bind(_this);\n\t\t_this.addPro = _this.addPro.bind(_this);\n\t\t_this.onChangeConText = _this.onChangeConText.bind(_this);\n\t\t_this.addCon = _this.addCon.bind(_this);\n\n\t\t_this.state = {\n\t\t\tcwp_meta_box_check: 'No',\n\t\t\tcwp_rev_product_name: '',\n\t\t\t_wppr_review_template: 'default',\n\t\t\tcwp_rev_product_image: '',\n\t\t\tcwp_image_link: 'image',\n\t\t\twppr_links: {\n\t\t\t\t'': ''\n\t\t\t},\n\t\t\tcwp_rev_price: '',\n\t\t\twppr_options: {\n\t\t\t\t1: {\n\t\t\t\t\tname: '',\n\t\t\t\t\tvalue: 0\n\t\t\t\t}\n\t\t\t},\n\t\t\twppr_pros: {\n\t\t\t\t0: ''\n\t\t\t},\n\t\t\twppr_cons: {\n\t\t\t\t0: ''\n\t\t\t}\n\t\t};\n\t\treturn _this;\n\t}\n\n\t__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default()(WP_Product_Review, [{\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tif (this.props.review !== nextProps.review) {\n\t\t\t\tif (nextProps.review.isLoading !== true) {\n\t\t\t\t\tthis.setState(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, nextProps.review.data.wppr_data));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (nextProps.isPublishing || nextProps.isSaving) {\n\t\t\t\twp.apiRequest({ path: '/wp-product-review/update-review?id=' + nextProps.postId + '&postType=' + nextProps.postType, method: 'POST', data: this.state }).then(function (data) {\n\t\t\t\t\treturn data;\n\t\t\t\t}, function (err) {\n\t\t\t\t\treturn err;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevState) {\n\t\t\tif (this.state.cwp_meta_box_check !== prevState.cwp_meta_box_check && this.state.cwp_meta_box_check === 'Yes') {\n\t\t\t\tthis.props.openReviewSidebar();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'toggleReviewStatus',\n\t\tvalue: function toggleReviewStatus() {\n\t\t\tthis.setState({ cwp_meta_box_check: this.state.cwp_meta_box_check === 'Yes' ? 'No' : 'Yes' });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeReviewTitle',\n\t\tvalue: function onChangeReviewTitle(value) {\n\t\t\tthis.setState({ cwp_rev_product_name: value });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeReviewImage',\n\t\tvalue: function onChangeReviewImage(value) {\n\t\t\tif (value.url !== undefined && value.url !== '') {\n\t\t\t\tthis.setState({ cwp_rev_product_image: value.url });\n\t\t\t} else if (value.id !== undefined) {\n\t\t\t\tthis.setState({ cwp_rev_product_image: value.id });\n\t\t\t}\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeImageLink',\n\t\tvalue: function onChangeImageLink(value) {\n\t\t\tthis.setState({ cwp_image_link: value });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeReviewAffiliateTitle',\n\t\tvalue: function onChangeReviewAffiliateTitle(e, key) {\n\t\t\tvar wppr_links = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_links);\n\t\t\tif (__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_links).length === 2) {\n\t\t\t\tif (e === __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(wppr_links)[0] || e === __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(wppr_links)[1]) {\n\t\t\t\t\te = e + ' ';\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(wppr_links)[0] === key) {\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_8_rename_key___default()(wppr_links, key, e);\n\t\t\t\twppr_links = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"a\" /* reverseObject */])(wppr_links);\n\t\t\t} else {\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_8_rename_key___default()(wppr_links, key, e);\n\t\t\t}\n\t\t\tthis.setState({ wppr_links: wppr_links });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeReviewAffiliateLink',\n\t\tvalue: function onChangeReviewAffiliateLink(e, key) {\n\t\t\tvar wppr_links = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_links);\n\t\t\twppr_links[key] = e;\n\t\t\tthis.setState({ wppr_links: wppr_links });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'addButton',\n\t\tvalue: function addButton() {\n\t\t\tvar wppr_links = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_links);\n\t\t\twppr_links['Buy Now'] = '';\n\t\t\tthis.setState({ wppr_links: wppr_links });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeReviewPrice',\n\t\tvalue: function onChangeReviewPrice(value) {\n\t\t\tthis.setState({ cwp_rev_price: value });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeOptionText',\n\t\tvalue: function onChangeOptionText(e, key) {\n\t\t\tvar wppr_options = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_options);\n\t\t\twppr_options[key]['name'] = e;\n\t\t\tthis.setState({ wppr_options: wppr_options });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeOptionNumber',\n\t\tvalue: function onChangeOptionNumber(e, key) {\n\t\t\tvar wppr_options = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_options);\n\t\t\tif (e === '') e = 0;\n\t\t\twppr_options[key]['value'] = e;\n\t\t\tthis.setState({ wppr_options: wppr_options });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'addOption',\n\t\tvalue: function addOption() {\n\t\t\tvar key = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_options).length + 1;\n\t\t\tvar wppr_options = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_options);\n\t\t\twppr_options[key] = {\n\t\t\t\tname: '',\n\t\t\t\tvalue: 0\n\t\t\t};\n\t\t\tthis.setState({ wppr_options: wppr_options });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeProText',\n\t\tvalue: function onChangeProText(e, key) {\n\t\t\tvar wppr_pros = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_pros);\n\t\t\twppr_pros[key] = e;\n\t\t\tthis.setState({ wppr_pros: wppr_pros });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'addPro',\n\t\tvalue: function addPro() {\n\t\t\tvar key = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_pros).length;\n\t\t\tvar wppr_pros = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_pros);\n\t\t\twppr_pros[key] = '';\n\t\t\tthis.setState({ wppr_pros: wppr_pros });\n\t\t}\n\t}, {\n\t\tkey: 'onChangeConText',\n\t\tvalue: function onChangeConText(e, key) {\n\t\t\tvar wppr_cons = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_cons);\n\t\t\twppr_cons[key] = e;\n\t\t\tthis.setState({ wppr_cons: wppr_cons });\n\t\t\tthis.props.editPostStatus({ edited: true });\n\t\t}\n\t}, {\n\t\tkey: 'addCon',\n\t\tvalue: function addCon() {\n\t\t\tvar key = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_cons).length;\n\t\t\tvar wppr_cons = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.state.wppr_cons);\n\t\t\twppr_cons[key] = '';\n\t\t\tthis.setState({ wppr_cons: wppr_cons });\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn wp.element.createElement(\n\t\t\t\tFragment,\n\t\t\t\tnull,\n\t\t\t\twp.element.createElement(\n\t\t\t\t\tPluginPostStatusInfo,\n\t\t\t\t\tnull,\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t'label',\n\t\t\t\t\t\t{ htmlFor: 'is-this-a-review' },\n\t\t\t\t\t\t__('Is this post a review?')\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(FormToggle, {\n\t\t\t\t\t\tchecked: this.state.cwp_meta_box_check === 'Yes' ? true : false,\n\t\t\t\t\t\tonChange: this.toggleReviewStatus,\n\t\t\t\t\t\tid: 'is-this-a-review'\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t\tthis.state.cwp_meta_box_check === 'Yes' && [wp.element.createElement(\n\t\t\t\t\tPluginSidebarMoreMenuItem,\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: 'wp-product-review'\n\t\t\t\t\t},\n\t\t\t\t\t__('WP Product Review')\n\t\t\t\t), wp.element.createElement(\n\t\t\t\t\tPluginSidebar,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'wp-product-review',\n\t\t\t\t\t\ttitle: __('WP Product Review')\n\t\t\t\t\t},\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: __('Product Details'),\n\t\t\t\t\t\t\tclassName: 'wp-product-review-product-details',\n\t\t\t\t\t\t\tinitialOpen: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis.props.postType !== 'wppr_review' && [wp.element.createElement(TextControl, {\n\t\t\t\t\t\t\tlabel: __('Product Name'),\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tvalue: this.state.cwp_rev_product_name,\n\t\t\t\t\t\t\tonChange: this.onChangeReviewTitle\n\t\t\t\t\t\t})],\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'wp-product-review-sidebar-base-control' },\n\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t'label',\n\t\t\t\t\t\t\t\t{ className: 'blocks-base-control__label', 'for': 'inspector-media-upload' },\n\t\t\t\t\t\t\t\t__('Product Image')\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twp.element.createElement(MediaUpload, {\n\t\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\t\tid: 'inspector-media-upload',\n\t\t\t\t\t\t\t\tvalue: this.state.cwp_rev_product_image,\n\t\t\t\t\t\t\t\tonSelect: this.onChangeReviewImage,\n\t\t\t\t\t\t\t\trender: function render(_ref) {\n\t\t\t\t\t\t\t\t\tvar open = _ref.open;\n\t\t\t\t\t\t\t\t\treturn [_this2.state.cwp_rev_product_image !== '' && [wp.element.createElement('img', {\n\t\t\t\t\t\t\t\t\t\tonClick: open,\n\t\t\t\t\t\t\t\t\t\tsrc: _this2.state.cwp_rev_product_image,\n\t\t\t\t\t\t\t\t\t\talt: __('Review image')\n\t\t\t\t\t\t\t\t\t}), wp.element.createElement(\n\t\t\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\t\t\tonClick: function onClick() {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _this2.setState({ cwp_rev_product_image: '' });\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' }\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t__('Remove Image')\n\t\t\t\t\t\t\t\t\t)], wp.element.createElement(\n\t\t\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\t\t\tonClick: open,\n\t\t\t\t\t\t\t\t\t\t\tstyle: { marginTop: '10px' },\n\t\t\t\t\t\t\t\t\t\t\tclassName: _this2.state.cwp_rev_product_image === '' && 'wppr_image_upload'\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t__('Choose or Upload an Image')\n\t\t\t\t\t\t\t\t\t)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t),\n\t\t\t\t\t\twp.element.createElement(SelectControl, {\n\t\t\t\t\t\t\tlabel: __('Product Image Click'),\n\t\t\t\t\t\t\tvalue: this.state.cwp_image_link,\n\t\t\t\t\t\t\toptions: [{\n\t\t\t\t\t\t\t\tlabel: __('Show Whole Image'),\n\t\t\t\t\t\t\t\tvalue: 'image'\n\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\tlabel: __('Open Affiliate Link'),\n\t\t\t\t\t\t\t\tvalue: 'link'\n\t\t\t\t\t\t\t}],\n\t\t\t\t\t\t\tonChange: this.onChangeImageLink\n\t\t\t\t\t\t}),\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'wppr-review-links-list' },\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_links).map(function (key) {\n\t\t\t\t\t\t\t\treturn [wp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\tlabel: __('Affiliate Button Text'),\n\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeReviewAffiliateTitle(e, key);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}), wp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\tlabel: __('Affiliate Button Link'),\n\t\t\t\t\t\t\t\t\ttype: 'url',\n\t\t\t\t\t\t\t\t\tvalue: _this2.state.wppr_links[key],\n\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeReviewAffiliateLink(e, key);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})];\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_links).length < 2 && wp.element.createElement(\n\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\tonClick: this.addButton\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__('Add another button')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\t\t\tlabel: __('Product Price'),\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tvalue: this.state.cwp_rev_price,\n\t\t\t\t\t\t\tonChange: this.onChangeReviewPrice\n\t\t\t\t\t\t})\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: __('Product Options'),\n\t\t\t\t\t\t\tclassName: 'wp-product-review-product-options',\n\t\t\t\t\t\t\tinitialOpen: false\n\t\t\t\t\t\t},\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'wppr-review-options-list' },\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_options).map(function (key) {\n\t\t\t\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'wppr-review-options-item' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'label',\n\t\t\t\t\t\t\t\t\t\t{ 'for': 'wppr-option-item-' + key },\n\t\t\t\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tid: 'wppr-option-item-' + key,\n\t\t\t\t\t\t\t\t\t\tclassName: 'wppr-text',\n\t\t\t\t\t\t\t\t\t\tplaceholder: __('Option'),\n\t\t\t\t\t\t\t\t\t\tvalue: _this2.state.wppr_options[key].name,\n\t\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeOptionText(e, key);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\t\tclassName: 'wppr-text wppr-option-number',\n\t\t\t\t\t\t\t\t\t\tplaceholder: __('0'),\n\t\t\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\t\t\tmax: 100,\n\t\t\t\t\t\t\t\t\t\tvalue: _this2.state.wppr_options[key].value,\n\t\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeOptionNumber(e, key);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_options).length < 5 && wp.element.createElement(\n\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\tonClick: this.addOption\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__('Add another option')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: __('Pro Features'),\n\t\t\t\t\t\t\tclassName: 'wp-product-review-product-pros',\n\t\t\t\t\t\t\tinitialOpen: false\n\t\t\t\t\t\t},\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'wppr-review-pro-list' },\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_pros).map(function (key) {\n\t\t\t\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'wppr-review-pro-item' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'label',\n\t\t\t\t\t\t\t\t\t\t{ 'for': 'wppr-pro-item-' + key },\n\t\t\t\t\t\t\t\t\t\tparseInt(key) + 1\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tid: 'wppr-pro-item-' + key,\n\t\t\t\t\t\t\t\t\t\tclassName: 'wppr-text',\n\t\t\t\t\t\t\t\t\t\tplaceholder: __('Option'),\n\t\t\t\t\t\t\t\t\t\tvalue: _this2.state.wppr_pros[key],\n\t\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeProText(e, key);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_pros).length < 5 && wp.element.createElement(\n\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\tonClick: this.addPro\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__('Add another option')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\tPanelBody,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: __('Con Features'),\n\t\t\t\t\t\t\tclassName: 'wp-product-review-product-cons',\n\t\t\t\t\t\t\tinitialOpen: false\n\t\t\t\t\t\t},\n\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t{ className: 'wppr-review-con-list' },\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_cons).map(function (key) {\n\t\t\t\t\t\t\t\treturn wp.element.createElement(\n\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t{ className: 'wppr-review-con-item' },\n\t\t\t\t\t\t\t\t\twp.element.createElement(\n\t\t\t\t\t\t\t\t\t\t'label',\n\t\t\t\t\t\t\t\t\t\t{ 'for': 'wppr-con-item-' + key },\n\t\t\t\t\t\t\t\t\t\tparseInt(key) + 1\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\twp.element.createElement(TextControl, {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tid: 'wppr-con-item-' + key,\n\t\t\t\t\t\t\t\t\t\tclassName: 'wppr-text',\n\t\t\t\t\t\t\t\t\t\tplaceholder: __('Option'),\n\t\t\t\t\t\t\t\t\t\tvalue: _this2.state.wppr_cons[key],\n\t\t\t\t\t\t\t\t\t\tonChange: function onChange(e) {\n\t\t\t\t\t\t\t\t\t\t\treturn _this2.onChangeConText(e, key);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.state.wppr_cons).length < 5 && wp.element.createElement(\n\t\t\t\t\t\t\t\tButton,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tisLarge: true,\n\t\t\t\t\t\t\t\t\tonClick: this.addCon\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__('Add another option')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)]\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn WP_Product_Review;\n}(Component);\n\nvar WPPR = compose([withSelect(function (select, _ref2) {\n\tvar forceIsSaving = _ref2.forceIsSaving;\n\n\tvar _select = select('core/editor'),\n\t getCurrentPostId = _select.getCurrentPostId,\n\t isSavingPost = _select.isSavingPost,\n\t isPublishingPost = _select.isPublishingPost,\n\t getCurrentPostType = _select.getCurrentPostType;\n\n\treturn {\n\t\tpostId: getCurrentPostId(),\n\t\tpostType: getCurrentPostType(),\n\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\tisPublishing: isPublishingPost()\n\t};\n}), withDispatch(function (dispatch) {\n\treturn {\n\t\topenReviewSidebar: function openReviewSidebar() {\n\t\t\treturn dispatch('core/edit-post').openGeneralSidebar('wp-product-review/wp-product-review');\n\t\t},\n\t\teditPostStatus: dispatch('core/editor').editPost\n\t};\n}), withAPIData(function (props) {\n\treturn {\n\t\treview: '/wp/v2/' + (props.postType === 'wppr_review' ? props.postType : 'posts') + '/' + props.postId\n\t};\n})])(WP_Product_Review);\n\nregisterPlugin('wp-product-review', {\n\ticon: 'star-empty',\n\trender: WPPR\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYmxvY2suanM/MzUyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX09iamVjdCRrZXlzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3Qva2V5cyc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9PYmplY3QkZ2V0UHJvdG90eXBlT2YgZnJvbSAnYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgJy4vc3R5bGUuc2Nzcyc7XG5pbXBvcnQgcmVuYW1lS2V5IGZyb20gJ3JlbmFtZS1rZXknO1xuaW1wb3J0IHsgcmV2ZXJzZU9iamVjdCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xudmFyIF9fID0gd3AuaTE4bi5fXztcbnZhciByZWdpc3RlclBsdWdpbiA9IHdwLnBsdWdpbnMucmVnaXN0ZXJQbHVnaW47XG52YXIgTWVkaWFVcGxvYWQgPSB3cC5lZGl0b3IuTWVkaWFVcGxvYWQ7XG52YXIgX3dwJGRhdGEgPSB3cC5kYXRhLFxuICAgIHdpdGhTZWxlY3QgPSBfd3AkZGF0YS53aXRoU2VsZWN0LFxuICAgIHdpdGhEaXNwYXRjaCA9IF93cCRkYXRhLndpdGhEaXNwYXRjaDtcbnZhciBfd3AkZWRpdFBvc3QgPSB3cC5lZGl0UG9zdCxcbiAgICBQbHVnaW5Qb3N0U3RhdHVzSW5mbyA9IF93cCRlZGl0UG9zdC5QbHVnaW5Qb3N0U3RhdHVzSW5mbyxcbiAgICBQbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtID0gX3dwJGVkaXRQb3N0LlBsdWdpblNpZGViYXJNb3JlTWVudUl0ZW0sXG4gICAgUGx1Z2luU2lkZWJhciA9IF93cCRlZGl0UG9zdC5QbHVnaW5TaWRlYmFyO1xudmFyIF93cCRlbGVtZW50ID0gd3AuZWxlbWVudCxcbiAgICBDb21wb25lbnQgPSBfd3AkZWxlbWVudC5Db21wb25lbnQsXG4gICAgRnJhZ21lbnQgPSBfd3AkZWxlbWVudC5GcmFnbWVudCxcbiAgICBjb21wb3NlID0gX3dwJGVsZW1lbnQuY29tcG9zZTtcbnZhciBfd3AkY29tcG9uZW50cyA9IHdwLmNvbXBvbmVudHMsXG4gICAgUGFuZWxCb2R5ID0gX3dwJGNvbXBvbmVudHMuUGFuZWxCb2R5LFxuICAgIFRleHRDb250cm9sID0gX3dwJGNvbXBvbmVudHMuVGV4dENvbnRyb2wsXG4gICAgRm9ybVRvZ2dsZSA9IF93cCRjb21wb25lbnRzLkZvcm1Ub2dnbGUsXG4gICAgQnV0dG9uID0gX3dwJGNvbXBvbmVudHMuQnV0dG9uLFxuICAgIFNlbGVjdENvbnRyb2wgPSBfd3AkY29tcG9uZW50cy5TZWxlY3RDb250cm9sLFxuICAgIHdpdGhBUElEYXRhID0gX3dwJGNvbXBvbmVudHMud2l0aEFQSURhdGE7XG5cbnZhciBXUF9Qcm9kdWN0X1JldmlldyA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG5cdF9pbmhlcml0cyhXUF9Qcm9kdWN0X1JldmlldywgX0NvbXBvbmVudCk7XG5cblx0ZnVuY3Rpb24gV1BfUHJvZHVjdF9SZXZpZXcoKSB7XG5cdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIFdQX1Byb2R1Y3RfUmV2aWV3KTtcblxuXHRcdHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChXUF9Qcm9kdWN0X1Jldmlldy5fX3Byb3RvX18gfHwgX09iamVjdCRnZXRQcm90b3R5cGVPZihXUF9Qcm9kdWN0X1JldmlldykpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuXG5cdFx0X3RoaXMudG9nZ2xlUmV2aWV3U3RhdHVzID0gX3RoaXMudG9nZ2xlUmV2aWV3U3RhdHVzLmJpbmQoX3RoaXMpO1xuXHRcdF90aGlzLm9uQ2hhbmdlUmV2aWV3VGl0bGUgPSBfdGhpcy5vbkNoYW5nZVJldmlld1RpdGxlLmJpbmQoX3RoaXMpO1xuXHRcdF90aGlzLm9uQ2hhbmdlUmV2aWV3SW1hZ2UgPSBfdGhpcy5vbkNoYW5nZVJldmlld0ltYWdlLmJpbmQoX3RoaXMpO1xuXHRcdF90aGlzLm9uQ2hhbmdlSW1hZ2VMaW5rID0gX3RoaXMub25DaGFuZ2VJbWFnZUxpbmsuYmluZChfdGhpcyk7XG5cdFx0X3RoaXMub25DaGFuZ2VSZXZpZXdBZmZpbGlhdGVUaXRsZSA9IF90aGlzLm9uQ2hhbmdlUmV2aWV3QWZmaWxpYXRlVGl0bGUuYmluZChfdGhpcyk7XG5cdFx0X3RoaXMub25DaGFuZ2VSZXZpZXdBZmZpbGlhdGVMaW5rID0gX3RoaXMub25DaGFuZ2VSZXZpZXdBZmZpbGlhdGVMaW5rLmJpbmQoX3RoaXMpO1xuXHRcdF90aGlzLmFkZEJ1dHRvbiA9IF90aGlzLmFkZEJ1dHRvbi5iaW5kKF90aGlzKTtcblx0XHRfdGhpcy5vbkNoYW5nZVJldmlld1ByaWNlID0gX3RoaXMub25DaGFuZ2VSZXZpZXdQcmljZS5iaW5kKF90aGlzKTtcblx0XHRfdGhpcy5vbkNoYW5nZU9wdGlvblRleHQgPSBfdGhpcy5vbkNoYW5nZU9wdGlvblRleHQuYmluZChfdGhpcyk7XG5cdFx0X3RoaXMub25DaGFuZ2VPcHRpb25OdW1iZXIgPSBfdGhpcy5vbkNoYW5nZU9wdGlvbk51bWJlci5iaW5kKF90aGlzKTtcblx0XHRfdGhpcy5hZGRPcHRpb24gPSBfdGhpcy5hZGRPcHRpb24uYmluZChfdGhpcyk7XG5cdFx0X3RoaXMub25DaGFuZ2VQcm9UZXh0ID0gX3RoaXMub25DaGFuZ2VQcm9UZXh0LmJpbmQoX3RoaXMpO1xuXHRcdF90aGlzLmFkZFBybyA9IF90aGlzLmFkZFByby5iaW5kKF90aGlzKTtcblx0XHRfdGhpcy5vbkNoYW5nZUNvblRleHQgPSBfdGhpcy5vbkNoYW5nZUNvblRleHQuYmluZChfdGhpcyk7XG5cdFx0X3RoaXMuYWRkQ29uID0gX3RoaXMuYWRkQ29uLmJpbmQoX3RoaXMpO1xuXG5cdFx0X3RoaXMuc3RhdGUgPSB7XG5cdFx0XHRjd3BfbWV0YV9ib3hfY2hlY2s6ICdObycsXG5cdFx0XHRjd3BfcmV2X3Byb2R1Y3RfbmFtZTogJycsXG5cdFx0XHRfd3Bwcl9yZXZpZXdfdGVtcGxhdGU6ICdkZWZhdWx0Jyxcblx0XHRcdGN3cF9yZXZfcHJvZHVjdF9pbWFnZTogJycsXG5cdFx0XHRjd3BfaW1hZ2VfbGluazogJ2ltYWdlJyxcblx0XHRcdHdwcHJfbGlua3M6IHtcblx0XHRcdFx0Jyc6ICcnXG5cdFx0XHR9LFxuXHRcdFx0Y3dwX3Jldl9wcmljZTogJycsXG5cdFx0XHR3cHByX29wdGlvbnM6IHtcblx0XHRcdFx0MToge1xuXHRcdFx0XHRcdG5hbWU6ICcnLFxuXHRcdFx0XHRcdHZhbHVlOiAwXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR3cHByX3Byb3M6IHtcblx0XHRcdFx0MDogJydcblx0XHRcdH0sXG5cdFx0XHR3cHByX2NvbnM6IHtcblx0XHRcdFx0MDogJydcblx0XHRcdH1cblx0XHR9O1xuXHRcdHJldHVybiBfdGhpcztcblx0fVxuXG5cdF9jcmVhdGVDbGFzcyhXUF9Qcm9kdWN0X1JldmlldywgW3tcblx0XHRrZXk6ICdjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJyxcblx0XHR2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcblx0XHRcdGlmICh0aGlzLnByb3BzLnJldmlldyAhPT0gbmV4dFByb3BzLnJldmlldykge1xuXHRcdFx0XHRpZiAobmV4dFByb3BzLnJldmlldy5pc0xvYWRpbmcgIT09IHRydWUpIHtcblx0XHRcdFx0XHR0aGlzLnNldFN0YXRlKF9leHRlbmRzKHt9LCBuZXh0UHJvcHMucmV2aWV3LmRhdGEud3Bwcl9kYXRhKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChuZXh0UHJvcHMuaXNQdWJsaXNoaW5nIHx8IG5leHRQcm9wcy5pc1NhdmluZykge1xuXHRcdFx0XHR3cC5hcGlSZXF1ZXN0KHsgcGF0aDogJy93cC1wcm9kdWN0LXJldmlldy91cGRhdGUtcmV2aWV3P2lkPScgKyBuZXh0UHJvcHMucG9zdElkICsgJyZwb3N0VHlwZT0nICsgbmV4dFByb3BzLnBvc3RUeXBlLCBtZXRob2Q6ICdQT1NUJywgZGF0YTogdGhpcy5zdGF0ZSB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH0sIGZ1bmN0aW9uIChlcnIpIHtcblx0XHRcdFx0XHRyZXR1cm4gZXJyO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdjb21wb25lbnREaWRVcGRhdGUnLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlN0YXRlKSB7XG5cdFx0XHRpZiAodGhpcy5zdGF0ZS5jd3BfbWV0YV9ib3hfY2hlY2sgIT09IHByZXZTdGF0ZS5jd3BfbWV0YV9ib3hfY2hlY2sgJiYgdGhpcy5zdGF0ZS5jd3BfbWV0YV9ib3hfY2hlY2sgPT09ICdZZXMnKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMub3BlblJldmlld1NpZGViYXIoKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICd0b2dnbGVSZXZpZXdTdGF0dXMnLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiB0b2dnbGVSZXZpZXdTdGF0dXMoKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgY3dwX21ldGFfYm94X2NoZWNrOiB0aGlzLnN0YXRlLmN3cF9tZXRhX2JveF9jaGVjayA9PT0gJ1llcycgPyAnTm8nIDogJ1llcycgfSk7XG5cdFx0XHR0aGlzLnByb3BzLmVkaXRQb3N0U3RhdHVzKHsgZWRpdGVkOiB0cnVlIH0pO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogJ29uQ2hhbmdlUmV2aWV3VGl0bGUnLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBvbkNoYW5nZVJldmlld1RpdGxlKHZhbHVlKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgY3dwX3Jldl9wcm9kdWN0X25hbWU6IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZVJldmlld0ltYWdlJyxcblx0XHR2YWx1ZTogZnVuY3Rpb24gb25DaGFuZ2VSZXZpZXdJbWFnZSh2YWx1ZSkge1xuXHRcdFx0aWYgKHZhbHVlLnVybCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnVybCAhPT0gJycpIHtcblx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IGN3cF9yZXZfcHJvZHVjdF9pbWFnZTogdmFsdWUudXJsIH0pO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZS5pZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoeyBjd3BfcmV2X3Byb2R1Y3RfaW1hZ2U6IHZhbHVlLmlkIH0pO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZUltYWdlTGluaycsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIG9uQ2hhbmdlSW1hZ2VMaW5rKHZhbHVlKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgY3dwX2ltYWdlX2xpbms6IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZVJldmlld0FmZmlsaWF0ZVRpdGxlJyxcblx0XHR2YWx1ZTogZnVuY3Rpb24gb25DaGFuZ2VSZXZpZXdBZmZpbGlhdGVUaXRsZShlLCBrZXkpIHtcblx0XHRcdHZhciB3cHByX2xpbmtzID0gX2V4dGVuZHMoe30sIHRoaXMuc3RhdGUud3Bwcl9saW5rcyk7XG5cdFx0XHRpZiAoX09iamVjdCRrZXlzKHRoaXMuc3RhdGUud3Bwcl9saW5rcykubGVuZ3RoID09PSAyKSB7XG5cdFx0XHRcdGlmIChlID09PSBfT2JqZWN0JGtleXMod3Bwcl9saW5rcylbMF0gfHwgZSA9PT0gX09iamVjdCRrZXlzKHdwcHJfbGlua3MpWzFdKSB7XG5cdFx0XHRcdFx0ZSA9IGUgKyAnICc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChfT2JqZWN0JGtleXMod3Bwcl9saW5rcylbMF0gPT09IGtleSkge1xuXHRcdFx0XHRyZW5hbWVLZXkod3Bwcl9saW5rcywga2V5LCBlKTtcblx0XHRcdFx0d3Bwcl9saW5rcyA9IHJldmVyc2VPYmplY3Qod3Bwcl9saW5rcyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZW5hbWVLZXkod3Bwcl9saW5rcywga2V5LCBlKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuc2V0U3RhdGUoeyB3cHByX2xpbmtzOiB3cHByX2xpbmtzIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZVJldmlld0FmZmlsaWF0ZUxpbmsnLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBvbkNoYW5nZVJldmlld0FmZmlsaWF0ZUxpbmsoZSwga2V5KSB7XG5cdFx0XHR2YXIgd3Bwcl9saW5rcyA9IF9leHRlbmRzKHt9LCB0aGlzLnN0YXRlLndwcHJfbGlua3MpO1xuXHRcdFx0d3Bwcl9saW5rc1trZXldID0gZTtcblx0XHRcdHRoaXMuc2V0U3RhdGUoeyB3cHByX2xpbmtzOiB3cHByX2xpbmtzIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdhZGRCdXR0b24nLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBhZGRCdXR0b24oKSB7XG5cdFx0XHR2YXIgd3Bwcl9saW5rcyA9IF9leHRlbmRzKHt9LCB0aGlzLnN0YXRlLndwcHJfbGlua3MpO1xuXHRcdFx0d3Bwcl9saW5rc1snQnV5IE5vdyddID0gJyc7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgd3Bwcl9saW5rczogd3Bwcl9saW5rcyB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZVJldmlld1ByaWNlJyxcblx0XHR2YWx1ZTogZnVuY3Rpb24gb25DaGFuZ2VSZXZpZXdQcmljZSh2YWx1ZSkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7IGN3cF9yZXZfcHJpY2U6IHZhbHVlIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZU9wdGlvblRleHQnLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBvbkNoYW5nZU9wdGlvblRleHQoZSwga2V5KSB7XG5cdFx0XHR2YXIgd3Bwcl9vcHRpb25zID0gX2V4dGVuZHMoe30sIHRoaXMuc3RhdGUud3Bwcl9vcHRpb25zKTtcblx0XHRcdHdwcHJfb3B0aW9uc1trZXldWyduYW1lJ10gPSBlO1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHdwcHJfb3B0aW9uczogd3Bwcl9vcHRpb25zIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdvbkNoYW5nZU9wdGlvbk51bWJlcicsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIG9uQ2hhbmdlT3B0aW9uTnVtYmVyKGUsIGtleSkge1xuXHRcdFx0dmFyIHdwcHJfb3B0aW9ucyA9IF9leHRlbmRzKHt9LCB0aGlzLnN0YXRlLndwcHJfb3B0aW9ucyk7XG5cdFx0XHRpZiAoZSA9PT0gJycpIGUgPSAwO1xuXHRcdFx0d3Bwcl9vcHRpb25zW2tleV1bJ3ZhbHVlJ10gPSBlO1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHdwcHJfb3B0aW9uczogd3Bwcl9vcHRpb25zIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdhZGRPcHRpb24nLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBhZGRPcHRpb24oKSB7XG5cdFx0XHR2YXIga2V5ID0gX09iamVjdCRrZXlzKHRoaXMuc3RhdGUud3Bwcl9vcHRpb25zKS5sZW5ndGggKyAxO1xuXHRcdFx0dmFyIHdwcHJfb3B0aW9ucyA9IF9leHRlbmRzKHt9LCB0aGlzLnN0YXRlLndwcHJfb3B0aW9ucyk7XG5cdFx0XHR3cHByX29wdGlvbnNba2V5XSA9IHtcblx0XHRcdFx0bmFtZTogJycsXG5cdFx0XHRcdHZhbHVlOiAwXG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHdwcHJfb3B0aW9uczogd3Bwcl9vcHRpb25zIH0pO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogJ29uQ2hhbmdlUHJvVGV4dCcsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIG9uQ2hhbmdlUHJvVGV4dChlLCBrZXkpIHtcblx0XHRcdHZhciB3cHByX3Byb3MgPSBfZXh0ZW5kcyh7fSwgdGhpcy5zdGF0ZS53cHByX3Byb3MpO1xuXHRcdFx0d3Bwcl9wcm9zW2tleV0gPSBlO1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHdwcHJfcHJvczogd3Bwcl9wcm9zIH0pO1xuXHRcdFx0dGhpcy5wcm9wcy5lZGl0UG9zdFN0YXR1cyh7IGVkaXRlZDogdHJ1ZSB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdhZGRQcm8nLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiBhZGRQcm8oKSB7XG5cdFx0XHR2YXIga2V5ID0gX09iamVjdCRrZXlzKHRoaXMuc3RhdGUud3Bwcl9wcm9zKS5sZW5ndGg7XG5cdFx0XHR2YXIgd3Bwcl9wcm9zID0gX2V4dGVuZHMoe30sIHRoaXMuc3RhdGUud3Bwcl9wcm9zKTtcblx0XHRcdHdwcHJfcHJvc1trZXldID0gJyc7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgd3Bwcl9wcm9zOiB3cHByX3Byb3MgfSk7XG5cdFx0fVxuXHR9LCB7XG5cdFx0a2V5OiAnb25DaGFuZ2VDb25UZXh0Jyxcblx0XHR2YWx1ZTogZnVuY3Rpb24gb25DaGFuZ2VDb25UZXh0KGUsIGtleSkge1xuXHRcdFx0dmFyIHdwcHJfY29ucyA9IF9leHRlbmRzKHt9LCB0aGlzLnN0YXRlLndwcHJfY29ucyk7XG5cdFx0XHR3cHByX2NvbnNba2V5XSA9IGU7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHsgd3Bwcl9jb25zOiB3cHByX2NvbnMgfSk7XG5cdFx0XHR0aGlzLnByb3BzLmVkaXRQb3N0U3RhdHVzKHsgZWRpdGVkOiB0cnVlIH0pO1xuXHRcdH1cblx0fSwge1xuXHRcdGtleTogJ2FkZENvbicsXG5cdFx0dmFsdWU6IGZ1bmN0aW9uIGFkZENvbigpIHtcblx0XHRcdHZhciBrZXkgPSBfT2JqZWN0JGtleXModGhpcy5zdGF0ZS53cHByX2NvbnMpLmxlbmd0aDtcblx0XHRcdHZhciB3cHByX2NvbnMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5zdGF0ZS53cHByX2NvbnMpO1xuXHRcdFx0d3Bwcl9jb25zW2tleV0gPSAnJztcblx0XHRcdHRoaXMuc2V0U3RhdGUoeyB3cHByX2NvbnM6IHdwcHJfY29ucyB9KTtcblx0XHR9XG5cdH0sIHtcblx0XHRrZXk6ICdyZW5kZXInLFxuXHRcdHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cdFx0XHR2YXIgX3RoaXMyID0gdGhpcztcblxuXHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0RnJhZ21lbnQsXG5cdFx0XHRcdG51bGwsXG5cdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRQbHVnaW5Qb3N0U3RhdHVzSW5mbyxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdCdsYWJlbCcsXG5cdFx0XHRcdFx0XHR7IGh0bWxGb3I6ICdpcy10aGlzLWEtcmV2aWV3JyB9LFxuXHRcdFx0XHRcdFx0X18oJ0lzIHRoaXMgcG9zdCBhIHJldmlldz8nKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KEZvcm1Ub2dnbGUsIHtcblx0XHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuc3RhdGUuY3dwX21ldGFfYm94X2NoZWNrID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcblx0XHRcdFx0XHRcdG9uQ2hhbmdlOiB0aGlzLnRvZ2dsZVJldmlld1N0YXR1cyxcblx0XHRcdFx0XHRcdGlkOiAnaXMtdGhpcy1hLXJldmlldydcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHQpLFxuXHRcdFx0XHR0aGlzLnN0YXRlLmN3cF9tZXRhX2JveF9jaGVjayA9PT0gJ1llcycgJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRQbHVnaW5TaWRlYmFyTW9yZU1lbnVJdGVtLFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHRhcmdldDogJ3dwLXByb2R1Y3QtcmV2aWV3J1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0X18oJ1dQIFByb2R1Y3QgUmV2aWV3Jylcblx0XHRcdFx0KSwgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFBsdWdpblNpZGViYXIsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJ3dwLXByb2R1Y3QtcmV2aWV3Jyxcblx0XHRcdFx0XHRcdHRpdGxlOiBfXygnV1AgUHJvZHVjdCBSZXZpZXcnKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogX18oJ1Byb2R1Y3QgRGV0YWlscycpLFxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU6ICd3cC1wcm9kdWN0LXJldmlldy1wcm9kdWN0LWRldGFpbHMnLFxuXHRcdFx0XHRcdFx0XHRpbml0aWFsT3BlbjogdHJ1ZVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHRoaXMucHJvcHMucG9zdFR5cGUgIT09ICd3cHByX3JldmlldycgJiYgW3dwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogX18oJ1Byb2R1Y3QgTmFtZScpLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRcdHZhbHVlOiB0aGlzLnN0YXRlLmN3cF9yZXZfcHJvZHVjdF9uYW1lLFxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogdGhpcy5vbkNoYW5nZVJldmlld1RpdGxlXG5cdFx0XHRcdFx0XHR9KV0sXG5cdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3dwLXByb2R1Y3QtcmV2aWV3LXNpZGViYXItYmFzZS1jb250cm9sJyB9LFxuXHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0J2xhYmVsJyxcblx0XHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ2Jsb2Nrcy1iYXNlLWNvbnRyb2xfX2xhYmVsJywgJ2Zvcic6ICdpbnNwZWN0b3ItbWVkaWEtdXBsb2FkJyB9LFxuXHRcdFx0XHRcdFx0XHRcdF9fKCdQcm9kdWN0IEltYWdlJylcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KE1lZGlhVXBsb2FkLCB7XG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogJ2ltYWdlJyxcblx0XHRcdFx0XHRcdFx0XHRpZDogJ2luc3BlY3Rvci1tZWRpYS11cGxvYWQnLFxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlOiB0aGlzLnN0YXRlLmN3cF9yZXZfcHJvZHVjdF9pbWFnZSxcblx0XHRcdFx0XHRcdFx0XHRvblNlbGVjdDogdGhpcy5vbkNoYW5nZVJldmlld0ltYWdlLFxuXHRcdFx0XHRcdFx0XHRcdHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKF9yZWYpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBvcGVuID0gX3JlZi5vcGVuO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFtfdGhpczIuc3RhdGUuY3dwX3Jldl9wcm9kdWN0X2ltYWdlICE9PSAnJyAmJiBbd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KCdpbWcnLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IG9wZW4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNyYzogX3RoaXMyLnN0YXRlLmN3cF9yZXZfcHJvZHVjdF9pbWFnZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0OiBfXygnUmV2aWV3IGltYWdlJylcblx0XHRcdFx0XHRcdFx0XHRcdH0pLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczIuc2V0U3RhdGUoeyBjd3BfcmV2X3Byb2R1Y3RfaW1hZ2U6ICcnIH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU6IHsgbWFyZ2luVG9wOiAnMTBweCcgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRfXygnUmVtb3ZlIEltYWdlJylcblx0XHRcdFx0XHRcdFx0XHRcdCldLCB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DbGljazogb3Blbixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZTogeyBtYXJnaW5Ub3A6ICcxMHB4JyB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZTogX3RoaXMyLnN0YXRlLmN3cF9yZXZfcHJvZHVjdF9pbWFnZSA9PT0gJycgJiYgJ3dwcHJfaW1hZ2VfdXBsb2FkJ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRfXygnQ2hvb3NlIG9yIFVwbG9hZCBhbiBJbWFnZScpXG5cdFx0XHRcdFx0XHRcdFx0XHQpXTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFNlbGVjdENvbnRyb2wsIHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCdQcm9kdWN0IEltYWdlIENsaWNrJyksXG5cdFx0XHRcdFx0XHRcdHZhbHVlOiB0aGlzLnN0YXRlLmN3cF9pbWFnZV9saW5rLFxuXHRcdFx0XHRcdFx0XHRvcHRpb25zOiBbe1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXygnU2hvdyBXaG9sZSBJbWFnZScpLFxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlOiAnaW1hZ2UnXG5cdFx0XHRcdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRcdFx0XHRsYWJlbDogX18oJ09wZW4gQWZmaWxpYXRlIExpbmsnKSxcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogJ2xpbmsnXG5cdFx0XHRcdFx0XHRcdH1dLFxuXHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogdGhpcy5vbkNoYW5nZUltYWdlTGlua1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3dwcHItcmV2aWV3LWxpbmtzLWxpc3QnIH0sXG5cdFx0XHRcdFx0XHRcdF9PYmplY3Qka2V5cyh0aGlzLnN0YXRlLndwcHJfbGlua3MpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFt3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBfXygnQWZmaWxpYXRlIEJ1dHRvbiBUZXh0JyksXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZToga2V5LFxuXHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzMi5vbkNoYW5nZVJldmlld0FmZmlsaWF0ZVRpdGxlKGUsIGtleSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSksIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGFiZWw6IF9fKCdBZmZpbGlhdGUgQnV0dG9uIExpbmsnKSxcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICd1cmwnLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IF90aGlzMi5zdGF0ZS53cHByX2xpbmtzW2tleV0sXG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMyLm9uQ2hhbmdlUmV2aWV3QWZmaWxpYXRlTGluayhlLCBrZXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0pXTtcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdF9PYmplY3Qka2V5cyh0aGlzLnN0YXRlLndwcHJfbGlua3MpLmxlbmd0aCA8IDIgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0b25DbGljazogdGhpcy5hZGRCdXR0b25cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdF9fKCdBZGQgYW5vdGhlciBidXR0b24nKVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdFx0XHRcdGxhYmVsOiBfXygnUHJvZHVjdCBQcmljZScpLFxuXHRcdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRcdHZhbHVlOiB0aGlzLnN0YXRlLmN3cF9yZXZfcHJpY2UsXG5cdFx0XHRcdFx0XHRcdG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlUmV2aWV3UHJpY2Vcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRQYW5lbEJvZHksXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBfXygnUHJvZHVjdCBPcHRpb25zJyksXG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZTogJ3dwLXByb2R1Y3QtcmV2aWV3LXByb2R1Y3Qtb3B0aW9ucycsXG5cdFx0XHRcdFx0XHRcdGluaXRpYWxPcGVuOiBmYWxzZVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0J2RpdicsXG5cdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnd3Bwci1yZXZpZXctb3B0aW9ucy1saXN0JyB9LFxuXHRcdFx0XHRcdFx0XHRfT2JqZWN0JGtleXModGhpcy5zdGF0ZS53cHByX29wdGlvbnMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICd3cHByLXJldmlldy1vcHRpb25zLWl0ZW0nIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdsYWJlbCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgJ2Zvcic6ICd3cHByLW9wdGlvbi1pdGVtLScgKyBrZXkgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0a2V5XG5cdFx0XHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFRleHRDb250cm9sLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6ICd0ZXh0Jyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWQ6ICd3cHByLW9wdGlvbi1pdGVtLScgKyBrZXksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZTogJ3dwcHItdGV4dCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyOiBfXygnT3B0aW9uJyksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBfdGhpczIuc3RhdGUud3Bwcl9vcHRpb25zW2tleV0ubmFtZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMyLm9uQ2hhbmdlT3B0aW9uVGV4dChlLCBrZXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAnbnVtYmVyJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lOiAnd3Bwci10ZXh0IHdwcHItb3B0aW9uLW51bWJlcicsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyOiBfXygnMCcpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtaW46IDAsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1heDogMTAwLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogX3RoaXMyLnN0YXRlLndwcHJfb3B0aW9uc1trZXldLnZhbHVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczIub25DaGFuZ2VPcHRpb25OdW1iZXIoZSwga2V5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRcdFx0X09iamVjdCRrZXlzKHRoaXMuc3RhdGUud3Bwcl9vcHRpb25zKS5sZW5ndGggPCA1ICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRCdXR0b24sXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0aXNMYXJnZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s6IHRoaXMuYWRkT3B0aW9uXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRfXygnQWRkIGFub3RoZXIgb3B0aW9uJylcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0UGFuZWxCb2R5LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogX18oJ1BybyBGZWF0dXJlcycpLFxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWU6ICd3cC1wcm9kdWN0LXJldmlldy1wcm9kdWN0LXByb3MnLFxuXHRcdFx0XHRcdFx0XHRpbml0aWFsT3BlbjogZmFsc2Vcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHR7IGNsYXNzTmFtZTogJ3dwcHItcmV2aWV3LXByby1saXN0JyB9LFxuXHRcdFx0XHRcdFx0XHRfT2JqZWN0JGtleXModGhpcy5zdGF0ZS53cHByX3Byb3MpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdCdkaXYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICd3cHByLXJldmlldy1wcm8taXRlbScgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFx0XHRcdFx0J2xhYmVsJyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyAnZm9yJzogJ3dwcHItcHJvLWl0ZW0tJyArIGtleSB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXJzZUludChrZXkpICsgMVxuXHRcdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChUZXh0Q29udHJvbCwge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiAndGV4dCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlkOiAnd3Bwci1wcm8taXRlbS0nICsga2V5LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU6ICd3cHByLXRleHQnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcjogX18oJ09wdGlvbicpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTogX3RoaXMyLnN0YXRlLndwcHJfcHJvc1trZXldLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczIub25DaGFuZ2VQcm9UZXh0KGUsIGtleSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRcdF9PYmplY3Qka2V5cyh0aGlzLnN0YXRlLndwcHJfcHJvcykubGVuZ3RoIDwgNSAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0QnV0dG9uLFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdGlzTGFyZ2U6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0XHRvbkNsaWNrOiB0aGlzLmFkZFByb1xuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0X18oJ0FkZCBhbm90aGVyIG9wdGlvbicpXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcblx0XHRcdFx0XHRcdFBhbmVsQm9keSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0dGl0bGU6IF9fKCdDb24gRmVhdHVyZXMnKSxcblx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lOiAnd3AtcHJvZHVjdC1yZXZpZXctcHJvZHVjdC1jb25zJyxcblx0XHRcdFx0XHRcdFx0aW5pdGlhbE9wZW46IGZhbHNlXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0d3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0eyBjbGFzc05hbWU6ICd3cHByLXJldmlldy1jb24tbGlzdCcgfSxcblx0XHRcdFx0XHRcdFx0X09iamVjdCRrZXlzKHRoaXMuc3RhdGUud3Bwcl9jb25zKS5tYXAoZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHQnZGl2Jyxcblx0XHRcdFx0XHRcdFx0XHRcdHsgY2xhc3NOYW1lOiAnd3Bwci1yZXZpZXctY29uLWl0ZW0nIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdsYWJlbCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgJ2Zvcic6ICd3cHByLWNvbi1pdGVtLScgKyBrZXkgfSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2VJbnQoa2V5KSArIDFcblx0XHRcdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFx0XHR3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoVGV4dENvbnRyb2wsIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogJ3RleHQnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZDogJ3dwcHItY29uLWl0ZW0tJyArIGtleSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lOiAnd3Bwci10ZXh0Jyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI6IF9fKCdPcHRpb24nKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IF90aGlzMi5zdGF0ZS53cHByX2NvbnNba2V5XSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0b25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMyLm9uQ2hhbmdlQ29uVGV4dChlLCBrZXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHRfT2JqZWN0JGtleXModGhpcy5zdGF0ZS53cHByX2NvbnMpLmxlbmd0aCA8IDUgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuXHRcdFx0XHRcdFx0XHRcdEJ1dHRvbixcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc0xhcmdlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0b25DbGljazogdGhpcy5hZGRDb25cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdF9fKCdBZGQgYW5vdGhlciBvcHRpb24nKVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXVxuXHRcdFx0KTtcblx0XHR9XG5cdH1dKTtcblxuXHRyZXR1cm4gV1BfUHJvZHVjdF9SZXZpZXc7XG59KENvbXBvbmVudCk7XG5cbnZhciBXUFBSID0gY29tcG9zZShbd2l0aFNlbGVjdChmdW5jdGlvbiAoc2VsZWN0LCBfcmVmMikge1xuXHR2YXIgZm9yY2VJc1NhdmluZyA9IF9yZWYyLmZvcmNlSXNTYXZpbmc7XG5cblx0dmFyIF9zZWxlY3QgPSBzZWxlY3QoJ2NvcmUvZWRpdG9yJyksXG5cdCAgICBnZXRDdXJyZW50UG9zdElkID0gX3NlbGVjdC5nZXRDdXJyZW50UG9zdElkLFxuXHQgICAgaXNTYXZpbmdQb3N0ID0gX3NlbGVjdC5pc1NhdmluZ1Bvc3QsXG5cdCAgICBpc1B1Ymxpc2hpbmdQb3N0ID0gX3NlbGVjdC5pc1B1Ymxpc2hpbmdQb3N0LFxuXHQgICAgZ2V0Q3VycmVudFBvc3RUeXBlID0gX3NlbGVjdC5nZXRDdXJyZW50UG9zdFR5cGU7XG5cblx0cmV0dXJuIHtcblx0XHRwb3N0SWQ6IGdldEN1cnJlbnRQb3N0SWQoKSxcblx0XHRwb3N0VHlwZTogZ2V0Q3VycmVudFBvc3RUeXBlKCksXG5cdFx0aXNTYXZpbmc6IGZvcmNlSXNTYXZpbmcgfHwgaXNTYXZpbmdQb3N0KCksXG5cdFx0aXNQdWJsaXNoaW5nOiBpc1B1Ymxpc2hpbmdQb3N0KClcblx0fTtcbn0pLCB3aXRoRGlzcGF0Y2goZnVuY3Rpb24gKGRpc3BhdGNoKSB7XG5cdHJldHVybiB7XG5cdFx0b3BlblJldmlld1NpZGViYXI6IGZ1bmN0aW9uIG9wZW5SZXZpZXdTaWRlYmFyKCkge1xuXHRcdFx0cmV0dXJuIGRpc3BhdGNoKCdjb3JlL2VkaXQtcG9zdCcpLm9wZW5HZW5lcmFsU2lkZWJhcignd3AtcHJvZHVjdC1yZXZpZXcvd3AtcHJvZHVjdC1yZXZpZXcnKTtcblx0XHR9LFxuXHRcdGVkaXRQb3N0U3RhdHVzOiBkaXNwYXRjaCgnY29yZS9lZGl0b3InKS5lZGl0UG9zdFxuXHR9O1xufSksIHdpdGhBUElEYXRhKGZ1bmN0aW9uIChwcm9wcykge1xuXHRyZXR1cm4ge1xuXHRcdHJldmlldzogJy93cC92Mi8nICsgKHByb3BzLnBvc3RUeXBlID09PSAnd3Bwcl9yZXZpZXcnID8gcHJvcHMucG9zdFR5cGUgOiAncG9zdHMnKSArICcvJyArIHByb3BzLnBvc3RJZFxuXHR9O1xufSldKShXUF9Qcm9kdWN0X1Jldmlldyk7XG5cbnJlZ2lzdGVyUGx1Z2luKCd3cC1wcm9kdWN0LXJldmlldycsIHtcblx0aWNvbjogJ3N0YXItZW1wdHknLFxuXHRyZW5kZXI6IFdQUFJcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2Jsb2NrLmpzXG4vLyBtb2R1bGUgaWQgPSA0M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///43\n");
332
+
333
+ /***/ }),
334
+ /* 44 */
335
+ /***/ (function(module, exports, __webpack_require__) {
336
+
337
+ eval("module.exports = { \"default\": __webpack_require__(45), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9rZXlzLmpzPzdkOTgiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9rZXlzXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///44\n");
338
+
339
+ /***/ }),
340
+ /* 45 */
341
+ /***/ (function(module, exports, __webpack_require__) {
342
+
343
+ eval("__webpack_require__(46);\nmodule.exports = __webpack_require__(0).Object.keys;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9rZXlzLmpzPzhjNTYiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmtleXMnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5rZXlzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA0NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///45\n");
344
+
345
+ /***/ }),
346
+ /* 46 */
347
+ /***/ (function(module, exports, __webpack_require__) {
348
+
349
+ eval("// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(13);\nvar $keys = __webpack_require__(11);\n\n__webpack_require__(33)('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5rZXlzLmpzPzA5ZGMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgna2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtleXMoaXQpIHtcbiAgICByZXR1cm4gJGtleXModG9PYmplY3QoaXQpKTtcbiAgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///46\n");
350
+
351
+ /***/ }),
352
+ /* 47 */
353
+ /***/ (function(module, exports, __webpack_require__) {
354
+
355
+ eval("// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(6);\nvar toLength = __webpack_require__(48);\nvar toAbsoluteIndex = __webpack_require__(49);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzP2JjNTciXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanNcbi8vIG1vZHVsZSBpZCA9IDQ3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///47\n");
356
+
357
+ /***/ }),
358
+ /* 48 */
359
+ /***/ (function(module, exports, __webpack_require__) {
360
+
361
+ eval("// 7.1.15 ToLength\nvar toInteger = __webpack_require__(19);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcz80MTExIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///48\n");
362
+
363
+ /***/ }),
364
+ /* 49 */
365
+ /***/ (function(module, exports, __webpack_require__) {
366
+
367
+ eval("var toInteger = __webpack_require__(19);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzPzdlNDAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///49\n");
368
+
369
+ /***/ }),
370
+ /* 50 */
371
+ /***/ (function(module, exports) {
372
+
373
+ eval("module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanM/OTRlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYS1mdW5jdGlvbi5qc1xuLy8gbW9kdWxlIGlkID0gNTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///50\n");
374
+
375
+ /***/ }),
376
+ /* 51 */
377
+ /***/ (function(module, exports, __webpack_require__) {
378
+
379
+ "use strict";
380
+ eval("\n\nexports.__esModule = true;\n\nvar _assign = __webpack_require__(52);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMuanM/MGRkZiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvYXNzaWduXCIpO1xuXG52YXIgX2Fzc2lnbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hc3NpZ24pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBfYXNzaWduMi5kZWZhdWx0IHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qc1xuLy8gbW9kdWxlIGlkID0gNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n");
381
+
382
+ /***/ }),
383
+ /* 52 */
384
+ /***/ (function(module, exports, __webpack_require__) {
385
+
386
+ eval("module.exports = { \"default\": __webpack_require__(53), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9hc3NpZ24uanM/YzI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnblwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSA1MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///52\n");
387
+
388
+ /***/ }),
389
+ /* 53 */
390
+ /***/ (function(module, exports, __webpack_require__) {
391
+
392
+ eval("__webpack_require__(54);\nmodule.exports = __webpack_require__(0).Object.assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanM/NTc3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3QuYXNzaWduO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///53\n");
393
+
394
+ /***/ }),
395
+ /* 54 */
396
+ /***/ (function(module, exports, __webpack_require__) {
397
+
398
+ eval("// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(3);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(55) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanM/NDc4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxOS4xLjMuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYsICdPYmplY3QnLCB7IGFzc2lnbjogcmVxdWlyZSgnLi9fb2JqZWN0LWFzc2lnbicpIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanNcbi8vIG1vZHVsZSBpZCA9IDU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n");
399
+
400
+ /***/ }),
401
+ /* 55 */
402
+ /***/ (function(module, exports, __webpack_require__) {
403
+
404
+ "use strict";
405
+ eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(11);\nvar gOPS = __webpack_require__(24);\nvar pIE = __webpack_require__(17);\nvar toObject = __webpack_require__(13);\nvar IObject = __webpack_require__(31);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(9)(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1hc3NpZ24uanM/NGU4ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG4vLyAxOS4xLjIuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlLCAuLi4pXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciAkYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgdmFyIFMgPSBTeW1ib2woKTtcbiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnO1xuICBBW1NdID0gNztcbiAgSy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAoaykgeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgd2hpbGUgKGFMZW4gPiBpbmRleCkge1xuICAgIHZhciBTID0gSU9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIGlmIChpc0VudW0uY2FsbChTLCBrZXkgPSBrZXlzW2orK10pKSBUW2tleV0gPSBTW2tleV07XG4gIH0gcmV0dXJuIFQ7XG59IDogJGFzc2lnbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtYXNzaWduLmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n");
406
+
407
+ /***/ }),
408
+ /* 56 */
409
+ /***/ (function(module, exports, __webpack_require__) {
410
+
411
+ eval("module.exports = { \"default\": __webpack_require__(57), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzY3MWUiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n");
412
+
413
+ /***/ }),
414
+ /* 57 */
415
+ /***/ (function(module, exports, __webpack_require__) {
416
+
417
+ eval("__webpack_require__(58);\nmodule.exports = __webpack_require__(0).Object.getPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9nZXQtcHJvdG90eXBlLW9mLmpzPzdkMmUiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmdldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZ2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gNTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n");
418
+
419
+ /***/ }),
420
+ /* 58 */
421
+ /***/ (function(module, exports, __webpack_require__) {
422
+
423
+ eval("// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = __webpack_require__(13);\nvar $getPrototypeOf = __webpack_require__(37);\n\n__webpack_require__(33)('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzPzJhMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4yLjkgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciAkZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZ2V0UHJvdG90eXBlT2YnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZihpdCkge1xuICAgIHJldHVybiAkZ2V0UHJvdG90eXBlT2YodG9PYmplY3QoaXQpKTtcbiAgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA1OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///58\n");
424
+
425
+ /***/ }),
426
+ /* 59 */
427
+ /***/ (function(module, exports, __webpack_require__) {
428
+
429
+ "use strict";
430
+ eval("\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzPzY2YjkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qc1xuLy8gbW9kdWxlIGlkID0gNTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n");
431
+
432
+ /***/ }),
433
+ /* 60 */
434
+ /***/ (function(module, exports, __webpack_require__) {
435
+
436
+ "use strict";
437
+ eval("\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(61);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzP2MzMTAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzXG4vLyBtb2R1bGUgaWQgPSA2MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///60\n");
438
+
439
+ /***/ }),
440
+ /* 61 */
441
+ /***/ (function(module, exports, __webpack_require__) {
442
+
443
+ eval("module.exports = { \"default\": __webpack_require__(62), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/MGI4MyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzXG4vLyBtb2R1bGUgaWQgPSA2MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///61\n");
444
+
445
+ /***/ }),
446
+ /* 62 */
447
+ /***/ (function(module, exports, __webpack_require__) {
448
+
449
+ eval("__webpack_require__(63);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanM/ZjViMCJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpIHtcbiAgcmV0dXJuICRPYmplY3QuZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYyk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n");
450
+
451
+ /***/ }),
452
+ /* 63 */
453
+ /***/ (function(module, exports, __webpack_require__) {
454
+
455
+ eval("var $export = __webpack_require__(3);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(5), 'Object', { defineProperty: __webpack_require__(4).f });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanM/OTgyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///63\n");
456
+
457
+ /***/ }),
458
+ /* 64 */
459
+ /***/ (function(module, exports, __webpack_require__) {
460
+
461
+ "use strict";
462
+ eval("\n\nexports.__esModule = true;\n\nvar _typeof2 = __webpack_require__(38);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanM/Y2YwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHNlbGYsIGNhbGwpIHtcbiAgaWYgKCFzZWxmKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIGNhbGwgJiYgKCh0eXBlb2YgY2FsbCA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoY2FsbCkpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7XG59O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzXG4vLyBtb2R1bGUgaWQgPSA2NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///64\n");
463
+
464
+ /***/ }),
465
+ /* 65 */
466
+ /***/ (function(module, exports, __webpack_require__) {
467
+
468
+ eval("module.exports = { \"default\": __webpack_require__(66), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC9pdGVyYXRvci5qcz82NzM4Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3JcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///65\n");
469
+
470
+ /***/ }),
471
+ /* 66 */
472
+ /***/ (function(module, exports, __webpack_require__) {
473
+
474
+ eval("__webpack_require__(67);\n__webpack_require__(72);\nmodule.exports = __webpack_require__(28).f('iterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcz9mZTdlIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdpdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///66\n");
475
+
476
+ /***/ }),
477
+ /* 67 */
478
+ /***/ (function(module, exports, __webpack_require__) {
479
+
480
+ "use strict";
481
+ eval("\nvar $at = __webpack_require__(68)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(39)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcz9jZDA0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///67\n");
482
+
483
+ /***/ }),
484
+ /* 68 */
485
+ /***/ (function(module, exports, __webpack_require__) {
486
+
487
+ eval("var toInteger = __webpack_require__(19);\nvar defined = __webpack_require__(18);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcz84N2FlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbi8vIHRydWUgIC0+IFN0cmluZyNhdFxuLy8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpO1xuICAgIHZhciBsID0gcy5sZW5ndGg7XG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcbiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG4gICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcbiAgfTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzXG4vLyBtb2R1bGUgaWQgPSA2OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///68\n");
488
+
489
+ /***/ }),
490
+ /* 69 */
491
+ /***/ (function(module, exports, __webpack_require__) {
492
+
493
+ "use strict";
494
+ eval("\nvar create = __webpack_require__(26);\nvar descriptor = __webpack_require__(16);\nvar setToStringTag = __webpack_require__(27);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(7)(IteratorPrototype, __webpack_require__(10)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzP2Y3ODUiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDY5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n");
495
+
496
+ /***/ }),
497
+ /* 70 */
498
+ /***/ (function(module, exports, __webpack_require__) {
499
+
500
+ eval("var dP = __webpack_require__(4);\nvar anObject = __webpack_require__(12);\nvar getKeys = __webpack_require__(11);\n\nmodule.exports = __webpack_require__(5) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanM/YWEyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qc1xuLy8gbW9kdWxlIGlkID0gNzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n");
501
+
502
+ /***/ }),
503
+ /* 71 */
504
+ /***/ (function(module, exports, __webpack_require__) {
505
+
506
+ eval("var document = __webpack_require__(1).document;\nmodule.exports = document && document.documentElement;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanM/NDRmMiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanNcbi8vIG1vZHVsZSBpZCA9IDcxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///71\n");
507
+
508
+ /***/ }),
509
+ /* 72 */
510
+ /***/ (function(module, exports, __webpack_require__) {
511
+
512
+ eval("__webpack_require__(73);\nvar global = __webpack_require__(1);\nvar hide = __webpack_require__(7);\nvar Iterators = __webpack_require__(25);\nvar TO_STRING_TAG = __webpack_require__(10)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcz9mYWQzIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vZXM2LmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciBUT19TVFJJTkdfVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciBET01JdGVyYWJsZXMgPSAoJ0NTU1J1bGVMaXN0LENTU1N0eWxlRGVjbGFyYXRpb24sQ1NTVmFsdWVMaXN0LENsaWVudFJlY3RMaXN0LERPTVJlY3RMaXN0LERPTVN0cmluZ0xpc3QsJyArXG4gICdET01Ub2tlbkxpc3QsRGF0YVRyYW5zZmVySXRlbUxpc3QsRmlsZUxpc3QsSFRNTEFsbENvbGxlY3Rpb24sSFRNTENvbGxlY3Rpb24sSFRNTEZvcm1FbGVtZW50LEhUTUxTZWxlY3RFbGVtZW50LCcgK1xuICAnTWVkaWFMaXN0LE1pbWVUeXBlQXJyYXksTmFtZWROb2RlTWFwLE5vZGVMaXN0LFBhaW50UmVxdWVzdExpc3QsUGx1Z2luLFBsdWdpbkFycmF5LFNWR0xlbmd0aExpc3QsU1ZHTnVtYmVyTGlzdCwnICtcbiAgJ1NWR1BhdGhTZWdMaXN0LFNWR1BvaW50TGlzdCxTVkdTdHJpbmdMaXN0LFNWR1RyYW5zZm9ybUxpc3QsU291cmNlQnVmZmVyTGlzdCxTdHlsZVNoZWV0TGlzdCxUZXh0VHJhY2tDdWVMaXN0LCcgK1xuICAnVGV4dFRyYWNrTGlzdCxUb3VjaExpc3QnKS5zcGxpdCgnLCcpO1xuXG5mb3IgKHZhciBpID0gMDsgaSA8IERPTUl0ZXJhYmxlcy5sZW5ndGg7IGkrKykge1xuICB2YXIgTkFNRSA9IERPTUl0ZXJhYmxlc1tpXTtcbiAgdmFyIENvbGxlY3Rpb24gPSBnbG9iYWxbTkFNRV07XG4gIHZhciBwcm90byA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIGlmIChwcm90byAmJiAhcHJvdG9bVE9fU1RSSU5HX1RBR10pIGhpZGUocHJvdG8sIFRPX1NUUklOR19UQUcsIE5BTUUpO1xuICBJdGVyYXRvcnNbTkFNRV0gPSBJdGVyYXRvcnMuQXJyYXk7XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSA3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///72\n");
513
+
514
+ /***/ }),
515
+ /* 73 */
516
+ /***/ (function(module, exports, __webpack_require__) {
517
+
518
+ "use strict";
519
+ eval("\nvar addToUnscopables = __webpack_require__(74);\nvar step = __webpack_require__(75);\nvar Iterators = __webpack_require__(25);\nvar toIObject = __webpack_require__(6);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(39)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzP2M0NjkiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICB0aGlzLl90ID0gdG9JT2JqZWN0KGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kXG4vLyAyMi4xLjUuMi4xICVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIga2luZCA9IHRoaXMuX2s7XG4gIHZhciBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7XG4gICAgdGhpcy5fdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc3RlcCgxKTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGluZGV4KTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiBzdGVwKDAsIE9baW5kZXhdKTtcbiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpXG5JdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gNzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///73\n");
520
+
521
+ /***/ }),
522
+ /* 74 */
523
+ /***/ (function(module, exports) {
524
+
525
+ eval("module.exports = function () { /* empty */ };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qcz9lMjY3Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qc1xuLy8gbW9kdWxlIGlkID0gNzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///74\n");
526
+
527
+ /***/ }),
528
+ /* 75 */
529
+ /***/ (function(module, exports) {
530
+
531
+ eval("module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qcz8xMDY2Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItc3RlcC5qc1xuLy8gbW9kdWxlIGlkID0gNzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///75\n");
532
+
533
+ /***/ }),
534
+ /* 76 */
535
+ /***/ (function(module, exports, __webpack_require__) {
536
+
537
+ eval("module.exports = { \"default\": __webpack_require__(77), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC5qcz9lNTA1Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2xcIiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///76\n");
538
+
539
+ /***/ }),
540
+ /* 77 */
541
+ /***/ (function(module, exports, __webpack_require__) {
542
+
543
+ eval("__webpack_require__(78);\n__webpack_require__(83);\n__webpack_require__(84);\n__webpack_require__(85);\nmodule.exports = __webpack_require__(0).Symbol;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qcz8wNzA3Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3ltYm9sO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gNzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n");
544
+
545
+ /***/ }),
546
+ /* 78 */
547
+ /***/ (function(module, exports, __webpack_require__) {
548
+
549
+ "use strict";
550
+ eval("\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(1);\nvar has = __webpack_require__(2);\nvar DESCRIPTORS = __webpack_require__(5);\nvar $export = __webpack_require__(3);\nvar redefine = __webpack_require__(40);\nvar META = __webpack_require__(79).KEY;\nvar $fails = __webpack_require__(9);\nvar shared = __webpack_require__(21);\nvar setToStringTag = __webpack_require__(27);\nvar uid = __webpack_require__(15);\nvar wks = __webpack_require__(10);\nvar wksExt = __webpack_require__(28);\nvar wksDefine = __webpack_require__(29);\nvar enumKeys = __webpack_require__(80);\nvar isArray = __webpack_require__(81);\nvar anObject = __webpack_require__(12);\nvar isObject = __webpack_require__(8);\nvar toIObject = __webpack_require__(6);\nvar toPrimitive = __webpack_require__(23);\nvar createDesc = __webpack_require__(16);\nvar _create = __webpack_require__(26);\nvar gOPNExt = __webpack_require__(82);\nvar $GOPD = __webpack_require__(42);\nvar $DP = __webpack_require__(4);\nvar $keys = __webpack_require__(11);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(41).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(17).f = $propertyIsEnumerable;\n __webpack_require__(24).f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(14)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(7)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN5bWJvbC5qcz83ZDY3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0Jztcbi8vIEVDTUFTY3JpcHQgNiBzeW1ib2xzIHNoaW1cbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBNRVRBID0gcmVxdWlyZSgnLi9fbWV0YScpLktFWTtcbnZhciAkZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciB3a3NFeHQgPSByZXF1aXJlKCcuL193a3MtZXh0Jyk7XG52YXIgd2tzRGVmaW5lID0gcmVxdWlyZSgnLi9fd2tzLWRlZmluZScpO1xudmFyIGVudW1LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1rZXlzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBnT1BORXh0ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4tZXh0Jyk7XG52YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyICREUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BEID0gJEdPUEQuZjtcbnZhciBkUCA9ICREUC5mO1xudmFyIGdPUE4gPSBnT1BORXh0LmY7XG52YXIgJFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgJEpTT04gPSBnbG9iYWwuSlNPTjtcbnZhciBfc3RyaW5naWZ5ID0gJEpTT04gJiYgJEpTT04uc3RyaW5naWZ5O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIEhJRERFTiA9IHdrcygnX2hpZGRlbicpO1xudmFyIFRPX1BSSU1JVElWRSA9IHdrcygndG9QcmltaXRpdmUnKTtcbnZhciBpc0VudW0gPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBTeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3ltYm9sLXJlZ2lzdHJ5Jyk7XG52YXIgQWxsU3ltYm9scyA9IHNoYXJlZCgnc3ltYm9scycpO1xudmFyIE9QU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0W1BST1RPVFlQRV07XG52YXIgVVNFX05BVElWRSA9IHR5cGVvZiAkU3ltYm9sID09ICdmdW5jdGlvbic7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJykuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmICFyZXF1aXJlKCcuL19saWJyYXJ5JykpIHtcbiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTtcbiAgfVxuXG4gIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3a3MobmFtZSkpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFN5bWJvbDogJFN5bWJvbCB9KTtcblxuZm9yICh2YXIgZXM2U3ltYm9scyA9IChcbiAgLy8gMTkuNC4yLjIsIDE5LjQuMi4zLCAxOS40LjIuNCwgMTkuNC4yLjYsIDE5LjQuMi44LCAxOS40LjIuOSwgMTkuNC4yLjEwLCAxOS40LjIuMTEsIDE5LjQuMi4xMiwgMTkuNC4yLjEzLCAxOS40LjIuMTRcbiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJ1xuKS5zcGxpdCgnLCcpLCBqID0gMDsgZXM2U3ltYm9scy5sZW5ndGggPiBqOyl3a3MoZXM2U3ltYm9sc1tqKytdKTtcblxuZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ1N5bWJvbCcsIHtcbiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpXG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIGhhcyhTeW1ib2xSZWdpc3RyeSwga2V5ICs9ICcnKVxuICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldXG4gICAgICA6IFN5bWJvbFJlZ2lzdHJ5W2tleV0gPSAkU3ltYm9sKGtleSk7XG4gIH0sXG4gIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKVxuICBrZXlGb3I6IGZ1bmN0aW9uIGtleUZvcihzeW0pIHtcbiAgICBpZiAoIWlzU3ltYm9sKHN5bSkpIHRocm93IFR5cGVFcnJvcihzeW0gKyAnIGlzIG5vdCBhIHN5bWJvbCEnKTtcbiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBzZXR0ZXIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH1cbn0pO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0Jywge1xuICAvLyAxOS4xLjIuMiBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIDE5LjEuMi4zIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyAxOS4xLjIuNiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIDE5LjEuMi44IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTylcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzXG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuc3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSA3OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n");
551
+
552
+ /***/ }),
553
+ /* 79 */
554
+ /***/ (function(module, exports, __webpack_require__) {
555
+
556
+ eval("var META = __webpack_require__(15)('meta');\nvar isObject = __webpack_require__(8);\nvar has = __webpack_require__(2);\nvar setDesc = __webpack_require__(4).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(9)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX21ldGEuanM/ZDNhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gNzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///79\n");
557
+
558
+ /***/ }),
559
+ /* 80 */
560
+ /***/ (function(module, exports, __webpack_require__) {
561
+
562
+ eval("// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(11);\nvar gOPS = __webpack_require__(24);\nvar pIE = __webpack_require__(17);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcz81ZGNlIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzXG4vLyBtb2R1bGUgaWQgPSA4MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///80\n");
563
+
564
+ /***/ }),
565
+ /* 81 */
566
+ /***/ (function(module, exports, __webpack_require__) {
567
+
568
+ eval("// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(32);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzP2VkNDMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDgxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///81\n");
569
+
570
+ /***/ }),
571
+ /* 82 */
572
+ /***/ (function(module, exports, __webpack_require__) {
573
+
574
+ eval("// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(6);\nvar gOPN = __webpack_require__(41).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcz80NmI3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGZhbGxiYWNrIGZvciBJRTExIGJ1Z2d5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHdpdGggaWZyYW1lIGFuZCB3aW5kb3dcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG52YXIgd2luZG93TmFtZXMgPSB0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdyAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc1xuICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTtcblxudmFyIGdldFdpbmRvd05hbWVzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdPUE4oaXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHJldHVybiB3aW5kb3dOYW1lcyAmJiB0b1N0cmluZy5jYWxsKGl0KSA9PSAnW29iamVjdCBXaW5kb3ddJyA/IGdldFdpbmRvd05hbWVzKGl0KSA6IGdPUE4odG9JT2JqZWN0KGl0KSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qc1xuLy8gbW9kdWxlIGlkID0gODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///82\n");
575
+
576
+ /***/ }),
577
+ /* 83 */
578
+ /***/ (function(module, exports) {
579
+
580
+ eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMuanMiLCJzb3VyY2VzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///83\n");
581
+
582
+ /***/ }),
583
+ /* 84 */
584
+ /***/ (function(module, exports, __webpack_require__) {
585
+
586
+ eval("__webpack_require__(29)('asyncIterator');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcz8zOTg5Il0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5hc3luYy1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gODRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///84\n");
587
+
588
+ /***/ }),
589
+ /* 85 */
590
+ /***/ (function(module, exports, __webpack_require__) {
591
+
592
+ eval("__webpack_require__(29)('observable');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM3LnN5bWJvbC5vYnNlcnZhYmxlLmpzPzQxNjciXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDg1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///85\n");
593
+
594
+ /***/ }),
595
+ /* 86 */
596
+ /***/ (function(module, exports, __webpack_require__) {
597
+
598
+ "use strict";
599
+ eval("\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = __webpack_require__(87);\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = __webpack_require__(91);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = __webpack_require__(38);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzPzNkZmQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxudmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7XG5cbnZhciBfY3JlYXRlID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2NyZWF0ZVwiKTtcblxudmFyIF9jcmVhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlKTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArICh0eXBlb2Ygc3VwZXJDbGFzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mMi5kZWZhdWx0ID8gKDAsIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCkoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzcztcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzXG4vLyBtb2R1bGUgaWQgPSA4NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///86\n");
600
+
601
+ /***/ }),
602
+ /* 87 */
603
+ /***/ (function(module, exports, __webpack_require__) {
604
+
605
+ eval("module.exports = { \"default\": __webpack_require__(88), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzkyMjAiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzXG4vLyBtb2R1bGUgaWQgPSA4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///87\n");
606
+
607
+ /***/ }),
608
+ /* 88 */
609
+ /***/ (function(module, exports, __webpack_require__) {
610
+
611
+ eval("__webpack_require__(89);\nmodule.exports = __webpack_require__(0).Object.setPrototypeOf;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzPzhiZjAiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5zZXRQcm90b3R5cGVPZjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///88\n");
612
+
613
+ /***/ }),
614
+ /* 89 */
615
+ /***/ (function(module, exports, __webpack_require__) {
616
+
617
+ eval("// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(3);\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(90).set });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzPzdiMTgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qc1xuLy8gbW9kdWxlIGlkID0gODlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///89\n");
618
+
619
+ /***/ }),
620
+ /* 90 */
621
+ /***/ (function(module, exports, __webpack_require__) {
622
+
623
+ eval("// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(8);\nvar anObject = __webpack_require__(12);\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(34)(Function.call, __webpack_require__(42).f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcz82NWE0Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoTywgcHJvdG8pIHtcbiAgYW5PYmplY3QoTyk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pICYmIHByb3RvICE9PSBudWxsKSB0aHJvdyBUeXBlRXJyb3IocHJvdG8gKyBcIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSFcIik7XG59O1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICBmdW5jdGlvbiAodGVzdCwgYnVnZ3ksIHNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0ID0gcmVxdWlyZSgnLi9fY3R4JykoRnVuY3Rpb24uY2FsbCwgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQsIDIpO1xuICAgICAgICBzZXQodGVzdCwgW10pO1xuICAgICAgICBidWdneSA9ICEodGVzdCBpbnN0YW5jZW9mIEFycmF5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgYnVnZ3kgPSB0cnVlOyB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICAgICAgY2hlY2soTywgcHJvdG8pO1xuICAgICAgICBpZiAoYnVnZ3kpIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIE87XG4gICAgICB9O1xuICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksXG4gIGNoZWNrOiBjaGVja1xufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtcHJvdG8uanNcbi8vIG1vZHVsZSBpZCA9IDkwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///90\n");
624
+
625
+ /***/ }),
626
+ /* 91 */
627
+ /***/ (function(module, exports, __webpack_require__) {
628
+
629
+ eval("module.exports = { \"default\": __webpack_require__(92), __esModule: true };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9jcmVhdGUuanM/M2FmNCJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///91\n");
630
+
631
+ /***/ }),
632
+ /* 92 */
633
+ /***/ (function(module, exports, __webpack_require__) {
634
+
635
+ eval("__webpack_require__(93);\nvar $Object = __webpack_require__(0).Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9jcmVhdGUuanM/YTBjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuY3JlYXRlJyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZShQLCBEKSB7XG4gIHJldHVybiAkT2JqZWN0LmNyZWF0ZShQLCBEKTtcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gOTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///92\n");
636
+
637
+ /***/ }),
638
+ /* 93 */
639
+ /***/ (function(module, exports, __webpack_require__) {
640
+
641
+ eval("var $export = __webpack_require__(3);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(26) });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanM/YjA1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gOTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///93\n");
642
+
643
+ /***/ }),
644
+ /* 94 */
645
+ /***/ (function(module, exports) {
646
+
647
+ eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuc2Nzcz9hY2Q4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gOTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n");
648
+
649
+ /***/ }),
650
+ /* 95 */
651
+ /***/ (function(module, exports, __webpack_require__) {
652
+
653
+ "use strict";
654
+ eval("/* jslint node: true */\n\n\nmodule.exports = function( obj, oldName, newName ) {\n\tif (typeof obj === 'string') {\n\t\tnewName = oldName;\n\t\toldName = obj;\n\t\tobj = this;\n\t}\n\n\tif (obj.hasOwnProperty(oldName)) {\n\t\tobj[newName] = obj[oldName];\n\t\tdelete obj[oldName];\n\t}\n\n\treturn obj;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVuYW1lLWtleS9pbmRleC5qcz9hZGQ1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGpzbGludCBub2RlOiB0cnVlICovXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oIG9iaiwgb2xkTmFtZSwgbmV3TmFtZSApIHtcblx0aWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XG5cdFx0bmV3TmFtZSA9IG9sZE5hbWU7XG5cdFx0b2xkTmFtZSA9IG9iajtcblx0XHRvYmogPSB0aGlzO1xuXHR9XG5cblx0aWYgKG9iai5oYXNPd25Qcm9wZXJ0eShvbGROYW1lKSkge1xuXHRcdG9ialtuZXdOYW1lXSA9IG9ialtvbGROYW1lXTtcblx0XHRkZWxldGUgb2JqW29sZE5hbWVdO1xuXHR9XG5cblx0cmV0dXJuIG9iajtcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVuYW1lLWtleS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gOTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///95\n");
655
+
656
+ /***/ }),
657
+ /* 96 */
658
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
659
+
660
+ "use strict";
661
+ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return reverseObject; });\nvar reverseObject = function reverseObject(object) {\n\tvar newObject = {};\n\tvar keys = [];\n\tfor (var key in object) {\n\t\tkeys.push(key);\n\t}\n\tfor (var i = keys.length - 1; i >= 0; i--) {\n\t\tvar value = object[keys[i]];\n\t\tnewObject[keys[i]] = value;\n\t}\n\treturn newObject;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMuanM/ZTNjZCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHJldmVyc2VPYmplY3QgPSBmdW5jdGlvbiByZXZlcnNlT2JqZWN0KG9iamVjdCkge1xuXHR2YXIgbmV3T2JqZWN0ID0ge307XG5cdHZhciBrZXlzID0gW107XG5cdGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcblx0XHRrZXlzLnB1c2goa2V5KTtcblx0fVxuXHRmb3IgKHZhciBpID0ga2V5cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdHZhciB2YWx1ZSA9IG9iamVjdFtrZXlzW2ldXTtcblx0XHRuZXdPYmplY3Rba2V5c1tpXV0gPSB2YWx1ZTtcblx0fVxuXHRyZXR1cm4gbmV3T2JqZWN0O1xufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy91dGlscy5qc1xuLy8gbW9kdWxlIGlkID0gOTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n");
662
+
663
+ /***/ })
664
+ /******/ ]);
dist/includes/gutenberg/package.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "wp-product-review-gutenberg-block",
3
+ "scripts": {
4
+ "dev": "cross-env BABEL_ENV=default webpack --watch",
5
+ "build": "cross-env BABEL_ENV=default NODE_ENV=production webpack"
6
+ },
7
+ "main": "src/block.js",
8
+ "devDependencies": {
9
+ "babel-core": "^6.25.0",
10
+ "babel-eslint": "^8.1.2",
11
+ "babel-loader": "^7.1.1",
12
+ "babel-plugin-transform-object-rest-spread": "^6.26.0",
13
+ "babel-plugin-transform-react-jsx": "^6.24.1",
14
+ "babel-plugin-transform-runtime": "^6.23.0",
15
+ "babel-preset-env": "^1.6.1",
16
+ "browser-sync": "^2.18.13",
17
+ "browser-sync-webpack-plugin": "^1.2.0",
18
+ "classnames": "^2.2.5",
19
+ "cross-env": "^5.1.1",
20
+ "css-loader": "^0.28.7",
21
+ "eslint": "^4.14.0",
22
+ "eslint-config-prettier": "^2.9.0",
23
+ "eslint-config-wordpress": "^2.0.0",
24
+ "eslint-plugin-prettier": "^2.4.0",
25
+ "extract-text-webpack-plugin": "^3.0.2",
26
+ "node-sass": "^4.7.2",
27
+ "postcss-loader": "^2.0.9",
28
+ "raw-loader": "^0.5.1",
29
+ "rename-key": "^1.1.1",
30
+ "sass-loader": "^6.0.6",
31
+ "style-loader": "^0.19.1",
32
+ "webpack": "^3.10.0"
33
+ },
34
+ "version": "1.0.0",
35
+ "license": "MIT"
36
+ }
dist/includes/gutenberg/src/block.js ADDED
@@ -0,0 +1,472 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import './style.scss';
5
+ import renameKey from 'rename-key';
6
+ import { reverseObject } from './utils';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ const { __ } = wp.i18n;
12
+
13
+ const { registerPlugin } = wp.plugins;
14
+
15
+
16
+ const { MediaUpload } = wp.editor;
17
+
18
+ const {
19
+ withSelect,
20
+ withDispatch,
21
+ } = wp.data;
22
+
23
+ const {
24
+ PluginPostStatusInfo,
25
+ PluginSidebarMoreMenuItem,
26
+ PluginSidebar,
27
+ } = wp.editPost;
28
+
29
+ const {
30
+ Component,
31
+ Fragment,
32
+ compose,
33
+ } = wp.element;
34
+
35
+ const {
36
+ PanelBody,
37
+ TextControl,
38
+ FormToggle,
39
+ Button,
40
+ SelectControl,
41
+ withAPIData,
42
+ } = wp.components;
43
+
44
+ class WP_Product_Review extends Component {
45
+ constructor() {
46
+ super( ...arguments );
47
+
48
+ this.toggleReviewStatus = this.toggleReviewStatus.bind( this );
49
+ this.onChangeReviewTitle = this.onChangeReviewTitle.bind( this );
50
+ this.onChangeReviewImage = this.onChangeReviewImage.bind( this );
51
+ this.onChangeImageLink = this.onChangeImageLink.bind( this );
52
+ this.onChangeReviewAffiliateTitle = this.onChangeReviewAffiliateTitle.bind( this );
53
+ this.onChangeReviewAffiliateLink = this.onChangeReviewAffiliateLink.bind( this );
54
+ this.addButton = this.addButton.bind( this );
55
+ this.onChangeReviewPrice = this.onChangeReviewPrice.bind( this );
56
+ this.onChangeOptionText = this.onChangeOptionText.bind( this );
57
+ this.onChangeOptionNumber = this.onChangeOptionNumber.bind( this );
58
+ this.addOption = this.addOption.bind( this );
59
+ this.onChangeProText = this.onChangeProText.bind( this );
60
+ this.addPro = this.addPro.bind( this );
61
+ this.onChangeConText = this.onChangeConText.bind( this );
62
+ this.addCon = this.addCon.bind( this );
63
+
64
+ this.state = {
65
+ cwp_meta_box_check: 'No',
66
+ cwp_rev_product_name: '',
67
+ _wppr_review_template: 'default',
68
+ cwp_rev_product_image: '',
69
+ cwp_image_link: 'image',
70
+ wppr_links: {
71
+ '': '',
72
+ },
73
+ cwp_rev_price: '',
74
+ wppr_options: {
75
+ 1: {
76
+ name: '',
77
+ value: 0,
78
+ }
79
+ },
80
+ wppr_pros: {
81
+ 0: '',
82
+ },
83
+ wppr_cons: {
84
+ 0: '',
85
+ }
86
+ };
87
+ }
88
+
89
+ componentWillReceiveProps( nextProps ) {
90
+ if ( this.props.review !== nextProps.review ) {
91
+ if ( nextProps.review.isLoading !== true ) {
92
+ this.setState( { ...nextProps.review.data.wppr_data } );
93
+ }
94
+ }
95
+ if ( nextProps.isPublishing || nextProps.isSaving ) {
96
+ wp.apiRequest( { path: `/wp-product-review/update-review?id=${nextProps.postId}&postType=${nextProps.postType}`, method: 'POST', data: this.state } ).then(
97
+ ( data ) => {
98
+ return data;
99
+ },
100
+ ( err ) => {
101
+ return err;
102
+ }
103
+ );
104
+ }
105
+ }
106
+
107
+ componentDidUpdate( prevState ) {
108
+ if ( this.state.cwp_meta_box_check !== prevState.cwp_meta_box_check && this.state.cwp_meta_box_check === 'Yes' ) {
109
+ this.props.openReviewSidebar();
110
+ }
111
+ }
112
+
113
+ toggleReviewStatus() {
114
+ this.setState( { cwp_meta_box_check: this.state.cwp_meta_box_check === 'Yes' ? 'No' : 'Yes' } );
115
+ this.props.editPostStatus( { edited: true } );
116
+ }
117
+
118
+ onChangeReviewTitle( value ) {
119
+ this.setState( { cwp_rev_product_name: value } );
120
+ this.props.editPostStatus( { edited: true } );
121
+ }
122
+
123
+ onChangeReviewImage( value ) {
124
+ if ( value.url !== undefined && value.url !== '' ) {
125
+ this.setState( { cwp_rev_product_image: value.url } );
126
+ } else if ( value.id !== undefined ){
127
+ this.setState( { cwp_rev_product_image: value.id } );
128
+ }
129
+ this.props.editPostStatus( { edited: true } );
130
+ }
131
+
132
+ onChangeImageLink( value ) {
133
+ this.setState( { cwp_image_link: value } );
134
+ this.props.editPostStatus( { edited: true } );
135
+ }
136
+
137
+ onChangeReviewAffiliateTitle( e, key ) {
138
+ let wppr_links = { ...this.state.wppr_links };
139
+ if ( ( Object.keys( this.state.wppr_links ).length === 2 ) ) {
140
+ if ( e === Object.keys( wppr_links )[0] || e === Object.keys( wppr_links )[1] ) {
141
+ e = e + ' ';
142
+ }
143
+ }
144
+ if ( Object.keys( wppr_links )[0] === key ) {
145
+ renameKey( wppr_links, key, e );
146
+ wppr_links = reverseObject( wppr_links );
147
+ } else {
148
+ renameKey( wppr_links, key, e );
149
+ }
150
+ this.setState( { wppr_links } );
151
+ this.props.editPostStatus( { edited: true } );
152
+ }
153
+
154
+ onChangeReviewAffiliateLink( e, key ) {
155
+ const wppr_links = { ...this.state.wppr_links };
156
+ wppr_links[key] = e;
157
+ this.setState( { wppr_links } );
158
+ this.props.editPostStatus( { edited: true } );
159
+ }
160
+
161
+ addButton() {
162
+ const wppr_links = { ...this.state.wppr_links };
163
+ wppr_links['Buy Now'] = '';
164
+ this.setState( { wppr_links } );
165
+ };
166
+
167
+ onChangeReviewPrice( value ) {
168
+ this.setState( { cwp_rev_price: value } );
169
+ this.props.editPostStatus( { edited: true } );
170
+ }
171
+
172
+ onChangeOptionText( e, key ) {
173
+ const wppr_options = { ...this.state.wppr_options };
174
+ wppr_options[key]['name'] = e;
175
+ this.setState( { wppr_options } );
176
+ this.props.editPostStatus( { edited: true } );
177
+ }
178
+
179
+ onChangeOptionNumber( e, key ) {
180
+ const wppr_options = { ...this.state.wppr_options };
181
+ if ( e === '' ) e = 0;
182
+ wppr_options[key]['value'] = e;
183
+ this.setState( { wppr_options } );
184
+ this.props.editPostStatus( { edited: true } );
185
+ }
186
+
187
+ addOption() {
188
+ const key = Object.keys( this.state.wppr_options ).length + 1;
189
+ const wppr_options = { ...this.state.wppr_options };
190
+ wppr_options[key] = {
191
+ name: '',
192
+ value: 0,
193
+ };
194
+ this.setState( { wppr_options } );
195
+ };
196
+
197
+ onChangeProText( e, key ) {
198
+ const wppr_pros = { ...this.state.wppr_pros };
199
+ wppr_pros[key] = e;
200
+ this.setState( { wppr_pros } );
201
+ this.props.editPostStatus( { edited: true } );
202
+ }
203
+
204
+ addPro() {
205
+ const key = Object.keys( this.state.wppr_pros ).length;
206
+ const wppr_pros = { ...this.state.wppr_pros };
207
+ wppr_pros[key] = '';
208
+ this.setState( { wppr_pros } );
209
+ };
210
+
211
+ onChangeConText( e, key ) {
212
+ const wppr_cons = { ...this.state.wppr_cons };
213
+ wppr_cons[key] = e;
214
+ this.setState( { wppr_cons } );
215
+ this.props.editPostStatus( { edited: true } );
216
+ }
217
+
218
+ addCon() {
219
+ const key = Object.keys( this.state.wppr_cons ).length;
220
+ const wppr_cons = { ...this.state.wppr_cons };
221
+ wppr_cons[key] = '';
222
+ this.setState( { wppr_cons } );
223
+ };
224
+
225
+ render() {
226
+ return (
227
+ <Fragment>
228
+ <PluginPostStatusInfo>
229
+ <label htmlFor='is-this-a-review'>{ __( 'Is this post a review?' ) }</label>
230
+ <FormToggle
231
+ checked={ this.state.cwp_meta_box_check === 'Yes' ? true : false }
232
+ onChange={ this.toggleReviewStatus }
233
+ id='is-this-a-review'
234
+ />
235
+ </PluginPostStatusInfo>
236
+ { ( this.state.cwp_meta_box_check === 'Yes' ) && [
237
+ <PluginSidebarMoreMenuItem
238
+ target="wp-product-review"
239
+ >
240
+ { __( 'WP Product Review' ) }
241
+ </PluginSidebarMoreMenuItem>,
242
+ <PluginSidebar
243
+ name="wp-product-review"
244
+ title={ __( 'WP Product Review' ) }
245
+ >
246
+ <PanelBody
247
+ title={ __( 'Product Details' ) }
248
+ className="wp-product-review-product-details"
249
+ initialOpen={ true }
250
+ >
251
+ { ( this.props.postType !== 'wppr_review' ) && [
252
+ <TextControl
253
+ label={ __( 'Product Name' ) }
254
+ type="text"
255
+ value={ this.state.cwp_rev_product_name }
256
+ onChange={ this.onChangeReviewTitle }
257
+ />
258
+ ] }
259
+ <div className="wp-product-review-sidebar-base-control">
260
+ <label className="blocks-base-control__label" for="inspector-media-upload">{ __( 'Product Image' ) }</label>
261
+ <MediaUpload
262
+ type="image"
263
+ id="inspector-media-upload"
264
+ value={ this.state.cwp_rev_product_image }
265
+ onSelect={ this.onChangeReviewImage }
266
+ render={ ( { open } ) => [
267
+ ( this.state.cwp_rev_product_image !== '' ) && [
268
+ <img
269
+ onClick={ open }
270
+ src={ this.state.cwp_rev_product_image }
271
+ alt={ __( 'Review image' ) }
272
+ />,
273
+ <Button
274
+ isLarge
275
+ onClick={ () => this.setState( { cwp_rev_product_image: '' } ) }
276
+ style={ { marginTop: '10px' } }
277
+ >
278
+ { __( 'Remove Image' ) }
279
+ </Button>
280
+ ],
281
+ <Button
282
+ isLarge
283
+ onClick={ open }
284
+ style={ { marginTop: '10px' } }
285
+ className={ ( this.state.cwp_rev_product_image === '' ) && 'wppr_image_upload' }
286
+ >
287
+ { __( 'Choose or Upload an Image' ) }
288
+ </Button>
289
+ ] }
290
+ />
291
+ </div>
292
+ <SelectControl
293
+ label={ __( 'Product Image Click' ) }
294
+ value={ this.state.cwp_image_link }
295
+ options={ [
296
+ {
297
+ label: __( 'Show Whole Image' ),
298
+ value: 'image',
299
+ },
300
+ {
301
+ label: __( 'Open Affiliate Link' ),
302
+ value: 'link',
303
+ },
304
+ ] }
305
+ onChange={ this.onChangeImageLink }
306
+ />
307
+ <div className="wppr-review-links-list">
308
+ { Object.keys( this.state.wppr_links ).map( ( key ) => [
309
+ <TextControl
310
+ label={ __( 'Affiliate Button Text' ) }
311
+ type="text"
312
+ value={ key }
313
+ onChange={ ( e ) => this.onChangeReviewAffiliateTitle( e, key ) }
314
+ />,
315
+ <TextControl
316
+ label={ __( 'Affiliate Button Link' ) }
317
+ type="url"
318
+ value={ this.state.wppr_links[key] }
319
+ onChange={ ( e ) => this.onChangeReviewAffiliateLink( e, key ) }
320
+ />
321
+ ] ) }
322
+ { ( Object.keys( this.state.wppr_links ).length < 2 ) && (
323
+ <Button
324
+ isLarge
325
+ onClick={ this.addButton }
326
+ >
327
+ { __( 'Add another button' ) }
328
+ </Button>
329
+ ) }
330
+ </div>
331
+ <TextControl
332
+ label={ __( 'Product Price' ) }
333
+ type="text"
334
+ value={ this.state.cwp_rev_price }
335
+ onChange={ this.onChangeReviewPrice }
336
+ />
337
+ </PanelBody>
338
+ <PanelBody
339
+ title={ __( 'Product Options' ) }
340
+ className="wp-product-review-product-options"
341
+ initialOpen={ false }
342
+ >
343
+ <div className="wppr-review-options-list">
344
+ { Object.keys( this.state.wppr_options ).map( ( key ) => (
345
+ <div className="wppr-review-options-item">
346
+ <label for={`wppr-option-item-${key}`}>{ key }</label>
347
+ <TextControl
348
+ type="text"
349
+ id={`wppr-option-item-${key}`}
350
+ className="wppr-text"
351
+ placeholder={ __( 'Option' ) }
352
+ value={ this.state.wppr_options[key].name }
353
+ onChange={ ( e ) => this.onChangeOptionText( e, key ) }
354
+ />
355
+ <TextControl
356
+ type="number"
357
+ className="wppr-text wppr-option-number"
358
+ placeholder={ __( '0' ) }
359
+ min={ 0 }
360
+ max={ 100 }
361
+ value={ this.state.wppr_options[key].value }
362
+ onChange={ ( e ) => this.onChangeOptionNumber( e, key ) }
363
+ />
364
+ </div>
365
+ ) ) }
366
+ { ( Object.keys( this.state.wppr_options ).length < 5 ) && (
367
+ <Button
368
+ isLarge
369
+ onClick={ this.addOption }
370
+ >
371
+ { __( 'Add another option' ) }
372
+ </Button>
373
+ ) }
374
+ </div>
375
+ </PanelBody>
376
+ <PanelBody
377
+ title={ __( 'Pro Features' ) }
378
+ className="wp-product-review-product-pros"
379
+ initialOpen={ false }
380
+ >
381
+ <div className="wppr-review-pro-list">
382
+ { Object.keys( this.state.wppr_pros ).map( ( key ) => (
383
+ <div className="wppr-review-pro-item">
384
+ <label for={`wppr-pro-item-${key}`}>{ parseInt( key ) + 1 }</label>
385
+ <TextControl
386
+ type="text"
387
+ id={`wppr-pro-item-${key}`}
388
+ className="wppr-text"
389
+ placeholder={ __( 'Option' ) }
390
+ value={ this.state.wppr_pros[key] }
391
+ onChange={ ( e ) => this.onChangeProText( e, key ) }
392
+ />
393
+ </div>
394
+ ) ) }
395
+ { ( Object.keys( this.state.wppr_pros ).length < 5 ) && (
396
+ <Button
397
+ isLarge
398
+ onClick={ this.addPro }
399
+ >
400
+ { __( 'Add another option' ) }
401
+ </Button>
402
+ ) }
403
+ </div>
404
+ </PanelBody>
405
+ <PanelBody
406
+ title={ __( 'Con Features' ) }
407
+ className="wp-product-review-product-cons"
408
+ initialOpen={ false }
409
+ >
410
+ <div className="wppr-review-con-list">
411
+ { Object.keys( this.state.wppr_cons ).map( ( key ) => (
412
+ <div className="wppr-review-con-item">
413
+ <label for={`wppr-con-item-${key}`}>{ parseInt( key ) + 1 }</label>
414
+ <TextControl
415
+ type="text"
416
+ id={`wppr-con-item-${key}`}
417
+ className="wppr-text"
418
+ placeholder={ __( 'Option' ) }
419
+ value={ this.state.wppr_cons[key] }
420
+ onChange={ ( e ) => this.onChangeConText( e, key ) }
421
+ />
422
+ </div>
423
+ ) ) }
424
+ { ( Object.keys( this.state.wppr_cons ).length < 5 ) && (
425
+ <Button
426
+ isLarge
427
+ onClick={ this.addCon }
428
+ >
429
+ { __( 'Add another option' ) }
430
+ </Button>
431
+ ) }
432
+ </div>
433
+ </PanelBody>
434
+ </PluginSidebar>
435
+ ] }
436
+ </Fragment>
437
+ )
438
+ }
439
+ }
440
+
441
+ const WPPR = compose( [
442
+ withSelect( ( select, { forceIsSaving } ) => {
443
+ const {
444
+ getCurrentPostId,
445
+ isSavingPost,
446
+ isPublishingPost,
447
+ getCurrentPostType,
448
+ } = select( 'core/editor' );
449
+ return {
450
+ postId: getCurrentPostId(),
451
+ postType: getCurrentPostType(),
452
+ isSaving: forceIsSaving || isSavingPost(),
453
+ isPublishing: isPublishingPost(),
454
+ };
455
+ } ),
456
+
457
+ withDispatch( ( dispatch ) => ( {
458
+ openReviewSidebar: () => dispatch( 'core/edit-post' ).openGeneralSidebar( 'wp-product-review/wp-product-review' ),
459
+ editPostStatus: dispatch( 'core/editor' ).editPost,
460
+ } ) ),
461
+
462
+ withAPIData( ( props ) => {
463
+ return {
464
+ review: `/wp/v2/${ ( props.postType === 'wppr_review' ? props.postType : 'posts' ) }/${props.postId}`,
465
+ };
466
+ } ),
467
+ ] )( WP_Product_Review );
468
+
469
+ registerPlugin( 'wp-product-review', {
470
+ icon: 'star-empty',
471
+ render: WPPR,
472
+ } );
dist/includes/gutenberg/src/style.scss ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wp-product-review-product-details {
2
+
3
+ .wp-product-review-sidebar-base-control {
4
+ padding-bottom: 10px;
5
+
6
+ label {
7
+ padding-bottom: 10px;
8
+ }
9
+
10
+ .wppr_image_upload {
11
+ display: block;
12
+ margin-bottom: 10px;
13
+ }
14
+ }
15
+
16
+ .wppr-review-links-list {
17
+ button {
18
+ margin-bottom: 10px;
19
+ }
20
+ }
21
+
22
+ }
23
+
24
+ .wp-product-review-product-options {
25
+
26
+ .wppr-review-options-list {
27
+
28
+ label {
29
+ width: 15%;
30
+ margin-right: -4px;
31
+ border-radius: 3px 0 0 3px;
32
+ background: #ddd;
33
+ line-height: 30px;
34
+ text-align: center;
35
+ vertical-align: top;
36
+ display: inline-block;
37
+ }
38
+
39
+ .wppr-text {
40
+ width: 60%;
41
+ display: inline-block;
42
+
43
+ input {
44
+ height: 30px;
45
+ }
46
+ }
47
+
48
+ .wppr-option-number {
49
+ width: 25%;
50
+ display: inline-block;
51
+
52
+ input {
53
+ height: 30px;
54
+ }
55
+ }
56
+
57
+ }
58
+
59
+ }
60
+
61
+ .wp-product-review-product-pros {
62
+
63
+ .wppr-review-pro-list {
64
+
65
+ label {
66
+ width: 15%;
67
+ margin-right: -4px;
68
+ border-radius: 3px 0 0 3px;
69
+ background: #ddd;
70
+ line-height: 30px;
71
+ text-align: center;
72
+ vertical-align: top;
73
+ display: inline-block;
74
+ }
75
+
76
+ .wppr-text {
77
+ width: 85%;
78
+ display: inline-block;
79
+
80
+ input {
81
+ height: 30px;
82
+ margin-top: 0
83
+ }
84
+ }
85
+
86
+ }
87
+
88
+ }
89
+
90
+ .wp-product-review-product-cons {
91
+
92
+ .wppr-review-con-list {
93
+
94
+ label {
95
+ width: 15%;
96
+ margin-right: -4px;
97
+ border-radius: 3px 0 0 3px;
98
+ background: #ddd;
99
+ line-height: 30px;
100
+ text-align: center;
101
+ vertical-align: top;
102
+ display: inline-block;
103
+ }
104
+
105
+ .wppr-text {
106
+ width: 85%;
107
+ display: inline-block;
108
+
109
+ input {
110
+ height: 30px;
111
+ margin-top: 0
112
+ }
113
+ }
114
+
115
+ }
116
+
117
+ }
dist/includes/gutenberg/src/utils.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export const reverseObject = ( object ) => {
2
+ const newObject = {};
3
+ const keys = [];
4
+ for ( let key in object ) {
5
+ keys.push( key );
6
+ }
7
+ for ( let i = keys.length - 1; i >= 0; i-- ) {
8
+ const value = object[ keys[i] ];
9
+ newObject[ keys[i] ] = value;
10
+ }
11
+ return newObject;
12
+ }
dist/includes/gutenberg/webpack.config.js ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const path = require( 'path' );
2
+ const webpack = require( 'webpack' );
3
+ const ExtractTextPlugin = require( 'extract-text-webpack-plugin' );
4
+ // const BrowserSyncPlugin = require( 'browser-sync-webpack-plugin' );
5
+
6
+ // Set different CSS extraction for editor only and common block styles
7
+ const blockCSSPlugin = new ExtractTextPlugin( {
8
+ filename: './dist/block.css',
9
+ } );
10
+
11
+ // Configuration for the ExtractTextPlugin.
12
+ const extractConfig = {
13
+ use: [
14
+ { loader: 'raw-loader' },
15
+ {
16
+ loader: 'postcss-loader',
17
+ options: {
18
+ plugins: [ require( 'autoprefixer' ) ],
19
+ },
20
+ },
21
+ {
22
+ loader: 'sass-loader',
23
+ query: {
24
+ outputStyle:
25
+ 'production' === process.env.NODE_ENV ? 'compressed' : 'nested',
26
+ },
27
+ },
28
+ ],
29
+ };
30
+
31
+ module.exports = {
32
+ entry: {
33
+ './dist/block' : './src/block.js',
34
+ },
35
+ output: {
36
+ path: path.resolve( __dirname ),
37
+ filename: '[name].js',
38
+ },
39
+ watch: true,
40
+ devtool: 'cheap-eval-source-map',
41
+ module: {
42
+ rules: [
43
+ {
44
+ test: /\.js$/,
45
+ exclude: /(node_modules|bower_components)/,
46
+ use: {
47
+ loader: 'babel-loader',
48
+ },
49
+ },
50
+ {
51
+ test: /style\.s?css$/,
52
+ use: blockCSSPlugin.extract( extractConfig ),
53
+ },
54
+ ],
55
+ },
56
+ plugins: [
57
+ blockCSSPlugin,
58
+ // new BrowserSyncPlugin({
59
+ // // Load localhost:3333 to view proxied site
60
+ // host: 'localhost',
61
+ // port: '3333',
62
+ // // Change proxy to your local WordPress URL
63
+ // proxy: 'https://gutenberg.local'
64
+ // })
65
+ ],
66
+ };
dist/includes/index.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Silence is golden
4
+ *
5
+ * @package WPPR
6
+ * @copyright Copyright (c) 2017, Bogdan Preda
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ * @since 3.0.0
9
+ */
10
+
11
+ /**
12
+ * Nothing to do here.
13
+ */
dist/includes/legacy.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ *
4
+ * Legacy files used for backwards compatibility.
5
+ *
6
+ * @package WPPR
7
+ */
8
+
9
+ /**
10
+ * Legacy function used for review box.
11
+ *
12
+ * @param int $post_id The post id.
13
+ *
14
+ * @deprecated
15
+ *
16
+ * @return string The review string.
17
+ */
18
+ function cwppos_show_review( $post_id ) {
19
+ $plugin = new WPPR();
20
+ $review_object = new WPPR_Review_Model( $post_id );
21
+ $public = new Wppr_Public( $plugin->get_plugin_name(), $plugin->get_version() );
22
+ $public->load_review_assets( $review_object );
23
+ $output = '';
24
+ if ( $review_object->is_active() ) {
25
+ $template = new WPPR_Template();
26
+ $output .= $template->render(
27
+ 'default',
28
+ array(
29
+ 'review_object' => $review_object,
30
+ ),
31
+ false
32
+ );
33
+
34
+ $output .= $template->render(
35
+ 'rich-json-ld',
36
+ array(
37
+ 'review_object' => $review_object,
38
+ ),
39
+ false
40
+ );
41
+ }
42
+
43
+ return $output;
44
+ }
45
+
46
+ /**
47
+ * Legacy functions for return all the options.
48
+ *
49
+ * @deprecated
50
+ *
51
+ * @return mixed Array of global options.
52
+ */
53
+ function cwppos( $option = null ) {
54
+ $options = new WPPR_Options_Model();
55
+
56
+ if ( is_null( $option ) ) {
57
+ return $options->get_all();
58
+ }
59
+ return $options->wppr_get_option( $option );
60
+ }
dist/includes/public/class-wppr-public.php ADDED
@@ -0,0 +1,736 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The public-facing functionality of the plugin.
4
+ *
5
+ * @link https://themeisle.com/
6
+ * @since 3.0.0
7
+ *
8
+ * @package Wppr
9
+ * @subpackage Wppr/public
10
+ */
11
+
12
+ /**
13
+ * The public-facing functionality of the plugin.
14
+ *
15
+ * Defines the plugin name, version, and two examples hooks for how to
16
+ * enqueue the admin-specific stylesheet and JavaScript.
17
+ *
18
+ * @package Wppr
19
+ * @subpackage Wppr/public
20
+ * @author ThemeIsle <friends@themeisle.com>
21
+ */
22
+ class Wppr_Public {
23
+
24
+ /**
25
+ * The ID of this plugin.
26
+ *
27
+ * @since 3.0.0
28
+ * @access private
29
+ * @var string $plugin_name The ID of this plugin.
30
+ */
31
+ private $plugin_name;
32
+
33
+ /**
34
+ * The version of this plugin.
35
+ *
36
+ * @since 3.0.0
37
+ * @access private
38
+ * @var string $version The current version of this plugin.
39
+ */
40
+ private $version;
41
+
42
+ /**
43
+ * Stores a WPPR_Review_Model object.
44
+ *
45
+ * @since 3.0.0
46
+ * @access private
47
+ * @var WPPR_Review_Model $review The review model.
48
+ */
49
+ private $review;
50
+
51
+ /**
52
+ * Initialize the class and set its properties.
53
+ *
54
+ * @since 3.0.0
55
+ * @access public
56
+ *
57
+ * @param string $plugin_name The name of the plugin.
58
+ * @param string $version The version of this plugin.
59
+ */
60
+ public function __construct( $plugin_name, $version ) {
61
+ $this->plugin_name = $plugin_name;
62
+ $this->version = $version;
63
+ }
64
+
65
+ /**
66
+ * Setup review of the current post.
67
+ */
68
+ public function setup_post() {
69
+
70
+ global $post;
71
+ $this->review = new WPPR_Review_Model( ! empty( $post ) ? $post->ID : 0 );
72
+ }
73
+
74
+ /**
75
+ *
76
+ * Load the review assets based on the context.
77
+ *
78
+ * @param WPPR_Review_Model $review Review model.
79
+ */
80
+ public function load_review_assets( $review = null ) {
81
+ $load = false;
82
+ if ( ! empty( $review ) ) {
83
+ if ( $review->is_active() ) {
84
+
85
+ $this->review = $review;
86
+ $this->amp_support();
87
+ $load = true;
88
+ }
89
+ } else {
90
+ $review = $this->review;
91
+ if ( empty( $review ) ) {
92
+ $load = false;
93
+ } elseif ( $review->is_active() ) {
94
+ $load = true;
95
+ }
96
+ }
97
+
98
+ if ( ! $load ) {
99
+ return;
100
+ }
101
+
102
+ if ( $review->wppr_get_option( 'cwppos_lighbox' ) == 'no' ) {
103
+ wp_enqueue_script( $this->plugin_name . '-lightbox-js', WPPR_URL . '/assets/js/lightbox.min.js', array( 'jquery' ), $this->version, true );
104
+ wp_enqueue_style( $this->plugin_name . '-lightbox-css', WPPR_URL . '/assets/css/lightbox.css', array(), $this->version );
105
+ }
106
+
107
+ if ( $review->wppr_get_option( 'cwppos_show_userreview' ) == 'yes' ) {
108
+ wp_enqueue_script( 'jquery-ui-slider' );
109
+ wp_enqueue_script( 'jquery-touch-punch' );
110
+ wp_enqueue_script(
111
+ $this->plugin_name . '-frontpage-js',
112
+ WPPR_URL . '/assets/js/main.js',
113
+ array(
114
+ 'jquery-ui-slider',
115
+ ),
116
+ $this->version,
117
+ true
118
+ );
119
+ wp_enqueue_style( $this->plugin_name . 'jqueryui', WPPR_URL . '/assets/css/jquery-ui.css', array(), $this->version );
120
+ wp_enqueue_style( $this->plugin_name . 'comments', WPPR_URL . '/assets/css/comments.css', array(), $this->version );
121
+ }
122
+ $icon = $review->wppr_get_option( 'cwppos_change_bar_icon' );
123
+
124
+ if ( 'default' !== $review->get_template() || ( ! empty( $icon ) && $review->wppr_get_option( 'cwppos_fontawesome' ) == 'no' ) ) {
125
+ wp_enqueue_style( $this->plugin_name . 'font-awesome', WPPR_URL . '/assets/css/font-awesome.min.css', array(), $this->version );
126
+ }
127
+
128
+ if ( $review->wppr_get_option( 'cwppos_show_icon' ) == 'yes' ) {
129
+ wp_enqueue_style( 'dashicons' );
130
+ }
131
+
132
+ wp_enqueue_style( $this->plugin_name . '-' . $review->get_template() . '-stylesheet', WPPR_URL . '/assets/css/' . $review->get_template() . '.css', array(), $this->version );
133
+ wp_enqueue_style(
134
+ $this->plugin_name . '-percentage-circle',
135
+ WPPR_URL . '/assets/css/circle.css',
136
+ array(),
137
+ $this->version
138
+ );
139
+ wp_enqueue_style(
140
+ $this->plugin_name . '-common',
141
+ WPPR_URL . '/assets/css/common.css',
142
+ array(),
143
+ $this->version
144
+ );
145
+ $style = $this->generate_styles();
146
+
147
+ $style = apply_filters( 'wppr_global_style', $style );
148
+
149
+ wp_add_inline_style( $this->plugin_name . '-common', $style );
150
+ }
151
+
152
+ /**
153
+ * Load AMP logic.
154
+ */
155
+ public function amp_support() {
156
+ if ( ! $this->review->is_active() ) {
157
+ return;
158
+ }
159
+ if ( ! function_exists( 'ampforwp_is_amp_endpoint' ) || ! function_exists( 'is_amp_endpoint' ) ) {
160
+ return;
161
+ }
162
+ if ( ! ampforwp_is_amp_endpoint() || ! is_amp_endpoint() ) {
163
+ return;
164
+ }
165
+
166
+ /**
167
+ * Remove any custom icon.
168
+ */
169
+ add_filter( 'wppr_option_custom_icon', '__return_empty_string', 99 );
170
+ add_action( 'amp_post_template_head', array( $this, 'wppr_amp_add_fa' ), 999 );
171
+
172
+ $model = new WPPR_Query_Model();
173
+ if ( 'yes' === $model->wppr_get_option( 'wppr_amp' ) ) {
174
+ add_filter( 'wppr_review_option_rating_css', array( $this, 'amp_width_support' ), 99, 2 );
175
+ add_action( 'amp_post_template_css', array( $this, 'amp_styles' ), 999 );
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Function to generate styles on the basis of Ratings.
181
+ */
182
+ public function generate_styles() {
183
+
184
+ $review = new WPPR_Review_Model();
185
+ $conditional_styles = '';
186
+ if ( $review->wppr_get_option( 'cwppos_show_icon' ) == 'yes' ) {
187
+ $adverb = is_rtl() ? 'after' : 'before';
188
+ $direction = is_rtl() ? 'left' : 'right';
189
+ $conditional_styles .= '
190
+ div.affiliate-button a span:' . $adverb . ', div.affiliate-button a:hover span:' . $adverb . ' {
191
+ font-family: "dashicons";
192
+ content: "\f174";
193
+ padding-' . $direction . ': 5px
194
+ }
195
+ ';
196
+ }
197
+
198
+ if ( $review->wppr_get_option( 'cwppos_show_userreview' ) == 'yes' ) {
199
+ $conditional_styles .= '
200
+ .commentlist .comment-body p {
201
+ clear: left;
202
+ }
203
+ ';
204
+ }
205
+
206
+ $style = '
207
+ .review-wu-grade .wppr-c100,
208
+ .review-grade-widget .wppr-c100 {
209
+ background-color: ' . $review->wppr_get_option( 'cwppos_rating_chart_default' ) . ';
210
+ }
211
+
212
+ .review-wu-grade .wppr-c100.wppr-weak span,
213
+ .review-grade-widget .wppr-c100.wppr-weak span {
214
+ color: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
215
+ }
216
+
217
+ .review-wu-grade .wppr-c100.wppr-weak .wppr-fill,
218
+ .review-wu-grade .wppr-c100.wppr-weak .wppr-bar,
219
+ .review-grade-widget .wppr-c100.wppr-weak .wppr-fill,
220
+ .review-grade-widget .wppr-c100.wppr-weak .wppr-bar {
221
+ border-color: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
222
+ }
223
+
224
+ .user-comments-grades .comment-meta-grade-bar.wppr-weak .comment-meta-grade {
225
+ background: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
226
+ }
227
+
228
+ #review-statistics .review-wu-grade .wppr-c100.wppr-not-bad span,
229
+ .review-grade-widget .wppr-c100.wppr-not-bad span {
230
+ color: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
231
+ }
232
+
233
+ .review-wu-grade .wppr-c100.wppr-not-bad .wppr-fill,
234
+ .review-wu-grade .wppr-c100.wppr-not-bad .wppr-bar,
235
+ .review-grade-widget .wppr-c100.wppr-not-bad .wppr-fill,
236
+ .review-grade-widget .wppr-c100.wppr-not-bad .wppr-bar {
237
+ border-color: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
238
+ }
239
+
240
+ .user-comments-grades .comment-meta-grade-bar.wppr-not-bad .comment-meta-grade {
241
+ background: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
242
+ }
243
+
244
+ .review-wu-grade .wppr-c100.wppr-good span,
245
+ .review-grade-widget .wppr-c100.wppr-good span {
246
+ color: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
247
+ }
248
+
249
+ .review-wu-grade .wppr-c100.wppr-good .wppr-fill,
250
+ .review-wu-grade .wppr-c100.wppr-good .wppr-bar,
251
+ .review-grade-widget .wppr-c100.wppr-good .wppr-fill,
252
+ .review-grade-widget .wppr-c100.wppr-good .wppr-bar {
253
+ border-color: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
254
+ }
255
+
256
+ .user-comments-grades .comment-meta-grade-bar.wppr-good .comment-meta-grade {
257
+ background: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
258
+ }
259
+
260
+ .review-wu-grade .wppr-c100.wppr-very-good span,
261
+ .review-grade-widget .wppr-c100.wppr-very-good span {
262
+ color: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
263
+ }
264
+
265
+ .review-wu-grade .wppr-c100.wppr-very-good .wppr-fill,
266
+ .review-wu-grade .wppr-c100.wppr-very-good .wppr-bar,
267
+ .review-grade-widget .wppr-c100.wppr-very-good .wppr-fill,
268
+ .review-grade-widget .wppr-c100.wppr-very-good .wppr-bar {
269
+ border-color: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
270
+ }
271
+
272
+ .user-comments-grades .comment-meta-grade-bar.wppr-very-good .comment-meta-grade {
273
+ background: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
274
+ }
275
+
276
+ #review-statistics .review-wu-bars ul.wppr-weak li.colored {
277
+ background: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
278
+ color: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
279
+ }
280
+
281
+ #review-statistics .review-wu-bars ul.wppr-not-bad li.colored {
282
+ background: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
283
+ color: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
284
+ }
285
+
286
+ #review-statistics .review-wu-bars ul.wppr-good li.colored {
287
+ background: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
288
+ color: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
289
+ }
290
+
291
+ #review-statistics .review-wu-bars ul.wppr-very-good li.colored {
292
+ background: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
293
+ color: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
294
+ }
295
+
296
+ #review-statistics .review-wrap-up div.cwpr-review-top {
297
+ border-top: ' . $review->wppr_get_option( 'cwppos_reviewboxbd_width' ) . 'px solid ' . $review->wppr_get_option( 'cwppos_reviewboxbd_color' ) . ';
298
+ }
299
+
300
+ .user-comments-grades .comment-meta-grade-bar,
301
+ #review-statistics .review-wu-bars ul li {
302
+ background: ' . $review->wppr_get_option( 'cwppos_rating_default' ) . ';
303
+ color: ' . $review->wppr_get_option( 'cwppos_rating_default' ) . ';
304
+ }
305
+
306
+
307
+ #review-statistics .review-wrap-up .review-wu-right ul li,
308
+ #review-statistics .review-wu-bars h3,
309
+ .review-wu-bars span,
310
+ #review-statistics .review-wrap-up .cwpr-review-top .cwp-item-category a {
311
+ color: ' . $review->wppr_get_option( 'cwppos_font_color' ) . ';
312
+ }
313
+
314
+ #review-statistics .review-wrap-up .review-wu-right .pros h2 {
315
+ color: ' . $review->wppr_get_option( 'cwppos_pros_color' ) . ';
316
+ }
317
+
318
+ #review-statistics .review-wrap-up .review-wu-right .cons h2 {
319
+ color: ' . $review->wppr_get_option( 'cwppos_cons_color' ) . ';
320
+ }
321
+
322
+ div.affiliate-button a {
323
+ border: 2px solid ' . $review->wppr_get_option( 'cwppos_buttonbd_color' ) . ';
324
+ }
325
+
326
+ div.affiliate-button a:hover {
327
+ border: 2px solid ' . $review->wppr_get_option( 'cwppos_buttonbh_color' ) . ';
328
+ }
329
+
330
+ div.affiliate-button a {
331
+ background: ' . $review->wppr_get_option( 'cwppos_buttonbkd_color' ) . ';
332
+ }
333
+
334
+ div.affiliate-button a:hover {
335
+ background: ' . $review->wppr_get_option( 'cwppos_buttonbkh_color' ) . ';
336
+ }
337
+
338
+ div.affiliate-button a span {
339
+ color: ' . $review->wppr_get_option( 'cwppos_buttontxtd_color' ) . ';
340
+ }
341
+
342
+ div.affiliate-button a:hover span {
343
+ color: ' . $review->wppr_get_option( 'cwppos_buttontxth_color' ) . ';
344
+ }
345
+
346
+ ' . $conditional_styles . '
347
+
348
+ ';
349
+
350
+ /**
351
+ * Template specific styles.
352
+ */
353
+ $style .= '
354
+ .wppr-template-1 .wppr-review-grade-option-rating.wppr-very-good.rtl,
355
+ .wppr-template-2 .wppr-review-grade-option-rating.wppr-very-good.rtl {
356
+ background: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
357
+ }
358
+ .wppr-template-1 .wppr-review-grade-option-rating.wppr-good.rtl,
359
+ .wppr-template-2 .wppr-review-grade-option-rating.wppr-good.rtl {
360
+ background: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
361
+ }
362
+ .wppr-template-1 .wppr-review-grade-option-rating.wppr-not-bad.rtl,
363
+ .wppr-template-2 .wppr-review-grade-option-rating.wppr-not-bad.rtl {
364
+ background: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
365
+ }
366
+ .wppr-template-1 .wppr-review-grade-option-rating.wppr-weak.rtl,
367
+ .wppr-template-2 .wppr-review-grade-option-rating.wppr-weak.rtl {
368
+ background: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
369
+ }
370
+
371
+ .wppr-template-1 .wppr-review-grade-option .wppr-very-good {
372
+ background: ' . ( is_rtl() ? $review->wppr_get_option( 'cwppos_rating_default' ) : $review->wppr_get_option( 'cwppos_rating_very_good' ) ) . ';
373
+ }
374
+ .wppr-template-2 .wppr-review-rating .wppr-very-good {
375
+ background: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
376
+ }
377
+ .wppr-template-1 .wppr-review-grade-option .wppr-good {
378
+ background: ' . ( is_rtl() ? $review->wppr_get_option( 'cwppos_rating_default' ) : $review->wppr_get_option( 'cwppos_rating_good' ) ) . ';
379
+ }
380
+ .wppr-template-2 .wppr-review-rating .wppr-good {
381
+ background: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
382
+ }
383
+ .wppr-template-1 .wppr-review-grade-option .wppr-not-bad {
384
+ background: ' . ( is_rtl() ? $review->wppr_get_option( 'cwppos_rating_default' ) : $review->wppr_get_option( 'cwppos_rating_notbad' ) ) . ';
385
+ }
386
+ .wppr-template-2 .wppr-review-rating .wppr-not-bad {
387
+ background: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
388
+ }
389
+
390
+ .wppr-template-1 .wppr-review-grade-option .wppr-weak {
391
+ background: ' . ( is_rtl() ? $review->wppr_get_option( 'cwppos_rating_default' ) : $review->wppr_get_option( 'cwppos_rating_weak' ) ) . ';
392
+ }
393
+ .wppr-template-2 .wppr-review-rating .wppr-weak {
394
+ background: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
395
+ }
396
+ .wppr-template-1 .wppr-review-grade-option .wppr-default,
397
+ .wppr-template-2 .wppr-review-rating .wppr-default{
398
+ background: ' . $review->wppr_get_option( 'cwppos_rating_default' ) . ';
399
+ }
400
+
401
+
402
+
403
+ .wppr-template-1 .wppr-review-grade-number .wppr-very-good,
404
+ .wppr-template-1 .wppr-review-stars .wppr-very-good,
405
+ .wppr-template-2 .wppr-review-option-rating .wppr-very-good{
406
+ color: ' . $review->wppr_get_option( 'cwppos_rating_very_good' ) . ';
407
+ }
408
+ .wppr-template-1 .wppr-review-grade-number .wppr-good,
409
+ .wppr-template-1 .wppr-review-stars .wppr-good,
410
+ .wppr-template-2 .wppr-review-option-rating .wppr-good{
411
+ color: ' . $review->wppr_get_option( 'cwppos_rating_good' ) . ';
412
+ }
413
+
414
+ .wppr-template-1 .wppr-review-grade-number .wppr-not-bad,
415
+ .wppr-template-1 .wppr-review-stars .wppr-not-bad,
416
+ .wppr-template-2 .wppr-review-option-rating .wppr-not-bad{
417
+ color: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
418
+ color: ' . $review->wppr_get_option( 'cwppos_rating_notbad' ) . ';
419
+ }
420
+ .wppr-template-1 .wppr-review-grade-number .wppr-weak,
421
+ .wppr-template-1 .wppr-review-stars .wppr-weak,
422
+ .wppr-template-2 .wppr-review-option-rating .wppr-weak{
423
+ color: ' . $review->wppr_get_option( 'cwppos_rating_weak' ) . ';
424
+ }
425
+ .wppr-template-1 .wppr-review-grade-number .wppr-default,
426
+ .wppr-template-1 .wppr-review-stars .wppr-default,
427
+ .wppr-review-option-rating .wppr-default{
428
+ color: ' . $review->wppr_get_option( 'cwppos_rating_default' ) . ';
429
+ }
430
+
431
+
432
+ .wppr-template .wppr-review-name{
433
+ color: ' . $review->wppr_get_option( 'cwppos_font_color' ) . ';
434
+ }
435
+ .wppr-template h3.wppr-review-cons-name{
436
+ color: ' . $review->wppr_get_option( 'cwppos_cons_color' ) . ';
437
+ }
438
+ .wppr-template h3.wppr-review-pros-name{
439
+ color: ' . $review->wppr_get_option( 'cwppos_pros_color' ) . ';
440
+ }
441
+ ';
442
+
443
+ return $style;
444
+ }
445
+
446
+ /**
447
+ * Temporary methods
448
+ *
449
+ * @since 3.0.0
450
+ * @access public
451
+ *
452
+ * @param mixed $content The page content.
453
+ *
454
+ * @return mixed
455
+ */
456
+ public function display_on_front( $content ) {
457
+ if ( empty( $this->review ) ) {
458
+ return $content;
459
+ }
460
+
461
+ if ( $this->review->is_active() && is_singular() ) {
462
+ $output = '';
463
+ $review_object = $this->review;
464
+ $template = new WPPR_Template();
465
+ $output .= $template->render(
466
+ $review_object->get_template(),
467
+ array(
468
+ 'review_object' => $review_object,
469
+ ),
470
+ false
471
+ );
472
+
473
+ $output .= $template->render(
474
+ 'rich-json-ld',
475
+ array(
476
+ 'review_object' => $review_object,
477
+ ),
478
+ false
479
+ );
480
+
481
+ $review_position_before_content = $this->review->wppr_get_option( 'cwppos_show_reviewbox' );
482
+ if ( $review_position_before_content == 'yes' ) {
483
+ $content = $content . $output;
484
+ } elseif ( $review_position_before_content == 'no' ) {
485
+ $content = $output . $content;
486
+ }
487
+ }
488
+
489
+ return $content;
490
+ }
491
+
492
+
493
+ /**
494
+ * Adds the comment form fields.
495
+ *
496
+ * @return string The comment form fields.
497
+ */
498
+ function add_comment_fields() {
499
+ if ( ! $this->review->is_active() ) {
500
+ return '';
501
+ }
502
+ if ( $this->review->wppr_get_option( 'cwppos_show_userreview' ) != 'yes' ) {
503
+ return '';
504
+ }
505
+ $options = $this->review->get_options();
506
+ $option_names = wp_list_pluck( $options, 'name' );
507
+ $sliders = array();
508
+ foreach ( $option_names as $k => $value ) {
509
+ $sliders[] =
510
+ '<div class="wppr-comment-form-meta">
511
+ <label for="wppr-slider-option-' . $k . '">' . $value . '</label>
512
+ <input type="text" id="wppr-slider-option-' . $k . '" class="meta_option_input" value="" name="wppr-slider-option-' . $k . '" readonly="readonly">
513
+ <div class="wppr-comment-meta-slider"></div>
514
+ <div class="cwpr_clearfix"></div>
515
+ </div>';
516
+ }
517
+ echo '<div id="wppr-slider-comment">' . implode( '', $sliders ) . '<div class="cwpr_clearfix"></div></div>';
518
+
519
+ }
520
+
521
+ /**
522
+ * Update the comment meta fields with the rating.
523
+ *
524
+ * @param int $comment_id The comment id.
525
+ */
526
+ public function save_comment_fields( $comment_id ) {
527
+ $comment = get_comment( $comment_id );
528
+ if ( empty( $comment ) ) {
529
+ return;
530
+ }
531
+ $review = new WPPR_Review_Model( $comment->comment_post_ID );
532
+ if ( empty( $review ) ) {
533
+ return;
534
+ }
535
+ if ( ! $review->is_active() ) {
536
+ return;
537
+ }
538
+ if ( $review->wppr_get_option( 'cwppos_show_userreview' ) != 'yes' ) {
539
+ return;
540
+ }
541
+
542
+ $options = $review->get_options();
543
+ $option_names = wp_list_pluck( $options, 'name' );
544
+ $valid_review = false;
545
+ foreach ( $option_names as $k => $value ) {
546
+ if ( isset( $_POST[ 'wppr-slider-option-' . $k ] ) && ! empty( $_POST[ 'wppr-slider-option-' . $k ] ) ) {
547
+ $valid_review = true;
548
+ break;
549
+ }
550
+ }
551
+ if ( ! $valid_review ) {
552
+ return;
553
+ }
554
+ foreach ( $option_names as $k => $value ) {
555
+ if ( isset( $_POST[ 'wppr-slider-option-' . $k ] ) ) {
556
+
557
+ $option_value = wp_filter_nohtml_kses( $_POST[ 'wppr-slider-option-' . $k ] );
558
+ $option_value = empty( $value ) ? 0 : $option_value;
559
+ update_comment_meta( $comment_id, 'meta_option_' . $k, $option_value );
560
+
561
+ }
562
+ }
563
+ $review->update_comments_rating();
564
+ }
565
+
566
+ /**
567
+ * Alter the comment text and add the review ratings.
568
+ *
569
+ * @param string $text Comment text.
570
+ *
571
+ * @return string Comment text with review.
572
+ */
573
+ public function show_comment_ratings( $text ) {
574
+
575
+ if ( empty( $this->review ) ) {
576
+ return $text;
577
+ }
578
+ if ( ! $this->review->is_active() ) {
579
+ return $text;
580
+ }
581
+ if ( $this->review->wppr_get_option( 'cwppos_show_userreview' ) != 'yes' ) {
582
+ return $text;
583
+ }
584
+
585
+ global $comment;
586
+
587
+ $options = $this->review->get_comment_options( $comment->comment_ID );
588
+ if ( empty( $options ) ) {
589
+ return $text;
590
+ }
591
+ $return = '';
592
+ $return .= '<div class="user-comments-grades">';
593
+ foreach ( $options as $k => $option ) {
594
+ $intGrade = intval( $option['value'] * 10 );
595
+ $return .= '<div class="comment-meta-option">
596
+ <p class="comment-meta-option-name">' . $option['name'] . '</p>
597
+ <p class="comment-meta-option-grade">' . $option['value'] . '</p>
598
+ <div class="cwpr_clearfix"></div>
599
+ <div class="comment-meta-grade-bar ' . $this->review->get_rating_class( $intGrade ) . '">
600
+ <div class="comment-meta-grade" style="width: ' . $intGrade . '%"></div>
601
+ </div><!-- end .comment-meta-grade-bar -->
602
+ </div><!-- end .comment-meta-option -->
603
+ ';
604
+ }
605
+ $return .= '</div>';
606
+
607
+ return $return . $text . '<div class="cwpr_clearfix"></div>';
608
+ }
609
+
610
+ /**
611
+ * Adds min-width for amp support.
612
+ *
613
+ * @param string $value Old value.
614
+ * @param string $width Width value.
615
+ *
616
+ * @return string New css rule.
617
+ */
618
+ public function amp_width_support( $value, $width ) {
619
+ return 'min-width:' . esc_attr( $width ) . '%';
620
+ }
621
+
622
+ /**
623
+ * AMP styles for WPPR review amp page.
624
+ */
625
+ public function amp_styles() {
626
+
627
+ if ( empty( $this->review ) ) {
628
+ return;
629
+ }
630
+ $template_style = $this->review->get_template();
631
+ $amp_cache_key = '_wppr_amp_css_' . str_replace( '.', '_', $this->version ) . '_' . $template_style;
632
+ $output = get_transient( $amp_cache_key );
633
+ if ( empty( $output ) ) {
634
+
635
+ require_once( ABSPATH . 'wp-admin/includes/file.php' );
636
+ WP_Filesystem();
637
+ /**
638
+ * Filesystem variable.
639
+ *
640
+ * @global \WP_Filesystem_Direct $wp_filesystem
641
+ */
642
+ global $wp_filesystem;
643
+ $output = '';
644
+ $output .= $wp_filesystem->get_contents( WPPR_PATH . '/assets/css/common.css' );
645
+ $output .= $wp_filesystem->get_contents( WPPR_PATH . '/assets/css/circle.css' );
646
+ if ( $wp_filesystem->is_readable( WPPR_PATH . '/assets/css/' . $template_style . '.css' ) ) {
647
+ $output .= $wp_filesystem->get_contents( WPPR_PATH . '/assets/css/' . $template_style . '.css' );
648
+ }
649
+ $output .= $wp_filesystem->get_contents( WPPR_PATH . '/assets/css/rating-amp.css' );
650
+ $output .= $this->generate_styles();
651
+ $output = $this->minify_amp_css( $output );
652
+
653
+ set_transient( $amp_cache_key, $output, HOUR_IN_SECONDS );
654
+ }
655
+ echo apply_filters( 'wppr_add_amp_css', $output );
656
+ }
657
+
658
+ /**
659
+ * Minify css for AMP support.
660
+ *
661
+ * @param string $css Raw css.
662
+ *
663
+ * @return string The minified css.
664
+ */
665
+ function minify_amp_css( $css ) {
666
+ // some of the following functions to minimize the css-output are directly taken
667
+ // from the awesome CSS JS Booster: https://github.com/Schepp/CSS-JS-Booster
668
+ // all credits to Christian Schaefer: http://twitter.com/derSchepp
669
+ // remove comments
670
+ $css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css );
671
+ // backup values within single or double quotes
672
+ preg_match_all( '/(\'[^\']*?\'|"[^"]*?")/ims', $css, $hit, PREG_PATTERN_ORDER );
673
+ for ( $i = 0; $i < count( $hit[1] ); $i ++ ) {
674
+ $css = str_replace( $hit[1][ $i ], '##########' . $i . '##########', $css );
675
+ }
676
+ // remove traling semicolon of selector's last property
677
+ $css = preg_replace( '/;[\s\r\n\t]*?}[\s\r\n\t]*/ims', "}\r\n", $css );
678
+ // remove any whitespace between semicolon and property-name
679
+ $css = preg_replace( '/;[\s\r\n\t]*?([\r\n]?[^\s\r\n\t])/ims', ';$1', $css );
680
+ // remove any whitespace surrounding property-colon
681
+ $css = preg_replace( '/[\s\r\n\t]*:[\s\r\n\t]*?([^\s\r\n\t])/ims', ':$1', $css );
682
+ // remove any whitespace surrounding selector-comma
683
+ $css = preg_replace( '/[\s\r\n\t]*,[\s\r\n\t]*?([^\s\r\n\t])/ims', ',$1', $css );
684
+ // remove any whitespace surrounding opening parenthesis
685
+ $css = preg_replace( '/[\s\r\n\t]*{[\s\r\n\t]*?([^\s\r\n\t])/ims', '{$1', $css );
686
+ // remove any whitespace between numbers and units
687
+ $css = preg_replace( '/([\d\.]+)[\s\r\n\t]+(px|em|pt|%)/ims', '$1$2', $css );
688
+ // shorten zero-values
689
+ $css = preg_replace( '/([^\d\.]0)(px|em|pt|%)/ims', '$1', $css );
690
+ // constrain multiple whitespaces
691
+ $css = preg_replace( '/\p{Zs}+/ims', ' ', $css );
692
+ // remove newlines
693
+ $css = str_replace( array( "\r\n", "\r", "\n" ), '', $css );
694
+ $css = str_replace( '!important', '', $css );
695
+ // Restore backupped values within single or double quotes
696
+ for ( $i = 0; $i < count( $hit[1] ); $i ++ ) {
697
+ $css = str_replace( '##########' . $i . '##########', $hit[1][ $i ], $css );
698
+ }
699
+
700
+ return $css;
701
+ }
702
+
703
+ /**
704
+ * Adding Font Awesome at the header for AMP.
705
+ */
706
+ public function wppr_amp_add_fa() {
707
+ echo '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">';
708
+ }
709
+
710
+ /**
711
+ * Handle RTL for rating circle colored part.
712
+ */
713
+ public function rating_circle_bar_styles( $styles, $rating ) {
714
+ $degress = ( is_rtl() ? ( $rating - 100 ) : $rating ) * 3.6;
715
+ return "
716
+ -webkit-transform: rotate({$degress}deg);
717
+ -ms-transform: rotate({$degress}deg);
718
+ transform: rotate({$degress}deg);
719
+ ";
720
+ }
721
+
722
+ /**
723
+ * Handle RTL for rating circle empty part.
724
+ */
725
+ public function rating_circle_fill_styles( $styles, $rating ) {
726
+ if ( is_rtl() ) {
727
+ return '
728
+ -webkit-transform: rotate(0deg);
729
+ -ms-transform: rotate(0deg);
730
+ transform: rotate(0deg);
731
+ ';
732
+ }
733
+ return $styles;
734
+ }
735
+
736
+ }
dist/includes/public/index.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Silence is golden
4
+ *
5
+ * @package WPPR
6
+ * @copyright Copyright (c) 2017, Bogdan Preda
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ * @since 3.0.0
9
+ */
10
+
11
+ /**
12
+ * Nothing to do here.
13
+ */
dist/includes/public/layouts/default-tpl.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Legacy file used for assuring backwards compatibility with old pro version.
4
+ *
5
+ * @deprecated
6
+ * @package WPPR
7
+ */
8
+
9
+ ob_start();
10
+ include_once WPPR_PATH . '/includes/public/layouts/' . $review_object->get_template() . '.php';
11
+ if ( ! isset( $output ) ) {
12
+ $output = '';
13
+ }
14
+ $output .= ob_get_contents();
15
+
16
+ ob_end_clean();
dist/includes/public/layouts/default.php ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPPR front page layout.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @global WPPR_Review_Model $review_object The inherited review object.
8
+ * @copyright Copyright (c) 2017, Bogdan Preda
9
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10
+ * @since 3.0.0
11
+ */
12
+
13
+ $price_raw = $review_object->get_price_raw();
14
+
15
+ $links = $review_object->get_links();
16
+ $multiple_affiliates_class = 'affiliate-button';
17
+ $links = array_filter( $links );
18
+ if ( count( $links ) > 1 ) {
19
+ $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
20
+ }
21
+
22
+ $pros = $review_object->get_pros();
23
+ $cons = $review_object->get_cons();
24
+ $rating = round( $review_object->get_rating() );
25
+ $rating_10 = round( $review_object->get_rating(), 0 ) / 10;
26
+
27
+ ?>
28
+ <div id="wppr-review-<?php echo $review_object->get_ID(); ?>"
29
+ class="wppr-template wppr-template-default <?php echo is_rtl() ? 'rtl' : ''; ?> wppr-review-container <?php echo( empty( $pros ) ? 'wppr-review-no-pros' : '' ); ?> <?php echo( empty( $cons ) ? 'wppr-review-no-cons' : '' ); ?>">
30
+ <section id="review-statistics" class="article-section">
31
+ <div class="review-wrap-up cwpr_clearfix">
32
+ <div class="cwpr-review-top cwpr_clearfix">
33
+ <h2 class="cwp-item"><?php echo esc_html( $review_object->get_name() ); ?></h2>
34
+ <span class="cwp-item-price cwp-item"><?php echo esc_html( empty( $price_raw ) ? '' : $price_raw ); ?></span>
35
+ </div><!-- end .cwpr-review-top -->
36
+ <div class="review-wu-content cwpr_clearfix">
37
+ <div class="review-wu-left">
38
+ <div class="review-wu-left-top">
39
+ <?php
40
+ wppr_default_get_image( $review_object );
41
+ wppr_default_get_rating( $review_object );
42
+ ?>
43
+ </div><!-- end .review-wu-left-top -->
44
+
45
+ <div class="review-wu-bars">
46
+ <?php
47
+ foreach ( $review_object->get_options() as $option ) {
48
+
49
+ ?>
50
+ <div class="rev-option" data-value="
51
+ <?php echo $option['value']; ?>">
52
+ <div class="cwpr_clearfix">
53
+ <span>
54
+ <h3><?php echo esc_html( apply_filters( 'wppr_option_name_html', $option['name'] ) ); ?></h3>
55
+ </span>
56
+ <span><?php echo esc_html( number_format( ( $option['value'] / 10 ), 1 ) ); ?>/10</span>
57
+ </div>
58
+ <ul class="cwpr_clearfix
59
+ <?php echo ' ' . $review_object->get_rating_class( $option['value'] ) . apply_filters( 'wppr_option_custom_icon', '' ); ?>
60
+ ">
61
+ <?php
62
+ $rating = round( $option['value'] / 10 );
63
+ $start_from = is_rtl() ? ( 11 - $rating ) : 1;
64
+ $stop_at = is_rtl() ? 10 : $rating;
65
+ for ( $i = 1; $i <= 10; $i ++ ) {
66
+ ?>
67
+ <li
68
+ <?php
69
+ echo $i >= $start_from && $i <= $stop_at ? ' class="colored"' : '';
70
+ ?>
71
+ ></li>
72
+ <?php } ?>
73
+ </ul>
74
+ </div>
75
+ <?php } ?>
76
+ </div><!-- end .review-wu-bars -->
77
+ </div><!-- end .review-wu-left -->
78
+
79
+ <?php if ( ! empty( $pros ) || ! empty( $cons ) ) : ?>
80
+ <div class="review-wu-right">
81
+ <?php if ( ! empty( $pros ) ) : ?>
82
+ <div class="pros">
83
+ <h2>
84
+ <?php
85
+ echo esc_html(
86
+ apply_filters(
87
+ 'wppr_review_pros_text',
88
+ $review_object->wppr_get_option(
89
+ 'cwppos_pros_text'
90
+ )
91
+ )
92
+ );
93
+ ?>
94
+ </h2>
95
+ <ul>
96
+ <?php
97
+ foreach ( $pros as $pro ) {
98
+ ?>
99
+ <li><?php echo esc_html( $pro ); ?></li>
100
+ <?php
101
+ }
102
+ ?>
103
+ </ul>
104
+ </div><!-- end .pros -->
105
+ <?php
106
+ endif;
107
+ if ( ! empty( $cons ) ) :
108
+ ?>
109
+ <div class="cons">
110
+ <h2>
111
+ <?php
112
+ echo esc_html(
113
+ apply_filters(
114
+ 'wppr_review_cons_text',
115
+ $review_object->wppr_get_option(
116
+ 'cwppos_cons_text'
117
+ )
118
+ )
119
+ );
120
+ ?>
121
+ </h2>
122
+ <ul>
123
+ <?php
124
+ foreach ( $cons as $con ) {
125
+ ?>
126
+
127
+ <li><?php echo esc_html( $con ); ?></li>
128
+
129
+ <?php } ?>
130
+ </ul>
131
+ </div>
132
+
133
+ <?php endif; ?>
134
+ </div><!-- end .review-wu-right -->
135
+ <?php endif; ?>
136
+ </div><!-- end .review-wu-content -->
137
+ </div><!-- end .review-wrap-up -->
138
+ </section>
139
+ <?php
140
+ foreach ( $links as $title => $link ) {
141
+ if ( ! empty( $title ) && ! empty( $link ) ) {
142
+ ?>
143
+ <div class="<?php echo esc_attr( $multiple_affiliates_class ); ?>">
144
+ <a href="<?php echo esc_url( $link ); ?>" rel="nofollow"
145
+ target="_blank"><span><?php echo esc_html( $title ); ?></span> </a>
146
+ </div><!-- end .affiliate-button -->
147
+ <?php
148
+ }
149
+ }
150
+ ?>
151
+ </div>
dist/includes/public/layouts/rating-tpl.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WP Prodact Review front page layout.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ * @deprecated
11
+ */
12
+ _deprecated_file( __FILE__, '3.1.0', 'Bundle version', ' The shortcode is no longer supported using this version. You need to update to the latest premium and lite in order to use this feature.' );
13
+ $review = $review_object->get_review_data();
14
+ $sub_title_info = '';
15
+ $sub_title_info = $review['price'];
16
+ if ( $sub_title_info != '' ) {
17
+ $is_disabled = apply_filters( 'wppr_disable_price_richsnippet', false );
18
+ $currency = preg_replace( '/[0-9.,]/', '', $review['price'] );
19
+ if ( ! $is_disabled ) {
20
+ $country_iso = apply_filters( 'wppr_currency_code', $currency );
21
+ $sub_title_info = '<span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
22
+ <span itemprop="priceCurrency" content="' . $country_iso . '">' . $currency . '</span>
23
+ <span itemprop="price">' . $review['price'] . '</span>
24
+ </span>';
25
+ }
26
+ }
27
+
28
+ $lightbox = '';
29
+ if ( $review_object->wppr_get_option( 'cwppos_lighbox' ) == 'no' ) {
30
+ $lightbox = 'data-lightbox="' . $review['image']['full'] . '"';
31
+ }
32
+ $image_link_url = $review['image']['full'];
33
+ $multiple_affiliates_class = 'affiliate-button';
34
+ $display_links_count = 0;
35
+ foreach ( $review['links'] as $title => $link ) {
36
+ if ( $title != '' && $link != '' ) {
37
+ if ( $review['click'] != 'image' ) {
38
+ $image_link_url = $link;
39
+ }
40
+ $display_links_count ++;
41
+ }
42
+ }
43
+ if ( $display_links_count > 1 ) {
44
+ $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
45
+ }
46
+
47
+ $extra_class = ''; // TODO add check for embeded
48
+
49
+ $output = '
50
+ <div class="review-wu-grade">
51
+ <div class="cwp-review-chart ' . $extra_class . '">
52
+ <span>
53
+ <div class="cwp-review-percentage" data-percent="' . $review['rating'] . '">
54
+ <span class="cwp-review-rating">' . $review['comment_rating'] . '</span>
55
+ </div>
56
+ </span>
57
+ </div><!-- end .chart -->
58
+ </div>
59
+ ';
dist/includes/public/layouts/rich-json-ld.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WP Prodact Review front page layout.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @global WPPR_Review_Model $review_object The review object.
8
+ * @copyright Copyright (c) 2017, Bogdan Preda
9
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10
+ * @since 3.0.0
11
+ */
12
+
13
+ if ( $review_object->wppr_get_option( 'wppr_rich_snippet' ) == 'yes' ) {
14
+ ?>
15
+ <script type="application/ld+json"><?php echo json_encode( $review_object->get_json_ld() ); ?></script>
16
+ <?php
17
+ }
dist/includes/public/layouts/score-tpl.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WP Prodact Review front page layout.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ * @deprecated
11
+ */
12
+
13
+ _deprecated_file( __FILE__, '3.1.0', 'Bundle version', ' The shortcode is no longer supported using this version. You need to update to the latest premium and lite in order to use this feature.' );
14
+ $output = number_format( floor( $review_object->get_rating() ) / 10, 1 );
dist/includes/public/layouts/style1.php ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPPR Template 1.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Popa
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+ ?>
12
+ <div class="wppr-template wppr-template-1 <?php echo is_rtl() ? 'rtl' : ''; ?>">
13
+
14
+ <?php
15
+ // Review info.
16
+ $review_id = $review_object->get_ID();
17
+ $review_pros = $review_object->get_pros();
18
+ $review_cons = $review_object->get_cons();
19
+ $review_rating = $review_object->get_rating();
20
+ $rating_10 = round( $review_rating, 0 ) / 10;
21
+
22
+ $links = $review_object->get_links();
23
+ $multiple_affiliates_class = 'affiliate-button';
24
+
25
+ if ( count( $links ) > 1 ) {
26
+ $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
27
+ }
28
+ $review_image = $review_object->get_small_thumbnail();
29
+ $review_image_link = reset( $links );
30
+
31
+ if ( $review_object->get_click() == 'image' ) {
32
+ $lightbox = 'data-lightbox="' . esc_url( $review_object->get_small_thumbnail() ) . '"';
33
+ $review_image_link = $review_object->get_image();
34
+ }
35
+ ?>
36
+
37
+ <div id="wppr-review-<?php echo $review_id; ?>" class="wppr-review-container">
38
+
39
+ <h2 class="wppr-review-name"><?php echo esc_html( $review_object->get_name() ); ?></h2>
40
+
41
+ <?php
42
+ wppr_display_rating( 'style1', $review_object );
43
+ ?>
44
+
45
+ <div class="wppr-review-grade">
46
+ <div class="wppr-review-grade-number">
47
+ <span class=" <?php echo $review_object->get_rating_class(); ?> ">
48
+ <?php
49
+ // Display rating number.
50
+ echo esc_html( $rating_10 );
51
+ ?>
52
+ </span>
53
+ </div>
54
+ <?php
55
+ // Review image.
56
+ if ( ! empty( $review_image ) ) {
57
+ ?>
58
+ <div class="wppr-review-product-image">
59
+ <a href="<?php echo esc_url( $review_image_link ); ?>" <?php echo $lightbox; ?>
60
+ rel="nofollow" target="_blank" class="wppr-default-img"><img
61
+ src="<?php echo esc_attr( $review_image ); ?>"
62
+ alt="<?php echo esc_attr( $review_object->get_image_alt() ); ?>" class="wppr-product-image"/></a>
63
+ </div>
64
+ <?php } ?>
65
+ <div class="wppr-review-grade-options <?php echo is_rtl() ? 'rtl' : ''; ?>">
66
+ <?php
67
+ foreach ( $review_object->get_options() as $option ) {
68
+ $review_option_rating = $option['value'];
69
+ ?>
70
+ <div class="wppr-review-grade-option">
71
+ <div class="wppr-review-grade-option-header">
72
+ <span><?php echo esc_html( apply_filters( 'wppr_option_name_html', $option['name'] ) ); ?></span>
73
+ <span><?php echo esc_html( number_format( ( $review_option_rating / 10 ), 1 ) ); ?></span>
74
+ </div>
75
+ <div class="wppr-review-grade-option-rating wppr-default <?php echo $review_object->get_rating_class( $review_option_rating ); ?> <?php echo is_rtl() ? 'rtl' : ''; ?>">
76
+ <span class="<?php echo $review_object->get_rating_class( $review_option_rating ); ?>" style="
77
+ <?php
78
+ /**
79
+ * Adds min-width for amp support.
80
+ */
81
+ echo 'width:' . esc_attr( is_rtl() ? ( 100 - $review_option_rating ) : $review_option_rating ) . '%; ';
82
+ echo esc_attr( apply_filters( 'wppr_review_option_rating_css', '', $review_option_rating ) );
83
+ ?>
84
+ "></span>
85
+ </div>
86
+ </div><!-- end .wppr-review-grade-option -->
87
+ <?php } ?>
88
+ </div><!-- end .wppr-review-grade-options -->
89
+ </div><!-- end .wppr-review-grade -->
90
+ <?php
91
+ // Pros & Cons section.
92
+ if ( ! empty( $review_pros ) || ! empty( $review_cons ) ) {
93
+ ?>
94
+ <div class="wppr-review-pros-cons<?php echo ( $review_pros && $review_cons ) ? '' : ' wppr-review-one-column'; ?>">
95
+ <?php
96
+ // Pros.
97
+ if ( ! empty( $review_pros ) ) {
98
+ ?>
99
+ <div class="pros">
100
+ <h3 class="wppr-review-pros-name">
101
+ <?php echo esc_html( apply_filters( 'wppr_review_pros_text', $review_object->wppr_get_option( 'cwppos_pros_text' ) ) ); ?>
102
+ </h3>
103
+ <ul>
104
+ <?php foreach ( $review_pros as $pro ) { ?>
105
+ <li><?php echo esc_html( $pro ); ?></li>
106
+ <?php } ?>
107
+ </ul>
108
+ </div>
109
+ <?php
110
+ }
111
+ // Cons.
112
+ if ( ! empty( $review_cons ) ) {
113
+ ?>
114
+ <div class="cons">
115
+ <h3 class="wppr-review-cons-name">
116
+ <?php echo esc_html( apply_filters( 'wppr_review_pros_text', $review_object->wppr_get_option( 'cwppos_cons_text' ) ) ); ?>
117
+ </h3>
118
+ <ul>
119
+ <?php foreach ( $review_cons as $con ) { ?>
120
+ <li><?php echo esc_html( $con ); ?></li>
121
+ <?php } ?>
122
+ </ul>
123
+ </div>
124
+ <?php } ?>
125
+ </div><!-- end .wppr-review-pros-cons -->
126
+ <?php } ?>
127
+ </div><!-- end .wppr-review-container -->
128
+ <?php
129
+ foreach ( $links as $title => $link ) {
130
+ if ( ! empty( $title ) && ! empty( $link ) ) {
131
+ ?>
132
+ <div class="<?php echo esc_attr( $multiple_affiliates_class ); ?>">
133
+ <a href="<?php echo esc_url( $link ); ?>" rel="nofollow"
134
+ target="_blank"><span><?php echo esc_html( $title ); ?></span> </a>
135
+ </div><!-- end .affiliate-button -->
136
+ <?php
137
+ }
138
+ }
139
+ ?>
140
+ </div>
dist/includes/public/layouts/style2.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPPR Template 2.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Popa
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ * @global WPPR_Review_Model $review_object
11
+ */
12
+ ?>
13
+ <div class="wppr-template wppr-template-2 <?php echo is_rtl() ? 'rtl' : ''; ?>">
14
+ <?php
15
+ // Review info.
16
+ $links = $review_object->get_links();
17
+ $review_id = $review_object->get_ID();
18
+ $review_pros = $review_object->get_pros();
19
+ $review_cons = $review_object->get_cons();
20
+ $review_rating = $review_object->get_rating();
21
+ $review_image = $review_object->get_small_thumbnail();
22
+ $review_image_link = reset( $links );
23
+
24
+ $rating_10 = round( $review_rating, 0 ) / 10;
25
+
26
+ $multiple_affiliates_class = 'affiliate-button';
27
+
28
+ if ( count( $links ) > 1 ) {
29
+ $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
30
+ }
31
+ if ( $review_object->get_click() == 'image' ) {
32
+ $lightbox = 'data-lightbox="' . esc_url( $review_object->get_small_thumbnail() ) . '"';
33
+ $review_image_link = $review_object->get_image();
34
+ }
35
+ ?>
36
+
37
+ <div id="wppr-review-<?php echo $review_id; ?>" class="wppr-review-container">
38
+ <h2 class="wppr-review-name"><?php echo esc_html( $review_object->get_name() ); ?></h2>
39
+ <div class="wppr-review-head<?php echo ( $review_pros && $review_cons ) ? ' wppr-review-with-pros-cons' : ''; ?><?php echo ( $review_image ) ? ' wppr-review-with-image' : ''; ?>">
40
+ <div class="wppr-review-rating <?php echo is_rtl() ? 'rtl' : ''; ?>">
41
+ <span class="wppr-review-rating-grade wppr-p<?php echo esc_attr( round( $review_rating ) ) . ' ' . $review_object->get_rating_class(); ?>">
42
+ <?php
43
+ // Display rating number.
44
+ echo esc_html( $rating_10 );
45
+ ?>
46
+ </span>
47
+ <?php
48
+ // Review image.
49
+ if ( ! empty( $review_image ) ) {
50
+ ?>
51
+ <a href="<?php echo esc_url( $review_image_link ); ?>" <?php echo $lightbox; ?>
52
+ class="wppr-review-product-image wppr-default-img" rel="nofollow" target="_blank"><img
53
+ src="<?php echo esc_attr( $review_image ); ?>"
54
+ alt="<?php echo esc_attr( $review_object->get_image_alt() ); ?>" class="wppr-product-image"/></a>
55
+ <?php } ?>
56
+ <div class="clearfix"></div>
57
+ <?php
58
+ if ( $review_object->wppr_get_option( 'cwppos_show_userreview' ) === 'yes' ) {
59
+ $comments_rating = $review_object->get_comments_rating();
60
+ $number_comments = count( $review_object->get_comments_options() );
61
+ ?>
62
+ <span class="wppr-review-rating-users wppr-p<?php echo esc_attr( round( $comments_rating ) ) . ' ' . $review_object->get_rating_class( $comments_rating ); ?>">
63
+ <?php echo __( 'Users score:', 'wp-product-review' ); ?>
64
+ <strong><?php echo $comments_rating; ?></strong>
65
+ (<?php echo $number_comments; ?> <?php echo __( 'votes', 'wp-product-review' ); ?>)
66
+ </span>
67
+ <?php } ?>
68
+ </div>
69
+ <?php
70
+ // Pros & Cons section.
71
+ if ( ! empty( $review_pros ) || ! empty( $review_cons ) ) {
72
+ // Pros.
73
+ if ( ! empty( $review_pros ) ) {
74
+ ?>
75
+ <div class="wppr-review-pros">
76
+ <h3 class="wppr-review-pros-name">
77
+ <?php echo esc_html( apply_filters( 'wppr_review_pros_text', $review_object->wppr_get_option( 'cwppos_pros_text' ) ) ); ?>
78
+ </h3>
79
+ <ul>
80
+ <?php foreach ( $review_pros as $pro ) { ?>
81
+ <li><?php echo esc_html( $pro ); ?></li>
82
+ <?php } ?>
83
+ </ul>
84
+ </div>
85
+ <?php
86
+ }
87
+ // Cons.
88
+ if ( ! empty( $review_cons ) ) {
89
+ ?>
90
+ <div class="wppr-review-cons">
91
+ <h3 class="wppr-review-cons-name">
92
+ <?php echo esc_html( apply_filters( 'wppr_review_cons_text', $review_object->wppr_get_option( 'cwppos_cons_text' ) ) ); ?>
93
+ </h3>
94
+ <ul>
95
+ <?php foreach ( $review_cons as $con ) { ?>
96
+ <li><?php echo esc_html( $con ); ?></li>
97
+ <?php } ?>
98
+ </ul>
99
+ </div>
100
+ <?php
101
+ }
102
+ }
103
+ ?>
104
+ </div><!-- end .wppr-review-head -->
105
+ <div class="wppr-review-options">
106
+ <?php
107
+ foreach ( $review_object->get_options() as $option ) {
108
+ $review_option_rating = $option['value'];
109
+ ?>
110
+ <div class="wppr-review-option">
111
+ <div class="wppr-review-option-header">
112
+ <span><?php echo esc_html( apply_filters( 'wppr_option_name_html', $option['name'] ) ); ?></span>
113
+ </div>
114
+ <ul class="wppr-review-option-rating <?php echo apply_filters( 'wppr_option_custom_icon', '' ); ?>">
115
+ <?php
116
+ $rating = round( $option['value'] / 10 );
117
+ $start_from = is_rtl() ? ( 11 - $rating ) : 1;
118
+ $stop_at = is_rtl() ? 10 : $rating;
119
+ for ( $i = 1; $i <= 10; $i ++ ) {
120
+ ?>
121
+ <li class="
122
+ <?php
123
+ echo $i >= $start_from && $i <= $stop_at ? $review_object->get_rating_class( $option['value'] ) : ' wppr-default';
124
+ ?>
125
+ ">
126
+
127
+ </li>
128
+ <?php } ?>
129
+ </ul>
130
+ </div><!-- end .wppr-review-option -->
131
+ <?php } ?>
132
+ </div><!-- end .wppr-review-options -->
133
+ <div class="clearfix"></div>
134
+ </div><!-- end .wppr-review-container -->
135
+ <?php
136
+ foreach ( $links as $title => $link ) {
137
+ if ( ! empty( $title ) && ! empty( $link ) ) {
138
+ ?>
139
+ <div class="<?php echo esc_attr( $multiple_affiliates_class ); ?>">
140
+ <a href="<?php echo esc_url( $link ); ?>" rel="nofollow"
141
+ target="_blank"><span><?php echo esc_html( $title ); ?></span> </a>
142
+ </div><!-- end .affiliate-button -->
143
+ <?php
144
+ }
145
+ }
146
+ ?>
147
+ </div>
dist/includes/public/layouts/widget/default.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Default Widget Layout for front end.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ ?>
13
+ <ul>
14
+ <?php
15
+ foreach ( $results as $review ) :
16
+ $review_object = new WPPR_Review_Model( $review['ID'] );
17
+ $product_title_display = ( $instance['post_type'] == true ) ? $review_object->get_name() : get_the_title( $review['ID'] );
18
+ $product_image = $review_object->get_small_thumbnail();
19
+
20
+ if ( strlen( $product_title_display ) > $title_length ) {
21
+ $product_title_display = substr( $product_title_display, 0, $title_length ) . '...';
22
+ }
23
+ ?>
24
+ <li class="cwp-popular-review">
25
+
26
+ <?php
27
+ $wppr_image = false;
28
+ if ( $instance['show_image'] == true && ! empty( $product_image ) ) {
29
+ ?>
30
+ <div class="cwp_rev_image wppr-col">
31
+ <img src="<?php echo $product_image; ?>"
32
+ alt="<?php echo $review_object->get_name(); ?>">
33
+ </div>
34
+ <?php
35
+ $wppr_image = true;
36
+ }
37
+ ?>
38
+
39
+ <div class="wppr-post-title wppr-col<?php echo ( $wppr_image ) ? '' : ' wppr-no-image'; ?>">
40
+ <a href="<?php echo get_the_permalink( $review['ID'] ); ?>" class="wppr-col" title="<?php echo $review_object->get_name(); ?>">
41
+ <?php echo $product_title_display; ?>
42
+ </a>
43
+ </div>
44
+
45
+ <?php
46
+ $review_score = $review_object->get_rating();
47
+ $rating = round( $review_score );
48
+ $rating_10 = round( $review_score, 0 ) / 10;
49
+
50
+ $review_class = $review_object->get_rating_class();
51
+ if ( ! empty( $review_score ) ) {
52
+ ?>
53
+ <div class="review-grade-widget wppr-col">
54
+ <div class="review-wu-grade-content">
55
+ <div class="wppr-c100
56
+ <?php
57
+ echo esc_attr( ' wppr-p' . $rating ) . ' ' . esc_attr( $review_class );
58
+ ?>
59
+ ">
60
+ <span><?php echo esc_html( $rating_10 ); ?></span>
61
+ <div class="wppr-slice">
62
+ <div class="wppr-bar" style="<?php echo apply_filters( 'wppr_rating_circle_bar_styles', '', $rating ); ?>"></div>
63
+ <div class="wppr-fill" style="<?php echo apply_filters( 'wppr_rating_circle_fill_styles', '', $rating ); ?>"></div>
64
+ </div>
65
+ <div class="wppr-slice-center"></div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <?php } ?>
70
+ </li>
71
+ <?php
72
+ endforeach;
73
+ ?>
74
+ </ul>
dist/includes/public/layouts/widget/style 1.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Style One Widget Layout for front end.
4
+ *
5
+ * @package WPPR
6
+ * @subpackage Layouts
7
+ * @copyright Copyright (c) 2017, Bogdan Preda
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 3.0.0
10
+ */
11
+
12
+ // @codingStandardsIgnoreStart
13
+ ?>
14
+ <div class="wppr-prodlist">
15
+ <?php
16
+ foreach ( $results as $review ) :
17
+
18
+ $review_object = new WPPR_Review_Model( $review['ID'] );
19
+ $product_image = $review_object->get_small_thumbnail();
20
+ $product_title = ( $instance['post_type'] == true ) ? $review_object->get_name() : get_the_title( $review['ID'] );
21
+ $product_title_display = $product_title;
22
+ if ( strlen( $product_title_display ) > $title_length ) {
23
+ $product_title_display = substr( $product_title_display, 0, $title_length ) . '...';
24
+ }
25
+ $links = $review_object->get_links();
26
+ $affiliate_link = reset( $links );
27
+ $review_link = get_the_permalink( $review['ID'] );
28
+
29
+ $showingImg = $instance['show_image'] == true && ! empty( $product_image );
30
+ ?>
31
+
32
+ <div class="wppr-prodrow">
33
+ <?php if ( $showingImg ) { ?>
34
+ <div class="wppr-prodrowleft">
35
+ <a href="<?php echo $review_link; ?>" class="wppr-col" title="<?php echo $product_title; ?>">
36
+ <img class="cwp_rev_image wppr-col" src="<?php echo $product_image; ?>"
37
+ alt="<?php echo $product_title; ?>"/>
38
+ </a>
39
+ </div>
40
+ <?php
41
+ }
42
+ ?>
43
+ <div class="wppr-prodrowright <?php echo $showingImg ? 'wppr-prodrowrightadjust' : '' ?>">
44
+ <p><strong><?php echo $product_title_display; ?></strong></p>
45
+ <?php
46
+ $review_score = $review_object->get_rating();
47
+
48
+ if ( ! empty( $review_score ) ) {
49
+ if ( $instance['cwp_tp_rating_type'] == 'round' ) {
50
+ ?>
51
+ <div class="review-grade-widget wppr-col">
52
+ <div class="cwp-review-chart relative">
53
+ <div class="cwp-review-percentage" data-percent="<?php echo $review_score; ?>">
54
+ <span></span></div>
55
+ </div><!-- end .chart -->
56
+ </div>
57
+ <div class="clear"></div>
58
+ <?php
59
+ } else {
60
+ wppr_display_rating_stars( 'style1-widget', $review_object, false );
61
+ }
62
+ }
63
+ ?>
64
+ <p class="wppr-style1-buttons">
65
+ <?php
66
+ $link = "<a href='{$affiliate_link}' rel='nofollow' target='_blank' class='wppr-bttn'>" . __( $instance['cwp_tp_buynow'], 'wp-product-review' ) . '</a>';
67
+ if ( ! empty( $instance['cwp_tp_buynow'] ) ) {
68
+ echo apply_filters( 'wppr_widget_style1_buynow_link', $link, $review['ID'], $affiliate_link, $instance['cwp_tp_buynow'] );
69
+ }
70
+
71
+ $link = "<a href='{$review_link}' rel='nofollow' target='_blank' class='wppr-bttn'>" . __( $instance['cwp_tp_readreview'], 'wp-product-review' ) . '</a>';
72
+ if ( ! empty( $instance['cwp_tp_readreview'] ) ) {
73
+ echo apply_filters( 'wppr_widget_style1_readreview_link', $link, $review['ID'], $review_link, $instance['cwp_tp_readreview'] );
74
+ }
75
+ ?>
76
+ </p>
77
+ </div>
78
+ <div class="clear"></div>
79
+ </div>
80
+ <?php endforeach; ?>
81
+ </div>
dist/index.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Silence is golden
4
+ *
5
+ * @package WPPR
6
+ * @copyright Copyright (c) 2017, Bogdan Preda
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
+ * @since 3.0.0
9
+ */
10
+
11
+ /**
12
+ * Nothing to do here.
13
+ */
dist/languages/cwppos-en_EN.mo ADDED
Binary file
dist/languages/cwppos-en_EN.po ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Wp Product Review\n"
4
+ "POT-Creation-Date: 2014-07-28 20:58+0100\n"
5
+ "PO-Revision-Date: 2014-07-28 20:58+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: ThemeIsle <friends@themeisle.com>\n"
8
+ "Language: English\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.5.5\n"
13
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
14
+ "X-Poedit-Basepath: ../\n"
15
+ "X-Poedit-SearchPath-0: .\n"
16
+ "X-Poedit-SearchPath-1: inc\n"
17
+
18
+ #: admin/inc/render.php:224
19
+ msgid "Normal"
20
+ msgstr ""
21
+
22
+ #: admin/inc/render.php:225
23
+ msgid "Italic"
24
+ msgstr ""
25
+
26
+ #: admin/inc/render.php:226
27
+ msgid "Bold"
28
+ msgstr ""
29
+
30
+ #: admin/inc/render.php:227
31
+ msgid "Bold Italic"
32
+ msgstr ""
33
+
34
+ #: admin/inc/render.php:279
35
+ msgid "No Repeat"
36
+ msgstr ""
37
+
38
+ #: admin/inc/render.php:280
39
+ msgid "Repeat Horizontally"
40
+ msgstr ""
41
+
42
+ #: admin/inc/render.php:281
43
+ msgid "Repeat Vertically"
44
+ msgstr ""
45
+
46
+ #: admin/inc/render.php:282
47
+ msgid "Repeat All"
48
+ msgstr ""
49
+
50
+ #: admin/inc/render.php:287
51
+ msgid "Top Left"
52
+ msgstr ""
53
+
54
+ #: admin/inc/render.php:288
55
+ msgid "Top Center"
56
+ msgstr ""
57
+
58
+ #: admin/inc/render.php:289
59
+ msgid "Top Right"
60
+ msgstr ""
61
+
62
+ #: admin/inc/render.php:290
63
+ msgid "Middle Left"
64
+ msgstr ""
65
+
66
+ #: admin/inc/render.php:291
67
+ msgid "Middle Center"
68
+ msgstr ""
69
+
70
+ #: admin/inc/render.php:292
71
+ msgid "Middle Right"
72
+ msgstr ""
73
+
74
+ #: admin/inc/render.php:293
75
+ msgid "Bottom Left"
76
+ msgstr ""
77
+
78
+ #: admin/inc/render.php:294
79
+ msgid "Bottom Center"
80
+ msgstr ""
81
+
82
+ #: admin/inc/render.php:295
83
+ msgid "Bottom Right"
84
+ msgstr ""
85
+
86
+ #: admin/inc/render.php:300
87
+ msgid "Scroll Normally"
88
+ msgstr ""
89
+
90
+ #: admin/inc/render.php:301
91
+ msgid "Fixed in Place"
92
+ msgstr ""
93
+
94
+ #: admin/layout/main_page.php:12
95
+ msgid "Buy the PRO version"
96
+ msgstr ""
97
+
98
+ #: admin/layout/main_page.php:14
99
+ msgid "Recommended Review Themes"
100
+ msgstr ""
101
+
102
+ #: admin/layout/main_page.php:16
103
+ msgid "Contact us"
104
+ msgstr ""
105
+
106
+ #: admin/layout/main_page.php:30 admin/layout/main_page.php:70
107
+ msgid "Save All Changes"
108
+ msgstr ""
109
+
110
+ #: admin/layout/main_page.php:33 admin/layout/main_page.php:73
111
+ msgid "Options Reset"
112
+ msgstr ""
113
+
114
+ #: inc/class-remote-notification-client.php:260
115
+ msgid "Dismiss notification"
116
+ msgstr ""
117
+
118
+ #: inc/class-remote-notification-client.php:262
119
+ msgid "Dismiss"
120
+ msgstr ""
121
+
122
+ #: inc/cwp_frontpage.php:1
123
+ msgid "No image added."
124
+ msgstr ""
125
+
126
+ #: inc/cwp_frontpage.php:1
127
+ msgid "Default Feature "
128
+ msgstr ""
129
+
130
+ #: inc/cwp_metabox.php:59
131
+ msgid "Product Details"
132
+ msgstr ""
133
+
134
+ #: inc/cwp_metabox.php:61
135
+ msgid "Specify the general details for the reviewed product."
136
+ msgstr ""
137
+
138
+ #: inc/cwp_metabox.php:75
139
+ msgid "Product Name"
140
+ msgstr ""
141
+
142
+ #: inc/cwp_metabox.php:85
143
+ msgid "Product Image"
144
+ msgstr ""
145
+
146
+ #: inc/cwp_metabox.php:87
147
+ msgid "Choose or Upload an Image"
148
+ msgstr ""
149
+
150
+ #: inc/cwp_metabox.php:98
151
+ msgid "Affiliate Button Text"
152
+ msgstr ""
153
+
154
+ #: inc/cwp_metabox.php:108
155
+ msgid "Affiliate Link"
156
+ msgstr ""
157
+
158
+ #: inc/cwp_metabox.php:125
159
+ msgid "Product Options Setting"
160
+ msgstr ""
161
+
162
+ #: inc/cwp_metabox.php:126
163
+ msgid ""
164
+ "Insert your options and their grades. Grading must be done <b><i>from 0 to "
165
+ "100</i></b>. In order to be able to automatically preload your settings from "
166
+ "another posts, you need to <a href='https://themeisle.com/plugins/wp-product-review-pro-add-on/' target='_blank'>Upgrade to PRO</a>."
167
+ msgstr ""
168
+
169
+ #: inc/cwp_metabox.php:128 inc/cwp_metabox.php:133
170
+ msgid "Preload Info"
171
+ msgstr ""
172
+
173
+ #: inc/cwp_metabox.php:205
174
+ msgid "Pro Features"
175
+ msgstr ""
176
+
177
+ #: inc/cwp_metabox.php:207
178
+ msgid "Insert product's pro features below."
179
+ msgstr ""
180
+
181
+ #: inc/cwp_metabox.php:279
182
+ msgid "Cons Features"
183
+ msgstr ""
184
+
185
+ #: inc/cwp_metabox.php:281
186
+ msgid "Insert product's cons features below."
187
+ msgstr ""
188
+
189
+ #: inc/cwp_top_products_widget.php:21
190
+ msgid "WP Product Review Top Products Widget"
191
+ msgstr ""
192
+
193
+ #: inc/cwp_top_products_widget.php:27
194
+ msgid "This widget displays the top products based on their rating."
195
+ msgstr ""
196
+
197
+ #: inc/cwp_top_products_widget.php:176
198
+ msgid "Top Products"
199
+ msgstr ""
200
+
201
+ #: inc/cwp_top_products_widget.php:178
202
+ msgid "10"
203
+ msgstr ""
204
+
205
+ #: inc/cwp_top_products_widget.php:202
206
+ msgid "Title:"
207
+ msgstr ""
208
+
209
+ #: inc/cwp_top_products_widget.php:212
210
+ msgid "Number of posts to show:"
211
+ msgstr ""
212
+
213
+ #: inc/cwp_top_products_widget.php:224
214
+ msgid "Category:"
215
+ msgstr ""
216
+
217
+ #: inc/review-preloader.php:42
218
+ msgid "Options"
219
+ msgstr ""
220
+
221
+ #: inc/review-preloader.php:56
222
+ msgid "Pros"
223
+ msgstr ""
224
+
225
+ #: inc/review-preloader.php:70
226
+ msgid "Cons"
227
+ msgstr ""
dist/languages/cwppos-fr_FR.mo ADDED
Binary file
dist/languages/cwppos-fr_FR.po ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Wp Product Review\n"
4
+ "POT-Creation-Date: 2014-07-28 20:58+0100\n"
5
+ "PO-Revision-Date: 2014-08-28 18:00+0100\n"
6
+ "Last-Translator: Jacques Soulé <jsoule2010@gmail.com>\n"
7
+ "Language-Team: ThemeIsle <friends@themeisle.com>\n"
8
+ "Language: English\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.5.5\n"
13
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
14
+ "X-Poedit-Basepath: ../\n"
15
+ "X-Poedit-SearchPath-0: .\n"
16
+ "X-Poedit-SearchPath-1: inc\n"
17
+
18
+ #: admin/inc/render.php:224
19
+ msgid "Normal"
20
+ msgstr "Normal"
21
+
22
+ #: admin/inc/render.php:225
23
+ msgid "Italic"
24
+ msgstr "Italique"
25
+
26
+ #: admin/inc/render.php:226
27
+ msgid "Bold"
28
+ msgstr "Gras"
29
+
30
+ #: admin/inc/render.php:227
31
+ msgid "Bold Italic"
32
+ msgstr "Italique gras"
33
+
34
+ #: admin/inc/render.php:279
35
+ msgid "No Repeat"
36
+ msgstr "Ne pas répéter"
37
+
38
+ #: admin/inc/render.php:280
39
+ msgid "Repeat Horizontally"
40
+ msgstr "Répéter horizontalement"
41
+
42
+ #: admin/inc/render.php:281
43
+ msgid "Repeat Vertically"
44
+ msgstr "Répéter verticalement"
45
+
46
+ #: admin/inc/render.php:282
47
+ msgid "Repeat All"
48
+ msgstr "Tour répéter"
49
+
50
+ #: admin/inc/render.php:287
51
+ msgid "Top Left"
52
+ msgstr "En haut à gauche"
53
+
54
+ #: admin/inc/render.php:288
55
+ msgid "Top Center"
56
+ msgstr "En haut au centre"
57
+
58
+ #: admin/inc/render.php:289
59
+ msgid "Top Right"
60
+ msgstr "En haut à droite"
61
+
62
+ #: admin/inc/render.php:290
63
+ msgid "Middle Left"
64
+ msgstr "Au milieu à gauche"
65
+
66
+ #: admin/inc/render.php:291
67
+ msgid "Middle Center"
68
+ msgstr "Au milieu au centre"
69
+
70
+ #: admin/inc/render.php:292
71
+ msgid "Middle Right"
72
+ msgstr "Au milieu à droite"
73
+
74
+ #: admin/inc/render.php:293
75
+ msgid "Bottom Left"
76
+ msgstr "En bas à gauche"
77
+
78
+ #: admin/inc/render.php:294
79
+ msgid "Bottom Center"
80
+ msgstr "En bas au centre"
81
+
82
+ #: admin/inc/render.php:295
83
+ msgid "Bottom Right"
84
+ msgstr "En bas à droite"
85
+
86
+ #: admin/inc/render.php:300
87
+ msgid "Scroll Normally"
88
+ msgstr "Faire défiler normalement"
89
+
90
+ #: admin/inc/render.php:301
91
+ msgid "Fixed in Place"
92
+ msgstr "Laisser en place"
93
+
94
+ #: admin/layout/main_page.php:12
95
+ msgid "Buy the PRO version"
96
+ msgstr "Acheter la version PRO"
97
+
98
+ #: admin/layout/main_page.php:14
99
+ msgid "Recommended Review Themes"
100
+ msgstr "Les Thèmes Review recommandés"
101
+
102
+ #: admin/layout/main_page.php:16
103
+ msgid "Contact us"
104
+ msgstr "Nous contacter"
105
+
106
+ #: admin/layout/main_page.php:30 admin/layout/main_page.php:70
107
+ msgid "Save All Changes"
108
+ msgstr "Sauvegarder tous les changements"
109
+
110
+ #: admin/layout/main_page.php:33 admin/layout/main_page.php:73
111
+ msgid "Options Reset"
112
+ msgstr "Options de réinitialisation"
113
+
114
+ #: inc/class-remote-notification-client.php:260
115
+ msgid "Dismiss notification"
116
+ msgstr "Notification de rejet"
117
+
118
+ #: inc/class-remote-notification-client.php:262
119
+ msgid "Dismiss"
120
+ msgstr "Rejeter"
121
+
122
+ #: inc/cwp_frontpage.php:1
123
+ msgid "No image added."
124
+ msgstr "Aucune image ajoutée."
125
+
126
+ #: inc/cwp_frontpage.php:1
127
+ msgid "Default Feature "
128
+ msgstr "Fonctionnalité par défaut"
129
+
130
+ #: inc/cwp_metabox.php:59
131
+ msgid "Product Details"
132
+ msgstr "Détails du produit"
133
+
134
+ #: inc/cwp_metabox.php:61
135
+ msgid "Specify the general details for the reviewed product."
136
+ msgstr "Spécifiez les détails généraux du produit concerné."
137
+
138
+ #: inc/cwp_metabox.php:75
139
+ msgid "Product Name"
140
+ msgstr "Nom du produit"
141
+
142
+ #: inc/cwp_metabox.php:85
143
+ msgid "Product Image"
144
+ msgstr "Image du produit"
145
+
146
+ #: inc/cwp_metabox.php:87
147
+ msgid "Choose or Upload an Image"
148
+ msgstr "Choisir ou télécharger une Image"
149
+
150
+ #: inc/cwp_metabox.php:98
151
+ msgid "Affiliate Button Text"
152
+ msgstr "Texte du bouton d'affiliation"
153
+
154
+ #: inc/cwp_metabox.php:108
155
+ msgid "Affiliate Link"
156
+ msgstr "Lien d'affiliation"
157
+
158
+ #: inc/cwp_metabox.php:125
159
+ msgid "Product Options Setting"
160
+ msgstr "Réglage des Options du produit"
161
+
162
+ #: inc/cwp_metabox.php:126
163
+ msgid ""
164
+ "Insert your options and their grades. Grading must be done <b><i>from 0 to "
165
+ "100</i></b>. In order to be able to automatically preload your settings from "
166
+ "another posts, you need to <a href='https://themeisle.com/plugins/wp-product-review-pro-add-on/' target='_blank'>Upgrade to PRO</a>."
167
+ msgstr ""
168
+ "Insérer vos options et leurs notes. Le classement doit être fait <b><i>entre "
169
+ "0 et 100</i></b>. Pour pouvoir pré-charger automatiquement vos paramètres "
170
+ "depuis un autre article, vous devez <a href='https://themeisle.com/plugins/wp-product-review-pro-add-on/' target='_blank'> mettre à niveau vers PRO</a>."
171
+
172
+ #: inc/cwp_metabox.php:128 inc/cwp_metabox.php:133
173
+ msgid "Preload Info"
174
+ msgstr "Pré-charger Info"
175
+
176
+ #: inc/cwp_metabox.php:205
177
+ msgid "Pro Features"
178
+ msgstr "Fonctionnalités Pro"
179
+
180
+ #: inc/cwp_metabox.php:207
181
+ msgid "Insert product's pro features below."
182
+ msgstr "Insérer les fonctionnalités pro de produit ci-dessous."
183
+
184
+ #: inc/cwp_metabox.php:279
185
+ msgid "Cons Features"
186
+ msgstr "Fonctionnalités Contre"
187
+
188
+ #: inc/cwp_metabox.php:281
189
+ msgid "Insert product's cons features below."
190
+ msgstr "Insérer ci-dessous les fonctionnalités contre ce produit."
191
+
192
+ #: inc/cwp_top_products_widget.php:21
193
+ msgid "WP Product Review Top Products Widget"
194
+ msgstr "Widget des Top Produits de WP Product Review "
195
+
196
+ #: inc/cwp_top_products_widget.php:27
197
+ msgid "This widget displays the top products based on their rating."
198
+ msgstr ""
199
+ "Ce widget affiche les meilleurs produits en fonction de leur classement."
200
+
201
+ #: inc/cwp_top_products_widget.php:176
202
+ msgid "Top Products"
203
+ msgstr "Top Produits"
204
+
205
+ #: inc/cwp_top_products_widget.php:178
206
+ msgid "10"
207
+ msgstr "10"
208
+
209
+ #: inc/cwp_top_products_widget.php:202
210
+ msgid "Title:"
211
+ msgstr "Titre:"
212
+
213
+ #: inc/cwp_top_products_widget.php:212
214
+ msgid "Number of posts to show:"
215
+ msgstr "Nombre d'articles à afficher:"
216
+
217
+ #: inc/cwp_top_products_widget.php:224
218
+ msgid "Category:"
219
+ msgstr "Catégorie:"
220
+
221
+ #: inc/review-preloader.php:42
222
+ msgid "Options"
223
+ msgstr "Options"
224
+
225
+ #: inc/review-preloader.php:56
226
+ msgid "Pros"
227
+ msgstr "Pour"
228
+
229
+ #: inc/review-preloader.php:70
230
+ msgid "Cons"
231
+ msgstr "Contre"
dist/languages/cwppos-sk_SK.mo ADDED
Binary file
dist/languages/cwppos-sk_SK.po ADDED
@@ -0,0 +1,232 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Wp Product Review\n"
4
+ "POT-Creation-Date: 2014-07-28 20:58+0100\n"
5
+ "PO-Revision-Date: 2014-08-02 18:19+0100\n"
6
+ "Last-Translator: Patrik Žec (PATWIST) <patrik.zec@gmail.com>\n"
7
+ "Language-Team: Patrik Žec (PATWIST), www.patwist.com <patrik.zec@gmail.com>\n"
8
+ "Language: sk_SK\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.6.4\n"
13
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;_e;__\n"
14
+ "X-Poedit-Basepath: ../\n"
15
+ "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+ "X-Poedit-SearchPath-1: inc\n"
18
+
19
+ #: admin/inc/render.php:224
20
+ msgid "Normal"
21
+ msgstr "Normálny"
22
+
23
+ #: admin/inc/render.php:225
24
+ msgid "Italic"
25
+ msgstr "Kurzíva"
26
+
27
+ #: admin/inc/render.php:226
28
+ msgid "Bold"
29
+ msgstr "Tučné"
30
+
31
+ #: admin/inc/render.php:227
32
+ msgid "Bold Italic"
33
+ msgstr "Tučná kurzíva"
34
+
35
+ #: admin/inc/render.php:279
36
+ msgid "No Repeat"
37
+ msgstr "Neopakovať"
38
+
39
+ #: admin/inc/render.php:280
40
+ msgid "Repeat Horizontally"
41
+ msgstr "Opakovať horizontálne"
42
+
43
+ #: admin/inc/render.php:281
44
+ msgid "Repeat Vertically"
45
+ msgstr "Opakovať vertikálne"
46
+
47
+ #: admin/inc/render.php:282
48
+ msgid "Repeat All"
49
+ msgstr "Opakovať všetko"
50
+
51
+ #: admin/inc/render.php:287
52
+ msgid "Top Left"
53
+ msgstr "Vľavo hore"
54
+
55
+ #: admin/inc/render.php:288
56
+ msgid "Top Center"
57
+ msgstr "Vľavo v strede"
58
+
59
+ #: admin/inc/render.php:289
60
+ msgid "Top Right"
61
+ msgstr "Vpravo hore"
62
+
63
+ #: admin/inc/render.php:290
64
+ msgid "Middle Left"
65
+ msgstr "Vľavo v strede"
66
+
67
+ #: admin/inc/render.php:291
68
+ msgid "Middle Center"
69
+ msgstr "V strede"
70
+
71
+ #: admin/inc/render.php:292
72
+ msgid "Middle Right"
73
+ msgstr "Vpravo v strede"
74
+
75
+ #: admin/inc/render.php:293
76
+ msgid "Bottom Left"
77
+ msgstr "Vľavo dole"
78
+
79
+ #: admin/inc/render.php:294
80
+ msgid "Bottom Center"
81
+ msgstr "V strede dole"
82
+
83
+ #: admin/inc/render.php:295
84
+ msgid "Bottom Right"
85
+ msgstr "Vpravo dole"
86
+
87
+ #: admin/inc/render.php:300
88
+ msgid "Scroll Normally"
89
+ msgstr "Posúvať normálne"
90
+
91
+ #: admin/inc/render.php:301
92
+ msgid "Fixed in Place"
93
+ msgstr "Upevniť na mieste"
94
+
95
+ #: admin/layout/main_page.php:12
96
+ msgid "Buy the PRO version"
97
+ msgstr "Kúpiť PRO verziu"
98
+
99
+ #: admin/layout/main_page.php:14
100
+ msgid "Recommended Review Themes"
101
+ msgstr "Odporúčané Témy pre recenzie"
102
+
103
+ #: admin/layout/main_page.php:16
104
+ msgid "Contact us"
105
+ msgstr "Kontaktujte nás"
106
+
107
+ #: admin/layout/main_page.php:30 admin/layout/main_page.php:70
108
+ msgid "Save All Changes"
109
+ msgstr "Uložiť všetky zmeny"
110
+
111
+ #: admin/layout/main_page.php:33 admin/layout/main_page.php:73
112
+ msgid "Options Reset"
113
+ msgstr "Obnoviť nastavenia"
114
+
115
+ #: inc/class-remote-notification-client.php:260
116
+ msgid "Dismiss notification"
117
+ msgstr "Zamietnuť oznámenia"
118
+
119
+ #: inc/class-remote-notification-client.php:262
120
+ msgid "Dismiss"
121
+ msgstr "Zamietnuť"
122
+
123
+ #: inc/cwp_frontpage.php:1
124
+ msgid "No image added."
125
+ msgstr "Nie je pridaný žiadny obrázok."
126
+
127
+ #: inc/cwp_frontpage.php:1
128
+ msgid "Default Feature "
129
+ msgstr "Štandardní funkcie"
130
+
131
+ #: inc/cwp_metabox.php:59
132
+ msgid "Product Details"
133
+ msgstr "Detaily produktu"
134
+
135
+ #: inc/cwp_metabox.php:61
136
+ msgid "Specify the general details for the reviewed product."
137
+ msgstr "Zadajte všeobecné informácie o recenzovanom produkte."
138
+
139
+ #: inc/cwp_metabox.php:75
140
+ msgid "Product Name"
141
+ msgstr "Názov produktu"
142
+
143
+ #: inc/cwp_metabox.php:85
144
+ msgid "Product Image"
145
+ msgstr "Obrázok produktu"
146
+
147
+ #: inc/cwp_metabox.php:87
148
+ msgid "Choose or Upload an Image"
149
+ msgstr "Vyberte alebo nahrajte obrázok"
150
+
151
+ #: inc/cwp_metabox.php:98
152
+ msgid "Affiliate Button Text"
153
+ msgstr "Text affiliate tlačidla"
154
+
155
+ #: inc/cwp_metabox.php:108
156
+ msgid "Affiliate Link"
157
+ msgstr "Affiliate odkaz"
158
+
159
+ #: inc/cwp_metabox.php:125
160
+ msgid "Product Options Setting"
161
+ msgstr "Nastavenie možností výrobku"
162
+
163
+ #: inc/cwp_metabox.php:126
164
+ msgid ""
165
+ "Insert your options and their grades. Grading must be done <b><i>from 0 to "
166
+ "100</i></b>. In order to be able to automatically preload your settings from "
167
+ "another posts, you need to <a href='https://themeisle.com/plugins/wp-product-review-pro-add-on/' target='_blank'>Upgrade to PRO</a>."
168
+ msgstr ""
169
+ "Vložte informácie a hodnotenie. Hodnotenie musí byť vykonané <b><i>od 0 do "
170
+ "100</i></b>. Aby bolo možné načítať prednastavenie z iného príspevku je "
171
+ "potrebná <a href='https://themeisle.com/plugins/wp-product-review-pro-add-on/' "
172
+ "target='_blank'>PRO verzia</a>."
173
+
174
+ #: inc/cwp_metabox.php:128 inc/cwp_metabox.php:133
175
+ msgid "Preload Info"
176
+ msgstr "Info prednastavenia"
177
+
178
+ #: inc/cwp_metabox.php:205
179
+ msgid "Pro Features"
180
+ msgstr "PRO funkcie"
181
+
182
+ #: inc/cwp_metabox.php:207
183
+ msgid "Insert product's pro features below."
184
+ msgstr "Napíšte najlepšie funkcie (výhody) produktu."
185
+
186
+ #: inc/cwp_metabox.php:279
187
+ msgid "Cons Features"
188
+ msgstr "Nevýhody"
189
+
190
+ #: inc/cwp_metabox.php:281
191
+ msgid "Insert product's cons features below."
192
+ msgstr "Napíšte nevýhody produktu."
193
+
194
+ #: inc/cwp_top_products_widget.php:21
195
+ msgid "WP Product Review Top Products Widget"
196
+ msgstr "WP Recenzie produktov widget"
197
+
198
+ #: inc/cwp_top_products_widget.php:27
199
+ msgid "This widget displays the top products based on their rating."
200
+ msgstr "Tento widget zobrazuje produkty s najlepším hodnotením."
201
+
202
+ #: inc/cwp_top_products_widget.php:176
203
+ msgid "Top Products"
204
+ msgstr "Najlepšie produkty"
205
+
206
+ #: inc/cwp_top_products_widget.php:178
207
+ msgid "10"
208
+ msgstr "10"
209
+
210
+ #: inc/cwp_top_products_widget.php:202
211
+ msgid "Title:"
212
+ msgstr "Názov:"
213
+
214
+ #: inc/cwp_top_products_widget.php:212
215
+ msgid "Number of posts to show:"
216
+ msgstr "Počet príspevkov na zobrázenie:"
217
+
218
+ #: inc/cwp_top_products_widget.php:224
219
+ msgid "Category:"
220
+ msgstr "Kategória:"
221
+
222
+ #: inc/review-preloader.php:42
223
+ msgid "Options"
224
+ msgstr "Voľby"
225
+
226
+ #: inc/review-preloader.php:56
227
+ msgid "Pros"
228
+ msgstr "Výhody"
229
+
230
+ #: inc/review-preloader.php:70
231
+ msgid "Cons"
232
+ msgstr "Nevýhody"
dist/languages/wp-product-review.pot ADDED
@@ -0,0 +1,622 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2018 ThemeIsle
2
+ # This file is distributed under the no.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WP Product Review Lite 3.4.2\n"
6
+ "Report-Msgid-Bugs-To: https://github.com/Codeinwp/wp-product-review/issues\n"
7
+ "POT-Creation-Date: 2018-03-20 12:29:55+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
13
+ "Language-Team: Themeisle Translate <friends@themeisle.com>\n"
14
+ "X-Generator: grunt-wp-i18n 0.5.4\n"
15
+ "X-Poedit-KeywordsList: "
16
+ "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
17
+ "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
18
+ "Language: en\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+ "X-Poedit-Basepath: ../\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-Bookmarks: \n"
25
+ "X-Textdomain-Support: yes\n"
26
+
27
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:112
28
+ msgid "10"
29
+ msgstr ""
30
+
31
+ #: includes/admin/class-wppr-admin.php:131
32
+ msgid "WP Product Review"
33
+ msgstr ""
34
+
35
+ #: includes/admin/class-wppr-admin.php:131
36
+ msgid "Product Review"
37
+ msgstr ""
38
+
39
+ #: includes/admin/class-wppr-admin.php:138
40
+ msgid "More Features"
41
+ msgstr ""
42
+
43
+ #: includes/admin/class-wppr-admin.php:138
44
+ msgid "More Features "
45
+ msgstr ""
46
+
47
+ #: includes/admin/class-wppr-admin.php:283
48
+ msgid "Show All"
49
+ msgstr ""
50
+
51
+ #: includes/admin/class-wppr-admin.php:285
52
+ msgid "Show only Reviews"
53
+ msgstr ""
54
+
55
+ #: includes/admin/class-wppr-admin.php:326
56
+ msgid "Review"
57
+ msgstr ""
58
+
59
+ #: includes/admin/class-wppr-editor.php:58
60
+ msgid "Product Review Extra Settings"
61
+ msgstr ""
62
+
63
+ #: includes/admin/class-wppr-global-settings.php:61
64
+ msgid "General settings"
65
+ msgstr ""
66
+
67
+ #: includes/admin/class-wppr-global-settings.php:62
68
+ msgid "Rating colors"
69
+ msgstr ""
70
+
71
+ #: includes/admin/class-wppr-global-settings.php:63
72
+ msgid "Typography"
73
+ msgstr ""
74
+
75
+ #: includes/admin/class-wppr-global-settings.php:64
76
+ msgid "Buy button"
77
+ msgstr ""
78
+
79
+ #: includes/admin/class-wppr-global-settings.php:72
80
+ msgid "Position of the review box"
81
+ msgstr ""
82
+
83
+ #: includes/admin/class-wppr-global-settings.php:73
84
+ msgid ""
85
+ "You display the review using the shortcode available in the pro version "
86
+ "<code> [P_REVIEW post_id=3067 visual='full']</code>"
87
+ msgstr ""
88
+
89
+ #: includes/admin/class-wppr-global-settings.php:76
90
+ msgid "After content"
91
+ msgstr ""
92
+
93
+ #: includes/admin/class-wppr-global-settings.php:77
94
+ msgid "Before content"
95
+ msgstr ""
96
+
97
+ #: includes/admin/class-wppr-global-settings.php:78
98
+ msgid "Manually placed"
99
+ msgstr ""
100
+
101
+ #: includes/admin/class-wppr-global-settings.php:84
102
+ msgid "Show review comment"
103
+ msgstr ""
104
+
105
+ #: includes/admin/class-wppr-global-settings.php:85
106
+ msgid "Activate comment review user"
107
+ msgstr ""
108
+
109
+ #: includes/admin/class-wppr-global-settings.php:88
110
+ #: includes/admin/class-wppr-global-settings.php:144
111
+ #: includes/admin/class-wppr-global-settings.php:155
112
+ #: includes/admin/class-wppr-global-settings.php:166
113
+ #: includes/admin/layouts/editor-default-tpl.php:32
114
+ msgid "Yes"
115
+ msgstr ""
116
+
117
+ #: includes/admin/class-wppr-global-settings.php:89
118
+ #: includes/admin/class-wppr-global-settings.php:145
119
+ #: includes/admin/class-wppr-global-settings.php:156
120
+ #: includes/admin/class-wppr-global-settings.php:167
121
+ #: includes/admin/layouts/editor-default-tpl.php:44
122
+ msgid "No"
123
+ msgstr ""
124
+
125
+ #: includes/admin/class-wppr-global-settings.php:96
126
+ msgid "Visitor Review Influence"
127
+ msgstr ""
128
+
129
+ #: includes/admin/class-wppr-global-settings.php:97
130
+ msgid "Select how much visitors rating will affect the main one"
131
+ msgstr ""
132
+
133
+ #: includes/admin/class-wppr-global-settings.php:116
134
+ msgid "Number of options/pros/cons"
135
+ msgstr ""
136
+
137
+ #: includes/admin/class-wppr-global-settings.php:117
138
+ msgid "You can select the default number of options / pros/ cons (3-10)"
139
+ msgstr ""
140
+
141
+ #: includes/admin/class-wppr-global-settings.php:133
142
+ msgid "Content width"
143
+ msgstr ""
144
+
145
+ #: includes/admin/class-wppr-global-settings.php:134
146
+ msgid ""
147
+ "Write your content width in pixels in this format : 600 if you want to "
148
+ "limit the review box width."
149
+ msgstr ""
150
+
151
+ #: includes/admin/class-wppr-global-settings.php:140
152
+ msgid "Disable Lighbox images"
153
+ msgstr ""
154
+
155
+ #: includes/admin/class-wppr-global-settings.php:141
156
+ msgid "Disable lightbox effect on product images (increase loading speed)"
157
+ msgstr ""
158
+
159
+ #: includes/admin/class-wppr-global-settings.php:151
160
+ msgid "Disable Font Awesome"
161
+ msgstr ""
162
+
163
+ #: includes/admin/class-wppr-global-settings.php:152
164
+ msgid ""
165
+ "Disable Font Awesome for websites that already are including it (increase "
166
+ "loading speed)"
167
+ msgstr ""
168
+
169
+ #: includes/admin/class-wppr-global-settings.php:162
170
+ msgid "Enable Rich Snippets"
171
+ msgstr ""
172
+
173
+ #: includes/admin/class-wppr-global-settings.php:163
174
+ msgid "Enable rich snippets on the product page."
175
+ msgstr ""
176
+
177
+ #: includes/admin/class-wppr-global-settings.php:175
178
+ msgid "Rating options default color"
179
+ msgstr ""
180
+
181
+ #: includes/admin/class-wppr-global-settings.php:176
182
+ msgid "Select the color to be used by default on rating."
183
+ msgstr ""
184
+
185
+ #: includes/admin/class-wppr-global-settings.php:182
186
+ msgid "Rating chart default color"
187
+ msgstr ""
188
+
189
+ #: includes/admin/class-wppr-global-settings.php:183
190
+ msgid "Select the color to be used by default on rating chart."
191
+ msgstr ""
192
+
193
+ #: includes/admin/class-wppr-global-settings.php:189
194
+ msgid "Weak rating"
195
+ msgstr ""
196
+
197
+ #: includes/admin/class-wppr-global-settings.php:190
198
+ msgid "Select the color to be used when the rating is weak. ( < 2.5)"
199
+ msgstr ""
200
+
201
+ #: includes/admin/class-wppr-global-settings.php:196
202
+ msgid "Not bad rating"
203
+ msgstr ""
204
+
205
+ #: includes/admin/class-wppr-global-settings.php:197
206
+ msgid "Select the color to be used when the rating is not bad. ( > 2.5 and < 5)"
207
+ msgstr ""
208
+
209
+ #: includes/admin/class-wppr-global-settings.php:203
210
+ msgid "Good rating"
211
+ msgstr ""
212
+
213
+ #: includes/admin/class-wppr-global-settings.php:204
214
+ msgid "Select the color to be used when the rating is good. ( >5 and <7.5)"
215
+ msgstr ""
216
+
217
+ #: includes/admin/class-wppr-global-settings.php:210
218
+ msgid "Very good rating"
219
+ msgstr ""
220
+
221
+ #: includes/admin/class-wppr-global-settings.php:211
222
+ msgid "Select the color to be used when the rating is very good. ( 7.5 < and <10)"
223
+ msgstr ""
224
+
225
+ #: includes/admin/class-wppr-global-settings.php:220
226
+ msgid "Font color"
227
+ msgstr ""
228
+
229
+ #: includes/admin/class-wppr-global-settings.php:221
230
+ msgid "Select the color to be used on the font."
231
+ msgstr ""
232
+
233
+ #: includes/admin/class-wppr-global-settings.php:227
234
+ msgid "Pros text color"
235
+ msgstr ""
236
+
237
+ #: includes/admin/class-wppr-global-settings.php:228
238
+ msgid "Select the color to be used on the 'Pros' text."
239
+ msgstr ""
240
+
241
+ #: includes/admin/class-wppr-global-settings.php:234
242
+ msgid "Cons text color"
243
+ msgstr ""
244
+
245
+ #: includes/admin/class-wppr-global-settings.php:235
246
+ msgid "Select the color to be used on the Cons text."
247
+ msgstr ""
248
+
249
+ #: includes/admin/class-wppr-global-settings.php:241
250
+ msgid "Pros text"
251
+ msgstr ""
252
+
253
+ #: includes/admin/class-wppr-global-settings.php:242
254
+ msgid "Specify text for pros heading"
255
+ msgstr ""
256
+
257
+ #: includes/admin/class-wppr-global-settings.php:248
258
+ msgid "Cons text"
259
+ msgstr ""
260
+
261
+ #: includes/admin/class-wppr-global-settings.php:249
262
+ msgid "Specify text for cons heading"
263
+ msgstr ""
264
+
265
+ #: includes/admin/class-wppr-global-settings.php:255
266
+ msgid "Review box border"
267
+ msgstr ""
268
+
269
+ #: includes/admin/class-wppr-global-settings.php:256
270
+ msgid "Select the border color to be used on the review box"
271
+ msgstr ""
272
+
273
+ #: includes/admin/class-wppr-global-settings.php:262
274
+ msgid "Review box border width"
275
+ msgstr ""
276
+
277
+ #: includes/admin/class-wppr-global-settings.php:263
278
+ msgid "Select the width in pixels of the top border of the review box"
279
+ msgstr ""
280
+
281
+ #: includes/admin/class-wppr-global-settings.php:271
282
+ msgid "Show button icon"
283
+ msgstr ""
284
+
285
+ #: includes/admin/class-wppr-global-settings.php:272
286
+ msgid "Show icon on the cart icon on button."
287
+ msgstr ""
288
+
289
+ #: includes/admin/class-wppr-global-settings.php:282
290
+ msgid "Button border"
291
+ msgstr ""
292
+
293
+ #: includes/admin/class-wppr-global-settings.php:283
294
+ msgid "Select the border color to be used on the buy button for the default state"
295
+ msgstr ""
296
+
297
+ #: includes/admin/class-wppr-global-settings.php:289
298
+ msgid "Button border hover"
299
+ msgstr ""
300
+
301
+ #: includes/admin/class-wppr-global-settings.php:290
302
+ msgid "Select the border color to be used on the buy button for the hover state"
303
+ msgstr ""
304
+
305
+ #: includes/admin/class-wppr-global-settings.php:296
306
+ msgid "Button background"
307
+ msgstr ""
308
+
309
+ #: includes/admin/class-wppr-global-settings.php:297
310
+ msgid ""
311
+ "Select the background color to be used on the buy button for the default "
312
+ "state"
313
+ msgstr ""
314
+
315
+ #: includes/admin/class-wppr-global-settings.php:303
316
+ msgid "Button background hover"
317
+ msgstr ""
318
+
319
+ #: includes/admin/class-wppr-global-settings.php:304
320
+ msgid ""
321
+ "Select the background color to be used on the buy button for the hover "
322
+ "state"
323
+ msgstr ""
324
+
325
+ #: includes/admin/class-wppr-global-settings.php:310
326
+ msgid "Button text color"
327
+ msgstr ""
328
+
329
+ #: includes/admin/class-wppr-global-settings.php:311
330
+ msgid "Select the text color to be used on the buy button for the default state"
331
+ msgstr ""
332
+
333
+ #: includes/admin/class-wppr-global-settings.php:317
334
+ msgid "Button text color hover"
335
+ msgstr ""
336
+
337
+ #: includes/admin/class-wppr-global-settings.php:318
338
+ msgid "Select the text color to be used on the buy button for the hover state"
339
+ msgstr ""
340
+
341
+ #: includes/admin/class-wppr-global-settings.php:357
342
+ msgid "We see %s active, so user feedback is disabled"
343
+ msgstr ""
344
+
345
+ #: includes/admin/helpers/class-wppr-html-fields.php:122
346
+ msgid "Choose image"
347
+ msgstr ""
348
+
349
+ #: includes/admin/helpers/class-wppr-html-fields.php:224
350
+ msgid ". Use Default Styling"
351
+ msgstr ""
352
+
353
+ #: includes/admin/helpers/class-wppr-html-fields.php:227
354
+ msgid "* Currently set to the default styling"
355
+ msgstr ""
356
+
357
+ #: includes/admin/helpers/class-wppr-html-fields.php:238
358
+ msgid ""
359
+ "You need the PRO <a style=\"color:red;\" href=\"http://bit.ly/2bhylar\" "
360
+ "target=\"_blank\" >add-on</a> in order to change the review icons."
361
+ msgstr ""
362
+
363
+ #: includes/admin/layouts/editor-default-tpl.php:20
364
+ msgid "Is this a review post ?"
365
+ msgstr ""
366
+
367
+ #: includes/admin/layouts/editor-default-tpl.php:51
368
+ msgid "Product Details"
369
+ msgstr ""
370
+
371
+ #: includes/admin/layouts/editor-default-tpl.php:52
372
+ msgid "Specify the general details for the reviewed product."
373
+ msgstr ""
374
+
375
+ #: includes/admin/layouts/editor-default-tpl.php:61
376
+ msgid "Template"
377
+ msgstr ""
378
+
379
+ #: includes/admin/layouts/editor-default-tpl.php:89
380
+ msgid ""
381
+ "You will need the %1$spremium%2$s version to use the extra review "
382
+ "templates. You can checkout this %3$sdemo%4$s to see how they are looking."
383
+ msgstr ""
384
+
385
+ #: includes/admin/layouts/editor-default-tpl.php:95
386
+ msgid "Product Name"
387
+ msgstr ""
388
+
389
+ #: includes/admin/layouts/editor-default-tpl.php:101
390
+ msgid "Product name"
391
+ msgstr ""
392
+
393
+ #: includes/admin/layouts/editor-default-tpl.php:107
394
+ msgid "Product Image"
395
+ msgstr ""
396
+
397
+ #: includes/admin/layouts/editor-default-tpl.php:113
398
+ msgid "Choose or Upload an Image"
399
+ msgstr ""
400
+
401
+ #: includes/admin/layouts/editor-default-tpl.php:118
402
+ msgid "The optimum size of the product image must be 600 x 600 px"
403
+ msgstr ""
404
+
405
+ #: includes/admin/layouts/editor-default-tpl.php:121
406
+ msgid "If no image is provided, featured image is used"
407
+ msgstr ""
408
+
409
+ #: includes/admin/layouts/editor-default-tpl.php:125
410
+ msgid "Product Image Click"
411
+ msgstr ""
412
+
413
+ #: includes/admin/layouts/editor-default-tpl.php:138
414
+ msgid "Show Whole Image"
415
+ msgstr ""
416
+
417
+ #: includes/admin/layouts/editor-default-tpl.php:150
418
+ msgid "Open Affiliate link"
419
+ msgstr ""
420
+
421
+ #: includes/admin/layouts/editor-default-tpl.php:157
422
+ #: includes/admin/layouts/editor-default-tpl.php:163
423
+ #: includes/admin/layouts/editor-default-tpl.php:187
424
+ #: includes/admin/layouts/editor-default-tpl.php:193
425
+ #: includes/admin/layouts/editor-default-tpl.php:221
426
+ #: includes/admin/layouts/editor-default-tpl.php:227
427
+ msgid "Affiliate Button Text"
428
+ msgstr ""
429
+
430
+ #: includes/admin/layouts/editor-default-tpl.php:169
431
+ #: includes/admin/layouts/editor-default-tpl.php:175
432
+ #: includes/admin/layouts/editor-default-tpl.php:199
433
+ #: includes/admin/layouts/editor-default-tpl.php:205
434
+ #: includes/admin/layouts/editor-default-tpl.php:233
435
+ #: includes/admin/layouts/editor-default-tpl.php:239
436
+ msgid "Affiliate Link"
437
+ msgstr ""
438
+
439
+ #: includes/admin/layouts/editor-default-tpl.php:181
440
+ msgid "Add new link"
441
+ msgstr ""
442
+
443
+ #: includes/admin/layouts/editor-default-tpl.php:253
444
+ #: includes/admin/layouts/editor-default-tpl.php:259
445
+ msgid "Product Price"
446
+ msgstr ""
447
+
448
+ #: includes/admin/layouts/editor-default-tpl.php:270
449
+ msgid "Product Options"
450
+ msgstr ""
451
+
452
+ #: includes/admin/layouts/editor-default-tpl.php:271
453
+ msgid "Insert your options and their grades. Grading must be done from 0 to 100."
454
+ msgstr ""
455
+
456
+ #: includes/admin/layouts/editor-default-tpl.php:276
457
+ msgid "Preload Info"
458
+ msgstr ""
459
+
460
+ #: includes/admin/layouts/editor-default-tpl.php:279
461
+ msgid ""
462
+ " In order to be able to automatically load your options from another posts, "
463
+ "you need the "
464
+ msgstr ""
465
+
466
+ #: includes/admin/layouts/editor-default-tpl.php:279
467
+ msgid "PRO add-on"
468
+ msgstr ""
469
+
470
+ #: includes/admin/layouts/editor-default-tpl.php:299
471
+ #: includes/admin/layouts/editor-default-tpl.php:341
472
+ #: includes/admin/layouts/editor-default-tpl.php:372
473
+ msgid "Option"
474
+ msgstr ""
475
+
476
+ #: includes/admin/layouts/editor-default-tpl.php:308
477
+ msgid "Grade"
478
+ msgstr ""
479
+
480
+ #: includes/admin/layouts/editor-default-tpl.php:322
481
+ msgid "Pro Features"
482
+ msgstr ""
483
+
484
+ #: includes/admin/layouts/editor-default-tpl.php:323
485
+ msgid "Insert product's pro features below."
486
+ msgstr ""
487
+
488
+ #: includes/admin/layouts/editor-default-tpl.php:354
489
+ msgid "Cons Features"
490
+ msgstr ""
491
+
492
+ #: includes/admin/layouts/editor-default-tpl.php:355
493
+ msgid "Insert product's cons features below."
494
+ msgstr ""
495
+
496
+ #: includes/admin/layouts/settings-tpl.php:60
497
+ msgid "Save All Changes"
498
+ msgstr ""
499
+
500
+ #: includes/admin/layouts/widget-admin-tpl.php:15
501
+ msgid "Title:"
502
+ msgstr ""
503
+
504
+ #: includes/admin/layouts/widget-admin-tpl.php:19
505
+ msgid "Number of posts to show:"
506
+ msgstr ""
507
+
508
+ #: includes/admin/layouts/widget-admin-tpl.php:23
509
+ msgid "Post Types:"
510
+ msgstr ""
511
+
512
+ #: includes/admin/layouts/widget-admin-tpl.php:37
513
+ msgid "Category:"
514
+ msgstr ""
515
+
516
+ #: includes/admin/layouts/widget-admin-tpl.php:72
517
+ msgid "Timespan (weeks):"
518
+ msgstr ""
519
+
520
+ #: includes/admin/layouts/widget-admin-tpl.php:76
521
+ msgid "Posts published between %s%d%s and %s%d%s week(s) ago"
522
+ msgstr ""
523
+
524
+ #: includes/admin/layouts/widget-admin-tpl.php:84
525
+ msgid "Layout:"
526
+ msgstr ""
527
+
528
+ #: includes/admin/layouts/widget-admin-tpl.php:108
529
+ msgid "Buy Now text:"
530
+ msgstr ""
531
+
532
+ #: includes/admin/layouts/widget-admin-tpl.php:113
533
+ msgid "Read Review text:"
534
+ msgstr ""
535
+
536
+ #: includes/admin/layouts/widget-admin-tpl.php:117
537
+ msgid "Display Product Titles :"
538
+ msgstr ""
539
+
540
+ #: includes/admin/layouts/widget-admin-tpl.php:121
541
+ msgid "Display Product Image :"
542
+ msgstr ""
543
+
544
+ #: includes/admin/models/class-wppr-editor-model.php:268
545
+ msgid "Add a product image to the review"
546
+ msgstr ""
547
+
548
+ #: includes/admin/models/class-wppr-editor-model.php:269
549
+ msgid "Attach the image"
550
+ msgstr ""
551
+
552
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:82
553
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:128
554
+ msgid "Buy Now"
555
+ msgstr ""
556
+
557
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:85
558
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:132
559
+ msgid "Read Review"
560
+ msgstr ""
561
+
562
+ #: includes/admin/widgets/abstract/class-wppr-widget-abstract.php:116
563
+ msgid "Select Category"
564
+ msgstr ""
565
+
566
+ #: includes/admin/widgets/class-wppr-latest-products-widget.php:26
567
+ msgid "Latest Products Widget"
568
+ msgstr ""
569
+
570
+ #: includes/admin/widgets/class-wppr-latest-products-widget.php:28
571
+ msgid "This widget displays the latest products based on their rating."
572
+ msgstr ""
573
+
574
+ #: includes/admin/widgets/class-wppr-latest-products-widget.php:106
575
+ msgid "Latest Products"
576
+ msgstr ""
577
+
578
+ #: includes/admin/widgets/class-wppr-top-products-widget.php:26
579
+ msgid "Top Products Widget"
580
+ msgstr ""
581
+
582
+ #: includes/admin/widgets/class-wppr-top-products-widget.php:28
583
+ msgid "This widget displays the top products based on their rating."
584
+ msgstr ""
585
+
586
+ #: includes/admin/widgets/class-wppr-top-products-widget.php:132
587
+ msgid "Top Products"
588
+ msgstr ""
589
+
590
+ #: includes/public/layouts/style1.php:44
591
+ msgid "'s rating"
592
+ msgstr ""
593
+
594
+ #: includes/public/layouts/style2.php:61
595
+ msgid "Users score:"
596
+ msgstr ""
597
+
598
+ #: includes/public/layouts/style2.php:63
599
+ msgid "votes"
600
+ msgstr ""
601
+
602
+ #. Plugin Name of the plugin/theme
603
+ msgid "WP Product Review Lite"
604
+ msgstr ""
605
+
606
+ #. Plugin URI of the plugin/theme
607
+ msgid "https://themeisle.com/plugins/wp-product-review/"
608
+ msgstr ""
609
+
610
+ #. Description of the plugin/theme
611
+ msgid ""
612
+ "The highest rated and most complete review plugin, now with rich snippets "
613
+ "support. Easily turn your basic posts into in-depth reviews."
614
+ msgstr ""
615
+
616
+ #. Author of the plugin/theme
617
+ msgid "ThemeIsle"
618
+ msgstr ""
619
+
620
+ #. Author URI of the plugin/theme
621
+ msgid "https://themeisle.com/"
622
+ msgstr ""
dist/readme.md ADDED
@@ -0,0 +1,697 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # WP Product Review Lite #
2
+ **Contributors:** [codeinwp](https://profiles.wordpress.org/codeinwp), [marius2012](https://profiles.wordpress.org/marius2012), [marius_codeinwp](https://profiles.wordpress.org/marius_codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani), [themeisle](https://profiles.wordpress.org/themeisle), [Madalin_ThemeIsle](https://profiles.wordpress.org/Madalin_ThemeIsle)
3
+ **Tags:** review, rating, posts, widget, review blogger, review blogging, affiliate, product reviews,plugin, google rating, product review, rating, review, star rating, user rating, wp rating, wp review, google, hreview,rich snippets,seo,snippet
4
+ **Author URI:** http://themeisle.com
5
+ **Requires at least:** 3.5
6
+ **Tested up to:** 4.9
7
+ **Stable tag:** trunk
8
+ **License:** GPLv2 or later
9
+ **License URI:** http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+
12
+ Easily turn your basic posts into in-depth reviews with ratings, pros and cons, affiliate links, rich snippets and user reviews.
13
+ ## Description ##
14
+
15
+ ### User Review Enabled
16
+
17
+ 1. This review plugin helps you to interact with your users with improved comments, you can expose your reviews in a easier to read way and will help you generate money by adding a buy now button in your post. Rich snippets are also supported.
18
+
19
+ 1. After you install the plugin, go on a post admin page and you should be able to see a checkbox called : "Is this post a review ?", once this is checked you can add review details and those will appear on the post page.
20
+
21
+ 1. If you want to to edit the colors, enable/disable the affiliate button, change icons go on the plugin options page.
22
+
23
+ 1. All the plugin settings/colors are fully customizable, and you can read more about it <a rel="nofollow" href="https://themeisle.com/plugins/wp-product-review-lite/?utm_source=wpreadme&utm_medium=readme&utm_campaign=wporg">here</a>
24
+
25
+ 1. For updates follow https://twitter.com/themeisle.
26
+
27
+ > **Time-saving features available in the Pro version:**
28
+ >
29
+ > * Shortcodes
30
+ > * Custom Rating Icons
31
+ > * Product Review Listings
32
+ > * Comparison Table
33
+ > * Amazon Integration
34
+ > * Priority email support from the developer of the plugin
35
+ > * Support and updates for 12 months
36
+ >
37
+ > **[Learn more about WP Product Review](http://themeisle.com/plugins/wp-product-review/)**
38
+
39
+
40
+ If you wanna learn more about the <a href="http://www.codeinwp.com/blog/fastest-wordpress-hosting/" rel="nofollow">fastest WordPress hosting</a> or which <a href="http://www.codeinwp.com/blog/15-best-wordpress-review-themes/" rel="nofollow">review themes</a> are playing nice with WP Product review, checkout our blog.
41
+
42
+ = See how WP Product Review can integrate with your website =
43
+
44
+ * [Default review](https://demo.themeisle.com/wp-product-review/sample-review/)
45
+ * [Custom icons ratings](https://demo.themeisle.com/wp-product-review/custom-icons/)
46
+ * [Comparision table](https://demo.themeisle.com/wp-product-review/comparison-table/)
47
+ * [Shortcode reviews](https://demo.themeisle.com/wp-product-review/shortcode-review/)
48
+ * [Listing table](https://demo.themeisle.com/wp-product-review/listing-table/)
49
+ * [Reviews by visitors](https://demo.themeisle.com/wp-product-review/review-with-comments/)
50
+
51
+
52
+
53
+
54
+
55
+ **WP Product Review provides following features**
56
+
57
+ - Create a top products review widget
58
+ - Easily update all the colors of the widget from theme options
59
+ - Add a download button in the posts
60
+ - Add an awesome wrap-up widget at the end of your articles
61
+ - Add specific user review options to wordpress comments
62
+ - Add rich snippet ( schema ) to your posts
63
+
64
+ ### Translations ###
65
+
66
+ * sk_SK translation by Patrik Žec (PATWIST) of http://patwist.com
67
+ * fr_FR translation by Jacques Soule of http://wordpress-pour-vous.com/
68
+
69
+ ## Changelog ##
70
+ ### 3.4.8 - 2018-08-02 ###
71
+
72
+ * Added a new custom image of 50x50 for the custom WPPR widgets
73
+ * New Gutenberg block for WPPR
74
+
75
+
76
+ ### 3.4.7 - 2018-07-18 ###
77
+
78
+ * Fixed alignment issue with the price on the first template
79
+
80
+
81
+ ### 3.4.6 - 2018-07-12 ###
82
+
83
+ * Added RTL compatibility
84
+ * Allow overriding the Products Templates from the theme with a custom /wppr/ folder
85
+ * Fixed problem with missing alt texts
86
+ * Fixed problem with product image notice overlapping the featured image control
87
+
88
+
89
+ ### 3.4.5 - 2018-06-18 ###
90
+
91
+ * Fixed problem with product price alignment on the first template
92
+
93
+
94
+ ### 3.4.4 - 2018-06-11 ###
95
+
96
+ * Fixed issue with HTML tag not being closed
97
+ * Fixed issue with button icon not changing color
98
+ * Fixed issue with review comments form not responsive
99
+ * Fixed white screen when Jetpack is active
100
+ * Update docs
101
+ * New option to disable the AMP CSS output
102
+ * Changed the way fonts are loaded to inherit them from the theme
103
+
104
+
105
+ ### 3.4.3 - 2018-03-20 ###
106
+
107
+ * Fix FontAwesome icon issue in custom templates.
108
+ * Improve AMP compatibility, removes redundant CSS on AMP endpoints.
109
+ * Adds review custom post_type and review categories.
110
+
111
+
112
+ ### 3.4.2 - 2018-02-22 ###
113
+
114
+ * Fix AMP issue which was causing an issue with Google AMP validation.
115
+
116
+
117
+ ### 3.4.1 - 2018-02-21 ###
118
+
119
+ * Fix issue with category filtering when querying reviews.
120
+
121
+
122
+ ### 3.4.0 - 2018-02-20 ###
123
+
124
+ * Adds AMP support for the review box.
125
+ * Adds compatibility with 2 more review templates.
126
+ * Improves extensibility by adding more hooks.
127
+
128
+
129
+ ### 3.3.2 - 2018-01-05 ###
130
+
131
+ * Adds filtering option for posts/page admin listing page.
132
+ * Fix compatibility with Bookrev theme.
133
+ * Fix issue with comments slides when scrolled back.
134
+
135
+
136
+ ### 3.3.1 - 2017-12-11 ###
137
+
138
+ * Fix for comments rating if not all the options are provided.
139
+ * Improved review image description
140
+
141
+
142
+ ### 3.3.0 - 2017-11-27 ###
143
+
144
+ * Fix individual rating influenced by comments.
145
+ * Fix compatibility with various themes.
146
+ * Fix top product widgets sorting when comments influence is on.
147
+
148
+
149
+ ### 3.2.1 - 2017-11-16 ###
150
+
151
+ * Adds compatibility with WordPress 4.9
152
+
153
+
154
+ ### 3.2.0 - 2017-11-06 ###
155
+
156
+ * Adds support for custom post-type and taxonomies in widgets.
157
+ * Adds control for time-frame in top reviews widget.
158
+ * Improves responsiveness and removes dependency of pie-chart.js
159
+ * Improves notifications when Disqus and Jetpack comments are used.
160
+
161
+
162
+ ### 3.1.0 - 2017-09-22 ###
163
+
164
+ * Fix for some edge cases when the review box was gone.
165
+ * Improvements assets loading, removed redundant files.
166
+ * Improvements perfomance of review query.
167
+ * Various bug fixes reported by clients.
168
+
169
+
170
+ ### 3.0.12 - 2017-09-17 ###
171
+
172
+ * Fix for review box issues.
173
+
174
+
175
+ ### 3.0.11 - 2017-09-15 ###
176
+
177
+ * Fix for issue of hidden review box and widget area.
178
+
179
+
180
+ ### 3.0.10 - 2017-09-12 ###
181
+
182
+ * Fix for decimal separator in rich snippet.
183
+ * Improvements for template engine, allowing overwriting in child themes also.
184
+ * Added review content and excerpt proprieties.
185
+
186
+
187
+ ### 3.0.9 - 2017-09-07 ###
188
+
189
+ * Improved JSON-LD scheme.
190
+ * Fix for image lightbox link.
191
+ * FIx for json-ld description when html tags are present.
192
+ * Fix for widget layout margin when image is used.
193
+ * Improvements compatibility with various themes.
194
+
195
+
196
+ ### 3.0.8 - 2017-09-01 ###
197
+
198
+ * Fix for out of memory errors.
199
+ * Fix for options saving when there is no value for each option.
200
+ * Fix for compatibility with Bookrev.
201
+ * Fix for rich snippet reviewer author.
202
+
203
+
204
+ ### 3.0.7 - 2017-08-29 ###
205
+
206
+ * Fixed empty links for reviews.
207
+ * Fixed widget and reviews query.
208
+
209
+
210
+ ### 3.0.6 - 2017-08-29 ###
211
+
212
+ * Fix for category name matching when filtering reviews.
213
+ * Fix for is_active error on null object.
214
+
215
+
216
+ ### 3.0.5 - 2017-08-26 ###
217
+
218
+ * Fix for review links opening issue.
219
+ * Fix for comments legacy import.
220
+
221
+
222
+ ### 3.0.4 - 2017-08-25 ###
223
+
224
+ * Fix for rich snippets schema.
225
+ * Fix post update white screen of death.
226
+ * Fix for thumbnails in widgets.
227
+ * Fix for duplicate title for widgets list.
228
+ * Fix for link of the review in the widgets.
229
+ * Fix for click link behavior on review picture.
230
+ * Fix widget titles default values.
231
+ * Fix review rating when comments influence is on.
232
+ * Improved security.
233
+
234
+
235
+ ### 3.0.3 - 2017-08-24 ###
236
+
237
+ * Fixed widget assets loading error.
238
+
239
+
240
+ ### 3.0.2 - 2017-08-24 ###
241
+
242
+ * Fixed fatal error with is_active method.
243
+ * Fixed query reviews class.
244
+ * Fixed widget assets loading when there is no review on the page.
245
+
246
+
247
+ ### 3.0.1 - 2017-08-23 ###
248
+
249
+ * Fixed backwards compatibility when using cwppos_show_review.
250
+ * Fixed undefined index error in widgets.
251
+
252
+
253
+ ### 3.0.0 - 2017-08-23 ###
254
+
255
+ * Major code refactor ( Please test before update )
256
+ * Added JSON-LD support
257
+ * Improved compatibility with themes
258
+
259
+
260
+
261
+ **New in 2.9.8**
262
+
263
+ - Added more features page
264
+
265
+ **New in 2.9.6**
266
+
267
+ - Fixed undefined notices
268
+ - Fixed sanitization issues
269
+
270
+ **New in 2.9.5**
271
+
272
+ - Added amazon integration support
273
+ - Fixed some design issue with review
274
+
275
+ **New in 2.9.3**
276
+
277
+ - Added dashes for pro/cons list
278
+ - Added filters for nofollow links in widgets area
279
+
280
+ **New in 2.9.2**
281
+
282
+ - Fixed shortcode compatibility with pro version
283
+
284
+ **New in 2.9.1**
285
+
286
+ - Fixed undefined notice on plugin activation
287
+ - Removed review buttons on links when the values are empty for widgets
288
+
289
+ **New in 2.9.0**
290
+
291
+ - Added shortcode support on all review fields
292
+ - Removed addons page
293
+
294
+
295
+ **New in 2.8.7**
296
+
297
+ - Fixed img tag closing tag issue
298
+ - Fixed rich snippet problem when comment influence is off
299
+
300
+ **New in 2.8.6**
301
+
302
+ - Added compatibility with new pro addons
303
+ - Fixed layout issues with the review
304
+ - Fixed responsiveness bugs
305
+
306
+ **New in 2.8.1**
307
+
308
+ - Added different style for widgets
309
+ - Fixed some layout bugs for widgets
310
+
311
+ **New in 2.8.0**
312
+
313
+ - Added a filter for price issues
314
+
315
+ **New in 2.7.9**
316
+
317
+ - Added support for amazon import in the pro version
318
+
319
+ **New in 2.7.8**
320
+
321
+ - Fixed price issues when . is present
322
+
323
+ **New in 2.7.7**
324
+
325
+ - Re-worked rich snippets (Added main Thing Object as Product, added Offers and improved review / aggregateRating)
326
+
327
+ **New in 2.7.6**
328
+
329
+ - Fixed empty inputs on comments and saving of non-reviews post metas
330
+ - Fixed circles widget issue
331
+
332
+ **New in 2.7.5**
333
+
334
+ - Fixed WP_query issue in the wp backed
335
+ - Added a minium content_width, since some themes set this wrong
336
+ - Fixed responsive issues when content_width is set
337
+ - Fixed circles widget issue
338
+
339
+ **New in 2.7.3**
340
+
341
+ - Improved layout based on $content_width so make sure this is set correctly
342
+ - Improved some settings description
343
+ - Fixed lightbox image logic
344
+ - Open image affiliate link in new tab
345
+ - Fixed various issues with comment sliders
346
+ - Pre-fill features from the latest edited post in the same category
347
+ - Pre-fill image settings and aff_button text from latest edited post in the same category
348
+ - Optimize the space on post review metaboxes
349
+
350
+ **New in 2.7.2**
351
+
352
+ - Fixed design issues in comments slider
353
+ - Fixed enque of media files when review is not available
354
+ - Fixed alt tags for images in the widgets
355
+
356
+ **New in 2.7.1**
357
+
358
+ - Fixed some design issues.
359
+ - Fixed rating problem on some instalation when display the numerator greater than denominator
360
+ - Added wppr_review_image_size for filter the image size;
361
+
362
+
363
+ **New in 2.7**
364
+
365
+ - Fixed responsive design bugs.
366
+ - Fixed border color and width customization for the review box
367
+
368
+ **New in 2.6.9**
369
+
370
+ - Improved design of the featured image
371
+ - Added filters heading tags for review name, option name, pros headings and cons headings.
372
+
373
+ **New in 2.6.8**
374
+
375
+ - Improved responsive design of the review
376
+
377
+ **New in 2.6.7**
378
+
379
+ - Fixed issue with rating value when visitator influence is off
380
+ - Fixed issue with auto optimization plugins
381
+
382
+
383
+ **New in v.2.6.6**
384
+
385
+ - Added option to remove loading of Font Awesome for websites that already enque it.
386
+ - Fixed microtags when is 0% visitator influence.
387
+ - Fixed multiple display of review where <!--nextpage--> quick tag is used.
388
+
389
+
390
+ **New in v.2.6.4**
391
+
392
+ - Fixed layout problem with widgets on some themes
393
+ - Added new image size for widgets 'wppr_widget_image' for 50x50. ( Requires thumbnail regeneration to use it )
394
+
395
+ **New in v.2.6.3**
396
+
397
+ - Fixed custom icons bug
398
+ - Fixed sorting order to top products widget
399
+ - Added 100% influence on visitators rating
400
+ - Added rel="nofollow" for img link
401
+ - Fixed bug for password protected reviews.
402
+ - Fixed long text for product titles in widgets
403
+ - Removed unecessary css
404
+
405
+
406
+ **New in v.2.6.2**
407
+
408
+ - Added thumbnails for reviews
409
+ - Fixed bug when no image is set for reviews
410
+ - Fixed reset button for product options
411
+ - Added option to disable lightbox for review image
412
+
413
+
414
+
415
+ **New in v.2.6.1**
416
+
417
+ - Fixed rich snippet bug
418
+ - Fixed loading of the assets files where the plugin is not used
419
+
420
+
421
+ **New in v2.5.2**
422
+
423
+ - Added multiple addons including ranking chart
424
+ - Fixed image in post issue
425
+ - Improved preloader logic
426
+
427
+ - Fixed issue with more than 5 options
428
+ - Added ability to modify the chart color
429
+
430
+ **New in v2.4.7**
431
+
432
+ - Fixed issue with more than 5 options
433
+ - Added ability to modify the chart color
434
+
435
+ **New in v2.4.5**
436
+
437
+ - Fixed the image affiliate link issue
438
+ - Improved responsive for the review box
439
+ - Now you can place the review box manually using php or shortcode
440
+
441
+ **New in v2.4.3**
442
+
443
+ - Added multiple options/ pros/ cons
444
+ - Fixed rich snippet issue
445
+ - Improved image linking
446
+ - Removed sticky posts
447
+ - Fixed Aff button2 link/text
448
+ - Fixed js errors
449
+
450
+ **New in v2.4.2**
451
+
452
+ - Fixed latest widget issue
453
+ - Added possibility of having 2 affiliate buttons
454
+
455
+ - Fixed js errors
456
+
457
+ **New in v2.4.1**
458
+
459
+ - Fixed division by zero
460
+
461
+ **New in v2.4**
462
+
463
+ - Added image and product title options in widget
464
+ - Added lightbox on product review image, that preload image from the featured image
465
+ - User is now able to select in admin how much user reviews will influence the main rating
466
+ - Added [P_REVIEW post_id=3067 visual="yes"] shortcode in the PRO version, without visual attribute only the rating is displayed
467
+
468
+ **New in v2.3**
469
+
470
+ - Fixed js errors
471
+
472
+ **New in v2.29**
473
+
474
+ - Fixed upgrade to pro issue
475
+
476
+ **New in v2.28**
477
+
478
+ - Fixed translation issues
479
+ - Added custom icons
480
+ - Added price attribute
481
+
482
+ ## Installation ##
483
+
484
+ Following are the steps to install the WP Product Review
485
+
486
+ 1. Download the latest version of the WP Product Review to your computer from here.
487
+ 2. With an FTP program, access your site?s server.
488
+ 3. Upload (copy) the Plugin file(s) or folder to the /wp-content/plugins folder.
489
+ 4. In your WordPress Administration Panels, click on Plugins from the menu.
490
+ 5. You should see WP Product Review Plugin listed. If not, with your FTP program, check the folder to see if it is installed. If it isn?t, upload the file(s) again. If it is, delete the files and upload them again.
491
+ 6. To turn the WP Product Review on, click Activate.
492
+ 7. Check your Administration Panels or WordPress blog to see if the Plugin is working.
493
+ 8. You can change the plugin options from WP Product Review under settings menu.
494
+
495
+ Alternatively you can also follow the following steps to install the WP Product Review plugin
496
+
497
+ 1. In your WordPress Administration Panels, click on Add New option under Plugins from the menu.
498
+ 2. Click on upload at the top.
499
+ 3. Browse the location and select the WP Product Review Plugin and click install now.
500
+ 4. To turn the WP Product Review Plugin on, click Activate.
501
+ 5. Check your Administration Panels or WordPress blog to see if the Plugin is working.
502
+ 6. You can change the plugin options from WP Product Review under settings menu.
503
+
504
+ ## Frequently Asked Questions ##
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+ ### How to activate user reviews ###
513
+
514
+ By default user reviews are disabled since not all the themes are compatible with this option due to different designs for the comment box. You can easily activate them from General Settings
515
+
516
+ If you have any questions please get in touch with us at,
517
+ https://themeisle.com/contact
518
+
519
+ ### How to change the html format of the review name ###
520
+ [http://docs.themeisle.com/article/130-how-to-change-the-html-format-of-the-review-name](http://docs.themeisle.com/article/130-how-to-change-the-html-format-of-the-review-name)
521
+
522
+ ### How to change dynamically the image size for review ###
523
+ [http://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review](http://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review)
524
+
525
+ ### How to change dynamically the pros/cons heading text ###
526
+ [http://docs.themeisle.com/article/133-how-to-change-dynamically-the-pros-cons-heading-text](http://docs.themeisle.com/article/133-how-to-change-dynamically-the-pros-cons-heading-text)
527
+
528
+ ### How to change dynamically the name of the review ###
529
+ [https://docs.themeisle.com/article/874-how-to-change-dynamically-the-name-of-the-review](https://docs.themeisle.com/article/874-how-to-change-dynamically-the-name-of-the-review)
530
+
531
+ ### How to change dynamically the option name format ###
532
+ [http://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format](http://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format)
533
+
534
+ ### How to make Comment Review option work in any theme ###
535
+ [http://docs.themeisle.com/article/54-why-comment-review-option-is-not-working-with-my-theme](http://docs.themeisle.com/article/54-why-comment-review-option-is-not-working-with-my-theme)
536
+
537
+ ### Prevent users from posting multiple review on a single post in WP Product Review ###
538
+ [http://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review](http://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review)
539
+
540
+ ### WP Product Review Documentation ###
541
+ [http://docs.themeisle.com/article/173-wp-product-review-documentation](http://docs.themeisle.com/article/173-wp-product-review-documentation)
542
+
543
+ = WP Product Review Shortcode Documentation =
544
+ [http://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation](http://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation)
545
+
546
+ = WP Product Review Comparison Table Documentation =
547
+ [http://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation](http://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation)
548
+
549
+ = Enable user reviews in WP Product Review =
550
+ [http://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-revie](http://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-revie)
551
+
552
+ = How to create a listing grid of reviews in WP Product Review =
553
+ [http://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review](http://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review)
554
+
555
+ = Rich Snippets not showing in search results =
556
+ [http://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results](http://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results)
557
+
558
+ = How to add a top products widget in WP Product Review =
559
+ [http://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review](http://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review)
560
+
561
+ = How to remove rich snippets in WP Product Review =
562
+ [http://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review](http://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review)
563
+
564
+ = How to remove Pros/Cons list in WP Product Review =
565
+ [http://docs.themeisle.com/article/762-how-to-remove-pros-cons-list-in-wp-product-review](http://docs.themeisle.com/article/762-how-to-remove-pros-cons-list-in-wp-product-review)
566
+
567
+ = How to change the default rating icon in WP Product Review =
568
+ [http://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review](http://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review)
569
+
570
+ = How the visitors rating are influencing the review rating in WP Product Review =
571
+ [http://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review](http://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review)
572
+
573
+ = How to change the rating colours in WP Product Review =
574
+ [http://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review](http://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review)
575
+
576
+ = How to increase number of review options, pros or cons in WP Product Review =
577
+ [http://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review](http://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review)
578
+
579
+ = What actions and filters are available in WP Product Review =
580
+ [http://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review](http://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review)
581
+
582
+ = Install and use the pro version of WP Product Review =
583
+ [http://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review](http://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review)
584
+
585
+ = WP Product Review Documentation =
586
+ [https://docs.themeisle.com/article/173-wp-product-review-documentation](https://docs.themeisle.com/article/173-wp-product-review-documentation)
587
+
588
+ = WP Product Review Shortcode Documentation =
589
+ [https://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation](https://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation)
590
+
591
+ = How to change dynamically the image size for review =
592
+ [https://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review](https://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review)
593
+
594
+ = How to change dynamically the pros/cons heading text =
595
+ [https://docs.themeisle.com/article/133-how-to-change-dynamically-the-proscons-heading-text](https://docs.themeisle.com/article/133-how-to-change-dynamically-the-proscons-heading-text)
596
+
597
+ = WP Product Review Comparison Table Documentation =
598
+ [https://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation](https://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation)
599
+
600
+ = How to change dynamically the option name format =
601
+ [https://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format](https://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format)
602
+
603
+ = How to make Comment Review option work in any theme =
604
+ [https://docs.themeisle.com/article/54-how-to-make-comment-review-option-work-in-any-theme](https://docs.themeisle.com/article/54-how-to-make-comment-review-option-work-in-any-theme)
605
+
606
+ = Prevent users from posting multiple review on a single post in WP Product Review =
607
+ [https://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review](https://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review)
608
+
609
+ = How to create a listing grid of reviews in WP Product Review =
610
+ [https://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review](https://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review)
611
+
612
+ = Enable user reviews in WP Product Review =
613
+ [https://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-review](https://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-review)
614
+
615
+ = Install and use the pro version of WP Product Review =
616
+ [https://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review](https://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review)
617
+
618
+ = Rich Snippets not showing in search results =
619
+ [https://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results](https://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results)
620
+
621
+ = What actions and filters are available in WP Product Review =
622
+ [https://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review](https://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review)
623
+
624
+ = How to add a top products widget in WP Product Review =
625
+ [https://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review](https://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review)
626
+
627
+ = How to change the default rating icon in WP Product Review =
628
+ [https://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review](https://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review)
629
+
630
+ = How to remove Pros/Cons list in WP Product Review =
631
+ [https://docs.themeisle.com/article/762-how-to-remove-proscons-list-in-wp-product-review](https://docs.themeisle.com/article/762-how-to-remove-proscons-list-in-wp-product-review)
632
+
633
+ = How to increase number of review options, pros or cons in WP Product Review =
634
+ [https://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review](https://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review)
635
+
636
+ = How to change the rating colours in WP Product Review =
637
+ [https://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review](https://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review)
638
+
639
+ = How to remove rich snippets in WP Product Review =
640
+ [https://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review](https://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review)
641
+
642
+ = How the visitors rating are influencing the review rating in WP Product Review =
643
+ [https://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review](https://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review)
644
+
645
+ = WP Product Review how to change dynamically the image size for review =
646
+ [https://docs.themeisle.com/article/135-wp-product-review-how-to-change-dynamically-the-image-size-for-review](https://docs.themeisle.com/article/135-wp-product-review-how-to-change-dynamically-the-image-size-for-review)
647
+
648
+ = WP Product Review how to change dynamically the option name format =
649
+ [https://docs.themeisle.com/article/132-wp-product-review-how-to-change-dynamically-the-option-name-format](https://docs.themeisle.com/article/132-wp-product-review-how-to-change-dynamically-the-option-name-format)
650
+
651
+ = How to have a whole number ratings in WP Product Review =
652
+ [https://docs.themeisle.com/article/849-how-to-have-a-whole-number-ratings-in-wp-product-review](https://docs.themeisle.com/article/849-how-to-have-a-whole-number-ratings-in-wp-product-review)
653
+
654
+ = How to enable review post types =
655
+ [https://docs.themeisle.com/article/858-how-to-enable-review-post-types](https://docs.themeisle.com/article/858-how-to-enable-review-post-types)
656
+
657
+ = How users can leave review comments without rating =
658
+ [https://docs.themeisle.com/article/862-how-users-can-leave-review-comments-without-rating](https://docs.themeisle.com/article/862-how-users-can-leave-review-comments-without-rating)
659
+
660
+ = How to force description into comparision table =
661
+ [https://docs.themeisle.com/article/859-how-to-force-description-into-comparision-table](https://docs.themeisle.com/article/859-how-to-force-description-into-comparision-table)
662
+
663
+ = How the before/after/manual review box placement works =
664
+ [https://docs.themeisle.com/article/865-how-the-beforeaftermanual-review-box-placement-works](https://docs.themeisle.com/article/865-how-the-beforeaftermanual-review-box-placement-works)
665
+
666
+ = How to dynamically change the name of the review =
667
+ [https://docs.themeisle.com/article/874-how-to-dynamically-change-the-name-of-the-review](https://docs.themeisle.com/article/874-how-to-dynamically-change-the-name-of-the-review)
668
+
669
+ = How to change the status of the review =
670
+ [https://docs.themeisle.com/article/905-how-to-change-the-status-of-the-review](https://docs.themeisle.com/article/905-how-to-change-the-status-of-the-review)
671
+
672
+ = How to disable the review for particular posts =
673
+ [https://docs.themeisle.com/article/904-how-to-disable-the-review-for-particular-posts](https://docs.themeisle.com/article/904-how-to-disable-the-review-for-particular-posts)
674
+
675
+ = How to manually change the rating of a review =
676
+ [https://docs.themeisle.com/article/903-how-to-manually-change-the-rating-of-a-review](https://docs.themeisle.com/article/903-how-to-manually-change-the-rating-of-a-review)
677
+
678
+ = How to dynamically change the price of the review for particular posts =
679
+ [https://docs.themeisle.com/article/906-how-to-dynamically-change-the-price-of-the-review-for-particular-posts](https://docs.themeisle.com/article/906-how-to-dynamically-change-the-price-of-the-review-for-particular-posts)
680
+
681
+ == Upgrade Notice ==
682
+
683
+ ### 3.0 ###
684
+ 3.0 is a major update. It is important that you make backups and ensure themes are 3.0 compatible before upgrading.
685
+
686
+ ## Screenshots ##
687
+
688
+ 1. Screenshot 1 Wrap-up review widget that is added at the end of the posts
689
+ 2. Screenshot 2 User Review Options added to wp comments
690
+ 3. Screenshot 3 Fully configurable theme options
691
+ 4. Screenshot 4 Rich Snippets displayed in Google
692
+
693
+ for more you can check out
694
+
695
+ https://themeisle.com/plugins/wp-product-review-lite/
696
+
697
+
dist/readme.txt ADDED
@@ -0,0 +1,697 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === WP Product Review Lite ===
2
+ Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,themeisle,Madalin_ThemeIsle
3
+ Tags: review, rating, posts, widget, review blogger, review blogging, affiliate, product reviews,plugin, google rating, product review, rating, review, star rating, user rating, wp rating, wp review, google, hreview,rich snippets,seo,snippet
4
+ Author URI: http://themeisle.com
5
+ Requires at least: 3.5
6
+ Tested up to: 4.9
7
+ Stable tag: trunk
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+
12
+ Easily turn your basic posts into in-depth reviews with ratings, pros and cons, affiliate links, rich snippets and user reviews.
13
+ == Description ==
14
+
15
+ ### User Review Enabled
16
+
17
+ 1. This review plugin helps you to interact with your users with improved comments, you can expose your reviews in a easier to read way and will help you generate money by adding a buy now button in your post. Rich snippets are also supported.
18
+
19
+ 1. After you install the plugin, go on a post admin page and you should be able to see a checkbox called : "Is this post a review ?", once this is checked you can add review details and those will appear on the post page.
20
+
21
+ 1. If you want to to edit the colors, enable/disable the affiliate button, change icons go on the plugin options page.
22
+
23
+ 1. All the plugin settings/colors are fully customizable, and you can read more about it <a rel="nofollow" href="https://themeisle.com/plugins/wp-product-review-lite/?utm_source=wpreadme&utm_medium=readme&utm_campaign=wporg">here</a>
24
+
25
+ 1. For updates follow https://twitter.com/themeisle.
26
+
27
+ > **Time-saving features available in the Pro version:**
28
+ >
29
+ > * Shortcodes
30
+ > * Custom Rating Icons
31
+ > * Product Review Listings
32
+ > * Comparison Table
33
+ > * Amazon Integration
34
+ > * Priority email support from the developer of the plugin
35
+ > * Support and updates for 12 months
36
+ >
37
+ > **[Learn more about WP Product Review](http://themeisle.com/plugins/wp-product-review/)**
38
+
39
+
40
+ If you wanna learn more about the <a href="http://www.codeinwp.com/blog/fastest-wordpress-hosting/" rel="nofollow">fastest WordPress hosting</a> or which <a href="http://www.codeinwp.com/blog/15-best-wordpress-review-themes/" rel="nofollow">review themes</a> are playing nice with WP Product review, checkout our blog.
41
+
42
+ = See how WP Product Review can integrate with your website =
43
+
44
+ * [Default review](https://demo.themeisle.com/wp-product-review/sample-review/)
45
+ * [Custom icons ratings](https://demo.themeisle.com/wp-product-review/custom-icons/)
46
+ * [Comparision table](https://demo.themeisle.com/wp-product-review/comparison-table/)
47
+ * [Shortcode reviews](https://demo.themeisle.com/wp-product-review/shortcode-review/)
48
+ * [Listing table](https://demo.themeisle.com/wp-product-review/listing-table/)
49
+ * [Reviews by visitors](https://demo.themeisle.com/wp-product-review/review-with-comments/)
50
+
51
+
52
+
53
+
54
+
55
+ **WP Product Review provides following features**
56
+
57
+ - Create a top products review widget
58
+ - Easily update all the colors of the widget from theme options
59
+ - Add a download button in the posts
60
+ - Add an awesome wrap-up widget at the end of your articles
61
+ - Add specific user review options to wordpress comments
62
+ - Add rich snippet ( schema ) to your posts
63
+
64
+ = Translations =
65
+
66
+ * sk_SK translation by Patrik Žec (PATWIST) of http://patwist.com
67
+ * fr_FR translation by Jacques Soule of http://wordpress-pour-vous.com/
68
+
69
+ == Changelog ==
70
+ = 3.4.8 - 2018-08-02 =
71
+
72
+ * Added a new custom image of 50x50 for the custom WPPR widgets
73
+ * New Gutenberg block for WPPR
74
+
75
+
76
+ = 3.4.7 - 2018-07-18 =
77
+
78
+ * Fixed alignment issue with the price on the first template
79
+
80
+
81
+ = 3.4.6 - 2018-07-12 =
82
+
83
+ * Added RTL compatibility
84
+ * Allow overriding the Products Templates from the theme with a custom /wppr/ folder
85
+ * Fixed problem with missing alt texts
86
+ * Fixed problem with product image notice overlapping the featured image control
87
+
88
+
89
+ = 3.4.5 - 2018-06-18 =
90
+
91
+ * Fixed problem with product price alignment on the first template
92
+
93
+
94
+ = 3.4.4 - 2018-06-11 =
95
+
96
+ * Fixed issue with HTML tag not being closed
97
+ * Fixed issue with button icon not changing color
98
+ * Fixed issue with review comments form not responsive
99
+ * Fixed white screen when Jetpack is active
100
+ * Update docs
101
+ * New option to disable the AMP CSS output
102
+ * Changed the way fonts are loaded to inherit them from the theme
103
+
104
+
105
+ = 3.4.3 - 2018-03-20 =
106
+
107
+ * Fix FontAwesome icon issue in custom templates.
108
+ * Improve AMP compatibility, removes redundant CSS on AMP endpoints.
109
+ * Adds review custom post_type and review categories.
110
+
111
+
112
+ = 3.4.2 - 2018-02-22 =
113
+
114
+ * Fix AMP issue which was causing an issue with Google AMP validation.
115
+
116
+
117
+ = 3.4.1 - 2018-02-21 =
118
+
119
+ * Fix issue with category filtering when querying reviews.
120
+
121
+
122
+ = 3.4.0 - 2018-02-20 =
123
+
124
+ * Adds AMP support for the review box.
125
+ * Adds compatibility with 2 more review templates.
126
+ * Improves extensibility by adding more hooks.
127
+
128
+
129
+ = 3.3.2 - 2018-01-05 =
130
+
131
+ * Adds filtering option for posts/page admin listing page.
132
+ * Fix compatibility with Bookrev theme.
133
+ * Fix issue with comments slides when scrolled back.
134
+
135
+
136
+ = 3.3.1 - 2017-12-11 =
137
+
138
+ * Fix for comments rating if not all the options are provided.
139
+ * Improved review image description
140
+
141
+
142
+ = 3.3.0 - 2017-11-27 =
143
+
144
+ * Fix individual rating influenced by comments.
145
+ * Fix compatibility with various themes.
146
+ * Fix top product widgets sorting when comments influence is on.
147
+
148
+
149
+ = 3.2.1 - 2017-11-16 =
150
+
151
+ * Adds compatibility with WordPress 4.9
152
+
153
+
154
+ = 3.2.0 - 2017-11-06 =
155
+
156
+ * Adds support for custom post-type and taxonomies in widgets.
157
+ * Adds control for time-frame in top reviews widget.
158
+ * Improves responsiveness and removes dependency of pie-chart.js
159
+ * Improves notifications when Disqus and Jetpack comments are used.
160
+
161
+
162
+ = 3.1.0 - 2017-09-22 =
163
+
164
+ * Fix for some edge cases when the review box was gone.
165
+ * Improvements assets loading, removed redundant files.
166
+ * Improvements perfomance of review query.
167
+ * Various bug fixes reported by clients.
168
+
169
+
170
+ = 3.0.12 - 2017-09-17 =
171
+
172
+ * Fix for review box issues.
173
+
174
+
175
+ = 3.0.11 - 2017-09-15 =
176
+
177
+ * Fix for issue of hidden review box and widget area.
178
+
179
+
180
+ = 3.0.10 - 2017-09-12 =
181
+
182
+ * Fix for decimal separator in rich snippet.
183
+ * Improvements for template engine, allowing overwriting in child themes also.
184
+ * Added review content and excerpt proprieties.
185
+
186
+
187
+ = 3.0.9 - 2017-09-07 =
188
+
189
+ * Improved JSON-LD scheme.
190
+ * Fix for image lightbox link.
191
+ * FIx for json-ld description when html tags are present.
192
+ * Fix for widget layout margin when image is used.
193
+ * Improvements compatibility with various themes.
194
+
195
+
196
+ = 3.0.8 - 2017-09-01 =
197
+
198
+ * Fix for out of memory errors.
199
+ * Fix for options saving when there is no value for each option.
200
+ * Fix for compatibility with Bookrev.
201
+ * Fix for rich snippet reviewer author.
202
+
203
+
204
+ = 3.0.7 - 2017-08-29 =
205
+
206
+ * Fixed empty links for reviews.
207
+ * Fixed widget and reviews query.
208
+
209
+
210
+ = 3.0.6 - 2017-08-29 =
211
+
212
+ * Fix for category name matching when filtering reviews.
213
+ * Fix for is_active error on null object.
214
+
215
+
216
+ = 3.0.5 - 2017-08-26 =
217
+
218
+ * Fix for review links opening issue.
219
+ * Fix for comments legacy import.
220
+
221
+
222
+ = 3.0.4 - 2017-08-25 =
223
+
224
+ * Fix for rich snippets schema.
225
+ * Fix post update white screen of death.
226
+ * Fix for thumbnails in widgets.
227
+ * Fix for duplicate title for widgets list.
228
+ * Fix for link of the review in the widgets.
229
+ * Fix for click link behavior on review picture.
230
+ * Fix widget titles default values.
231
+ * Fix review rating when comments influence is on.
232
+ * Improved security.
233
+
234
+
235
+ = 3.0.3 - 2017-08-24 =
236
+
237
+ * Fixed widget assets loading error.
238
+
239
+
240
+ = 3.0.2 - 2017-08-24 =
241
+
242
+ * Fixed fatal error with is_active method.
243
+ * Fixed query reviews class.
244
+ * Fixed widget assets loading when there is no review on the page.
245
+
246
+
247
+ = 3.0.1 - 2017-08-23 =
248
+
249
+ * Fixed backwards compatibility when using cwppos_show_review.
250
+ * Fixed undefined index error in widgets.
251
+
252
+
253
+ = 3.0.0 - 2017-08-23 =
254
+
255
+ * Major code refactor ( Please test before update )
256
+ * Added JSON-LD support
257
+ * Improved compatibility with themes
258
+
259
+
260
+
261
+ **New in 2.9.8**
262
+
263
+ - Added more features page
264
+
265
+ **New in 2.9.6**
266
+
267
+ - Fixed undefined notices
268
+ - Fixed sanitization issues
269
+
270
+ **New in 2.9.5**
271
+
272
+ - Added amazon integration support
273
+ - Fixed some design issue with review
274
+
275
+ **New in 2.9.3**
276
+
277
+ - Added dashes for pro/cons list
278
+ - Added filters for nofollow links in widgets area
279
+
280
+ **New in 2.9.2**
281
+
282
+ - Fixed shortcode compatibility with pro version
283
+
284
+ **New in 2.9.1**
285
+
286
+ - Fixed undefined notice on plugin activation
287
+ - Removed review buttons on links when the values are empty for widgets
288
+
289
+ **New in 2.9.0**
290
+
291
+ - Added shortcode support on all review fields
292
+ - Removed addons page
293
+
294
+
295
+ **New in 2.8.7**
296
+
297
+ - Fixed img tag closing tag issue
298
+ - Fixed rich snippet problem when comment influence is off
299
+
300
+ **New in 2.8.6**
301
+
302
+ - Added compatibility with new pro addons
303
+ - Fixed layout issues with the review
304
+ - Fixed responsiveness bugs
305
+
306
+ **New in 2.8.1**
307
+
308
+ - Added different style for widgets
309
+ - Fixed some layout bugs for widgets
310
+
311
+ **New in 2.8.0**
312
+
313
+ - Added a filter for price issues
314
+
315
+ **New in 2.7.9**
316
+
317
+ - Added support for amazon import in the pro version
318
+
319
+ **New in 2.7.8**
320
+
321
+ - Fixed price issues when . is present
322
+
323
+ **New in 2.7.7**
324
+
325
+ - Re-worked rich snippets (Added main Thing Object as Product, added Offers and improved review / aggregateRating)
326
+
327
+ **New in 2.7.6**
328
+
329
+ - Fixed empty inputs on comments and saving of non-reviews post metas
330
+ - Fixed circles widget issue
331
+
332
+ **New in 2.7.5**
333
+
334
+ - Fixed WP_query issue in the wp backed
335
+ - Added a minium content_width, since some themes set this wrong
336
+ - Fixed responsive issues when content_width is set
337
+ - Fixed circles widget issue
338
+
339
+ **New in 2.7.3**
340
+
341
+ - Improved layout based on $content_width so make sure this is set correctly
342
+ - Improved some settings description
343
+ - Fixed lightbox image logic
344
+ - Open image affiliate link in new tab
345
+ - Fixed various issues with comment sliders
346
+ - Pre-fill features from the latest edited post in the same category
347
+ - Pre-fill image settings and aff_button text from latest edited post in the same category
348
+ - Optimize the space on post review metaboxes
349
+
350
+ **New in 2.7.2**
351
+
352
+ - Fixed design issues in comments slider
353
+ - Fixed enque of media files when review is not available
354
+ - Fixed alt tags for images in the widgets
355
+
356
+ **New in 2.7.1**
357
+
358
+ - Fixed some design issues.
359
+ - Fixed rating problem on some instalation when display the numerator greater than denominator
360
+ - Added wppr_review_image_size for filter the image size;
361
+
362
+
363
+ **New in 2.7**
364
+
365
+ - Fixed responsive design bugs.
366
+ - Fixed border color and width customization for the review box
367
+
368
+ **New in 2.6.9**
369
+
370
+ - Improved design of the featured image
371
+ - Added filters heading tags for review name, option name, pros headings and cons headings.
372
+
373
+ **New in 2.6.8**
374
+
375
+ - Improved responsive design of the review
376
+
377
+ **New in 2.6.7**
378
+
379
+ - Fixed issue with rating value when visitator influence is off
380
+ - Fixed issue with auto optimization plugins
381
+
382
+
383
+ **New in v.2.6.6**
384
+
385
+ - Added option to remove loading of Font Awesome for websites that already enque it.
386
+ - Fixed microtags when is 0% visitator influence.
387
+ - Fixed multiple display of review where <!--nextpage--> quick tag is used.
388
+
389
+
390
+ **New in v.2.6.4**
391
+
392
+ - Fixed layout problem with widgets on some themes
393
+ - Added new image size for widgets 'wppr_widget_image' for 50x50. ( Requires thumbnail regeneration to use it )
394
+
395
+ **New in v.2.6.3**
396
+
397
+ - Fixed custom icons bug
398
+ - Fixed sorting order to top products widget
399
+ - Added 100% influence on visitators rating
400
+ - Added rel="nofollow" for img link
401
+ - Fixed bug for password protected reviews.
402
+ - Fixed long text for product titles in widgets
403
+ - Removed unecessary css
404
+
405
+
406
+ **New in v.2.6.2**
407
+
408
+ - Added thumbnails for reviews
409
+ - Fixed bug when no image is set for reviews
410
+ - Fixed reset button for product options
411
+ - Added option to disable lightbox for review image
412
+
413
+
414
+
415
+ **New in v.2.6.1**
416
+
417
+ - Fixed rich snippet bug
418
+ - Fixed loading of the assets files where the plugin is not used
419
+
420
+
421
+ **New in v2.5.2**
422
+
423
+ - Added multiple addons including ranking chart
424
+ - Fixed image in post issue
425
+ - Improved preloader logic
426
+
427
+ - Fixed issue with more than 5 options
428
+ - Added ability to modify the chart color
429
+
430
+ **New in v2.4.7**
431
+
432
+ - Fixed issue with more than 5 options
433
+ - Added ability to modify the chart color
434
+
435
+ **New in v2.4.5**
436
+
437
+ - Fixed the image affiliate link issue
438
+ - Improved responsive for the review box
439
+ - Now you can place the review box manually using php or shortcode
440
+
441
+ **New in v2.4.3**
442
+
443
+ - Added multiple options/ pros/ cons
444
+ - Fixed rich snippet issue
445
+ - Improved image linking
446
+ - Removed sticky posts
447
+ - Fixed Aff button2 link/text
448
+ - Fixed js errors
449
+
450
+ **New in v2.4.2**
451
+
452
+ - Fixed latest widget issue
453
+ - Added possibility of having 2 affiliate buttons
454
+
455
+ - Fixed js errors
456
+
457
+ **New in v2.4.1**
458
+
459
+ - Fixed division by zero
460
+
461
+ **New in v2.4**
462
+
463
+ - Added image and product title options in widget
464
+ - Added lightbox on product review image, that preload image from the featured image
465
+ - User is now able to select in admin how much user reviews will influence the main rating
466
+ - Added [P_REVIEW post_id=3067 visual="yes"] shortcode in the PRO version, without visual attribute only the rating is displayed
467
+
468
+ **New in v2.3**
469
+
470
+ - Fixed js errors
471
+
472
+ **New in v2.29**
473
+
474
+ - Fixed upgrade to pro issue
475
+
476
+ **New in v2.28**
477
+
478
+ - Fixed translation issues
479
+ - Added custom icons
480
+ - Added price attribute
481
+
482
+ == Installation ==
483
+
484
+ Following are the steps to install the WP Product Review
485
+
486
+ 1. Download the latest version of the WP Product Review to your computer from here.
487
+ 2. With an FTP program, access your site?s server.
488
+ 3. Upload (copy) the Plugin file(s) or folder to the /wp-content/plugins folder.
489
+ 4. In your WordPress Administration Panels, click on Plugins from the menu.
490
+ 5. You should see WP Product Review Plugin listed. If not, with your FTP program, check the folder to see if it is installed. If it isn?t, upload the file(s) again. If it is, delete the files and upload them again.
491
+ 6. To turn the WP Product Review on, click Activate.
492
+ 7. Check your Administration Panels or WordPress blog to see if the Plugin is working.
493
+ 8. You can change the plugin options from WP Product Review under settings menu.
494
+
495
+ Alternatively you can also follow the following steps to install the WP Product Review plugin
496
+
497
+ 1. In your WordPress Administration Panels, click on Add New option under Plugins from the menu.
498
+ 2. Click on upload at the top.
499
+ 3. Browse the location and select the WP Product Review Plugin and click install now.
500
+ 4. To turn the WP Product Review Plugin on, click Activate.
501
+ 5. Check your Administration Panels or WordPress blog to see if the Plugin is working.
502
+ 6. You can change the plugin options from WP Product Review under settings menu.
503
+
504
+ == Frequently Asked Questions ==
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+ = How to activate user reviews =
513
+
514
+ By default user reviews are disabled since not all the themes are compatible with this option due to different designs for the comment box. You can easily activate them from General Settings
515
+
516
+ If you have any questions please get in touch with us at,
517
+ https://themeisle.com/contact
518
+
519
+ = How to change the html format of the review name =
520
+ [http://docs.themeisle.com/article/130-how-to-change-the-html-format-of-the-review-name](http://docs.themeisle.com/article/130-how-to-change-the-html-format-of-the-review-name)
521
+
522
+ = How to change dynamically the image size for review =
523
+ [http://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review](http://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review)
524
+
525
+ = How to change dynamically the pros/cons heading text =
526
+ [http://docs.themeisle.com/article/133-how-to-change-dynamically-the-pros-cons-heading-text](http://docs.themeisle.com/article/133-how-to-change-dynamically-the-pros-cons-heading-text)
527
+
528
+ = How to change dynamically the name of the review =
529
+ [https://docs.themeisle.com/article/874-how-to-change-dynamically-the-name-of-the-review](https://docs.themeisle.com/article/874-how-to-change-dynamically-the-name-of-the-review)
530
+
531
+ = How to change dynamically the option name format =
532
+ [http://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format](http://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format)
533
+
534
+ = How to make Comment Review option work in any theme =
535
+ [http://docs.themeisle.com/article/54-why-comment-review-option-is-not-working-with-my-theme](http://docs.themeisle.com/article/54-why-comment-review-option-is-not-working-with-my-theme)
536
+
537
+ = Prevent users from posting multiple review on a single post in WP Product Review =
538
+ [http://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review](http://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review)
539
+
540
+ = WP Product Review Documentation =
541
+ [http://docs.themeisle.com/article/173-wp-product-review-documentation](http://docs.themeisle.com/article/173-wp-product-review-documentation)
542
+
543
+ = WP Product Review Shortcode Documentation =
544
+ [http://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation](http://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation)
545
+
546
+ = WP Product Review Comparison Table Documentation =
547
+ [http://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation](http://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation)
548
+
549
+ = Enable user reviews in WP Product Review =
550
+ [http://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-revie](http://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-revie)
551
+
552
+ = How to create a listing grid of reviews in WP Product Review =
553
+ [http://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review](http://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review)
554
+
555
+ = Rich Snippets not showing in search results =
556
+ [http://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results](http://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results)
557
+
558
+ = How to add a top products widget in WP Product Review =
559
+ [http://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review](http://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review)
560
+
561
+ = How to remove rich snippets in WP Product Review =
562
+ [http://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review](http://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review)
563
+
564
+ = How to remove Pros/Cons list in WP Product Review =
565
+ [http://docs.themeisle.com/article/762-how-to-remove-pros-cons-list-in-wp-product-review](http://docs.themeisle.com/article/762-how-to-remove-pros-cons-list-in-wp-product-review)
566
+
567
+ = How to change the default rating icon in WP Product Review =
568
+ [http://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review](http://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review)
569
+
570
+ = How the visitors rating are influencing the review rating in WP Product Review =
571
+ [http://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review](http://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review)
572
+
573
+ = How to change the rating colours in WP Product Review =
574
+ [http://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review](http://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review)
575
+
576
+ = How to increase number of review options, pros or cons in WP Product Review =
577
+ [http://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review](http://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review)
578
+
579
+ = What actions and filters are available in WP Product Review =
580
+ [http://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review](http://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review)
581
+
582
+ = Install and use the pro version of WP Product Review =
583
+ [http://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review](http://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review)
584
+
585
+ = WP Product Review Documentation =
586
+ [https://docs.themeisle.com/article/173-wp-product-review-documentation](https://docs.themeisle.com/article/173-wp-product-review-documentation)
587
+
588
+ = WP Product Review Shortcode Documentation =
589
+ [https://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation](https://docs.themeisle.com/article/449-wp-product-review-shortcode-documentation)
590
+
591
+ = How to change dynamically the image size for review =
592
+ [https://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review](https://docs.themeisle.com/article/135-how-to-change-dynamically-the-image-size-for-review)
593
+
594
+ = How to change dynamically the pros/cons heading text =
595
+ [https://docs.themeisle.com/article/133-how-to-change-dynamically-the-proscons-heading-text](https://docs.themeisle.com/article/133-how-to-change-dynamically-the-proscons-heading-text)
596
+
597
+ = WP Product Review Comparison Table Documentation =
598
+ [https://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation](https://docs.themeisle.com/article/424-wp-product-review-comparison-table-documentation)
599
+
600
+ = How to change dynamically the option name format =
601
+ [https://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format](https://docs.themeisle.com/article/132-how-to-change-dynamically-the-option-name-format)
602
+
603
+ = How to make Comment Review option work in any theme =
604
+ [https://docs.themeisle.com/article/54-how-to-make-comment-review-option-work-in-any-theme](https://docs.themeisle.com/article/54-how-to-make-comment-review-option-work-in-any-theme)
605
+
606
+ = Prevent users from posting multiple review on a single post in WP Product Review =
607
+ [https://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review](https://docs.themeisle.com/article/578-prevent-users-from-posting-multiple-review-on-a-single-post-in-wp-product-review)
608
+
609
+ = How to create a listing grid of reviews in WP Product Review =
610
+ [https://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review](https://docs.themeisle.com/article/764-how-to-create-a-listing-grid-of-reviews-in-wp-product-review)
611
+
612
+ = Enable user reviews in WP Product Review =
613
+ [https://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-review](https://docs.themeisle.com/article/759-enable-user-reviews-in-wp-product-review)
614
+
615
+ = Install and use the pro version of WP Product Review =
616
+ [https://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review](https://docs.themeisle.com/article/785-install-and-use-the-pro-version-of-wp-product-review)
617
+
618
+ = Rich Snippets not showing in search results =
619
+ [https://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results](https://docs.themeisle.com/article/756-rich-snippets-not-showing-in-search-results)
620
+
621
+ = What actions and filters are available in WP Product Review =
622
+ [https://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review](https://docs.themeisle.com/article/770-what-actions-and-filters-are-available-in-wp-product-review)
623
+
624
+ = How to add a top products widget in WP Product Review =
625
+ [https://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review](https://docs.themeisle.com/article/763-how-to-add-a-top-products-widget-in-wp-product-review)
626
+
627
+ = How to change the default rating icon in WP Product Review =
628
+ [https://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review](https://docs.themeisle.com/article/757-how-to-change-the-default-rating-icon-in-wp-product-review)
629
+
630
+ = How to remove Pros/Cons list in WP Product Review =
631
+ [https://docs.themeisle.com/article/762-how-to-remove-proscons-list-in-wp-product-review](https://docs.themeisle.com/article/762-how-to-remove-proscons-list-in-wp-product-review)
632
+
633
+ = How to increase number of review options, pros or cons in WP Product Review =
634
+ [https://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review](https://docs.themeisle.com/article/758-how-to-increase-number-of-review-options-pros-or-cons-in-wp-product-review)
635
+
636
+ = How to change the rating colours in WP Product Review =
637
+ [https://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review](https://docs.themeisle.com/article/761-how-to-change-the-rating-colours-in-wp-product-review)
638
+
639
+ = How to remove rich snippets in WP Product Review =
640
+ [https://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review](https://docs.themeisle.com/article/755-how-to-remove-rich-snippets-in-wp-product-review)
641
+
642
+ = How the visitors rating are influencing the review rating in WP Product Review =
643
+ [https://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review](https://docs.themeisle.com/article/760-how-the-visitors-rating-are-influencing-the-review-rating-in-wp-product-review)
644
+
645
+ = WP Product Review how to change dynamically the image size for review =
646
+ [https://docs.themeisle.com/article/135-wp-product-review-how-to-change-dynamically-the-image-size-for-review](https://docs.themeisle.com/article/135-wp-product-review-how-to-change-dynamically-the-image-size-for-review)
647
+
648
+ = WP Product Review how to change dynamically the option name format =
649
+ [https://docs.themeisle.com/article/132-wp-product-review-how-to-change-dynamically-the-option-name-format](https://docs.themeisle.com/article/132-wp-product-review-how-to-change-dynamically-the-option-name-format)
650
+
651
+ = How to have a whole number ratings in WP Product Review =
652
+ [https://docs.themeisle.com/article/849-how-to-have-a-whole-number-ratings-in-wp-product-review](https://docs.themeisle.com/article/849-how-to-have-a-whole-number-ratings-in-wp-product-review)
653
+
654
+ = How to enable review post types =
655
+ [https://docs.themeisle.com/article/858-how-to-enable-review-post-types](https://docs.themeisle.com/article/858-how-to-enable-review-post-types)
656
+
657
+ = How users can leave review comments without rating =
658
+ [https://docs.themeisle.com/article/862-how-users-can-leave-review-comments-without-rating](https://docs.themeisle.com/article/862-how-users-can-leave-review-comments-without-rating)
659
+
660
+ = How to force description into comparision table =
661
+ [https://docs.themeisle.com/article/859-how-to-force-description-into-comparision-table](https://docs.themeisle.com/article/859-how-to-force-description-into-comparision-table)
662
+
663
+ = How the before/after/manual review box placement works =
664
+ [https://docs.themeisle.com/article/865-how-the-beforeaftermanual-review-box-placement-works](https://docs.themeisle.com/article/865-how-the-beforeaftermanual-review-box-placement-works)