-
Notifications
You must be signed in to change notification settings - Fork 0
/
opensheetmusicdisplay-settings.php
354 lines (305 loc) · 38.1 KB
/
opensheetmusicdisplay-settings.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
<?php
if ( ! defined( 'ABSPATH' ) ) exit;
/**
* Generated by the WordPress Option Page generator
* at http://jeremyhixon.com/wp-tools/option-page/
*/
class phonicscore_OpenSheetMusicDisplayDefaultSettingsPage {
private $phonicscore_opensheetmusicdisplay_default_settings_options;
public function __construct() {
add_action( 'admin_menu', array( $this, 'phonicscore_opensheetmusicdisplay_default_settings_add_plugin_page' ) );
add_action( 'admin_init', array( $this, 'phonicscore_opensheetmusicdisplay_default_settings_page_init' ) );
}
public function phonicscore_opensheetmusicdisplay_default_settings_add_plugin_page() {
add_menu_page(
'OpenSheetMusicDisplay Default Settings Page', // page_title
'OSMD Settings', // menu_title
'manage_options', // capability
'phonicscore-opensheetmusicdisplay-default-settings-page', // menu_slug
array( $this, 'phonicscore_opensheetmusicdisplay_default_settings_create_admin_page' ), // function
<<<EOT
data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgY2xhc3NOYW1lPSJvc21kLWljb24iIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iOTguMjA5cHgiIGhlaWdodD0iOTMuMDk1cHgiIHZpZXdCb3g9IjAgMCA5OC4yMDkgOTMuMDk1Ij4NCjxwYXRoIGZpbGxSdWxlPSJldmVub2RkIiBjbGlwUnVsZT0iZXZlbm9kZCIgZmlsbD0iI0VCNjEwMSIgZD0iTTguODExLDUxLjY2NnYtOC44MThjMS43OTYtMC4xMDEsMy4xNDEtMC4zNjQsNC4wNTgtMC44MTYgIGMwLjkwNS0wLjQzOSwxLjY4NC0xLjE4MSwyLjM1LTIuMjI0czEuMTE4LTIuMzQ5LDEuMzY5LTMuOTE5YzAuMTg5LTEuMTgxLDAuMjktMy4yMjksMC4yOS02LjE1NWMwLTQuNzYxLDAuMjI2LTguMDc4LDAuNjY2LTkuOTYyICBjMC40MzktMS44ODQsMS4yMy0zLjM5MiwyLjM4Ny00LjUzNWMxLjE1NS0xLjE0NCwyLjgzOS0yLjAzNSw1LjAzNy0yLjcwMWMxLjQ5Ni0wLjQ0LDMuODU2LTAuNjY2LDcuMDczLTAuNjY2aDEuOTQ3djguODE4ICBjLTIuNzM4LDAtNC40ODUsMC4xNS01LjI2MywwLjQ2NGMtMC43NzksMC4zMDItMS4zNDQsMC43NjctMS43MjIsMS4zOTVjLTAuMzY0LDAuNjI4LTAuNTUzLDEuNjk2LTAuNTUzLDMuMjE2ICBjMCwxLjU0NC0wLjEsNC40ODQtMC4zMDEsOC43OTRjLTAuMTI1LDIuNDM3LTAuNDM5LDQuMzk2LTAuOTU1LDUuOTE3Yy0wLjUxNSwxLjUwNy0xLjE2OCwyLjc1LTEuOTcyLDMuNzMxICBjLTAuNzkyLDAuOTgtMi4wMSwxLjk5OC0zLjY1NiwzLjA1M2MxLjQ1NywwLjgyOSwyLjYzOCwxLjgwOSwzLjU2NywyLjkyN3MxLjYzMywyLjQ3NSwyLjEyNCw0LjA3ICBjMC41MDIsMS41OTUsMC44MTYsMy43NDMsMC45NjYsNi40MTljMC4xNTEsNC4wNywwLjIyNyw2LjY4MywwLjIyNyw3LjgxM2MwLDEuNjIsMC4yMDEsMi43NTEsMC41OTEsMy4zOTIgIGMwLjM4OSwwLjYyOCwwLjk3OSwxLjExOCwxLjc4MywxLjQ0NWMwLjc5MiwwLjMzOSwyLjUxMywwLjUwMiw1LjE2NCwwLjUwMnY4LjgxOGgtMS45NDdjLTMuMzE2LDAtNS44NTQtMC4yNjMtNy42MjYtMC43OTEgIGMtMS43NTgtMC41MjgtMy4yNTMtMS40MDYtNC40NTktMi42MzhjLTEuMjE5LTEuMjE5LTIuMDM2LTIuNzM5LTIuNDUtNC41NDhjLTAuNDE0LTEuNzk2LTAuNjI3LTQuNjQ4LTAuNjI3LTguNTMgIGMwLTQuNTEtMC4yMDEtNy40NDktMC41OTEtOC43OTNjLTAuNTQtMS45NzMtMS4zNTctMy4zOC0yLjQ0OS00LjIyMUMxMi43NDMsNTIuMjcsMTEuMDcyLDUxLjc5Miw4LjgxMSw1MS42NjZ6Ii8+DQo8cmVjdCB4PSIzMy4yOTgiIHk9IjExLjg2NSIgZmlsbFJ1bGU9ImV2ZW5vZGQiIGNsaXBSdWxlPSJldmVub2RkIiBmaWxsPSIjRUI2MTAxIiB3aWR0aD0iMTEuMDYyIiBoZWlnaHQ9IjQ2LjUxOSIvPg0KPHJlY3QgeD0iMzguMTAxIiB5PSIzNi4xMDciIGZpbGxSdWxlPSJldmVub2RkIiBjbGlwUnVsZT0iZXZlbm9kZCIgZmlsbD0iI0VCNjEwMSIgd2lkdGg9IjEuNDU3IiBoZWlnaHQ9IjQ2LjUxOSIvPg0KPHBhdGggZmlsbFJ1bGU9ImV2ZW5vZGQiIGNsaXBSdWxlPSJldmVub2RkIiBmaWxsPSIjRUI2MTAxIiBkPSJNOTAuNzA2LDUxLjY2NnYtOC44MThjLTEuNzk2LTAuMTAxLTMuMTQxLTAuMzY0LTQuMDU4LTAuODE2ICBjLTAuOTA0LTAuNDM5LTEuNjg0LTEuMTgxLTIuMzQ5LTIuMjI0Yy0wLjY2Ni0xLjA0Mi0xLjExOC0yLjM0OS0xLjM2OS0zLjkxOWMtMC4xODktMS4xODEtMC4yOS0zLjIyOS0wLjI5LTYuMTU1ICBjMC00Ljc2MS0wLjIyNi04LjA3OC0wLjY2Ni05Ljk2MmMtMC40MzktMS44ODQtMS4yMy0zLjM5Mi0yLjM4Ny00LjUzNWMtMS4xNTYtMS4xNDQtMi44MzktMi4wMzUtNS4wMzctMi43MDEgIGMtMS40OTYtMC40NC0zLjg1Ny0wLjY2Ni03LjA3My0wLjY2NmgtMS45NDd2OC44MThjMi43MzgsMCw0LjQ4NSwwLjE1LDUuMjYzLDAuNDY0YzAuNzc5LDAuMzAyLDEuMzQ0LDAuNzY3LDEuNzIyLDEuMzk1ICBjMC4zNjQsMC42MjgsMC41NTMsMS42OTYsMC41NTMsMy4yMTZjMCwxLjU0NCwwLjEsNC40ODQsMC4zMDEsOC43OTRjMC4xMjUsMi40MzcsMC40NCw0LjM5NiwwLjk1Niw1LjkxNyAgYzAuNTE0LDEuNTA3LDEuMTY3LDIuNzUsMS45NzIsMy43MzFjMC43OTIsMC45OCwyLjAxLDEuOTk4LDMuNjU1LDMuMDUzYy0xLjQ1NywwLjgyOS0yLjYzOCwxLjgwOS0zLjU2NywyLjkyNyAgYy0wLjkyOSwxLjExOC0xLjYzMywyLjQ3NS0yLjEyMyw0LjA3Yy0wLjUwMiwxLjU5NS0wLjgxNiwzLjc0My0wLjk2Nyw2LjQxOWMtMC4xNTEsNC4wNy0wLjIyNiw2LjY4My0wLjIyNiw3LjgxMyAgYzAsMS42Mi0wLjIwMSwyLjc1MS0wLjU5MSwzLjM5MmMtMC4zODksMC42MjgtMC45NzksMS4xMTgtMS43ODMsMS40NDVjLTAuNzkxLDAuMzM5LTIuNTEzLDAuNTAyLTUuMTYzLDAuNTAydjguODE4aDEuOTQ3ICBjMy4zMTYsMCw1Ljg1NC0wLjI2Myw3LjYyNi0wLjc5MWMxLjc1OC0wLjUyOCwzLjI1My0xLjQwNiw0LjQ1OS0yLjYzOGMxLjIxOS0xLjIxOSwyLjAzNS0yLjczOSwyLjQ1LTQuNTQ4ICBjMC40MTQtMS43OTYsMC42MjctNC42NDgsMC42MjctOC41M2MwLTQuNTEsMC4yMDEtNy40NDksMC41OTEtOC43OTNjMC41NC0xLjk3MywxLjM1Ny0zLjM4LDIuNDQ5LTQuMjIxICBDODYuNzc0LDUyLjI3LDg4LjQ0NSw1MS43OTIsOTAuNzA2LDUxLjY2NnoiLz4NCjxyZWN0IHg9IjU1LjE1NiIgeT0iMTEuODY1IiBmaWxsUnVsZT0iZXZlbm9kZCIgY2xpcFJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNFQjYxMDEiIHdpZHRoPSIxMS4wNjIiIGhlaWdodD0iNDYuNTE5Ii8+DQo8cmVjdCB4PSI1OS45NTkiIHk9IjM2LjEwNyIgZmlsbFJ1bGU9ImV2ZW5vZGQiIGNsaXBSdWxlPSJldmVub2RkIiBmaWxsPSIjRUI2MTAxIiB3aWR0aD0iMS40NTYiIGhlaWdodD0iNDYuNTE5Ii8+DQo8Zz4NCgk8cGF0aCBmaWxsUnVsZT0iZXZlbm9kZCIgY2xpcFJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiM5Nzk4OTgiIGQ9Ik0xMDkuMDUxLDQ4LjM4NmMwLTUuMjQ2LDEuNDE1LTkuMzU4LDQuMjM3LTEyLjMyOCAgIHM2LjQ2Mi00LjQ1MSwxMC45MjgtNC40NTFjMi45MjUsMCw1LjU1NiwwLjcsNy45MDYsMi4wOTNjMi4zNDQsMS4zOTMsNC4xMzQsMy4zMzgsNS4zNjUsNS44MzZjMS4yMywyLjQ5MSwxLjg1LDUuMzIsMS44NSw4LjQ4MSAgIGMwLDMuMjA1LTAuNjQ4LDYuMDc5LTEuOTQ1LDguNjA2Yy0xLjI5NywyLjUzNS0zLjEzMiw0LjQ1MS01LjUwNCw1Ljc0OGMtMi4zOCwxLjMwNS00Ljk0NSwxLjk1My03LjY5MywxLjk1MyAgIGMtMi45ODQsMC01LjY0NS0wLjcyMy03Ljk5NS0yLjE1OWMtMi4zNDMtMS40MzctNC4xMjYtMy4zOTctNS4zMzUtNS44ODhDMTA5LjY1NSw1My43OTUsMTA5LjA1MSw1MS4xNjQsMTA5LjA1MSw0OC4zODYgICBMMTA5LjA1MSw0OC4zODZ6IE0xMTMuMzg0LDQ4LjQ2YzAsMy44MSwxLjAyNCw2LjgwOSwzLjA3Myw4Ljk5N2MyLjA0OSwyLjE4OCw0LjYyMSwzLjI4Nyw3LjcxNSwzLjI4NyAgIGMzLjE1NCwwLDUuNzQtMS4xMDUsNy43ODEtMy4zMTZjMi4wMzQtMi4yMTEsMy4wNTEtNS4zNSwzLjA1MS05LjQxN2MwLTIuNTcyLTAuNDM1LTQuODE5LTEuMzA0LTYuNzM1cy0yLjE0NC0zLjQwNS0zLjgxNy00LjQ1OCAgIGMtMS42OC0xLjA1NC0zLjU1OS0xLjU4NC01LjY0NC0xLjU4NGMtMi45NjIsMC01LjUxMiwxLjAxNy03LjY0OSwzLjA1MUMxMTQuNDUzLDQwLjMxNywxMTMuMzg0LDQzLjcwNywxMTMuMzg0LDQ4LjQ2ICAgTDExMy4zODQsNDguNDZ6IE0xNDQuMjM3LDcyLjU5M1Y0MC44NDhoMy41Mzd2My4wMTRjMC44MzMtMS4xNjUsMS43NzYtMi4wNDEsMi44My0yLjYyNGMxLjA0Ni0wLjU4MiwyLjMyMS0wLjg3NywzLjgxNy0wLjg3NyAgIGMxLjk2LDAsMy42ODUsMC41MDEsNS4xOCwxLjUxMWMxLjQ5NiwxLjAwMiwyLjYyNCwyLjQyNCwzLjM5LDQuMjUyYzAuNzU5LDEuODM1LDEuMTQzLDMuODM5LDEuMTQzLDYuMDI3ICAgYzAsMi4zMzYtMC40Miw0LjQ0My0xLjI2LDYuMzIyYy0wLjg0LDEuODcyLTIuMDYzLDMuMzA5LTMuNjcsNC4zMTJjLTEuNTk5LDAuOTk1LTMuMjg2LDEuNDk2LTUuMDU1LDEuNDk2ICAgYy0xLjI5NywwLTIuNDYxLTAuMjczLTMuNDg1LTAuODE4Yy0xLjAzMi0wLjU0NS0xLjg3Mi0xLjIzLTIuNTM1LTIuMDYzdjExLjE5M0gxNDQuMjM3TDE0NC4yMzcsNzIuNTkzeiBNMTQ3Ljc3NCw1Mi40NjEgICBjMCwyLjk0LDAuNTk3LDUuMTE0LDEuNzgzLDYuNTIxYzEuMTk0LDEuNDA3LDIuNjM4LDIuMTE1LDQuMzMzLDIuMTE1YzEuNzI0LDAsMy4xOTgtMC43MjksNC40MjEtMi4xODggICBjMS4yMy0xLjQ1OSwxLjg0Mi0zLjcxNCwxLjg0Mi02Ljc3MmMwLTIuOTE4LTAuNTk3LTUuMDk5LTEuNzk4LTYuNTUxcy0yLjYzLTIuMTc0LTQuMjk2LTIuMTc0Yy0xLjY1MSwwLTMuMTEsMC43NzQtNC4zNzcsMi4zMTQgICBDMTQ4LjQwOCw0Ny4yNzMsMTQ3Ljc3NCw0OS41MTQsMTQ3Ljc3NCw1Mi40NjFMMTQ3Ljc3NCw1Mi40NjF6IE0xODQuNDc5LDU2LjM2Nmw0LjAyMywwLjUzMWMtMC42MjYsMi4zMzYtMS43OTgsNC4xNTYtMy41MDcsNS40NDUgICBzLTMuODkxLDEuOTM4LTYuNTUxLDEuOTM4Yy0zLjM0NiwwLTUuOTk5LTEuMDMyLTcuOTU4LTMuMDk2Yy0xLjk2LTIuMDU2LTIuOTQtNC45NTItMi45NC04LjY3M2MwLTMuODQ3LDAuOTg3LTYuODM4LDIuOTctOC45NiAgIGMxLjk4Mi0yLjEzLDQuNTU0LTMuMTkxLDcuNzE1LTMuMTkxYzMuMDU4LDAsNS41NTYsMS4wMzksNy40OTQsMy4xMjVjMS45MzgsMi4wODUsMi45MTEsNS4wMTgsMi45MTEsOC43OTggICBjMCwwLjIyOS0wLjAwNywwLjU3NS0wLjAyMiwxLjAzMWgtMTcuMDg4YzAuMTQ3LDIuNTE0LDAuODU0LDQuNDQ0LDIuMTM3LDUuNzc3YzEuMjc1LDEuMzM0LDIuODc0LDIuMDA1LDQuNzgzLDIuMDA1ICAgYzEuNDIyLDAsMi42MzgtMC4zNzYsMy42NC0xLjEyOEMxODMuMDkzLDU5LjIxOSwxODMuODg5LDU4LjAxOCwxODQuNDc5LDU2LjM2NkwxODQuNDc5LDU2LjM2NnogTTE3MS43NDYsNTAuMTMzaDEyLjc3NyAgIGMtMC4xNjktMS45MzEtMC42NjQtMy4zNzUtMS40NjYtNC4zNGMtMS4yMy0xLjQ5Ni0yLjgzNy0yLjI0OC00LjgwNS0yLjI0OGMtMS43ODMsMC0zLjI3OSwwLjU5Ny00LjQ5NSwxLjc5MSAgIEMxNzIuNTQ4LDQ2LjUyOSwxNzEuODc4LDQ4LjEyOCwxNzEuNzQ2LDUwLjEzM0wxNzEuNzQ2LDUwLjEzM3ogTTE5My40MTcsNjMuNzk1VjQwLjg0OGgzLjQ5M3YzLjI1NyAgIGMxLjY4LTIuNDk4LDQuMTEyLTMuNzQ0LDcuMjg4LTMuNzQ0YzEuMzg1LDAsMi42NTMsMC4yNTEsMy44MSwwLjc0NGMxLjE1NywwLjQ5NCwyLjAyNiwxLjE1LDIuNjAxLDEuOTUzczAuOTgsMS43NjEsMS4yMDgsMi44NjcgICBjMC4xNCwwLjcyMiwwLjIxMywxLjk4MiwwLjIxMywzLjc4djE0LjA5aC0zLjg5MVY0OS44NTNjMC0xLjU4NC0wLjE0Ny0yLjc3MS0wLjQ0OS0zLjU1MnMtMC44NC0xLjQwNy0xLjYwNi0xLjg3OSAgIGMtMC43NjctMC40NjQtMS42NzMtMC43LTIuNzA1LTAuN2MtMS42NTEsMC0zLjA3MywwLjUyMy00LjI3NCwxLjU3N2MtMS4yMDEsMS4wNDYtMS43OTgsMy4wNDMtMS43OTgsNS45NzZ2MTIuNTIxSDE5My40MTcgICBMMTkzLjQxNyw2My43OTV6IE00NjQuMTk0LDYzLjc5NVYzMi4xMzhoMTAuOTA1YzIuNDYyLDAsNC4zNDEsMC4xNDcsNS42MzgsMC40NDljMS44MTIsMC40MiwzLjM2LDEuMTc5LDQuNjQzLDIuMjcgICBjMS42NzMsMS40MTUsMi45MTgsMy4yMTMsMy43NDMsNS40MDljMC44MzMsMi4xOTYsMS4yNDUsNC43MDksMS4yNDUsNy41MzFjMCwyLjQwMi0wLjI4LDQuNTMxLTAuODQsNi4zODkgICBjLTAuNTYxLDEuODU3LTEuMjgyLDMuMzk3LTIuMTU5LDQuNjEzYy0wLjg4NCwxLjIxNi0xLjg0MywyLjE3NC0yLjg4OSwyLjg2NmMtMS4wMzksMC43LTIuMjk5LDEuMjMtMy43NzIsMS41OTIgICBjLTEuNDgxLDAuMzYtMy4xNzcsMC41MzgtNS4wOTIsMC41MzhINDY0LjE5NEw0NjQuMTk0LDYzLjc5NXogTTQ2OC4zOTQsNjAuMDhoNi43NWMyLjA4NSwwLDMuNzIxLTAuMTkxLDQuOTA3LTAuNTgxICAgYzEuMTg3LTAuMzkxLDIuMTMtMC45MzcsMi44MzctMS42NDRjMC45ODctMC45OTUsMS43NjItMi4zMzYsMi4zMTQtNC4wMTdjMC41NTItMS42OCwwLjgzMi0zLjcxNCwwLjgzMi02LjEwOCAgIGMwLTMuMzE2LTAuNTQ1LTUuODY2LTEuNjI4LTcuNjQ5Yy0xLjA4NC0xLjc4My0yLjQwMi0yLjk3Ny0zLjk1OC0zLjU4MWMtMS4xMTktMC40MzUtMi45MjUtMC42NDktNS40MTUtMC42NDloLTYuNjRWNjAuMDggICBMNDY4LjM5NCw2MC4wOHogTTQ5NS42MzYsMzYuNTU5di00LjQyMWgzLjg5MXY0LjQyMUg0OTUuNjM2TDQ5NS42MzYsMzYuNTU5eiBNNDk1LjYzNiw2My43OTVWNDAuODQ4aDMuODkxdjIyLjk0N0g0OTUuNjM2ICAgTDQ5NS42MzYsNjMuNzk1eiBNNTAzLjkxMiw1Ni45NDFsMy44NDctMC42MTljMC4yMTQsMS41NCwwLjgxNywyLjcyLDEuODA1LDMuNTQ1YzAuOTg4LDAuODE3LDIuMzczLDEuMjMsNC4xNDIsMS4yMyAgIGMxLjc5MSwwLDMuMTE3LTAuMzYxLDMuOTg2LTEuMDkxYzAuODYyLTAuNzIyLDEuMjk3LTEuNTc3LDEuMjk3LTIuNTU3YzAtMC44NzctMC4zOS0xLjU3LTEuMTY0LTIuMDcxICAgYy0wLjU0NS0wLjM0Ni0xLjg3MS0wLjc4MS0zLjk3OS0xLjMxOGMtMi44NDQtMC43MTUtNC44MTItMS4zMzQtNS45MTctMS44NTdjLTEuMDk4LTAuNTMtMS45MzEtMS4yNTMtMi40OTgtMi4xODEgICBjLTAuNTY3LTAuOTIyLTAuODU0LTEuOTQ1LTAuODU0LTMuMDY2YzAtMS4wMjQsMC4yMzYtMS45NjcsMC43LTIuODM3YzAuNDcyLTAuODcsMS4xMDUtMS41OTEsMS45MDgtMi4xNjcgICBjMC42MDQtMC40NDIsMS40My0wLjgxOCwyLjQ2OS0xLjEyN2MxLjA0Ni0wLjMwOSwyLjE1OS0wLjQ2NCwzLjM1My0wLjQ2NGMxLjc5OSwwLDMuMzc1LDAuMjU4LDQuNzMxLDAuNzgxICAgYzEuMzYyLDAuNTE2LDIuMzY1LDEuMjI0LDMuMDE0LDIuMTA3YzAuNjQxLDAuODkyLDEuMDkxLDIuMDc4LDEuMzM0LDMuNTY3bC0zLjgwMywwLjUzYy0wLjE2OS0xLjE5NC0wLjY3MS0yLjEyOS0xLjQ5Ni0yLjggICBjLTAuODI1LTAuNjctMS45ODktMS4wMDItMy41LTEuMDAyYy0xLjc3NSwwLTMuMDUxLDAuMjk1LTMuODEsMC44ODRzLTEuMTQzLDEuMjgyLTEuMTQzLDIuMDcxYzAsMC41MDEsMC4xNTUsMC45NTgsMC40NzIsMS4zNjMgICBjMC4zMTcsMC40MTIsMC44MTEsMC43NTksMS40ODgsMS4wMzFjMC4zOTEsMC4xNDcsMS41MjYsMC40NzksMy40MjcsMC45OTVjMi43NDEsMC43MjksNC42NTcsMS4zMzMsNS43NDgsMS43OTggICBjMS4wOTEsMC40NjQsMS45NDUsMS4xNDksMi41NjQsMi4wMzRjMC42MjYsMC44OTEsMC45MzYsMS45OTYsMC45MzYsMy4zMjNjMCwxLjI4OS0wLjM3NiwyLjUwNS0xLjEzNSwzLjY0NyAgIGMtMC43NTksMS4xNDItMS44NSwyLjAyNi0zLjI3MSwyLjY1MmMtMS40MywwLjYyNy0zLjA0NCwwLjkzNy00Ljg0MiwwLjkzN2MtMi45NzcsMC01LjI1NC0wLjYxOS02LjgxNi0xLjg1ICAgQzUwNS4zNDEsNjEuMTkzLDUwNC4zNDYsNTkuMzY2LDUwMy45MTIsNTYuOTQxTDUwMy45MTIsNTYuOTQxeiBNNTI3LjU2Niw3Mi41OTNWNDAuODQ4aDMuNTM2djMuMDE0ICAgYzAuODMzLTEuMTY1LDEuNzc2LTIuMDQxLDIuODMtMi42MjRjMS4wNDctMC41ODIsMi4zMjEtMC44NzcsMy44MTctMC44NzdjMS45NiwwLDMuNjg1LDAuNTAxLDUuMTgsMS41MTEgICBjMS40OTYsMS4wMDIsMi42MjQsMi40MjQsMy4zOSw0LjI1MmMwLjc2LDEuODM1LDEuMTQzLDMuODM5LDEuMTQzLDYuMDI3YzAsMi4zMzYtMC40Miw0LjQ0My0xLjI2LDYuMzIyICAgYy0wLjg0LDEuODcyLTIuMDYzLDMuMzA5LTMuNjcsNC4zMTJjLTEuNiwwLjk5NS0zLjI4NywxLjQ5Ni01LjA1NSwxLjQ5NmMtMS4yOTcsMC0yLjQ2Mi0wLjI3My0zLjQ4NS0wLjgxOCAgIGMtMS4wMzItMC41NDUtMS44NzItMS4yMy0yLjUzNS0yLjA2M3YxMS4xOTNINTI3LjU2Nkw1MjcuNTY2LDcyLjU5M3ogTTUzMS4xMDIsNTIuNDYxYzAsMi45NCwwLjU5OCw1LjExNCwxLjc4NCw2LjUyMSAgIGMxLjE5MywxLjQwNywyLjYzOCwyLjExNSw0LjMzMywyLjExNWMxLjcyNCwwLDMuMTk3LTAuNzI5LDQuNDIxLTIuMTg4YzEuMjMtMS40NTksMS44NDItMy43MTQsMS44NDItNi43NzIgICBjMC0yLjkxOC0wLjU5Ny01LjA5OS0xLjc5OC02LjU1MXMtMi42My0yLjE3NC00LjI5Ni0yLjE3NGMtMS42NSwwLTMuMTA5LDAuNzc0LTQuMzc3LDIuMzE0ICAgQzUzMS43MzcsNDcuMjczLDUzMS4xMDIsNDkuNTE0LDUzMS4xMDIsNTIuNDYxTDUzMS4xMDIsNTIuNDYxeiBNNTUyLjA2Nyw2My43OTVWMzIuMTM4aDMuODkxdjMxLjY1N0g1NTIuMDY3TDU1Mi4wNjcsNjMuNzk1eiAgICBNNTc2Ljk2Niw2MC45MjFjLTEuNDQ0LDEuMjMtMi44MzcsMi4wOTMtNC4xNzEsMi42MDFjLTEuMzMzLDAuNTA5LTIuNzYzLDAuNzYtNC4yOTYsMC43NmMtMi41MjEsMC00LjQ1OC0wLjYxMi01LjgxMy0xLjg0MyAgIGMtMS4zNTYtMS4yMjMtMi4wMzQtMi43OTMtMi4wMzQtNC43MDFjMC0xLjEyLDAuMjU4LTIuMTQ1LDAuNzY3LTMuMDczYzAuNTE2LTAuOTI4LDEuMTg3LTEuNjY1LDIuMDEyLTIuMjI1ICAgYzAuODMyLTAuNTYxLDEuNzYxLTAuOTg4LDIuOC0xLjI3NWMwLjc2Ny0wLjE5OCwxLjkyNC0wLjM5MSwzLjQ2NC0wLjU4MmMzLjEzOS0wLjM2OCw1LjQ2LTAuODE4LDYuOTQxLTEuMzM0ICAgYzAuMDE1LTAuNTMsMC4wMjEtMC44NjksMC4wMjEtMS4wMDljMC0xLjU3Ny0wLjM2OC0yLjY5LTEuMTA1LTMuMzM4Yy0wLjk5NC0wLjg3Ny0yLjQ3Ni0xLjMxMi00LjQzNi0xLjMxMiAgIGMtMS44MzUsMC0zLjE5LDAuMzI1LTQuMDYxLDAuOTY1Yy0wLjg3NywwLjY0MS0xLjUxOCwxLjc3Ni0xLjkzOCwzLjQxMmwtMy44MDMtMC41M2MwLjM0Ni0xLjYyOCwwLjkxNC0yLjk0OCwxLjcxLTMuOTUgICBzMS45NDUtMS43NjksMy40NDgtMi4zMTRjMS40OTYtMC41MzgsMy4yNDItMC44MTEsNS4yMTctMC44MTFjMS45NiwwLDMuNTYsMC4yMjksNC43OSwwLjY5M2MxLjIyNCwwLjQ2NCwyLjEzLDEuMDM5LDIuNzA0LDEuNzM5ICAgYzAuNTc1LDAuNywwLjk4LDEuNTg0LDEuMjE2LDIuNjUzYzAuMTI2LDAuNjYzLDAuMTkxLDEuODU3LDAuMTkxLDMuNTczdjUuMTU4YzAsMy42MDQsMC4wODEsNS44ODEsMC4yNDMsNi44NDYgICBjMC4xNTUsMC45NjYsMC40NzksMS44ODcsMC45NTEsMi43NzFoLTQuMDY3QzU3Ny4zMjgsNjIuOTc3LDU3Ny4wNzcsNjIuMDE5LDU3Ni45NjYsNjAuOTIxTDU3Ni45NjYsNjAuOTIxeiBNNTc2LjY1Nyw1Mi4yOTkgICBjLTEuNDE1LDAuNTc1LTMuNTM3LDEuMDYyLTYuMzY2LDEuNDU5Yy0xLjYwNiwwLjIyOS0yLjc0MSwwLjQ4Ni0zLjQwNSwwLjc3M2MtMC42NjIsMC4yODgtMS4xNzEsMC43MDgtMS41MzIsMS4yNTMgICBjLTAuMzYsMC41NTMtMC41NDUsMS4xNjUtMC41NDUsMS44NDNjMCwxLjAyNCwwLjM5LDEuODg3LDEuMTc5LDIuNTcxYzAuNzg4LDAuNjg2LDEuOTM4LDEuMDMyLDMuNDQ4LDEuMDMyICAgYzEuNDk2LDAsMi44My0wLjMyNCw0LjAwMi0wLjk4YzEuMTY0LTAuNjQ4LDIuMDI2LTEuNTQsMi41NzEtMi42NjdjMC40Mi0wLjg3NywwLjYyNy0yLjE2NywwLjYyNy0zLjg2OUw1NzYuNjU3LDUyLjI5OSAgIEw1NzYuNjU3LDUyLjI5OXogTTU4Ni4zOTEsNzIuNjE1bC0wLjQ0MS0zLjU5N2MwLjg1NCwwLjIyOSwxLjU5MSwwLjM0NywyLjIyNSwwLjM0N2MwLjg3LDAsMS41NjItMC4xNDcsMi4wNzgtMC40MzUgICBjMC41MjMtMC4yODcsMC45NTEtMC42OTMsMS4yODItMS4yMDljMC4yNDMtMC4zOSwwLjY0Mi0xLjM1NSwxLjE4Ny0yLjkwM2MwLjA3NC0wLjIxMywwLjE4NS0wLjUzLDAuMzQ2LTAuOTVsLTguNzA5LTIzLjAyMWg0LjE1NSAgIGw0Ljc5LDEzLjI0OWMwLjYyNywxLjY3MywxLjE3OSwzLjQ0MSwxLjY3Myw1LjI5OWMwLjQ0OS0xLjc0NiwwLjk4LTMuNDcxLDEuNTk5LTUuMTY2bDQuODk0LTEzLjM4MmgzLjg4M2wtOC42NzMsMjMuMzQ1ICAgYy0wLjkzNiwyLjUxMy0xLjY2NSw0LjIzNy0yLjE4OCw1LjE4OGMtMC42OTIsMS4yNzUtMS40ODgsMi4yMTEtMi4zOCwyLjgwOGMtMC44OTksMC41OTctMS45NjgsMC44OTItMy4yMDYsMC44OTIgICBDNTg4LjE1Myw3My4wNzksNTg3LjMxMiw3Mi45MjUsNTg2LjM5MSw3Mi42MTV6Ii8+DQoJPHBhdGggZmlsbFJ1bGU9ImV2ZW5vZGQiIGNsaXBSdWxlPSJldmVub2RkIiBmaWxsPSIjRUI2MTAxIiBkPSJNMjE2LjYzNyw1My41MzdsNi4yMzQtMC42MTljMC4zNzYsMi4wODUsMS4xMjcsMy42MSwyLjI3LDQuNTkxICAgczIuNjgzLDEuNDY3LDQuNjIsMS40NjdjMi4wNDksMCwzLjU5Ni0wLjQzNiw0LjYzNS0xLjMwNXMxLjU2Mi0xLjg4NywxLjU2Mi0zLjA1MWMwLTAuNzUxLTAuMjIxLTEuMzg1LTAuNjU2LTEuOTE2ICAgYy0wLjQzNS0wLjUyMi0xLjIwMS0wLjk3OS0yLjI5Mi0xLjM2M2MtMC43NDQtMC4yNjYtMi40MzktMC43MjItNS4wOTItMS4zODVjLTMuNDEyLTAuODU1LTUuODA3LTEuOTAxLTcuMTg1LTMuMTQ3ICAgYy0xLjkzOC0xLjc0Ni0yLjkwNC0zLjg3Ni0yLjkwNC02LjM4OWMwLTEuNjE0LDAuNDU3LTMuMTMxLDEuMzY0LTQuNTM5YzAuOTE0LTEuNDA4LDIuMjI1LTIuNDc2LDMuOTQyLTMuMjEzICAgYzEuNzE3LTAuNzM3LDMuNzgtMS4xMDUsNi4yMTItMS4xMDVjMy45NTcsMCw2Ljk0MSwwLjg3Nyw4LjkzOCwyLjYzOGMyLjAwNCwxLjc2MSwzLjA1MSw0LjEwNCwzLjE1NCw3LjA0NGwtNi40MTEsMC4yMjEgICBjLTAuMjczLTEuNjM2LTAuODU1LTIuODA4LTEuNzQ3LTMuNTIyYy0wLjg5Mi0wLjcxNC0yLjIzMi0xLjA3Ni00LjAxNi0xLjA3NmMtMS44NDIsMC0zLjI4NywwLjM4My00LjMyNiwxLjE0OSAgIGMtMC42NywwLjQ5NC0xLjAxLDEuMTQ5LTEuMDEsMS45NzVjMCwwLjc1MiwwLjMxNywxLjM5MywwLjk1MSwxLjkyM2MwLjgwMywwLjY4NSwyLjc1NiwxLjM5Myw1Ljg1OCwyLjEyOSAgIGMzLjEwMiwwLjcyOSw1LjM5NCwxLjQ5Niw2Ljg3NSwyLjI3N2MxLjQ4OSwwLjc4OSwyLjY1MywxLjg1NywzLjQ5MywzLjIyYzAuODQsMS4zNjMsMS4yNiwzLjA0NCwxLjI2LDUuMDQgICBjMCwxLjgxMy0wLjUwMSwzLjUxNi0xLjUxMSw1LjFzLTIuNDMyLDIuNzY0LTQuMjc0LDMuNTI5Yy0xLjg0MiwwLjc3NC00LjE0MSwxLjE1Ny02Ljg5LDEuMTU3Yy00LjAwMSwwLTcuMDc0LTAuOTIxLTkuMjE4LTIuNzcxICAgQzIxOC4zMzIsNTkuNzU2LDIxNy4wNTcsNTcuMDY2LDIxNi42MzcsNTMuNTM3TDIxNi42MzcsNTMuNTM3eiBNMjUzLjczMSwzMi4xMzh2MTEuNzMxYzEuOTY3LTIuMzM2LDQuMzI2LTMuNTA4LDcuMDU5LTMuNTA4ICAgYzEuNDA4LDAsMi42NzUsMC4yNTgsMy44MDMsMC43NzRjMS4xMjcsMC41MjMsMS45NzUsMS4xNzksMi41NSwxLjk5YzAuNTc0LDAuODAzLDAuOTY1LDEuNjk1LDEuMTcxLDIuNjc1ICAgYzAuMjE0LDAuOTgsMC4zMTcsMi40OTgsMC4zMTcsNC41NTR2MTMuNDQxaC02LjA1N1Y1MS42OTRjMC0yLjQwMS0wLjExOC0zLjkyOC0wLjM0Ni00LjU3NmMtMC4yMzYtMC42NDgtMC42NDgtMS4xNjQtMS4yMzgtMS41NCAgIGMtMC41ODktMC4zODMtMS4zMjYtMC41NzUtMi4yMTgtMC41NzVjLTEuMDE3LDAtMS45MjMsMC4yNDMtMi43MjcsMC43MzdjLTAuODAzLDAuNDg2LTEuMzg1LDEuMjIzLTEuNzU0LDIuMjEgICBjLTAuMzc1LDAuOTgtMC41NiwyLjQzOS0wLjU2LDQuMzYydjExLjQ4MWgtNi4wNTdWMzIuMTM4SDI1My43MzFMMjUzLjczMSwzMi4xMzh6IE0yODguMDMzLDU2LjU0NGw2LjA1OCwxLjAxNyAgIGMtMC43NzQsMi4yMTgtMi4wMDQsMy45MDUtMy42NzcsNS4wNjljLTEuNjgsMS4xNTctMy43OCwxLjczOS02LjI5MywxLjczOWMtMy45ODYsMC02Ljk0MS0xLjMwNS04Ljg1LTMuOTEzICAgYy0xLjUxLTIuMDkzLTIuMjctNC43My0yLjI3LTcuOTIxYzAtMy44MDMsMC45OTUtNi43ODcsMi45NzctOC45MzhjMS45ODItMi4xNTksNC40OTUtMy4yMzUsNy41MzEtMy4yMzUgICBjMy40MDQsMCw2LjA5NCwxLjEyNyw4LjA2OCwzLjM4MmMxLjk2OCwyLjI1NSwyLjkxMSw1LjcxLDIuODIzLDEwLjM2OWgtMTUuMTY1YzAuMDQ0LDEuNzk4LDAuNTMsMy4xOTcsMS40NjYsNC4xOTkgICBjMC45MjgsMS4wMDMsMi4wOTIsMS41MDQsMy40NzgsMS41MDRjMC45NTEsMCwxLjc0Ny0wLjI1OCwyLjM4Ny0wLjc3M0MyODcuMjE1LDU4LjUyNSwyODcuNzAyLDU3LjY5MywyODguMDMzLDU2LjU0NCAgIEwyODguMDMzLDU2LjU0NHogTTI4OC4zODcsNTAuMzk4Yy0wLjA0NC0xLjc2Mi0wLjQ5NC0zLjEwMy0xLjM1Ni00LjAxN2MtMC44NjItMC45MjEtMS45MDktMS4zNzgtMy4xNDYtMS4zNzggICBjLTEuMzE5LDAtMi40MSwwLjQ4Ni0zLjI3MSwxLjQ1MmMtMC44NjIsMC45NjUtMS4yODMsMi4yODUtMS4yNjgsMy45NDNIMjg4LjM4N0wyODguMzg3LDUwLjM5OHogTTMxMi42MjQsNTYuNTQ0bDYuMDU4LDEuMDE3ICAgYy0wLjc3NCwyLjIxOC0yLjAwNSwzLjkwNS0zLjY3OCw1LjA2OWMtMS42OCwxLjE1Ny0zLjc4LDEuNzM5LTYuMjkzLDEuNzM5Yy0zLjk4NiwwLTYuOTQxLTEuMzA1LTguODUtMy45MTMgICBjLTEuNTExLTIuMDkzLTIuMjctNC43My0yLjI3LTcuOTIxYzAtMy44MDMsMC45OTUtNi43ODcsMi45NzctOC45MzhjMS45ODItMi4xNTksNC40OTUtMy4yMzUsNy41MzEtMy4yMzUgICBjMy40MDQsMCw2LjA5NCwxLjEyNyw4LjA2OCwzLjM4MmMxLjk2OCwyLjI1NSwyLjkxMSw1LjcxLDIuODIzLDEwLjM2OWgtMTUuMTY2YzAuMDQ0LDEuNzk4LDAuNTMsMy4xOTcsMS40NjYsNC4xOTkgICBjMC45MjksMS4wMDMsMi4wOTMsMS41MDQsMy40NzksMS41MDRjMC45NSwwLDEuNzQ2LTAuMjU4LDIuMzg3LTAuNzczQzMxMS44MDUsNTguNTI1LDMxMi4yOTIsNTcuNjkzLDMxMi42MjQsNTYuNTQ0ICAgTDMxMi42MjQsNTYuNTQ0eiBNMzEyLjk3Nyw1MC4zOThjLTAuMDQ0LTEuNzYyLTAuNDk0LTMuMTAzLTEuMzU1LTQuMDE3Yy0wLjg2Mi0wLjkyMS0xLjkwOS0xLjM3OC0zLjE0Ni0xLjM3OCAgIGMtMS4zMTksMC0yLjQxLDAuNDg2LTMuMjcyLDEuNDUyYy0wLjg2MiwwLjk2NS0xLjI4MiwyLjI4NS0xLjI2OCwzLjk0M0gzMTIuOTc3TDMxMi45NzcsNTAuMzk4eiBNMzM0LjQyOCw0MC44NDh2NC44MTloLTQuMTU2ICAgdjkuMjkyYzAsMS44ODcsMC4wMzcsMi45ODQsMC4xMTgsMy4yOTRzMC4yNTgsMC41NjcsMC41NDUsMC43NzRjMC4yOCwwLjE5OCwwLjYxOSwwLjMwMiwxLjAyNCwwLjMwMiAgIGMwLjU2NywwLDEuMzc4LTAuMTkxLDIuNDQ2LTAuNTgybDAuNTA5LDQuNzE2Yy0xLjQwNywwLjYwNC0yLjk5OSwwLjkwNi00Ljc4MiwwLjkwNmMtMS4wOTEsMC0yLjA3MS0wLjE4NS0yLjk0OC0wLjU1MyAgIGMtMC44NzYtMC4zNjgtMS41MTgtMC44NDgtMS45MjMtMS40M2MtMC40MTItMC41ODktMC42OTItMS4zNzgtMC44NTQtMi4zOGMtMC4xMjYtMC43MDctMC4xOTEtMi4xMzctMC4xOTEtNC4yOTZWNDUuNjY3aC0yLjc4NiAgIHYtNC44MTloMi43ODZ2LTQuNTU0bDYuMDU3LTMuNTgydjguMTM1SDMzNC40MjhMMzM0LjQyOCw0MC44NDh6IE0zMzguNjI4LDYzLjc5NVYzMi4xMzhoOS42MDJsNS42NzQsMjEuNTlsNS42MDctMjEuNTloOS42MjQgICB2MzEuNjU3aC01LjkyNWwtMC4wMjEtMjQuOTIybC02LjI0MiwyNC45MjJoLTYuMTZsLTYuMjEyLTI0LjkyMmwtMC4wMjEsMjQuOTIySDMzOC42MjhMMzM4LjYyOCw2My43OTV6IE0zOTAuNjY3LDYzLjc5NVY2MC4zNiAgIGMtMC44NCwxLjIyNC0xLjkzOCwyLjE5Ni0zLjMwMSwyLjkyNmMtMS4zNjMsMC43MjItMi44LDEuMDgzLTQuMzExLDEuMDgzYy0xLjU0OCwwLTIuOTM0LTAuMzM5LTQuMTU2LTEuMDE3ICAgYy0xLjIzLTAuNjc4LTIuMTE1LTEuNjM2LTIuNjYtMi44NTljLTAuNTUzLTEuMjMtMC44MjUtMi45MjYtMC44MjUtNS4wOTJWNDAuODQ4aDYuMDU3djEwLjU2N2MwLDMuMjM0LDAuMTExLDUuMjA5LDAuMzM5LDUuOTM5ICAgYzAuMjIyLDAuNzI5LDAuNjI3LDEuMzEyLDEuMjI0LDEuNzMxYzAuNTksMC40MjgsMS4zNDEsMC42NDEsMi4yNTUsMC42NDFjMS4wMzksMCwxLjk2OC0wLjI4NywyLjc5My0wLjg1NCAgIHMxLjM4NS0xLjI3NCwxLjY4OC0yLjEyMmMwLjMwMi0wLjg0OCwwLjQ1Ny0yLjkxMSwwLjQ1Ny02LjIwNXYtOS42OTdoNi4wNTd2MjIuOTQ3SDM5MC42NjdMMzkwLjY2Nyw2My43OTV6IE00MDAuMzQyLDU3LjM0ICAgbDYuMTAyLTAuOTI5YzAuMjU4LDEuMTcyLDAuNzgsMi4wNjIsMS41NzcsMi42NjdjMC43ODgsMC42MTEsMS45LDAuOTE0LDMuMzIzLDAuOTE0YzEuNTY5LDAsMi43NDgtMC4yODcsMy41NDQtMC44NjIgICBjMC41MzEtMC40MDUsMC43OTYtMC45NSwwLjc5Ni0xLjYyOGMwLTAuNDU3LTAuMTQ3LTAuODQxLTAuNDM1LTEuMTQzYy0wLjMwMi0wLjI4Ny0wLjk4LTAuNTYtMi4wMjYtMC44MDMgICBjLTQuOS0xLjA4NC04LjAwMy0yLjA3MS05LjMxNC0yLjk2M2MtMS44Mi0xLjI0NS0yLjcyNy0yLjk3LTIuNzI3LTUuMTczYzAtMS45OTcsMC43ODgtMy42NjksMi4zNTgtNS4wMjUgICBjMS41NjktMS4zNTYsNC4wMDEtMi4wMzQsNy4yOTUtMi4wMzRjMy4xMzksMCw1LjQ3NSwwLjUxNiw3LDEuNTQxYzEuNTI1LDEuMDMxLDIuNTgsMi41NDksMy4xNTQsNC41NjFsLTUuNzAzLDEuMDYyICAgYy0wLjI0My0wLjg5OS0wLjcxNS0xLjU5Mi0xLjQtMi4wNzFzLTEuNjY2LTAuNzE1LTIuOTQtMC43MTVjLTEuNjA2LDAtMi43NTYsMC4yMjEtMy40NTYsMC42NyAgIGMtMC40NjQsMC4zMTctMC42OTIsMC43MjktMC42OTIsMS4yM2MwLDAuNDM1LDAuMTk4LDAuODAzLDAuNjA0LDEuMTA1YzAuNTUzLDAuNDA1LDIuNDQ2LDAuOTczLDUuNjg4LDEuNzA5ICAgYzMuMjQyLDAuNzM3LDUuNTA1LDEuNjM3LDYuNzg3LDIuNzA1YzEuMjc0LDEuMDc2LDEuOTA4LDIuNTg2LDEuOTA4LDQuNTE3YzAsMi4xMDEtMC44NzcsMy45MTMtMi42MzksNS40MjQgICBjLTEuNzU0LDEuNTExLTQuMzU0LDIuMjctNy44MDMsMi4yN2MtMy4xMjUsMC01LjYwMS0wLjYzNC03LjQyOS0xLjg5NEM0MDIuMDk2LDYxLjIxNiw0MDAuOTAyLDU5LjUwNiw0MDAuMzQyLDU3LjM0TDQwMC4zNDIsNTcuMzQgICB6IE00MjcuMDk4LDM3Ljc1M3YtNS42MTVoNi4wNTh2NS42MTVINDI3LjA5OEw0MjcuMDk4LDM3Ljc1M3ogTTQyNy4wOTgsNjMuNzk1VjQwLjg0OGg2LjA1OHYyMi45NDdINDI3LjA5OEw0MjcuMDk4LDYzLjc5NXogICAgTTQ1OS4zNjcsNDcuNjU3bC01Ljk2OSwxLjA2MWMtMC4xOTktMS4xODYtMC42NTYtMi4wNzgtMS4zNy0yLjY4M2MtMC43MTUtMC41OTctMS42MzYtMC44OTgtMi43NzEtMC44OTggICBjLTEuNTEsMC0yLjcxOSwwLjUyMy0zLjYxOCwxLjU2OWMtMC44OTgsMS4wNDYtMS4zNDgsMi43OTMtMS4zNDgsNS4yNDdjMCwyLjcyNiwwLjQ1Niw0LjY0OSwxLjM3LDUuNzc2ICAgYzAuOTE0LDEuMTI4LDIuMTM3LDEuNjg4LDMuNjcsMS42ODhjMS4xNDksMCwyLjA5My0wLjMzMSwyLjgyMi0wLjk4N2MwLjczNi0wLjY1NSwxLjI1My0xLjc4MywxLjU1NS0zLjM5bDUuOTY5LDEuMDE4ICAgYy0wLjYxOSwyLjc0MS0xLjgwNiw0LjgxMi0zLjU2LDYuMjEyYy0xLjc1MywxLjM5OS00LjEwNCwyLjEtNy4wNTksMi4xYy0zLjM0NiwwLTYuMDIxLTEuMDYyLTguMDExLTMuMTc2ICAgYy0xLjk5Ni0yLjEyMi0yLjk5MS01LjA1NS0yLjk5MS04LjgwNmMwLTMuNzk1LDEuMDAyLTYuNzQzLDIuOTk5LTguODU3YzEuOTk3LTIuMTE1LDQuNzAxLTMuMTY5LDguMTEzLTMuMTY5ICAgYzIuNzg1LDAsNS4wMDMsMC42MDQsNi42NTQsMS44MDZDNDU3LjQ2NSw0My4zNjgsNDU4LjY0NSw0NS4xOTUsNDU5LjM2Nyw0Ny42NTd6Ii8+DQo8L2c+DQo8L3N2Zz4=
EOT, // icon_url
null // position
);
add_option( 'phonicscore_opensheetmusicdisplay_default_settings_option_name', phonicscore_opensheetmusicdisplay_settings_page_defaults );
}
public function phonicscore_opensheetmusicdisplay_default_settings_create_admin_page() {
$this->phonicscore_opensheetmusicdisplay_default_settings_options = get_option( 'phonicscore_opensheetmusicdisplay_default_settings_option_name' );
$options_pristine = true;
//Populate with default settings if they don't exist
foreach(phonicscore_opensheetmusicdisplay_settings_page_defaults as $key => $value){
if(!array_key_exists($key, $this->phonicscore_opensheetmusicdisplay_default_settings_options) || !isset($this->phonicscore_opensheetmusicdisplay_default_settings_options[$key])){
$this->phonicscore_opensheetmusicdisplay_default_settings_options[$key] = phonicscore_opensheetmusicdisplay_settings_page_defaults[$key];
$options_pristine = false;
}
}
if(!$options_pristine){
update_option('phonicscore_opensheetmusicdisplay_default_settings_option_name', $this->phonicscore_opensheetmusicdisplay_default_settings_options);
}
?>
<div class="wrap">
<h2>OpenSheetMusicDisplay Settings</h2>
<p>Default settings for all new and unset OSMD blocks/shortcodes.</p>
<?php settings_errors(); ?>
<form method="post" action="options.php">
<?php
settings_fields( 'phonicscore_opensheetmusicdisplay_default_settings_option_group' );
do_settings_sections( 'phonicscore-opensheetmusicdisplay-default-settings-page-admin' );
submit_button();
?>
</form>
</div>
<?php }
public function phonicscore_opensheetmusicdisplay_default_settings_page_init() {
register_setting(
'phonicscore_opensheetmusicdisplay_default_settings_option_group', // option_group
'phonicscore_opensheetmusicdisplay_default_settings_option_name', // option_name
array( $this, 'phonicscore_opensheetmusicdisplay_default_settings_sanitize' ) // sanitize_callback
);
add_settings_section(
'phonicscore_opensheetmusicdisplay_default_settings_setting_section', // id
'Defaults', // title
array( $this, 'phonicscore_opensheetmusicdisplay_default_settings_section_info' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin' // page
);
add_settings_field(
'drawTitle', // id
'Draw Title', // title
array( $this, 'drawTitle_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawSubtitle', // id
'Draw Subtitle', // title
array( $this, 'drawSubtitle_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawComposer', // id
'Draw Composer', // title
array( $this, 'drawComposer_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawLyricist', // id
'Draw Lyricist', // title
array( $this, 'drawLyricist_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawMetronomeMarks', // id
'Draw Metronome Marks', // title
array( $this, 'drawMetronomeMarks_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawPartNames', // id
'Draw Part Names', // title
array( $this, 'drawPartNames_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawPartAbbreviations', // id
'Draw Part Abbreviations', // title
array( $this, 'drawPartAbbreviations_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawMeasureNumbers', // id
'Draw Measure Numbers', // title
array( $this, 'drawMeasureNumbers_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawMeasureNumbersOnlyAtSystemStart', // id
'Draw Measure Numbers Only at System Start', // title
array( $this, 'drawMeasureNumbersOnlyAtSystemStart_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'drawTimeSignatures', // id
'Draw Time Signatures', // title
array( $this, 'drawTimeSignatures_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'newSystemFromXML', // id
'New Systems from XML', // title
array( $this, 'newSystemFromXML_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
add_settings_field(
'zoom', // id
'Zoom', // title
array( $this, 'zoom_callback' ), // callback
'phonicscore-opensheetmusicdisplay-default-settings-page-admin', // page
'phonicscore_opensheetmusicdisplay_default_settings_setting_section' // section
);
}
public function phonicscore_opensheetmusicdisplay_default_settings_sanitize($input) {
$sanitary_values = array();
if ( isset( $input['drawTitle'] ) ) {
$sanitary_values['drawTitle'] = $input['drawTitle'];
} else {
$sanitary_values['drawTitle'] = false;
}
if ( isset( $input['drawSubtitle'] ) ) {
$sanitary_values['drawSubtitle'] = $input['drawSubtitle'];
} else {
$sanitary_values['drawSubtitle'] = false;
}
if ( isset( $input['drawComposer'] ) ) {
$sanitary_values['drawComposer'] = $input['drawComposer'];
} else {
$sanitary_values['drawComposer'] = false;
}
if ( isset( $input['drawLyricist'] ) ) {
$sanitary_values['drawLyricist'] = $input['drawLyricist'];
} else {
$sanitary_values['drawLyricist'] = false;
}
if ( isset( $input['drawMetronomeMarks'] ) ) {
$sanitary_values['drawMetronomeMarks'] = $input['drawMetronomeMarks'];
} else {
$sanitary_values['drawMetronomeMarks'] = false;
}
if ( isset( $input['drawPartNames'] ) ) {
$sanitary_values['drawPartNames'] = $input['drawPartNames'];
} else {
$sanitary_values['drawPartNames'] = false;
}
if ( isset( $input['drawPartAbbreviations'] ) ) {
$sanitary_values['drawPartAbbreviations'] = $input['drawPartAbbreviations'];
} else {
$sanitary_values['drawPartAbbreviations'] = false;
}
if ( isset( $input['drawMeasureNumbers'] ) ) {
$sanitary_values['drawMeasureNumbers'] = $input['drawMeasureNumbers'];
} else {
$sanitary_values['drawMeasureNumbers'] = false;
}
if ( isset( $input['drawMeasureNumbersOnlyAtSystemStart'] ) ) {
$sanitary_values['drawMeasureNumbersOnlyAtSystemStart'] = $input['drawMeasureNumbersOnlyAtSystemStart'];
} else {
$sanitary_values['drawMeasureNumbersOnlyAtSystemStart'] = false;
}
if ( isset( $input['drawTimeSignatures'] ) ) {
$sanitary_values['drawTimeSignatures'] = $input['drawTimeSignatures'];
} else {
$sanitary_values['drawTimeSignatures'] = false;
}
if ( isset( $input['newSystemFromXML'] ) ) {
$sanitary_values['newSystemFromXML'] = $input['newSystemFromXML'];
} else {
$sanitary_values['newSystemFromXML'] = false;
}
if ( isset( $input['zoom'] ) ) {
$sanitary_values['zoom'] = round($input['zoom'], 2);
}
$sanitary_values = apply_filters('phonicscore/opensheetmusicdisplay/settings-sanitize-input', $sanitary_values, $input);
return $sanitary_values;
}
public function phonicscore_opensheetmusicdisplay_default_settings_section_info() {
}
public function drawTitle_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawTitle]" id="drawTitle" value="drawTitle" %s> <label for="drawTitle">Render the sheet music title</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawTitle'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawTitle'] === 'drawTitle' ) ? 'checked' : ''
);
}
public function drawSubtitle_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawSubtitle]" id="drawSubtitle" value="drawSubtitle" %s> <label for="drawSubtitle">Render the sheet music subtitle</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawSubtitle'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawSubtitle'] === 'drawSubtitle' ) ? 'checked' : ''
);
}
public function drawComposer_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawComposer]" id="drawComposer" value="drawComposer" %s> <label for="drawComposer">Render the composer name</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawComposer'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawComposer'] === 'drawComposer' ) ? 'checked' : ''
);
}
public function drawLyricist_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawLyricist]" id="drawLyricist" value="drawLyricist" %s> <label for="drawLyricist">Render the lyricist name</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawLyricist'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawLyricist'] === 'drawLyricist' ) ? 'checked' : ''
);
}
public function drawMetronomeMarks_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawMetronomeMarks]" id="drawMetronomeMarks" value="drawMetronomeMarks" %s> <label for="drawMetronomeMarks">Render the metronome markings</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMetronomeMarks'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMetronomeMarks'] === 'drawMetronomeMarks' ) ? 'checked' : ''
);
}
public function drawPartNames_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawPartNames]" id="drawPartNames" value="drawPartNames" %s> <label for="drawPartNames">Render the part names</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawPartNames'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawPartNames'] === 'drawPartNames' ) ? 'checked' : ''
);
}
public function drawPartAbbreviations_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawPartAbbreviations]" id="drawPartAbbreviations" value="drawPartAbbreviations" %s> <label for="drawPartAbbreviations">Render the part abbreviations</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawPartAbbreviations'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawPartAbbreviations'] === 'drawPartAbbreviations' ) ? 'checked' : ''
);
}
public function drawMeasureNumbers_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawMeasureNumbers]" id="drawMeasureNumbers" value="drawMeasureNumbers" %s> <label for="drawMeasureNumbers">Render the measure numbers</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbers'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbers'] === 'drawMeasureNumbers' ) ? 'checked' : ''
);
}
public function drawMeasureNumbersOnlyAtSystemStart_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawMeasureNumbersOnlyAtSystemStart]" id="drawMeasureNumbersOnlyAtSystemStart" value="drawMeasureNumbersOnlyAtSystemStart" %s> <label for="drawMeasureNumbersOnlyAtSystemStart">Render the measure numbers only at the beginning of a line</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbersOnlyAtSystemStart'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbersOnlyAtSystemStart'] === 'drawMeasureNumbersOnlyAtSystemStart' ) ? 'checked' : ''
);
}
public function drawTimeSignatures_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[drawTimeSignatures]" id="drawTimeSignatures" value="drawTimeSignatures" %s> <label for="drawTimeSignatures">Render time signatures</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawTimeSignatures'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['drawTimeSignatures'] === 'drawTimeSignatures' ) ? 'checked' : ''
);
}
public function newSystemFromXML_callback() {
printf(
'<input type="checkbox" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[newSystemFromXML]" id="newSystemFromXML" value="newSystemFromXML" %s> <label for="newSystemFromXML">Oblige system breaks specified in the MusicXML</label>',
( isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['newSystemFromXML'] ) && $this->phonicscore_opensheetmusicdisplay_default_settings_options['newSystemFromXML'] === 'newSystemFromXML' ) ? 'checked' : ''
);
}
public function zoom_callback() {
printf(
'<input type="number" step="0.05" min="0.05" max="5.0" name="phonicscore_opensheetmusicdisplay_default_settings_option_name[zoom]" id="zoom" value="%.2f"> <label for="zoom">Default Zoom Value</label>',
isset( $this->phonicscore_opensheetmusicdisplay_default_settings_options['zoom'] ) ? $this->phonicscore_opensheetmusicdisplay_default_settings_options['zoom'] : 1.00
);
}
}
if ( is_admin() )
$phonicscore_opensheetmusicdisplay_default_settings = new phonicscore_OpenSheetMusicDisplayDefaultSettingsPage();
/*
* Retrieve this value with:
* $phonicscore_opensheetmusicdisplay_default_settings_options = get_option( 'phonicscore_opensheetmusicdisplay_default_settings_option_name' ); // Array of All Options
* $drawTitle = $phonicscore_opensheetmusicdisplay_default_settings_options['drawTitle']; // Draw Title
* $drawSubtitle = $phonicscore_opensheetmusicdisplay_default_settings_options['drawSubtitle']; // Draw Subtitle
* $drawComposer = $phonicscore_opensheetmusicdisplay_default_settings_options['drawComposer']; // Draw Composer
* $drawLyricist = $phonicscore_opensheetmusicdisplay_default_settings_options['drawLyricist']; // Draw Lyricist
* $drawMetronomeMarks = $phonicscore_opensheetmusicdisplay_default_settings_options['drawMetronomeMarks']; // Draw Metronome Marks
* $drawPartNames = $phonicscore_opensheetmusicdisplay_default_settings_options['drawPartNames']; // Draw Part Names
* $drawPartAbbreviations = $phonicscore_opensheetmusicdisplay_default_settings_options['drawPartAbbreviations']; // Draw Part Abbreviations
* $drawMeasureNumbers = $phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbers']; // Draw Measure Numbers
* $drawMeasureNumbersOnlyAtSystemStart = $phonicscore_opensheetmusicdisplay_default_settings_options['drawMeasureNumbersOnlyAtSystemStart']; // Draw Measure Numbers Only at System Start
* $drawTimeSignatures = $phonicscore_opensheetmusicdisplay_default_settings_options['drawTimeSignatures']; // Draw Time Signatures
* $newSystemFromXML = $phonicscore_opensheetmusicdisplay_default_settings_options['newSystemFromXML']; // New Systems from XML
*/