-
Notifications
You must be signed in to change notification settings - Fork 2
/
web_miner.js
192 lines (164 loc) · 322 KB
/
web_miner.js
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
// This is a modified version of https://moneroocean.stream/web_miner/cn.min.js which already contains
// the necessary cn.wasm file as 'Module["wasmBinary"]'.
// Injecting a cn.wasm file as binary blob url would fail to load in Chrome based browsers because of
// CORS, which may only load from http or https locations and not local blob URLs.
var cn_min_js = new Blob([atob("dmFyIE1vZHVsZTtpZighTW9kdWxlKU1vZHVsZT0odHlwZW9mIE1vZHVsZSE9PSJ1bmRlZmluZWQiP01vZHVsZTpudWxsKXx8e307dmFyIG1vZHVsZU92ZXJyaWRlcz17fTtmb3IodmFyIGtleSBpbiBNb2R1bGUpe2lmKE1vZHVsZS5oYXNPd25Qcm9wZXJ0eShrZXkpKXttb2R1bGVPdmVycmlkZXNba2V5XT1Nb2R1bGVba2V5XX19CnZhciBjbl93YXNtX2NvbnRlbnQgPSBhdG9iKCJBR0Z6YlFFQUFBQUJpd0VXWUFOL2YzOEFZQU4vZjM4QmYyQUJmd0YvWUFGL0FHQUFBWDlnQW45L0FYOWdBbjkvQUdBRGYzOStBR0FFZjM5L2Z3QmdBbjkvQVg1Z0FuOS9BWHhnQkg5L2YzOEJmR0FGZjM5L2YzOEJmR0FCZndGK1lBSjhmd0Y4WUFKOGZBRjhZQVIvZjM5L0FYOWdBMzUvZndGL1lBSitmd0YvWUFWL2YzOS9md0JnQm45OGYzOS9md0YvWUFBQUFyY0RHQU5sYm5ZT1JGbE9RVTFKUTFSUFVGOVFWRklEZndBRFpXNTJDRk5VUVVOTFZFOVFBMzhBQTJWdWRnbFRWRUZEUzE5TlFWZ0Rmd0FHWjJ4dlltRnNBMDVoVGdOOEFBWm5iRzlpWVd3SVNXNW1hVzVwZEhrRGZBQURaVzUyQldGaWIzSjBBQU1EWlc1MkRXVnViR0Z5WjJWTlpXMXZjbmtBQkFObGJuWU9aMlYwVkc5MFlXeE5aVzF2Y25rQUJBTmxibllYWVdKdmNuUlBia05oYm01dmRFZHliM2ROWlcxdmNua0FCQU5sYm5ZSFgyZHRkR2x0WlFBQ0EyVnVkZ2RmWDE5c2IyTnJBQU1EWlc1MkMxOWZYM041YzJOaGJHdzJBQVVEWlc1MkMxOWZYM05sZEVWeWNrNXZBQU1EWlc1MkNWOWZYM1Z1Ykc5amF3QURBMlZ1ZGdaZlpuUnBiV1VBQWdObGJuWVdYMlZ0YzJOeWFYQjBaVzVmYldWdFkzQjVYMkpwWndBQkEyVnVkZ3hmWDE5emVYTmpZV3hzTlRRQUJRTmxibllOWDE5ZmMzbHpZMkZzYkRFME1BQUZBMlZ1ZGd4ZlgxOXplWE5qWVd4c01qQUFCUU5sYm5ZTlgxOWZjM2x6WTJGc2JERTBOZ0FGQTJWdWRnWnRaVzF2Y25rQ0FZQUlnQWdEWlc1MkJYUmhZbXhsQVhBQkVoSURaVzUyQ20xbGJXOXllVUpoYzJVRGZ3QURaVzUyQ1hSaFlteGxRbUZ6WlFOL0FBTmdYd0lFQXdZR0F3UUdCd0FBQUFBQUJnQUFBQU1EQlFZRUNBZ0lBZ01GQmdJQkJBRUJCQVVDQVFVR0JnSUZCd0VKQ2dzTURRNFBEdzRQQWdJRkJSQUFBZ0FSRWhJRkV4UU9CUUVGQVFVQ0FnQUdBUUVCRlFFQ0FRRUNCUkFJQWdFQUJpa0lmd0VqQUF0L0FTTUJDMzhCSXdJTGZ3RkJBQXQvQVVFQUMzd0JJd01MZkFFakJBdC9BVUVBQ3dleEFoWUZYMlp5WldVQUtnaHpaWFJVYUhKbGR3QVRCMTltWm14MWMyZ0FXeEZmWDE5bGNuSnViMTlzYjJOaGRHbHZiZ0F2QjE5dFpXMXpaWFFBWXdWZmMySnlhd0JrQjE5dFpXMWpjSGtBWlFsemRHRmphMU5oZG1VQUVBaGZhR0Z6YUY5amJnQWpDbk4wWVdOclFXeHNiMk1BRHd0blpYUlVaVzF3VW1WME1BQVZDM05sZEZSbGJYQlNaWFF3QUJRTVpIbHVRMkZzYkY5cGFXbHBBR2tiWDJWdGMyTnlhWEIwWlc1ZloyVjBYMmRzYjJKaGJGOXNhV0pqQURJTVpIbHVRMkZzYkY5MmFXbHBBR29QWDJ4c2RtMWZZbk4zWVhCZmFUTXlBR2NLWkhsdVEyRnNiRjlwYVFCb0MzSjFibEJ2YzNSVFpYUnpBR0lUWlhOMFlXSnNhWE5vVTNSaFkydFRjR0ZqWlFBU0NGOXRaVzF0YjNabEFHWU1jM1JoWTJ0U1pYTjBiM0psQUJFSFgyMWhiR3h2WXdBcENSZ0JBQ01HQ3hKckxXd3hMbGt3WDJ4c2JSZ1pHaHR0YlcwS28rVUVYeHNCQVg4akNDRUJJd2dnQUdva0NDTUlRUTlxUVhCeEpBZ2dBUXNFQUNNSUN3WUFJQUFrQ0FzS0FDQUFKQWdnQVNRSkN4QUFJd3BGQkVBZ0FDUUtJQUVrQ3dzTEJnQWdBQ1FPQ3dRQUl3NEwwZzRCSUg4akNDRVdJd2hCd0FCcUpBZ2dGaUVIUVFBaEJBTkFJQWNnQkVFQ2RHb2dBU0FFUVFKMGFpSUNMUUFCUVJCMElBSXRBQUJCR0hSeUlBSXRBQUpCQ0hSeUlBSXRBQU55TmdJQUlBUkJBV29pQkVFUVJ3MEFDeUFBS0FJQUlRd2dBRUVFYWlJWEtBSUFJUWdnQUVFSWFpSVlLQUlBSVFrZ0FFRU1haUlaS0FJQUlROGdBRUVRYWlJYUtBSUFJUUVnQUVFVWFpSWJLQUlBSVFJZ0FFRVlhaUljS0FJQUlRVWdBRUVjYWlJZEtBSUFJUVFnQUVFZ2FpSWVLQUlBUVlqVi9hRUNjeUVRSUFCQkpHb2lIeWdDQUVIVGtZeXRlSE1oQ3lBQVFTaHFJaUFvQWdCQnJwVG1tQUZ6SVJNZ0FFRXNhaUloS0FJQVFjVG13UnR6SVJRZ0FDZ0NQQVIvUVpqMXU4RUFJUkZCME9QOHpBSWhFa0dKMmJuaWZpRU5RYUx3cEtCNklRNUJBQVVnQUNnQ05DSU5RWmoxdThFQWN5RVJJQUFvQWpBaURrSFE0L3pNQW5NaEVpQU5RWW5adWVKK2N5RU5JQTVCb3ZDa29IcHpJUTVCQUFzaEJnTkFJQklnQmtFRWRFSDN3UUJxTFFBQUloSkJBblJCZ0NwcUtBSUFJQWNnQmtFRWRFSDJ3UUJxTFFBQUlncEJBblJxS0FJQWN5QUNhaUFJYWlJSWN5SURRUkIwSUFOQkVIWnlJZ01nQzJvaUN5QUNjeUlDUVJSMElBSkJESFp5SWdJZ0F5QUtRUUowUVlBcWFpZ0NBQ0FISUJKQkFuUnFLQUlBY3lBQ2FpQUlhaUlJY3lJQ1FSaDBJQUpCQ0haeUloSWdDMm9pQzNNaUFrRVpkQ0FDUVFkMmNpRUNJQVVnRVNBR1FRUjBRZm5CQUdvdEFBQWlFVUVDZEVHQUttb29BZ0FnQnlBR1FRUjBRZmpCQUdvdEFBQWlDa0VDZEdvb0FnQnpJQVZxSUFscUlnVnpJZ2xCRUhRZ0NVRVFkbklpQ1NBVGFpSVRjeUlEUVJSMElBTkJESFp5SWdNZ0NTQUtRUUowUVlBcWFpZ0NBQ0FISUJGQkFuUnFLQUlBY3lBRGFpQUZhaUlKY3lJRlFSaDBJQVZCQ0haeUloRWdFMm9pRTNNaUJVRVpkQ0FGUVFkMmNpRUZJQVFnRFNBR1FRUjBRZnZCQUdvdEFBQWlEVUVDZEVHQUttb29BZ0FnQnlBR1FRUjBRZnJCQUdvdEFBQWlDa0VDZEdvb0FnQnpJQVJxSUE5cUlnUnpJZzlCRUhRZ0QwRVFkbklpRHlBVWFpSVVjeUlEUVJSMElBTkJESFp5SWdNZ0R5QUtRUUowUVlBcWFpZ0NBQ0FISUExQkFuUnFLQUlBY3lBRGFpQUVhaUlQY3lJRVFSaDBJQVJCQ0haeUlnMGdGR29pRkhNaUJFRVpkQ0FFUVFkMmNpRUVJQkVnQmtFRWRFR0R3Z0JxTFFBQUloRkJBblJCZ0NwcUtBSUFJQWNnQmtFRWRFR0N3Z0JxTFFBQUlncEJBblJxS0FJQWN5QU9JQVpCQkhSQjljRUFhaTBBQUNJT1FRSjBRWUFxYWlnQ0FDQUhJQVpCQkhSQjlNRUFhaTBBQUNJRFFRSjBhaWdDQUhNZ0FXb2dER29pREhNaUZVRVFkQ0FWUVJCMmNpSVZJQkJxSWhBZ0FYTWlBVUVVZENBQlFReDJjaUlCSUJVZ0EwRUNkRUdBS21vb0FnQWdCeUFPUVFKMGFpZ0NBSE1nQVdvZ0RHb2lESE1pQVVFWWRDQUJRUWgyY2lJT0lCQnFJaEJ6SWdGQkdYUWdBVUVIZG5JaUEyb2dEMm9pRDNNaUFVRVFkQ0FCUVJCMmNpSVZJQXRxSVFFZ0ZTQUtRUUowUVlBcWFpZ0NBQ0FISUJGQkFuUnFLQUlBY3lBRElBRnpJZ3RCRkhRZ0MwRU1kbklpQ21vZ0Qyb2lEM01pQzBFWWRDQUxRUWgyY2lJUklBRnFJUXNnQ2lBTGN5SUJRUmwwSUFGQkIzWnlJUUVnQkNBU0lBWkJCSFJCZ2NJQWFpMEFBQ0lTUVFKMFFZQXFhaWdDQUNBSElBWkJCSFJCZ01JQWFpMEFBQ0lLUVFKMGFpZ0NBSE1nQkdvZ0NXb2lCSE1pQ1VFUWRDQUpRUkIyY2lJSklCQnFJaEJ6SWdOQkZIUWdBMEVNZG5JaUF5QUpJQXBCQW5SQmdDcHFLQUlBSUFjZ0VrRUNkR29vQWdCeklBTnFJQVJxSWdseklnUkJHSFFnQkVFSWRuSWlFaUFRYWlJUWN5SUVRUmwwSUFSQkIzWnlJUVFnQWlBTklBWkJCSFJCL2NFQWFpMEFBQ0lOUVFKMFFZQXFhaWdDQUNBSElBWkJCSFJCL01FQWFpMEFBQ0lLUVFKMGFpZ0NBSE1nQW1vZ0RHb2lBbk1pREVFUWRDQU1RUkIyY2lJTUlCTnFJaE56SWdOQkZIUWdBMEVNZG5JaUF5QU1JQXBCQW5SQmdDcHFLQUlBSUFjZ0RVRUNkR29vQWdCeklBTnFJQUpxSWd4eklnSkJHSFFnQWtFSWRuSWlEU0FUYWlJVGN5SUNRUmwwSUFKQkIzWnlJUUlnQlNBT0lBWkJCSFJCLzhFQWFpMEFBQ0lPUVFKMFFZQXFhaWdDQUNBSElBWkJCSFJCL3NFQWFpMEFBQ0lLUVFKMGFpZ0NBSE1nQldvZ0NHb2lCWE1pQ0VFUWRDQUlRUkIyY2lJSUlCUnFJaFJ6SWdOQkZIUWdBMEVNZG5JaUF5QUlJQXBCQW5SQmdDcHFLQUlBSUFjZ0RrRUNkR29vQWdCeklBTnFJQVZxSWdoeklnVkJHSFFnQlVFSWRuSWlEaUFVYWlJVWN5SUZRUmwwSUFWQkIzWnlJUVVnQmtFQmFpSUdRUTVIRFFBTElCY29BZ0FnQ0hNZ0MzTWhDQ0FZS0FJQUlBbHpJQk56SVFzZ0dTZ0NBQ0FQY3lBVWN5RUpJQm9vQWdBZ0FYTWdEbk1oQVNBYktBSUFJQUp6SUJKeklRSWdIQ2dDQUNBRmN5QVJjeUVGSUIwb0FnQWdCSE1nRFhNaEJDQUFJQUFvQWdBZ0RITWdFSE1nSGlnQ0FDSUFjellDQUNBWElBZ2dIeWdDQUNJTWN6WUNBQ0FZSUFzZ0lDZ0NBQ0lRY3pZQ0FDQVpJQWtnSVNnQ0FDSUljellDQUNBYUlBRWdBSE0yQWdBZ0d5QUNJQXh6TmdJQUlCd2dCU0FRY3pZQ0FDQWRJQVFnQ0hNMkFnQWdGaVFJQzV3Q0FRVi9RY0FBSUFCQk9Hb2lCaWdDQUVFRGRTSURheUVFSUFNRVFDQUNRZ09JUWorRElBU3RXZ1JBSUFCQndBQnFJQU5xSUFFZ0JCQmxHaUFBUVRCcUlnVW9BZ0JCZ0FScUlRTWdCU0FETmdJQUlBTkZCRUFnQUVFMGFpSURJQU1vQWdCQkFXbzJBZ0FMSUFBZ0FFSEFBR29RRmlBQklBUnFJUUVnQWlBRVFRTjBySDBoQWtFQUlRTUxCVUVBSVFNTElBSkMvd05XQkVBZ0FFRXdhaUVFSUFCQk5Hb2hCUU5BSUFRZ0JDZ0NBRUdBQkdvaUJ6WUNBQ0FIUlFSQUlBVWdCU2dDQUVFQmFqWUNBQXNnQUNBQkVCWWdBVUhBQUdvaEFTQUNRb0I4ZkNJQ1F2OERWZzBBQ3dzZ0FrSUFVUVJBSUFaQkFEWUNBQThMSUFCQndBQnFJQU5xSUFFZ0FrSURpS2NRWlJvZ0JpQURRUU4wclNBQ2ZENENBQXZTQmdFUGZ5TUlJUWdqQ0VHUUFXb2tDQ0FJSWdOQjU4eW4wQVkyQWdBZ0EwRUVhaUlMUVlYZG50dDdOZ0lBSUFOQkNHb2lERUh5NXJ2akF6WUNBQ0FEUVF4cUlnMUJ1dXEvcW5vMkFnQWdBMEVRYWlJT1FmK2t1WWdGTmdJQUlBTkJGR29pRDBHTTBaWFllVFlDQUNBRFFSaHFJaEJCcTdPUC9BRTJBZ0FnQTBFY2FpSVJRWm1hZzk4Rk5nSUFJQU5CSUdvaUJrSUFOd0lBSUFaQ0FEY0NDQ0FHUWdBM0FoQWdCa0lBTndJWUlBTWdBQ0FCclVJRGhoQVhJQWhCaVFGcUlnQkJnWDg2QUFBZ0NFR0lBV29pQVVFQk9nQUFJQWhCZ0FGcUlnVWdBeWdDT0NJSElBTkJNR29pQkNnQ0FDSUthaUlKSUFkSklBTW9BalJxSWdaQkdIWTZBQUFnQlNBR1FSQjJPZ0FCSUFVZ0JrRUlkam9BQWlBRklBWTZBQU1nQlNBSlFSaDJPZ0FFSUFVZ0NVRVFkam9BQlNBRklBbEJDSFk2QUFZZ0JTQUpPZ0FISUFkQnVBTkdCRUFnQkNBS1FYaHFOZ0lBSUFNZ0FFSUlFQmNnQkNnQ0FDRUFCU0FIUWJnRFNBUkFJQWRGQkVBZ0EwRUJOZ0k4Q3lBRUlBcEJ1QU1nQjJzaUFHczJBZ0FnQTBIVXd3QWdBS3dRRndVZ0JDQUtRWUFFSUFkcklnQnJOZ0lBSUFOQjFNTUFJQUNzRUJjZ0JDQUVLQUlBUWNoOGFqWUNBQ0FEUWRYREFFSzRBeEFYSUFOQkFUWUNQQXNnQXlBQlFnZ1FGeUFFSUFRb0FnQkJlR29pQURZQ0FBc2dCQ0FBUVVCcU5nSUFJQU1nQlVMQUFCQVhJQUlnQXlnQ0FDSUFRUmgyT2dBQUlBSWdBRUVRZGpvQUFTQUNJQUJCQ0hZNkFBSWdBaUFBT2dBRElBSWdDeWdDQUNJQVFSaDJPZ0FFSUFJZ0FFRVFkam9BQlNBQ0lBQkJDSFk2QUFZZ0FpQUFPZ0FISUFJZ0RDZ0NBQ0lBUVJoMk9nQUlJQUlnQUVFUWRqb0FDU0FDSUFCQkNIWTZBQW9nQWlBQU9nQUxJQUlnRFNnQ0FDSUFRUmgyT2dBTUlBSWdBRUVRZGpvQURTQUNJQUJCQ0hZNkFBNGdBaUFBT2dBUElBSWdEaWdDQUNJQVFSaDJPZ0FRSUFJZ0FFRVFkam9BRVNBQ0lBQkJDSFk2QUJJZ0FpQUFPZ0FUSUFJZ0R5Z0NBQ0lBUVJoMk9nQVVJQUlnQUVFUWRqb0FGU0FDSUFCQkNIWTZBQllnQWlBQU9nQVhJQUlnRUNnQ0FDSUFRUmgyT2dBWUlBSWdBRUVRZGpvQUdTQUNJQUJCQ0hZNkFCb2dBaUFBT2dBYklBSWdFU2dDQUNJQVFSaDJPZ0FjSUFJZ0FFRVFkam9BSFNBQ0lBQkJDSFk2QUI0Z0FpQUFPZ0FmSUFna0NBdmxDd0VLZnlNSUlRc2pDRUhRQW1va0NDQUxJZ05DQURjQ0FDQURRZ0EzQWdnZ0EwSUFOd0lRSUFOQ0FEY0NHQ0FEUWdBM0FpQWdBMElBTndJb0lBTkNBRGNDTUNBRFFRQTJBamdnQTBFOGFpSU1RWUNBQkRZQ0FDQURRWWdCYWlJRlFRQTJBZ0FnQTBIQUFHb2lCa0VBTmdJQUlBTkJ4QUJxSWdSQkFEWUNBQ0FEUVl3QmFpSUhRUUEyQWdBZ0F5QUFJQUZCLy8vLy93RnhJZ2dRSGlBQlFjRC8vLzhCY1NJQklBaEpCRUFEUUNBQUlBRnFMQUFBSVFrZ0JTQUZLQUlBSWdwQkFXbzJBZ0FnQTBISUFHb2dDbW9nQ1RvQUFDQUJRUUZxSWdFZ0NFY05BQXNMSUFjb0FnQWlBUVJBSUFNZ0JTZ0NBR3BCeHdCcUlnQWdBQzBBQUVFQklBRjBRWDlxUVFnZ0FXdDBjVG9BQUNBRElBVW9BZ0JxUWNjQWFpSUFJQUF0QUFCQkFVRUhJQWNvQWdCcmRITTZBQUFnQjBFQU5nSUFCU0FGSUFVb0FnQWlBRUVCYWpZQ0FDQURRY2dBYWlBQWFrR0Fmem9BQUFzQ1FBSkFJQVVvQWdBaUFFRTRTZ1JBSUFCQndBQklCRUFEUUNBRklBQkJBV28yQWdBZ0EwSElBR29nQUdwQkFEb0FBQ0FGS0FJQUlnQkJ3QUJJRFFBTEN5QURJQU5CeUFCcVFjQUFFQjRnQlVFQU5nSUFRUUFoQUF3QkJTQUFRVGhIRFFFTERBRUxBMEFnQlNBQVFRRnFOZ0lBSUFOQnlBQnFJQUJxUVFBNkFBQWdCU2dDQUNJQVFUaElEUUFMQ3lBR0lBWW9BZ0JCQVdvaUFUWUNBQ0FCUlFSQUlBUWdCQ2dDQUVFQmFqWUNBQXNnQlVIQUFEWUNBRUhBQUNFQUEwQWdCU0FBUVg5cUlnQTJBZ0FnQTBISUFHb2dBR29nQVRvQUFDQUJRUWgySVFFZ0JTZ0NBQ0lBUVR4S0RRQUxJQVlnQVRZQ0FDQUFRVGhLQkVBZ0JDZ0NBQ0VCQTBBZ0JTQUFRWDlxSWdBMkFnQWdBMEhJQUdvZ0FHb2dBVG9BQUNBQlFRaDJJUUVnQlNnQ0FDSUFRVGhLRFFBTElBUWdBVFlDQUFzZ0F5QURRY2dBYWtIQUFCQWVJQXRCa0FKcUlnUWdBeWtDQURjQ0FDQUVJQU1wQWdnM0FnZ2dCQ0FES1FJUU53SVFJQVFnQXlrQ0dEY0NHQ0FFSUFNcEFpQTNBaUFnQkNBREtRSW9Od0lvSUFRZ0F5a0NNRGNDTUNBRUlBTXBBamczQWpnZ0JDQUxRZEFCYWlJQlFRQVFIeUFCSUF0QmtBRnFJZ0JCQVJBZklBQWdBVUVDRUI4Z0FTQUFRUU1RSHlBQUlBRkJCQkFmSUFFZ0FFRUZFQjhnQUNBQlFRWVFIeUFCSUFCQkJ4QWZJQUFnQVVFSUVCOGdBU0FFUVFrUUh5QURJQU1vQWdBZ0JDZ0NBSE0yQWdBZ0EwRUVhaUlBSUFBb0FnQWdCQ2dDQkhNMkFnQWdBMEVJYWlJQUlBQW9BZ0FnQkNnQ0NITTJBZ0FnQTBFTWFpSUFJQUFvQWdBZ0JDZ0NESE0yQWdBZ0EwRVFhaUlBSUFBb0FnQWdCQ2dDRUhNMkFnQWdBMEVVYWlJQUlBQW9BZ0FnQkNnQ0ZITTJBZ0FnQTBFWWFpSUFJQUFvQWdBZ0JDZ0NHSE0yQWdBZ0EwRWNhaUlBSUFBb0FnQWdCQ2dDSEhNMkFnQWdBMEVnYWlJQUtBSUFJQVFvQWlCeklRWWdBQ0FHTmdJQUlBTkJKR29pQUNnQ0FDQUVLQUlrY3lFSElBQWdCellDQUNBRFFTaHFJZ0FvQWdBZ0JDZ0NLSE1oQ0NBQUlBZzJBZ0FnQTBFc2FpSUFLQUlBSUFRb0FpeHpJUWtnQUNBSk5nSUFJQU5CTUdvaUFDZ0NBQ0FFS0FJd2N5RUtJQUFnQ2pZQ0FDQURRVFJxSWdBb0FnQWdCQ2dDTkhNaEFTQUFJQUUyQWdBZ0EwRTRhaUlBSUFBb0FnQWdCQ2dDT0hNMkFnQWdEQ0FNS0FJQUlBUW9Banh6TmdJQUlBSWdCam9BQUNBQ0lBWkJDSFk2QUFFZ0FpQUdRUkIyT2dBQ0lBSWdCa0VZZGpvQUF5QUNJQWM2QUFRZ0FpQUhRUWgyT2dBRklBSWdCMEVRZGpvQUJpQUNJQWRCR0hZNkFBY2dBaUFJT2dBSUlBSWdDRUVJZGpvQUNTQUNJQWhCRUhZNkFBb2dBaUFJUVJoMk9nQUxJQUlnQ1RvQURDQUNJQWxCQ0hZNkFBMGdBaUFKUVJCMk9nQU9JQUlnQ1VFWWRqb0FEeUFDSUFvNkFCQWdBaUFLUVFoMk9nQVJJQUlnQ2tFUWRqb0FFaUFDSUFwQkdIWTZBQk1nQWlBQk9nQVVJQUlnQVVFSWRqb0FGU0FDSUFNc0FEWTZBQllnQWlBRExBQTNPZ0FYSUFJZ0FDd0FBRG9BR0NBQ0lBTXNBRGs2QUJrZ0FpQURMQUE2T2dBYUlBSWdBeXdBT3pvQUd5QUNJQXdzQUFBNkFCd2dBaUFETEFBOU9nQWRJQUlnQXl3QVBqb0FIaUFDSUFNc0FEODZBQjhnQ3lRSUMrTUpBZ1YvQW40akNDRUZJd2hCNEFGcUpBZ2dCU0lEUVFocUlnWkNBRGNEQ0NBRFFZQUNOZ0lBSUFOQklHb2lCRUdVeEFBcEFBQTNBQUFnQkVHY3hBQXBBQUEzQUFnZ0JFR2t4QUFwQUFBM0FCQWdCRUdzeEFBcEFBQTNBQmdnQkVHMHhBQXBBQUEzQUNBZ0JFRzh4QUFwQUFBM0FDZ2dCRUhFeEFBcEFBQTNBREFnQkVITXhBQXBBQUEzQURnZ0JFSFV4QUFwQUFBM0FFQWdCRUhjeEFBcEFBQTNBRWdnQkVIa3hBQXBBQUEzQUZBZ0JFSHN4QUFwQUFBM0FGZ2dCRUgweEFBcEFBQTNBR0FnQkVIOHhBQXBBQUEzQUdnZ0JFR0V4UUFwQUFBM0FIQWdCRUdNeFFBcEFBQTNBSGdnQmlBQlFRTjBJZ0d0SWdnM0F3QWdBVUgvQTBzRWZ5QURRYUFCYWlFQlFnQWhDUU5BSUFFZ0FDQUpwMm9pQkNrQUFEY0FBQ0FCSUFRcEFBZzNBQWdnQVNBRUtRQVFOd0FRSUFFZ0JDa0FHRGNBR0NBQklBUXBBQ0EzQUNBZ0FTQUVLUUFvTndBb0lBRWdCQ2tBTURjQU1DQUJJQVFwQURnM0FEZ2dBeEFoSUFsQ3dBQjhJUWtnQ0VLQWZId2lDRUwvQTFZTkFBc2dDYWNGUVFBTElRRWdBMEVRYWlFRUlBaENBRklFUUNBRFFhQUJhaUVISUFBZ0FXb2hBQ0FJUWdPSVFqK0RJUWtnQ0VJSGcwSUFVUVIvSUFjZ0FDQUpweEJsQlNBSElBQWdDVUlCZktjUVpRc2FJQVFnQ0RjREFBc2dCaWtEQUNJSVF2OERneUlKUWdCUkJFQWdBMEdnQVdvaUFFSUFOd01BSUFCQ0FEY0RDQ0FBUWdBM0F4QWdBRUlBTndNWUlBQkNBRGNESUNBQVFnQTNBeWdnQUVJQU53TXdJQUJDQURjRE9DQUFRWUIvT2dBQUlBTWdDRHdBM3dFZ0F5QUlRZ2lJUEFEZUFTQURJQWhDRUlnOEFOMEJJQU1nQ0VJWWlEd0EzQUVnQXlBSVFpQ0lQQURiQVNBRElBaENLSWc4QU5vQklBTWdDRUl3aUR3QTJRRWdBeUFJUWppSVBBRFlBU0FERUNFRklBbENBNGdoQ1NBRUtRTUFRZ2VEUWdCUkJFQWdBeUFKcHlJQVFhQUJhbXBCQUVIQUFDQUFheEJqR2dVZ0NVSUJmS2NpQUVIQUFFa0VRQ0FESUFCQm9BRnFha0VBUWNBQUlBQnJFR01hQ3dzZ0EwR2dBV29nQ0VJRGlLZEJQM0ZxSWdBZ0FDMEFBRUVCSUFpblFRZHhRUWR6ZEhJNkFBQWdBeEFoSUFOQm9BRnFJZ0JDQURjREFDQUFRZ0EzQXdnZ0FFSUFOd01RSUFCQ0FEY0RHQ0FBUWdBM0F5QWdBRUlBTndNb0lBQkNBRGNETUNBQVFnQTNBemdnQXlBR0tRTUFJZ2c4QU44QklBTWdDRUlJaUR3QTNnRWdBeUFJUWhDSVBBRGRBU0FESUFoQ0dJZzhBTndCSUFNZ0NFSWdpRHdBMndFZ0F5QUlRaWlJUEFEYUFTQURJQWhDTUlnOEFOa0JJQU1nQ0VJNGlEd0EyQUVnQXhBaEN3SkFBa0FDUUFKQUFrQWdBeWdDQUVHZ2Ztb2lBRUVGZGlBQVFSdDBjZzRLQUFFRUJBUUNCQVFFQXdRTElBSWdBMEdFQVdvaUFDa0FBRGNBQUNBQ0lBQXBBQWczQUFnZ0FpQUFLUUFRTndBUUlBSWdBQ2dBR0RZQUdDQUZKQWdQQ3lBQ0lBTkJnQUZxSWdBcEFBQTNBQUFnQWlBQUtRQUlOd0FJSUFJZ0FDa0FFRGNBRUNBQ0lBQXBBQmczQUJnZ0JTUUlEd3NnQWlBRFFmQUFhaUlBS1FBQU53QUFJQUlnQUNrQUNEY0FDQ0FDSUFBcEFCQTNBQkFnQWlBQUtRQVlOd0FZSUFJZ0FDa0FJRGNBSUNBQ0lBQXBBQ2czQUNnZ0JTUUlEd3NnQWlBRFFlQUFhaUlBS1FBQU53QUFJQUlnQUNrQUNEY0FDQ0FDSUFBcEFCQTNBQkFnQWlBQUtRQVlOd0FZSUFJZ0FDa0FJRGNBSUNBQ0lBQXBBQ2czQUNnZ0FpQUFLUUF3TndBd0lBSWdBQ2tBT0RjQU9DQUZKQWdQQ3lBRkpBZ0w3QThDRFg4QmZpTUlJUTRqQ0VHZ0Eyb2tDQ0FPSWdWQmdBUTJBZ0FnQlVHQUFqWUNDQ0FGUVNCcUlnTkJ3Q2twQXdBM0F3QWdBMEhJS1NrREFEY0RDQ0FEUWRBcEtRTUFOd01RSUFOQjJDa3BBd0EzQXhnZ0EwSGdLU2tEQURjRElDQURRZWdwS1FNQU53TW9JQU5COENrcEF3QTNBekFnQTBINEtTa0RBRGNET0NBRlFSQnFJZzlDQURjREFDQUZRUmhxSWd4Q2dJQ0FnSUNBZ0lEd0FEY0RBQ0FGUVF4cUlnMUJBRFlDQUNBRlFRaHFJUWtnQVVILy8vLy9BWEVpQVVIQUFFc0VRQ0FCUVg5cVFRWjJJZ2RCQm5RaEN5QUpJQUFnQjBIQUFCQW1JQUFnQzJvaEFDQUJJQXRySVFFTElBRUVRQ0FKUWRnQWFpQU5LQUlBSWdkcUlBQWdBUkJsR2lBTklBY2dBV28yQWdBTElBNUJvQUpxSVFRQ1FBSkFBa0FDUUNBRktBSUFRUWgyUVFOeERnTUNBUUFEQ3lBRlFRaHFJUWdnRENBTUtRTUFRb0NBZ0lDQWdJQ0FnSCtFTndNQUlBMG9BZ0FpQUVIQUFFa0VRQ0FJUWRnQWFpQUFha0VBUWNBQUlBQnJFR01hQ3lBSUlBVkI0QUJxSWdwQkFTQUFFQ1lnQ0NnQ0FFRUhha0VEZGlFSklBcENBRGNEQUNBS1FnQTNBd2dnQ2tJQU53TVFJQXBDQURjREdDQUtRZ0EzQXlBZ0NrSUFOd01vSUFwQ0FEY0RNQ0FLUWdBM0F6Z2dCQ0FES1FNQU53TUFJQVFnQXlrRENEY0RDQ0FFSUFNcEF4QTNBeEFnQkNBREtRTVlOd01ZSUFRZ0F5a0RJRGNESUNBRUlBTXBBeWczQXlnZ0JDQURLUU13TndNd0lBUWdBeWtET0RjRE9DQUpCRUFnQ1VGL2FrRUdkaUVMUVFBaEIwRUFJUUFEUUNBS0lBZXRJaEJDS0laQ2dJQ0FnSUNBd1A4QWd5QVFRamlHaENBUVFoaUdRb0NBZ0lDQTREK0RoQ0FRUWhpSVFpQ0doRGNEQUNBUFFnQTNBd0FnREVLQWdJQ0FnSUNBZ0g4M0F3QWdEVUVBTmdJQUlBZ2dDa0VCUVFnUUppQUNJQUJxSVFVZ0NTQUFheUlCUWNBQVNRUi9JQUVGUWNBQUlnRUxCRUJCQUNFQUEwQWdCU0FBYWlBSVFSaHFJQUJCQTNaQkEzUnFLUU1BSUFCQkEzUkJPSEd0aUR3QUFDQUFRUUZxSWdBZ0FVY05BQXNMSUFNZ0JDa0RBRGNEQUNBRElBUXBBd2czQXdnZ0F5QUVLUU1RTndNUUlBTWdCQ2tER0RjREdDQURJQVFwQXlBM0F5QWdBeUFFS1FNb053TW9JQU1nQkNrRE1EY0RNQ0FESUFRcEF6ZzNBemdnQjBFQmFpSUJRUVowSVFBZ0J5QUxSd1JBSUFFaEJ3d0JDd3NMSUE0a0NBOExJQVZCQ0dvaENTQU1JQXdwQXdCQ2dJQ0FnSUNBZ0lDQWY0UTNBd0FnRFNnQ0FDSUFRU0JKQkVBZ0NVRTRhaUFBYWtFQVFTQWdBR3NRWXhvTElBa2dCVUhBQUdvaUNFRUJJQUFRS0NBSktBSUFRUWRxUVFOMklRc2dDRUlBTndNQUlBaENBRGNEQ0NBSVFnQTNBeEFnQ0VJQU53TVlJQVFnQXlrREFEY0RBQ0FFSUFNcEF3ZzNBd2dnQkNBREtRTVFOd01RSUFRZ0F5a0RHRGNER0NBTEJFQkJBQ0VCQTBBZ0NDQUJyU0lRUWlpR1FvQ0FnSUNBZ01EL0FJTWdFRUk0aG9RZ0VFSVloa0tBZ0lDQWdPQS9nNFFnRUVJWWlFSWdob1EzQXdBZ0QwSUFOd01BSUF4Q2dJQ0FnSUNBZ0lCL053TUFJQTFCQURZQ0FDQUpJQWhCQVVFSUVDZ2dBaUFCYWlFRklBc2dBV3NpQjBFZ1NRUi9JQWNGUVNBaUJ3c0VRRUVBSVFBRFFDQUZJQUJxSUFsQkdHb2dBRUVEZGtFRGRHb3BBd0FnQUVFRGRFRTRjYTJJUEFBQUlBQkJBV29pQUNBSFJ3MEFDd3NnQXlBRUtRTUFOd01BSUFNZ0JDa0RDRGNEQ0NBRElBUXBBeEEzQXhBZ0F5QUVLUU1ZTndNWUlBc2dBVUVnYWlJQVN3UkFJQUFoQVF3QkN3c0xJQTRrQ0E4TElBd2dEQ2tEQUVLQWdJQ0FnSUNBZ0lCL2hEY0RBQ0FOS0FJQUlnQkJnQUZKQkVBZ0JVR2dBV29nQUdwQkFFR0FBU0FBYXhCakdnc2dCVUVJYWlJSUlBVkJvQUZxSWdaQkFTQUFFQ2NnQ0NnQ0FFRUhha0VEZGlFS0lBWkNBRGNEQUNBR1FnQTNBd2dnQmtJQU53TVFJQVpDQURjREdDQUdRZ0EzQXlBZ0JrSUFOd01vSUFaQ0FEY0RNQ0FHUWdBM0F6Z2dCa0lBTndOQUlBWkNBRGNEU0NBR1FnQTNBMUFnQmtJQU53TllJQVpDQURjRFlDQUdRZ0EzQTJnZ0JrSUFOd053SUFaQ0FEY0RlQ0FFSUFNcEF3QTNBd0FnQkNBREtRTUlOd01JSUFRZ0F5a0RFRGNERUNBRUlBTXBBeGczQXhnZ0JDQURLUU1nTndNZ0lBUWdBeWtES0RjREtDQUVJQU1wQXpBM0F6QWdCQ0FES1FNNE53TTRJQVFnQXlrRFFEY0RRQ0FFSUFNcEEwZzNBMGdnQkNBREtRTlFOd05RSUFRZ0F5a0RXRGNEV0NBRUlBTXBBMkEzQTJBZ0JDQURLUU5vTndOb0lBUWdBeWtEY0RjRGNDQUVJQU1wQTNnM0EzZ2dDZ1JBSUFwQmYycEJCM1loQ1VFQUlRZEJBQ0VBQTBBZ0JpQUhyU0lRUWlpR1FvQ0FnSUNBZ01EL0FJTWdFRUk0aG9RZ0VFSVloa0tBZ0lDQWdPQS9nNFFnRUVJWWlFSWdob1EzQXdBZ0QwSUFOd01BSUF4Q2dJQ0FnSUNBZ0lCL053TUFJQTFCQURZQ0FDQUlJQVpCQVVFSUVDY2dBaUFBYWlFTElBb2dBR3NpQVVHQUFVa0VmeUFCQlVHQUFTSUJDd1JBUVFBaEFBTkFJQXNnQUdvZ0JVRWdhaUFBUVFOMlFRTjBhaWtEQUNBQVFRTjBRVGh4cllnOEFBQWdBRUVCYWlJQUlBRkhEUUFMQ3lBRElBUXBBd0EzQXdBZ0F5QUVLUU1JTndNSUlBTWdCQ2tERURjREVDQURJQVFwQXhnM0F4Z2dBeUFFS1FNZ053TWdJQU1nQkNrREtEY0RLQ0FESUFRcEF6QTNBekFnQXlBRUtRTTROd000SUFNZ0JDa0RRRGNEUUNBRElBUXBBMGczQTBnZ0F5QUVLUU5RTndOUUlBTWdCQ2tEV0RjRFdDQURJQVFwQTJBM0EyQWdBeUFFS1FOb053Tm9JQU1nQkNrRGNEY0RjQ0FESUFRcEEzZzNBM2dnQjBFQmFpSUJRUWQwSVFBZ0J5QUpSd1JBSUFFaEJ3d0JDd3NMSUE0a0NBOExJQTRrQ0F1cUFnQWdBQ0FCTFFBRlFRSjBRWUFRYWlnQ0FDQUJMUUFBUVFKMFFZQUlhaWdDQUhNZ0FTMEFDa0VDZEVHQUdHb29BZ0J6SUFFdEFBOUJBblJCZ0NCcUtBSUFjeUFDS0FJQWN6WUNBQ0FBSUFFdEFBUkJBblJCZ0FocUtBSUFJQUV0QUFOQkFuUkJnQ0JxS0FJQWN5QUJMUUFKUVFKMFFZQVFhaWdDQUhNZ0FTMEFEa0VDZEVHQUdHb29BZ0J6SUFJb0FnUnpOZ0lFSUFBZ0FTMEFCMEVDZEVHQUlHb29BZ0FnQVMwQUFrRUNkRUdBR0dvb0FnQnpJQUV0QUFoQkFuUkJnQWhxS0FJQWN5QUJMUUFOUVFKMFFZQVFhaWdDQUhNZ0FpZ0NDSE0yQWdnZ0FDQUJMUUFHUVFKMFFZQVlhaWdDQUNBQkxRQUJRUUowUVlBUWFpZ0NBSE1nQVMwQUMwRUNkRUdBSUdvb0FnQnpJQUV0QUF4QkFuUkJnQWhxS0FJQWN5QUNLQUlNY3pZQ0RBdlhBZ0VIZnlBQUxRQURJUUlnQUMwQUFpRURJQUF0QUFjaEJDQUFMUUFCSVFVZ0FDMEFCaUVHSUFBdEFBc2hCeUFBSUFBdEFBVkJBblJCZ0JCcUtBSUFJQUF0QUFCQkFuUkJnQWhxS0FJQWN5QUFMUUFLUVFKMFFZQVlhaWdDQUhNZ0FDMEFEMEVDZEVHQUlHb29BZ0J6SUFFb0FnQnpOZ0lBSUFCQkJHb2lDQ0FJTFFBQVFRSjBRWUFJYWlnQ0FDQUNRZjhCY1VFQ2RFR0FJR29vQWdCeklBQXRBQWxCQW5SQmdCQnFLQUlBY3lBQUxRQU9RUUowUVlBWWFpZ0NBSE1nQVNnQ0JITTJBZ0FnQUVFSWFpSUNJQVJCQW5SQmdDQnFLQUlBSUFOQkFuUkJnQmhxS0FJQWN5QUNMUUFBUVFKMFFZQUlhaWdDQUhNZ0FDMEFEVUVDZEVHQUVHb29BZ0J6SUFFb0FnaHpOZ0lBSUFCQkRHb2lBQ0FHUVFKMFFZQVlhaWdDQUNBRlFRSjBRWUFRYWlnQ0FITWdCMEVDZEVHQUlHb29BZ0J6SUFBdEFBQkJBblJCZ0FocUtBSUFjeUFCS0FJTWN6WUNBQXVnQndFbmZ5TUlJUWNqQ0VHQUFtb2tDQ0FDUVQ5TUJFQWdCeVFJRHdzZ0IwR0FBV29oQ0NBSFFjQUFhaUVFSUFjaEF5QUFRUVJxSVFzZ0IwSEFBV29pQlVFRWFpRU1JQUJCQ0dvaERTQUZRUWhxSVE0Z0FFRU1haUVQSUFWQkRHb2hFQ0FBUVJCcUlSRWdCVUVRYWlFU0lBQkJGR29oRXlBRlFSUnFJUlFnQUVFWWFpRVZJQVZCR0dvaEZpQUFRUnhxSVJjZ0JVRWNhaUVZSUFCQklHb2hHU0FGUVNCcUlSb2dBRUVrYWlFYklBVkJKR29oSENBQVFTaHFJUjBnQlVFb2FpRWVJQUJCTEdvaEh5QUZRU3hxSVNBZ0FFRXdhaUVoSUFWQk1Hb2hJaUFBUVRScUlTTWdCVUUwYWlFa0lBQkJPR29oSlNBRlFUaHFJU1lnQUVFOGFpRW5JQVZCUEdvaEtDQUFRY0FBYWlFSklBQkJ4QUJxSVFvRFFDQURJQUVwQWdBM0FnQWdBeUFCS1FJSU53SUlJQU1nQVNrQ0VEY0NFQ0FESUFFcEFoZzNBaGdnQXlBQktRSWdOd0lnSUFNZ0FTa0NLRGNDS0NBRElBRXBBakEzQWpBZ0F5QUJLUUk0TndJNElBVWdBQ2dDQUNBQktBSUFjellDQUNBTUlBc29BZ0FnQVNnQ0JITTJBZ0FnRGlBTktBSUFJQUVvQWdoek5nSUFJQkFnRHlnQ0FDQUJLQUlNY3pZQ0FDQVNJQkVvQWdBZ0FTZ0NFSE0yQWdBZ0ZDQVRLQUlBSUFFb0FoUnpOZ0lBSUJZZ0ZTZ0NBQ0FCS0FJWWN6WUNBQ0FZSUJjb0FnQWdBU2dDSEhNMkFnQWdHaUFaS0FJQUlBRW9BaUJ6TmdJQUlCd2dHeWdDQUNBQktBSWtjellDQUNBZUlCMG9BZ0FnQVNnQ0tITTJBZ0FnSUNBZktBSUFJQUVvQWl4ek5nSUFJQ0lnSVNnQ0FDQUJLQUl3Y3pZQ0FDQWtJQ01vQWdBZ0FTZ0NOSE0yQWdBZ0ppQWxLQUlBSUFFb0FqaHpOZ0lBSUNnZ0p5Z0NBQ0FCS0FJOGN6WUNBQ0FESUFSQkFCQWdJQVFnQTBHQWdJQUlFQ0FnQXlBRVFZQ0FnQkFRSUNBRUlBTkJnSUNBR0JBZ0lBTWdCRUdBZ0lBZ0VDQWdCQ0FEUVlDQWdDZ1FJQ0FESUFSQmdJQ0FNQkFnSUFRZ0EwR0FnSUE0RUNBZ0F5QUVRWUNBZ01BQUVDQWdCQ0FJUVlDQWdNZ0FFQ0FnQlNBRVFRQVFIeUFFSUFOQkFSQWZJQU1nQkVFQ0VCOGdCQ0FEUVFNUUh5QURJQVJCQkJBZklBUWdBMEVGRUI4Z0F5QUVRUVlRSHlBRUlBTkJCeEFmSUFNZ0JFRUlFQjhnQkNBRlFRa1FIMEVBSVFZRFFDQUFJQVpCQW5ScUlpa2dDQ0FHUVFKMGFpZ0NBQ0FGSUFaQkFuUnFLQUlBY3lBcEtBSUFjellDQUNBR1FRRnFJZ1pCRUVjTkFBc2dDU0FKS0FJQVFRRnFJZ1kyQWdBZ0JrVUVRQ0FLSUFvb0FnQkJBV28yQWdBTElBRkJ3QUJxSVFFZ0FrRkFhaUlDUVQ5S0RRQUxJQWNrQ0F2WkhRRVZmeUFBSUFBb0FnQWdBbk1pQkRZQ0FDQUNRUkJ6SUFCQkNHb2lDeWdDQUhNaEJ5QUxJQWMyQWdBZ0FrRWdjeUFBUVJCcUlnd29BZ0J6SVFnZ0RDQUlOZ0lBSUFKQk1ITWdBRUVZYWlJT0tBSUFjeUVESUE0Z0F6WUNBQ0FBUVNCcUlnOGdBa0hBQUhNZ0R5Z0NBSE0yQWdBZ0FFRW9haUlSSUFKQjBBQnpJQkVvQWdCek5nSUFJQUJCTUdvaUV5QUNRZUFBY3lBVEtBSUFjellDQUNBQVFUaHFJaFVnQWtId0FITWdGU2dDQUhNMkFnQWdCMEVIZGtIK0EzRWlDVUVDZEVIUUttb29BZ0FoQWlBSVFROTJRZjREY1NJS1FRSjBRZEFxYWlnQ0FDRUhJQU5CR0haQkFYUWlEVUVDZEVIUUttb29BZ0FoQ0NBQUxRQXRRUUYwSWhCQkFuUkIwQ3BxS0FJQUlRTWdBQzBBTmtFQmRDSVNRUUowUWRBcWFpZ0NBQ0VHSUFBdEFEOUJBWFFpRkVFQ2RFSFFLbW9vQWdBaEJTQUpRUUZ5UVFKMFFkQXFhaWdDQUNJSlFRaDBJQUpCR0haeUlBUkJBWFJCL2dOeElnUkJBWEpCQW5SQjBDcHFLQUlBY3lBS1FRRnlRUUowUWRBcWFpZ0NBQ0lLUVJCMElBZEJFSFp5Y3lBTlFRRnlRUUowUWRBcWFpZ0NBQ0lOUVJoMElBaEJDSFp5Y3lBQUxRQWtRUUYwSWhaQkFuUkIwQ3BxS0FJQWN5QVFRUUZ5UVFKMFFkQXFhaWdDQUNJUVFSaDJJQU5CQ0hSeWN5QVNRUUZ5UVFKMFFkQXFhaWdDQUNJU1FSQjJJQVpCRUhSeWN5QVVRUUZ5UVFKMFFkQXFhaWdDQUNJVVFRaDJJQVZCR0hSeWN5RVhJQUVnQ1VFWWRpQUNRUWgwY2lBRVFRSjBRZEFxYWlnQ0FITWdDa0VRZGlBSFFSQjBjbk1nRFVFSWRpQUlRUmgwY25NZ0ZrRUJja0VDZEVIUUttb29BZ0J6SUJCQkNIUWdBMEVZZG5KeklCSkJFSFFnQmtFUWRuSnpJQlJCR0hRZ0JVRUlkbkp6TmdJQUlBRWdGellDQkNBQUxRQVJRUUYwSWdSQkFuUkIwQ3BxS0FJQUlRSWdBQzBBR2tFQmRDSUpRUUowUWRBcWFpZ0NBQ0VISUFBdEFDTkJBWFFpQ2tFQ2RFSFFLbW9vQWdBaENDQUFMUUExUVFGMElnMUJBblJCMENwcUtBSUFJUU1nQUMwQVBrRUJkQ0lRUVFKMFFkQXFhaWdDQUNFR0lBQXRBQWRCQVhRaUVrRUNkRUhRS21vb0FnQWhCU0FFUVFGeVFRSjBRZEFxYWlnQ0FDSUVRUWgwSUFKQkdIWnlJQXN0QUFCQkFYUWlDMEVCY2tFQ2RFSFFLbW9vQWdCeklBbEJBWEpCQW5SQjBDcHFLQUlBSWdsQkVIUWdCMEVRZG5KeklBcEJBWEpCQW5SQjBDcHFLQUlBSWdwQkdIUWdDRUVJZG5KeklBQXRBQ3hCQVhRaUZFRUNkRUhRS21vb0FnQnpJQTFCQVhKQkFuUkIwQ3BxS0FJQUlnMUJHSFlnQTBFSWRISnpJQkJCQVhKQkFuUkIwQ3BxS0FJQUloQkJFSFlnQmtFUWRISnpJQkpCQVhKQkFuUkIwQ3BxS0FJQUloSkJDSFlnQlVFWWRISnpJUllnQVNBRVFSaDJJQUpCQ0hSeUlBdEJBblJCMENwcUtBSUFjeUFKUVJCMklBZEJFSFJ5Y3lBS1FRaDJJQWhCR0hSeWN5QVVRUUZ5UVFKMFFkQXFhaWdDQUhNZ0RVRUlkQ0FEUVJoMmNuTWdFRUVRZENBR1FSQjJjbk1nRWtFWWRDQUZRUWgyY25NMkFnZ2dBU0FXTmdJTUlBQXRBQmxCQVhRaUJVRUNkRUhRS21vb0FnQWhBaUFBTFFBaVFRRjBJZ1JCQW5SQjBDcHFLQUlBSVFzZ0FDMEFLMEVCZENJSlFRSjBRZEFxYWlnQ0FDRUhJQUF0QUQxQkFYUWlDa0VDZEVIUUttb29BZ0FoQ0NBQUxRQUdRUUYwSWcxQkFuUkIwQ3BxS0FJQUlRTWdBQzBBRDBFQmRDSVFRUUowUWRBcWFpZ0NBQ0VHSUFWQkFYSkJBblJCMENwcUtBSUFJZ1ZCQ0hRZ0FrRVlkbklnREMwQUFFRUJkQ0lNUVFGeVFRSjBRZEFxYWlnQ0FITWdCRUVCY2tFQ2RFSFFLbW9vQWdBaUJFRVFkQ0FMUVJCMmNuTWdDVUVCY2tFQ2RFSFFLbW9vQWdBaUNVRVlkQ0FIUVFoMmNuTWdBQzBBTkVFQmRDSVNRUUowUWRBcWFpZ0NBSE1nQ2tFQmNrRUNkRUhRS21vb0FnQWlDa0VZZGlBSVFRaDBjbk1nRFVFQmNrRUNkRUhRS21vb0FnQWlEVUVRZGlBRFFSQjBjbk1nRUVFQmNrRUNkRUhRS21vb0FnQWlFRUVJZGlBR1FSaDBjbk1oRkNBQklBVkJHSFlnQWtFSWRISWdERUVDZEVIUUttb29BZ0J6SUFSQkVIWWdDMEVRZEhKeklBbEJDSFlnQjBFWWRISnpJQkpCQVhKQkFuUkIwQ3BxS0FJQWN5QUtRUWgwSUFoQkdIWnljeUFOUVJCMElBTkJFSFp5Y3lBUVFSaDBJQVpCQ0haeWN6WUNFQ0FCSUJRMkFoUWdBQzBBSVVFQmRDSUdRUUowUWRBcWFpZ0NBQ0VDSUFBdEFDcEJBWFFpQlVFQ2RFSFFLbW9vQWdBaEN5QUFMUUF6UVFGMElnUkJBblJCMENwcUtBSUFJUWNnQUMwQUJVRUJkQ0lKUVFKMFFkQXFhaWdDQUNFTUlBQXRBQTVCQVhRaUNrRUNkRUhRS21vb0FnQWhDQ0FBTFFBWFFRRjBJZzFCQW5SQjBDcHFLQUlBSVFNZ0JrRUJja0VDZEVIUUttb29BZ0FpQmtFSWRDQUNRUmgyY2lBT0xRQUFRUUYwSWc1QkFYSkJBblJCMENwcUtBSUFjeUFGUVFGeVFRSjBRZEFxYWlnQ0FDSUZRUkIwSUF0QkVIWnljeUFFUVFGeVFRSjBRZEFxYWlnQ0FDSUVRUmgwSUFkQkNIWnljeUFBTFFBOFFRRjBJaEJCQW5SQjBDcHFLQUlBY3lBSlFRRnlRUUowUWRBcWFpZ0NBQ0lKUVJoMklBeEJDSFJ5Y3lBS1FRRnlRUUowUWRBcWFpZ0NBQ0lLUVJCMklBaEJFSFJ5Y3lBTlFRRnlRUUowUWRBcWFpZ0NBQ0lOUVFoMklBTkJHSFJ5Y3lFU0lBRWdCa0VZZGlBQ1FRaDBjaUFPUVFKMFFkQXFhaWdDQUhNZ0JVRVFkaUFMUVJCMGNuTWdCRUVJZGlBSFFSaDBjbk1nRUVFQmNrRUNkRUhRS21vb0FnQnpJQWxCQ0hRZ0RFRVlkbkp6SUFwQkVIUWdDRUVRZG5KeklBMUJHSFFnQTBFSWRuSnpOZ0lZSUFFZ0VqWUNIQ0FBTFFBcFFRRjBJZ05CQW5SQjBDcHFLQUlBSVFJZ0FDMEFNa0VCZENJR1FRSjBRZEFxYWlnQ0FDRUxJQUF0QUR0QkFYUWlCVUVDZEVIUUttb29BZ0FoQnlBQUxRQU5RUUYwSWdSQkFuUkIwQ3BxS0FJQUlRd2dBQzBBRmtFQmRDSUpRUUowUWRBcWFpZ0NBQ0VJSUFBdEFCOUJBWFFpQ2tFQ2RFSFFLbW9vQWdBaERpQURRUUZ5UVFKMFFkQXFhaWdDQUNJRFFRaDBJQUpCR0haeUlBOHRBQUJCQVhRaUQwRUJja0VDZEVIUUttb29BZ0J6SUFaQkFYSkJBblJCMENwcUtBSUFJZ1pCRUhRZ0MwRVFkbkp6SUFWQkFYSkJBblJCMENwcUtBSUFJZ1ZCR0hRZ0IwRUlkbkp6SUFBdEFBUkJBWFFpRFVFQ2RFSFFLbW9vQWdCeklBUkJBWEpCQW5SQjBDcHFLQUlBSWdSQkdIWWdERUVJZEhKeklBbEJBWEpCQW5SQjBDcHFLQUlBSWdsQkVIWWdDRUVRZEhKeklBcEJBWEpCQW5SQjBDcHFLQUlBSWdwQkNIWWdEa0VZZEhKeklSQWdBU0FEUVJoMklBSkJDSFJ5SUE5QkFuUkIwQ3BxS0FJQWN5QUdRUkIySUF0QkVIUnljeUFGUVFoMklBZEJHSFJ5Y3lBTlFRRnlRUUowUWRBcWFpZ0NBSE1nQkVFSWRDQU1RUmgyY25NZ0NVRVFkQ0FJUVJCMmNuTWdDa0VZZENBT1FRaDJjbk0yQWlBZ0FTQVFOZ0lrSUFBdEFERkJBWFFpQTBFQ2RFSFFLbW9vQWdBaEFpQUFMUUE2UVFGMElnOUJBblJCMENwcUtBSUFJUXNnQUMwQUEwRUJkQ0lHUVFKMFFkQXFhaWdDQUNFSElBQXRBQlZCQVhRaUJVRUNkRUhRS21vb0FnQWhEQ0FBTFFBZVFRRjBJZ1JCQW5SQjBDcHFLQUlBSVFnZ0FDMEFKMEVCZENJSlFRSjBRZEFxYWlnQ0FDRU9JQU5CQVhKQkFuUkIwQ3BxS0FJQUlnTkJDSFFnQWtFWWRuSWdFUzBBQUVFQmRDSVJRUUZ5UVFKMFFkQXFhaWdDQUhNZ0QwRUJja0VDZEVIUUttb29BZ0FpRDBFUWRDQUxRUkIyY25NZ0JrRUJja0VDZEVIUUttb29BZ0FpQmtFWWRDQUhRUWgyY25NZ0FDMEFERUVCZENJS1FRSjBRZEFxYWlnQ0FITWdCVUVCY2tFQ2RFSFFLbW9vQWdBaUJVRVlkaUFNUVFoMGNuTWdCRUVCY2tFQ2RFSFFLbW9vQWdBaUJFRVFkaUFJUVJCMGNuTWdDVUVCY2tFQ2RFSFFLbW9vQWdBaUNVRUlkaUFPUVJoMGNuTWhEU0FCSUFOQkdIWWdBa0VJZEhJZ0VVRUNkRUhRS21vb0FnQnpJQTlCRUhZZ0MwRVFkSEp6SUFaQkNIWWdCMEVZZEhKeklBcEJBWEpCQW5SQjBDcHFLQUlBY3lBRlFRaDBJQXhCR0haeWN5QUVRUkIwSUFoQkVIWnljeUFKUVJoMElBNUJDSFp5Y3pZQ0tDQUJJQTAyQWl3Z0FDMEFPVUVCZENJRFFRSjBRZEFxYWlnQ0FDRUNJQUF0QUFKQkFYUWlEMEVDZEVIUUttb29BZ0FoQ3lBQUxRQUxRUUYwSWhGQkFuUkIwQ3BxS0FJQUlRY2dBQzBBSFVFQmRDSUdRUUowUWRBcWFpZ0NBQ0VNSUFBdEFDWkJBWFFpQlVFQ2RFSFFLbW9vQWdBaENDQUFMUUF2UVFGMElnUkJBblJCMENwcUtBSUFJUTRnQTBFQmNrRUNkRUhRS21vb0FnQWlBMEVJZENBQ1FSaDJjaUFUTFFBQVFRRjBJaE5CQVhKQkFuUkIwQ3BxS0FJQWN5QVBRUUZ5UVFKMFFkQXFhaWdDQUNJUFFSQjBJQXRCRUhaeWN5QVJRUUZ5UVFKMFFkQXFhaWdDQUNJUlFSaDBJQWRCQ0haeWN5QUFMUUFVUVFGMElnbEJBblJCMENwcUtBSUFjeUFHUVFGeVFRSjBRZEFxYWlnQ0FDSUdRUmgySUF4QkNIUnljeUFGUVFGeVFRSjBRZEFxYWlnQ0FDSUZRUkIySUFoQkVIUnljeUFFUVFGeVFRSjBRZEFxYWlnQ0FDSUVRUWgySUE1QkdIUnljeUVLSUFFZ0EwRVlkaUFDUVFoMGNpQVRRUUowUWRBcWFpZ0NBSE1nRDBFUWRpQUxRUkIwY25NZ0VVRUlkaUFIUVJoMGNuTWdDVUVCY2tFQ2RFSFFLbW9vQWdCeklBWkJDSFFnREVFWWRuSnpJQVZCRUhRZ0NFRVFkbkp6SUFSQkdIUWdEa0VJZG5Kek5nSXdJQUVnQ2pZQ05DQUFMUUFCUVFGMElnTkJBblJCMENwcUtBSUFJUUlnQUMwQUNrRUJkQ0lQUVFKMFFkQXFhaWdDQUNFTElBQXRBQk5CQVhRaUVVRUNkRUhRS21vb0FnQWhCeUFBTFFBbFFRRjBJaE5CQW5SQjBDcHFLQUlBSVF3Z0FDMEFMa0VCZENJR1FRSjBRZEFxYWlnQ0FDRUlJQUF0QURkQkFYUWlCVUVDZEVIUUttb29BZ0FoRGlBRFFRRnlRUUowUWRBcWFpZ0NBQ0lEUVFoMElBSkJHSFp5SUJVdEFBQkJBWFFpRlVFQmNrRUNkRUhRS21vb0FnQnpJQTlCQVhKQkFuUkIwQ3BxS0FJQUlnOUJFSFFnQzBFUWRuSnpJQkZCQVhKQkFuUkIwQ3BxS0FJQUloRkJHSFFnQjBFSWRuSnpJQUF0QUJ4QkFYUWlBRUVDZEVIUUttb29BZ0J6SUJOQkFYSkJBblJCMENwcUtBSUFJaE5CR0hZZ0RFRUlkSEp6SUFaQkFYSkJBblJCMENwcUtBSUFJZ1pCRUhZZ0NFRVFkSEp6SUFWQkFYSkJBblJCMENwcUtBSUFJZ1ZCQ0hZZ0RrRVlkSEp6SVFRZ0FTQURRUmgySUFKQkNIUnlJQlZCQW5SQjBDcHFLQUlBY3lBUFFSQjJJQXRCRUhSeWN5QVJRUWgySUFkQkdIUnljeUFBUVFGeVFRSjBRZEFxYWlnQ0FITWdFMEVJZENBTVFSaDJjbk1nQmtFUWRDQUlRUkIyY25NZ0JVRVlkQ0FPUVFoMmNuTTJBamdnQVNBRU5nSThDNFlmQVJ0L0lBQWdBQ2dDQUVGL2N6WUNBQ0FBUVFScUlnVWdCU2dDQUNBQ1FYOXpjellDQUNBQVFRaHFJZ2NvQWdCQmYzTWhCaUFISUFZMkFnQWdBRUVNYWlJSElBSkIvLy8vLzM1eklBY29BZ0J6TmdJQUlBQkJFR29pQ1NBSktBSUFRWDl6TmdJQUlBQkJGR29pRFNBQ1FmLy8vLzk5Y3lBTktBSUFjellDQUNBQVFSaHFJZ2dvQWdCQmYzTWhBeUFJSUFNMkFnQWdBRUVjYWlJS0lBSkIvLy8vLzN4eklBb29BZ0J6TmdJQUlBQkJJR29pQ3lBTEtBSUFRWDl6TmdJQUlBQkJKR29pRGlBQ1FmLy8vLzk3Y3lBT0tBSUFjellDQUNBQVFTaHFJZzhvQWdCQmYzTWhCQ0FQSUFRMkFnQWdBRUVzYWlJVklBSkIvLy8vLzNweklCVW9BZ0J6TmdJQUlBQkJNR29pRnlBWEtBSUFRWDl6TmdJQUlBQkJOR29pR2lBQ1FmLy8vLzk1Y3lBYUtBSUFjellDQUNBQVFUaHFJaHNvQWdCQmYzTWhEQ0FiSUF3MkFnQWdBRUU4YWlJY0lBSkIvLy8vLzNoeklCd29BZ0J6TmdJQUlBTkJCM1pCL2dOeEloSkJBblJCMENwcUtBSUFJUUlnQkVFUGRrSCtBM0VpRTBFQ2RFSFFLbW9vQWdBaEF5QU1RUmgyUVFGMEloUkJBblJCMENwcUtBSUFJUVFnQUMwQUZVRUJkQ0lXUVFKMFFkQXFhaWdDQUNFTUlBQXRBQ1pCQVhRaUdFRUNkRUhRS21vb0FnQWhFQ0FBTFFBM1FRRjBJaGxCQW5SQjBDcHFLQUlBSVJFZ0VrRUJja0VDZEVIUUttb29BZ0FpRWtFSWRDQUNRUmgyY2lBR1FRRjBRZjREY1NJR1FRRnlRUUowUWRBcWFpZ0NBSE1nRTBFQmNrRUNkRUhRS21vb0FnQWlFMEVRZENBRFFSQjJjbk1nRkVFQmNrRUNkRUhRS21vb0FnQWlGRUVZZENBRVFRaDJjbk1nQlMwQUFFRUJkQ0lGUVFKMFFkQXFhaWdDQUhNZ0ZrRUJja0VDZEVIUUttb29BZ0FpRmtFWWRpQU1RUWgwY25NZ0dFRUJja0VDZEVIUUttb29BZ0FpR0VFUWRpQVFRUkIwY25NZ0dVRUJja0VDZEVIUUttb29BZ0FpR1VFSWRpQVJRUmgwY25NaEhTQUJJQkpCR0hZZ0FrRUlkSElnQmtFQ2RFSFFLbW9vQWdCeklCTkJFSFlnQTBFUWRISnpJQlJCQ0hZZ0JFRVlkSEp6SUFWQkFYSkJBblJCMENwcUtBSUFjeUFXUVFoMElBeEJHSFp5Y3lBWVFSQjBJQkJCRUhaeWN5QVpRUmgwSUJGQkNIWnljellDQUNBQklCMDJBZ1FnQUMwQUlVRUJkQ0lRUVFKMFFkQXFhaWdDQUNFQ0lBQXRBREpCQVhRaUVVRUNkRUhRS21vb0FnQWhCU0FBTFFBRFFRRjBJaEpCQW5SQjBDcHFLQUlBSVFZZ0FDMEFIVUVCZENJVFFRSjBRZEFxYWlnQ0FDRURJQUF0QUM1QkFYUWlGRUVDZEVIUUttb29BZ0FoQkNBQUxRQS9RUUYwSWhaQkFuUkIwQ3BxS0FJQUlRd2dFRUVCY2tFQ2RFSFFLbW9vQWdBaUVFRUlkQ0FDUVJoMmNpQUpMUUFBUVFGMElnbEJBWEpCQW5SQjBDcHFLQUlBY3lBUlFRRnlRUUowUWRBcWFpZ0NBQ0lSUVJCMElBVkJFSFp5Y3lBU1FRRnlRUUowUWRBcWFpZ0NBQ0lTUVJoMElBWkJDSFp5Y3lBSExRQUFRUUYwSWdkQkFuUkIwQ3BxS0FJQWN5QVRRUUZ5UVFKMFFkQXFhaWdDQUNJVFFSaDJJQU5CQ0hSeWN5QVVRUUZ5UVFKMFFkQXFhaWdDQUNJVVFSQjJJQVJCRUhSeWN5QVdRUUZ5UVFKMFFkQXFhaWdDQUNJV1FRaDJJQXhCR0hSeWN5RVlJQUVnRUVFWWRpQUNRUWgwY2lBSlFRSjBRZEFxYWlnQ0FITWdFVUVRZGlBRlFSQjBjbk1nRWtFSWRpQUdRUmgwY25NZ0IwRUJja0VDZEVIUUttb29BZ0J6SUJOQkNIUWdBMEVZZG5KeklCUkJFSFFnQkVFUWRuSnpJQlpCR0hRZ0RFRUlkbkp6TmdJSUlBRWdHRFlDRENBQUxRQXBRUUYwSWdSQkFuUkIwQ3BxS0FJQUlRSWdBQzBBT2tFQmRDSU1RUUowUWRBcWFpZ0NBQ0VGSUFBdEFBdEJBWFFpRUVFQ2RFSFFLbW9vQWdBaEJpQUFMUUFsUVFGMEloRkJBblJCMENwcUtBSUFJUWNnQUMwQU5rRUJkQ0lTUVFKMFFkQXFhaWdDQUNFSklBQXRBQWRCQVhRaUUwRUNkRUhRS21vb0FnQWhBeUFFUVFGeVFRSjBRZEFxYWlnQ0FDSUVRUWgwSUFKQkdIWnlJQWd0QUFCQkFYUWlDRUVCY2tFQ2RFSFFLbW9vQWdCeklBeEJBWEpCQW5SQjBDcHFLQUlBSWd4QkVIUWdCVUVRZG5KeklCQkJBWEpCQW5SQjBDcHFLQUlBSWhCQkdIUWdCa0VJZG5KeklBMHRBQUJCQVhRaURVRUNkRUhRS21vb0FnQnpJQkZCQVhKQkFuUkIwQ3BxS0FJQUloRkJHSFlnQjBFSWRISnpJQkpCQVhKQkFuUkIwQ3BxS0FJQUloSkJFSFlnQ1VFUWRISnpJQk5CQVhKQkFuUkIwQ3BxS0FJQUloTkJDSFlnQTBFWWRISnpJUlFnQVNBRVFSaDJJQUpCQ0hSeUlBaEJBblJCMENwcUtBSUFjeUFNUVJCMklBVkJFSFJ5Y3lBUVFRaDJJQVpCR0hSeWN5QU5RUUZ5UVFKMFFkQXFhaWdDQUhNZ0VVRUlkQ0FIUVJoMmNuTWdFa0VRZENBSlFSQjJjbk1nRTBFWWRDQURRUWgyY25NMkFoQWdBU0FVTmdJVUlBQXRBREZCQVhRaUNFRUNkRUhRS21vb0FnQWhBaUFBTFFBQ1FRRjBJZ05CQW5SQjBDcHFLQUlBSVFVZ0FDMEFFMEVCZENJRVFRSjBRZEFxYWlnQ0FDRUdJQUF0QUMxQkFYUWlERUVDZEVIUUttb29BZ0FoQnlBQUxRQStRUUYwSWhCQkFuUkIwQ3BxS0FJQUlRa2dBQzBBRDBFQmRDSVJRUUowUWRBcWFpZ0NBQ0VOSUFoQkFYSkJBblJCMENwcUtBSUFJZ2hCQ0hRZ0FrRVlkbklnQ3kwQUFFRUJkQ0lMUVFGeVFRSjBRZEFxYWlnQ0FITWdBMEVCY2tFQ2RFSFFLbW9vQWdBaUEwRVFkQ0FGUVJCMmNuTWdCRUVCY2tFQ2RFSFFLbW9vQWdBaUJFRVlkQ0FHUVFoMmNuTWdDaTBBQUVFQmRDSUtRUUowUWRBcWFpZ0NBSE1nREVFQmNrRUNkRUhRS21vb0FnQWlERUVZZGlBSFFRaDBjbk1nRUVFQmNrRUNkRUhRS21vb0FnQWlFRUVRZGlBSlFSQjBjbk1nRVVFQmNrRUNkRUhRS21vb0FnQWlFVUVJZGlBTlFSaDBjbk1oRWlBQklBaEJHSFlnQWtFSWRISWdDMEVDZEVIUUttb29BZ0J6SUFOQkVIWWdCVUVRZEhKeklBUkJDSFlnQmtFWWRISnpJQXBCQVhKQkFuUkIwQ3BxS0FJQWN5QU1RUWgwSUFkQkdIWnljeUFRUVJCMElBbEJFSFp5Y3lBUlFSaDBJQTFCQ0haeWN6WUNHQ0FCSUJJMkFod2dBQzBBT1VFQmRDSUlRUUowUWRBcWFpZ0NBQ0VDSUFBdEFBcEJBWFFpQTBFQ2RFSFFLbW9vQWdBaEJTQUFMUUFiUVFGMElncEJBblJCMENwcUtBSUFJUVlnQUMwQU5VRUJkQ0lMUVFKMFFkQXFhaWdDQUNFSElBQXRBQVpCQVhRaUJFRUNkRUhRS21vb0FnQWhDU0FBTFFBWFFRRjBJZ3hCQW5SQjBDcHFLQUlBSVEwZ0NFRUJja0VDZEVIUUttb29BZ0FpQ0VFSWRDQUNRUmgyY2lBUExRQUFRUUYwSWc5QkFYSkJBblJCMENwcUtBSUFjeUFEUVFGeVFRSjBRZEFxYWlnQ0FDSURRUkIwSUFWQkVIWnljeUFLUVFGeVFRSjBRZEFxYWlnQ0FDSUtRUmgwSUFaQkNIWnljeUFPTFFBQVFRRjBJZzVCQW5SQjBDcHFLQUlBY3lBTFFRRnlRUUowUWRBcWFpZ0NBQ0lMUVJoMklBZEJDSFJ5Y3lBRVFRRnlRUUowUWRBcWFpZ0NBQ0lFUVJCMklBbEJFSFJ5Y3lBTVFRRnlRUUowUWRBcWFpZ0NBQ0lNUVFoMklBMUJHSFJ5Y3lFUUlBRWdDRUVZZGlBQ1FRaDBjaUFQUVFKMFFkQXFhaWdDQUhNZ0EwRVFkaUFGUVJCMGNuTWdDa0VJZGlBR1FSaDBjbk1nRGtFQmNrRUNkRUhRS21vb0FnQnpJQXRCQ0hRZ0IwRVlkbkp6SUFSQkVIUWdDVUVRZG5KeklBeEJHSFFnRFVFSWRuSnpOZ0lnSUFFZ0VEWUNKQ0FBTFFBQlFRRjBJZ2hCQW5SQjBDcHFLQUlBSVFJZ0FDMEFFa0VCZENJRFFRSjBRZEFxYWlnQ0FDRUZJQUF0QUNOQkFYUWlDa0VDZEVIUUttb29BZ0FoQmlBQUxRQTlRUUYwSWd0QkFuUkIwQ3BxS0FJQUlRY2dBQzBBRGtFQmRDSU9RUUowUWRBcWFpZ0NBQ0VKSUFBdEFCOUJBWFFpRDBFQ2RFSFFLbW9vQWdBaERTQUlRUUZ5UVFKMFFkQXFhaWdDQUNJSVFRaDBJQUpCR0haeUlCY3RBQUJCQVhRaUJFRUJja0VDZEVIUUttb29BZ0J6SUFOQkFYSkJBblJCMENwcUtBSUFJZ05CRUhRZ0JVRVFkbkp6SUFwQkFYSkJBblJCMENwcUtBSUFJZ3BCR0hRZ0JrRUlkbkp6SUJVdEFBQkJBWFFpRlVFQ2RFSFFLbW9vQWdCeklBdEJBWEpCQW5SQjBDcHFLQUlBSWd0QkdIWWdCMEVJZEhKeklBNUJBWEpCQW5SQjBDcHFLQUlBSWc1QkVIWWdDVUVRZEhKeklBOUJBWEpCQW5SQjBDcHFLQUlBSWc5QkNIWWdEVUVZZEhKeklSY2dBU0FJUVJoMklBSkJDSFJ5SUFSQkFuUkIwQ3BxS0FJQWN5QURRUkIySUFWQkVIUnljeUFLUVFoMklBWkJHSFJ5Y3lBVlFRRnlRUUowUWRBcWFpZ0NBSE1nQzBFSWRDQUhRUmgyY25NZ0RrRVFkQ0FKUVJCMmNuTWdEMEVZZENBTlFRaDJjbk0yQWlnZ0FTQVhOZ0lzSUFBdEFBbEJBWFFpQ0VFQ2RFSFFLbW9vQWdBaEFpQUFMUUFhUVFGMElnTkJBblJCMENwcUtBSUFJUVVnQUMwQUswRUJkQ0lLUVFKMFFkQXFhaWdDQUNFR0lBQXRBQVZCQVhRaUMwRUNkRUhRS21vb0FnQWhCeUFBTFFBV1FRRjBJZzVCQW5SQjBDcHFLQUlBSVFrZ0FDMEFKMEVCZENJUFFRSjBRZEFxYWlnQ0FDRU5JQWhCQVhKQkFuUkIwQ3BxS0FJQUlnaEJDSFFnQWtFWWRuSWdHeTBBQUVFQmRDSUVRUUZ5UVFKMFFkQXFhaWdDQUhNZ0EwRUJja0VDZEVIUUttb29BZ0FpQTBFUWRDQUZRUkIyY25NZ0NrRUJja0VDZEVIUUttb29BZ0FpQ2tFWWRDQUdRUWgyY25NZ0dpMEFBRUVCZENJVlFRSjBRZEFxYWlnQ0FITWdDMEVCY2tFQ2RFSFFLbW9vQWdBaUMwRVlkaUFIUVFoMGNuTWdEa0VCY2tFQ2RFSFFLbW9vQWdBaURrRVFkaUFKUVJCMGNuTWdEMEVCY2tFQ2RFSFFLbW9vQWdBaUQwRUlkaUFOUVJoMGNuTWhGeUFCSUFoQkdIWWdBa0VJZEhJZ0JFRUNkRUhRS21vb0FnQnpJQU5CRUhZZ0JVRVFkSEp6SUFwQkNIWWdCa0VZZEhKeklCVkJBWEpCQW5SQjBDcHFLQUlBY3lBTFFRaDBJQWRCR0haeWN5QU9RUkIwSUFsQkVIWnljeUFQUVJoMElBMUJDSFp5Y3pZQ01DQUJJQmMyQWpRZ0FDMEFFVUVCZENJSVFRSjBRZEFxYWlnQ0FDRUNJQUF0QUNKQkFYUWlBMEVDZEVIUUttb29BZ0FoQlNBQUxRQXpRUUYwSWdwQkFuUkIwQ3BxS0FJQUlRWWdBQzBBRFVFQmRDSUxRUUowUWRBcWFpZ0NBQ0VISUFBdEFCNUJBWFFpRGtFQ2RFSFFLbW9vQWdBaENTQUFMUUF2UVFGMElnOUJBblJCMENwcUtBSUFJUTBnQ0VFQmNrRUNkRUhRS21vb0FnQWlDRUVJZENBQ1FSaDJjaUFBTFFBQVFRRjBJZ0JCQVhKQkFuUkIwQ3BxS0FJQWN5QURRUUZ5UVFKMFFkQXFhaWdDQUNJRFFSQjBJQVZCRUhaeWN5QUtRUUZ5UVFKMFFkQXFhaWdDQUNJS1FSaDBJQVpCQ0haeWN5QWNMUUFBUVFGMElnUkJBblJCMENwcUtBSUFjeUFMUVFGeVFRSjBRZEFxYWlnQ0FDSUxRUmgySUFkQkNIUnljeUFPUVFGeVFRSjBRZEFxYWlnQ0FDSU9RUkIySUFsQkVIUnljeUFQUVFGeVFRSjBRZEFxYWlnQ0FDSVBRUWgySUExQkdIUnljeUVWSUFFZ0NFRVlkaUFDUVFoMGNpQUFRUUowUWRBcWFpZ0NBSE1nQTBFUWRpQUZRUkIwY25NZ0NrRUlkaUFHUVJoMGNuTWdCRUVCY2tFQ2RFSFFLbW9vQWdCeklBdEJDSFFnQjBFWWRuSnpJQTVCRUhRZ0NVRVFkbkp6SUE5QkdIUWdEVUVJZG5Kek5nSTRJQUVnRlRZQ1BBdklJd0laZnhSK0lBQkJJR29pQVNBQktRTUFJQUJCb0FGcUloSXBBd0NGTndNQUlBQkJLR29pQVNBQktRTUFJQUJCcUFGcUloTXBBd0NGTndNQUlBQkJNR29pRENrREFDQUFRYkFCYWlJVUtRTUFoU0VhSUF3Z0dqY0RBQ0FBUVRocUlnb2dDaWtEQUNBQVFiZ0JhaUlWS1FNQWhUY0RBQ0FBUWNBQWFpSUJJQUVwQXdBZ0FFSEFBV29pRmlrREFJVTNBd0FnQUVISUFHb2lBU0FCS1FNQUlBQkJ5QUZxSWhjcEF3Q0ZOd01BSUFCQjBBQnFJZzBwQXdBZ0FFSFFBV29pR0NrREFJVWhIU0FOSUIwM0F3QWdBRUhZQUdvaUN5QUxLUU1BSUFCQjJBRnFJaGtwQXdDRk53TUFJQUJCOEFCcUlRNGdBRUg0QUdvaER5QUFRWkFCYWlFUUlBQkJtQUZxSVJGQ0FDRXRBMEFnTGFkQkJYUkJsTVVBYWlFQ1FnQWhJUU5BSUFCQmdBRnFJQ0duSWdGQkEzUnFJZ01wQXdBaUpVSi9oU0ViSUFCQndBQnFJQUZCQTNScUlnUXBBd0FpSUNBQVFTQnFJQUZCQTNScUlnVXBBd0FnQWlBQlFRTjBhaWtBQUNJZUlBQkI0QUJxSUFGQkEzUnFJZ1lwQXdBaUhFSi9oWU9GSWgrRElCNkZJUjRnSFNBYUlBSWdBVUVDY2tFRGRHb3BBQUFpSWlBQVFmQUFhaUFCUVFOMGFpSUhLUU1BSWhwQ2Y0V0RoU0lrZ3lBaWhTRWlJQndnSUVKL2hZTWlKaUFiaFNJbklDQWdIeUFjSUJ1RGhTSWdJQnlEaFNJZmhDQWdoU0liSUI2RElCK0ZJaWdnSkNBYUlBQkJrQUZxSUFGQkEzUnFJZ2dwQXdBaUtrSi9oU0lwZzRVaUpDQWFneUFkaFNJaklCb2dIVUovaFlNaUt5QXBoU0lwaENBa2hTSXNoU0VkSUJzZ0lvVWdLeUFxaFNBa2d5QWFoU0lraFNBbUlDV0ZJQ0NESUJ5Rklod2dINE1nSjRVaUlJVWhHaUFGSUJ3Z0hvVWlIaUFqaFNBc0lDS0RoU0ljSUJ1Rk53TUFJQVFnR2lBb2hUY0RBQ0FHSUIwZ0hvVWdHeUFwaFNBa0lDT0RoU0liaFRjREFDQURJQjBnSUlVM0F3QWdBRUV3YWlBQlFRTjBhaUFkUWdHR1FxclZxdFdxMWFyVnFuK0RJQjFDQVloQzFhclZxdFdxMWFyVkFJT0VOd01BSUFCQjBBQnFJQUZCQTNScUlCeENBWVpDcXRXcTFhclZxdFdxZjRNZ0hFSUJpRUxWcXRXcTFhclZxdFVBZzRRM0F3QWdCeUFhUWdHR1FxclZxdFdxMWFyVnFuK0RJQnBDQVloQzFhclZxdFdxMWFyVkFJT0VOd01BSUFnZ0cwSUJoa0txMWFyVnF0V3ExYXAvZ3lBYlFnR0lRdFdxMWFyVnF0V3ExUUNEaERjREFDQWhRZ0Y4UWdKVUJFQWdDaWtEQUNFYUlBc3BBd0FoSFVJQklTRU1BUXNMSUMxQ0FYeW5RUVYwUVpURkFHb2hBa0lBSVNFRFFDQUFRWUFCYWlBaHB5SUJRUU4wYWlJREtRTUFJaVpDZjRVaEhDQUFRY0FBYWlBQlFRTjBhaUlFS1FNQUloc2dBRUVnYWlBQlFRTjBhaUlGS1FNQUlBSWdBVUVEZEdvcEFBQWlHaUFBUWVBQWFpQUJRUU4wYWlJR0tRTUFJaDFDZjRXRGhTSWZneUFhaFNFZ0lBQkIwQUJxSUFGQkEzUnFJZ2NwQXdBaUhpQUFRVEJxSUFGQkEzUnFJZ2dwQXdBZ0FpQUJRUUp5UVFOMGFpa0FBQ0lpSUFCQjhBQnFJQUZCQTNScUlna3BBd0FpR2tKL2hZT0ZJaU9ESUNLRklTSWdIU0FiUW4rRmd5SW5JQnlGSWlnZ0d5QWZJQjBnSElPRkloOGdIWU9GSWlTRUlCK0ZJaHNnSUlNZ0pJVWlLaUFqSUJvZ0FFR1FBV29nQVVFRGRHb2lBU2tEQUNJcFFuK0ZJaHlEaFNJaklCcURJQjZGSWlVZ0dpQWVRbitGZ3lJZUlCeUZJaXVFSUNPRklpeUZJUndnR3lBaWhTQWVJQ21GSUNPRElCcUZJaDZGSUNjZ0pvVWdINE1nSFlVaUdpQWtneUFvaFNJZmhTRWRJQVVnR2lBZ2hTSWdJQ1dGSUN3Z0lvT0ZJaG9nRzRVM0F3QWdCQ0FkSUNxRk53TUFJQVlnSENBZ2hTQWJJQ3VGSUI0Z0pZT0ZJaHVGTndNQUlBTWdIQ0FmaFRjREFDQUlJQnhDQW9aQ3pKbXo1c3lacytaTWd5QWNRZ0tJUXJQbXpKbXo1c3laTTRPRU53TUFJQWNnR2tJQ2hrTE1tYlBtekptejVreURJQnBDQW9oQ3MrYk1tYlBtekpremc0UTNBd0FnQ1NBZFFnS0dRc3lacytiTW1iUG1USU1nSFVJQ2lFS3o1c3lacytiTW1UT0RoRGNEQUNBQklCdENBb1pDekptejVzeVpzK1pNZ3lBYlFnS0lRclBtekptejVzeVpNNE9FTndNQUlDRkNBWHhDQWxRRVFFSUJJU0VNQVFzTElDMUNBbnluUVFWMFFaVEZBR29oQWtJQUlTRURRQ0FBUVlBQmFpQWhweUlCUVFOMGFpSURLUU1BSWlaQ2Y0VWhIQ0FBUWNBQWFpQUJRUU4wYWlJRUtRTUFJaHNnQUVFZ2FpQUJRUU4wYWlJRktRTUFJQUlnQVVFRGRHb3BBQUFpR2lBQVFlQUFhaUFCUVFOMGFpSUdLUU1BSWgxQ2Y0V0RoU0lmZ3lBYWhTRWdJQUJCMEFCcUlBRkJBM1JxSWdjcEF3QWlIaUFBUVRCcUlBRkJBM1JxSWdncEF3QWdBaUFCUVFKeVFRTjBhaWtBQUNJaUlBQkI4QUJxSUFGQkEzUnFJZ2twQXdBaUdrSi9oWU9GSWlPRElDS0ZJU0lnSFNBYlFuK0ZneUluSUJ5RklpZ2dHeUFmSUIwZ0hJT0ZJaDhnSFlPRklpU0VJQitGSWhzZ0lJTWdKSVVpS2lBaklCb2dBRUdRQVdvZ0FVRURkR29pQVNrREFDSXBRbitGSWh5RGhTSWpJQnFESUI2RklpVWdHaUFlUW4rRmd5SWVJQnlGSWl1RUlDT0ZJaXlGSVJ3Z0d5QWloU0FlSUNtRklDT0RJQnFGSWg2RklDY2dKb1VnSDRNZ0hZVWlHaUFrZ3lBb2hTSWZoU0VkSUFVZ0dpQWdoU0lnSUNXRklDd2dJb09GSWhvZ0c0VTNBd0FnQkNBZElDcUZOd01BSUFZZ0hDQWdoU0FiSUN1RklCNGdKWU9GSWh1Rk53TUFJQU1nSENBZmhUY0RBQ0FJSUJ4Q0JJWkM4T0hEaDQrZXZQaHdneUFjUWdTSVFvK2V2UGp3NGNPSEQ0T0VOd01BSUFjZ0drSUVoa0x3NGNPSGo1NjgrSENESUJwQ0JJaENqNTY4K1BEaHc0Y1BnNFEzQXdBZ0NTQWRRZ1NHUXZEaHc0ZVBucno0Y0lNZ0hVSUVpRUtQbnJ6NDhPSERodytEaERjREFDQUJJQnRDQklaQzhPSERoNCtldlBod2d5QWJRZ1NJUW8rZXZQanc0Y09IRDRPRU53TUFJQ0ZDQVh4Q0FsUUVRRUlCSVNFTUFRc0xJQzFDQTN5blFRVjBRWlRGQUdvaEFrSUFJU0VEUUNBQVFZQUJhaUFocHlJQlFRTjBhaUlES1FNQUlpWkNmNFVoSENBQVFjQUFhaUFCUVFOMGFpSUVLUU1BSWhzZ0FFRWdhaUFCUVFOMGFpSUZLUU1BSUFJZ0FVRURkR29wQUFBaUdpQUFRZUFBYWlBQlFRTjBhaUlHS1FNQUloMUNmNFdEaFNJZmd5QWFoU0VnSUFCQjBBQnFJQUZCQTNScUlnY3BBd0FpSGlBQVFUQnFJQUZCQTNScUlnZ3BBd0FnQWlBQlFRSnlRUU4wYWlrQUFDSWlJQUJCOEFCcUlBRkJBM1JxSWdrcEF3QWlHa0ovaFlPRklpT0RJQ0tGSVNJZ0hTQWJRbitGZ3lJbklCeUZJaWdnR3lBZklCMGdISU9GSWg4Z0hZT0ZJaVNFSUIrRkloc2dJSU1nSklVaUtpQWpJQm9nQUVHUUFXb2dBVUVEZEdvaUFTa0RBQ0lwUW4rRkloeURoU0lqSUJxRElCNkZJaVVnR2lBZVFuK0ZneUllSUJ5RklpdUVJQ09GSWl5RklSd2dHeUFpaFNBZUlDbUZJQ09ESUJxRkloNkZJQ2NnSm9VZ0g0TWdIWVVpR2lBa2d5QW9oU0lmaFNFZElBVWdHaUFnaFNJZ0lDV0ZJQ3dnSW9PRklob2dHNFUzQXdBZ0JDQWRJQ3FGTndNQUlBWWdIQ0FnaFNBYklDdUZJQjRnSllPRklodUZOd01BSUFNZ0hDQWZoVGNEQUNBSUlCeENDSVpDZ1A2RCtJL2d2NEIvZ3lBY1FnaUlRditCL0lmd244RC9BSU9FTndNQUlBY2dHa0lJaGtLQS9vUDRqK0MvZ0grRElCcENDSWhDLzRIOGgvQ2Z3UDhBZzRRM0F3QWdDU0FkUWdpR1FvRCtnL2lQNEwrQWY0TWdIVUlJaUVML2dmeUg4Si9BL3dDRGhEY0RBQ0FCSUJ0Q0NJWkNnUDZEK0kvZ3Y0Qi9neUFiUWdpSVF2K0IvSWZ3bjhEL0FJT0VOd01BSUNGQ0FYeENBbFFFUUVJQklTRU1BUXNMSUMxQ0JIeW5RUVYwUVpURkFHb2hBa0lBSVNFRFFDQUFRWUFCYWlBaHB5SUJRUU4wYWlJREtRTUFJaVpDZjRVaEhDQUFRY0FBYWlBQlFRTjBhaUlFS1FNQUloc2dBRUVnYWlBQlFRTjBhaUlGS1FNQUlBSWdBVUVEZEdvcEFBQWlHaUFBUWVBQWFpQUJRUU4wYWlJR0tRTUFJaDFDZjRXRGhTSWZneUFhaFNFZ0lBQkIwQUJxSUFGQkEzUnFJZ2NwQXdBaUhpQUFRVEJxSUFGQkEzUnFJZ2dwQXdBZ0FpQUJRUUp5UVFOMGFpa0FBQ0lpSUFCQjhBQnFJQUZCQTNScUlna3BBd0FpR2tKL2hZT0ZJaU9ESUNLRklTSWdIU0FiUW4rRmd5SW5JQnlGSWlnZ0d5QWZJQjBnSElPRkloOGdIWU9GSWlTRUlCK0ZJaHNnSUlNZ0pJVWlLaUFqSUJvZ0FFR1FBV29nQVVFRGRHb2lBU2tEQUNJcFFuK0ZJaHlEaFNJaklCcURJQjZGSWlVZ0dpQWVRbitGZ3lJZUlCeUZJaXVFSUNPRklpeUZJUndnR3lBaWhTQWVJQ21GSUNPRElCcUZJaDZGSUNjZ0pvVWdINE1nSFlVaUdpQWtneUFvaFNJZmhTRWRJQVVnR2lBZ2hTSWdJQ1dGSUN3Z0lvT0ZJaG9nRzRVM0F3QWdCQ0FkSUNxRk53TUFJQVlnSENBZ2hTQWJJQ3VGSUI0Z0pZT0ZJaHVGTndNQUlBTWdIQ0FmaFRjREFDQUlJQnhDRUlaQ2dJRDgvNCtBUUlNZ0hFSVFpRUwvLzRPQThQOC9nNFEzQXdBZ0J5QWFRaENHUW9DQS9QK1BnRUNESUJwQ0VJaEMvLytEZ1BEL1A0T0VOd01BSUFrZ0hVSVFoa0tBZ1B6L2o0QkFneUFkUWhDSVF2Ly9nNER3L3orRGhEY0RBQ0FCSUJ0Q0VJWkNnSUQ4LzQrQVFJTWdHMElRaUVMLy80T0E4UDgvZzRRM0F3QWdJVUlCZkVJQ1ZBUkFRZ0VoSVF3QkN3c2dMVUlGZktkQkJYUkJsTVVBYWlFQ1FnQWhJUU5BSUFCQmdBRnFJQ0duSWdGQkEzUnFJZ01wQXdBaUprSi9oU0VjSUFCQndBQnFJQUZCQTNScUlnUXBBd0FpR3lBQVFTQnFJQUZCQTNScUlnVXBBd0FnQWlBQlFRTjBhaWtBQUNJYUlBQkI0QUJxSUFGQkEzUnFJZ1lwQXdBaUhVSi9oWU9GSWgrRElCcUZJU0FnQUVIUUFHb2dBVUVEZEdvaUJ5a0RBQ0llSUFCQk1Hb2dBVUVEZEdvaUNDa0RBQ0FDSUFGQkFuSkJBM1JxS1FBQUlpSWdBRUh3QUdvZ0FVRURkR29pQ1NrREFDSWFRbitGZzRVaUk0TWdJb1VoSWlBZElCdENmNFdESWljZ0hJVWlLQ0FiSUI4Z0hTQWNnNFVpSHlBZGc0VWlKSVFnSDRVaUd5QWdneUFraFNJcUlDTWdHaUFBUVpBQmFpQUJRUU4wYWlJQktRTUFJaWxDZjRVaUhJT0ZJaU1nR29NZ0hvVWlKU0FhSUI1Q2Y0V0RJaDRnSElVaUs0UWdJNFVpTElVaEhDQWJJQ0tGSUI0Z0tZVWdJNE1nR29VaUhvVWdKeUFtaFNBZmd5QWRoU0lhSUNTRElDaUZJaCtGSVIwZ0JTQWFJQ0NGSWlBZ0pZVWdMQ0FpZzRVaUdpQWJoVGNEQUNBRUlCMGdLb1UzQXdBZ0JpQWNJQ0NGSUJzZ0s0VWdIaUFsZzRVaUc0VTNBd0FnQXlBY0lCK0ZOd01BSUFnZ0hFSWdoaUFjUWlDSWhEY0RBQ0FISUJwQ0lJWWdHa0lnaUlRM0F3QWdDU0FkUWlDR0lCMUNJSWlFTndNQUlBRWdHMElnaGlBYlFpQ0loRGNEQUNBaFFnRjhRZ0pVQkVCQ0FTRWhEQUVMQ3lBdFFnWjhwMEVGZEVHVXhRQnFJUUpDQUNFY0EwQWdBRUdBQVdvZ0hLY2lBVUVEZEdvaUF5a0RBQ0lrUW4rRklTRWdBRUhBQUdvZ0FVRURkR29pQkNrREFDSWJJQUJCSUdvZ0FVRURkR29pQlNrREFDQUNJQUZCQTNScUtRQUFJaG9nQUVIZ0FHb2dBVUVEZEdvaUJpa0RBQ0lkUW4rRmc0VWlJNE1nR29VaElDQUFRZEFBYWlBQlFRTjBhaUlIS1FNQUloNGdBRUV3YWlBQlFRTjBhaUlJS1FNQUlBSWdBVUVDY2tFRGRHb3BBQUFpSWlBQVFmQUFhaUFCUVFOMGFpSUpLUU1BSWhwQ2Y0V0RoU0lsZ3lBaWhTRWlJQjBnRzBKL2hZTWlKaUFoaFNFZklCc2dJeUFkSUNHRGhTSWJJQjJEaFNFaElDWWdKSVVnRzRNZ0hZVWlJeUFoZ3lBZmhTRWtJQWdnSHlBaGhDQWJoU0lkSUNDRElDR0ZJaDhnSlNBYUlBQkJrQUZxSUFGQkEzUnFJZ0VwQXdBaUpVSi9oU0ltZzRVaUlTQWFneUFlaFNJYklCb2dIa0ovaFlNaUp5QW1oU0ltaENBaGhTSW9oU0llTndNQUlBY2dJeUFnaFNJZ0lCdUZJQ2dnSW9PRklpTTNBd0FnQ1NBZElDS0ZJQ2NnSllVZ0lZTWdHb1VpR29VZ0pJVWlJVGNEQUNBQklCMGdKb1VnR2lBYmc0VWlHamNEQUNBRklDTWdIWVUzQXdBZ0JDQWhJQitGTndNQUlBWWdIaUFnaFNBYWhUY0RBQ0FESUI0Z0pJVTNBd0FnSEVJQmZFSUNWQVJBUWdFaEhBd0JDd3NnRENrREFDRWRJQXdnQ2lrREFDSWFOd01BSUFvZ0hUY0RBQ0FOS1FNQUlSd2dEU0FMS1FNQUloMDNBd0FnQ3lBY053TUFJQTRwQXdBaEhDQU9JQThwQXdBaUd6Y0RBQ0FQSUJ3M0F3QWdFQ2tEQUNFaElCQWdFU2tEQUNJZ053TUFJQkVnSVRjREFDQXRRZ2Q4SWkxQ0tsUU5BQXNnQUVIZ0FHb2lBU0FCS1FNQUlCSXBBd0NGTndNQUlBQkI2QUJxSWdFZ0FTa0RBQ0FUS1FNQWhUY0RBQ0FPSUJzZ0ZDa0RBSVUzQXdBZ0R5QWNJQlVwQXdDRk53TUFJQUJCZ0FGcUlnRWdBU2tEQUNBV0tRTUFoVGNEQUNBQVFZZ0JhaUlBSUFBcEF3QWdGeWtEQUlVM0F3QWdFQ0FnSUJncEF3Q0ZOd01BSUJFZ0lTQVpLUU1BaFRjREFBdWdDd0liZngxK0lBQkJLR29oQVNBQVFRaHFJUUlnQUVFUWFpRURJQUJCR0dvaEJDQUFRU0JxSVFVZ0FDa0RBQ0VjSUFCQk9Hb2lDeWtEQUNFZElBQkI0QUJxSWd3cEF3QWhJQ0FBUVlnQmFpSU5LUU1BSVI4Z0FFR3dBV29pRGlrREFDRWVJQUJCd0FCcUlnOHBBd0FoS2lBQVFlZ0FhaUlRS1FNQUlTc2dBRUdRQVdvaUVTa0RBQ0VqSUFCQnVBRnFJZ1lwQXdBaElpQUFRZEFBYWlJU0tRTUFJU0VnQUVISUFHb2lFeWtEQUNFc0lBQkI4QUJxSWdjcEF3QWhLU0FBUVpnQmFpSUlLUU1BSVRJZ0FFSEFBV29pQ1NrREFDRWtJQUJCK0FCcUloUXBBd0FoTFNBQVFhQUJhaUlWS1FNQUlTVWdBRUV3YWlJV0tRTUFJUzRnQUVIWUFHb2lGeWtEQUNFdklBQkJnQUZxSWhncEF3QWhNQ0FBUWFnQmFpSVpLUU1BSVNaQkFDRWFBMEFnQVNrREFDSTBJQnlGSUNHRklDMkZJQ1dGSVNjZ0hTQURLUU1BSWpXRklDQ0ZJQitGSUI2RklTZ2dLaUFFS1FNQUlqYUZJQ3VGSUNPRklDS0ZJVEVnQUNBdUlBSXBBd0FpTjRVZ0w0VWdNSVVnSm9VaU0wSUJoaUF6UWorSWhDQXNJQVVwQXdBaU9JVWdLWVVnTW9VZ0pJVWlLWVVpSWlBY2hUY0RBQ0FCSURRZ0lvVTNBd0FnRWlBaElDS0ZOd01BSUJRZ0xTQWloVGNEQUNBVklDVWdJb1UzQXdBZ0FpQW9RZ0dHSUNoQ1A0aUVJQ2VGSWlFZ040VWlIRGNEQUNBV0lDNGdJWVUzQXdBZ0Z5QXZJQ0dGTndNQUlCZ2dNQ0FoaFRjREFDQVpJQ1lnSVlVM0F3QWdBeUF4UWdHR0lERkNQNGlFSURPRklpRWdOWVUzQXdBZ0N5QWRJQ0dGTndNQUlBd2dJQ0FoaFRjREFDQU5JQjhnSVlVM0F3QWdEaUFlSUNHRk53TUFJQVFnS1VJQmhpQXBRaitJaENBb2hTSWRJRGFGTndNQUlBOGdLaUFkaFRjREFDQVFJQ3NnSFlVM0F3QWdFU0FqSUIyRk53TUFJQVlnQmlrREFDQWRoVGNEQUNBRklDZENBWVlnSjBJL2lJUWdNWVVpSFNBNGhUY0RBQ0FUSUN3Z0hZVTNBd0FnQnlBSEtRTUFJQjJGTndNQUlBZ2dDQ2tEQUNBZGhUY0RBQ0FKSUFrcEF3QWdIWVUzQXdCQkFDRUtBMEFnQUNBS1FRSjBRYkE3YWlnQ0FFRURkR29pR3lrREFDRWRJQnNnSEVIQUFDQUtRUUowUWRBNmFpZ0NBQ0liYTYySUlCd2dHNjJHaERjREFDQUtRUUZxSWdwQkdFY0VRQ0FkSVJ3TUFRc0xJQVFwQXdBaEhDQUZLUU1BSVIwZ0FDQURLUU1BSWlBZ0Fpa0RBQ0lmUW4rRmd5QUFLUU1BSWg2Rk53TUFJQUlnSENBZ1FuK0ZneUFmaFRjREFDQURJQjBnSEVKL2hZTWdJSVUzQXdBZ0JDQWVJQjFDZjRXRElCeUZOd01BSUFVZ0h5QWVRbitGZ3lBZGhUY0RBQ0FQS1FNQUlSd2dFeWtEQUNFZ0lBRWdDeWtEQUNJZElCWXBBd0FpSDBKL2hZTWdBU2tEQUNJZWhUY0RBQ0FXSUJ3Z0hVSi9oWU1nSDRVaUxqY0RBQ0FMSUNBZ0hFSi9oWU1nSFlVaUhUY0RBQ0FQSUI0Z0lFSi9oWU1nSElVaUtqY0RBQ0FUSUI4Z0hrSi9oWU1nSUlVaUxEY0RBQ0FRS1FNQUlSd2dCeWtEQUNFZklCSWdEQ2tEQUNJZ0lCY3BBd0FpSGtKL2hZTWdFaWtEQUNJamhTSWhOd01BSUJjZ0hDQWdRbitGZ3lBZWhTSXZOd01BSUF3Z0h5QWNRbitGZ3lBZ2hTSWdOd01BSUJBZ0l5QWZRbitGZ3lBY2hTSXJOd01BSUFjZ0hpQWpRbitGZ3lBZmhTSXBOd01BSUJFcEF3QWhIQ0FJS1FNQUlSNGdGQ0FOS1FNQUloOGdHQ2tEQUNJbFFuK0ZneUFVS1FNQUlpYUZJaTAzQXdBZ0dDQWNJQjlDZjRXRElDV0ZJakEzQXdBZ0RTQWVJQnhDZjRXRElCK0ZJaDgzQXdBZ0VTQW1JQjVDZjRXRElCeUZJaU0zQXdBZ0NDQWxJQ1pDZjRXRElCNkZJakkzQXdBZ0Jpa0RBQ0VjSUFrcEF3QWhKQ0FWSUE0cEF3QWlIaUFaS1FNQUlpZENmNFdESUJVcEF3QWlLSVVpSlRjREFDQVpJQndnSGtKL2hZTWdKNFVpSmpjREFDQU9JQ1FnSEVKL2hZTWdIb1VpSGpjREFDQUdJQ2dnSkVKL2hZTWdISVVpSWpjREFDQUpJQ2NnS0VKL2hZTWdKSVVpSkRjREFDQUFJQUFwQXdBZ0drRURkRUdBS0dvcEF3Q0ZJaHczQXdBZ0drRUJhaUlhUVJoSERRQUxDNkliQWhoL0IzNGpDQ0VJSXdoQjRBUnFKQWdnQ0VId0FXb2hDU0FJUWVBQWFpRUZJQWhCRUdvaEVDQUlRUWhxSVFvZ0NDRUVJQWhCaUFScUlRWWdDRUc4QTJvaEEwRUFJUUlEUUNBRUlBWWdBbW8yQWdBZ0FFRUFJQVFRWFNBQVFRSnFJUUFnQWtFQmFpSUNRY3dBUncwQUN5QURJQVlwQWdBM0FnQWdBeUFHS1FJSU53SUlJQU1nQmlrQ0VEY0NFQ0FESUFZcEFoZzNBaGdnQXlBR0tRSWdOd0lnSUFNZ0Jpa0NLRGNDS0NBRElBWXBBakEzQWpBZ0F5QUdLUUk0TndJNElBTWdCaWtDUURjQ1FDQURJQVlvQWtnMkFraEJDeUVBQTBBZ0F5QUFRYk1IYkVIUUFHb2dBR3hCQm1vZ0FHd2lBa0VKYWtFVGNFRUNkR29pQkNBRElBSkJBV3BCRTNCQkFuUnFLQUlBUWRLSmdNZ0RjeUFFS0FJQWN6WUNBQ0FBUVg5cUlRSWdBQVJBSUFJaEFBd0JCVUVMSVFBTEN3TkFJQU1nQUVIc0FXeEJIV29nQUd4QkIyb2dBR3dpQWtFRGFrRVRjRUVDZEdvaUJDQURJQUpCQldwQkUzQkJBblJxS0FJQVFiYWQvY1lHY3lBRUtBSUFjellDQUNBQVFYOXFJUUlnQUFSQUlBSWhBQXdCQlVFTElRQUxDd05BSUFNZ0FDQUFiQ0FBUWZVRWJFRW9hbXdnQUdvaUFrRUdha0VUY0VFQ2RHb2lCQ0FESUFKQkNHcEJFM0JCQW5ScUtBSUFRYlBqMWYxOWN5QUVLQUlBY3pZQ0FDQUFRWDlxSVFJZ0FBUkFJQUloQUF3QkJVRUxJUUFMQ3dOQUlBTWdBRUhUQVd4Qkttb2dBR3hCQkdvZ0FHd2lBa0VEYWtFVGNFRUNkR29pQkNBRElBSkJCR3BCRTNCQkFuUnFLQUlBUVpDbHBwVjZjeUFFS0FJQWN6WUNBQ0FBUVg5cUlRSWdBQVJBSUFJaEFBd0JDd3NnQ2lBRFFTZHFOZ0lBSUFGQkFDQUtFRjBnRUNBRFFTaHFOZ0lBSUFGQkFtcEJBQ0FRRUYwZ0JTQURRU2xxTmdJQUlBRkJCR3BCQUNBRkVGMGdDU0FEUVNwcU5nSUFJQUZCQm1wQkFDQUpFRjFCa0lPQUFSQXBJZ1JCZ0lPQUFXb2lCaEFsTmdJQUlBbEJBRUhJQVJCakdpQUZJQU1wQUFBM0FBQWdCU0FES1FBSU53QUlJQVVnQXlrQUVEY0FFQ0FGSUFNcEFCZzNBQmdnQlNBREtRQWdOd0FnSUFVZ0F5a0FLRGNBS0NBRklBTXBBREEzQURBZ0JTQURLUUE0TndBNElBVWdBeWtBUURjQVFDQUZJQU1vQUVnMkFFZ2dCVUVCT2dCTUlBVkJ6UUJxSWdCQ0FEY0FBQ0FBUWdBM0FBZ2dBRUlBTndBUUlBQkNBRGNBR0NBQVFnQTNBQ0FnQUVJQU53QW9JQUJDQURjQU1DQUFRUUE3QURnZ0JVR0Fmem9BaHdGQ0FDRWFRUUFoQUFOQUlBa2dBRUVEZEdvZ0dpQUZJQUJCQTNScUtRQUFoVGNEQUNBQVFRRnFJUUVnQUVFUVJ3UkFJQWtnQVVFRGRHb3BBd0FoR2lBQklRQU1BUXNMSUFrUUlpQUVRWUNBZ0FGcUlnb2dDVUhJQVJCbEdpQUVRZENCZ0FGcUlnSWdCRUhBZ0lBQmFpSURLUU1BTndNQUlBSWdBeWtEQ0RjRENDQUNJQU1wQXhBM0F4QWdBaUFES1FNWU53TVlJQUlnQXlrRElEY0RJQ0FDSUFNcEF5ZzNBeWdnQWlBREtRTXdOd013SUFJZ0F5a0RPRGNET0NBQ0lBTXBBMEEzQTBBZ0FpQURLUU5JTndOSUlBSWdBeWtEVURjRFVDQUNJQU1wQTFnM0ExZ2dBaUFES1FOZ053TmdJQUlnQXlrRGFEY0RhQ0FDSUFNcEEzQTNBM0FnQWlBREtRTjROd040SUFZb0FnQWdDaEFrSUFSQjRJR0FBV29oRVNBRVFmQ0JnQUZxSVJJZ0JFR0Fnb0FCYWlFVElBUkJrSUtBQVdvaEZDQUVRYUNDZ0FGcUlSVWdCRUd3Z29BQmFpRVdJQVJCd0lLQUFXb2hGMEVBSVFBRFFFRUFJUUVEUUNBQ0lBWW9BZ0FvQWdBb0Fnd2dBVUVFZENJRmFoQWRJQkVnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQklnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQk1nQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQlFnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQlVnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQllnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQmNnQmlnQ0FDZ0NBQ2dDRENBRmFoQWRJQUZCQVdvaUFVRUtSdzBBQ3lBRUlBQnFJZ0VnQWlrQUFEY0FBQ0FCSUFJcEFBZzNBQWdnQVNBQ0tRQVFOd0FRSUFFZ0Fpa0FHRGNBR0NBQklBSXBBQ0EzQUNBZ0FTQUNLUUFvTndBb0lBRWdBaWtBTURjQU1DQUJJQUlwQURnM0FEZ2dBU0FDS1FCQU53QkFJQUVnQWlrQVNEY0FTQ0FCSUFJcEFGQTNBRkFnQVNBQ0tRQllOd0JZSUFFZ0Fpa0FZRGNBWUNBQklBSXBBR2czQUdnZ0FTQUNLUUJ3TndCd0lBRWdBaWtBZURjQWVDQUFRWUFCYWlJQVFZQ0FnQUZKRFFBTElBUkIwSUtBQVdvaUFTQUVRYUNBZ0FGcUloZ3BBd0FnQ2lrREFJVWlHamNEQUNBRVFlQ0NnQUZxSWdVZ0JFR3dnSUFCYWlrREFDQUVRWkNBZ0FGcUtRTUFoVGNEQUNBRVFkaUNnQUZxSWdzZ0JFR29nSUFCYWlrREFDQUVRWWlBZ0FGcUtRTUFoVGNEQUNBRVFlaUNnQUZxSWc0Z0JFRzRnSUFCYWlrREFDQUVRWmlBZ0FGcUtRTUFoVGNEQUNBRVFmQ0NnQUZxSVF3Z0JFSDRnb0FCYWlFUFFRQWhBQU5BSUF3Z0JDQWFwMEh3Ly84QWNXb2dBUkFjSUFRZ0FTa0RBS2RCOFAvL0FIRnFJZ2NnQlNrREFDQU1LUU1BaFRjREFDQUhJQTRwQXdBZ0R5a0RBSVUzQXdnZ0JDQU1LUU1BSWhxblFmRC8vd0J4YWlJSEtRTUFJaDFDLy8vLy93K0RJaHNnR2tMLy8vLy9ENE1pSEg0aUhrSWdpQ0FiSUJwQ0lJZ2lHMzU4SWg5Qy8vLy8vdytESUIxQ0lJZ2lJQ0FjZm53aUhFSWdoaUFlUXYvLy8vOFBnNFFnQ3lrREFId2hHaUFCSUFFcEF3QWdJQ0FiZm53Z0gwSWdpSHdnSEVJZ2lId2lHeUFkaFRjREFDQUxJQm9nQjBFSWFpSU5LUU1BaFRjREFDQUhJQnMzQXdBZ0RTQWFOd01BSUFVZ0JDQUJLUU1BcDBIdy8vOEFjV29nQVJBY0lBUWdBU2tEQUtkQjhQLy9BSEZxSWdjZ0RDa0RBQ0FGS1FNQWhUY0RBQ0FISUE4cEF3QWdEaWtEQUlVM0F3Z2dCQ0FGS1FNQUlocW5RZkQvL3dCeGFpSUhLUU1BSWgxQy8vLy8vdytESWhzZ0drTC8vLy8vRDRNaUhINGlIa0lnaUNBYklCcENJSWdpRzM1OEloOUMvLy8vL3crRElCMUNJSWdpSUNBY2Zud2lIRUlnaGlBZVF2Ly8vLzhQZzRRZ0N5a0RBSHdoR2lBQklBRXBBd0FnSUNBYmZud2dIMElnaUh3Z0hFSWdpSHdpR3lBZGhUY0RBQ0FMSUJvZ0IwRUlhaUlOS1FNQWhUY0RBQ0FISUJzM0F3QWdEU0FhTndNQUlBQkJBV29pQUVHQWdCQkhCRUFnQVNrREFDRWFEQUVMQ3lBQ0lBTXBBd0EzQXdBZ0FpQURLUU1JTndNSUlBSWdBeWtERURjREVDQUNJQU1wQXhnM0F4Z2dBaUFES1FNZ053TWdJQUlnQXlrREtEY0RLQ0FDSUFNcEF6QTNBekFnQWlBREtRTTROd000SUFJZ0F5a0RRRGNEUUNBQ0lBTXBBMGczQTBnZ0FpQURLUU5RTndOUUlBSWdBeWtEV0RjRFdDQUNJQU1wQTJBM0EyQWdBaUFES1FOb053Tm9JQUlnQXlrRGNEY0RjQ0FDSUFNcEEzZzNBM2dnQmlnQ0FDSUJCRUFnQVNnQ0FDSUFCRUFnQUNnQ0JDSUZCRUFnQlJBcUlBRW9BZ0JCQURZQ0JDQUJLQUlBSVFBTElBQW9BZ3dpQlFSQUlBVVFLaUFCS0FJQVFRQTJBZ3dnQVNnQ0FDRUFDeUFBRUNvZ0FVRUFOZ0lBSUFZb0FnQWhBUXNnQVJBcUlBWkJBRFlDQUFzZ0JoQWxJZ0EyQWdBZ0FDQVlFQ1FnQkVIWWdZQUJhaUVMSUFSQjZJR0FBV29oRENBRVFmaUJnQUZxSVE0Z0JFR0lnb0FCYWlFUElBUkJtSUtBQVdvaEJ5QUVRYWlDZ0FGcUlSZ2dCRUc0Z29BQmFpRU5JQVJCeUlLQUFXb2hHVUVBSVFBRFFDQUNJQUlwQXdBZ0JDQUFhaUlCS1FNQWhUY0RBQ0FMSUFzcEF3QWdBU2tEQ0lVM0F3QWdFU0FSS1FNQUlBUWdBRUVRY21vaUFTa0RBSVUzQXdBZ0RDQU1LUU1BSUFFcEF3aUZOd01BSUJJZ0Vpa0RBQ0FFSUFCQklISnFJZ0VwQXdDRk53TUFJQTRnRGlrREFDQUJLUU1JaFRjREFDQVRJQk1wQXdBZ0JDQUFRVEJ5YWlJQktRTUFoVGNEQUNBUElBOHBBd0FnQVNrRENJVTNBd0FnRkNBVUtRTUFJQVFnQUVIQUFISnFJZ0VwQXdDRk53TUFJQWNnQnlrREFDQUJLUU1JaFRjREFDQVZJQlVwQXdBZ0JDQUFRZEFBY21vaUFTa0RBSVUzQXdBZ0dDQVlLUU1BSUFFcEF3aUZOd01BSUJZZ0Zpa0RBQ0FFSUFCQjRBQnlhaUlCS1FNQWhUY0RBQ0FOSUEwcEF3QWdBU2tEQ0lVM0F3QWdGeUFYS1FNQUlBUWdBRUh3QUhKcUlnRXBBd0NGTndNQUlCa2dHU2tEQUNBQktRTUloVGNEQUVFQUlRRURRQ0FDSUFZb0FnQW9BZ0FvQWd3Z0FVRUVkQ0lGYWhBZElCRWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCSWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCTWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCUWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCVWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCWWdCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElCY2dCaWdDQUNnQ0FDZ0NEQ0FGYWhBZElBRkJBV29pQVVFS1J3MEFDeUFBUVlBQmFpSUFRWUNBZ0FGSkRRQUxJQU1nQWlrREFEY0RBQ0FESUFJcEF3ZzNBd2dnQXlBQ0tRTVFOd01RSUFNZ0Fpa0RHRGNER0NBRElBSXBBeUEzQXlBZ0F5QUNLUU1vTndNb0lBTWdBaWtETURjRE1DQURJQUlwQXpnM0F6Z2dBeUFDS1FOQU53TkFJQU1nQWlrRFNEY0RTQ0FESUFJcEExQTNBMUFnQXlBQ0tRTllOd05ZSUFNZ0Fpa0RZRGNEWUNBRElBSXBBMmczQTJnZ0F5QUNLUU53TndOd0lBTWdBaWtEZURjRGVDQUtFQ0lnQ2tISUFTQVFJQW9zQUFCQkEzRkJBblJCd0NwcUtBSUFRUWR4UVFwcUVRQUFJQVlvQWdBaUFRUkFJQUVvQWdBaUFBUkFJQUFvQWdRaUFnUkFJQUlRS2lBQktBSUFRUUEyQWdRZ0FTZ0NBQ0VBQ3lBQUtBSU1JZ0lFUUNBQ0VDb2dBU2dDQUVFQU5nSU1JQUVvQWdBaEFBc2dBQkFxSUFGQkFEWUNBQ0FHS0FJQUlRRUxJQUVRS2dzZ0NFRzRBMm9oQWlBRUVDcEJBQ0VCSUFraEFBTkFJQUlnRUNBQmFpMEFBRFlDQUNBQUlBQkJBQ0FDRUdGcUlRQWdBVUVCYWlJQlFTQkhEUUFMSUFna0NDQUpDK0FHQVJCL0l3Z2hEQ01JUVJCcUpBaEJHQkFwSWdRRVFDQUVRWHhxS0FJQVFRTnhCRUFnQkVJQU53QUFJQVJDQURjQUNDQUVRZ0EzQUJBTEN5QUFJQVEyQWdBZ0JFRWdOZ0lBUVNBUUtTSUNCRUFnQWtGOGFpZ0NBRUVEY1FSQUlBSkNBRGNBQUNBQ1FnQTNBQWdnQWtJQU53QVFJQUpDQURjQUdBc0xJQVFnQWpZQ0JDQUNJQUVwQUFBM0FBQWdBaUFCS1FBSU53QUlJQUlnQVNrQUVEY0FFQ0FDSUFFcEFCZzNBQmdnQUNnQ0FDSURRUWcyQWhRZ0EwRVBOZ0lRSUFOQjhBRTJBZ2hCOEFFUUtTSUJCRUFnQVVGOGFpZ0NBRUVEY1FSQUlBRkJBRUh3QVJCakdnc0xJQU1nQVRZQ0RDQUJJQU1vQWdRZ0F5Z0NBQkJsR2lBTUlnaEJBV29oQ1NBSVFRSnFJUXNnQ0VFRGFpRU5RUWdoQmdOQUlBZ2dBeWdDRENJT0lBWkJBblFpQ2tGOGFtb29BQUFpQlRZQ0FDQUZRUWgySVE4Z0JVRVFkaUVRSUFWQkdIWWhFU0FHUVFkeEJFQWdFU0VCSUJCQi93RnhJUVFnRDBIL0FYRWhBaUFGUWY4QmNTRUhJQVlnQXlnQ0ZDSURjRUVFUmdSQUlBZ2dCVUVFZGtFUGNVRUVkRUhmendCcUlBVkJEM0ZxTEFBQUlnYzZBQUFnQ1NBRlFReDJRUTl4UVFSMFFkL1BBR29nRDBFUGNXb3NBQUFpQWpvQUFDQUxJQVZCRkhaQkQzRkJCSFJCMzg4QWFpQVFRUTl4YWl3QUFDSUVPZ0FBSUEwZ0JVRWNka0VFZEVIZnp3QnFJQkZCRDNGcUxBQUFJZ0U2QUFBTEJTQUlJQWxCQXhCbUdpQUlMUUFBSWdGQkJIWkJCSFJCMzg4QWFpQUJRUTl4YWl3QUFDRUhJQWtnQ1MwQUFDSUJRUVIyUVFSMFFkL1BBR29nQVVFUGNXb3NBQUFpQWpvQUFDQUxJQXN0QUFBaUFVRUVka0VFZEVIZnp3QnFJQUZCRDNGcUxBQUFJZ1E2QUFBZ0RTQUZRUVIyUVE5eFFRUjBRZC9QQUdvZ0JVRVBjV29zQUFBaUFUb0FBQ0FJSUFZZ0F5Z0NGQ0lEYmtIZTBRQnFMQUFBSUFkeklnYzZBQUFMSUE0Z0Ntb2dCeUFPSUFZZ0EydEJBblJxTEFBQWN6b0FBQ0FBS0FJQUlnTW9BZ3dpQnlBS1FRRnlhaUFDSUFjZ0JpQURLQUlVYTBFQ2RFRUJjbW9zQUFCek9nQUFJQUFvQWdBaUJ5Z0NEQ0lDSUFwQkFuSnFJQVFnQWlBR0lBY29BaFJyUVFKMFFRSnlhaXdBQUhNNkFBQWdBQ2dDQUNJQ0tBSU1JZ1FnQ2tFRGNtb2dBU0FFSUFZZ0FpZ0NGR3RCQW5SQkEzSnFMQUFBY3pvQUFDQUdRUUZxSWdGQlBFY0VRQ0FBS0FJQUlRTWdBU0VHREFFTEN5QU1KQWdMdEFjQ0RYOEJmaU1JSVFRakNFRVFhaVFJUVJnUUtTSUFSUVJBSUFRa0NFRUFEd3NnQUVGOGFpZ0NBRUVEY1FSQUlBQkNBRGNBQUNBQVFnQTNBQWdnQUVJQU53QVFDeUFFSWdFUUNSb2dBUkFFSVFJZ0FTOEJCQ0lGRUNraUFVVWlCa1VFUUNBQlFYeHFLQUlBUVFOeEJFQWdBVUVBSUFVUVl4b0xDeUFDS0FJVUlRY2dBaWdDRUNFSUlBSW9BZ3doQ1NBQ0tBSUlJUW9nQWlnQ0JDRUxJQUlvQWdBaEFpTUlJUU1qQ0VFUWFpUUlRUlFnQXhBTklRd2dBeVFJSUF3aEF5QUdSUVJBSUFFUUtndEJnT2NBSUFWQjdRNXFJQWRxSUFocUlBRWdCV3BxSUFscUlBcHFJQXRxSUFKcUlBTnFJZ0ZCZjJxdE53TUFJQUJCQURZQ0FDQUFRUVJxSWdFZ0FTNEJBRUYrY1RzQkFFR0E1d0JCZ09jQUtRTUFRcTMrMWVUVWhmMm8yQUIrUWdGOElnMDNBd0FnQUNBTlFpR0lQQUFHUVlEbkFFR0E1d0FwQXdCQ3JmN1Y1TlNGL2FqWUFINUNBWHdpRFRjREFDQUFJQTFDSVlnOEFBZEJnT2NBUVlEbkFDa0RBRUt0L3RYazFJWDlxTmdBZmtJQmZDSU5Od01BSUFBZ0RVSWhpRHdBQ0VHQTV3QkJnT2NBS1FNQVFxMysxZVRVaGYybzJBQitRZ0Y4SWcwM0F3QWdBQ0FOUWlHSVBBQUpRWURuQUVHQTV3QXBBd0JDcmY3VjVOU0YvYWpZQUg1Q0FYd2lEVGNEQUNBQUlBMUNJWWc4QUFwQmdPY0FRWURuQUNrREFFS3QvdFhrMUlYOXFOZ0Fma0lCZkNJTk53TUFJQUFnRFVJaGlEd0FDMEdBNXdCQmdPY0FLUU1BUXEzKzFlVFVoZjJvMkFCK1FnRjhJZzAzQXdBZ0FDQU5RaUdJUEFBTVFZRG5BRUdBNXdBcEF3QkNyZjdWNU5TRi9hallBSDVDQVh3aURUY0RBQ0FBSUExQ0lZZzhBQTFCZ09jQVFZRG5BQ2tEQUVLdC90WGsxSVg5cU5nQWZrSUJmQ0lOTndNQUlBQWdEVUloaUR3QURrR0E1d0JCZ09jQUtRTUFRcTMrMWVUVWhmMm8yQUIrUWdGOElnMDNBd0FnQUNBTlFpR0lQQUFQUVlEbkFFR0E1d0FwQXdCQ3JmN1Y1TlNGL2FqWUFINUNBWHdpRFRjREFDQUFJQTFDSVlnOEFCQkJnT2NBUVlEbkFDa0RBRUt0L3RYazFJWDlxTmdBZmtJQmZDSU5Od01BSUFBZ0RVSWhpRHdBRVVHQTV3QkJnT2NBS1FNQVFxMysxZVRVaGYybzJBQitRZ0Y4SWcwM0F3QWdBQ0FOUWlHSVBBQVNRWURuQUVHQTV3QXBBd0JDcmY3VjVOU0YvYWpZQUg1Q0FYd2lEVGNEQUNBQUlBMUNJWWc4QUJOQmdPY0FRWURuQUNrREFFS3QvdFhrMUlYOXFOZ0Fma0lCZkNJTk53TUFJQUFnRFVJaGlEd0FGRUdBNXdCQmdPY0FLUU1BUXEzKzFlVFVoZjJvMkFCK1FnRjhJZzAzQXdBZ0FDQU5RaUdJUEFBVklBRWdBUzRCQUVFQ2Nqc0JBQ0FFSkFnZ0FBdWdOZ0lTZnlSK0l3Z2hCQ01JUWNBQWFpUUlJQU90SVRZZ0JDSURRUWhxSVFVZ0EwRVFhaUVHSUFOQkdHb2hCeUFEUVNCcUlRZ2dBMEVvYWlFSklBTkJNR29oQ2lBRFFUaHFJUXNnQWtGL2FxMUNBWHdoTnlBQVFjQUFhaUlNS1FNQUlTRWdBRUhJQUdvaURTa0RBQ0VpSUFCQjBBQnFJZzRwQXdBaEl5QUFRUmhxSWc4cEF3QWhKQ0FBUVNCcUloQXBBd0FoSlNBQVFTaHFJaEVwQXdBaEppQUFRVEJxSWhJcEF3QWhKeUFBUVRocUloTXBBd0FoS0NBQVFRaHFJaFFwQXdBaU9DRVpJQUJCRUdvaUZTa0RBQ0VyQTBBZ0pFS2l0UERQcXZ2RzZCdUZJQ1dGSUNhRklDZUZJQ2lGSUNHRklDS0ZJUmhCQUNFQUEwQWdBeUFBUVFOMlFRTjBhaUFCSUFCQkFYSnFMUUFBclVJSWhpQUJJQUJxTFFBQXJZUWdBU0FBUVFKeWFpMEFBSzFDRUlhRUlBRWdBRUVEY21vdEFBQ3RRaGlHaENBQklBQkJCSEpxTFFBQXJVSWdob1FnQVNBQVFRVnlhaTBBQUsxQ0tJYUVJQUVnQUVFR2Ntb3RBQUN0UWpDR2ZDQUJJQUJCQjNKcUxRQUFyVUk0aG53M0F3QWdBRUVJYWlJQVFjQUFTUTBBQ3lBWklEWjhJaTRnSzRVaE1TQUJRY0FBYWlFQklBTXBBd0FpT1NBa2ZDQUZLUU1BSUNWOEloWjhJUjBnSWlBcmZDSXZJQW9wQXdCOElBc3BBd0FnSTN3aUdYd2hMQ0FHS1FNQUlDWjhJQWNwQXdBZ0ozd2lGM3dpR2lBV1FpNkdJQlpDRW9pRUlCMkZJaDk4SVI0Z0dVSWxoaUFaUWh1SWhDQXNoU0ljSUFncEF3QWdLSHdnSVNBdWZDSXdJQWtwQXdCOElodDhJaGw4SVJZZ0YwSWtoaUFYUWh5SWhDQWFoU0lYSUIxOElTMGdIRUliaGlBY1FpV0loQ0FXaFNJZElCNThJU29nRmlBZlFpR0dJQjlDSDRpRUlCNkZJaHA4SWhZZ0drSVJoaUFhUWkrSWhJVWlJQ0FiUWhPR0lCdENMWWlFSUJtRklod2dMSHdpR2lBWFFpcUdJQmRDRm9pRUlDMkZJaGQ4SWhsOElSc2dGaUFYUWpHR0lCZENENGlFSUJtRkloOThJUjRnSFVJbmhpQWRRaG1JaENBcWhTSVhJQnhDRG9ZZ0hFSXlpSVFnR29VaUhTQXRmQ0lhZkNJWklDVjhJQ0JDTElZZ0lFSVVpSVFnRzRVZ0pud2lGbndoSENBYklDTWdNWHdpTW53Z0dDQWpoU0lwUWdGOElCZENDWVlnRjBJM2lJUWdHWVY4SWhkOElTQWdGa0luaGlBV1FobUloQ0FjaFNJYklCMUNKSVlnSFVJY2lJUWdHb1VpR0NBcWZDSWFJQ2Q4SUI5Q09JWWdIMElJaUlRZ0hvVWdLSHdpRm53aUdYd2hIU0FjSUJaQ0hvWWdGa0lpaUlRZ0dZVWlISHdoSHlBWFFoaUdJQmRDS0lpRUlDQ0ZJaGNnSGlBaGZDQVlRamFHSUJoQ0NvaUVJQnFGSUM5OEloaDhJaHA4SWhrZ0cwSU5oaUFiUWpPSWhDQWRoU0lXZkNFYklCZENNb1lnRjBJT2lJUWdHWVVpRnlBZGZDRWVJQlpDR1lZZ0ZrSW5pSVFnRzRVaUhTQVlRaUtHSUJoQ0hvaUVJQnFGSWhnZ0lId2lHaUFjUWhHR0lCeENMNGlFSUIrRkloWjhJaGw4SVJ3Z0d5QVdRaDJHSUJaQ0k0aUVJQm1GSWh0OElTQWdGMElyaGlBWFFoV0loQ0FlaFNJWElCaENDb1lnR0VJMmlJUWdHb1VpR0NBZmZDSWFmQ0laSUNaOElCMUNDSVlnSFVJNGlJUWdISVVnSjN3aUZud2hIU0FjSUNrZ0xud2lNM3dnSkVJQ2ZDQVhRaU9HSUJkQ0hZaUVJQm1GZkNJWGZDRWZJQlpDTG9ZZ0ZrSVNpSVFnSFlVaUhDQVlRaWVHSUJoQ0dZaUVJQnFGSWhnZ0hud2lHaUFvZkNBYlFoYUdJQnRDS29pRUlDQ0ZJQ0Y4SWhaOElobDhJUnNnSFNBV1FpU0dJQlpDSElpRUlCbUZJaDE4SVI0Z0YwSWxoaUFYUWh1SWhDQWZoU0lYSUNBZ0lud2dHRUk0aGlBWVFnaUloQ0FhaFNBeWZDSVlmQ0lhZkNJWklCeENJWVlnSEVJZmlJUWdHNFVpRm53aEhDQVhRaHVHSUJkQ0pZaUVJQm1GSWhjZ0czd2hJQ0FXUWhHR0lCWkNMNGlFSUJ5Rkloc2dHRUlUaGlBWVFpMkloQ0FhaFNJWUlCOThJaG9nSFVJcWhpQWRRaGFJaENBZWhTSVdmQ0laZkNFZElCd2dGa0l4aGlBV1FnK0loQ0FaaFNJY2ZDRWZJQmRDSjRZZ0YwSVppSVFnSUlVaUZ5QVlRZzZHSUJoQ01vaUVJQnFGSWhnZ0hud2lHbndpR1NBbmZDQWJRaXlHSUJ0Q0ZJaUVJQjJGSUNoOEloWjhJUnNnSFNBa0lDdDhJalI4SUNWQ0Ezd2dGMElKaGlBWFFqZUloQ0FaaFh3aUYzd2hIaUFXUWllR0lCWkNHWWlFSUJ1RkloMGdHRUlraGlBWVFoeUloQ0FhaFNJWUlDQjhJaG9nSVh3Z0hFSTRoaUFjUWdpSWhDQWZoU0FpZkNJV2ZDSVpmQ0VjSUJzZ0ZrSWVoaUFXUWlLSWhDQVpoU0liZkNFZ0lCZENHSVlnRjBJb2lJUWdIb1VpRnlBZklDTjhJQmhDTm9ZZ0dFSUtpSVFnR29VZ00zd2lHSHdpR253aUdTQWRRZzJHSUIxQ000aUVJQnlGSWhaOElSMGdGMEl5aGlBWFFnNkloQ0FaaFNJWElCeDhJUjhnRmtJWmhpQVdRaWVJaENBZGhTSWNJQmhDSW9ZZ0dFSWVpSVFnR29VaUdDQWVmQ0lhSUJ0Q0VZWWdHMEl2aUlRZ0lJVWlGbndpR1h3aEd5QWRJQlpDSFlZZ0ZrSWppSVFnR1lVaUhYd2hIaUFYUWl1R0lCZENGWWlFSUIrRkloY2dHRUlLaGlBWVFqYUloQ0FhaFNJWUlDQjhJaHA4SWhrZ0tId2dIRUlJaGlBY1FqaUloQ0FiaFNBaGZDSVdmQ0VjSUJzZ0pTQXhmQ0lxZkNBbVFnUjhJQmRDSTRZZ0YwSWRpSVFnR1lWOEloZDhJU0FnRmtJdWhpQVdRaEtJaENBY2hTSWJJQmhDSjRZZ0dFSVppSVFnR29VaUdDQWZmQ0lhSUNKOElCMUNGb1lnSFVJcWlJUWdIb1VnSTN3aUZud2lHWHdoSFNBY0lCWkNKSVlnRmtJY2lJUWdHWVVpSEh3aEh5QVhRaVdHSUJkQ0c0aUVJQ0NGSWhjZ0hpQXBmQ0FZUWppR0lCaENDSWlFSUJxRklEUjhJaGg4SWhwOEloa2dHMEloaGlBYlFoK0loQ0FkaFNJV2ZDRWJJQmRDRzRZZ0YwSWxpSVFnR1lVaUZ5QWRmQ0VlSUJaQ0VZWWdGa0l2aUlRZ0c0VWlIU0FZUWhPR0lCaENMWWlFSUJxRkloZ2dJSHdpR2lBY1FpcUdJQnhDRm9pRUlCK0ZJaFo4SWhsOElSd2dHeUFXUWpHR0lCWkNENGlFSUJtRklodDhJU0FnRjBJbmhpQVhRaG1JaENBZWhTSVhJQmhDRG9ZZ0dFSXlpSVFnR29VaUdDQWZmQ0lhZkNJWklDRjhJQjFDTElZZ0hVSVVpSVFnSElVZ0lud2lGbndoSFNBY0lDWWdMbndpTlh3Z0owSUZmQ0FYUWdtR0lCZENONGlFSUJtRmZDSVhmQ0VmSUJaQ0o0WWdGa0laaUlRZ0hZVWlIQ0FZUWlTR0lCaENISWlFSUJxRkloZ2dIbndpR2lBamZDQWJRamlHSUJ0Q0NJaUVJQ0NGSUNsOEloWjhJaGw4SVJzZ0hTQVdRaDZHSUJaQ0lvaUVJQm1GSWgxOElSNGdGMElZaGlBWFFpaUloQ0FmaFNJWElDQWdKSHdnR0VJMmhpQVlRZ3FJaENBYWhTQXFmQ0lZZkNJYWZDSVpJQnhDRFlZZ0hFSXppSVFnRzRVaUZud2hIQ0FYUWpLR0lCZENEb2lFSUJtRkloY2dHM3doSUNBV1FobUdJQlpDSjRpRUlCeUZJaHNnR0VJaWhpQVlRaDZJaENBYWhTSVlJQjk4SWhvZ0hVSVJoaUFkUWkrSWhDQWVoU0lXZkNJWmZDRWRJQndnRmtJZGhpQVdRaU9JaENBWmhTSWNmQ0VmSUJkQ0s0WWdGMElWaUlRZ0lJVWlGeUFZUWdxR0lCaENOb2lFSUJxRkloZ2dIbndpR253aUdTQWlmQ0FiUWdpR0lCdENPSWlFSUIyRklDTjhJaFo4SVJzZ0hTQW5JQ3Q4SWl4OElDaENCbndnRjBJamhpQVhRaDJJaENBWmhYd2lGM3doSGlBV1FpNkdJQlpDRW9pRUlCdUZJaDBnR0VJbmhpQVlRaG1JaENBYWhTSVlJQ0I4SWhvZ0tYd2dIRUlXaGlBY1FpcUloQ0FmaFNBa2ZDSVdmQ0laZkNFY0lCc2dGa0lraGlBV1FoeUloQ0FaaFNJYmZDRWdJQmRDSllZZ0YwSWJpSVFnSG9VaUZ5QWZJQ1Y4SUJoQ09JWWdHRUlJaUlRZ0dvVWdOWHdpR0h3aUdud2lHU0FkUWlHR0lCMUNINGlFSUJ5RkloWjhJUjBnRjBJYmhpQVhRaVdJaENBWmhTSVhJQng4SVI4Z0ZrSVJoaUFXUWkrSWhDQWRoU0ljSUJoQ0U0WWdHRUl0aUlRZ0dvVWlHQ0FlZkNJYUlCdENLb1lnRzBJV2lJUWdJSVVpRm53aUdYd2hHeUFkSUJaQ01ZWWdGa0lQaUlRZ0dZVWlIWHdoSGlBWFFpZUdJQmRDR1lpRUlCK0ZJaGNnR0VJT2hpQVlRaktJaENBYWhTSVlJQ0I4SWhwOEloa2dJM3dnSEVJc2hpQWNRaFNJaENBYmhTQXBmQ0lXZkNFY0lCc2dLQ0F4ZkNJdGZDQWhRZ2Q4SUJkQ0NZWWdGMEkzaUlRZ0dZVjhJaGQ4SVNBZ0ZrSW5oaUFXUWhtSWhDQWNoU0liSUJoQ0pJWWdHRUljaUlRZ0dvVWlHQ0FmZkNJYUlDUjhJQjFDT0lZZ0hVSUlpSVFnSG9VZ0pYd2lGbndpR1h3aEhTQWNJQlpDSG9ZZ0ZrSWlpSVFnR1lVaUhId2hIeUFYUWhpR0lCZENLSWlFSUNDRkloY2dIaUFtZkNBWVFqYUdJQmhDQ29pRUlCcUZJQ3g4SWhoOElocDhJaGtnRzBJTmhpQWJRak9JaENBZGhTSVdmQ0ViSUJkQ01vWWdGMElPaUlRZ0dZVWlGeUFkZkNFZUlCWkNHWVlnRmtJbmlJUWdHNFVpSFNBWVFpS0dJQmhDSG9pRUlCcUZJaGdnSUh3aUdpQWNRaEdHSUJ4Q0w0aUVJQitGSWhaOElobDhJUndnR3lBV1FoMkdJQlpDSTRpRUlCbUZJaHQ4SVNBZ0YwSXJoaUFYUWhXSWhDQWVoU0lYSUJoQ0NvWWdHRUkyaUlRZ0dvVWlHQ0FmZkNJYWZDSVpJQ2w4SUIxQ0NJWWdIVUk0aUlRZ0hJVWdKSHdpRm53aEhTQWNJREI4SUNKQ0NId2dGMElqaGlBWFFoMkloQ0FaaFh3aUYzd2hIeUFXUWk2R0lCWkNFb2lFSUIyRklod2dHRUluaGlBWVFobUloQ0FhaFNJWUlCNThJaG9nSlh3Z0cwSVdoaUFiUWlxSWhDQWdoU0FtZkNJV2ZDSVpmQ0ViSUIwZ0ZrSWtoaUFXUWh5SWhDQVpoU0lkZkNFZUlCZENKWVlnRjBJYmlJUWdINFVpRnlBZ0lDZDhJQmhDT0lZZ0dFSUlpSVFnR29VZ0xYd2lHSHdpR253aUdTQWNRaUdHSUJ4Q0g0aUVJQnVGSWhaOElSd2dGMEliaGlBWFFpV0loQ0FaaFNJWElCdDhJU0FnRmtJUmhpQVdRaStJaENBY2hTSWJJQmhDRTRZZ0dFSXRpSVFnR29VaUdDQWZmQ0lhSUIxQ0tvWWdIVUlXaUlRZ0hvVWlGbndpR1h3aEhTQWNJQlpDTVlZZ0ZrSVBpSVFnR1lVaUhId2hIeUFYUWllR0lCZENHWWlFSUNDRkloY2dHRUlPaGlBWVFqS0loQ0FhaFNJWUlCNThJaHA4SWhrZ0pId2dHMElzaGlBYlFoU0loQ0FkaFNBbGZDSVdmQ0ViSUIwZ0wzd2dJMElKZkNBWFFnbUdJQmRDTjRpRUlCbUZmQ0lYZkNFZUlCWkNKNFlnRmtJWmlJUWdHNFVpSFNBWVFpU0dJQmhDSElpRUlCcUZJaGdnSUh3aUdpQW1mQ0FjUWppR0lCeENDSWlFSUIrRklDZDhJaFo4SWhsOElSd2dHeUFXUWg2R0lCWkNJb2lFSUJtRklodDhJU0FnRjBJWWhpQVhRaWlJaENBZWhTSVhJQjhnS0h3Z0dFSTJoaUFZUWdxSWhDQWFoU0F3ZkNJWWZDSWFmQ0laSUIxQ0RZWWdIVUl6aUlRZ0hJVWlGbndoSFNBWFFqS0dJQmRDRG9pRUlCbUZJaGNnSEh3aEh5QVdRaG1HSUJaQ0o0aUVJQjJGSWh3Z0dFSWloaUFZUWg2SWhDQWFoU0lZSUI1OElob2dHMElSaGlBYlFpK0loQ0FnaFNJV2ZDSVpmQ0ViSUIwZ0ZrSWRoaUFXUWlPSWhDQVpoU0lkZkNFZUlCZENLNFlnRjBJVmlJUWdINFVpRnlBWVFncUdJQmhDTm9pRUlCcUZJaGdnSUh3aUdud2lHU0FsZkNBY1FnaUdJQnhDT0lpRUlCdUZJQ1o4SWhaOElSd2dHeUF5ZkNBcFFncDhJQmRDSTRZZ0YwSWRpSVFnR1lWOEloZDhJU0FnRmtJdWhpQVdRaEtJaENBY2hTSWJJQmhDSjRZZ0dFSVppSVFnR29VaUdDQWZmQ0lhSUNkOElCMUNGb1lnSFVJcWlJUWdIb1VnS0h3aUZud2lHWHdoSFNBY0lCWkNKSVlnRmtJY2lJUWdHWVVpSEh3aEh5QVhRaVdHSUJkQ0c0aUVJQ0NGSWhjZ0hpQWhmQ0FZUWppR0lCaENDSWlFSUJxRklDOThJaGg4SWhwOEloa2dHMEloaGlBYlFoK0loQ0FkaFNJV2ZDRWJJQmRDRzRZZ0YwSWxpSVFnR1lVaUZ5QWRmQ0VlSUJaQ0VZWWdGa0l2aUlRZ0c0VWlIU0FZUWhPR0lCaENMWWlFSUJxRkloZ2dJSHdpR2lBY1FpcUdJQnhDRm9pRUlCK0ZJaFo4SWhsOElSd2dHeUFXUWpHR0lCWkNENGlFSUJtRklodDhJU0FnRjBJbmhpQVhRaG1JaENBZWhTSVhJQmhDRG9ZZ0dFSXlpSVFnR29VaUdDQWZmQ0lhZkNJWklDWjhJQjFDTElZZ0hVSVVpSVFnSElVZ0ozd2lGbndoSFNBY0lETjhJQ1JDQzN3Z0YwSUpoaUFYUWplSWhDQVpoWHdpRjN3aEh5QVdRaWVHSUJaQ0dZaUVJQjJGSWh3Z0dFSWtoaUFZUWh5SWhDQWFoU0lZSUI1OElob2dLSHdnRzBJNGhpQWJRZ2lJaENBZ2hTQWhmQ0lXZkNJWmZDRWJJQjBnRmtJZWhpQVdRaUtJaENBWmhTSWRmQ0VlSUJkQ0dJWWdGMElvaUlRZ0g0VWlGeUFnSUNKOElCaENOb1lnR0VJS2lJUWdHb1VnTW53aUdId2lHbndpR1NBY1FnMkdJQnhDTTRpRUlCdUZJaFo4SVJ3Z0YwSXloaUFYUWc2SWhDQVpoU0lYSUJ0OElTQWdGa0laaGlBV1FpZUloQ0FjaFNJYklCaENJb1lnR0VJZWlJUWdHb1VpR0NBZmZDSWFJQjFDRVlZZ0hVSXZpSVFnSG9VaUZud2lHWHdoSFNBY0lCWkNIWVlnRmtJamlJUWdHWVVpSEh3aEh5QVhRaXVHSUJkQ0ZZaUVJQ0NGSWhjZ0dFSUtoaUFZUWphSWhDQWFoU0lZSUI1OElocDhJaGtnSjN3Z0cwSUloaUFiUWppSWhDQWRoU0FvZkNJV2ZDRWJJQjBnTkh3Z0pVSU1mQ0FYUWlPR0lCZENIWWlFSUJtRmZDSVhmQ0VlSUJaQ0xvWWdGa0lTaUlRZ0c0VWlIU0FZUWllR0lCaENHWWlFSUJxRkloZ2dJSHdpR2lBaGZDQWNRaGFHSUJ4Q0tvaUVJQitGSUNKOEloWjhJaGw4SVJ3Z0d5QVdRaVNHSUJaQ0hJaUVJQm1GSWh0OElTQWdGMElsaGlBWFFodUloQ0FlaFNJWElCOGdJM3dnR0VJNGhpQVlRZ2lJaENBYWhTQXpmQ0lZZkNJYWZDSVpJQjFDSVlZZ0hVSWZpSVFnSElVaUZud2hIU0FYUWh1R0lCZENKWWlFSUJtRkloY2dISHdoSHlBV1FoR0dJQlpDTDRpRUlCMkZJaHdnR0VJVGhpQVlRaTJJaENBYWhTSVlJQjU4SWhvZ0cwSXFoaUFiUWhhSWhDQWdoU0lXZkNJWmZDRWJJQjBnRmtJeGhpQVdRZytJaENBWmhTSWRmQ0VlSUJkQ0o0WWdGMElaaUlRZ0g0VWlGeUFZUWc2R0lCaENNb2lFSUJxRkloZ2dJSHdpR253aUdTQW9mQ0FjUWl5R0lCeENGSWlFSUJ1RklDRjhJaFo4SVJ3Z0d5QXFmQ0FtUWcxOElCZENDWVlnRjBJM2lJUWdHWVY4SWhkOElTQWdGa0luaGlBV1FobUloQ0FjaFNJYklCaENKSVlnR0VJY2lJUWdHb1VpR0NBZmZDSWFJQ0o4SUIxQ09JWWdIVUlJaUlRZ0hvVWdJM3dpRm53aUdYd2hIU0FjSUJaQ0hvWWdGa0lpaUlRZ0dZVWlISHdoSHlBWFFoaUdJQmRDS0lpRUlDQ0ZJaGNnSGlBcGZDQVlRamFHSUJoQ0NvaUVJQnFGSURSOEloaDhJaHA4SWhrZ0cwSU5oaUFiUWpPSWhDQWRoU0lXZkNFYklCZENNb1lnRjBJT2lJUWdHWVVpRnlBZGZDRWVJQlpDR1lZZ0ZrSW5pSVFnRzRVaUhTQVlRaUtHSUJoQ0hvaUVJQnFGSWhnZ0lId2lHaUFjUWhHR0lCeENMNGlFSUIrRkloWjhJaGw4SVJ3Z0d5QVdRaDJHSUJaQ0k0aUVJQm1GSWh0OElTQWdGMElyaGlBWFFoV0loQ0FlaFNJWElCaENDb1lnR0VJMmlJUWdHb1VpR0NBZmZDSWFmQ0laSUNGOElCMUNDSVlnSFVJNGlJUWdISVVnSW53aUZud2hIU0FjSURWOElDZENEbndnRjBJamhpQVhRaDJJaENBWmhYd2lGM3doSHlBV1FpNkdJQlpDRW9pRUlCMkZJaHdnR0VJbmhpQVlRaG1JaENBYWhTSVlJQjU4SWhvZ0kzd2dHMElXaGlBYlFpcUloQ0FnaFNBcGZDSVdmQ0laZkNFYklCMGdGa0lraGlBV1FoeUloQ0FaaFNJZGZDRWVJQmRDSllZZ0YwSWJpSVFnSDRVaUZ5QWdJQ1I4SUJoQ09JWWdHRUlJaUlRZ0dvVWdLbndpR0h3aUdud2lHU0FjUWlHR0lCeENINGlFSUJ1RkloWjhJUndnRjBJYmhpQVhRaVdJaENBWmhTSVhJQnQ4SVNBZ0ZrSVJoaUFXUWkrSWhDQWNoU0liSUJoQ0U0WWdHRUl0aUlRZ0dvVWlHQ0FmZkNJYUlCMUNLb1lnSFVJV2lJUWdIb1VpRm53aUdYd2hIU0FjSUJaQ01ZWWdGa0lQaUlRZ0dZVWlISHdoSHlBWFFpZUdJQmRDR1lpRUlDQ0ZJaGNnR0VJT2hpQVlRaktJaENBYWhTSVlJQjU4SWhwOEloa2dJbndnRzBJc2hpQWJRaFNJaENBZGhTQWpmQ0lXZkNFYklCMGdMSHdnS0VJUGZDQVhRZ21HSUJkQ040aUVJQm1GZkNJWGZDRWVJQlpDSjRZZ0ZrSVppSVFnRzRVaUhTQVlRaVNHSUJoQ0hJaUVJQnFGSWhnZ0lId2lHaUFwZkNBY1FqaUdJQnhDQ0lpRUlCK0ZJQ1I4SWhaOElobDhJUndnR3lBV1FoNkdJQlpDSW9pRUlCbUZJaHQ4SVNvZ0YwSVloaUFYUWlpSWhDQWVoU0lYSUI4Z0pYd2dHRUkyaGlBWVFncUloQ0FhaFNBMWZDSVlmQ0lhZkNJWklCMUNEWVlnSFVJemlJUWdISVVpRm53aEhTQVhRaktHSUJkQ0RvaUVJQm1GSWhjZ0hId2hJQ0FXUWhtR0lCWkNKNGlFSUIyRklod2dHRUlpaGlBWVFoNkloQ0FhaFNJWUlCNThJaG9nRzBJUmhpQWJRaStJaENBcWhTSVdmQ0laZkNFYklCMGdGa0lkaGlBV1FpT0loQ0FaaFNJZmZDRWVJQmRDSzRZZ0YwSVZpSVFnSUlVaUZpQVlRZ3FHSUJoQ05vaUVJQnFGSWhjZ0tud2lHbndpR1NBamZDQWNRZ2lHSUJ4Q09JaUVJQnVGSUNsOEloaDhJUndnR3lBdGZDQWhRaEI4SUJaQ0k0WWdGa0lkaUlRZ0dZVjhJaFo4SVIwZ0dFSXVoaUFZUWhLSWhDQWNoU0liSUJkQ0o0WWdGMElaaUlRZ0dvVWlHQ0FnZkNJaElDUjhJQjlDRm9ZZ0gwSXFpSVFnSG9VZ0pYd2lHbndpR1h3aEZ5QWNJQnBDSklZZ0drSWNpSVFnR1lVaUhId2hJQ0FXUWlXR0lCWkNHNGlFSUIyRkloWWdIaUFtZkNBWVFqaUdJQmhDQ0lpRUlDR0ZJQ3g4SWhoOElpRjhJaGtnRzBJaGhpQWJRaCtJaENBWGhTSWFmQ0ViSUJaQ0c0WWdGa0lsaUlRZ0dZVWlGaUFYZkNFZklCcENFWVlnR2tJdmlJUWdHNFVpSGlBWVFoT0dJQmhDTFlpRUlDR0ZJaGNnSFh3aUlTQWNRaXFHSUJ4Q0ZvaUVJQ0NGSWhwOElobDhJUmdnR3lBYVFqR0dJQnBDRDRpRUlCbUZJaDE4SVJ3Z0ZrSW5oaUFXUWhtSWhDQWZoU0lXSUJkQ0RvWWdGMEl5aUlRZ0lZVWlHeUFnZkNJaGZDSVpJQ2w4SUI1Q0xJWWdIa0lVaUlRZ0dJVWdKSHdpR253aEZ5QVlJREI4SUNKQ0VYd2dGa0lKaGlBV1FqZUloQ0FaaFh3aUZud2hIaUFhUWllR0lCcENHWWlFSUJlRkloZ2dHMElraGlBYlFoeUloQ0FoaFNJYUlCOThJaUlnSlh3Z0hVSTRoaUFkUWdpSWhDQWNoU0FtZkNJaGZDSVpmQ0ViSUJjZ0lVSWVoaUFoUWlLSWhDQVpoU0lYZkNFZElCWkNHSVlnRmtJb2lJUWdIb1VpRmlBY0lDZDhJQnBDTm9ZZ0drSUtpSVFnSW9VZ0xYd2lHbndpSW53aUdTQVlRZzJHSUJoQ000aUVJQnVGSWlGOElSZ2dGa0l5aGlBV1FnNkloQ0FaaFNJV0lCdDhJUndnSVVJWmhpQWhRaWVJaENBWWhTSWJJQnBDSW9ZZ0drSWVpSVFnSW9VaUdpQWVmQ0lpSUJkQ0VZWWdGMEl2aUlRZ0hZVWlJWHdpR1h3aEZ5QVlJQ0ZDSFlZZ0lVSWppSVFnR1lVaUdId2hJU0FQSUJaQ0s0WWdGa0lWaUlRZ0hJVWlGaUFhUWdxR0lCcENOb2lFSUNLRklpSWdIWHdpR1h3aUdpQWtmQ0E1aFNJa053TUFJQkFnRzBJSWhpQWJRamlJaENBWGhTQWxmQ0FGS1FNQWhTSWxOd01BSUJFZ0lrSW5oaUFpUWhtSWhDQVpoU0lpSUJ4OEloa2dKbndnQmlrREFJVWlKamNEQUNBU0lCaENGb1lnR0VJcWlJUWdJWVVnSjN3Z0J5a0RBSVVpSnpjREFDQVRJQ0VnS0h3Z0NDa0RBSVVpS0RjREFDQU1JQ0pDT0lZZ0lrSUlpSVFnR1lVZ01Id2dDU2tEQUlVaUlUY0RBQ0FOSUJjZ0wzd2dDaWtEQUlVaUlqY0RBQ0FPSUNOQ0Vud2dGa0lqaGlBV1FoMkloQ0FhaFh3Z0N5a0RBSVVpR1RjREFDQXJRdi8vLy8vLy8vLy92MytESVNzZ0FrRi9haUlDQkVBZ0dTRWpJQzRoR1F3QkN3c2dGQ0E0SURjZ05uNThOd01BSUJVZ0t6Y0RBQ0FFSkFnTHhSa0NUSDhkZmlNSUlRY2pDRUhBQTJva0NDQUhRWUFCYWlJRUlBQkJDR29pR1NrREFDSlJOd01BSUFSQkNHb2lDU0FBUVJCcUlob3BBd0FpVURjREFDQURyU0ZzSUFSQkdHb2hCU0FFUVNCcUlSc2dCRUVvYWlFY0lBUkJNR29oSFNBRVFUaHFJUjRnQkVIQUFHb2hIeUFFUWNnQWFpRWdJQVJCMEFCcUlTRWdCRUhZQUdvaElpQUVRZUFBYWlFaklBUkI2QUJxSVNRZ0JFSHdBR29oSlNBRVFmZ0FhaUVtSUFSQmdBRnFJU2NnQkVHSUFXb2hLQ0FFUVpBQmFpRXBJQVJCbUFGcUlTb2dCRUVRYWlFcklBY2lCa0VJYWlFS0lBWkJFR29oQ3lBR1FSaHFJUXdnQmtFZ2FpRU5JQVpCS0dvaERpQUdRVEJxSVE4Z0JrRTRhaUVRSUFaQndBQnFJUkVnQmtISUFHb2hFaUFHUWRBQWFpRVRJQVpCMkFCcUlSUWdCa0hnQUdvaEZTQUdRZWdBYWlFV0lBWkI4QUJxSVJjZ0JrSDRBR29oR0NBQVFkQUFhaUlzS1FNQUlWSWdBRUhZQUdvaUxTa0RBQ0ZhSUFCQjRBQnFJaTRwQXdBaFV5QUFRZWdBYWlJdktRTUFJVlVnQUVId0FHb2lNQ2tEQUNGWElBQkIrQUJxSWpFcEF3QWhYU0FBUVlBQmFpSXlLUU1BSVZnZ0FFR0lBV29pTXlrREFDRlpJQUJCa0FGcUlqUXBBd0FoWGlCUklWd2dBRUVZYWlJMUtRTUFJVnNnQUVFZ2FpSTJLUU1BSVY4Z0FFRW9haUkzS1FNQUlXRWdBRUV3YWlJNEtRTUFJV0FnQUVFNGFpSTVLUU1BSVZZZ0FFSEFBR29pT2lrREFDRlVJQUJCeUFCcUlqc3BBd0FoVVNBQklRTURRQ0FFSUZ3Z2JId2lYRGNEQUNBRklGczNBd0FnR3lCZk53TUFJQndnWVRjREFDQWRJR0EzQXdBZ0hpQldOd01BSUI4Z1ZEY0RBQ0FnSUZFM0F3QWdJU0JTTndNQUlDSWdXamNEQUNBaklGTTNBd0FnSkNCVk53TUFJQ1VnVnpjREFDQW1JRjAzQXdBZ0p5QllOd01BSUNnZ1dUY0RBQ0FwSUY0M0F3QWdLaUJlUXFLMDhNK3ErOGJvRzRVZ1c0VWdYNFVnWVlVZ1lJVWdWb1VnVklVZ1VZVWdVb1VnV29VZ1U0VWdWWVVnVjRVZ1hZVWdXSVVnV1lVM0F3QWdLeUJRSUZ5Rk53TUFRUUFoQUFOQUlBWWdBRUVEZGtFRGRHb2dBeUFBUVFGeWFpMEFBSzFDQ0lZZ0F5QUFhaTBBQUsyRUlBTWdBRUVDY21vdEFBQ3RRaENHaENBRElBQkJBM0pxTFFBQXJVSVlob1FnQXlBQVFRUnlhaTBBQUsxQ0lJYUVJQU1nQUVFRmNtb3RBQUN0UWlpR2hDQURJQUJCQm5KcUxRQUFyVUl3aG53Z0F5QUFRUWR5YWkwQUFLMUNPSVo4TndNQUlBQkJDR29pQUVHQUFVa05BQXNnV3lBR0tRTUFmQ0ZiSUY4Z0Npa0RBSHdoWHlCaElBc3BBd0I4SVdFZ1lDQU1LUU1BZkNGZ0lGWWdEU2tEQUh3aFZpQlVJQTRwQXdCOElWUWdVU0FQS1FNQWZDRlJJRklnRUNrREFId2hVaUJhSUJFcEF3QjhJVm9nVXlBU0tRTUFmQ0ZUSUZVZ0V5a0RBSHdoVlNCWElCUXBBd0I4SVZjZ1hTQVZLUU1BZkNGZElGZ2dGaWtEQUh3Z1hId2hXQ0JaSUJjcEF3QjhJRkI4SVZrZ1hpQVlLUU1BZkNGUVFRRWhBUU5BSUY5Q0dJWWdYMElvaUlRZ1h5QmJmQ0pmaFNGbklHQkNEWVlnWUVJemlJUWdZQ0JoZkNKZ2hTRmVJRlJDQ0lZZ1ZFSTRpSVFnVkNCV2ZDSlVoU0ZXSUZKQ0w0WWdVa0lSaUlRZ1VpQlJmQ0pTaFNGUklGZENFWVlnVjBJdmlJUWdWeUJWZkNKWGhTSm1JRko4SVZ3Z1VFSWxoaUJRUWh1SWhDQlFJRmw4SWxDRkltRWdWSHdoVkNCWElGRjhJbElnVVVJeGhpQlJRZytJaElVaVlpQlRRZ2lHSUZOQ09JaUVJRk1nV253aVZZVWlZeUJmZkNKVGZDRnJJRkFnVm53aVZ5QldRaGVHSUZaQ0tZaUVoU0pSSUZoQ0ZvWWdXRUlxaUlRZ1dDQmRmQ0pRaFNKYklHQjhJbDE4SVZZZ1ZDQlFJRjU4SWxnZ1hrSVNoaUJlUWk2SWhJVWlVSHdpV1NCUVFqT0dJRkJDRFlpRWhTRmtJRndnVlNCbmZDSlFJR2RDTklZZ1owSU1pSVNGSWxwOElsVWdXa0lOaGlCYVFqT0loSVVoWlNCaFFqZUdJR0ZDQ1lpRUlGU0ZJbG9nV0h3aFp5QlJRZ1NHSUZGQ1BJaUVJRmFGSWw0Z1prSUtoaUJtUWphSWhDQmNoU0pVSUZCOElsQjhJVkVnQlNBQlFRTjBhaUk4S1FNQUlGcENJb1lnV2tJZWlJUWdaNFVpWENCcmZDSmZmQ0ZoSUFVZ0FVRUJhaUlJUVFOMGFpSTlLUU1BSUZ0Q0U0WWdXMEl0aUlRZ1hZVWlXaUJYZkNKWUlHVjhJbUFnWlVJdmhpQmxRaEdJaElWOElXZ2dCU0FCUVFKcUlnQkJBM1JxSWo0cEF3QWdWRUk3aGlCVVFnV0loQ0JRaFNKYklGWjhJbGQ4SVZZZ0JTQUJRUU5xSWo5QkEzUnFJa0FwQXdBZ1pFSVFoaUJrUWpDSWhDQmtJR05DSm9ZZ1kwSWFpSVFnVTRVaVV5QlNmQ0pRZkNKZGhYd2hhU0FGSUFGQkJHcEJBM1JxSWtFcEF3QWdXU0JUUWhHR0lGTkNMNGlFSUZDRklsSjhJbGw4SVZRZ0JTQUJRUVZxUVFOMGFpSkNLUU1BSUY1Q0hJWWdYa0lraUlRZ1VZVjhJV29nQlNBQlFRWnFRUU4wYWlKREtRTUFJRnBDS1lZZ1drSVhpSVFnV0lVaVV5QlZmQ0pZZkNGYUlBVWdBVUVIYWtFRGRHb2lSQ2tEQUNCbklHSkNJWVlnWWtJZmlJUWdhNFVpVlh3aVVDQlZRaG1HSUZWQ0o0aUVoWHdoWkNBRklBRkJDR3BCQTNScUlrVXBBd0FnVVh3aFVTQUZJQUZCQ1dwQkEzUnFJa1lwQXdBZ1dTQlNRaW1HSUZKQ0Y0aUVoWHdoWlNBRklBRkJDbXBCQTNScUlrY3BBd0FnWFh3aFdTQUZJQUZCQzJwQkEzUnFJa2dwQXdBZ1cwSVVoaUJiUWl5SWhDQlhoWHdoV3lBRklBRkJER3BCQTNScUlra3BBd0FnVUh3aFVpQUZJQUZCRFdwQkEzUnFJa29wQXdBZ1UwSXdoaUJUUWhDSWhDQlloWHdnQkNBQlFRTjBhaUpMS1FNQWZDRm1JQVVnQVVFT2FrRURkR29pVENrREFDRlRJQVFnQ0VFRGRHb2lUU2tEQUNGVklGeENCWVlnWEVJN2lJUWdYNFVnQWEwaWEzd2dCU0FCUVE5cVFRTjBhaUpPS1FNQWZDRmpJQVVnQVVFUWFrRURkR29pVHlBRklBRkJmMm9pQ0VFRGRHb3BBd0EzQXdBZ0JDQUFRUU4wYWlBRUlBaEJBM1JxS1FNQUltYzNBd0FnYUVJcGhpQm9RaGVJaENCaElHaDhJbGVGSVdJZ2FVSUpoaUJwUWplSWhDQldJR2w4SWwyRklWNGdha0lsaGlCcVFodUloQ0JVSUdwOElsaUZJVndnWkVJZmhpQmtRaUdJaENCYUlHUjhJbENGSVZZZ1cwSXZoaUJiUWhHSWhDQlpJRnQ4SWxtRklsc2dVSHdoWHlCalFoNkdJR05DSW9pRUlGTWdZSHdnVlh3Z1kzd2lVSVVpWVNCWWZDRlVJRmtnVm53aVdpQldRZ1NHSUZaQ1BJaUVoU0pwSUdWQ0RJWWdaVUkwaUlRZ1VTQmxmQ0pWaFNKaklGZDhJbE44SVdvZ1VDQmNmQ0pYSUZ4Q0tvWWdYRUlXaUlTRklsRWdaa0lzaGlCbVFoU0loQ0JTSUdaOElsQ0ZJbUFnWFh3aVhYd2hWaUJVSUZBZ1hud2lXU0JlUWpXR0lGNUNDNGlFaFNKUWZDSllJRkJDTDRZZ1VFSVJpSVNGSVdnZ1h5QlZJR0o4SWxBZ1lrSXBoaUJpUWhlSWhJVWlVbndpVlNCU1FpNkdJRkpDRW9pRWhTRmlJR0ZDTTRZZ1lVSU5pSVFnVklVaVVpQlpmQ0ZrSUZGQ0xJWWdVVUlVaUlRZ1ZvVWlWQ0JiUWppR0lGdENDSWlFSUYrRklsRWdVSHdpVUh3aFpTQlNRaE9HSUZKQ0xZaUVJR1NGSW1ZZ2Fud2lYaUE5S1FNQWZDRmJJR0JDSW9ZZ1lFSWVpSVFnWFlVaVVpQlhmQ0paSUdKOElsd2dZa0lYaGlCaVFpbUloSVVnUGlrREFId2hYeUJXSUZGQ0xJWWdVVUlVaUlRZ1VJVWlZbndpVnlCQUtRTUFmQ0ZoSUdoQ0pZWWdhRUliaUlRZ2FDQmpRaENHSUdOQ01JaUVJRk9GSWxNZ1dud2lVSHdpWFlVZ1FTa0RBSHdoWUNCQ0tRTUFJRmdnVTBJWmhpQlRRaWVJaENCUWhTSlRmQ0pZZkNGV0lGUkNINFlnVkVJaGlJUWdaWVVnUXlrREFId2hWQ0JFS1FNQUlGSkNLb1lnVWtJV2lJUWdXWVVpWXlCVmZDSlpmQ0ZSSUVVcEF3QWdaQ0JwUWgrR0lHbENJWWlFSUdxRklsVjhJbEFnVlVJVWhpQlZRaXlJaElWOElWSWdSaWtEQUNCbGZDRmFJRWNwQXdBZ1dDQlRRalNHSUZOQ0RJaUVoWHdoVXlCSUtRTUFJRjE4SVZVZ1NTa0RBQ0JYSUdKQ01JWWdZa0lRaUlTRmZDRlhJRW9wQXdBZ1VId2hYU0JNS1FNQUlHTkNJNFlnWTBJZGlJUWdXWVY4SUUwcEF3QjhJVmdnWENCbmZDQk9LUU1BZkNGWklHdENBWHdnWmtJSmhpQm1RamVJaENCZWhYd2dUeWtEQUh3aFVDQUZJQUZCRVdwQkEzUnFJRHdwQXdBM0F3QWdCQ0EvUVFOMGFpQkxLUU1BTndNQUlBQkJGVWtFUUNBQUlRRU1BUXNMSURVZ0Jpa0RBQ0JiaFNKYk53TUFJRFlnQ2lrREFDQmZoU0pmTndNQUlEY2dDeWtEQUNCaGhTSmhOd01BSURnZ0RDa0RBQ0JnaFNKZ053TUFJRGtnRFNrREFDQldoU0pXTndNQUlEb2dEaWtEQUNCVWhTSlVOd01BSURzZ0R5a0RBQ0JSaFNKUk53TUFJQ3dnRUNrREFDQlNoU0pTTndNQUlDMGdFU2tEQUNCYWhTSmFOd01BSUM0Z0Vpa0RBQ0JUaFNKVE53TUFJQzhnRXlrREFDQlZoU0pWTndNQUlEQWdGQ2tEQUNCWGhTSlhOd01BSURFZ0ZTa0RBQ0JkaFNKZE53TUFJRElnRmlrREFDQlloU0pZTndNQUlETWdGeWtEQUNCWmhTSlpOd01BSURRZ0dDa0RBQ0JRaFNKUU53TUFJQWtnQ1NrREFFTC8vLy8vLy8vLy83OS9neUpjTndNQUlBSkJmMm9pQWdSQUlGQWhYaUJjSVZBZ0JDa0RBQ0ZjSUFOQmdBRnFJUU1NQVFzTElCa2dCQ2tEQURjREFDQWFJRnczQXdBZ0J5UUlDODhkQWdWL0czNGdBNjBoSFNBQ1FYOXFyVUlCZkNFZUlBQkJHR29pQXlrREFDRVJJQUJCSUdvaUJDa0RBQ0VYSUFCQktHb2lCU2tEQUNFUUlBQkJNR29pQmlrREFDRVdJQUJCQ0dvaUJ5a0RBQ0lmSVJzZ0FFRVFhaUlJS1FNQUlSZ0RRQ0FiSUIxOEloc2dHSVVoRGlBQlFTQnFJUUFnRUNBWWZDSVNJQUV0QUJHdFFnaUdJQUV0QUJDdGhDQUJMUUFTclVJUWhvUWdBUzBBRTYxQ0dJYUVJQUV0QUJTdFFpQ0doQ0FCTFFBVnJVSW9ob1FnQVMwQUZxMUNNSVo4SUFFdEFCZXRRamlHZkNJZ2ZDQUJMUUFaclVJSWhpQUJMUUFZcllRZ0FTMEFHcTFDRUlhRUlBRXRBQnV0UWhpR2hDQUJMUUFjclVJZ2hvUWdBUzBBSGExQ0tJYUVJQUV0QUI2dFFqQ0dmQ0FCTFFBZnJVSTRobndpSVNBV2ZDSVBmQ0VaSUE5Q0VJWWdEMEl3aUlRZ0dZVWlEeUFCTFFBQnJVSUloaUFCTFFBQXJZUWdBUzBBQXExQ0VJYUVJQUV0QUFPdFFoaUdoQ0FCTFFBRXJVSWdob1FnQVMwQUJhMUNLSWFFSUFFdEFBYXRRakNHZkNBQkxRQUhyVUk0aG53aUlpQVJmQ0FYSUJ0OEloUWdBUzBBQ2ExQ0NJWWdBUzBBQ0syRUlBRXRBQXF0UWhDR2hDQUJMUUFMclVJWWhvUWdBUzBBREsxQ0lJYUVJQUV0QUEydFFpaUdoQ0FCTFFBT3JVSXdobndnQVMwQUQ2MUNPSVo4SWlOOEloTjhJZ3A4SVFrZ0QwSTBoaUFQUWd5SWhDQUpoU0lQSUJOQ0RvWWdFMEl5aUlRZ0NvVWlFeUFaZkNJVmZDRVpJQTlDS0lZZ0QwSVlpSVFnR1lVaUNpQVRRam1HSUJOQ0I0aUVJQldGSWc4Z0NYd2lDWHdoRXlBUFFoZUdJQTlDS1lpRUlBbUZJZ2tnR1h3aUN5QVdJQTU4SWhsOElCRkNvclR3ejZyN3h1Z2JoU0FYaFNBUWhTQVdoU0lQUWdGOElBcENCWVlnQ2tJN2lJUWdFNFY4SWdwOElSVWdDa0loaGlBS1FoK0loQ0FWaFNJS0lCTWdGM3dnQ1VJbGhpQUpRaHVJaENBTGhTQVNmQ0lUZkNJTGZDRUpJQXBDTG9ZZ0NrSVNpSVFnQ1lVaUNpQVRRaG1HSUJOQ0o0aUVJQXVGSWhNZ0ZYd2lDM3doRlNBS1FoYUdJQXBDS29pRUlCV0ZJZ29nRTBJTWhpQVRRalNJaENBTGhTSVRJQWw4SWd0OElRa2dFMEk2aGlBVFFnYUloQ0FMaFNJTElCVjhJZ3dnRHlBYmZDSVRmQ0FSUWdKOElBcENJSVlnQ2tJZ2lJUWdDWVY4SWdwOElSVWdDa0lRaGlBS1FqQ0loQ0FWaFNJS0lBa2dFSHdnQzBJZ2hpQUxRaUNJaENBTWhTQVpmQ0lKZkNJTWZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQXlGSWdrZ0ZYd2lESHdoRlNBS1FpaUdJQXBDR0lpRUlCV0ZJZ29nQ1VJNWhpQUpRZ2VJaENBTWhTSUpJQXQ4SWd4OElRc2dDVUlYaGlBSlFpbUloQ0FNaFNJSklCVjhJZzBnRVNBWWZDSVZmQ0FYUWdOOElBcENCWVlnQ2tJN2lJUWdDNFY4SWdwOElRd2dDa0loaGlBS1FoK0loQ0FNaFNJS0lBc2dGbndnQ1VJbGhpQUpRaHVJaENBTmhTQVRmQ0lKZkNJTmZDRUxJQXBDTG9ZZ0NrSVNpSVFnQzRVaUNpQUpRaG1HSUFsQ0o0aUVJQTJGSWdrZ0RId2lEWHdoRENBS1FoYUdJQXBDS29pRUlBeUZJZ29nQ1VJTWhpQUpRalNJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUk2aGlBSlFnYUloQ0FOaFNJSklBeDhJZzBnRnlBT2ZDSWFmQ0FRUWdSOElBcENJSVlnQ2tJZ2lJUWdDNFY4SWdwOElRd2dDa0lRaGlBS1FqQ0loQ0FNaFNJS0lBc2dEM3dnQ1VJZ2hpQUpRaUNJaENBTmhTQVZmQ0lKZkNJTmZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQTJGSWdrZ0RId2lEWHdoRENBS1FpaUdJQXBDR0lpRUlBeUZJZ29nQ1VJNWhpQUpRZ2VJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUlYaGlBSlFpbUloQ0FOaFNJSklBeDhJZzBnRUNBYmZDSWNmQ0FXUWdWOElBcENCWVlnQ2tJN2lJUWdDNFY4SWdwOElRd2dDa0loaGlBS1FoK0loQ0FNaFNJS0lBc2dFWHdnQ1VJbGhpQUpRaHVJaENBTmhTQWFmQ0lKZkNJTmZDRUxJQXBDTG9ZZ0NrSVNpSVFnQzRVaUNpQUpRaG1HSUFsQ0o0aUVJQTJGSWdrZ0RId2lEWHdoRENBS1FoYUdJQXBDS29pRUlBeUZJZ29nQ1VJTWhpQUpRalNJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUk2aGlBSlFnYUloQ0FOaFNJSklBeDhJZzBnRmlBWWZDSWFmQ0FQUWdaOElBcENJSVlnQ2tJZ2lJUWdDNFY4SWdwOElRd2dDa0lRaGlBS1FqQ0loQ0FNaFNJS0lBc2dGM3dnQ1VJZ2hpQUpRaUNJaENBTmhTQWNmQ0lKZkNJTmZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQTJGSWdrZ0RId2lEWHdoRENBS1FpaUdJQXBDR0lpRUlBeUZJZ29nQ1VJNWhpQUpRZ2VJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUlYaGlBSlFpbUloQ0FOaFNJSklBeDhJZzBnRHlBT2ZDSWNmQ0FSUWdkOElBcENCWVlnQ2tJN2lJUWdDNFY4SWdwOElRd2dDa0loaGlBS1FoK0loQ0FNaFNJS0lBc2dFSHdnQ1VJbGhpQUpRaHVJaENBTmhTQWFmQ0lKZkNJTmZDRUxJQXBDTG9ZZ0NrSVNpSVFnQzRVaUNpQUpRaG1HSUFsQ0o0aUVJQTJGSWdrZ0RId2lEWHdoRENBS1FoYUdJQXBDS29pRUlBeUZJZ29nQ1VJTWhpQUpRalNJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUk2aGlBSlFnYUloQ0FOaFNJSklBeDhJZzBnRVNBYmZDSWFmQ0FYUWdoOElBcENJSVlnQ2tJZ2lJUWdDNFY4SWdwOElRd2dDa0lRaGlBS1FqQ0loQ0FNaFNJS0lBc2dGbndnQ1VJZ2hpQUpRaUNJaENBTmhTQWNmQ0lKZkNJTmZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQTJGSWdrZ0RId2lEWHdoRENBS1FpaUdJQXBDR0lpRUlBeUZJZ29nQ1VJNWhpQUpRZ2VJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUlYaGlBSlFpbUloQ0FOaFNJSklBeDhJZzBnRnlBWWZDSWNmQ0FRUWdsOElBcENCWVlnQ2tJN2lJUWdDNFY4SWdwOElRd2dDa0loaGlBS1FoK0loQ0FNaFNJS0lBc2dEM3dnQ1VJbGhpQUpRaHVJaENBTmhTQWFmQ0lKZkNJTmZDRUxJQXBDTG9ZZ0NrSVNpSVFnQzRVaUNpQUpRaG1HSUFsQ0o0aUVJQTJGSWdrZ0RId2lEWHdoRENBS1FoYUdJQXBDS29pRUlBeUZJZ29nQ1VJTWhpQUpRalNJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUk2aGlBSlFnYUloQ0FOaFNJSklBeDhJZzBnRUNBT2ZDSWFmQ0FXUWdwOElBcENJSVlnQ2tJZ2lJUWdDNFY4SWdwOElRd2dDa0lRaGlBS1FqQ0loQ0FNaFNJS0lBc2dFWHdnQ1VJZ2hpQUpRaUNJaENBTmhTQWNmQ0lKZkNJTmZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQTJGSWdrZ0RId2lEWHdoRENBS1FpaUdJQXBDR0lpRUlBeUZJZ29nQ1VJNWhpQUpRZ2VJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUlYaGlBSlFpbUloQ0FOaFNJSklBeDhJZzBnRmlBYmZDSWNmQ0FQUWd0OElBcENCWVlnQ2tJN2lJUWdDNFY4SWdwOElRd2dDa0loaGlBS1FoK0loQ0FNaFNJS0lBc2dGM3dnQ1VJbGhpQUpRaHVJaENBTmhTQWFmQ0lKZkNJTmZDRUxJQXBDTG9ZZ0NrSVNpSVFnQzRVaUNpQUpRaG1HSUFsQ0o0aUVJQTJGSWdrZ0RId2lEWHdoRENBS1FoYUdJQXBDS29pRUlBeUZJZ29nQ1VJTWhpQUpRalNJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUk2aGlBSlFnYUloQ0FOaFNJSklBeDhJZzBnRHlBWWZDSWFmQ0FSUWd4OElBcENJSVlnQ2tJZ2lJUWdDNFY4SWdwOElRd2dDa0lRaGlBS1FqQ0loQ0FNaFNJS0lBc2dFSHdnQ1VJZ2hpQUpRaUNJaENBTmhTQWNmQ0lKZkNJTmZDRUxJQXBDTklZZ0NrSU1pSVFnQzRVaUNpQUpRZzZHSUFsQ01vaUVJQTJGSWdrZ0RId2lEWHdoRENBS1FpaUdJQXBDR0lpRUlBeUZJZ29nQ1VJNWhpQUpRZ2VJaENBTmhTSUpJQXQ4SWcxOElRc2dDVUlYaGlBSlFpbUloQ0FOaFNJSklBeDhJZ3dnRVNBT2ZDSU5mQ0FYUWcxOElBcENCWVlnQ2tJN2lJUWdDNFY4SWc1OElRb2dEa0loaGlBT1FoK0loQ0FLaFNJT0lBc2dGbndnQ1VJbGhpQUpRaHVJaENBTWhTQWFmQ0lKZkNJTWZDRUxJQTVDTG9ZZ0RrSVNpSVFnQzRVaURpQUpRaG1HSUFsQ0o0aUVJQXlGSWdrZ0Nud2lESHdoQ2lBT1FoYUdJQTVDS29pRUlBcUZJZzRnQ1VJTWhpQUpRalNJaENBTWhTSUpJQXQ4SWd4OElRc2dDVUk2aGlBSlFnYUloQ0FNaFNJSklBcDhJZ3dnRkh3Z0VFSU9mQ0FPUWlDR0lBNUNJSWlFSUF1RmZDSU9mQ0VLSUE1Q0VJWWdEa0l3aUlRZ0NvVWlEaUFMSUE5OElBbENJSVlnQ1VJZ2lJUWdESVVnRFh3aUNYd2lESHdoQ3lBT1FqU0dJQTVDRElpRUlBdUZJZzRnQ1VJT2hpQUpRaktJaENBTWhTSUpJQXA4SWd4OElRb2dEa0lvaGlBT1FoaUloQ0FLaFNJT0lBbENPWVlnQ1VJSGlJUWdESVVpQ1NBTGZDSU1mQ0VMSUFsQ0Y0WWdDVUlwaUlRZ0RJVWlDU0FLZkNJTUlCSjhJQlpDRDN3Z0RrSUZoaUFPUWp1SWhDQUxoWHdpRG53aENpQU9RaUdHSUE1Q0g0aUVJQXFGSWc0Z0N5QVJmQ0FKUWlXR0lBbENHNGlFSUF5RklCUjhJaFI4SWd0OElRa2dEa0l1aGlBT1FoS0loQ0FKaFNJT0lCUkNHWVlnRkVJbmlJUWdDNFVpRkNBS2ZDSUxmQ0VLSUE1Q0ZvWWdEa0lxaUlRZ0NvVWlEaUFVUWd5R0lCUkNOSWlFSUF1RkloUWdDWHdpQzN3aENTQVVRanFHSUJSQ0JvaUVJQXVGSWhRZ0Nud2lDaUFaZkNBUFFoQjhJQTVDSUlZZ0RrSWdpSVFnQ1lWOElnOThJUTRnRDBJUWhpQVBRakNJaENBT2hTSVBJQWtnRjN3Z0ZFSWdoaUFVUWlDSWhDQUtoU0FTZkNJU2ZDSUpmQ0VVSUE5Q05JWWdEMElNaUlRZ0ZJVWlEeUFTUWc2R0lCSkNNb2lFSUFtRkloSWdEbndpQ1h3aERpQVBRaWlHSUE5Q0dJaUVJQTZGSWc4Z0VrSTVoaUFTUWdlSWhDQUpoU0lTSUJSOElnbDhJUlFnRWtJWGhpQVNRaW1JaENBSmhTSVNJQTU4SWc0Z0Uzd2dFVUlSZkNBUFFnV0dJQTlDTzRpRUlCU0ZmQ0lSZkNFUElCRkNJWVlnRVVJZmlJUWdENFVpRVNBVUlCQjhJQkpDSllZZ0VrSWJpSVFnRG9VZ0dYd2lFSHdpRW53aERpQVFRaG1HSUJCQ0o0aUVJQktGSWhBZ0Qzd2hEeUFRUWd5R0lCQkNOSWlFSUErRkloQWdEbndoRWlBUVFqcUdJQkJDQm9pRUlCS0ZJaEFnRVVJdWhpQVJRaEtJaENBT2hTSVJJQTk4SWc1OElROGdBeUFSUWhhR0lCRkNLb2lFSUE2RklnNGdFbndpRWlBV2ZDQWloU0lSTndNQUlBUWdFRUlnaGlBUVFpQ0loQ0FQaFNBVGZDQWpoU0lXTndNQUlBVWdEeUFWZkNBZ2hTSVFOd01BSUFZZ0YwSVNmQ0FPUWlDR0lBNUNJSWlFSUJLRmZDQWhoU0lQTndNQUlCaEMvLy8vLy8vLy8vKy9mNE1oR0NBQ1FYOXFJZ0lFUUNBV0lSY2dEeUVXSUFBaEFRd0JDd3NnQnlBZklCNGdIWDU4TndNQUlBZ2dHRGNEQUF2K01nRU1meU1JSVFvakNFRVFhaVFJSUFvaENBSkFJQUJCOVFGSkJFQWdBRUVMYWtGNGNTRUNRWWpuQUNnQ0FDSUdJQUJCQzBrRWYwRVFJZ0lGSUFJTFFRTjJJZ0IySWdGQkEzRUVRQ0FCUVFGeFFRRnpJQUJxSWdGQkEzUkJzT2NBYWlJQ1FRaHFJZ1VvQWdBaUEwRUlhaUlFS0FJQUlRQWdBaUFBUmdSQVFZam5BQ0FHUVFFZ0FYUkJmM054TmdJQUJTQUFJQUkyQWd3Z0JTQUFOZ0lBQ3lBRElBRkJBM1FpQUVFRGNqWUNCQ0FESUFCcVFRUnFJZ0FnQUNnQ0FFRUJjallDQUNBS0pBZ2dCQThMSUFKQmtPY0FLQUlBSWdsTEJFQWdBUVJBSUFFZ0FIUkJBaUFBZENJQVFRQWdBR3R5Y1NJQVFRQWdBR3R4UVg5cUlnRkJESFpCRUhFaEFDQUJJQUIySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFpSUJRUU4wUWJEbkFHb2lBMEVJYWlJRUtBSUFJZ1ZCQ0dvaUJ5Z0NBQ0VBSUFNZ0FFWUVRRUdJNXdBZ0JrRUJJQUYwUVg5emNTSUFOZ0lBQlNBQUlBTTJBZ3dnQkNBQU5nSUFJQVloQUFzZ0JTQUNRUU55TmdJRUlBVWdBbW9pQlNBQlFRTjBJQUpySWdOQkFYSTJBZ1FnQlNBRGFpQUROZ0lBSUFrRVFFR2M1d0FvQWdBaEFpQUpRUU4ySWdSQkEzUkJzT2NBYWlFQklBQkJBU0FFZENJRWNRUi9JQUZCQ0dvaUFDRUVJQUFvQWdBRlFZam5BQ0FBSUFSeU5nSUFJQUZCQ0dvaEJDQUJDeUVBSUFRZ0FqWUNBQ0FBSUFJMkFnd2dBaUFBTmdJSUlBSWdBVFlDREF0QmtPY0FJQU0yQWdCQm5PY0FJQVUyQWdBZ0NpUUlJQWNQQzBHTTV3QW9BZ0FpQ3dSQUlBdEJBQ0FMYTNGQmYyb2lBVUVNZGtFUWNTRUFJQUVnQUhZaUFVRUZka0VJY1NJRElBQnlJQUVnQTNZaUFFRUNka0VFY1NJQmNpQUFJQUYySWdCQkFYWkJBbkVpQVhJZ0FDQUJkaUlBUVFGMlFRRnhJZ0Z5SUFBZ0FYWnFRUUowUWJqcEFHb29BZ0FpQXlnQ0JFRjRjU0FDYXlFQklBTkJFR29nQXlnQ0VFVkJBblJxS0FJQUlnQUVRQU5BSUFBb0FnUkJlSEVnQW1zaUJTQUJTU0lFQkVBZ0JTRUJDeUFFQkVBZ0FDRURDeUFBUVJCcUlBQW9BaEJGUVFKMGFpZ0NBQ0lBRFFBZ0FTRUZDd1VnQVNFRkN5QURJQU1nQW1vaURFa0VRQ0FES0FJWUlRZ0NRQ0FES0FJTUlnQWdBMFlFUUNBRFFSUnFJZ0VvQWdBaUFFVUVRQ0FEUVJCcUlnRW9BZ0FpQUVVRVFFRUFJUUFNQXdzTEEwQWdBRUVVYWlJRUtBSUFJZ2NFUUNBSElRQWdCQ0VCREFFTElBQkJFR29pQkNnQ0FDSUhCRUFnQnlFQUlBUWhBUXdCQ3dzZ0FVRUFOZ0lBQlNBREtBSUlJZ0VnQURZQ0RDQUFJQUUyQWdnTEN3SkFJQWdFUUNBRElBTW9BaHdpQVVFQ2RFRzQ2UUJxSWdRb0FnQkdCRUFnQkNBQU5nSUFJQUJGQkVCQmpPY0FJQXRCQVNBQmRFRi9jM0UyQWdBTUF3c0ZJQWhCRUdvZ0NDZ0NFQ0FEUjBFQ2RHb2dBRFlDQUNBQVJRMENDeUFBSUFnMkFoZ2dBeWdDRUNJQkJFQWdBQ0FCTmdJUUlBRWdBRFlDR0FzZ0F5Z0NGQ0lCQkVBZ0FDQUJOZ0lVSUFFZ0FEWUNHQXNMQ3lBRlFSQkpCRUFnQXlBRklBSnFJZ0JCQTNJMkFnUWdBeUFBYWtFRWFpSUFJQUFvQWdCQkFYSTJBZ0FGSUFNZ0FrRURjallDQkNBTUlBVkJBWEkyQWdRZ0RDQUZhaUFGTmdJQUlBa0VRRUdjNXdBb0FnQWhBaUFKUVFOMklnRkJBM1JCc09jQWFpRUFJQVpCQVNBQmRDSUJjUVIvSUFCQkNHb2lBU0VFSUFFb0FnQUZRWWpuQUNBR0lBRnlOZ0lBSUFCQkNHb2hCQ0FBQ3lFQklBUWdBallDQUNBQklBSTJBZ3dnQWlBQk5nSUlJQUlnQURZQ0RBdEJrT2NBSUFVMkFnQkJuT2NBSUF3MkFnQUxJQW9rQ0NBRFFRaHFEd1VnQWlFQUN3VWdBaUVBQ3dVZ0FpRUFDd1VnQUVHL2Ywc0VRRUYvSVFBRklBQkJDMm9pQUVGNGNTRURRWXpuQUNnQ0FDSUZCRUFnQUVFSWRpSUFCSDhnQTBILy8vOEhTd1IvUVI4RklBTkJEaUFBSUFCQmdQNC9ha0VRZGtFSWNTSUFkQ0lCUVlEZ0gycEJFSFpCQkhFaUFpQUFjaUFCSUFKMElnQkJnSUFQYWtFUWRrRUNjU0lCY21zZ0FDQUJkRUVQZG1vaUFFRUhhblpCQVhFZ0FFRUJkSElMQlVFQUN5RUpRUUFnQTJzaEFRSkFBa0FnQ1VFQ2RFRzQ2UUJxS0FJQUlnQUVRRUVaSUFsQkFYWnJJUUpCQUNFRUlBTWdDVUVmUmdSL1FRQUZJQUlMZENFSFFRQWhBZ05BSUFBb0FnUkJlSEVnQTJzaUJpQUJTUVJBSUFZRVFDQUdJUUVnQUNFQ0JVRUFJUUlnQUNFQkRBUUxDeUFBS0FJVUlndEZJQXNnQUVFUWFpQUhRUjkyUVFKMGFpZ0NBQ0lHUm5JRWZ5QUVCU0FMQ3lFQUlBY2dCa1VpQkVFQmMzUWhCeUFFUlFSQUlBQWhCQ0FHSVFBTUFRc0xCVUVBSVFCQkFDRUNDeUFBUlNBQ1JYRUVmeUFGUVFJZ0NYUWlBRUVBSUFCcmNuRWlBRVVFUUNBRElRQU1Cd3NnQUVFQUlBQnJjVUYvYWlJQ1FReDJRUkJ4SVFBZ0FpQUFkaUlDUVFWMlFRaHhJZ1FnQUhJZ0FpQUVkaUlBUVFKMlFRUnhJZ0p5SUFBZ0FuWWlBRUVCZGtFQ2NTSUNjaUFBSUFKMklnQkJBWFpCQVhFaUFuSWdBQ0FDZG1wQkFuUkJ1T2tBYWlnQ0FDRUVRUUFGSUFBaEJDQUNDeUVBSUFRRVFDQUJJUUlnQkNFQkRBRUZJQUVoQkNBQUlRSUxEQUVMQTBBZ0FTZ0NCRUY0Y1NBRGF5SUVJQUpKSWdjRVFDQUVJUUlMSUFjRVFDQUJJUUFMSUFGQkVHb2dBU2dDRUVWQkFuUnFLQUlBSWdFTkFDQUNJUVFnQUNFQ0N3c2dBZ1JBSUFSQmtPY0FLQUlBSUFOclNRUkFJQUlnQWlBRGFpSUlUd1JBSUFva0NFRUFEd3NnQWlnQ0dDRUpBa0FnQWlnQ0RDSUFJQUpHQkVBZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWtFUWFpSUJLQUlBSWdCRkJFQkJBQ0VBREFNTEN3TkFJQUJCRkdvaUJ5Z0NBQ0lHQkVBZ0JpRUFJQWNoQVF3QkN5QUFRUkJxSWdjb0FnQWlCZ1JBSUFZaEFDQUhJUUVNQVFzTElBRkJBRFlDQUFVZ0FpZ0NDQ0lCSUFBMkFnd2dBQ0FCTmdJSUN3c0NRQ0FKQkg4Z0FpQUNLQUljSWdGQkFuUkJ1T2tBYWlJSEtBSUFSZ1JBSUFjZ0FEWUNBQ0FBUlFSQVFZem5BQ0FGUVFFZ0FYUkJmM054SWdBMkFnQU1Bd3NGSUFsQkVHb2dDU2dDRUNBQ1IwRUNkR29nQURZQ0FDQUFSUVJBSUFVaEFBd0RDd3NnQUNBSk5nSVlJQUlvQWhBaUFRUkFJQUFnQVRZQ0VDQUJJQUEyQWhnTElBSW9BaFFpQVFSL0lBQWdBVFlDRkNBQklBQTJBaGdnQlFVZ0JRc0ZJQVVMSVFBTEFrQWdCRUVRU1FSQUlBSWdCQ0FEYWlJQVFRTnlOZ0lFSUFJZ0FHcEJCR29pQUNBQUtBSUFRUUZ5TmdJQUJTQUNJQU5CQTNJMkFnUWdDQ0FFUVFGeU5nSUVJQWdnQkdvZ0JEWUNBQ0FFUVFOMklRRWdCRUdBQWtrRVFDQUJRUU4wUWJEbkFHb2hBRUdJNXdBb0FnQWlBMEVCSUFGMElnRnhCSDhnQUVFSWFpSUJJUU1nQVNnQ0FBVkJpT2NBSUFNZ0FYSTJBZ0FnQUVFSWFpRURJQUFMSVFFZ0F5QUlOZ0lBSUFFZ0NEWUNEQ0FJSUFFMkFnZ2dDQ0FBTmdJTURBSUxJQVJCQ0hZaUFRUi9JQVJCLy8vL0Iwc0VmMEVmQlNBRVFRNGdBU0FCUVlEK1AycEJFSFpCQ0hFaUFYUWlBMEdBNEI5cVFSQjJRUVJ4SWdVZ0FYSWdBeUFGZENJQlFZQ0FEMnBCRUhaQkFuRWlBM0pySUFFZ0EzUkJEM1pxSWdGQkIycDJRUUZ4SUFGQkFYUnlDd1ZCQUFzaUFVRUNkRUc0NlFCcUlRTWdDQ0FCTmdJY0lBaEJFR29pQlVFQU5nSUVJQVZCQURZQ0FDQUFRUUVnQVhRaUJYRkZCRUJCak9jQUlBQWdCWEkyQWdBZ0F5QUlOZ0lBSUFnZ0F6WUNHQ0FJSUFnMkFnd2dDQ0FJTmdJSURBSUxJQU1vQWdBaEFFRVpJQUZCQVhacklRTWdCQ0FCUVI5R0JIOUJBQVVnQXd0MElRRUNRQU5BSUFBb0FnUkJlSEVnQkVZTkFTQUJRUUYwSVFNZ0FFRVFhaUFCUVI5MlFRSjBhaUlCS0FJQUlnVUVRQ0FESVFFZ0JTRUFEQUVMQ3lBQklBZzJBZ0FnQ0NBQU5nSVlJQWdnQ0RZQ0RDQUlJQWcyQWdnTUFnc2dBRUVJYWlJQktBSUFJZ01nQ0RZQ0RDQUJJQWcyQWdBZ0NDQUROZ0lJSUFnZ0FEWUNEQ0FJUVFBMkFoZ0xDeUFLSkFnZ0FrRUlhZzhGSUFNaEFBc0ZJQU1oQUFzRklBTWhBQXNMQ3d0QmtPY0FLQUlBSWdNZ0FFOEVRRUdjNXdBb0FnQWhBU0FESUFCcklnSkJEMHNFUUVHYzV3QWdBU0FBYWlJRE5nSUFRWkRuQUNBQ05nSUFJQU1nQWtFQmNqWUNCQ0FESUFKcUlBSTJBZ0FnQVNBQVFRTnlOZ0lFQlVHUTV3QkJBRFlDQUVHYzV3QkJBRFlDQUNBQklBTkJBM0kyQWdRZ0FTQURha0VFYWlJQUlBQW9BZ0JCQVhJMkFnQUxJQW9rQ0NBQlFRaHFEd3RCbE9jQUtBSUFJZ0lnQUVzRVFFR1U1d0FnQWlBQWF5SUNOZ0lBUWFEbkFFR2c1d0FvQWdBaUFTQUFhaUlETmdJQUlBTWdBa0VCY2pZQ0JDQUJJQUJCQTNJMkFnUWdDaVFJSUFGQkNHb1BDMEhnNmdBb0FnQUVmMEhvNmdBb0FnQUZRZWpxQUVHQUlEWUNBRUhrNmdCQmdDQTJBZ0JCN09vQVFYODJBZ0JCOE9vQVFYODJBZ0JCOU9vQVFRQTJBZ0JCeE9vQVFRQTJBZ0FnQ0NBSVFYQnhRZGlxMWFvRmN5SUJOZ0lBUWVEcUFDQUJOZ0lBUVlBZ0N5SUJJQUJCTDJvaUJHb2lCMEVBSUFGcklnWnhJZ1VnQUUwRVFDQUtKQWhCQUE4TFFjRHFBQ2dDQUNJQkJFQkJ1T29BS0FJQUlnTWdCV29pQ0NBRFRTQUlJQUZMY2dSQUlBb2tDRUVBRHdzTElBQkJNR29oQ0FKQUFrQkJ4T29BS0FJQVFRUnhCRUJCQUNFQ0JRSkFBa0FDUUVHZzV3QW9BZ0FpQVVVTkFFSEk2Z0FoQXdOQUFrQWdBeWdDQUNJSklBRk5CRUFnQ1NBRFFRUnFJZ2tvQWdCcUlBRkxEUUVMSUFNb0FnZ2lBdzBCREFJTEN5QUhJQUpySUFaeElnSkIvLy8vL3dkSkJFQWdBaEJrSWdFZ0F5Z0NBQ0FKS0FJQWFrWUVRQ0FCUVg5SERRWUZEQU1MQlVFQUlRSUxEQUlMUVFBUVpDSUJRWDlHQkVCQkFDRUNCVUhrNmdBb0FnQWlBMEYvYWlJSElBRWlBbXBCQUNBRGEzRWdBbXNoQXlBSElBSnhCSDhnQXdWQkFBc2dCV29pQWtHNDZnQW9BZ0FpQjJvaEF5QUNJQUJMSUFKQi8vLy8vd2RKY1FSQVFjRHFBQ2dDQUNJR0JFQWdBeUFIVFNBRElBWkxjZ1JBUVFBaEFnd0ZDd3NnQWhCa0lnTWdBVVlOQlNBRElRRU1BZ1ZCQUNFQ0N3c01BUXNnQ0NBQ1N5QUNRZi8vLy84SFNTQUJRWDlIY1hGRkJFQWdBVUYvUmdSQVFRQWhBZ3dDQlF3RUN3QUxJQVFnQW10QjZPb0FLQUlBSWdOcVFRQWdBMnR4SWdOQi8vLy8vd2RQRFFKQkFDQUNheUVFSUFNUVpFRi9SZ1JBSUFRUVpCcEJBQ0VDQlNBRElBSnFJUUlNQXdzTFFjVHFBRUhFNmdBb0FnQkJCSEkyQWdBTElBVkIvLy8vL3dkSkJFQWdCUkJrSWdGQkFCQmtJZ05KSUFGQmYwY2dBMEYvUjNGeElRVWdBeUFCYXlJRElBQkJLR3BMSWdRRVFDQURJUUlMSUFGQmYwWWdCRUVCYzNJZ0JVRUJjM0pGRFFFTERBRUxRYmpxQUVHNDZnQW9BZ0FnQW1vaUF6WUNBQ0FEUWJ6cUFDZ0NBRXNFUUVHODZnQWdBellDQUFzQ1FFR2c1d0FvQWdBaUJBUkFRY2pxQUNFREFrQUNRQU5BSUFFZ0F5Z0NBQ0lGSUFOQkJHb2lCeWdDQUNJR2FrWU5BU0FES0FJSUlnTU5BQXNNQVFzZ0F5Z0NERUVJY1VVRVFDQUVJQUZKSUFRZ0JVOXhCRUFnQnlBR0lBSnFOZ0lBUVpUbkFDZ0NBQ0VGUVFBZ0JFRUlhaUlEYTBFSGNTRUJRYURuQUNBRUlBTkJCM0VFZnlBQkJVRUFJZ0VMYWlJRE5nSUFRWlRuQUNBRklBSWdBV3RxSWdFMkFnQWdBeUFCUVFGeU5nSUVJQU1nQVdwQktEWUNCRUdrNXdCQjhPb0FLQUlBTmdJQURBUUxDd3NnQVVHWTV3QW9BZ0JKQkVCQm1PY0FJQUUyQWdBTElBRWdBbW9oQlVISTZnQWhBd0pBQWtBRFFDQURLQUlBSUFWR0RRRWdBeWdDQ0NJRERRQUxEQUVMSUFNb0FneEJDSEZGQkVBZ0F5QUJOZ0lBSUFOQkJHb2lBeUFES0FJQUlBSnFOZ0lBUVFBZ0FVRUlhaUlDYTBFSGNTRURRUUFnQlVFSWFpSUhhMEVIY1NFSklBRWdBa0VIY1FSL0lBTUZRUUFMYWlJSUlBQnFJUVlnQlNBSFFRZHhCSDhnQ1FWQkFBdHFJZ1VnQ0dzZ0FHc2hCeUFJSUFCQkEzSTJBZ1FDUUNBRklBUkdCRUJCbE9jQVFaVG5BQ2dDQUNBSGFpSUFOZ0lBUWFEbkFDQUdOZ0lBSUFZZ0FFRUJjallDQkFVZ0JVR2M1d0FvQWdCR0JFQkJrT2NBUVpEbkFDZ0NBQ0FIYWlJQU5nSUFRWnpuQUNBR05nSUFJQVlnQUVFQmNqWUNCQ0FHSUFCcUlBQTJBZ0FNQWdzZ0JTZ0NCQ0lBUVFOeFFRRkdCSDhnQUVGNGNTRUpJQUJCQTNZaEFnSkFJQUJCZ0FKSkJFQWdCU2dDRENJQUlBVW9BZ2dpQVVZRVFFR0k1d0JCaU9jQUtBSUFRUUVnQW5SQmYzTnhOZ0lBQlNBQklBQTJBZ3dnQUNBQk5nSUlDd1VnQlNnQ0dDRUVBa0FnQlNnQ0RDSUFJQVZHQkVBZ0JVRVFhaUlCUVFScUlnSW9BZ0FpQUFSQUlBSWhBUVVnQVNnQ0FDSUFSUVJBUVFBaEFBd0RDd3NEUUNBQVFSUnFJZ0lvQWdBaUF3UkFJQU1oQUNBQ0lRRU1BUXNnQUVFUWFpSUNLQUlBSWdNRVFDQURJUUFnQWlFQkRBRUxDeUFCUVFBMkFnQUZJQVVvQWdnaUFTQUFOZ0lNSUFBZ0FUWUNDQXNMSUFSRkRRRUNRQ0FGSUFVb0Fod2lBVUVDZEVHNDZRQnFJZ0lvQWdCR0JFQWdBaUFBTmdJQUlBQU5BVUdNNXdCQmpPY0FLQUlBUVFFZ0FYUkJmM054TmdJQURBTUZJQVJCRUdvZ0JDZ0NFQ0FGUjBFQ2RHb2dBRFlDQUNBQVJRMERDd3NnQUNBRU5nSVlJQVZCRUdvaUFpZ0NBQ0lCQkVBZ0FDQUJOZ0lRSUFFZ0FEWUNHQXNnQWlnQ0JDSUJSUTBCSUFBZ0FUWUNGQ0FCSUFBMkFoZ0xDeUFGSUFscUlRQWdDU0FIYWdVZ0JTRUFJQWNMSVFVZ0FFRUVhaUlBSUFBb0FnQkJmbkUyQWdBZ0JpQUZRUUZ5TmdJRUlBWWdCV29nQlRZQ0FDQUZRUU4ySVFFZ0JVR0FBa2tFUUNBQlFRTjBRYkRuQUdvaEFFR0k1d0FvQWdBaUFrRUJJQUYwSWdGeEJIOGdBRUVJYWlJQklRSWdBU2dDQUFWQmlPY0FJQUlnQVhJMkFnQWdBRUVJYWlFQ0lBQUxJUUVnQWlBR05nSUFJQUVnQmpZQ0RDQUdJQUUyQWdnZ0JpQUFOZ0lNREFJTEFuOGdCVUVJZGlJQUJIOUJIeUFGUWYvLy93ZExEUUVhSUFWQkRpQUFJQUJCZ1A0L2FrRVFka0VJY1NJQWRDSUJRWURnSDJwQkVIWkJCSEVpQWlBQWNpQUJJQUowSWdCQmdJQVBha0VRZGtFQ2NTSUJjbXNnQUNBQmRFRVBkbW9pQUVFSGFuWkJBWEVnQUVFQmRISUZRUUFMQ3lJQlFRSjBRYmpwQUdvaEFDQUdJQUUyQWh3Z0JrRVFhaUlDUVFBMkFnUWdBa0VBTmdJQVFZem5BQ2dDQUNJQ1FRRWdBWFFpQTNGRkJFQkJqT2NBSUFJZ0EzSTJBZ0FnQUNBR05nSUFJQVlnQURZQ0dDQUdJQVkyQWd3Z0JpQUdOZ0lJREFJTElBQW9BZ0FoQUVFWklBRkJBWFpySVFJZ0JTQUJRUjlHQkg5QkFBVWdBZ3QwSVFFQ1FBTkFJQUFvQWdSQmVIRWdCVVlOQVNBQlFRRjBJUUlnQUVFUWFpQUJRUjkyUVFKMGFpSUJLQUlBSWdNRVFDQUNJUUVnQXlFQURBRUxDeUFCSUFZMkFnQWdCaUFBTmdJWUlBWWdCallDRENBR0lBWTJBZ2dNQWdzZ0FFRUlhaUlCS0FJQUlnSWdCallDRENBQklBWTJBZ0FnQmlBQ05nSUlJQVlnQURZQ0RDQUdRUUEyQWhnTEN5QUtKQWdnQ0VFSWFnOExDMEhJNmdBaEF3TkFBa0FnQXlnQ0FDSUZJQVJOQkVBZ0JTQURLQUlFYWlJSUlBUkxEUUVMSUFNb0FnZ2hBd3dCQ3d0QkFDQUlRVkZxSWdOQkNHb2lCV3RCQjNFaEJ5QURJQVZCQjNFRWZ5QUhCVUVBQzJvaUF5QUVRUkJxSWd0SkJIOGdCQ0lEQlNBREMwRUlhaUVHSUFOQkdHb2hCU0FDUVZocUlReEJBQ0FCUVFocUlnbHJRUWR4SVFkQm9PY0FJQUVnQ1VFSGNRUi9JQWNGUVFBaUJ3dHFJZ2syQWdCQmxPY0FJQXdnQjJzaUJ6WUNBQ0FKSUFkQkFYSTJBZ1FnQ1NBSGFrRW9OZ0lFUWFUbkFFSHc2Z0FvQWdBMkFnQWdBMEVFYWlJSFFSczJBZ0FnQmtISTZnQXBBZ0EzQWdBZ0JrSFE2Z0FwQWdBM0FnaEJ5T29BSUFFMkFnQkJ6T29BSUFJMkFnQkIxT29BUVFBMkFnQkIwT29BSUFZMkFnQWdCU0VCQTBBZ0FVRUVhaUlDUVFjMkFnQWdBVUVJYWlBSVNRUkFJQUloQVF3QkN3c2dBeUFFUndSQUlBY2dCeWdDQUVGK2NUWUNBQ0FFSUFNZ0JHc2lCMEVCY2pZQ0JDQURJQWMyQWdBZ0IwRURkaUVDSUFkQmdBSkpCRUFnQWtFRGRFR3c1d0JxSVFGQmlPY0FLQUlBSWdOQkFTQUNkQ0lDY1FSL0lBRkJDR29pQWlFRElBSW9BZ0FGUVlqbkFDQURJQUp5TmdJQUlBRkJDR29oQXlBQkN5RUNJQU1nQkRZQ0FDQUNJQVEyQWd3Z0JDQUNOZ0lJSUFRZ0FUWUNEQXdEQ3lBSFFRaDJJZ0VFZnlBSFFmLy8vd2RMQkg5Qkh3VWdCMEVPSUFFZ0FVR0EvajlxUVJCMlFRaHhJZ0YwSWdKQmdPQWZha0VRZGtFRWNTSURJQUZ5SUFJZ0EzUWlBVUdBZ0E5cVFSQjJRUUp4SWdKeWF5QUJJQUowUVE5MmFpSUJRUWRxZGtFQmNTQUJRUUYwY2dzRlFRQUxJZ0pCQW5SQnVPa0FhaUVCSUFRZ0FqWUNIQ0FFUVFBMkFoUWdDMEVBTmdJQVFZem5BQ2dDQUNJRFFRRWdBblFpQlhGRkJFQkJqT2NBSUFNZ0JYSTJBZ0FnQVNBRU5nSUFJQVFnQVRZQ0dDQUVJQVEyQWd3Z0JDQUVOZ0lJREFNTElBRW9BZ0FoQVVFWklBSkJBWFpySVFNZ0J5QUNRUjlHQkg5QkFBVWdBd3QwSVFJQ1FBTkFJQUVvQWdSQmVIRWdCMFlOQVNBQ1FRRjBJUU1nQVVFUWFpQUNRUjkyUVFKMGFpSUNLQUlBSWdVRVFDQURJUUlnQlNFQkRBRUxDeUFDSUFRMkFnQWdCQ0FCTmdJWUlBUWdCRFlDRENBRUlBUTJBZ2dNQXdzZ0FVRUlhaUlDS0FJQUlnTWdCRFlDRENBQ0lBUTJBZ0FnQkNBRE5nSUlJQVFnQVRZQ0RDQUVRUUEyQWhnTEJVR1k1d0FvQWdBaUEwVWdBU0FEU1hJRVFFR1k1d0FnQVRZQ0FBdEJ5T29BSUFFMkFnQkJ6T29BSUFJMkFnQkIxT29BUVFBMkFnQkJyT2NBUWVEcUFDZ0NBRFlDQUVHbzV3QkJmellDQUVFQUlRTURRQ0FEUVFOMFFiRG5BR29pQlNBRk5nSU1JQVVnQlRZQ0NDQURRUUZxSWdOQklFY05BQXNnQWtGWWFpRURRUUFnQVVFSWFpSUZhMEVIY1NFQ1FhRG5BQ0FCSUFWQkIzRUVmeUFDQlVFQUlnSUxhaUlCTmdJQVFaVG5BQ0FESUFKcklnSTJBZ0FnQVNBQ1FRRnlOZ0lFSUFFZ0FtcEJLRFlDQkVHazV3QkI4T29BS0FJQU5nSUFDd3RCbE9jQUtBSUFJZ0VnQUVzRVFFR1U1d0FnQVNBQWF5SUNOZ0lBUWFEbkFFR2c1d0FvQWdBaUFTQUFhaUlETmdJQUlBTWdBa0VCY2pZQ0JDQUJJQUJCQTNJMkFnUWdDaVFJSUFGQkNHb1BDd3RCMER4QkREWUNBQ0FLSkFoQkFBdStEZ0VJZnlBQVJRUkFEd3RCbU9jQUtBSUFJUVFnQUVGNGFpSUJJQUJCZkdvb0FnQWlBRUY0Y1NJQ2FpRUZBbjhnQUVFQmNRUi9JQUVoQXlBQ0JTQUJLQUlBSVFNZ0FFRURjVVVFUUE4TElBRkJBQ0FEYTJvaUFDQUVTUVJBRHdzZ0F5QUNhaUVDSUFCQm5PY0FLQUlBUmdSQUlBVkJCR29pQVNnQ0FDSURRUU54UVFOSEJFQWdBQ0VESUFBaEFTQUNEQU1MUVpEbkFDQUNOZ0lBSUFFZ0EwRitjVFlDQUNBQUlBSkJBWEkyQWdRZ0FDQUNhaUFDTmdJQUR3c2dBMEVEZGlFRUlBTkJnQUpKQkVBZ0FDZ0NEQ0lCSUFBb0FnZ2lBMFlFUUVHSTV3QkJpT2NBS0FJQVFRRWdCSFJCZjNOeE5nSUFJQUFoQXlBQUlRRWdBZ3dEQlNBRElBRTJBZ3dnQVNBRE5nSUlJQUFoQXlBQUlRRWdBZ3dEQ3dBTElBQW9BaGdoQndKQUlBQW9BZ3dpQVNBQVJnUkFJQUJCRUdvaUEwRUVhaUlFS0FJQUlnRUVRQ0FFSVFNRklBTW9BZ0FpQVVVRVFFRUFJUUVNQXdzTEEwQWdBVUVVYWlJRUtBSUFJZ1lFUUNBR0lRRWdCQ0VEREFFTElBRkJFR29pQkNnQ0FDSUdCRUFnQmlFQklBUWhBd3dCQ3dzZ0EwRUFOZ0lBQlNBQUtBSUlJZ01nQVRZQ0RDQUJJQU0yQWdnTEN5QUhCSDhnQUNBQUtBSWNJZ05CQW5SQnVPa0FhaUlFS0FJQVJnUkFJQVFnQVRZQ0FDQUJSUVJBUVl6bkFFR001d0FvQWdCQkFTQURkRUYvYzNFMkFnQWdBQ0VESUFBaEFTQUNEQVFMQlNBSFFSQnFJQWNvQWhBZ0FFZEJBblJxSUFFMkFnQWdBVVVFUUNBQUlRTWdBQ0VCSUFJTUJBc0xJQUVnQnpZQ0dDQUFRUkJxSWdRb0FnQWlBd1JBSUFFZ0F6WUNFQ0FESUFFMkFoZ0xJQVFvQWdRaUF3Ui9JQUVnQXpZQ0ZDQURJQUUyQWhnZ0FDRURJQUFoQVNBQ0JTQUFJUU1nQUNFQklBSUxCU0FBSVFNZ0FDRUJJQUlMQ3dzaEFDQURJQVZQQkVBUEN5QUZRUVJxSWdRb0FnQWlBa0VCY1VVRVFBOExJQUpCQW5FRVFDQUVJQUpCZm5FMkFnQWdBU0FBUVFGeU5nSUVJQU1nQUdvZ0FEWUNBQ0FBSVFNRlFaem5BQ2dDQUNFRUlBVkJvT2NBS0FJQVJnUkFRWlRuQUVHVTV3QW9BZ0FnQUdvaUFEWUNBRUdnNXdBZ0FUWUNBQ0FCSUFCQkFYSTJBZ1FnQVNBRVJ3UkFEd3RCbk9jQVFRQTJBZ0JCa09jQVFRQTJBZ0FQQ3lBRklBUkdCRUJCa09jQVFaRG5BQ2dDQUNBQWFpSUFOZ0lBUVp6bkFDQUROZ0lBSUFFZ0FFRUJjallDQkNBRElBQnFJQUEyQWdBUEN5QUNRWGh4SUFCcUlRY2dBa0VEZGlFRUFrQWdBa0dBQWtrRVFDQUZLQUlNSWdBZ0JTZ0NDQ0lDUmdSQVFZam5BRUdJNXdBb0FnQkJBU0FFZEVGL2MzRTJBZ0FGSUFJZ0FEWUNEQ0FBSUFJMkFnZ0xCU0FGS0FJWUlRZ0NRQ0FGS0FJTUlnQWdCVVlFUUNBRlFSQnFJZ0pCQkdvaUJDZ0NBQ0lBQkVBZ0JDRUNCU0FDS0FJQUlnQkZCRUJCQUNFQURBTUxDd05BSUFCQkZHb2lCQ2dDQUNJR0JFQWdCaUVBSUFRaEFnd0JDeUFBUVJCcUlnUW9BZ0FpQmdSQUlBWWhBQ0FFSVFJTUFRc0xJQUpCQURZQ0FBVWdCU2dDQ0NJQ0lBQTJBZ3dnQUNBQ05nSUlDd3NnQ0FSQUlBVWdCU2dDSENJQ1FRSjBRYmpwQUdvaUJDZ0NBRVlFUUNBRUlBQTJBZ0FnQUVVRVFFR001d0JCak9jQUtBSUFRUUVnQW5SQmYzTnhOZ0lBREFRTEJTQUlRUkJxSUFnb0FoQWdCVWRCQW5ScUlBQTJBZ0FnQUVVTkF3c2dBQ0FJTmdJWUlBVkJFR29pQkNnQ0FDSUNCRUFnQUNBQ05nSVFJQUlnQURZQ0dBc2dCQ2dDQkNJQ0JFQWdBQ0FDTmdJVUlBSWdBRFlDR0FzTEN3c2dBU0FIUVFGeU5nSUVJQU1nQjJvZ0J6WUNBQ0FCUVp6bkFDZ0NBRVlFUUVHUTV3QWdCellDQUE4RklBY2hBd3NMSUFOQkEzWWhBaUFEUVlBQ1NRUkFJQUpCQTNSQnNPY0FhaUVBUVlqbkFDZ0NBQ0lEUVFFZ0FuUWlBbkVFZnlBQVFRaHFJZ01oQWlBREtBSUFCVUdJNXdBZ0F5QUNjallDQUNBQVFRaHFJUUlnQUFzaEF5QUNJQUUyQWdBZ0F5QUJOZ0lNSUFFZ0F6WUNDQ0FCSUFBMkFnd1BDeUFEUVFoMklnQUVmeUFEUWYvLy93ZExCSDlCSHdVZ0EwRU9JQUFnQUVHQS9qOXFRUkIyUVFoeElnQjBJZ0pCZ09BZmFrRVFka0VFY1NJRUlBQnlJQUlnQkhRaUFFR0FnQTlxUVJCMlFRSnhJZ0p5YXlBQUlBSjBRUTkyYWlJQVFRZHFka0VCY1NBQVFRRjBjZ3NGUVFBTElnSkJBblJCdU9rQWFpRUFJQUVnQWpZQ0hDQUJRUUEyQWhRZ0FVRUFOZ0lRQWtCQmpPY0FLQUlBSWdSQkFTQUNkQ0lHY1FSQUlBQW9BZ0FoQUVFWklBSkJBWFpySVFRZ0F5QUNRUjlHQkg5QkFBVWdCQXQwSVFJQ1FBTkFJQUFvQWdSQmVIRWdBMFlOQVNBQ1FRRjBJUVFnQUVFUWFpQUNRUjkyUVFKMGFpSUNLQUlBSWdZRVFDQUVJUUlnQmlFQURBRUxDeUFDSUFFMkFnQWdBU0FBTmdJWUlBRWdBVFlDRENBQklBRTJBZ2dNQWdzZ0FFRUlhaUlES0FJQUlnSWdBVFlDRENBRElBRTJBZ0FnQVNBQ05nSUlJQUVnQURZQ0RDQUJRUUEyQWhnRlFZem5BQ0FFSUFaeU5nSUFJQUFnQVRZQ0FDQUJJQUEyQWhnZ0FTQUJOZ0lNSUFFZ0FUWUNDQXNMUWFqbkFFR281d0FvQWdCQmYyb2lBRFlDQUNBQUJFQVBCVUhRNmdBaEFBc0RRQ0FBS0FJQUlnRkJDR29oQUNBQkRRQUxRYWpuQUVGL05nSUFDN0VJQVF0L0lBQkZCRUFnQVJBcER3c2dBVUcvZjBzRVFFSFFQRUVNTmdJQVFRQVBDeUFCUVF0cVFYaHhJUVFnQVVFTFNRUkFRUkFoQkFzZ0FFRjRhaUlJSUFCQmZHb2lCeWdDQUNJSlFYaHhJZ0pxSVFVQ1FDQUpRUU54QkVBZ0FpQUVUd1JBSUFJZ0JHc2lBVUVQVFFSQUlBQVBDeUFISUFsQkFYRWdCSEpCQW5JMkFnQWdDQ0FFYWlJQ0lBRkJBM0kyQWdRZ0FpQUJha0VFYWlJRElBTW9BZ0JCQVhJMkFnQWdBaUFCRUN3Z0FBOExJQVZCb09jQUtBSUFSZ1JBUVpUbkFDZ0NBQ0FDYWlJQ0lBUk5EUUlnQnlBSlFRRnhJQVJ5UVFKeU5nSUFJQWdnQkdvaUFTQUNJQVJySWdKQkFYSTJBZ1JCb09jQUlBRTJBZ0JCbE9jQUlBSTJBZ0FnQUE4TElBVkJuT2NBS0FJQVJnUkFRWkRuQUNnQ0FDQUNhaUlDSUFSSkRRSWdDVUVCY1NFRElBSWdCR3NpQVVFUFN3UkFJQWdnQkdvaUFpQUJhaUVHSUFjZ0F5QUVja0VDY2pZQ0FDQUNJQUZCQVhJMkFnUWdCaUFCTmdJQUlBWkJCR29pQXlBREtBSUFRWDV4TmdJQUJTQUhJQU1nQW5KQkFuSTJBZ0FnQ0NBQ2FrRUVhaUlCSUFFb0FnQkJBWEkyQWdCQkFDRUNRUUFoQVF0QmtPY0FJQUUyQWdCQm5PY0FJQUkyQWdBZ0FBOExJQVVvQWdRaUEwRUNjVVVFUUNBRFFYaHhJQUpxSWd3Z0JFOEVRQ0FNSUFScklRb2dBMEVEZGlFR0FrQWdBMEdBQWtrRVFDQUZLQUlNSWdFZ0JTZ0NDQ0lDUmdSQVFZam5BRUdJNXdBb0FnQkJBU0FHZEVGL2MzRTJBZ0FGSUFJZ0FUWUNEQ0FCSUFJMkFnZ0xCU0FGS0FJWUlRc0NRQ0FGS0FJTUlnRWdCVVlFUUNBRlFSQnFJZ0pCQkdvaUF5Z0NBQ0lCQkVBZ0F5RUNCU0FDS0FJQUlnRkZCRUJCQUNFQkRBTUxDd05BSUFGQkZHb2lBeWdDQUNJR0JFQWdCaUVCSUFNaEFnd0JDeUFCUVJCcUlnTW9BZ0FpQmdSQUlBWWhBU0FESVFJTUFRc0xJQUpCQURZQ0FBVWdCU2dDQ0NJQ0lBRTJBZ3dnQVNBQ05nSUlDd3NnQ3dSQUlBVWdCU2dDSENJQ1FRSjBRYmpwQUdvaUF5Z0NBRVlFUUNBRElBRTJBZ0FnQVVVRVFFR001d0JCak9jQUtBSUFRUUVnQW5SQmYzTnhOZ0lBREFRTEJTQUxRUkJxSUFzb0FoQWdCVWRCQW5ScUlBRTJBZ0FnQVVVTkF3c2dBU0FMTmdJWUlBVkJFR29pQXlnQ0FDSUNCRUFnQVNBQ05nSVFJQUlnQVRZQ0dBc2dBeWdDQkNJQ0JFQWdBU0FDTmdJVUlBSWdBVFlDR0FzTEN3c2dDVUVCY1NFQklBcEJFRWtFUUNBSElBd2dBWEpCQW5JMkFnQWdDQ0FNYWtFRWFpSUJJQUVvQWdCQkFYSTJBZ0FnQUE4RklBY2dBU0FFY2tFQ2NqWUNBQ0FJSUFScUlnRWdDa0VEY2pZQ0JDQUJJQXBxUVFScUlnSWdBaWdDQUVFQmNqWUNBQ0FCSUFvUUxDQUFEd3NBQ3dzRklBUkJnQUpKSUFJZ0JFRUVja2x5UlFSQUlBSWdCR3RCNk9vQUtBSUFRUUYwVFFSQUlBQVBDd3NMQ3lBQkVDa2lBa1VFUUVFQUR3c2dBaUFBSUFjb0FnQWlBMEY0Y1NBRFFRTnhCSDlCQkFWQkNBdHJJZ01nQVVrRWZ5QURCU0FCQ3hCbEdpQUFFQ29nQWd2bURBRUdmeUFBSUFGcUlRVUNRQ0FBS0FJRUlnTkJBWEZGQkVBZ0FDZ0NBQ0VDSUFOQkEzRkZCRUFQQ3lBQ0lBRnFJUUVnQUVFQUlBSnJhaUlBUVp6bkFDZ0NBRVlFUUNBRlFRUnFJZ0lvQWdBaUEwRURjVUVEUncwQ1FaRG5BQ0FCTmdJQUlBSWdBMEYrY1RZQ0FDQUFJQUZCQVhJMkFnUWdBQ0FCYWlBQk5nSUFEd3NnQWtFRGRpRUVJQUpCZ0FKSkJFQWdBQ2dDRENJQ0lBQW9BZ2dpQTBZRVFFR0k1d0JCaU9jQUtBSUFRUUVnQkhSQmYzTnhOZ0lBREFNRklBTWdBallDRENBQ0lBTTJBZ2dNQXdzQUN5QUFLQUlZSVFjQ1FDQUFLQUlNSWdJZ0FFWUVRQ0FBUVJCcUlnTkJCR29pQkNnQ0FDSUNCRUFnQkNFREJTQURLQUlBSWdKRkJFQkJBQ0VDREFNTEN3TkFJQUpCRkdvaUJDZ0NBQ0lHQkVBZ0JpRUNJQVFoQXd3QkN5QUNRUkJxSWdRb0FnQWlCZ1JBSUFZaEFpQUVJUU1NQVFzTElBTkJBRFlDQUFVZ0FDZ0NDQ0lESUFJMkFnd2dBaUFETmdJSUN3c2dCd1JBSUFBZ0FDZ0NIQ0lEUVFKMFFianBBR29pQkNnQ0FFWUVRQ0FFSUFJMkFnQWdBa1VFUUVHTTV3QkJqT2NBS0FJQVFRRWdBM1JCZjNOeE5nSUFEQVFMQlNBSFFSQnFJQWNvQWhBZ0FFZEJBblJxSUFJMkFnQWdBa1VOQXdzZ0FpQUhOZ0lZSUFCQkVHb2lCQ2dDQUNJREJFQWdBaUFETmdJUUlBTWdBallDR0FzZ0JDZ0NCQ0lEQkVBZ0FpQUROZ0lVSUFNZ0FqWUNHQXNMQ3dzZ0JVRUVhaUlES0FJQUlnSkJBbkVFUUNBRElBSkJmbkUyQWdBZ0FDQUJRUUZ5TmdJRUlBQWdBV29nQVRZQ0FDQUJJUUlGUVp6bkFDZ0NBQ0VESUFWQm9PY0FLQUlBUmdSQVFaVG5BRUdVNXdBb0FnQWdBV29pQVRZQ0FFR2c1d0FnQURZQ0FDQUFJQUZCQVhJMkFnUWdBQ0FEUndSQUR3dEJuT2NBUVFBMkFnQkJrT2NBUVFBMkFnQVBDeUFGSUFOR0JFQkJrT2NBUVpEbkFDZ0NBQ0FCYWlJQk5nSUFRWnpuQUNBQU5nSUFJQUFnQVVFQmNqWUNCQ0FBSUFGcUlBRTJBZ0FQQ3lBQ1FYaHhJQUZxSVFZZ0FrRURkaUVEQWtBZ0FrR0FBa2tFUUNBRktBSU1JZ0VnQlNnQ0NDSUNSZ1JBUVlqbkFFR0k1d0FvQWdCQkFTQURkRUYvYzNFMkFnQUZJQUlnQVRZQ0RDQUJJQUkyQWdnTEJTQUZLQUlZSVFjQ1FDQUZLQUlNSWdFZ0JVWUVRQ0FGUVJCcUlnSkJCR29pQXlnQ0FDSUJCRUFnQXlFQ0JTQUNLQUlBSWdGRkJFQkJBQ0VCREFNTEN3TkFJQUZCRkdvaUF5Z0NBQ0lFQkVBZ0JDRUJJQU1oQWd3QkN5QUJRUkJxSWdNb0FnQWlCQVJBSUFRaEFTQURJUUlNQVFzTElBSkJBRFlDQUFVZ0JTZ0NDQ0lDSUFFMkFnd2dBU0FDTmdJSUN3c2dCd1JBSUFVZ0JTZ0NIQ0lDUVFKMFFianBBR29pQXlnQ0FFWUVRQ0FESUFFMkFnQWdBVVVFUUVHTTV3QkJqT2NBS0FJQVFRRWdBblJCZjNOeE5nSUFEQVFMQlNBSFFSQnFJQWNvQWhBZ0JVZEJBblJxSUFFMkFnQWdBVVVOQXdzZ0FTQUhOZ0lZSUFWQkVHb2lBeWdDQUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NCQ0lDQkVBZ0FTQUNOZ0lVSUFJZ0FUWUNHQXNMQ3dzZ0FDQUdRUUZ5TmdJRUlBQWdCbW9nQmpZQ0FDQUFRWnpuQUNnQ0FFWUVRRUdRNXdBZ0JqWUNBQThGSUFZaEFnc0xJQUpCQTNZaEF5QUNRWUFDU1FSQUlBTkJBM1JCc09jQWFpRUJRWWpuQUNnQ0FDSUNRUUVnQTNRaUEzRUVmeUFCUVFocUlnSWhBeUFDS0FJQUJVR0k1d0FnQWlBRGNqWUNBQ0FCUVFocUlRTWdBUXNoQWlBRElBQTJBZ0FnQWlBQU5nSU1JQUFnQWpZQ0NDQUFJQUUyQWd3UEN5QUNRUWgySWdFRWZ5QUNRZi8vL3dkTEJIOUJId1VnQWtFT0lBRWdBVUdBL2o5cVFSQjJRUWh4SWdGMElnTkJnT0FmYWtFUWRrRUVjU0lFSUFGeUlBTWdCSFFpQVVHQWdBOXFRUkIyUVFKeElnTnlheUFCSUFOMFFROTJhaUlCUVFkcWRrRUJjU0FCUVFGMGNnc0ZRUUFMSWdOQkFuUkJ1T2tBYWlFQklBQWdBellDSENBQVFRQTJBaFFnQUVFQU5nSVFRWXpuQUNnQ0FDSUVRUUVnQTNRaUJuRkZCRUJCak9jQUlBUWdCbkkyQWdBZ0FTQUFOZ0lBSUFBZ0FUWUNHQ0FBSUFBMkFnd2dBQ0FBTmdJSUR3c2dBU2dDQUNFQlFSa2dBMEVCZG1zaEJDQUNJQU5CSDBZRWYwRUFCU0FFQzNRaEF3SkFBMEFnQVNnQ0JFRjRjU0FDUmcwQklBTkJBWFFoQkNBQlFSQnFJQU5CSDNaQkFuUnFJZ01vQWdBaUJnUkFJQVFoQXlBR0lRRU1BUXNMSUFNZ0FEWUNBQ0FBSUFFMkFoZ2dBQ0FBTmdJTUlBQWdBRFlDQ0E4TElBRkJDR29pQWlnQ0FDSURJQUEyQWd3Z0FpQUFOZ0lBSUFBZ0F6WUNDQ0FBSUFFMkFnd2dBRUVBTmdJWUMwUUJBbjhqQ0NFQkl3aEJFR29rQ0NBQklnSWdBQ2dDUENJQU5nSUFRUVlnQWhBR0lnQkJnR0JMQkg5QjBEeEJBQ0FBYXpZQ0FFRi9CU0FBQ3lFQUlBRWtDQ0FBQzNrQkFuOGpDQ0VFSXdoQklHb2tDQ0FFSWdNZ0FDZ0NQRFlDQUNBRFFRQTJBZ1FnQXlBQk5nSUlJQU1nQkVFVWFpSUFOZ0lNSUFNZ0FqWUNFRUdNQVNBREVBd2lBVUdBWUVzRWYwSFFQRUVBSUFGck5nSUFRWDhGSUFFTFFRQklCSDhnQUVGL05nSUFRWDhGSUFBb0FnQUxJUUFnQkNRSUlBQUxCUUJCMER3THFBTUJDMzhqQ0NFRkl3aEJNR29rQ0NBRlFSQnFJUVlnQlVFZ2FpSURJQUJCSEdvaUNTZ0NBQ0lFTmdJQUlBTWdBRUVVYWlJS0tBSUFJQVJySWdRMkFnUWdBeUFCTmdJSUlBTWdBallDRENBRklnRWdBRUU4YWlJTUtBSUFOZ0lBSUFFZ0F6WUNCQ0FCUVFJMkFnZ0NRQUpBSUFRZ0Ftb2lCRUdTQVNBQkVBNGlBVUdBWUVzRWYwSFFQRUVBSUFGck5nSUFRWDhGSUFFTElnRkdEUUJCQWlFSEEwQWdBVUVBVGdSQUlBUWdBV3NoQkNBRFFRaHFJUWdnQVNBREtBSUVJZzFMSWdzRVFDQUlJUU1MSUF0QkgzUkJIM1VnQjJvaEJ5QURJQU1vQWdBZ0FTQUxCSDhnRFFWQkFBdHJJZ0ZxTmdJQUlBTkJCR29pQ0NBSUtBSUFJQUZyTmdJQUlBWWdEQ2dDQURZQ0FDQUdJQU0yQWdRZ0JpQUhOZ0lJSUFSQmtnRWdCaEFPSWdGQmdHQkxCSDlCMER4QkFDQUJhellDQUVGL0JTQUJDeUlCUmcwQ0RBRUxDeUFBUVFBMkFoQWdDVUVBTmdJQUlBcEJBRFlDQUNBQUlBQW9BZ0JCSUhJMkFnQWdCMEVDUmdSL1FRQUZJQUlnQXlnQ0JHc0xJUUlNQVFzZ0FDQUFLQUlzSWdFZ0FDZ0NNR28yQWhBZ0NTQUJOZ0lBSUFvZ0FUWUNBQXNnQlNRSUlBSUxhQUVEZnlNSUlRUWpDRUVnYWlRSUlBUWhBeUFFUVJCcUlRVWdBRUVFTmdJa0lBQW9BZ0JCd0FCeFJRUkFJQU1nQUNnQ1BEWUNBQ0FEUVpPb0FUWUNCQ0FESUFVMkFnaEJOaUFERUFzRVFDQUFRWDg2QUVzTEN5QUFJQUVnQWhBd0lRQWdCQ1FJSUFBTEJnQkIrT29BQzE0QkFuOGdBQ3dBQUNJQ1JTQUNJQUVzQUFBaUEwZHlCRUFnQXlFQUlBSWhBUVVEUUNBQVFRRnFJZ0FzQUFBaUFrVWdBaUFCUVFGcUlnRXNBQUFpQTBkeUJFQWdBeUVBSUFJaEFRVU1BUXNMQ3lBQlFmOEJjU0FBUWY4QmNXc0xhd0VDZnlBQVFjb0FhaUlDTEFBQUlRRWdBaUFCUWY4QmFpQUJjam9BQUNBQUtBSUFJZ0ZCQ0hFRWZ5QUFJQUZCSUhJMkFnQkJmd1VnQUVFQU5nSUlJQUJCQURZQ0JDQUFJQUFvQWl3aUFUWUNIQ0FBSUFFMkFoUWdBQ0FCSUFBb0FqQnFOZ0lRUVFBTElnQUw2QUVCQkg4Q1FBSkFJQUpCRUdvaUJDZ0NBQ0lERFFBZ0FoQTBCRUJCQUNFQ0JTQUVLQUlBSVFNTUFRc01BUXNnQXlBQ1FSUnFJZ1VvQWdBaUJHc2dBVWtFUUNBQ0lBQWdBU0FDS0FJa1FRZHhRUUpxRVFFQUlRSU1BUXNDZnlBQ0xBQkxRWDlLQkg4Z0FTRURBMEJCQUNBRFJRMENHaUFBSUFOQmYyb2lCbW9zQUFCQkNrY0VRQ0FHSVFNTUFRc0xJQUlnQUNBRElBSW9BaVJCQjNGQkFtb1JBUUFpQWlBRFNRMENJQVVvQWdBaEJDQUJJQU5ySVFFZ0FDQURhaUVBSUFNRlFRQUxDeUVDSUFRZ0FDQUJFR1VhSUFVZ0JTZ0NBQ0FCYWpZQ0FDQUNJQUZxSVFJTElBSUxFQUFnQUFSL0lBQWdBUkJhQlVFQUN3dWZGd01jZndGK0FYd2pDQ0VUSXdoQm9BSnFKQWdnRXlFV0lCTkJFR29oRnlBQUtBSk1HaUFBUVFScUlRVWdBRUhrQUdvaERTQUFRZXdBYWlFUklBQkJDR29oRWlBVFFSRnFJZzVCQ21vaEdDQU9RU0ZxSVJvZ0UwRUlhaUlWUVFScUlSc2dEa0V1YWlFY0lBNUIzZ0JxSVIwZ0RrRUJhaUVaUVNVaEIwRUFJUVpCMmM4QUlRSkJBQ0VFUVFBaENBSkFBa0FDUUFKQUEwQUNRQ0FIUWY4QmNTSURRU0JHSUFOQmQycEJCVWx5Qkg4RFFDQUNRUUZxSWdjdEFBQWlBMEVnUmlBRFFYZHFRUVZKY2dSQUlBY2hBZ3dCQ3dzZ0FFRUFFRGdEUUNBRktBSUFJZ2NnRFNnQ0FFa0VmeUFGSUFkQkFXbzJBZ0FnQnkwQUFBVWdBQkE1Q3lJRFFTQkdJQU5CZDJwQkJVbHlEUUFMSUEwb0FnQUVRQ0FGSUFVb0FnQkJmMm9pQnpZQ0FBVWdCU2dDQUNFSEN5QVJLQUlBSUFScUlBZHFJQklvQWdCckJRSkFJQWRCL3dGeFFTVkdJZ3NFUUFKL0FrQUNRQUpBSUFKQkFXb2lCeXdBQUNJS1FTVnJEZ1lBQWdJQ0FnRUNDd3dFQzBFQUlRb2dBa0VDYWd3QkN5QUtRZjhCY1VGUWFpSUxRUXBKQkVBZ0Fpd0FBa0VrUmdSQUlBRWdDeEE2SVFvZ0FrRURhZ3dDQ3dzZ0FTZ0NBRUVEYWtGOGNTSUNLQUlBSVFvZ0FTQUNRUVJxTmdJQUlBY0xJZ0lzQUFBaUIwSC9BWEVpQzBGUWFrRUtTUVJBSUFzaEIwRUFJUXNEUUNBTFFRcHNRVkJxSUFkcUlRc2dBa0VCYWlJQ0xBQUFJZ05CL3dGeElnZEJVR3BCQ2trTkFDQURJUWNMQlVFQUlRc0xJQXBCQUVjaEVDQUNRUUZxSVFNZ0IwSC9BWEZCN1FCR0lnd0VRRUVBSVFnTElBd0VRRUVBSVFZTElCQWdESEVoQnlBTUJIOGdBd1VnQWlJREMwRUJhaUVDQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FETEFBQVFjRUFhdzQ2QlFZRkJnVUZCUVlHQmdZRUJnWUdCZ1lHQlFZR0JnWUZCZ1lGQmdZR0JnWUZCZ1VGQlFVRkFBVUNCZ0VHQlFVRkJnWUZBd1VHQmdVR0F3WUxJQU5CQW1vaEF5QUNMQUFBUWVnQVJpSU1CRUFnQXlFQ0N5QU1CSDlCZmdWQmZ3c2hBd3dHQ3lBRFFRSnFJUU1nQWl3QUFFSHNBRVlpREFSQUlBTWhBZ3NnREFSL1FRTUZRUUVMSVFNTUJRdEJBeUVEREFRTFFRRWhBd3dEQzBFQ0lRTU1BZ3NnQXlFQ1FRQWhBd3dCQ3d3SEN5QUNMUUFBSWd4QkwzRkJBMFloRHlBTVFTQnlJUWtnRDBVRVFDQU1JUWtMSUE4RWYwRUJCU0FEQ3lFUEFrQUNRQUpBQWtBQ1FDQUpRZjhCY1NJVVFSaDBRUmgxUWRzQWF3NFVBUU1EQXdNREF3TUFBd01EQXdNREF3TURBd0lEQ3lBRUlRd2dDMEVCVEFSQVFRRWhDd3NNQXdzZ0JDRU1EQUlMSUFvZ0R5QUVyQkE3REFVTElBQkJBQkE0QTBBZ0JTZ0NBQ0lESUEwb0FnQkpCSDhnQlNBRFFRRnFOZ0lBSUFNdEFBQUZJQUFRT1FzaUEwRWdSaUFEUVhkcVFRVkpjZzBBQ3lBTktBSUFCRUFnQlNBRktBSUFRWDlxSWdNMkFnQUZJQVVvQWdBaEF3c2dFU2dDQUNBRWFpQURhaUFTS0FJQWF5RU1DeUFBSUFzUU9DQUZLQUlBSWdRZ0RTZ0NBQ0lEU1FSQUlBVWdCRUVCYWpZQ0FBVWdBQkE1UVFCSURRY2dEU2dDQUNFREN5QURCRUFnQlNBRktBSUFRWDlxTmdJQUN3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQVVRUmgwUVJoMVFjRUFhdzQ0QlFZR0JnVUZCUVlHQmdZR0JnWUdCZ1lHQmdZR0JnWUJCZ1lBQmdZR0JnWUZCZ0FEQlFVRkJnUUdCZ1lHQmdJQkJnWUFCZ01HQmdFR0N5QUpRZU1BUmlFVUFrQWdDVUVRY2tIekFFWUVRQ0FaUVg5QmdBSVFZeG9nRGtFQU9nQUFJQWxCOHdCR0JIOGdHa0VBT2dBQUlCaEJBRFlBQUNBWVFRQTZBQVFnQWdVZ0Fnc2hCQVVnQWtFQ2FpRUVJQUpCQVdvaUVDd0FBRUhlQUVZaUFpRUpJQmtnQWtHQUFoQmpHaUFPUVFBNkFBQUNRQUpBQWtBQ1FBSkFJQUlFZnlBRUJTQVFDeUlDTEFBQVFTMXJEakVBQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQkFnc2dIQ0VFREFJTElCMGhCQXdCQ3lBSlFRRnpRZjhCY1NFUURBRUxJQVFnQ1VFQmMwSC9BWEVpRURvQUFDQUNRUUZxSVFJTElBSWhCQU5BQWtBQ1FBSkFBa0FnQkN3QUFDSUNEbDRBQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01DQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNQkF3c01GQXNNQkFzQ1FBSkFJQVJCQVdvaUNTd0FBQ0lDRGw0QUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFBUXRCTFNFQ0RBRUxJQVJCZjJvdEFBQWlCQ0FDUWY4QmNVZ0VRQ0FFUWY4QmNTRUNBMEFnRGlBQ1FRRnFJZ0pxSUJBNkFBQWdBaUFKTEFBQUlnUkIvd0Z4U0EwQUlBUWhBaUFKSVFRTEJTQUpJUVFMQ3lBT0lBSkIvd0Z4UVFGcWFpQVFPZ0FBSUFSQkFXb2hCQXdBQ3dBTEN5QUxRUUZxSVFJZ0ZFVUVRRUVmSVFJTEFrQWdEMEVCUmlJUEJFQWdCd1JBSUFKQkFuUVFLU0lHUlFSQVFRQWhCa0VBSVFnTUV3c0ZJQW9oQmdzZ0ZVRUFOZ0lBSUJ0QkFEWUNBRUVBSVFnRFFBSkFJQVpGSVFrRFFBTkFBa0FnRGlBRktBSUFJZ01nRFNnQ0FFa0VmeUFGSUFOQkFXbzJBZ0FnQXkwQUFBVWdBQkE1Q3lJRFFRRnFhaXdBQUVVTkF5QVhJQU02QUFBQ1FBSkFBa0FDUUNBV0lCY2dGUkE4UVg1ckRnSUJBQUlMUVFBaENBd1lDd3dCQ3d3QkN3d0JDd3NnQ1VVRVFDQUdJQWhCQW5ScUlCWW9BZ0EyQWdBZ0NFRUJhaUVJQ3lBSElBZ2dBa1p4UlEwQUN5QUdJQUpCQVhSQkFYSWlBMEVDZEJBcklna0VRQ0FDSVFnZ0NTRUdJQU1oQWd3Q0JVRUFJUWdNRkFzQUN3c2dGU0lDQkg4Z0FpZ0NBRVVGUVFFTFFRRnhCRUFnQmlFQ0lBZ2hBMEVBSVFnRlFRQWhDQXdSQ3dVZ0J3UkFJQUlRS1NJSUJFQkJBQ0VHQlVFQUlRWkJBQ0VJREJNTEEwQURRQ0FPSUFVb0FnQWlBeUFOS0FJQVNRUi9JQVVnQTBFQmFqWUNBQ0FETFFBQUJTQUFFRGtMSWdOQkFXcHFMQUFBUlFSQVFRQWhBaUFHSVFOQkFDRUdEQVVMSUFnZ0Jtb2dBem9BQUNBR1FRRnFJZ1lnQWtjTkFBc2dDQ0FDUVFGMFFRRnlJZ01RS3lJSkJFQWdBaUVHSUFNaEFpQUpJUWdNQVFWQkFDRUdEQlFMQUFzQUN5QUtCRUFnQXlFQ1FRQWhBd05BSUE0Z0JTZ0NBQ0lJSUFKSkJIOGdCU0FJUVFGcU5nSUFJQWd0QUFBRklBQVFPUXNpQWtFQmFtb3NBQUFFUUNBS0lBTnFJQUk2QUFBZ0RTZ0NBQ0VDSUFOQkFXb2hBd3dCQlVFQUlRSWdDaUVJUVFBaEJnc0xCUU5BSUE0Z0JTZ0NBQ0lDSUFOSkJIOGdCU0FDUVFGcU5nSUFJQUl0QUFBRklBQVFPUXRCQVdwcUxBQUFCRUFnRFNnQ0FDRUREQUVGUVFBaEFrRUFJUU5CQUNFSVFRQWhCZ3NMQ3dzTElBMG9BZ0FFUUNBRklBVW9BZ0JCZjJvaUNUWUNBQVVnQlNnQ0FDRUpDeUFKSUJJb0FnQnJJQkVvQWdCcUlnbEZCRUFnQWlFR0RBOExJQWtnQzBZZ0ZFRUJjM0pGQkVBZ0FpRUdEQThMSUFjRVFDQVBCRUFnQ2lBR05nSUFCU0FLSUFnMkFnQUxDeUFVQkg4Z0FpRUdJQVFGSUFZRVFDQUdJQU5CQW5ScVFRQTJBZ0FMSUFnRWZ5QUlJQU5xUVFBNkFBQWdBaUVHSUFRRklBSWhCa0VBSVFnZ0JBc0xJUUlNQnd0QkVDRUVEQVVMUVFnaEJBd0VDMEVLSVFRTUF3dEJBQ0VFREFJTElBQWdEeEErSVI4Z0VTZ0NBQ0FTS0FJQUlBVW9BZ0JyUmcwSklBb0VRQUpBQWtBQ1FBSkFJQThPQXdBQkFnTUxJQW9nSDdZNEFnQU1CZ3NnQ2lBZk9RTUFEQVVMSUFvZ0h6a0RBQXdFQ3d3REN3d0NDd3dCQ3lBQUlBUVFQU0VlSUJFb0FnQWdFaWdDQUNBRktBSUFhMFlOQnlBUUlBbEI4QUJHY1FSQUlBb2dIajRDQUFVZ0NpQVBJQjRRT3dzTElCRW9BZ0FnREdvZ0JTZ0NBR29nRWlnQ0FHc2hCQXdEQ3dzZ0FFRUFFRGdnQlNnQ0FDSUhJQTBvQWdCSkJIOGdCU0FIUVFGcU5nSUFJQWN0QUFBRklBQVFPUXNnQWlBTGFpSUNMUUFBUncwRElBUkJBV29MSVFRTElBSkJBV29pQWl3QUFDSUhEUUFMREFNTElBMG9BZ0FFUUNBRklBVW9BZ0JCZjJvMkFnQUxEQUlMSUFjTkFBd0JDeUFJRUNvZ0JoQXFDeUFUSkFnTFFBRURmeUFBSUFFMkFtZ2dBQ0FBS0FJSUlnTWdBQ2dDQkNJQ2F5SUVOZ0pzSUFJZ0FXb2hBaUFBSUFGQkFFY2dCQ0FCU25FRWZ5QUNCU0FEQ3pZQ1pBdk9BUUVGZndKQUFrQWdBRUhvQUdvaUFpZ0NBQ0lCQkVBZ0FDZ0NiQ0FCVGcwQkN5QUFFRWNpQkVFQVNBMEFJQUJCQ0dvaEFTQUFJQUlvQWdBaUF3Ui9JQUVvQWdBaUFpRUJJQUlnQUNnQ0JDSUNheUFESUFCQjdBQnFJZ01vQWdCcklnVklCSDhnQVFVZ0FpQUZRWDlxYWdzRklBQW9BZ1FoQWlBQVFld0FhaUVESUFFb0FnQWlBUXNpQlRZQ1pDQUJCRUFnQXlBQlFRRnFJQUpySUFNb0FnQnFOZ0lBQ3lBQ1FYOXFJZ0F0QUFBZ0JFY0VRQ0FBSUFRNkFBQUxEQUVMSUFCQkFEWUNaRUYvSVFRTElBUUxWUUVEZnlNSUlRSWpDRUVRYWlRSUlBSWlBeUFBS0FJQU5nSUFBMEFnQXlnQ0FFRURha0Y4Y1NJQUtBSUFJUVFnQXlBQVFRUnFOZ0lBSUFGQmYyb2hBQ0FCUVFGTEJFQWdBQ0VCREFFTEN5QUNKQWdnQkF0VkFBSkFJQUFFUUFKQUFrQUNRQUpBQWtBQ1FDQUJRWDVyRGdZQUFRSURCUVFGQ3lBQUlBSThBQUFNQmdzZ0FDQUNQUUVBREFVTElBQWdBajRDQUF3RUN5QUFJQUkrQWdBTUF3c2dBQ0FDTndNQUN3c0xDNDBDQVFOL0l3Z2hCU01JUVJCcUpBZ2dCU0VESUFJRWZ5QUNCVUc0NndBaUFnc29BZ0FoQkFKL0FrQWdBUVIvSUFBRVFDQUFJUU1MSUFFc0FBQWhBQ0FFQkVBZ0FFSC9BWEVpQUVFRGRpSUJRWEJxSUFFZ0JFRWFkV3B5UVFkTERRSWdBRUdBZjJvZ0JFRUdkSElpQUVFQVRnUkFJQUpCQURZQ0FDQURJQUEyQWdCQkFRd0VDd1VnQUVGL1NnUkFJQU1nQUVIL0FYRTJBZ0FnQUVFQVJ3d0VDMEhNUFNnQ0FDZ0NBRVVFUUNBRElBQkIvNzhEY1RZQ0FFRUJEQVFMSUFCQi93RnhRYjUrYWlJQVFUSkxEUUlnQUVFQ2RFR0VQMm9vQWdBaEFBc2dBaUFBTmdJQVFYNEZJQVFOQVVFQUN3d0JDeUFDUVFBMkFnQkIwRHhCMUFBMkFnQkJmd3NoQUNBRkpBZ2dBQXZSQ2dJSWZ3VitBbjRnQVVFa1N3UitRZEE4UVJZMkFnQkNBQVVnQUVFRWFpRURJQUJCNUFCcUlRVURRQ0FES0FJQUlnSWdCU2dDQUVrRWZ5QURJQUpCQVdvMkFnQWdBaTBBQUFVZ0FCQTVDeUlDSWdSQklFWWdCRUYzYWtFRlNYSU5BQXNDUUFKQUFrQWdBa0VyYXc0REFBRUFBUXNnQWtFdFJrRWZkRUVmZFNFSUlBTW9BZ0FpQWlBRktBSUFTUVJBSUFNZ0FrRUJhallDQUNBQ0xRQUFJUUlNQWdVZ0FCQTVJUUlNQWdzQUMwRUFJUWdMSUFGRklRUUNRQUpBQWtBQ1FDQUJRUkJ5UVJCR0lBSkJNRVp4QkVBZ0F5Z0NBQ0lDSUFVb0FnQkpCSDhnQXlBQ1FRRnFOZ0lBSUFJdEFBQUZJQUFRT1FzaUFrRWdja0g0QUVjRVFDQUVCRUJCQ0NFQkRBUUZEQU1MQUFzZ0F5Z0NBQ0lCSUFVb0FnQkpCSDhnQXlBQlFRRnFOZ0lBSUFFdEFBQUZJQUFRT1FzaUFrSHowUUJxTFFBQVFROUtCRUFnQlNnQ0FBUkFJQU1nQXlnQ0FFRi9hallDQUFzZ0FFRUFFRGhDQUF3SEJVRVFJUUVNQXdzQUJTQUNRZlBSQUdvdEFBQWdCQVIvUVFvaUFRVWdBUXRQQkVBZ0JTZ0NBQVJBSUFNZ0F5Z0NBRUYvYWpZQ0FBc2dBRUVBRURoQjBEeEJGallDQUVJQURBY0xDd3NnQVVFS1J3MEFJQUpCVUdvaUFVRUtTUVIvUVFBaEFnTkFJQUpCQ213Z0FXb2hBaUFES0FJQUlnRWdCU2dDQUVrRWZ5QURJQUZCQVdvMkFnQWdBUzBBQUFVZ0FCQTVDeUlFUVZCcUlnRkJDa2tnQWtHWnMrYk1BVWx4RFFBTElBS3RJUW9nQkFWQ0FDRUtJQUlMSWdGQlVHb2lBa0VLU1FSQUEwQWdDa0lLZmlJTElBS3NJZ3hDZjRWV0JFQkJDaUVDREFRTElBc2dESHdoQ2lBREtBSUFJZ0VnQlNnQ0FFa0VmeUFESUFGQkFXbzJBZ0FnQVMwQUFBVWdBQkE1Q3lJQlFWQnFJZ0pCQ2trZ0NrS2FzK2JNbWJQbXpCbFVjUTBBQ3lBQ1FRbE5CRUJCQ2lFQ0RBTUxDd3dDQ3lBQlFYOXFJQUZ4UlFSQUlBRkJGMnhCQlhaQkIzRkI4OU1BYWl3QUFDRUpJQUpCODlFQWFpd0FBQ0lFUWY4QmNTSUdJQUZKQkg0Z0JpRUNRUUFoQndOQUlBSWdCeUFKZEhJaUIwR0FnSURBQUVrZ0F5Z0NBQ0lDSUFVb0FnQkpCSDhnQXlBQ1FRRnFOZ0lBSUFJdEFBQUZJQUFRT1FzaUJrSHowUUJxTEFBQUlnUkIvd0Z4SWdJZ0FVbHhEUUFMSUFldEJTQUNJUVpDQUFzaENpQUVRZjhCY1NBQlR5QUtRbjhnQ2EwaUM0Z2lERlp5QkVBZ0FTRUNJQVloQVF3Q0N3TkFJQU1vQWdBaUFpQUZLQUlBU1FSL0lBTWdBa0VCYWpZQ0FDQUNMUUFBQlNBQUVEa0xJZ1pCODlFQWFpd0FBQ0lDUWY4QmNTQUJUeUFFUWY4QmNhMGdDaUFMaG9RaUNpQU1WbklFUUNBQklRSWdCaUVCREFNRklBSWhCQXdCQ3dBTEFBc2dBa0h6MFFCcUxBQUFJZ1pCL3dGeElnUWdBVWtFZmlBRUlRSkJBQ0VIQTBBZ0FpQUhJQUZzYWlJSFFjZmo4VGhKSUFNb0FnQWlBaUFGS0FJQVNRUi9JQU1nQWtFQmFqWUNBQ0FDTFFBQUJTQUFFRGtMSWdSQjg5RUFhaXdBQUNJR1FmOEJjU0lDSUFGSmNRMEFDeUFIclFVZ0FpRUVRZ0FMSVFvZ0FhMGhDeUFHUWY4QmNTQUJTUVJBUW44Z0M0QWhEQU5BSUFvZ0RGWUVRQ0FCSVFJZ0JDRUJEQU1MSUFvZ0MzNGlEU0FHUWY4QmNhMGlEa0ovaFZZRVFDQUJJUUlnQkNFQkRBTUxJQTRnRFh3aENpQURLQUlBSWdJZ0JTZ0NBRWtFZnlBRElBSkJBV28yQWdBZ0FpMEFBQVVnQUJBNUN5SUVRZlBSQUdvc0FBQWlCa0gvQVhFZ0FVa05BQ0FCSVFJZ0JDRUJDd1VnQVNFQ0lBUWhBUXNMSUFGQjg5RUFhaTBBQUNBQ1NRUkFBMEFnQXlnQ0FDSUJJQVVvQWdCSkJIOGdBeUFCUVFGcU5nSUFJQUV0QUFBRklBQVFPUXRCODlFQWFpMEFBQ0FDU1EwQUMwSFFQRUVpTmdJQVFRQWhDRUovSVFvTEN5QUZLQUlBQkVBZ0F5QURLQUlBUVg5cU5nSUFDeUFLSUFpc0lncUZJQXA5Q3dzTHh3WUJCbjhDZkFKQUFrQUNRQUpBQWtBZ0FRNERBQUVDQXd0QkdDRUZRZXQrSVFZTUF3dEJOU0VGUWM1M0lRWU1BZ3RCTlNFRlFjNTNJUVlNQVF0RUFBQUFBQUFBQUFBTUFRc2dBRUVFYWlFQ0lBQkI1QUJxSVFRRFFDQUNLQUlBSWdFZ0JDZ0NBRWtFZnlBQ0lBRkJBV28yQWdBZ0FTMEFBQVVnQUJBNUN5SUJJZ05CSUVZZ0EwRjNha0VGU1hJTkFBc0NRQUpBQWtBZ0FVRXJhdzREQUFFQUFRdEJBU0FCUVMxR1FRRjBheUVISUFJb0FnQWlBU0FFS0FJQVNRUkFJQUlnQVVFQmFqWUNBQ0FCTFFBQUlRRU1BZ1VnQUJBNUlRRU1BZ3NBQzBFQklRY0xRUUFoQXdOQUlBRkJJSElnQTBIcDBRQnFMQUFBUmdSQUlBTkJCMGtFUUNBQ0tBSUFJZ0VnQkNnQ0FFa0VmeUFDSUFGQkFXbzJBZ0FnQVMwQUFBVWdBQkE1Q3lFQkN5QURRUUZxSWdOQkNFa05BUXNMQWtBQ1FBSkFBa0FDUUFKQUlBTU9DUUlEQXdFREF3TURBQU1MREFNTElBUW9BZ0JGRFFJZ0FpQUNLQUlBUVg5cU5nSUFEQUlMUVFBaEF3TkFJQUZCSUhJZ0EwSDQxd0JxTEFBQVJ3MERJQU5CQWtrRVFDQUNLQUlBSWdFZ0JDZ0NBRWtFZnlBQ0lBRkJBV28yQWdBZ0FTMEFBQVVnQUJBNUN5RUJDeUFEUVFGcUlnTkJBMGtOQUFzTUFnc01BUXNnQjdJakRiYVV1d3dCQ3dKQUFrQUNRQ0FERGdRQkFnSUFBZ3NnQWlnQ0FDSUJJQVFvQWdCSkJIOGdBaUFCUVFGcU5nSUFJQUV0QUFBRklBQVFPUXRCS0VjRVFDTU1JQVFvQWdCRkRRTWFJQUlnQWlnQ0FFRi9hallDQUNNTURBTUxBMEFnQWlnQ0FDSUJJQVFvQWdCSkJIOGdBaUFCUVFGcU5nSUFJQUV0QUFBRklBQVFPUXNpQVVGUWFrRUtTU0FCUWI5L2FrRWFTWElOQUNBQlFkOEFSaUFCUVo5L2FrRWFTWElOQUFzakRDQUJRU2xHRFFJYUlBUW9BZ0FFUUNBQ0lBSW9BZ0JCZjJvMkFnQUxRZEE4UVJZMkFnQWdBRUVBRURoRUFBQUFBQUFBQUFBTUFnc2dBVUV3UmdSQUlBSW9BZ0FpQVNBRUtBSUFTUVIvSUFJZ0FVRUJhallDQUNBQkxRQUFCU0FBRURrTFFTQnlRZmdBUmdSQUlBQWdCU0FHSUFjUVB3d0RDeUFFS0FJQUJIOGdBaUFDS0FJQVFYOXFOZ0lBUVRBRlFUQUxJUUVMSUFBZ0FTQUZJQVlnQnhCQURBRUxJQVFvQWdBRVFDQUNJQUlvQWdCQmYybzJBZ0FMUWRBOFFSWTJBZ0FnQUVFQUVEaEVBQUFBQUFBQUFBQUxDOFFKQXdsL0EzNERmQ0FBUVFScUlnWW9BZ0FpQkNBQVFlUUFhaUlJS0FJQVNRUi9JQVlnQkVFQmFqWUNBQ0FFTFFBQUlRVkJBQVVnQUJBNUlRVkJBQXNoQndKQUFrQURRQUpBQWtBQ1FBSkFBa0FnQlVFdWF3NERBQUlCQWdzTUJRc01BUXRDQUNFTlFRQWhDVUVBSVFwQ0FDRVBSQUFBQUFBQUFQQS9JUkZCQUNFRVJBQUFBQUFBQUFBQUlSQU1BUXNnQmlnQ0FDSUVJQWdvQWdCSkJFQWdCaUFFUVFGcU5nSUFJQVF0QUFBaEJVRUJJUWNNQWdVZ0FCQTVJUVZCQVNFSERBSUxBQXNMREFFTElBWW9BZ0FpQkNBSUtBSUFTUVIvSUFZZ0JFRUJhallDQUNBRUxRQUFCU0FBRURrTElnVkJNRVlFUUVJQUlROERRQ0FQUW45OElROGdCaWdDQUNJRUlBZ29BZ0JKQkg4Z0JpQUVRUUZxTmdJQUlBUXRBQUFGSUFBUU9Rc2lCVUV3UmcwQVFnQWhEVUVCSVFkQkFTRUpRUUFoQ2tRQUFBQUFBQUR3UHlFUlFRQWhCRVFBQUFBQUFBQUFBQ0VRQ3dWQ0FDRU5RUUVoQ1VFQUlRcENBQ0VQUkFBQUFBQUFBUEEvSVJGQkFDRUVSQUFBQUFBQUFBQUFJUkFMQ3dOQUFrQWdCVUV1UmlFTElBVkJVR29pREVFS1R3UkFJQXNnQlVFZ2NrR2ZmMnBCQmtseVJRMEJDeUFMQkVBZ0NRUkFRUzRoQlF3Q0JTQU5JUTVCQVNFSklBMGhEd3NGSUFWQklISkJxWDlxSVFjZ0JVRTVUQVJBSUF3aEJ3c2dEVUlJVXdSQUlBY2dCRUVFZEdvaEJBVWdEVUlPVXdSQUlCRkVBQUFBQUFBQXNEK2lJaEloRVNBUUlCSWdCN2Vpb0NFUUJTQVFJQkZFQUFBQUFBQUE0RCtpb0NFU0lBcEJBRWNnQjBWeUlnZEZCRUFnRWlFUUN5QUhSUVJBUVFFaENnc0xDeUFOUWdGOElRNUJBU0VIQ3lBR0tBSUFJZ1VnQ0NnQ0FFa0VRQ0FHSUFWQkFXbzJBZ0FnQlMwQUFDRUZJQTRoRFF3Q0JTQUFFRGtoQlNBT0lRME1BZ3NBQ3dzQ2ZDQUhCSHdnRFVJSVV3UkFJQTBoRGdOQUlBUkJCSFFoQkNBT1FnRjhJZzVDQ0ZNTkFBc0xJQVZCSUhKQjhBQkdCRUFnQUJCQklnNUNnSUNBZ0lDQWdJQ0FmMUVFUUNBQVFRQVFPRVFBQUFBQUFBQUFBQXdEQ3dVZ0NDZ0NBQVIrSUFZZ0JpZ0NBRUYvYWpZQ0FFSUFCVUlBQ3lFT0N5QUR0MFFBQUFBQUFBQUFBS0lnQkVVTkFSb2dDUVIrSUE4RklBMExRZ0tHUW1COElBNThJZzFCQUNBQ2E2eFZCRUJCMER4QklqWUNBQ0FEdDBULy8vLy8vLy92ZjZKRS8vLy8vLy8vNzMraURBSUxJQTBnQWtHV2YycXNVd1JBUWRBOFFTSTJBZ0FnQTdkRUFBQUFBQUFBRUFDaVJBQUFBQUFBQUJBQW9nd0NDeUFFUVg5S0JFQURRQ0FRUkFBQUFBQUFBUEMvb0NFUklBUkJBWFFnRUVRQUFBQUFBQURnUDJaRklnQkJBWE55SVFRZ0VDQUFCSHdnRUFVZ0VRdWdJUkFnRFVKL2ZDRU5JQVJCZjBvTkFBc0xBa0FDUUNBQnJFSWdJQUtzZlNBTmZDSVBWUVJBSUErbklnRkJBRXdFUUVFQUlRRkIxQUFoQUF3Q0N3dEIxQUFnQVdzaEFDQUJRVFZJRFFCRUFBQUFBQUFBQUFBaEVpQUR0eUVSREFFTFJBQUFBQUFBQVBBL0lBQVFRaUFEdHlJUkVFTWhFZ3NnQkVFQmNVVWdFRVFBQUFBQUFBQUFBR0lnQVVFZ1NIRnhJZ0VnQkdvaEFDQVJJQUVFZkVRQUFBQUFBQUFBQUFVZ0VBdWlJQklnRVNBQXVLS2dvQ0FTb1NJUVJBQUFBQUFBQUFBQVlRUkFRZEE4UVNJMkFnQUxJQkFnRGFjUVJRVWdDQ2dDQUFSQUlBWWdCaWdDQUVGL2FqWUNBQXNnQUVFQUVEZ2dBN2RFQUFBQUFBQUFBQUNpQ3dzaUVBdUpGUU1RZndOK0Jud2pDQ0VTSXdoQmdBUnFKQWdnRWlFTFFRQWdBeUFDYWlJVGF5RVVJQUJCQkdvaERTQUFRZVFBYWlFUVFRQWhDQUpBQWtBRFFBSkFBa0FDUUFKQUFrQWdBVUV1YXc0REFBSUJBZ3NNQlFzTUFRdEJBQ0VGUWdBaEZRd0JDeUFOS0FJQUlnRWdFQ2dDQUVrRVFDQU5JQUZCQVdvMkFnQWdBUzBBQUNFQlFRRWhDQXdDQlNBQUVEa2hBVUVCSVFnTUFnc0FDd3NNQVFzZ0RTZ0NBQ0lCSUJBb0FnQkpCSDhnRFNBQlFRRnFOZ0lBSUFFdEFBQUZJQUFRT1FzaUFVRXdSZ1JBUWdBaEZRTkFJQlZDZjN3aEZTQU5LQUlBSWdFZ0VDZ0NBRWtFZnlBTklBRkJBV28yQWdBZ0FTMEFBQVVnQUJBNUN5SUJRVEJHRFFCQkFTRUlRUUVoQlFzRlFRRWhCVUlBSVJVTEN5QUxRUUEyQWdBQ1FBSkFBa0FDUUFKQUFrQWdBVUV1UmlJTUlBRkJVR29pQ1VFS1NYSUVRQ0FMUWZBRGFpRVBJQUVoQ2tJQUlSZEJBQ0VHUVFBaEIwRUFJUUVEUUFKQUFrQWdEQVJBSUFVTkFpQVhJUlpCQVNFRklCY2hGUVVnRjBJQmZDRVdJQXBCTUVjaERpQUhRZjBBVGdSQUlBNUZEUUlnRHlBUEtBSUFRUUZ5TmdJQURBSUxJQXNnQjBFQ2RHb2hEQ0FHQkVBZ0NrRlFhaUFNS0FJQVFRcHNhaUVKQ3lBV3B5RUlJQTRFUUNBSUlRRUxJQXdnQ1RZQ0FDQUdRUUZxSWdaQkNVWWlDU0FIYWlFSFFRRWhDQ0FKQkVCQkFDRUdDd3NMSUEwb0FnQWlDU0FRS0FJQVNRUi9JQTBnQ1VFQmFqWUNBQ0FKTFFBQUJTQUFFRGtMSWdwQkxrWWlEQ0FLUVZCcUlnbEJDa2x5UlEwRElCWWhGd3dCQ3dzZ0Z5RVdJQWhCQUVjaEJRd0NCU0FCSVFwQ0FDRVdRUUFoQmtFQUlRZEJBQ0VCQ3dzZ0JVVUVRQ0FXSVJVTElBaEJBRWNpQlNBS1FTQnlRZVVBUm5GRkJFQWdDa0YvU2dSQURBSUZEQU1MQUFzZ0FCQkJJaGRDZ0lDQWdJQ0FnSUNBZjFFRVFDQUFRUUFRT0VRQUFBQUFBQUFBQUNFWUJTQVhJQlY4SVJVTUJBc01CQXNnRUNnQ0FBUkFJQTBnRFNnQ0FFRi9hallDQUNBRlJRMENEQU1MQ3lBRlJRMEFEQUVMUWRBOFFSWTJBZ0FnQUVFQUVEaEVBQUFBQUFBQUFBQWhHQXdCQ3lBTEtBSUFJZ0JGQkVBZ0JMZEVBQUFBQUFBQUFBQ2lJUmdNQVFzZ0ZrSUtVeUFWSUJaUmNRUkFJQUpCSGtvZ0FDQUNka1Z5QkVBZ0JMY2dBTGlpSVJnTUFnc0xJQlVnQTBGK2JheFZCRUJCMER4QklqWUNBQ0FFdDBULy8vLy8vLy92ZjZKRS8vLy8vLy8vNzMraUlSZ01BUXNnRlNBRFFaWi9hcXhUQkVCQjBEeEJJallDQUNBRXQwUUFBQUFBQUFBUUFLSkVBQUFBQUFBQUVBQ2lJUmdNQVFzZ0JnUi9JQVpCQ1VnRVFDQUxJQWRCQW5ScUlnVW9BZ0FoQUFOQUlBQkJDbXdoQUNBR1FRRnFJZ1pCQ1VjTkFBc2dCU0FBTmdJQUN5QUhRUUZxQlNBSEN5RUdJQlduSVFBZ0FVRUpTQVJBSUFFZ0FFd2dBRUVTU0hFRVFDQUxLQUlBSVFjZ0FFRUpSZ1JBSUFTM0lBZTRvaUVZREFNTElBQkJDVWdFUUNBRXR5QUh1S0pCQUNBQWEwRUNkRUh3d0FCcUtBSUF0Nk1oR0F3REN5QUNRUnRxSUFCQmZXeHFJZ0ZCSGtvZ0J5QUJka1Z5QkVBZ0JMY2dCN2lpSUFCQkFuUkJxTUFBYWlnQ0FMZWlJUmdNQXdzTEN5QUFRUWx2SWd3RWZ5QU1RUWxxSVFGQkFDQUFRWDlLQkg4Z0RBVWdBU0lNQzJ0QkFuUkI4TUFBYWlnQ0FDRVBJQVlFUUVHQWxPdmNBeUFQYlNFT1FRQWhDRUVBSVFWQkFDRUhJQUFoQVFOQUlBc2dCMEVDZEdvaUNpZ0NBQ0lKSUE5d0lRQWdDaUFKSUE5dUlBVnFJZ28yQWdBZ0RpQUFiQ0VGSUFoQkFXcEIvd0J4SVFrZ0FVRjNhaUVBSUFjZ0NFWWdDa1Z4SWdvRVFDQUFJUUVMSUFvRWZ5QUpCU0FJQ3lFQUlBZEJBV29pQnlBR1J3UkFJQUFoQ0F3QkN3c2dCUVIvSUFzZ0JrRUNkR29nQlRZQ0FDQUFJUWNnQmtFQmFpRUdJQUVGSUFBaEJ5QUJDeUVBQlVFQUlRZEJBQ0VHQ3lBSElRRkJDU0FNYXlBQWFpRUFRUUFGUVFBaEFVRUFDeUVIQTBBQ1FDQUFRUkpJSVE4Z0FFRVNSaUVPSUFzZ0FVRUNkR29oQ2dOQUlBOUZCRUFnRGtVTkFpQUtLQUlBUWQvZ3BRUlBCRUJCRWlFQURBTUxDMEVBSVFnZ0JrSC9BR29oQlFOQUlBc2dCVUgvQUhFaUNVRUNkR29pRENnQ0FLMUNIWVlnQ0sxOEloV25JUVVnRlVLQWxPdmNBMVlFZnlBVlFvQ1U2OXdEZ3FjaEJTQVZRb0NVNjl3RGdLY0ZRUUFMSVFnZ0RDQUZOZ0lBSUFWRklBa2dCa0gvQUdwQi93QnhSeUFKSUFGR0lneHlRUUZ6Y1FSQUlBa2hCZ3NnQ1VGL2FpRUZJQXhGRFFBTElBZEJZMm9oQnlBSVJRMEFDeUFHUWY4QWFrSC9BSEVoQlNBTElBWkIvZ0JxUWY4QWNVRUNkR29oQ1NBQlFmOEFha0gvQUhFaUFTQUdSZ1JBSUFrZ0NTZ0NBQ0FMSUFWQkFuUnFLQUlBY2pZQ0FDQUZJUVlMSUFzZ0FVRUNkR29nQ0RZQ0FDQUFRUWxxSVFBTUFRc0xBMEFDUUNBR1FRRnFRZjhBY1NFTUlBc2dCa0gvQUdwQi93QnhRUUowYWlFTkEwQWdBRUVTUmlFS0lBQkJHMG9FZjBFSkJVRUJDeUVSQTBCQkFDRUZBa0FDUUFOQUFrQWdCU0FCYWtIL0FIRWlDQ0FHUmdSQVFRSWhCUXdEQ3lBTElBaEJBblJxS0FJQUlna2dCVUVDZEVId3dBQnFLQUlBSWdoSkJFQkJBaUVGREFNTElBa2dDRXNOQUNBRlFRRnFJZ1ZCQWtnTkFRd0NDd3NNQVFzZ0NpQUZRUUpHY1FSQVFRQWhBRVFBQUFBQUFBQUFBQ0VZREFRTEN5QVJJQWRxSVFjZ0FTQUdSZ1JBSUFZaEFRd0JDd3RCQVNBUmRFRi9haUVRUVlDVTY5d0RJQkYySVE4Z0FTRUlRUUFoQ1NBQklRVURRQ0FMSUFWQkFuUnFJZ29vQWdBaUFTQVJkaUFKYWlFT0lBb2dEallDQUNBQklCQnhJQTlzSVFrZ0NFRUJha0gvQUhFaENpQUFRWGRxSVFFZ0JTQUlSaUFPUlhFaURnUkFJQUVoQUFzZ0RnUi9JQW9GSUFnTElRRWdCVUVCYWtIL0FIRWlCU0FHUndSQUlBRWhDQXdCQ3dzZ0NVVU5BQ0FNSUFGR0JFQWdEU0FOS0FJQVFRRnlOZ0lBREFFTEN5QUxJQVpCQW5ScUlBazJBZ0FnRENFR0RBRUxDd05BSUFaQkFXcEIvd0J4SVFVZ0FDQUJha0gvQUhFaUNDQUdSZ1JBSUFzZ0JVRi9ha0VDZEdwQkFEWUNBQ0FGSVFZTElCaEVBQUFBQUdYTnpVR2lJQXNnQ0VFQ2RHb29BZ0M0b0NFWUlBQkJBV29pQUVFQ1J3MEFDeUFFdHlJYUlCaWlJUmdnQjBFMWFpSUVJQU5ySWdNZ0FrZ2hCU0FEUVFCS0JIOGdBd1ZCQUFzaEFDQUZCSDhnQUFVZ0FpSUFDMEUxU0FSQVJBQUFBQUFBQVBBL1Fla0FJQUJyRUVJZ0dCQkRJaDBoSENBWVJBQUFBQUFBQVBBL1FUVWdBR3NRUWhCRUloc2hHU0FkSUJnZ0c2R2dJUmdGUkFBQUFBQUFBQUFBSVJ4RUFBQUFBQUFBQUFBaEdRc2dBVUVDYWtIL0FIRWlBaUFHUndSQUFrQWdDeUFDUVFKMGFpZ0NBQ0lDUVlES3RlNEJTUVI4SUFKRkJFQWdBVUVEYWtIL0FIRWdCa1lOQWdzZ0drUUFBQUFBQUFEUVA2SWdHYUFGSUFKQmdNcTE3Z0ZIQkVBZ0drUUFBQUFBQUFEb1A2SWdHYUFoR1F3Q0N5QUJRUU5xUWY4QWNTQUdSZ1I4SUJwRUFBQUFBQUFBNEQraUlCbWdCU0FhUkFBQUFBQUFBT2cvb2lBWm9Bc0xJUmtMUVRVZ0FHdEJBVW9FUUNBWlJBQUFBQUFBQVBBL0VFUkVBQUFBQUFBQUFBQmhCRUFnR1VRQUFBQUFBQUR3UDZBaEdRc0xDeUFZSUJtZ0lCeWhJUmdDUUNBRVFmLy8vLzhIY1VGK0lCTnJTZ1JBSUJoRUFBQUFBQUFBNEQraUlSc2dHSmxFQUFBQUFBQUFRRU5tUlNJQlFRRnpJQWRxSVFjZ0FVVUVRQ0FiSVJnTElBZEJNbW9nRkV3RVFDQVpSQUFBQUFBQUFBQUFZaUFGSUFBZ0EwY2dBWEp4Y1VVTkFndEIwRHhCSWpZQ0FBc0xJQmdnQnhCRklSZ0xJQklrQ0NBWUMrRURBZ1ovQW40Q1FBSkFBa0FnQUVFRWFpSURLQUlBSWdFZ0FFSGtBR29pQkNnQ0FFa0VmeUFESUFGQkFXbzJBZ0FnQVMwQUFBVWdBQkE1Q3lJQlFTdHJEZ01BQVFBQkN5QUJRUzFHSVFVZ0F5Z0NBQ0lCSUFRb0FnQkpCRUFnQXlBQlFRRnFOZ0lBSUFFdEFBQWhBUXdDQlNBQUVEa2hBUXdDQ3dBTFFRQWhCUXNnQVVGUWFrRUpTd1JBSUFRb0FnQUVmaUFESUFNb0FnQkJmMm8yQWdCQ2dJQ0FnSUNBZ0lDQWZ3VkNnSUNBZ0lDQWdJQ0Fmd3NoQndWQkFDRUNBMEFnQVVGUWFpQUNRUXBzYWlFQ0lBTW9BZ0FpQVNBRUtBSUFTUVIvSUFNZ0FVRUJhallDQUNBQkxRQUFCU0FBRURrTElnRkJVR3BCQ2traUJpQUNRY3lacytZQVNIRU5BQXNnQXF3aEJ5QUdCRUFnQVNFQ0EwQWdBeWdDQUNJQklBUW9BZ0JKQkg4Z0F5QUJRUUZxTmdJQUlBRXRBQUFGSUFBUU9Rc2lBVUZRYWtFS1NTQUNyRUpRZkNBSFFncCtmQ0lIUXE2UGhkZkh3dXVqQVZOeEJFQWdBU0VDREFFTEN3c2dCQ2dDQUNFQ0lBRkJVR3BCQ2trRVFDQUNJUUVEUUNBREtBSUFJZ0lnQVVrRVFDQURJQUpCQVdvMkFnQWdBaTBBQUNFQ0JTQUFFRGtoQWlBRUtBSUFJUUVMSUFKQlVHcEJDa2tOQUFzRklBSWhBUXNnQVFSQUlBTWdBeWdDQUVGL2FqWUNBQXRDQUNBSGZTRUlJQVVFUUNBSUlRY0xDeUFIQzhjQkFnSi9BWHdnQVVIL0Iwb0VRQ0FCUVlGNGFpSURRZjhIU2lFQ0lBQkVBQUFBQUFBQTRIK2lJZ1JFQUFBQUFBQUE0SCtpSVFBZ0FVR0NjR29pQVVIL0IwNEVRRUgvQnlFQkN5QUNSUVJBSUFNaEFRc2dBa1VFUUNBRUlRQUxCU0FCUVlKNFNBUkFJQUZCL2dkcUlnTkJnbmhJSVFJZ0FFUUFBQUFBQUFBUUFLSWlCRVFBQUFBQUFBQVFBS0loQUNBQlFmd1BhaUlCUVlKNFRBUkFRWUo0SVFFTElBSkZCRUFnQXlFQkN5QUNSUVJBSUFRaEFBc0xDeUFBSUFGQi93ZHFyVUkwaHIraUN5SUFJQUc5UW9DQWdJQ0FnSUNBZ0grRElBQzlRdi8vLy8vLy8vLy8vd0NEaEw4TENBQWdBQ0FCRUVZTENBQWdBQ0FCRUVJTG13UUNBMzhGZmlBQXZTSUdRalNJcDBIL0QzRWhBaUFCdlNJSFFqU0lwMEgvRDNFaEJDQUdRb0NBZ0lDQWdJQ0FnSCtESVFnQ2ZBSkFJQWRDQVlZaUJVSUFVUTBBSUFKQi93OUdJQUc5UXYvLy8vLy8vLy8vL3dDRFFvQ0FnSUNBZ0lENC93QldjZzBBSUFaQ0FZWWlDU0FGV0FSQUlBQkVBQUFBQUFBQUFBQ2lJUUVnQ1NBRlVRUjhJQUVGSUFBTER3c2dBZ1IrSUFaQy8vLy8vLy8vL3dlRFFvQ0FnSUNBZ0lBSWhBVWdCa0lNaGlJRlFuOVZCRUJCQUNFQ0EwQWdBa0YvYWlFQ0lBVkNBWVlpQlVKL1ZRMEFJQUloQXdzRlFRQWhBd3NnQXlFQ0lBWkJBU0FEYTYyR0N5SUdJQVFFZmlBSFF2Ly8vLy8vLy84SGcwS0FnSUNBZ0lDQUNJUUZJQWRDRElZaUJVSi9WUVJBUVFBaEF3TkFJQU5CZjJvaEF5QUZRZ0dHSWdWQ2YxVU5BQXNGUVFBaEF3c2dBeUVFSUFkQkFTQURhNjJHQ3lJSGZTSUZRbjlWSVFNQ1FDQUNJQVJLQkVBRFFBSkFJQU1FUUNBRlFnQlJEUUVGSUFZaEJRc2dCVUlCaGlJR0lBZDlJZ1ZDZjFVaEF5QUNRWDlxSWdJZ0JFb05BUXdEQ3dzZ0FFUUFBQUFBQUFBQUFLSU1Bd3NMSUFNRVFDQUFSQUFBQUFBQUFBQUFvaUFGUWdCUkRRSWFCU0FHSVFVTElBVkNnSUNBZ0lDQWdBaFVCRUFEUUNBQ1FYOXFJUUlnQlVJQmhpSUZRb0NBZ0lDQWdJQUlWQTBBQ3dzZ0FrRUFTZ1IrSUFWQ2dJQ0FnSUNBZ0hoOElBS3RRalNHaEFVZ0JVRUJJQUpycllnTElBaUV2d3dCQ3lBQUlBR2lJZ0FnQUtNTEMwY0JBbjhqQ0NFQkl3aEJFR29rQ0NBQklRSWdBQkJJQkg5QmZ3VWdBQ0FDUVFFZ0FDZ0NJRUVIY1VFQ2FoRUJBRUVCUmdSL0lBSXRBQUFGUVg4TEN5RUFJQUVrQ0NBQUM1NEJBUUovSUFCQnlnQnFJZ0lzQUFBaEFTQUNJQUZCL3dGcUlBRnlPZ0FBSUFCQkZHb2lBU2dDQUNBQVFSeHFJZ0lvQWdCTEJFQWdBRUVBUVFBZ0FDZ0NKRUVIY1VFQ2FoRUJBQm9MSUFCQkFEWUNFQ0FDUVFBMkFnQWdBVUVBTmdJQUlBQW9BZ0FpQVVFRWNRUi9JQUFnQVVFZ2NqWUNBRUYvQlNBQUlBQW9BaXdnQUNnQ01Hb2lBallDQ0NBQUlBSTJBZ1FnQVVFYmRFRWZkUXNpQUF2TUFnRUZmeU1JSVFRakNFR0FBV29rQ0NBRUlnSkIrTUFBS1FJQU53SUFJQUpCZ01FQUtRSUFOd0lJSUFKQmlNRUFLUUlBTndJUUlBSkJrTUVBS1FJQU53SVlJQUpCbU1FQUtRSUFOd0lnSUFKQm9NRUFLUUlBTndJb0lBSkJxTUVBS1FJQU53SXdJQUpCc01FQUtRSUFOd0k0SUFKQnVNRUFLUUlBTndKQUlBSkJ3TUVBS1FJQU53SklJQUpCeU1FQUtRSUFOd0pRSUFKQjBNRUFLUUlBTndKWUlBSkIyTUVBS1FJQU53SmdJQUpCNE1FQUtRSUFOd0pvSUFKQjZNRUFLUUlBTndKd0lBSkI4TUVBS0FJQU5nSjRJQUpCZmlBQWF5SURRZi8vLy84SFNRUi9JQU1GUWYvLy8vOEhJZ01MTmdJd0lBSkJGR29pQlNBQU5nSUFJQUlnQURZQ0xDQUNRUkJxSWdZZ0FDQURhaUlBTmdJQUlBSWdBRFlDSENBQ0lBRVFTaUVBSUFNRVFDQUZLQUlBSWdFZ0FTQUdLQUlBUmtFZmRFRWZkV3BCQURvQUFBc2dCQ1FJSUFBTDRRSUJDMzhqQ0NFREl3aEI0QUZxSkFnZ0EwR0lBV29oQkNBRFFkQUFhaUlDUWdBM0FnQWdBa0lBTndJSUlBSkNBRGNDRUNBQ1FnQTNBaGdnQWtJQU53SWdJQU5CK0FCcUlnVWdBU2dDQURZQ0FFRUFJQVVnQXlJQklBSVFTMEVBU0FSQVFYOGhBUVVnQUNnQ1RCb2dBQ2dDQUNFR0lBQXNBRXBCQVVnRVFDQUFJQVpCWDNFMkFnQUxJQUJCTUdvaUJ5Z0NBQVJBSUFBZ0JTQUJJQUlRU3lFQkJTQUFRU3hxSWdnb0FnQWhDU0FJSUFRMkFnQWdBRUVjYWlJTElBUTJBZ0FnQUVFVWFpSUtJQVEyQWdBZ0IwSFFBRFlDQUNBQVFSQnFJZ3dnQkVIUUFHbzJBZ0FnQUNBRklBRWdBaEJMSVFFZ0NRUkFJQUJCQUVFQUlBQW9BaVJCQjNGQkFtb1JBUUFhSUFvb0FnQkZCRUJCZnlFQkN5QUlJQWsyQWdBZ0IwRUFOZ0lBSUF4QkFEWUNBQ0FMUVFBMkFnQWdDa0VBTmdJQUN3c2dBQ0FBS0FJQUlnQWdCa0VnY1hJMkFnQWdBRUVnY1FSQVFYOGhBUXNMSUFNa0NDQUJDNElWQWhkL0FuNGpDQ0VUSXdoQndBQnFKQWdnRXlFTklCTkJGR29oRmlBVFFSQnFJZzlCMU04QU5nSUFJQUJCQUVjaEZDQVRRUmhxSWdwQktHb2lFU0VZSUFwQkoyb2hHU0FUUVFocUloZEJCR29oR2tIVXp3QWhCMEVBSVF0QkFDRUZRUUFoQ2dKQUFrQURRQUpBSUF0QmYwb0VRQ0FGUWYvLy8vOEhJQXRyU2dSL1FkQThRY3NBTmdJQVFYOEZJQVVnQzJvTElRc0xJQWNzQUFBaUJFVU5BaUFISVFVQ1FBSkFBMEFDUUFKQUFrQUNRQ0FFUVJoMFFSaDFEaVlCQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUFJTElBVWhCQXdFQ3lBRklRUU1BUXNnRHlBRlFRRnFJZ1UyQWdBZ0JTd0FBQ0VFREFFTEN3d0JDd05BSUFRc0FBRkJKVWNOQVNBRlFRRnFJUVVnRHlBRVFRSnFJZ1EyQWdBZ0JDd0FBRUVsUmcwQUN3c2dCU0FIYXlFRklCUUVRQ0FBSUFjZ0JSQk1DeUFGQkVBZ0JDRUhEQUlMSUE4Z0JFRUJhaUlGTEFBQVFWQnFJZzVCQ2trRWZ5QUVRUU5xSVFnZ0JDd0FBa0VrUmlJRUJFQWdDQ0VGQ3lBRUJFQkJBU0VLQ3lBRVJRUkFRWDhoRGdzZ0NpRUVJQVVGUVg4aERpQUtJUVFnQlFzaUNqWUNBQUpBSUFvc0FBQWlCVUZnYWlJSVFTQkpCRUJCQUNFR0EwQkJBU0FJZENJSVFZblJCSEZGQkVBZ0JTRUlJQVloQlF3REN5QUlJQVp5SVFZZ0R5QUtRUUZxSWdvMkFnQWdDaXdBQUNJRlFXQnFJZ2hCSUVrTkFDQUZJUWdnQmlFRkN3VWdCU0VJUVFBaEJRc0xJQWhCL3dGeFFTcEdCRUFDZndKQUlBcEJBV29pQ0N3QUFFRlFhaUlHUVFwUERRQWdDaXdBQWtFa1J3MEFJQU1nQmtFQ2RHcEJDallDQUVFQklSQWdBaUFJTEFBQVFWQnFRUU4wYWlrREFLY2hCQ0FLUVFOcURBRUxJQVFFUUVGL0lRc01Bd3NnRkFSL0lBRW9BZ0JCQTJwQmZIRWlDaWdDQUNFRUlBRWdDa0VFYWpZQ0FFRUFJUkFnQ0FWQkFDRVFRUUFoQkNBSUN3c2hDaUFQSUFvMkFnQWdCVUdBd0FCeUlRaEJBQ0FFYXlFSklBb2hCaUFFUVFCSUlneEZCRUFnQlNFSUN5QVFJUW9nREFSL0lBa0ZJQVFMSVJBRklBOFFUU0lRUVFCSUJFQkJmeUVMREFJTElBOG9BZ0FoQmlBRklRZ2dCQ0VLQ3dKQUlBWXNBQUJCTGtZRVFDQUdRUUZxSWdVc0FBQkJLa2NFUUNBUElBVTJBZ0FnRHhCTklRUWdEeWdDQUNFRkRBSUxJQVpCQW1vaUJTd0FBRUZRYWlJRVFRcEpCRUFnQml3QUEwRWtSZ1JBSUFNZ0JFRUNkR3BCQ2pZQ0FDQUNJQVVzQUFCQlVHcEJBM1JxS1FNQXB5RUVJQThnQmtFRWFpSUZOZ0lBREFNTEN5QUtCRUJCZnlFTERBTUxJQlFFUUNBQktBSUFRUU5xUVh4eElnWW9BZ0FoQkNBQklBWkJCR28yQWdBRlFRQWhCQXNnRHlBRk5nSUFCU0FHSVFWQmZ5RUVDd3NnQlNFR1FRQWhEQU5BSUFZc0FBQkJ2MzlxUVRsTEJFQkJmeUVMREFJTElBOGdCa0VCYWlJRk5nSUFJQXhCT213Z0Jpd0FBR3BCdTlNQWFpd0FBQ0lTUWY4QmNTSUpRWDlxUVFoSkJFQWdCU0VHSUFraERBd0JDd3NnRWtVRVFFRi9JUXNNQVFzZ0RrRi9TaUVWQWtBQ1FDQVNRUk5HQkVBZ0ZRUkFRWDhoQ3d3RUJRd0NDd0FGSUJVRVFDQURJQTVCQW5ScUlBazJBZ0FnRFNBQ0lBNUJBM1JxS1FNQU53TUFEQUlMSUJSRkJFQkJBQ0VMREFRTElBMGdDU0FCRUU0TERBRUxJQlJGQkVBZ0JTRUhRUUFoQlF3REN3c2dCaXdBQUNJSlFWOXhJUVlnREVFQVJ5QUpRUTl4UVFOR2NVVUVRQ0FKSVFZTElBaEIvLzk3Y1NFSklBaEJnTUFBY1FSQUlBa2hDQXNDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBWkJ3UUJyRGpnTERBa01Dd3NMREF3TURBd01EQXdNREF3S0RBd01EQUlNREF3TURBd01EQXNNQmdRTEN3c01CQXdNREFjQUF3RU1EQWdNQlF3TUFnd0xBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQU1RZjhCY1VFWWRFRVlkUTRJQUFFQ0F3UUhCUVlIQ3lBTktBSUFJQXMyQWdBZ0JTRUhRUUFoQlF3YkN5QU5LQUlBSUFzMkFnQWdCU0VIUVFBaEJRd2FDeUFOS0FJQUlBdXNOd01BSUFVaEIwRUFJUVVNR1FzZ0RTZ0NBQ0FMT3dFQUlBVWhCMEVBSVFVTUdBc2dEU2dDQUNBTE9nQUFJQVVoQjBFQUlRVU1Gd3NnRFNnQ0FDQUxOZ0lBSUFVaEIwRUFJUVVNRmdzZ0RTZ0NBQ0FMckRjREFDQUZJUWRCQUNFRkRCVUxJQVVoQjBFQUlRVU1GQXNnQ0VFSWNpRUlJQVJCQ0UwRVFFRUlJUVFMUWZnQUlRWU1Dd3NNQ2dzZ0dDQU5LUU1BSWh3Z0VSQlFJZ2RySWdsQkFXb2hEQ0FJSVFZZ0NFRUljVVVnQkNBSlNuSkZCRUFnRENFRUMwRUFJUXhCek5jQUlRa01EUXNnRFNrREFDSWJRZ0JUQkVBZ0RVSUFJQnQ5SWhzM0F3QkJBU0VNUWN6WEFDRUpEQW9GSUFoQmdCQnhSU0VISUFoQkFYRUVmMEhPMXdBRlFjelhBQXNoQ1NBSVFZRVFjVUVBUnlFTUlBZEZCRUJCemRjQUlRa0xEQW9MQUFzZ0RTa0RBQ0ViUVFBaERFSE0xd0FoQ1F3SUN5QVpJQTBwQXdBOEFBQWdHU0VISUFraENFRUJJUVpCQUNFTVFjelhBQ0VKSUJFaEJBd01DMEhRUENnQ0FDSUhRY3c5S0FJQUVGWWhCd3dIQ3lBTktBSUFJZ2RGQkVCQjF0Y0FJUWNMREFZTElCY2dEU2tEQUQ0Q0FDQWFRUUEyQWdBZ0RTQVhOZ0lBSUJjaEJrRi9JUXdNQmdzZ0RTZ0NBQ0VHSUFRRVFDQUVJUXdNQmdVZ0FFRWdJQkJCQUNBSUVGTkJBQ0VFREFnTEFBc2dCU0VISUFBZ0RTc0RBQ0FRSUFRZ0NDQUdFRlFoQlF3SkN5QUVJUVpCQUNFTVFjelhBQ0VKSUJFaEJBd0dDeUFOS1FNQUlod2dFU0FHUVNCeEVFOGhCeUFHUVFSMVFjelhBR29oQ1NBSVFRaHhSU0FjUWdCUmNpSU1CRUJCek5jQUlRa0xJQWdoQmlBTUJIOUJBQVZCQWdzaERBd0RDeUFiSVJ3Z0d5QVJFRkVoQnlBSUlRWU1BZ3NnQnlBRUVGSWlFa1VoRlNBU0lBZHJJUVlnQnlBRWFpRU9JQWtoQ0NBVkJFQWdCQ0VHQzBFQUlReEJ6TmNBSVFrZ0ZRUi9JQTRGSUJJTElRUU1Bd3RCQUNFSFFRQWhCQ0FHSVFrRFFBSkFJQWtvQWdBaURrVU5BQ0FXSUE0UU5pSUVRUUJJSUFRZ0RDQUhhMHR5RFFBZ0NVRUVhaUVKSUF3Z0JDQUhhaUlIU3cwQkN3c2dCRUVBU0FSQVFYOGhDd3dFQ3lBQVFTQWdFQ0FISUFnUVV5QUhCRUJCQUNFRUEwQWdCaWdDQUNJSlJRUkFJQWNoQkF3RUN5QVdJQWtRTmlJSklBUnFJZ1FnQjBvRVFDQUhJUVFNQkFzZ0JrRUVhaUVHSUFBZ0ZpQUpFRXdnQkNBSFNRMEFJQWNoQkF3REN3QUZRUUFoQkF3Q0N3QUxJQVpCLy85N2NTRUlJQVJCZjB3RVFDQUdJUWdMSUFSQkFFY2dIRUlBVWlJR2NpRU9JQVFnQmtFQmMwRUJjU0FZSUFkcmFpSUdTZ1JBSUFRaEJnc2dEa1VFUUNBRUlRWUxJQTVGQkVBZ0VTRUhDeUFSSVFRTUFRc2dBRUVnSUJBZ0JDQUlRWURBQUhNUVV5QUZJUWNnRUNBRVNnUi9JQkFGSUFRTElRVU1BZ3NnQUVFZ0lCQWdCaUFFSUFkcklnNUlCSDhnRGdVZ0Jnc2lFaUFNYWlJR1NBUi9JQVlGSUJBTElnUWdCaUFJRUZNZ0FDQUpJQXdRVENBQVFUQWdCQ0FHSUFoQmdJQUVjeEJUSUFCQk1DQVNJQTVCQUJCVElBQWdCeUFPRUV3Z0FFRWdJQVFnQmlBSVFZREFBSE1RVXlBRklRY2dCQ0VGREFFTEN3d0JDeUFBUlFSQUlBb0VRRUVCSVFBRFFBSkFJQU1nQUVFQ2RHb29BZ0FpQ2tVRVFFRUFJUUVNQVFzZ0FpQUFRUU4wYWlBS0lBRVFUaUFBUVFGcUlnQkJDa2dOQVVFQklRc01CQXNMQTBBZ0FRUkFRWDhoQ3d3RUN5QUFRUUZxSWdCQkNrZ0VRQ0FESUFCQkFuUnFLQUlBSVFFTUFRVkJBU0VMQ3dzRlFRQWhDd3NMQ3lBVEpBZ2dDd3NYQUNBQUtBSUFRU0J4UlFSQUlBRWdBaUFBRURVYUN3dFhBUVIvSUFBb0FnQWlBaXdBQUVGUWFpSUJRUXBKQkVCQkFDRURBMEFnQVNBRFFRcHNhaUVCSUFBZ0FrRUJhaUlDTmdJQUlBSXNBQUJCVUdvaUJFRUtTUVJBSUFFaEF5QUVJUUVNQVFzTEJVRUFJUUVMSUFFTDJnTURBWDhCZmdGOEFrQWdBVUVVVFFSQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FCUVFsckRnb0FBUUlEQkFVR0J3Z0pDZ3NnQWlnQ0FFRURha0Y4Y1NJQktBSUFJUU1nQWlBQlFRUnFOZ0lBSUFBZ0F6WUNBQXdMQ3lBQ0tBSUFRUU5xUVh4eElnRW9BZ0FoQXlBQ0lBRkJCR28yQWdBZ0FDQURyRGNEQUF3S0N5QUNLQUlBUVFOcVFYeHhJZ0VvQWdBaEF5QUNJQUZCQkdvMkFnQWdBQ0FEclRjREFBd0pDeUFDS0FJQVFRZHFRWGh4SWdFcEF3QWhCQ0FDSUFGQkNHbzJBZ0FnQUNBRU53TUFEQWdMSUFJb0FnQkJBMnBCZkhFaUFTZ0NBQ0VESUFJZ0FVRUVhallDQUNBQUlBTkIvLzhEY1VFUWRFRVFkYXczQXdBTUJ3c2dBaWdDQUVFRGFrRjhjU0lCS0FJQUlRTWdBaUFCUVFScU5nSUFJQUFnQTBILy93TnhyVGNEQUF3R0N5QUNLQUlBUVFOcVFYeHhJZ0VvQWdBaEF5QUNJQUZCQkdvMkFnQWdBQ0FEUWY4QmNVRVlkRUVZZGF3M0F3QU1CUXNnQWlnQ0FFRURha0Y4Y1NJQktBSUFJUU1nQWlBQlFRUnFOZ0lBSUFBZ0EwSC9BWEd0TndNQURBUUxJQUlvQWdCQkIycEJlSEVpQVNzREFDRUZJQUlnQVVFSWFqWUNBQ0FBSUFVNUF3QU1Bd3NnQWlnQ0FFRUhha0Y0Y1NJQkt3TUFJUVVnQWlBQlFRaHFOZ0lBSUFBZ0JUa0RBQXNMQ3dzMkFDQUFRZ0JTQkVBRFFDQUJRWDlxSWdFZ0FLZEJEM0ZCZ05nQWFpMEFBQ0FDY2pvQUFDQUFRZ1NJSWdCQ0FGSU5BQXNMSUFFTExnQWdBRUlBVWdSQUEwQWdBVUYvYWlJQklBQ25RUWR4UVRCeU9nQUFJQUJDQTRnaUFFSUFVZzBBQ3dzZ0FRdUJBUUlDZndGK0lBQ25JUUlnQUVMLy8vLy9EMVlFUUFOQUlBRkJmMm9pQVNBQVFncUNwMEgvQVhGQk1ISTZBQUFnQUVJS2dDRUVJQUJDLy8vLy81OEJWZ1JBSUFRaEFBd0JDd3NnQktjaEFnc2dBZ1JBQTBBZ0FVRi9haUlCSUFKQkNuQkJNSEk2QUFBZ0FrRUtiaUVESUFKQkNrOEVRQ0FESVFJTUFRc0xDeUFCQzlFQkFRRi9Ba0FnQVVFQVJ5SUNJQUJCQTNGQkFFZHhCRUFEUUNBQUxBQUFSUTBDSUFGQmYyb2lBVUVBUnlJQ0lBQkJBV29pQUVFRGNVRUFSM0VOQUFzTElBSUVRQ0FBTEFBQUJFQUNRQUpBSUFGQkEwME5BQU5BSUFBb0FnQWlBa0dBZ1lLRWVIRkJnSUdDaEhoeklBSkIvLzM3ZDJweFJRUkFJQUJCQkdvaEFDQUJRWHhxSWdGQkEwc05BUXdDQ3dzTUFRc2dBVVVFUUVFQUlRRU1CQXNMQTBBZ0FDd0FBRVVOQXlBQVFRRnFJUUFnQVVGL2FpSUJEUUJCQUNFQkN3c0ZRUUFoQVFzTElBRUVmeUFBQlVFQUN3dDdBUUovSXdnaEJpTUlRWUFDYWlRSUlBWWhCU0FDSUFOS0lBUkJnTUFFY1VWeEJFQWdCU0FCSUFJZ0Eyc2lBa0dBQWtrRWZ5QUNCVUdBQWdzUVl4b2dBa0gvQVVzRVFDQUNJUUVEUUNBQUlBVkJnQUlRVENBQlFZQithaUlCUWY4QlN3MEFDeUFDUWY4QmNTRUNDeUFBSUFVZ0FoQk1DeUFHSkFnTDhoY0RGSDhDZmdOOEl3Z2hGU01JUWJBRWFpUUlJQlVpQzBFQU5nSUFJQUVpSGIxQ0FGTUVRRUVCSVJGQjNkY0FJUTBnQVpvaEFRVWdCRUdBRUhGRklRa2dCRUVCY1FSL1FlUFhBQVZCM3RjQUN5RU5JQVJCZ1JCeFFRQkhJUkVnQ1VVRVFFSGcxd0FoRFFzTElCVkJDR29oQ1NBVlFZd0VhaUlPSVJNZ0ZVR0FCR29pQmtFTWFpRVNBbjhnQVNJZHZVS0FnSUNBZ0lDQStQOEFnMEtBZ0lDQWdJQ0ErUDhBVkFSL0lBRWdDeUlJRUZWRUFBQUFBQUFBQUVDaUlnRkVBQUFBQUFBQUFBQmlJZ2dFUUNBTElBc29BZ0JCZjJvMkFnQUxJQVZCSUhJaUVFSGhBRVlFUUNBTlFRbHFJUWtnQlVFZ2NTSUhCRUFnQ1NFTkN5QURRUXRMUVF3Z0Eyc2lDVVZ5UlFSQVJBQUFBQUFBQUNCQUlSd0RRQ0FjUkFBQUFBQUFBREJBb2lFY0lBbEJmMm9pQ1EwQUN5QU5MQUFBUVMxR0JId2dIQ0FCbWlBY29hQ2FCU0FCSUJ5Z0lCeWhDeUVCQzBFQUlBc29BZ0FpQ0dzaENTQUlRUUJJQkg4Z0NRVWdDQXVzSUJJUVVTSUpJQkpHQkVBZ0JrRUxhaUlKUVRBNkFBQUxJQkZCQW5JaEJpQUpRWDlxSUFoQkgzVkJBbkZCSzJvNkFBQWdDVUYrYWlJSUlBVkJEMm82QUFBZ0EwRUJTQ0VLSUFSQkNIRkZJUXNnRGlFRkEwQWdCU0FCcWlJSlFZRFlBR290QUFBZ0IzSTZBQUFnQVNBSnQ2RkVBQUFBQUFBQU1FQ2lJUUVnQlVFQmFpSUpJQk5yUVFGR0JIOGdDeUFLSUFGRUFBQUFBQUFBQUFCaGNYRUVmeUFKQlNBSlFTNDZBQUFnQlVFQ2Fnc0ZJQWtMSVFVZ0FVUUFBQUFBQUFBQUFHSU5BQXNnQTBFQ2FpRUpJQUJCSUNBQ0lCSWdDR3NpQnlBR2FpQURRUUJISUFVZ0Uyc2lCVUYrYWlBRFNIRUVmeUFKQlNBRklna0xhaUlESUFRUVV5QUFJQTBnQmhCTUlBQkJNQ0FDSUFNZ0JFR0FnQVJ6RUZNZ0FDQU9JQVVRVENBQVFUQWdDU0FGYTBFQVFRQVFVeUFBSUFnZ0J4Qk1JQUJCSUNBQ0lBTWdCRUdBd0FCekVGTWdBd3dDQ3lBSUJFQWdDeUFMS0FJQVFXUnFJZ2MyQWdBZ0FVUUFBQUFBQUFDd1FhSWhBUVVnQ3lnQ0FDRUhDeUFKUWFBQ2FpRUlJQWRCQUVnRWZ5QUpCU0FJSWdrTElRWURRQ0FHSUFHcklnZzJBZ0FnQmtFRWFpRUdJQUVnQ0xpaFJBQUFBQUJsemMxQm9pSUJSQUFBQUFBQUFBQUFZZzBBQ3lBSFFRQktCRUFnQ1NFSUEwQWdCMEVkU0FSL0lBY0ZRUjBMSVF3Z0JrRjhhaUlISUFoUEJFQWdESzBoR2tFQUlRb0RRQ0FISUFjb0FnQ3RJQnFHSUFxdGZDSWJRb0NVNjl3RGdqNENBQ0FiUW9DVTY5d0RnS2NoQ2lBSFFYeHFJZ2NnQ0U4TkFBc2dDZ1JBSUFoQmZHb2lDQ0FLTmdJQUN3c0RRQ0FHSUFoTEJFQWdCa0Y4YWlJSEtBSUFSUVJBSUFjaEJnd0NDd3NMSUFzZ0N5Z0NBQ0FNYXlJSE5nSUFJQWRCQUVvTkFBc0ZJQWtoQ0FzZ0EwRUFTQVIvUVFZRklBTUxJUXdnQjBFQVNBUkFJQXhCR1dwQkNXMUJBV29oRHlBUVFlWUFSaUVXSUFnaEF5QUdJUWdEUUVFQUlBZHJJZ3BCQ1U0RVFFRUpJUW9MSUFNZ0NFa0VRRUVCSUFwMFFYOXFJUmRCZ0pUcjNBTWdDblloRkVFQUlRY2dBeUVHQTBBZ0JpQUdLQUlBSWhnZ0NuWWdCMm8yQWdBZ0dDQVhjU0FVYkNFSElBWkJCR29pQmlBSVNRMEFDeUFEUVFScUlRWWdBeWdDQUVVRVFDQUdJUU1MSUFjRVFDQUlJQWMyQWdBZ0NFRUVhaUVJQ3dVZ0EwRUVhaUVHSUFNb0FnQkZCRUFnQmlFREN3c2dGZ1IvSUFrRklBTUxJZ1lnRDBFQ2RHb2hCeUFJSUFaclFRSjFJQTlLQkVBZ0J5RUlDeUFMSUFzb0FnQWdDbW9pQnpZQ0FDQUhRUUJJRFFBZ0NDRUtDd1VnQ0NFRElBWWhDZ3NnQ1NFUElBTWdDa2tFUUNBUElBTnJRUUoxUVFsc0lRZ2dBeWdDQUNJSFFRcFBCRUJCQ2lFR0EwQWdDRUVCYWlFSUlBY2dCa0VLYkNJR1R3MEFDd3NGUVFBaENBc2dFRUhuQUVZaEZpQU1RUUJISVJjZ0RDQVFRZVlBUndSL0lBZ0ZRUUFMYXlBWElCWnhRUjkwUVI5MWFpSUdJQW9nRDJ0QkFuVkJDV3hCZDJwSUJFQWdCa0dBeUFCcUlnWkJDVzBoQ3lBR1FRbHZRUUZxSWdaQkNVZ0VRRUVLSVFjRFFDQUhRUXBzSVFjZ0JrRUJhaUlHUVFsSERRQUxCVUVLSVFjTElBa2dDMEVDZEdwQmhHQnFJZ1lvQWdBaUVDQUhjQ0VMSUFaQkJHb2dDa1lpRkNBTFJYRkZCRUFnRUNBSGJrRUJjUVI4UkFFQUFBQUFBRUJEQlVRQUFBQUFBQUJBUXdzaEhDQUxJQWRCQW0waUdFa2hHU0FVSUFzZ0dFWnhCSHhFQUFBQUFBQUE4RDhGUkFBQUFBQUFBUGcvQ3lFQklCa0VRRVFBQUFBQUFBRGdQeUVCQ3lBUkJFQWdISm9oSGlBQm1pRWRJQTBzQUFCQkxVWWlGQVJBSUI0aEhBc2dGQVJBSUIwaEFRc0xJQVlnRUNBTGF5SUxOZ0lBSUJ3Z0FhQWdIR0lFUUNBR0lBc2dCMm9pQ0RZQ0FDQUlRZitUNjl3RFN3UkFBMEFnQmtFQU5nSUFJQVpCZkdvaUJpQURTUVJBSUFOQmZHb2lBMEVBTmdJQUN5QUdJQVlvQWdCQkFXb2lDRFlDQUNBSVFmK1Q2OXdEU3cwQUN3c2dEeUFEYTBFQ2RVRUpiQ0VJSUFNb0FnQWlDMEVLVHdSQVFRb2hCd05BSUFoQkFXb2hDQ0FMSUFkQkNtd2lCMDhOQUFzTEN3c2dBeUVMSUFnaEJ5QUtJQVpCQkdvaUNFMEVRQ0FLSVFnTEJTQURJUXNnQ0NFSElBb2hDQXNEUUFKQUlBZ2dDMDBFUUVFQUlSQU1BUXNnQ0VGOGFpSURLQUlBQkVCQkFTRVFCU0FESVFnTUFnc0xDMEVBSUFkcklSUWdGZ1JBSUJkQkFYTkJBWEVnREdvaUF5QUhTaUFIUVh0S2NRUi9JQVZCZjJvaEJTQURRWDlxSUFkckJTQUZRWDVxSVFVZ0EwRi9hZ3NoQXlBRVFRaHhJZ3BGQkVBZ0VBUkFJQWhCZkdvb0FnQWlEQVJBSUF4QkNuQUVRRUVBSVFZRlFRb2hDa0VBSVFZRFFDQUdRUUZxSVFZZ0RDQUtRUXBzSWdwd1JRMEFDd3NGUVFraEJnc0ZRUWtoQmdzZ0NDQVBhMEVDZFVFSmJFRjNhaUVNSUFWQklISkI1Z0JHQkVCQkFDRUtJQU1nRENBR2F5SUdRUUJLQkg4Z0JnVkJBQ0lHQzA0RVFDQUdJUU1MQlVFQUlRb2dBeUFNSUFkcUlBWnJJZ1pCQUVvRWZ5QUdCVUVBSWdZTFRnUkFJQVloQXdzTEN3VWdCRUVJY1NFS0lBd2hBd3NnQlVFZ2NrSG1BRVlpRHdSQVFRQWhCaUFIUVFCTUJFQkJBQ0VIQ3dVZ0VpSU1JQWRCQUVnRWZ5QVVCU0FIQzZ3Z0VoQlJJZ1pyUVFKSUJFQURRQ0FHUVg5cUlnWkJNRG9BQUNBTUlBWnJRUUpJRFFBTEN5QUdRWDlxSUFkQkgzVkJBbkZCSzJvNkFBQWdCa0YrYWlJSElBVTZBQUFnQnlFR0lBd2dCMnNoQndzZ0FFRWdJQUlnRVVFQmFpQURhaUFESUFweUlneEJBRWRxSUFkcUlnY2dCQkJUSUFBZ0RTQVJFRXdnQUVFd0lBSWdCeUFFUVlDQUJITVFVeUFQQkVBZ0RrRUphaUlOSVJJZ0RrRUlhaUVLSUFzZ0NVc0VmeUFKSWdzRklBc0xJUVlEUUNBR0tBSUFyU0FORUZFaEJTQUdJQXRHQkVBZ0JTQU5SZ1JBSUFwQk1Eb0FBQ0FLSVFVTEJTQUZJQTVMQkVBZ0RrRXdJQVVnRTJzUVl4b0RRQ0FGUVg5cUlnVWdEa3NOQUFzTEN5QUFJQVVnRWlBRmF4Qk1JQVpCQkdvaUJTQUpUUVJBSUFVaEJnd0JDd3NnREFSQUlBQkJrTmdBUVFFUVRBc2dCU0FJU1NBRFFRQktjUVJBQTBBZ0JTZ0NBSzBnRFJCUklna2dEa3NFUUNBT1FUQWdDU0FUYXhCakdnTkFJQWxCZjJvaUNTQU9TdzBBQ3dzZ0FDQUpJQU5CQ1VnRWZ5QURCVUVKQ3hCTUlBTkJkMm9oQ1NBRlFRUnFJZ1VnQ0VrZ0EwRUpTbkVFUUNBSklRTU1BUVVnQ1NFREN3c0xJQUJCTUNBRFFRbHFRUWxCQUJCVEJTQUxRUVJxSVFVZ0VBUi9JQWdGSUFVTElRMGdBMEYvU2dSQUlBcEZJUThnRGtFSmFpSU1JUkZCQUNBVGF5RVRJQTVCQ0dvaENpQUxJUWtnQXlFRkEwQWdDU2dDQUswZ0RCQlJJZ01nREVZRVFDQUtRVEE2QUFBZ0NpRURDd0pBSUFrZ0MwWUVRQ0FEUVFGcUlRZ2dBQ0FEUVFFUVRDQVBJQVZCQVVoeEJFQWdDQ0VEREFJTElBQkJrTmdBUVFFUVRDQUlJUU1GSUFNZ0RrME5BU0FPUVRBZ0F5QVRhaEJqR2dOQUlBTkJmMm9pQXlBT1N3MEFDd3NMSUFBZ0F5QUZJQkVnQTJzaUEwb0VmeUFEQlNBRkN4Qk1JQWxCQkdvaUNTQU5TU0FGSUFOcklnVkJmMHB4RFFBZ0JTRURDd3NnQUVFd0lBTkJFbXBCRWtFQUVGTWdBQ0FHSUJJZ0Jtc1FUQXNnQUVFZ0lBSWdCeUFFUVlEQUFITVFVeUFIQlNBRlFTQnhRUUJISWdNRWYwSHcxd0FGUWZUWEFBc2hCU0FCSUFGaVFRQnlJUWtnQXdSL1FmalhBQVZCL05jQUN5RUlJQUJCSUNBQ0lCRkJBMm9pQXlBRVFmLy9lM0VRVXlBQUlBMGdFUkJNSUFBZ0NRUi9JQWdGSUFVTFFRTVFUQ0FBUVNBZ0FpQURJQVJCZ01BQWN4QlRJQU1MQ3lFQUlCVWtDQ0FBSUFKSUJIOGdBZ1VnQUFzTGhoRUJBbjRDUUFKQUFrQUNRQ0FBdlNJQ1FqU0lJZ09uUWY4UGNRNkFFQUFDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQkFnc2dBU0FBUkFBQUFBQUFBQUFBWWdSL0lBQkVBQUFBQUFBQThFT2lJQUVRVlNFQUlBRW9BZ0JCUUdvRlFRQUxOZ0lBREFJTERBRUxJQUVnQTZkQi93OXhRWUo0YWpZQ0FDQUNRdi8vLy8vLy8vK0hnSCtEUW9DQWdJQ0FnSUR3UDRTL0lRQUxJQUFMb1FFQkFuOUJBQ0VDQWtBQ1FBSkFBMEFnQWtHUzJBQnFMUUFBSUFCR0RRRWdBa0VCYWlJQ1FkY0FSdzBBUWRjQUlRSkI2dGdBSVFBTUFnc0FDeUFDQkVCQjZ0Z0FJUUFNQVFWQjZ0Z0FJUUFMREFFTEEwQWdBQ0VEQTBBZ0EwRUJhaUVBSUFNc0FBQUVRQ0FBSVFNTUFRc0xJQUpCZjJvaUFnMEFDd3NnQVNnQ0ZDSUJCSDhnQVNnQ0FDQUJLQUlFSUFBUVZ3VkJBQXNpQVFSL0lBRUZJQUFMQzRJREFRcC9JQUFvQWdnZ0FDZ0NBRUdpMnUvWEJtb2lCaEJZSVFRZ0FDZ0NEQ0FHRUZnaEF5QUFLQUlRSUFZUVdDRUhBa0FnQkNBQlFRSjJTUVJBSUFNZ0FTQUVRUUowYXlJRlNTQUhJQVZKY1FSQUlBY2dBM0pCQTNFRVFFRUFJUUVGSUFOQkFuWWhDaUFIUVFKMklRdEJBQ0VGQTBBQ1FDQUFJQVVnQkVFQmRpSUhhaUlNUVFGMElnZ2dDbW9pQTBFQ2RHb29BZ0FnQmhCWUlRa2dBQ0FEUVFGcVFRSjBhaWdDQUNBR0VGZ2lBeUFCU1NBSklBRWdBMnRKY1VVRVFFRUFJUUVNQmdzZ0FDQURJQWxxYWl3QUFBUkFRUUFoQVF3R0N5QUNJQUFnQTJvUU15SURSUTBBSUFSQkFVWWhDQ0FFSUFkcklRUWdBMEVBU0NJREJFQWdCeUVFQ3lBRFJRUkFJQXdoQlFzZ0NFVU5BVUVBSVFFTUJRc0xJQUFnQ0NBTGFpSUNRUUowYWlnQ0FDQUdFRmdoQlNBQUlBSkJBV3BCQW5ScUtBSUFJQVlRV0NJQ0lBRkpJQVVnQVNBQ2EwbHhCRUFnQUNBQ2FpRUJJQUFnQWlBRmFtb3NBQUFFUUVFQUlRRUxCVUVBSVFFTEN3VkJBQ0VCQ3dWQkFDRUJDd3NnQVFzVUFRRi9JQUFRWnlFQ0lBRUVmeUFDQlNBQUN3czZBUUovSUFBb0FoQWdBRUVVYWlJREtBSUFJZ1JySWdBZ0Frc0VRQ0FDSVFBTElBUWdBU0FBRUdVYUlBTWdBeWdDQUNBQWFqWUNBQ0FDQzZJQ0FBSi9JQUFFZnlBQlFZQUJTUVJBSUFBZ0FUb0FBRUVCREFJTFFjdzlLQUlBS0FJQVJRUkFJQUZCZ0g5eFFZQy9BMFlFUUNBQUlBRTZBQUJCQVF3REJVSFFQRUhVQURZQ0FFRi9EQU1MQUFzZ0FVR0FFRWtFUUNBQUlBRkJCblpCd0FGeU9nQUFJQUFnQVVFL2NVR0FBWEk2QUFGQkFnd0NDeUFCUVlDd0Ewa2dBVUdBUUhGQmdNQURSbklFUUNBQUlBRkJESFpCNEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBRWdBQ0FCUVQ5eFFZQUJjam9BQWtFRERBSUxJQUZCZ0lCOGFrR0FnTUFBU1FSL0lBQWdBVUVTZGtId0FYSTZBQUFnQUNBQlFReDJRVDl4UVlBQmNqb0FBU0FBSUFGQkJuWkJQM0ZCZ0FGeU9nQUNJQUFnQVVFL2NVR0FBWEk2QUFOQkJBVkIwRHhCMUFBMkFnQkJmd3NGUVFFTEN3czRBQ0FBQkVBZ0FDZ0NUQm9nQUJCY0lRQUZRWUEvS0FJQUJIOUJnRDhvQWdBUVd3VkJBQXNoQUVHODZ3QVFCVUc4NndBUUNBc2dBQXVjQVFFR2Z3Si9Ba0FnQUVFVWFpSUJLQUlBSUFCQkhHb2lBaWdDQUUwTkFDQUFRUUJCQUNBQUtBSWtRUWR4UVFKcUVRRUFHaUFCS0FJQURRQkJmd3dCQ3lBQVFRUnFJZ01vQWdBaUJDQUFRUWhxSWdVb0FnQWlCa2tFUUNBQUlBUWdCbXRCQVNBQUtBSW9RUWR4UVFKcUVRRUFHZ3NnQUVFQU5nSVFJQUpCQURZQ0FDQUJRUUEyQWdBZ0JVRUFOZ0lBSUFOQkFEWUNBRUVBQ3lJQUN5SUJBWDhqQ0NFQkl3aEJFR29rQ0NBQklnTWdBallDQUNBQUlBTVFYaUFCSkFnTHFBRUJBbjhqQ0NFREl3aEJnQUZxSkFnZ0F5SUNRZ0EzQWdBZ0FrSUFOd0lJSUFKQ0FEY0NFQ0FDUWdBM0FoZ2dBa0lBTndJZ0lBSkNBRGNDS0NBQ1FnQTNBakFnQWtJQU53STRJQUpDQURjQ1FDQUNRZ0EzQWtnZ0FrSUFOd0pRSUFKQ0FEY0NXQ0FDUWdBM0FtQWdBa0lBTndKb0lBSkNBRGNDY0NBQ1FRQTJBbmdnQWtFRk5nSWdJQUlnQURZQ0xDQUNRWDgyQWt3Z0FpQUFOZ0pVSUFJZ0FSQTNJQU1rQ0FzS0FDQUFJQUVnQWhCZ0MyRUJCWDhnQUVIVUFHb2lCQ2dDQUNJRElBSkJnQUpxSWdVUVVpSUdJQU5ySVFjZ0FTQURJQVlFZnlBSEJTQUZDeUlCSUFKSkJIOGdBU0lDQlNBQ0N4QmxHaUFBSUFNZ0FtbzJBZ1FnQUNBRElBRnFJZ0EyQWdnZ0JDQUFOZ0lBSUFJTEpnRUJmeU1JSVFFakNFRVFhaVFJSUFFaUF5QUNOZ0lBSUFBZ0F4QkpJUUFnQVNRSUlBQUxBd0FCQzVvQ0FRUi9JQUFnQW1vaEJDQUJRZjhCY1NFQklBSkJ3d0JPQkVBRFFDQUFRUU54QkVBZ0FDQUJPZ0FBSUFCQkFXb2hBQXdCQ3dzZ0JFRjhjU0lGUWNBQWF5RUdJQUVnQVVFSWRISWdBVUVRZEhJZ0FVRVlkSEloQXdOQUlBQWdCa3dFUUNBQUlBTTJBZ0FnQUNBRE5nSUVJQUFnQXpZQ0NDQUFJQU0yQWd3Z0FDQUROZ0lRSUFBZ0F6WUNGQ0FBSUFNMkFoZ2dBQ0FETmdJY0lBQWdBellDSUNBQUlBTTJBaVFnQUNBRE5nSW9JQUFnQXpZQ0xDQUFJQU0yQWpBZ0FDQUROZ0kwSUFBZ0F6WUNPQ0FBSUFNMkFqd2dBRUhBQUdvaEFBd0JDd3NEUUNBQUlBVklCRUFnQUNBRE5nSUFJQUJCQkdvaEFBd0JDd3NMQTBBZ0FDQUVTQVJBSUFBZ0FUb0FBQ0FBUVFGcUlRQU1BUXNMSUFRZ0Ftc0xXd0VDZnlNSEtBSUFJZ0lnQUVFUGFrRndjU0lBYWlFQklBQkJBRW9nQVNBQ1NIRWdBVUVBU0hJRVFCQURHa0VNRUFkQmZ3OExJd2NnQVRZQ0FDQUJFQUpLQkVBUUFVVUVRQ01ISUFJMkFnQkJEQkFIUVg4UEN3c2dBZ3ZHQXdFRGZ5QUNRWURBQUU0RVFDQUFJQUVnQWhBS0R3c2dBQ0VFSUFBZ0Ftb2hBeUFBUVFOeElBRkJBM0ZHQkVBRFFDQUFRUU54QkVBZ0FrVUVRQ0FFRHdzZ0FDQUJMQUFBT2dBQUlBQkJBV29oQUNBQlFRRnFJUUVnQWtFQmF5RUNEQUVMQ3lBRFFYeHhJZ0pCd0FCcklRVURRQ0FBSUFWTUJFQWdBQ0FCS0FJQU5nSUFJQUFnQVNnQ0JEWUNCQ0FBSUFFb0FnZzJBZ2dnQUNBQktBSU1OZ0lNSUFBZ0FTZ0NFRFlDRUNBQUlBRW9BaFEyQWhRZ0FDQUJLQUlZTmdJWUlBQWdBU2dDSERZQ0hDQUFJQUVvQWlBMkFpQWdBQ0FCS0FJa05nSWtJQUFnQVNnQ0tEWUNLQ0FBSUFFb0FpdzJBaXdnQUNBQktBSXdOZ0l3SUFBZ0FTZ0NORFlDTkNBQUlBRW9BamcyQWpnZ0FDQUJLQUk4TmdJOElBQkJ3QUJxSVFBZ0FVSEFBR29oQVF3QkN3c0RRQ0FBSUFKSUJFQWdBQ0FCS0FJQU5nSUFJQUJCQkdvaEFDQUJRUVJxSVFFTUFRc0xCU0FEUVFScklRSURRQ0FBSUFKSUJFQWdBQ0FCTEFBQU9nQUFJQUFnQVN3QUFUb0FBU0FBSUFFc0FBSTZBQUlnQUNBQkxBQURPZ0FESUFCQkJHb2hBQ0FCUVFScUlRRU1BUXNMQ3dOQUlBQWdBMGdFUUNBQUlBRXNBQUE2QUFBZ0FFRUJhaUVBSUFGQkFXb2hBUXdCQ3dzZ0JBdGZBUUYvSUFFZ0FFZ2dBQ0FCSUFKcVNIRUVRQ0FBSVFNZ0FTQUNhaUVCSUFBZ0Ftb2hBQU5BSUFKQkFFb0VRQ0FDUVFGcklRSWdBRUVCYXlJQUlBRkJBV3NpQVN3QUFEb0FBQXdCQ3dzZ0F5RUFCU0FBSUFFZ0FoQmxHZ3NnQUFzckFDQUFRZjhCY1VFWWRDQUFRUWgxUWY4QmNVRVFkSElnQUVFUWRVSC9BWEZCQ0hSeUlBQkJHSFp5Q3d3QUlBRWdBRUVCY1JFQ0FBc1RBQ0FCSUFJZ0F5QUFRUWR4UVFKcUVRRUFDeE1BSUFFZ0FpQURJQUJCQjNGQkNtb1JBQUFMQ0FCQkFCQUFRUUFMQ0FCQkFSQUFRUUFMQmdCQkFoQUFDd3VmV2hzQVFZQUlDK0FueG1OanBmaDhmSVR1ZDNlWjludDdqZi95OGczV2EydTkzbTl2c1pIRnhWUmdNREJRQWdFQkE4NW5aNmxXS3l0OTUvNytHYlhYMTJKTnE2dm03SFoybW8vS3lrVWZnb0tkaWNuSlFQcDlmWWZ2K3ZvVnNsbFo2NDVIUjhuNzhQQUxRYTJ0N0xQVTFHZGZvcUw5UmErdjZpT2NuTDlUcEtUMzVISnlscHZBd0Z0MXQ3ZkM0ZjM5SEQyVGs2NU1KaVpxYkRZMlduNC9QMEgxOS9jQ2c4ek1UMmcwTkZ4UnBhWDAwZVhsTlBueDhRamljWEdUcTlqWWMySXhNVk1xRlJVL0NBUUVESlhIeDFKR0l5TmxuY1BEWGpBWUdDZzNscGFoQ2dVRkR5K2FtclVPQndjSkpCSVNOaHVBZ0p2ZjR1STl6ZXZySms0bkoybC9zckxONm5WMW54SUpDUnNkZzRPZVdDd3NkRFFhR2k0Mkd4c3QzRzV1c3JSYVd1NWJvS0Q3cEZKUzluWTdPMDIzMXRaaGZiT3p6bElwS1h2ZDQrTStYaTh2Y1JPRWhKZW1VMVAxdWRIUmFBQUFBQURCN2Uwc1FDQWdZT1A4L0I5NXNiSEl0bHRiN2RScWFyNk55OHRHWjc2KzJYSTVPVXVVU2tyZW1FeE0xTEJZV09pRno4OUt1OURRYThYdjd5cFBxcXJsN2Z2N0ZvWkRROFdhVFUzWFpqTXpWUkdGaFpTS1JVWFA2Zm41RUFRQ0FnYitmMytCb0ZCUThIZzhQRVFsbjUrNlM2aW80NkpSVWZOZG82UCtnRUJBd0FXUGo0by9rcEt0SVoyZHZIQTRPRWp4OWZVRVk3eTgzM2UydHNHdjJ0cDFRaUVoWXlBUUVERGwvLzhhL2ZQekRyL1MwbTJCemMxTUdBd01GQ1lURXpYRDdPd3Z2bDlmNFRXWGw2S0lSRVRNTGhjWE9aUEV4RmRWcDZmeS9INStnbm85UFVmSVpHU3N1bDFkNXpJWkdTdm1jM09Wd0dCZ29CbUJnWmllVDAvUm85emNmMFFpSW1aVUtpcCtPNUNRcXd1SWlJT01Sa2JLeCs3dUtXdTR1Tk1vRkJROHA5N2VlYnhlWHVJV0N3c2RyZHZiZHR2ZzREdGtNakpXZERvNlRoUUtDaDZTU1VuYkRBWUdDa2drSkd5NFhGemtuOExDWGIzVDAyNURyS3p2eEdKaXBqbVJrYWd4bFpXazArVGtOL0o1ZVl2VjUrY3lpOGpJUTI0M04xbmFiVzIzQVkyTmpMSFYxV1NjVGs3U1NhbXA0TmhzYkxTc1ZsYjY4L1QwQjgvcTZpWEtaV1d2OUhwNmprZXVydWtRQ0FnWWI3cTYxZkI0ZUloS0pTVnZYQzR1Y2pnY0hDUlhwcWJ4YzdTMHg1Zkd4bEhMNk9nam9kM2RmT2gwZEp3K0h4OGhsa3RMM1dHOXZkd05pNHVHRDRxS2hlQndjSkI4UGo1Q2NiVzF4TXhtWnFxUVNFallCZ01EQmZmMjlnRWNEZzRTd21GaG8ybzFOVit1VjFmNWFibTUwQmVHaHBHWndjRllPaDBkSnllZW5yblo0ZUU0Ni9qNEV5dVltTE1pRVJFejBtbHB1Nm5aMlhBSGpvNkpNNVNVcHkyYm03WThIaDRpRlllSGtzbnA2U0NIenM1SnFsVlYvMUFvS0hpbDM5OTZBNHlNajFtaG9mZ0ppWW1BR2cwTkYyVy92OXJYNXVZeGhFSkN4dEJvYUxpQ1FVSERLWm1ac0ZvdExYY2VEdzhSZTdDd3k2aFVWUHh0dTd2V0xCWVdPcVhHWTJPRStIeDhtZTUzZDQzMmUzc04vL0x5dmRacmE3SGViMjlVa2NYRlVHQXdNQU1DQVFHcHptZG5mVllyS3hubi92NWl0ZGZYNWsycnE1cnNkblpGajhyS25SK0Nna0NKeWNtSCtuMTlGZS82K3V1eVdWbkpqa2RIQy92dzhPeEJyYTFuczlUVS9WK2lvdXBGcjYrL0k1eWM5MU9rcEpia2NuSmJtOERBd25XM3R4emgvZjJ1UFpPVGFrd21KbHBzTmpaQmZqOC9BdlgzOTArRHpNeGNhRFEwOUZHbHBUVFI1ZVVJK2ZIeGsrSnhjWE9yMk5oVFlqRXhQeW9WRlF3SUJBUlNsY2ZIWlVZakkxNmR3OE1vTUJnWW9UZVdsZzhLQlFXMUw1cWFDUTRIQnpZa0VoS2JHNENBUGQvaTRpYk42K3RwVGljbnpYK3lzcC9xZFhVYkVna0puaDJEZzNSWUxDd3VOQm9hTFRZYkc3TGNibTd1dEZwYSsxdWdvUGFrVWxKTmRqczdZYmZXMXM1OXM3TjdVaWtwUHQzajQzRmVMeStYRTRTRTlhWlRVMmk1MGRFQUFBQUFMTUh0N1dCQUlDQWY0L3o4eUhteHNlMjJXMXUrMUdwcVJvM0x5OWxudnI1TGNqazUzcFJLU3RTWVRFem9zRmhZU29YUHoydTcwTkFxeGUvdjVVK3FxaGJ0Ky92RmhrTkQxNXBOVFZWbU16T1VFWVdGejRwRlJSRHArZmtHQkFJQ2dmNS9mL0NnVUZCRWVEdzh1aVdmbitOTHFLanpvbEZSL2wyam84Q0FRRUNLQlkrUHJUK1NrcndobloxSWNEZzRCUEgxOWQ5anZMekJkN2EyZGEvYTJtTkNJU0V3SUJBUUd1WC8vdzc5OC9OdHY5TFNUSUhOelJRWURBdzFKaE1UTDhQczdPRytYMStpTlplWHpJaEVSRGt1RnhkWGs4VEU4bFducDRMOGZuNUhlajA5ck1oa1pPZTZYVjByTWhrWmxlWnpjNkRBWUdDWUdZR0IwWjVQVDMrajNOeG1SQ0lpZmxRcUtxczdrSkNEQzRpSXlveEdSaW5IN3U3VGE3aTRQQ2dVRkhtbjN0N2l2RjVlSFJZTEMzYXQyOXM3MitEZ1ZtUXlNazUwT2pvZUZBb0syNUpKU1FvTUJnWnNTQ1FrNUxoY1hGMmZ3c0p1dmRQVDcwT3NyS2JFWW1Lb09aR1JwREdWbFRmVDVPU0w4bmw1TXRYbjUwT0x5TWhaYmpjM3Q5cHRiWXdCalkxa3NkWFYwcHhPVHVCSnFhbTAyR3hzK3F4V1ZnZno5UFFseitycXI4cGxaWTcwZW5ycFI2NnVHQkFJQ05WdnVycUk4SGg0YjBvbEpYSmNMaTRrT0J3YzhWZW1wc2R6dExSUmw4YkdJOHZvNkh5aDNkMmM2SFIwSVQ0Zkg5MldTMHZjWWIyOWhnMkxpNFVQaW9xUTRIQndRbncrUHNSeHRiV3F6R1ptMkpCSVNBVUdBd01COS9iMkVod09EcVBDWVdGZmFqVTErYTVYVjlCcHVibVJGNGFHV0puQndTYzZIUjI1SjU2ZU9Obmg0UlByK1Bpeks1aVlNeUlSRWJ2U2FXbHdxZG5aaVFlT2pxY3psSlMyTFp1Yklqd2VIcElWaDRjZ3llbnBTWWZPenYrcVZWVjRVQ2dvZXFYZjM0OERqSXo0V2FHaGdBbUppUmNhRFEzYVpiKy9NZGZtNXNhRVFrSzQwR2hvdzRKQlFiQXBtWmwzV2kwdEVSNFBEOHQ3c0xEOHFGUlUxbTI3dXpvc0ZoWmpwY1pqZklUNGZIZVo3bmQ3amZaNzhnMy84bXU5MW10dnNkNXZ4VlNSeFRCUVlEQUJBd0lCWjZuT1p5dDlWaXYrR2VmKzEySzExNnZtVGF0Mm11eDJ5a1dQeW9LZEg0TEpRSW5KZllmNmZmb1Y3L3BaNjdKWlI4bU9SL0FMKy9DdDdFR3QxR2V6MUtMOVg2S3Y2a1d2bkw4am5LVDNVNlJ5bHVSeXdGdWJ3TGZDZGJmOUhPSDlrNjQ5a3lacVRDWTJXbXcyUDBGK1AvY0M5ZmZNVDRQTU5GeG9OS1gwVWFYbE5OSGw4UWo1OFhHVDRuSFljNnZZTVZOaU1SVS9LaFVFREFnRXgxS1Z4eU5sUmlQRFhwM0RHQ2d3R0phaE41WUZEd29GbXJVdm1nY0pEZ2NTTmlRU2dKc2JnT0k5MytMckpzM3JKMmxPSjdMTmY3SjFuK3AxQ1JzU0NZT2VIWU1zZEZnc0dpNDBHaHN0Tmh0dXN0eHVXdTYwV3FEN1c2QlM5cVJTTzAxMk85Wmh0OWF6em4yektYdFNLZU0rM2VNdmNWNHZoSmNUaEZQMXBsUFJhTG5SQUFBQUFPMHN3ZTBnWUVBZy9CL2ovTEhJZWJGYjdiWmJhcjdVYXN0R2pjdSsyV2UrT1V0eU9VcmVsRXBNMUpoTVdPaXdXTTlLaGMvUWE3dlE3eXJGNzZybFQ2cjdGdTM3UThXR1EwM1htazB6VldZemhaUVJoVVhQaWtYNUVPbjVBZ1lFQW4rQi9uOVE4S0JRUEVSNFBKKzZKWitvNDB1b1VmT2lVYVArWGFOQXdJQkFqNG9GajVLdFA1S2R2Q0dkT0Vod09QVUU4Zlc4MzJPOHRzRjN0dHAxcjlvaFkwSWhFREFnRVA4YTVmL3pEdjN6MG0yLzBzMU1nYzBNRkJnTUV6VW1FK3d2dyt4ZjRiNWZsNkkxbDBUTWlFUVhPUzRYeEZlVHhLZnlWYWQrZ3Z4K1BVZDZQV1NzeUdSZDU3cGRHU3N5R1hPVjVuTmdvTUJnZ1pnWmdVL1Juay9jZjZQY0ltWkVJaXArVkNxUXF6dVFpSU1MaUViS2pFYnVLY2Z1dU5OcnVCUThLQlRlZWFmZVh1SzhYZ3NkRmd2YmRxM2I0RHZiNERKV1pESTZUblE2Q2g0VUNrbmJra2tHQ2d3R0pHeElKRnprdUZ6Q1haL0MwMjY5MDZ6dlE2eGlwc1Jpa2FnNWtaV2tNWlhrTjlQa2VZdnllZWN5MWVmSVE0dklOMWx1TjIyMzJtMk5qQUdOMVdTeDFVN1NuRTZwNEVtcGJMVFliRmI2ckZiMEIvUDA2aVhQNm1XdnltVjZqdlI2cnVsSHJnZ1lFQWk2MVcrNmVJandlQ1Z2U2lVdWNsd3VIQ1E0SEtieFY2YTB4M08weGxHWHh1Z2p5K2pkZktIZGRKem9kQjhoUGg5TDNaWkx2ZHhodll1R0RZdUtoUStLY0pEZ2NENUNmRDYxeEhHMVpxck1aa2pZa0VnREJRWUQ5Z0gzOWc0U0hBNWhvOEpoTlY5cU5WZjVybGU1MEdtNWhwRVhoc0ZZbWNFZEp6b2RucmtubnVFNDJlSDRFK3Y0bUxNcm1CRXpJaEZwdTlKcDJYQ3AyWTZKQjQ2VXB6T1VtN1l0bXg0aVBCNkhraFdINlNESjZjNUpoODVWLzZwVktIaFFLTjk2cGQrTWp3T01vZmhab1ltQUNZa05GeG9OdjlwbHYrWXgxK1pDeG9SQ2FMalFhRUhEZ2tHWnNDbVpMWGRhTFE4UkhnK3d5M3V3VlB5b1ZMdldiYnNXT2l3V1kyT2x4bng4aFBoM2Q1bnVlM3VOOXZMeURmOXJhNzNXYjIreDNzWEZWSkV3TUZCZ0FRRURBbWRucWM0ckszMVcvdjRaNTlmWFlyV3JxK1pOZG5hYTdNcktSWStDZ3AwZnljbEFpWDE5aC9yNitoWHZXVm5yc2tkSHlZN3c4QXY3cmEzc1FkVFVaN09pb3YxZnI2L3FSWnljdnlPa3BQZFRjbktXNU1EQVc1dTN0OEoxL2YwYzRaT1RyajBtSm1wTU5qWmFiRDgvUVg3Mzl3TDF6TXhQZ3pRMFhHaWxwZlJSNWVVMDBmSHhDUGx4Y1pQaTJOaHpxekV4VTJJVkZUOHFCQVFNQ01mSFVwVWpJMlZHdzhOZW5SZ1lLRENXbHFFM0JRVVBDcHFhdFM4SEJ3a09FaEkySklDQW14dmk0ajNmNitzbXpTY25hVTZ5c3MxL2RYV2Y2Z2tKR3hLRGc1NGRMQ3gwV0JvYUxqUWJHeTAyYm02eTNGcGE3clNnb1B0YlVsTDJwRHM3VFhiVzFtRzNzN1BPZlNrcGUxTGo0ejdkTHk5eFhvU0VseE5UVS9XbTBkRm91UUFBQUFEdDdTekJJQ0JnUVB6OEgrT3hzY2g1VzF2dHRtcHF2dFRMeTBhTnZyN1paems1UzNKS1N0NlVURXpVbUZoWTZMRFB6MHFGME5CcnUrL3ZLc1dxcXVWUCsvc1c3VU5EeFlaTlRkZWFNek5WWm9XRmxCRkZSYytLK2ZrUTZRSUNCZ1IvZjRIK1VGRHdvRHc4UkhpZm43b2xxS2pqUzFGUjg2S2pvLzVkUUVEQWdJK1BpZ1dTa3EwL25aMjhJVGc0U0hEMTlRVHh2THpmWTdhMndYZmEybld2SVNGalFoQVFNQ0QvL3hybDgvTU8vZExTYmIvTnpVeUJEQXdVR0JNVE5TYnM3Qy9EWDEvaHZwZVhvalZFUk15SUZ4YzVMc1RFVjVPbnAvSlZmbjZDL0QwOVIzcGtaS3pJWFYzbnVoa1pLekp6YzVYbVlHQ2d3SUdCbUJsUFQ5R2UzTngvb3lJaVprUXFLbjVVa0pDck80aUlnd3RHUnNxTTd1NHB4N2k0MDJzVUZEd28zdDU1cDE1ZTRyd0xDeDBXMjl0MnJlRGdPOXN5TWxaa09qcE9kQW9LSGhSSlNkdVNCZ1lLRENRa2JFaGNYT1M0d3NKZG45UFRicjJzck85RFltS214SkdScURtVmxhUXg1T1EzMDNsNWkvTG41ekxWeU1oRGl6YzNXVzV0YmJmYWpZMk1BZFhWWkxGT1R0S2NxYW5nU1d4c3ROaFdWdnFzOVBRSDgrcnFKYzlsWmEvS2VucU85SzZ1NlVjSUNCZ1F1cnJWYjNoNGlQQWxKVzlLTGk1eVhCd2NKRGltcHZGWHRMVEhjOGJHVVpmbzZDUEwzZDE4b1hSMG5PZ2ZIeUUrUzB2ZGxyMjkzR0dMaTRZTmlvcUZEM0J3a09BK1BrSjh0YlhFY1dabXFzeElTTmlRQXdNRkJ2YjJBZmNPRGhJY1lXR2p3alUxWDJwWFYvbXV1Ym5RYVlhR2tSZkJ3VmlaSFIwbk9wNmV1U2ZoNFRqWitQZ1Q2NWlZc3lzUkVUTWlhV203MHRuWmNLbU9qb2tIbEpTbk01dWJ0aTBlSGlJOGg0ZVNGZW5wSU1uT3prbUhWVlgvcWlnb2VGRGYzM3Fsakl5UEE2R2grRm1KaVlBSkRRMFhHcisvMm1YbTVqSFhRa0xHaEdob3VOQkJRY09DbVptd0tTMHRkMW9QRHhFZXNMRExlMVJVL0tpN3U5WnRGaFk2TEFFQUFBQUFBQUFBZ29BQUFBQUFBQUNLZ0FBQUFBQUFnQUNBQUlBQUFBQ0FpNEFBQUFBQUFBQUJBQUNBQUFBQUFJR0FBSUFBQUFDQUNZQUFBQUFBQUlDS0FBQUFBQUFBQUlnQUFBQUFBQUFBQ1lBQWdBQUFBQUFLQUFDQUFBQUFBSXVBQUlBQUFBQUFpd0FBQUFBQUFJQ0pnQUFBQUFBQWdBT0FBQUFBQUFDQUFvQUFBQUFBQUlDQUFBQUFBQUFBZ0FxQUFBQUFBQUFBQ2dBQWdBQUFBSUNCZ0FDQUFBQUFnSUNBQUFBQUFBQ0FBUUFBZ0FBQUFBQUlnQUNBQUFBQWdCTSsyeStoUk5ETTY2bDVHakNRTmVodmJvRlBZYUN1VmR1VW02NmtaeWNxZzNiZGRGNENCdXhSWW5URXpUYWs1NFhST2puNXVtL0RFL3p0TXhpNjdUNklhajhrMHdpamhTNktHUk5FYzNBRElqZ0pwTkF4bnltWStpNElpV3hPN09ZaEtFVjNFOUE0ejJaVXZtd002VFMzS2F6QTNWQjh5YlhWaEQ4WENVZTFBUUFBQUFJQUFBQURBQUFBQkFBQUFNWXk5S1gwbDZYRytHK1hoSmZyaFBqdVhyQ1pzTWVaN3ZaNmpJMk05NDMyLytnWERSZmxEZi9XQ3R5OTNMZTkxdDRXeUxISXA3SGVrVzM4VlB3NVZKRmdrUEJROE1CUVlBSUhCUU1GQkFNQ3ppN2dxZUNIcWM1VzBZZDloNng5VnVmTUt4a3IxUm5udFJPbVlxWnhZclZOZkRIbU1acm1UZXhadFpxMXc1cnNqMERQUmM4RlJZOGZvN3lkdkQ2ZEg0bEp3RURBQ1VDSittaVNoNUx2aC9ydjBEOFZQOFVWNzdLVUp1c21mK3V5anM1QXlVQUh5WTc3NWgwTEhlMEwrMEZ1TCt3dmd1eEJzeHFwWjZsOVo3TmZReHo5SEw3OVgwVmdKZW9saXVwRkkvbmF2OXBHdnlOVFVRTDNBcWIzVStSRm9aYWgwNWJrbTNidFcrMHRXNXQxS0YzQ1hlckNkZUhGSkJ3azJSemhQZFRwcnVsNnJqMU04cjVxdnBocVRHeUM3bHJ1MkZwc2ZyM0RRY1A4UVg3MTh3WUNCdkVDOVlOUzBVL1JIVStEYUl6a1hPVFFYR2hSVmdmMEI2TDBVZEdOWERSY3VUVFIrZUVZQ0JqcENQbmlUSzZUcnQrVDRxcytsWE9WVFhPcllwZjFVL1hFVTJJcWEwRS9RVlEvS2dnY0ZBd1VFQXdJbFdQMlV2WXhVcFZHNmE5bHI0eGxScDEvNGw3aUlWNmRNRWg0S0hoZ0tEQTN6L2loK0c2aE53b2JFUThSRkE4S0wrdkV0Y1JldFM4T0ZSc0pHeHdKRGlSK1dqWmFTRFlrRzYyMm03WTJteHZmbUVjOVI2VTkzODJuYWlacWdTYk5Udlc3YWJ1Y2FVNS9NMHpOVFA3TmYrcFF1cCs2ejUvcUVqOHRHeTBrR3hJZHBMbWV1VHFlSFZqRW5IU2NzSFJZTkVaeUxuSm9MalEyUVhjdGQyd3ROdHdSemJMTm83TGN0SjBwN2lsejdyUmJUUmI3RnJiN1c2U2xBZllCVS9ha2RxSFhUZGZzVFhhM0ZLTmhvM1ZodDMwMFNjNUorczU5VXQrTmU0MmtlMUxkbjBJK1FxRSszVjdOazNHVHZIRmVFN0dpbDZJbWx4T21vZ1QxQkZmMXBya0J1R2k0YVdpNUFFSG9Md3VsRE1HMWRDeDBtU3pCUU9DZ1lLQ0FZRURqd2lFZklkMGY0M2s2UThoRDhzaDV0cG9zN1N4MzdiYlVEZG0rMmJPKzFJMUh5a2JLQVVhTlp4ZHcyWERPMldkeXI5MUwzZVJMY3BUdGVkNTVNOTZVbVA5bjFHY3IxSml3a3lQb0kzdm9zSVZiM2tyZUVVcUZ1d2E5YTcxdGE3dkZ1MzRxZnBFcXhVOTdOT1UwbnVWUDdkYzZGanJCRnUyRzBsVEZWQmZGaHByNFl0ZGlMOWVhWnBuL1ZmL01WV1lSdHFlVXB5S1VFWXJBU3M5S0Q4K0s2ZGt3RURESkVPa0VEZ29HQ2dnR0JQNW1tSUdZNTRIK29Lc0w4QXRiOEtCNHRNeEV6UEJFZUNYdzFiclZTcm9sUzNVKzR6Nlc0MHVpckE3ekRsL3pvbDFFR2Y0WnV2NWRnTnRid0ZzYndJQUZnSVdLaFFxS0JUL1Q3SzNzZnEwL0lmN2Z2TjlDdkNGd3FOaEkyT0JJY1BIOURBUU0rUVR4WXhsNjMzckczMk4zTDFqQldPN0JkNjh3bjNXZlJYV3ZRdWVsWTZXRVkwSWdjRkF3VUVBd0lPWExMaG91MFJybC9lOFNEaExoRHYyL0NMZHR0MlZ0djRGVjFFelVHVXlCR0NROEZEd3dGQmdtZVY4MVgwdzFKc095Y1M5eG5TL0R2b1k0NFRobjRiNDF5UDJpL1dxaU5ZakhUOHhQQzh5SUxtVkxPVXRjT1M2VGF2bFgrVDFYazFWWURmSU5xdkpWL0dHZGdwM2pndng2czhsSHlmUkhlc2duNzZ6dmk2ekl1b2d5NXpKdjU3b3lUMzByZldRck11WkNwSldrMTVYbXdEdjdvUHVib01BWnFyT1lzektZR1o3MmFORm9KOUdlb3lLQmY0RmRmNk5FN3FwbXFvaG1SRlRXZ242Q3FINVVPOTNtcStaMnF6c0xsWjZEbmhhREM0ekpSY3BGQThxTXg3eDdLWHVWS2NkckJXN1RidGJUYXloc1JEeEVVRHdvcHl5TGVZdFZlYWU4Z1QzaVBXUGl2Qll4SngwbkxCMFdyVGVhZHBwQmRxM2JsazA3VGEwNzIyU2UrbGI2eUZaa2RLYlNUdExvVG5RVU5pSWVJaWdlRkpMa2R0dDJQOXVTREJJZUNoNFlDZ3hJL0xSc3RKQnNTTGlQTitRM2ErUzRuM2puWGVjbFhaKzlEN0p1c21GdXZVTnBLdThxaHU5RHhEWHhwdkdUcHNRNTJ1T280M0tvT1RIRzk2VDNZcVF4MDRwWk4xbTlOOVB5ZElhTGh2K0w4dFdEVmpKV3NUTFZpMDdGUThVTlE0dHVoZXRaNjl4WmJ0b1l3cmZDcjdmYUFZNlBqSThDakFHeEhheGtySGxrc1p6eGJkSnRJOUtjU1hJNzREdVM0RW5ZSDhlMHg2dTAyS3k1RmZvVlEvcXM4L29KQnduOUIvUFBvRzhsYjRVbHo4b2c2cS9xajYvSzlIMkpqb256anZSSFp5RHBJSTdwUnhBNEtCZ29JQmdRYnd0azFXVGUxVy93YzRPSWcvdUk4RXI3c1creGxHOUtYTXFXY3BhNGNsdzRWR3drYkhBa09GZGZDUEVJcnZGWGN5RlN4MUxteDNPWFpQTlI4elZSbDh1dVpTTmxqU1BMb1NXRWZJUlpmS0hvVjcrY3Y4dWM2RDVkWXlGamZDRStsdXA4M1h3MzNaWmhIbi9jZjhMY1lRMmNrWWFSR29ZTkQ1dVVoWlFlaFEvZ1M2dVFxOXVRNEh5NnhrTEcrRUo4Y1NaWHhGZml4SEhNS2VXcTVZT3F6SkRqYzloek85aVFCZ2tQQlE4TUJRYjM5QU1CQS9VQjl4d3FOaEkyT0JJY3dqeitvLzZmbzhKcWkrRmY0ZFJmYXE2K0VQa1FSL211YVFKcjBHdlMwR2tYdjZpUnFDNlJGNWx4NkZqb0tWaVpPbE5wSjJsMEp6b245OUM1MEU2NUo5bVJTRGhJcVRqWjY5NDFFelhORStzcjVjNnp6bGF6S3lKM1ZUTlZSRE1pMGdUV3U5YS91OUtwT1pCd2tFbHdxUWVIZ0ltQURva0hNOEh5cC9KbXB6TXQ3TUcyd1ZxMkxUeGFaaUptZUNJOEZiaXRrcTBxa2hYSnFXQWdZSWtneVlkYzIwbmJGVW1IcXJBYS94cFAvNnBRMkloNGlLQjRVS1Vyam5xT1VYcWxBNG1LajRvR2p3TlpTaFA0RTdMNFdRbVNtNENiRW9BSkdpTTVGemswRnhwbEVIWGFkY3JhWmRlRVV6RlR0VEhYaE5WUnhsRVR4b1RRQTlPNDA3dTQwSUxjWHNOZUg4T0NLZUxMc010U3NDbGF3NWwzbWJSM1doNHRNeEV6UEJFZWV6MUd5MGIyeTN1b3R4LzhIMHY4cUcwTVlkWmgydFp0TEdKT09rNVlPaXdCQUFBQUF3QUFBQVlBQUFBS0FBQUFEd0FBQUJVQUFBQWNBQUFBSkFBQUFDMEFBQUEzQUFBQUFnQUFBQTRBQUFBYkFBQUFLUUFBQURnQUFBQUlBQUFBR1FBQUFDc0FBQUErQUFBQUVnQUFBQ2NBQUFBOUFBQUFGQUFBQUN3QUFBQUtBQUFBQndBQUFBc0FBQUFSQUFBQUVnQUFBQU1BQUFBRkFBQUFFQUFBQUFnQUFBQVZBQUFBR0FBQUFBUUFBQUFQQUFBQUZ3QUFBQk1BQUFBTkFBQUFEQUFBQUFJQUFBQVVBQUFBRGdBQUFCWUFBQUFKQUFBQUJnQUFBQUVBUWN3OUN3S2dOUUJCaEQ0TEFRVUFRWkErQ3dFQkFFR29QZ3NPQVFBQUFBSUFBQURNTlFBQUFBUUFRY0ErQ3dFQkFFSFBQZ3NGQ3YvLy8vOEFRWUEvQy9nQkJCOEFBQUlBQU1BREFBREFCQUFBd0FVQUFNQUdBQURBQndBQXdBZ0FBTUFKQUFEQUNnQUF3QXNBQU1BTUFBREFEUUFBd0E0QUFNQVBBQURBRUFBQXdCRUFBTUFTQUFEQUV3QUF3QlFBQU1BVkFBREFGZ0FBd0JjQUFNQVlBQURBR1FBQXdCb0FBTUFiQUFEQUhBQUF3QjBBQU1BZUFBREFId0FBd0FBQUFMTUJBQUREQWdBQXd3TUFBTU1FQUFEREJRQUF3d1lBQU1NSEFBRERDQUFBd3drQUFNTUtBQUREQ3dBQXd3d0FBTU1OQUFEVERnQUF3dzhBQU1NQUFBeTdBUUFNd3dJQURNTURBQXpEQkFBTTB3b0FBQUJrQUFBQTZBTUFBQkFuQUFDZ2hnRUFRRUlQQUlDV21BQUE0ZlVGWDNDSkFQOEpMdzhBUVp6QkFBc0JBd0JCdzhFQUN3WC8vLy8vL3dCQjljRUFDK0FCQVFJREJBVUdCd2dKQ2dzTURRNFBEZ29FQ0FrUERRWUJEQUFDQ3djRkF3c0lEQUFGQWc4TkNnNERCZ2NCQ1FRSENRTUJEUXdMRGdJR0JRb0VBQThJQ1FBRkJ3SUVDZzhPQVFzTUJnZ0REUUlNQmdvQUN3Z0RCQTBIQlE4T0FRa01CUUVQRGcwRUNnQUhCZ01KQWdnTERRc0hEZ3dCQXdrRkFBOEVDQVlDQ2dZUERna0xBd0FJREFJTkJ3RUVDZ1VLQWdnRUJ3WUJCUThMQ1E0RERBMEFBQUVDQXdRRkJnY0lDUW9MREEwT0R3NEtCQWdKRHcwR0FRd0FBZ3NIQlFNTENBd0FCUUlQRFFvT0F3WUhBUWtFQndrREFRME1DdzRDQmdVS0JBQVBDSUFBUVpURUFBdUFFT3VZbzBFc0lOUHJrczIrZTV5eVJjRWNrMUdSWU5USCtpWUFndForVUlvRHBDT2VKbmNtdVVYZyt4cEkxQnFVZDgyMXF5WUNheGQ2VnZBa1FnLy9MNmh4bzVhSmZ5NU5kUjBVU1FqM2ZlSmlKM2FWOTNZa2o1U0gxYlpYUjRBcGJGeGVKeTJzamcxc1VZUlF4bGNGZWc5NzVOTm5jQ1FTNm9uanF4UFRITmRwY3RYZW90OFYrR2Q3aEJVS3R5TVZWNEdyMXBCTldvZjJUcDlQeGNQUkswRHFtRHJnWEVYNm5BUEYwcGxtc3BtYVpnS1d0UEs3VTRxMVZoUWFpTnVpTVFPaldseWFHUTdiUUQreUNvZkJSQkFjQlJtQWhKNlZIVzh6NjYxZTU4M2NFTG9Ua2dLL2EwSGNlR1VWOTdzbjBBb3NnVGszcW5oUVB4cS8wa0VBa2ROQ0xWb045c3gra04xaW41eVN3SmZPR0Z5bkM4Y3JSS3pSMzJYV1k4YjhJNWR1YkFPZTRMZ2FJUVZGZmtSczdLanU4UU83WFk1aCt2MldsN0tVZzRHWFNvNkZOOXNETUM4cVo0MHQrNTlxbFlyK2M0SDR1R2xzaXNkeVJzQi9RaFRGOUJXUHZjZGV4SFZFYjZlUEVidUFVdDUxdDY3a2lMeUN1QUFlbUthajlJNzBqek9wbzJNVnFsOVdKTlczK1ltMjhlMGdmRnJnL1RiSzZWb0dRaXcyemlrMVEwNyttRDFUT3ZsMGM1cExwOUQxSDFsdlRvR0dEcDJ0Z2EvWVdwK25CUVpuN2pSaWFvc0xLTDV1dVJjblIzUUhKc2FBRUQvZ29INXZ4bjVJZXcxVkNxVksrS1RBa2VQbm41ZU84WjZHZG5LQlVHQ04xSDZlV2tIejViQmkvSjhmN0VCVUlIcmo1Qm9BenZUSmhFL1hsUFdkK3BYWVZTNStFU1REVktWYjMzSW92ZjV1S0hqMWYrSVBwY1N5QllsODcrNUoweTVFZnBPRjZ5aFpmM0JmYVRlekpERktYb1lvOFIzVzVHWEhHM2NFVWJrZzUzVCtRK2dqMUllS2ZTbm9vNUoybFBMZHkzb0ptekRad1IwYk1QdGIzQnZnMmlSSlQvS2NncitrNTdveHRIQy8vdzB5UkFYZStMeElPNjc4TWxPNzB6bEZuOFBCNENtTG9PWEpCZjMzcmdrUGxIQTBFa0tROFRTaWNiY0I0MFR0bGVrN2pqWlBMNWhLaUVBZFk2QnM5aFZId1VSTGgxS3YvMzY3U3ZIaUNzWXdSbkMyeGN4dWpPYWsxYVJXdlUvS0FOcWRoRXZJUGhpdWMxZk9SVEJrMGEzb3BzNW9GRndsWjZQYWpQTExEdUVXTStrR1dKcVVtWm9mWUxJZ3dtK0VlOUhPckgrZzBZVVlNbGxib1kzZEdkTlFtaHpBcXFXMFJwODlZMmZrQkd1Njlzb1pxd3RXN240ZnNYbnFxU2doZE9tOTl6VTdObEh1SFZlc1duVlEwM1k2UnNMK28zMXdBZmMxd2ErWXBOaENlTzNzSUo1clozbEJnMk1WNmpyYnFQckRPMDB5Z3l5RHAwQTdIeHduUi9OWlFQQTB0eTEybXVjK1RtelNJVS85dVAyTk9keFhXZStObXd4SkswbnIybHVpMTBsbzgzQU5mVHV1MEhxTlZZVDFwZW53NVBpT1phQzRvdlEyRUR0VERLZ0hublUrN0ZxUmFKU1NWdWlJVDF1d1hGWDR1cnhNNDdzN21mT0hsSHQxMnZUV2Ntc2NYV1N1ckNqY05MTnRiRFNsVUxnbzIzSDRZZUx5RUkxUkt1UGJaRE5aM1hYOEhLeTg4VVBPUDZKbnU5RThBdWhEc0RNS1c4cUlLYUYxZnpRWlRiUVdVMXlTTzVURERubE5IbmwwZGRlMjdxOC82cWpVOTc0YU9TRmM5SDRKVENNblVTYWpKRk82TWp6U1JLTVhTbTJtMWEyMUhUNm1yL0xKQ0lOWlBaaVJhenhXVFBoOG9YS0dZRTFHNGo3TUNHN0g5aStZTTdPeHZIWmVLOVptcGUvRTVpb0c5TGJvdnNIVU5uVHVnaFc4N3lGai9jRk9EZlJUeVdtbmZWckVCbGhZSm43QkZCWUc0UG9XZnBDdlBTaGpuVC9TeWZMakFKdlNERitxempDMzFBd3dkQ3BSRnZMZ01wZ042ekRZNDg3NG1rdkZubnUxOFhtUy8xSG1iZ1NHYU5PYkkwMVg1cFpuTWN6bXB2TVhDblVGc1hhQjJSTXliTTQ4RjFLRStBV2lZdlFyeTdONFJ4VkgvMFpVZ2lPVGFrZzQzMWdIVGw1bFpmTDhmSW44aGxDT01YQXVSTkFMeW9id1FBbWlNSGhIVG1XZzdqblI5emlEOTE3cE4rUXNPcjBobDdJbUFSUDRiNk5FN2RIdm45N25pNkRmRlhZbGt0azhoZmYyRXR4Q3Z0aW43SHlySjdCK1U0MTkycW8rcU42cUpjNlR2UUpwMkZyMlEvMGFjd2o1d0YvdjJoZEtHYVdYVFdZelRQMGhhalcwbURIYlFSVnc2aDRQdSszTlZKdWEwR09oVVpkQWN2WjFuYitSUjIvaUpUQXllQUFsTW1ob2VBQmpmSGQ3OG10dnhUQUJaeXYrMTZ0MnlvTEpmZnBaUi9DdDFLS3ZuS1J5d0xmOWt5WTJQL2ZNTktYbDhYSFlNUlVFeHlQREdKWUZtZ2NTZ09Mcko3SjFDWU1zR2h0dVdxQlNPOWF6S2VNdmhGUFJBTzBnL0xGYmFzdStPVXBNV00vUTc2cjdRMDB6aFVYNUFuOVFQSitvVWFOQWo1S2RPUFc4dHRvaEVQL3owczBNRSt4ZmwwUVh4S2QrUFdSZEdYTmdnVS9jSWlxUWlFYnV1QlRlWGd2YjRESTZDa2tHSkZ6QzA2eGlrWlhrZWVmSU4yMk4xVTZwYkZiMDZtVjZyZ2k2ZUNVdUhLYTB4dWpkZEI5THZZdUtjRDYxWmtnRDlnNWhOVmU1aHNFZG51SDRtQkZwMlk2VW14Nkg2YzVWS04rTW9Za052K1pDYUVHWkxRK3dWTHNXQVFJRUNCQWdRSUFiTm1sdVptbHVhWFI1QVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBUUlEQkFVR0J3Z0ovLy8vLy8vLy93b0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJai8vLy8vLy8vQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQUVDQkFjREJnVUFFUUFLQUJFUkVRQUFBQUFGQUFBQUFBQUFDUUFBQUFBTEFFR2MxQUFMSVJFQUR3b1JFUkVEQ2djQUFSTUpDd3NBQUFrR0N3QUFDd0FHRVFBQUFCRVJFUUJCemRRQUN3RUxBRUhXMUFBTEdCRUFDZ29SRVJFQUNnQUFBZ0FKQ3dBQUFBa0FDd0FBQ3dCQmg5VUFDd0VNQUVHVDFRQUxGUXdBQUFBQURBQUFBQUFKREFBQUFBQUFEQUFBREFCQndkVUFDd0VPQUVITjFRQUxGUTBBQUFBRURRQUFBQUFKRGdBQUFBQUFEZ0FBRGdCQis5VUFDd0VRQUVHSDFnQUxIZzhBQUFBQUR3QUFBQUFKRUFBQUFBQUFFQUFBRUFBQUVnQUFBQklTRWdCQnZ0WUFDdzRTQUFBQUVoSVNBQUFBQUFBQUNRQkI3OVlBQ3dFTEFFSDcxZ0FMRlFvQUFBQUFDZ0FBQUFBSkN3QUFBQUFBQ3dBQUN3QkJxZGNBQ3dFTUFFRzExd0FMdnc4TUFBQUFBQXdBQUFBQUNRd0FBQUFBQUF3QUFBd0FBQzBySUNBZ01GZ3dlQUFvYm5Wc2JDa0FMVEJZS3pCWUlEQllMVEI0S3pCNElEQjRBR2x1WmdCSlRrWUFibUZ1QUU1QlRnQXdNVEl6TkRVMk56ZzVRVUpEUkVWR0xnQlVJU0laRFFFQ0F4RkxIQXdRQkFzZEVoNG5hRzV2Y0hGaUlBVUdEeE1VRlJvSUZnY29KQmNZQ1FvT0d4OGxJNE9DZlNZcUt6dzlQajlEUjBwTldGbGFXMXhkWGw5Z1lXTmtaV1puYVdwcmJISnpkSGw2ZTN3QVNXeHNaV2RoYkNCaWVYUmxJSE5sY1hWbGJtTmxBRVJ2YldGcGJpQmxjbkp2Y2dCU1pYTjFiSFFnYm05MElISmxjSEpsYzJWdWRHRmliR1VBVG05MElHRWdkSFI1QUZCbGNtMXBjM05wYjI0Z1pHVnVhV1ZrQUU5d1pYSmhkR2x2YmlCdWIzUWdjR1Z5YldsMGRHVmtBRTV2SUhOMVkyZ2dabWxzWlNCdmNpQmthWEpsWTNSdmNua0FUbThnYzNWamFDQndjbTlqWlhOekFFWnBiR1VnWlhocGMzUnpBRlpoYkhWbElIUnZieUJzWVhKblpTQm1iM0lnWkdGMFlTQjBlWEJsQUU1dklITndZV05sSUd4bFpuUWdiMjRnWkdWMmFXTmxBRTkxZENCdlppQnRaVzF2Y25rQVVtVnpiM1Z5WTJVZ1luVnplUUJKYm5SbGNuSjFjSFJsWkNCemVYTjBaVzBnWTJGc2JBQlNaWE52ZFhKalpTQjBaVzF3YjNKaGNtbHNlU0IxYm1GMllXbHNZV0pzWlFCSmJuWmhiR2xrSUhObFpXc0FRM0p2YzNNdFpHVjJhV05sSUd4cGJtc0FVbVZoWkMxdmJteDVJR1pwYkdVZ2MzbHpkR1Z0QUVScGNtVmpkRzl5ZVNCdWIzUWdaVzF3ZEhrQVEyOXVibVZqZEdsdmJpQnlaWE5sZENCaWVTQndaV1Z5QUU5d1pYSmhkR2x2YmlCMGFXMWxaQ0J2ZFhRQVEyOXVibVZqZEdsdmJpQnlaV1oxYzJWa0FFaHZjM1FnYVhNZ1pHOTNiZ0JJYjNOMElHbHpJSFZ1Y21WaFkyaGhZbXhsQUVGa1pISmxjM01nYVc0Z2RYTmxBRUp5YjJ0bGJpQndhWEJsQUVrdlR5Qmxjbkp2Y2dCT2J5QnpkV05vSUdSbGRtbGpaU0J2Y2lCaFpHUnlaWE56QUVKc2IyTnJJR1JsZG1salpTQnlaWEYxYVhKbFpBQk9ieUJ6ZFdOb0lHUmxkbWxqWlFCT2IzUWdZU0JrYVhKbFkzUnZjbmtBU1hNZ1lTQmthWEpsWTNSdmNua0FWR1Y0ZENCbWFXeGxJR0oxYzNrQVJYaGxZeUJtYjNKdFlYUWdaWEp5YjNJQVNXNTJZV3hwWkNCaGNtZDFiV1Z1ZEFCQmNtZDFiV1Z1ZENCc2FYTjBJSFJ2YnlCc2IyNW5BRk41YldKdmJHbGpJR3hwYm1zZ2JHOXZjQUJHYVd4bGJtRnRaU0IwYjI4Z2JHOXVad0JVYjI4Z2JXRnVlU0J2Y0dWdUlHWnBiR1Z6SUdsdUlITjVjM1JsYlFCT2J5Qm1hV3hsSUdSbGMyTnlhWEIwYjNKeklHRjJZV2xzWVdKc1pRQkNZV1FnWm1sc1pTQmtaWE5qY21sd2RHOXlBRTV2SUdOb2FXeGtJSEJ5YjJObGMzTUFRbUZrSUdGa1pISmxjM01BUm1sc1pTQjBiMjhnYkdGeVoyVUFWRzl2SUcxaGJua2diR2x1YTNNQVRtOGdiRzlqYTNNZ1lYWmhhV3hoWW14bEFGSmxjMjkxY21ObElHUmxZV1JzYjJOcklIZHZkV3hrSUc5alkzVnlBRk4wWVhSbElHNXZkQ0J5WldOdmRtVnlZV0pzWlFCUWNtVjJhVzkxY3lCdmQyNWxjaUJrYVdWa0FFOXdaWEpoZEdsdmJpQmpZVzVqWld4bFpBQkdkVzVqZEdsdmJpQnViM1FnYVcxd2JHVnRaVzUwWldRQVRtOGdiV1Z6YzJGblpTQnZaaUJrWlhOcGNtVmtJSFI1Y0dVQVNXUmxiblJwWm1sbGNpQnlaVzF2ZG1Wa0FFUmxkbWxqWlNCdWIzUWdZU0J6ZEhKbFlXMEFUbThnWkdGMFlTQmhkbUZwYkdGaWJHVUFSR1YyYVdObElIUnBiV1Z2ZFhRQVQzVjBJRzltSUhOMGNtVmhiWE1nY21WemIzVnlZMlZ6QUV4cGJtc2dhR0Z6SUdKbFpXNGdjMlYyWlhKbFpBQlFjbTkwYjJOdmJDQmxjbkp2Y2dCQ1lXUWdiV1Z6YzJGblpRQkdhV3hsSUdSbGMyTnlhWEIwYjNJZ2FXNGdZbUZrSUhOMFlYUmxBRTV2ZENCaElITnZZMnRsZEFCRVpYTjBhVzVoZEdsdmJpQmhaR1J5WlhOeklISmxjWFZwY21Wa0FFMWxjM05oWjJVZ2RHOXZJR3hoY21kbEFGQnliM1J2WTI5c0lIZHliMjVuSUhSNWNHVWdabTl5SUhOdlkydGxkQUJRY205MGIyTnZiQ0J1YjNRZ1lYWmhhV3hoWW14bEFGQnliM1J2WTI5c0lHNXZkQ0J6ZFhCd2IzSjBaV1FBVTI5amEyVjBJSFI1Y0dVZ2JtOTBJSE4xY0hCdmNuUmxaQUJPYjNRZ2MzVndjRzl5ZEdWa0FGQnliM1J2WTI5c0lHWmhiV2xzZVNCdWIzUWdjM1Z3Y0c5eWRHVmtBRUZrWkhKbGMzTWdabUZ0YVd4NUlHNXZkQ0J6ZFhCd2IzSjBaV1FnWW5rZ2NISnZkRzlqYjJ3QVFXUmtjbVZ6Y3lCdWIzUWdZWFpoYVd4aFlteGxBRTVsZEhkdmNtc2dhWE1nWkc5M2JnQk9aWFIzYjNKcklIVnVjbVZoWTJoaFlteGxBRU52Ym01bFkzUnBiMjRnY21WelpYUWdZbmtnYm1WMGQyOXlhd0JEYjI1dVpXTjBhVzl1SUdGaWIzSjBaV1FBVG04Z1luVm1abVZ5SUhOd1lXTmxJR0YyWVdsc1lXSnNaUUJUYjJOclpYUWdhWE1nWTI5dWJtVmpkR1ZrQUZOdlkydGxkQ0J1YjNRZ1kyOXVibVZqZEdWa0FFTmhibTV2ZENCelpXNWtJR0ZtZEdWeUlITnZZMnRsZENCemFIVjBaRzkzYmdCUGNHVnlZWFJwYjI0Z1lXeHlaV0ZrZVNCcGJpQndjbTluY21WemN3QlBjR1Z5WVhScGIyNGdhVzRnY0hKdlozSmxjM01BVTNSaGJHVWdabWxzWlNCb1lXNWtiR1VBVW1WdGIzUmxJRWt2VHlCbGNuSnZjZ0JSZFc5MFlTQmxlR05sWldSbFpBQk9ieUJ0WldScGRXMGdabTkxYm1RQVYzSnZibWNnYldWa2FYVnRJSFI1Y0dVQVRtOGdaWEp5YjNJZ2FXNW1iM0p0WVhScGIyND0iKTsKdmFyIGNuX3dhc21fYnl0ZV9hcnJheSA9IG5ldyBVaW50OEFycmF5KGNuX3dhc21fY29udGVudC5sZW5ndGgpOwpmb3IgKHZhciBpID0gMDsgaSA8IGNuX3dhc21fY29udGVudC5sZW5ndGg7IGkrKykgewogICAgY25fd2FzbV9ieXRlX2FycmF5W2ldID0gY25fd2FzbV9jb250ZW50LmNoYXJDb2RlQXQoaSk7Cn0KTW9kdWxlWyJ3YXNtQmluYXJ5Il0gPSBjbl93YXNtX2J5dGVfYXJyYXk7CnZhciBFTlZJUk9OTUVOVF9JU19XRUI9ZmFsc2U7dmFyIEVOVklST05NRU5UX0lTX1dPUktFUj1mYWxzZTt2YXIgRU5WSVJPTk1FTlRfSVNfTk9ERT1mYWxzZTt2YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEw9ZmFsc2U7aWYoTW9kdWxlWyJFTlZJUk9OTUVOVCJdKXtpZihNb2R1bGVbIkVOVklST05NRU5UIl09PT0iV0VCIil7RU5WSVJPTk1FTlRfSVNfV0VCPXRydWV9ZWxzZSBpZihNb2R1bGVbIkVOVklST05NRU5UIl09PT0iV09SS0VSIil7RU5WSVJPTk1FTlRfSVNfV09SS0VSPXRydWV9ZWxzZSBpZihNb2R1bGVbIkVOVklST05NRU5UIl09PT0iTk9ERSIpe0VOVklST05NRU5UX0lTX05PREU9dHJ1ZX1lbHNlIGlmKE1vZHVsZVsiRU5WSVJPTk1FTlQiXT09PSJTSEVMTCIpe0VOVklST05NRU5UX0lTX1NIRUxMPXRydWV9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoIlRoZSBwcm92aWRlZCBNb2R1bGVbJ0VOVklST05NRU5UJ10gdmFsdWUgaXMgbm90IHZhbGlkLiBJdCBtdXN0IGJlIG9uZSBvZjogV0VCfFdPUktFUnxOT0RFfFNIRUxMLiIpfX1lbHNle0VOVklST05NRU5UX0lTX1dFQj10eXBlb2Ygd2luZG93PT09Im9iamVjdCI7RU5WSVJPTk1FTlRfSVNfV09SS0VSPXR5cGVvZiBpbXBvcnRTY3JpcHRzPT09ImZ1bmN0aW9uIjtFTlZJUk9OTUVOVF9JU19OT0RFPXR5cGVvZiBwcm9jZXNzPT09Im9iamVjdCImJnR5cGVvZiByZXF1aXJlPT09ImZ1bmN0aW9uIiYmIUVOVklST05NRU5UX0lTX1dFQiYmIUVOVklST05NRU5UX0lTX1dPUktFUjtFTlZJUk9OTUVOVF9JU19TSEVMTD0hRU5WSVJPTk1FTlRfSVNfV0VCJiYhRU5WSVJPTk1FTlRfSVNfTk9ERSYmIUVOVklST05NRU5UX0lTX1dPUktFUn1pZihFTlZJUk9OTUVOVF9JU19OT0RFKXtpZighTW9kdWxlWyJwcmludCJdKU1vZHVsZVsicHJpbnQiXT1jb25zb2xlLmxvZztpZighTW9kdWxlWyJwcmludEVyciJdKU1vZHVsZVsicHJpbnRFcnIiXT1jb25zb2xlLndhcm47dmFyIG5vZGVGUzt2YXIgbm9kZVBhdGg7TW9kdWxlWyJyZWFkIl09ZnVuY3Rpb24gc2hlbGxfcmVhZChmaWxlbmFtZSxiaW5hcnkpe2lmKCFub2RlRlMpbm9kZUZTPXJlcXVpcmUoImZzIik7aWYoIW5vZGVQYXRoKW5vZGVQYXRoPXJlcXVpcmUoInBhdGgiKTtmaWxlbmFtZT1ub2RlUGF0aFsibm9ybWFsaXplIl0oZmlsZW5hbWUpO3ZhciByZXQ9bm9kZUZTWyJyZWFkRmlsZVN5bmMiXShmaWxlbmFtZSk7cmV0dXJuIGJpbmFyeT9yZXQ6cmV0LnRvU3RyaW5nKCl9O01vZHVsZVsicmVhZEJpbmFyeSJdPWZ1bmN0aW9uIHJlYWRCaW5hcnkoZmlsZW5hbWUpe3ZhciByZXQ9TW9kdWxlWyJyZWFkIl0oZmlsZW5hbWUsdHJ1ZSk7aWYoIXJldC5idWZmZXIpe3JldD1uZXcgVWludDhBcnJheShyZXQpfWFzc2VydChyZXQuYnVmZmVyKTtyZXR1cm4gcmV0fTtNb2R1bGVbImxvYWQiXT1mdW5jdGlvbiBsb2FkKGYpe2dsb2JhbEV2YWwocmVhZChmKSl9O2lmKCFNb2R1bGVbInRoaXNQcm9ncmFtIl0pe2lmKHByb2Nlc3NbImFyZ3YiXS5sZW5ndGg+MSl7TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdPXByb2Nlc3NbImFyZ3YiXVsxXS5yZXBsYWNlKC9cXC9nLCIvIil9ZWxzZXtNb2R1bGVbInRoaXNQcm9ncmFtIl09InVua25vd24tcHJvZ3JhbSJ9fU1vZHVsZVsiYXJndW1lbnRzIl09cHJvY2Vzc1siYXJndiJdLnNsaWNlKDIpO2lmKHR5cGVvZiBtb2R1bGUhPT0idW5kZWZpbmVkIil7bW9kdWxlWyJleHBvcnRzIl09TW9kdWxlfXByb2Nlc3NbIm9uIl0oInVuY2F1Z2h0RXhjZXB0aW9uIiwoZnVuY3Rpb24oZXgpe2lmKCEoZXggaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSl7dGhyb3cgZXh9fSkpO01vZHVsZVsiaW5zcGVjdCJdPShmdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KX1lbHNlIGlmKEVOVklST05NRU5UX0lTX1NIRUxMKXtpZighTW9kdWxlWyJwcmludCJdKU1vZHVsZVsicHJpbnQiXT1wcmludDtpZih0eXBlb2YgcHJpbnRFcnIhPSJ1bmRlZmluZWQiKU1vZHVsZVsicHJpbnRFcnIiXT1wcmludEVycjtpZih0eXBlb2YgcmVhZCE9InVuZGVmaW5lZCIpe01vZHVsZVsicmVhZCJdPXJlYWR9ZWxzZXtNb2R1bGVbInJlYWQiXT1mdW5jdGlvbiBzaGVsbF9yZWFkKCl7dGhyb3cibm8gcmVhZCgpIGF2YWlsYWJsZSJ9fU1vZHVsZVsicmVhZEJpbmFyeSJdPWZ1bmN0aW9uIHJlYWRCaW5hcnkoZil7aWYodHlwZW9mIHJlYWRidWZmZXI9PT0iZnVuY3Rpb24iKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihmKSl9dmFyIGRhdGE9cmVhZChmLCJiaW5hcnkiKTthc3NlcnQodHlwZW9mIGRhdGE9PT0ib2JqZWN0Iik7cmV0dXJuIGRhdGF9O2lmKHR5cGVvZiBzY3JpcHRBcmdzIT0idW5kZWZpbmVkIil7TW9kdWxlWyJhcmd1bWVudHMiXT1zY3JpcHRBcmdzfWVsc2UgaWYodHlwZW9mIGFyZ3VtZW50cyE9InVuZGVmaW5lZCIpe01vZHVsZVsiYXJndW1lbnRzIl09YXJndW1lbnRzfWlmKHR5cGVvZiBxdWl0PT09ImZ1bmN0aW9uIil7TW9kdWxlWyJxdWl0Il09KGZ1bmN0aW9uKHN0YXR1cyx0b1Rocm93KXtxdWl0KHN0YXR1cyl9KX19ZWxzZSBpZihFTlZJUk9OTUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktFUil7TW9kdWxlWyJyZWFkIl09ZnVuY3Rpb24gc2hlbGxfcmVhZCh1cmwpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7TW9kdWxlWyJyZWFkQmluYXJ5Il09ZnVuY3Rpb24gcmVhZEJpbmFyeSh1cmwpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7eGhyLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiO3hoci5zZW5kKG51bGwpO3JldHVybiBuZXcgVWludDhBcnJheSh4aHIucmVzcG9uc2UpfX1Nb2R1bGVbInJlYWRBc3luYyJdPWZ1bmN0aW9uIHJlYWRBc3luYyh1cmwsb25sb2FkLG9uZXJyb3Ipe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCx0cnVlKTt4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7eGhyLm9ubG9hZD1mdW5jdGlvbiB4aHJfb25sb2FkKCl7aWYoeGhyLnN0YXR1cz09MjAwfHx4aHIuc3RhdHVzPT0wJiZ4aHIucmVzcG9uc2Upe29ubG9hZCh4aHIucmVzcG9uc2UpfWVsc2V7b25lcnJvcigpfX07eGhyLm9uZXJyb3I9b25lcnJvcjt4aHIuc2VuZChudWxsKX07aWYodHlwZW9mIGFyZ3VtZW50cyE9InVuZGVmaW5lZCIpe01vZHVsZVsiYXJndW1lbnRzIl09YXJndW1lbnRzfWlmKHR5cGVvZiBjb25zb2xlIT09InVuZGVmaW5lZCIpe2lmKCFNb2R1bGVbInByaW50Il0pTW9kdWxlWyJwcmludCJdPWZ1bmN0aW9uIHNoZWxsX3ByaW50KHgpe2NvbnNvbGUubG9nKHgpfTtpZighTW9kdWxlWyJwcmludEVyciJdKU1vZHVsZVsicHJpbnRFcnIiXT1mdW5jdGlvbiBzaGVsbF9wcmludEVycih4KXtjb25zb2xlLndhcm4oeCl9fWVsc2V7dmFyIFRSWV9VU0VfRFVNUD1mYWxzZTtpZighTW9kdWxlWyJwcmludCJdKU1vZHVsZVsicHJpbnQiXT1UUllfVVNFX0RVTVAmJnR5cGVvZiBkdW1wIT09InVuZGVmaW5lZCI/KGZ1bmN0aW9uKHgpe2R1bXAoeCl9KTooZnVuY3Rpb24oeCl7fSl9aWYoRU5WSVJPTk1FTlRfSVNfV09SS0VSKXtNb2R1bGVbImxvYWQiXT1pbXBvcnRTY3JpcHRzfWlmKHR5cGVvZiBNb2R1bGVbInNldFdpbmRvd1RpdGxlIl09PT0idW5kZWZpbmVkIil7TW9kdWxlWyJzZXRXaW5kb3dUaXRsZSJdPShmdW5jdGlvbih0aXRsZSl7ZG9jdW1lbnQudGl0bGU9dGl0bGV9KX19ZWxzZXt0aHJvdyJVbmtub3duIHJ1bnRpbWUgZW52aXJvbm1lbnQuIFdoZXJlIGFyZSB3ZT8ifWZ1bmN0aW9uIGdsb2JhbEV2YWwoeCl7ZXZhbC5jYWxsKG51bGwseCl9aWYoIU1vZHVsZVsibG9hZCJdJiZNb2R1bGVbInJlYWQiXSl7TW9kdWxlWyJsb2FkIl09ZnVuY3Rpb24gbG9hZChmKXtnbG9iYWxFdmFsKE1vZHVsZVsicmVhZCJdKGYpKX19aWYoIU1vZHVsZVsicHJpbnQiXSl7TW9kdWxlWyJwcmludCJdPShmdW5jdGlvbigpe30pfWlmKCFNb2R1bGVbInByaW50RXJyIl0pe01vZHVsZVsicHJpbnRFcnIiXT1Nb2R1bGVbInByaW50Il19aWYoIU1vZHVsZVsiYXJndW1lbnRzIl0pe01vZHVsZVsiYXJndW1lbnRzIl09W119aWYoIU1vZHVsZVsidGhpc1Byb2dyYW0iXSl7TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdPSIuL3RoaXMucHJvZ3JhbSJ9aWYoIU1vZHVsZVsicXVpdCJdKXtNb2R1bGVbInF1aXQiXT0oZnVuY3Rpb24oc3RhdHVzLHRvVGhyb3cpe3Rocm93IHRvVGhyb3d9KX1Nb2R1bGUucHJpbnQ9TW9kdWxlWyJwcmludCJdO01vZHVsZS5wcmludEVycj1Nb2R1bGVbInByaW50RXJyIl07TW9kdWxlWyJwcmVSdW4iXT1bXTtNb2R1bGVbInBvc3RSdW4iXT1bXTtmb3IodmFyIGtleSBpbiBtb2R1bGVPdmVycmlkZXMpe2lmKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKXtNb2R1bGVba2V5XT1tb2R1bGVPdmVycmlkZXNba2V5XX19bW9kdWxlT3ZlcnJpZGVzPXVuZGVmaW5lZDt2YXIgUnVudGltZT17c2V0VGVtcFJldDA6KGZ1bmN0aW9uKHZhbHVlKXt0ZW1wUmV0MD12YWx1ZTtyZXR1cm4gdmFsdWV9KSxnZXRUZW1wUmV0MDooZnVuY3Rpb24oKXtyZXR1cm4gdGVtcFJldDB9KSxzdGFja1NhdmU6KGZ1bmN0aW9uKCl7cmV0dXJuIFNUQUNLVE9QfSksc3RhY2tSZXN0b3JlOihmdW5jdGlvbihzdGFja1RvcCl7U1RBQ0tUT1A9c3RhY2tUb3B9KSxnZXROYXRpdmVUeXBlU2l6ZTooZnVuY3Rpb24odHlwZSl7c3dpdGNoKHR5cGUpe2Nhc2UiaTEiOmNhc2UiaTgiOnJldHVybiAxO2Nhc2UiaTE2IjpyZXR1cm4gMjtjYXNlImkzMiI6cmV0dXJuIDQ7Y2FzZSJpNjQiOnJldHVybiA4O2Nhc2UiZmxvYXQiOnJldHVybiA0O2Nhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0OntpZih0eXBlW3R5cGUubGVuZ3RoLTFdPT09IioiKXtyZXR1cm4gUnVudGltZS5RVUFOVFVNX1NJWkV9ZWxzZSBpZih0eXBlWzBdPT09ImkiKXt2YXIgYml0cz1wYXJzZUludCh0eXBlLnN1YnN0cigxKSk7YXNzZXJ0KGJpdHMlOD09PTApO3JldHVybiBiaXRzLzh9ZWxzZXtyZXR1cm4gMH19fX0pLGdldE5hdGl2ZUZpZWxkU2l6ZTooZnVuY3Rpb24odHlwZSl7cmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNpemUodHlwZSksUnVudGltZS5RVUFOVFVNX1NJWkUpfSksU1RBQ0tfQUxJR046MTYscHJlcFZhcmFyZzooZnVuY3Rpb24ocHRyLHR5cGUpe2lmKHR5cGU9PT0iZG91YmxlInx8dHlwZT09PSJpNjQiKXtpZihwdHImNyl7YXNzZXJ0KChwdHImNyk9PT00KTtwdHIrPTR9fWVsc2V7YXNzZXJ0KChwdHImMyk9PT0wKX1yZXR1cm4gcHRyfSksZ2V0QWxpZ25TaXplOihmdW5jdGlvbih0eXBlLHNpemUsdmFyYXJnKXtpZighdmFyYXJnJiYodHlwZT09Imk2NCJ8fHR5cGU9PSJkb3VibGUiKSlyZXR1cm4gODtpZighdHlwZSlyZXR1cm4gTWF0aC5taW4oc2l6ZSw4KTtyZXR1cm4gTWF0aC5taW4oc2l6ZXx8KHR5cGU/UnVudGltZS5nZXROYXRpdmVGaWVsZFNpemUodHlwZSk6MCksUnVudGltZS5RVUFOVFVNX1NJWkUpfSksZHluQ2FsbDooZnVuY3Rpb24oc2lnLHB0cixhcmdzKXtpZihhcmdzJiZhcmdzLmxlbmd0aCl7cmV0dXJuIE1vZHVsZVsiZHluQ2FsbF8iK3NpZ10uYXBwbHkobnVsbCxbcHRyXS5jb25jYXQoYXJncykpfWVsc2V7cmV0dXJuIE1vZHVsZVsiZHluQ2FsbF8iK3NpZ10uY2FsbChudWxsLHB0cil9fSksZnVuY3Rpb25Qb2ludGVyczpbXSxhZGRGdW5jdGlvbjooZnVuY3Rpb24oZnVuYyl7Zm9yKHZhciBpPTA7aTxSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnMubGVuZ3RoO2krKyl7aWYoIVJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSl7UnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ldPWZ1bmM7cmV0dXJuIDIqKDEraSl9fXRocm93IkZpbmlzaGVkIHVwIGFsbCByZXNlcnZlZCBmdW5jdGlvbiBwb2ludGVycy4gVXNlIGEgaGlnaGVyIHZhbHVlIGZvciBSRVNFUlZFRF9GVU5DVElPTl9QT0lOVEVSUy4ifSkscmVtb3ZlRnVuY3Rpb246KGZ1bmN0aW9uKGluZGV4KXtSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJdPW51bGx9KSx3YXJuT25jZTooZnVuY3Rpb24odGV4dCl7aWYoIVJ1bnRpbWUud2Fybk9uY2Uuc2hvd24pUnVudGltZS53YXJuT25jZS5zaG93bj17fTtpZighUnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XSl7UnVudGltZS53YXJuT25jZS5zaG93blt0ZXh0XT0xO01vZHVsZS5wcmludEVycih0ZXh0KX19KSxmdW5jV3JhcHBlcnM6e30sZ2V0RnVuY1dyYXBwZXI6KGZ1bmN0aW9uKGZ1bmMsc2lnKXtpZighZnVuYylyZXR1cm47YXNzZXJ0KHNpZyk7aWYoIVJ1bnRpbWUuZnVuY1dyYXBwZXJzW3NpZ10pe1J1bnRpbWUuZnVuY1dyYXBwZXJzW3NpZ109e319dmFyIHNpZ0NhY2hlPVJ1bnRpbWUuZnVuY1dyYXBwZXJzW3NpZ107aWYoIXNpZ0NhY2hlW2Z1bmNdKXtpZihzaWcubGVuZ3RoPT09MSl7c2lnQ2FjaGVbZnVuY109ZnVuY3Rpb24gZHluQ2FsbF93cmFwcGVyKCl7cmV0dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsZnVuYyl9fWVsc2UgaWYoc2lnLmxlbmd0aD09PTIpe3NpZ0NhY2hlW2Z1bmNdPWZ1bmN0aW9uIGR5bkNhbGxfd3JhcHBlcihhcmcpe3JldHVybiBSdW50aW1lLmR5bkNhbGwoc2lnLGZ1bmMsW2FyZ10pfX1lbHNle3NpZ0NhY2hlW2Z1bmNdPWZ1bmN0aW9uIGR5bkNhbGxfd3JhcHBlcigpe3JldHVybiBSdW50aW1lLmR5bkNhbGwoc2lnLGZ1bmMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9fX1yZXR1cm4gc2lnQ2FjaGVbZnVuY119KSxnZXRDb21waWxlclNldHRpbmc6KGZ1bmN0aW9uKG5hbWUpe3Rocm93IllvdSBtdXN0IGJ1aWxkIHdpdGggLXMgUkVUQUlOX0NPTVBJTEVSX1NFVFRJTkdTPTEgZm9yIFJ1bnRpbWUuZ2V0Q29tcGlsZXJTZXR0aW5nIG9yIGVtc2NyaXB0ZW5fZ2V0X2NvbXBpbGVyX3NldHRpbmcgdG8gd29yayJ9KSxzdGFja0FsbG9jOihmdW5jdGlvbihzaXplKXt2YXIgcmV0PVNUQUNLVE9QO1NUQUNLVE9QPVNUQUNLVE9QK3NpemV8MDtTVEFDS1RPUD1TVEFDS1RPUCsxNSYtMTY7cmV0dXJuIHJldH0pLHN0YXRpY0FsbG9jOihmdW5jdGlvbihzaXplKXt2YXIgcmV0PVNUQVRJQ1RPUDtTVEFUSUNUT1A9U1RBVElDVE9QK3NpemV8MDtTVEFUSUNUT1A9U1RBVElDVE9QKzE1Ji0xNjtyZXR1cm4gcmV0fSksZHluYW1pY0FsbG9jOihmdW5jdGlvbihzaXplKXt2YXIgcmV0PUhFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml07dmFyIGVuZD0ocmV0K3NpemUrMTV8MCkmLTE2O0hFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml09ZW5kO2lmKGVuZD49VE9UQUxfTUVNT1JZKXt2YXIgc3VjY2Vzcz1lbmxhcmdlTWVtb3J5KCk7aWYoIXN1Y2Nlc3Mpe0hFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml09cmV0O3JldHVybiAwfX1yZXR1cm4gcmV0fSksYWxpZ25NZW1vcnk6KGZ1bmN0aW9uKHNpemUscXVhbnR1bSl7dmFyIHJldD1zaXplPU1hdGguY2VpbChzaXplLyhxdWFudHVtP3F1YW50dW06MTYpKSoocXVhbnR1bT9xdWFudHVtOjE2KTtyZXR1cm4gcmV0fSksbWFrZUJpZ0ludDooZnVuY3Rpb24obG93LGhpZ2gsdW5zaWduZWQpe3ZhciByZXQ9dW5zaWduZWQ/Kyhsb3c+Pj4wKSsgKyhoaWdoPj4+MCkqNDI5NDk2NzI5NjorKGxvdz4+PjApKyArKGhpZ2h8MCkqNDI5NDk2NzI5NjtyZXR1cm4gcmV0fSksR0xPQkFMX0JBU0U6MTAyNCxRVUFOVFVNX1NJWkU6NCxfX2R1bW15X186MH07TW9kdWxlWyJSdW50aW1lIl09UnVudGltZTt2YXIgQUJPUlQ9MDt2YXIgRVhJVFNUQVRVUz0wO2Z1bmN0aW9uIGFzc2VydChjb25kaXRpb24sdGV4dCl7aWYoIWNvbmRpdGlvbil7YWJvcnQoIkFzc2VydGlvbiBmYWlsZWQ6ICIrdGV4dCl9fWZ1bmN0aW9uIGdldENGdW5jKGlkZW50KXt2YXIgZnVuYz1Nb2R1bGVbIl8iK2lkZW50XTtpZighZnVuYyl7dHJ5e2Z1bmM9ZXZhbCgiXyIraWRlbnQpfWNhdGNoKGUpe319YXNzZXJ0KGZ1bmMsIkNhbm5vdCBjYWxsIHVua25vd24gZnVuY3Rpb24gIitpZGVudCsiIChwZXJoYXBzIExMVk0gb3B0aW1pemF0aW9ucyBvciBjbG9zdXJlIHJlbW92ZWQgaXQ/KSIpO3JldHVybiBmdW5jfXZhciBjd3JhcCxjY2FsbDsoKGZ1bmN0aW9uKCl7dmFyIEpTZnVuY3M9eyJzdGFja1NhdmUiOihmdW5jdGlvbigpe1J1bnRpbWUuc3RhY2tTYXZlKCl9KSwic3RhY2tSZXN0b3JlIjooZnVuY3Rpb24oKXtSdW50aW1lLnN0YWNrUmVzdG9yZSgpfSksImFycmF5VG9DIjooZnVuY3Rpb24oYXJyKXt2YXIgcmV0PVJ1bnRpbWUuc3RhY2tBbGxvYyhhcnIubGVuZ3RoKTt3cml0ZUFycmF5VG9NZW1vcnkoYXJyLHJldCk7cmV0dXJuIHJldH0pLCJzdHJpbmdUb0MiOihmdW5jdGlvbihzdHIpe3ZhciByZXQ9MDtpZihzdHIhPT1udWxsJiZzdHIhPT11bmRlZmluZWQmJnN0ciE9PTApe3ZhciBsZW49KHN0ci5sZW5ndGg8PDIpKzE7cmV0PVJ1bnRpbWUuc3RhY2tBbGxvYyhsZW4pO3N0cmluZ1RvVVRGOChzdHIscmV0LGxlbil9cmV0dXJuIHJldH0pfTt2YXIgdG9DPXsic3RyaW5nIjpKU2Z1bmNzWyJzdHJpbmdUb0MiXSwiYXJyYXkiOkpTZnVuY3NbImFycmF5VG9DIl19O2NjYWxsPWZ1bmN0aW9uIGNjYWxsRnVuYyhpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzLGFyZ3Msb3B0cyl7dmFyIGZ1bmM9Z2V0Q0Z1bmMoaWRlbnQpO3ZhciBjQXJncz1bXTt2YXIgc3RhY2s9MDtpZihhcmdzKXtmb3IodmFyIGk9MDtpPGFyZ3MubGVuZ3RoO2krKyl7dmFyIGNvbnZlcnRlcj10b0NbYXJnVHlwZXNbaV1dO2lmKGNvbnZlcnRlcil7aWYoc3RhY2s9PT0wKXN0YWNrPVJ1bnRpbWUuc3RhY2tTYXZlKCk7Y0FyZ3NbaV09Y29udmVydGVyKGFyZ3NbaV0pfWVsc2V7Y0FyZ3NbaV09YXJnc1tpXX19fXZhciByZXQ9ZnVuYy5hcHBseShudWxsLGNBcmdzKTtpZihyZXR1cm5UeXBlPT09InN0cmluZyIpcmV0PVBvaW50ZXJfc3RyaW5naWZ5KHJldCk7aWYoc3RhY2shPT0wKXtpZihvcHRzJiZvcHRzLmFzeW5jKXtFbXRlcnByZXRlckFzeW5jLmFzeW5jRmluYWxpemVycy5wdXNoKChmdW5jdGlvbigpe1J1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKX0pKTtyZXR1cm59UnVudGltZS5zdGFja1Jlc3RvcmUoc3RhY2spfXJldHVybiByZXR9O3ZhciBzb3VyY2VSZWdleD0vXmZ1bmN0aW9uXHMqW2EtekEtWiRfMC05XSpccypcKChbXildKilcKVxzKntccyooW14qXSo/KVtccztdKig/OnJldHVyblxzKiguKj8pWztcc10qKT99JC87ZnVuY3Rpb24gcGFyc2VKU0Z1bmMoanNmdW5jKXt2YXIgcGFyc2VkPWpzZnVuYy50b1N0cmluZygpLm1hdGNoKHNvdXJjZVJlZ2V4KS5zbGljZSgxKTtyZXR1cm57YXJndW1lbnRzOnBhcnNlZFswXSxib2R5OnBhcnNlZFsxXSxyZXR1cm5WYWx1ZTpwYXJzZWRbMl19fXZhciBKU3NvdXJjZT1udWxsO2Z1bmN0aW9uIGVuc3VyZUpTc291cmNlKCl7aWYoIUpTc291cmNlKXtKU3NvdXJjZT17fTtmb3IodmFyIGZ1biBpbiBKU2Z1bmNzKXtpZihKU2Z1bmNzLmhhc093blByb3BlcnR5KGZ1bikpe0pTc291cmNlW2Z1bl09cGFyc2VKU0Z1bmMoSlNmdW5jc1tmdW5dKX19fX1jd3JhcD1mdW5jdGlvbiBjd3JhcChpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzKXthcmdUeXBlcz1hcmdUeXBlc3x8W107dmFyIGNmdW5jPWdldENGdW5jKGlkZW50KTt2YXIgbnVtZXJpY0FyZ3M9YXJnVHlwZXMuZXZlcnkoKGZ1bmN0aW9uKHR5cGUpe3JldHVybiB0eXBlPT09Im51bWJlciJ9KSk7dmFyIG51bWVyaWNSZXQ9cmV0dXJuVHlwZSE9PSJzdHJpbmciO2lmKG51bWVyaWNSZXQmJm51bWVyaWNBcmdzKXtyZXR1cm4gY2Z1bmN9dmFyIGFyZ05hbWVzPWFyZ1R5cGVzLm1hcCgoZnVuY3Rpb24oeCxpKXtyZXR1cm4iJCIraX0pKTt2YXIgZnVuY3N0cj0iKGZ1bmN0aW9uKCIrYXJnTmFtZXMuam9pbigiLCIpKyIpIHsiO3ZhciBuYXJncz1hcmdUeXBlcy5sZW5ndGg7aWYoIW51bWVyaWNBcmdzKXtlbnN1cmVKU3NvdXJjZSgpO2Z1bmNzdHIrPSJ2YXIgc3RhY2sgPSAiK0pTc291cmNlWyJzdGFja1NhdmUiXS5ib2R5KyI7Ijtmb3IodmFyIGk9MDtpPG5hcmdzO2krKyl7dmFyIGFyZz1hcmdOYW1lc1tpXSx0eXBlPWFyZ1R5cGVzW2ldO2lmKHR5cGU9PT0ibnVtYmVyIiljb250aW51ZTt2YXIgY29udmVydENvZGU9SlNzb3VyY2VbdHlwZSsiVG9DIl07ZnVuY3N0cis9InZhciAiK2NvbnZlcnRDb2RlLmFyZ3VtZW50cysiID0gIithcmcrIjsiO2Z1bmNzdHIrPWNvbnZlcnRDb2RlLmJvZHkrIjsiO2Z1bmNzdHIrPWFyZysiPSgiK2NvbnZlcnRDb2RlLnJldHVyblZhbHVlKyIpOyJ9fXZhciBjZnVuY25hbWU9cGFyc2VKU0Z1bmMoKGZ1bmN0aW9uKCl7cmV0dXJuIGNmdW5jfSkpLnJldHVyblZhbHVlO2Z1bmNzdHIrPSJ2YXIgcmV0ID0gIitjZnVuY25hbWUrIigiK2FyZ05hbWVzLmpvaW4oIiwiKSsiKTsiO2lmKCFudW1lcmljUmV0KXt2YXIgc3RyZ2Z5PXBhcnNlSlNGdW5jKChmdW5jdGlvbigpe3JldHVybiBQb2ludGVyX3N0cmluZ2lmeX0pKS5yZXR1cm5WYWx1ZTtmdW5jc3RyKz0icmV0ID0gIitzdHJnZnkrIihyZXQpOyJ9aWYoIW51bWVyaWNBcmdzKXtlbnN1cmVKU3NvdXJjZSgpO2Z1bmNzdHIrPUpTc291cmNlWyJzdGFja1Jlc3RvcmUiXS5ib2R5LnJlcGxhY2UoIigpIiwiKHN0YWNrKSIpKyI7In1mdW5jc3RyKz0icmV0dXJuIHJldH0pIjtyZXR1cm4gZXZhbChmdW5jc3RyKX19KSkoKTtNb2R1bGVbImNjYWxsIl09Y2NhbGw7TW9kdWxlWyJjd3JhcCJdPWN3cmFwO2Z1bmN0aW9uIHNldFZhbHVlKHB0cix2YWx1ZSx0eXBlLG5vU2FmZSl7dHlwZT10eXBlfHwiaTgiO2lmKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpPT09IioiKXR5cGU9ImkzMiI7c3dpdGNoKHR5cGUpe2Nhc2UiaTEiOkhFQVA4W3B0cj4+MF09dmFsdWU7YnJlYWs7Y2FzZSJpOCI6SEVBUDhbcHRyPj4wXT12YWx1ZTticmVhaztjYXNlImkxNiI6SEVBUDE2W3B0cj4+MV09dmFsdWU7YnJlYWs7Y2FzZSJpMzIiOkhFQVAzMltwdHI+PjJdPXZhbHVlO2JyZWFrO2Nhc2UiaTY0Ijp0ZW1wSTY0PVt2YWx1ZT4+PjAsKHRlbXBEb3VibGU9dmFsdWUsK01hdGhfYWJzKHRlbXBEb3VibGUpPj0xP3RlbXBEb3VibGU+MD8oTWF0aF9taW4oK01hdGhfZmxvb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KXwwKT4+PjA6fn4rTWF0aF9jZWlsKCh0ZW1wRG91YmxlLSArKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEhFQVAzMltwdHI+PjJdPXRlbXBJNjRbMF0sSEVBUDMyW3B0cis0Pj4yXT10ZW1wSTY0WzFdO2JyZWFrO2Nhc2UiZmxvYXQiOkhFQVBGMzJbcHRyPj4yXT12YWx1ZTticmVhaztjYXNlImRvdWJsZSI6SEVBUEY2NFtwdHI+PjNdPXZhbHVlO2JyZWFrO2RlZmF1bHQ6YWJvcnQoImludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICIrdHlwZSl9fU1vZHVsZVsic2V0VmFsdWUiXT1zZXRWYWx1ZTtmdW5jdGlvbiBnZXRWYWx1ZShwdHIsdHlwZSxub1NhZmUpe3R5cGU9dHlwZXx8Imk4IjtpZih0eXBlLmNoYXJBdCh0eXBlLmxlbmd0aC0xKT09PSIqIil0eXBlPSJpMzIiO3N3aXRjaCh0eXBlKXtjYXNlImkxIjpyZXR1cm4gSEVBUDhbcHRyPj4wXTtjYXNlImk4IjpyZXR1cm4gSEVBUDhbcHRyPj4wXTtjYXNlImkxNiI6cmV0dXJuIEhFQVAxNltwdHI+PjFdO2Nhc2UiaTMyIjpyZXR1cm4gSEVBUDMyW3B0cj4+Ml07Y2FzZSJpNjQiOnJldHVybiBIRUFQMzJbcHRyPj4yXTtjYXNlImZsb2F0IjpyZXR1cm4gSEVBUEYzMltwdHI+PjJdO2Nhc2UiZG91YmxlIjpyZXR1cm4gSEVBUEY2NFtwdHI+PjNdO2RlZmF1bHQ6YWJvcnQoImludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICIrdHlwZSl9cmV0dXJuIG51bGx9TW9kdWxlWyJnZXRWYWx1ZSJdPWdldFZhbHVlO3ZhciBBTExPQ19OT1JNQUw9MDt2YXIgQUxMT0NfU1RBQ0s9MTt2YXIgQUxMT0NfU1RBVElDPTI7dmFyIEFMTE9DX0RZTkFNSUM9Mzt2YXIgQUxMT0NfTk9ORT00O01vZHVsZVsiQUxMT0NfTk9STUFMIl09QUxMT0NfTk9STUFMO01vZHVsZVsiQUxMT0NfU1RBQ0siXT1BTExPQ19TVEFDSztNb2R1bGVbIkFMTE9DX1NUQVRJQyJdPUFMTE9DX1NUQVRJQztNb2R1bGVbIkFMTE9DX0RZTkFNSUMiXT1BTExPQ19EWU5BTUlDO01vZHVsZVsiQUxMT0NfTk9ORSJdPUFMTE9DX05PTkU7ZnVuY3Rpb24gYWxsb2NhdGUoc2xhYix0eXBlcyxhbGxvY2F0b3IscHRyKXt2YXIgemVyb2luaXQsc2l6ZTtpZih0eXBlb2Ygc2xhYj09PSJudW1iZXIiKXt6ZXJvaW5pdD10cnVlO3NpemU9c2xhYn1lbHNle3plcm9pbml0PWZhbHNlO3NpemU9c2xhYi5sZW5ndGh9dmFyIHNpbmdsZVR5cGU9dHlwZW9mIHR5cGVzPT09InN0cmluZyI/dHlwZXM6bnVsbDt2YXIgcmV0O2lmKGFsbG9jYXRvcj09QUxMT0NfTk9ORSl7cmV0PXB0cn1lbHNle3JldD1bdHlwZW9mIF9tYWxsb2M9PT0iZnVuY3Rpb24iP19tYWxsb2M6UnVudGltZS5zdGF0aWNBbGxvYyxSdW50aW1lLnN0YWNrQWxsb2MsUnVudGltZS5zdGF0aWNBbGxvYyxSdW50aW1lLmR5bmFtaWNBbGxvY11bYWxsb2NhdG9yPT09dW5kZWZpbmVkP0FMTE9DX1NUQVRJQzphbGxvY2F0b3JdKE1hdGgubWF4KHNpemUsc2luZ2xlVHlwZT8xOnR5cGVzLmxlbmd0aCkpfWlmKHplcm9pbml0KXt2YXIgcHRyPXJldCxzdG9wO2Fzc2VydCgocmV0JjMpPT0wKTtzdG9wPXJldCsoc2l6ZSZ+Myk7Zm9yKDtwdHI8c3RvcDtwdHIrPTQpe0hFQVAzMltwdHI+PjJdPTB9c3RvcD1yZXQrc2l6ZTt3aGlsZShwdHI8c3RvcCl7SEVBUDhbcHRyKys+PjBdPTB9cmV0dXJuIHJldH1pZihzaW5nbGVUeXBlPT09Imk4Iil7aWYoc2xhYi5zdWJhcnJheXx8c2xhYi5zbGljZSl7SEVBUFU4LnNldChzbGFiLHJldCl9ZWxzZXtIRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIpLHJldCl9cmV0dXJuIHJldH12YXIgaT0wLHR5cGUsdHlwZVNpemUscHJldmlvdXNUeXBlO3doaWxlKGk8c2l6ZSl7dmFyIGN1cnI9c2xhYltpXTtpZih0eXBlb2YgY3Vycj09PSJmdW5jdGlvbiIpe2N1cnI9UnVudGltZS5nZXRGdW5jdGlvbkluZGV4KGN1cnIpfXR5cGU9c2luZ2xlVHlwZXx8dHlwZXNbaV07aWYodHlwZT09PTApe2krKztjb250aW51ZX1pZih0eXBlPT0iaTY0Iil0eXBlPSJpMzIiO3NldFZhbHVlKHJldCtpLGN1cnIsdHlwZSk7aWYocHJldmlvdXNUeXBlIT09dHlwZSl7dHlwZVNpemU9UnVudGltZS5nZXROYXRpdmVUeXBlU2l6ZSh0eXBlKTtwcmV2aW91c1R5cGU9dHlwZX1pKz10eXBlU2l6ZX1yZXR1cm4gcmV0fU1vZHVsZVsiYWxsb2NhdGUiXT1hbGxvY2F0ZTtmdW5jdGlvbiBnZXRNZW1vcnkoc2l6ZSl7aWYoIXN0YXRpY1NlYWxlZClyZXR1cm4gUnVudGltZS5zdGF0aWNBbGxvYyhzaXplKTtpZighcnVudGltZUluaXRpYWxpemVkKXJldHVybiBSdW50aW1lLmR5bmFtaWNBbGxvYyhzaXplKTtyZXR1cm4gX21hbGxvYyhzaXplKX1Nb2R1bGVbImdldE1lbW9yeSJdPWdldE1lbW9yeTtmdW5jdGlvbiBQb2ludGVyX3N0cmluZ2lmeShwdHIsbGVuZ3RoKXtpZihsZW5ndGg9PT0wfHwhcHRyKXJldHVybiIiO3ZhciBoYXNVdGY9MDt2YXIgdDt2YXIgaT0wO3doaWxlKDEpe3Q9SEVBUFU4W3B0citpPj4wXTtoYXNVdGZ8PXQ7aWYodD09MCYmIWxlbmd0aClicmVhaztpKys7aWYobGVuZ3RoJiZpPT1sZW5ndGgpYnJlYWt9aWYoIWxlbmd0aClsZW5ndGg9aTt2YXIgcmV0PSIiO2lmKGhhc1V0ZjwxMjgpe3ZhciBNQVhfQ0hVTks9MTAyNDt2YXIgY3Vycjt3aGlsZShsZW5ndGg+MCl7Y3Vycj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxIRUFQVTguc3ViYXJyYXkocHRyLHB0citNYXRoLm1pbihsZW5ndGgsTUFYX0NIVU5LKSkpO3JldD1yZXQ/cmV0K2N1cnI6Y3VycjtwdHIrPU1BWF9DSFVOSztsZW5ndGgtPU1BWF9DSFVOS31yZXR1cm4gcmV0fXJldHVybiBNb2R1bGVbIlVURjhUb1N0cmluZyJdKHB0cil9TW9kdWxlWyJQb2ludGVyX3N0cmluZ2lmeSJdPVBvaW50ZXJfc3RyaW5naWZ5O2Z1bmN0aW9uIEFzY2lpVG9TdHJpbmcocHRyKXt2YXIgc3RyPSIiO3doaWxlKDEpe3ZhciBjaD1IRUFQOFtwdHIrKz4+MF07aWYoIWNoKXJldHVybiBzdHI7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNoKX19TW9kdWxlWyJBc2NpaVRvU3RyaW5nIl09QXNjaWlUb1N0cmluZztmdW5jdGlvbiBzdHJpbmdUb0FzY2lpKHN0cixvdXRQdHIpe3JldHVybiB3cml0ZUFzY2lpVG9NZW1vcnkoc3RyLG91dFB0cixmYWxzZSl9TW9kdWxlWyJzdHJpbmdUb0FzY2lpIl09c3RyaW5nVG9Bc2NpaTt2YXIgVVRGOERlY29kZXI9dHlwZW9mIFRleHREZWNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dW5kZWZpbmVkO2Z1bmN0aW9uIFVURjhBcnJheVRvU3RyaW5nKHU4QXJyYXksaWR4KXt2YXIgZW5kUHRyPWlkeDt3aGlsZSh1OEFycmF5W2VuZFB0cl0pKytlbmRQdHI7aWYoZW5kUHRyLWlkeD4xNiYmdThBcnJheS5zdWJhcnJheSYmVVRGOERlY29kZXIpe3JldHVybiBVVEY4RGVjb2Rlci5kZWNvZGUodThBcnJheS5zdWJhcnJheShpZHgsZW5kUHRyKSl9ZWxzZXt2YXIgdTAsdTEsdTIsdTMsdTQsdTU7dmFyIHN0cj0iIjt3aGlsZSgxKXt1MD11OEFycmF5W2lkeCsrXTtpZighdTApcmV0dXJuIHN0cjtpZighKHUwJjEyOCkpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7Y29udGludWV9dTE9dThBcnJheVtpZHgrK10mNjM7aWYoKHUwJjIyNCk9PTE5Mil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCh1MCYzMSk8PDZ8dTEpO2NvbnRpbnVlfXUyPXU4QXJyYXlbaWR4KytdJjYzO2lmKCh1MCYyNDApPT0yMjQpe3UwPSh1MCYxNSk8PDEyfHUxPDw2fHUyfWVsc2V7dTM9dThBcnJheVtpZHgrK10mNjM7aWYoKHUwJjI0OCk9PTI0MCl7dTA9KHUwJjcpPDwxOHx1MTw8MTJ8dTI8PDZ8dTN9ZWxzZXt1ND11OEFycmF5W2lkeCsrXSY2MztpZigodTAmMjUyKT09MjQ4KXt1MD0odTAmMyk8PDI0fHUxPDwxOHx1Mjw8MTJ8dTM8PDZ8dTR9ZWxzZXt1NT11OEFycmF5W2lkeCsrXSY2Mzt1MD0odTAmMSk8PDMwfHUxPDwyNHx1Mjw8MTh8dTM8PDEyfHU0PDw2fHU1fX19aWYodTA8NjU1MzYpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCl9ZWxzZXt2YXIgY2g9dTAtNjU1MzY7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGNoPj4xMCw1NjMyMHxjaCYxMDIzKX19fX1Nb2R1bGVbIlVURjhBcnJheVRvU3RyaW5nIl09VVRGOEFycmF5VG9TdHJpbmc7ZnVuY3Rpb24gVVRGOFRvU3RyaW5nKHB0cil7cmV0dXJuIFVURjhBcnJheVRvU3RyaW5nKEhFQVBVOCxwdHIpfU1vZHVsZVsiVVRGOFRvU3RyaW5nIl09VVRGOFRvU3RyaW5nO2Z1bmN0aW9uIHN0cmluZ1RvVVRGOEFycmF5KHN0cixvdXRVOEFycmF5LG91dElkeCxtYXhCeXRlc1RvV3JpdGUpe2lmKCEobWF4Qnl0ZXNUb1dyaXRlPjApKXJldHVybiAwO3ZhciBzdGFydElkeD1vdXRJZHg7dmFyIGVuZElkeD1vdXRJZHgrbWF4Qnl0ZXNUb1dyaXRlLTE7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIHU9c3RyLmNoYXJDb2RlQXQoaSk7aWYodT49NTUyOTYmJnU8PTU3MzQzKXU9NjU1MzYrKCh1JjEwMjMpPDwxMCl8c3RyLmNoYXJDb2RlQXQoKytpKSYxMDIzO2lmKHU8PTEyNyl7aWYob3V0SWR4Pj1lbmRJZHgpYnJlYWs7b3V0VThBcnJheVtvdXRJZHgrK109dX1lbHNlIGlmKHU8PTIwNDcpe2lmKG91dElkeCsxPj1lbmRJZHgpYnJlYWs7b3V0VThBcnJheVtvdXRJZHgrK109MTkyfHU+PjY7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZSBpZih1PD02NTUzNSl7aWYob3V0SWR4KzI+PWVuZElkeClicmVhaztvdXRVOEFycmF5W291dElkeCsrXT0yMjR8dT4+MTI7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjYmNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZSBpZih1PD0yMDk3MTUxKXtpZihvdXRJZHgrMz49ZW5kSWR4KWJyZWFrO291dFU4QXJyYXlbb3V0SWR4KytdPTI0MHx1Pj4xODtvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+MTImNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjYmNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZSBpZih1PD02NzEwODg2Myl7aWYob3V0SWR4KzQ+PWVuZElkeClicmVhaztvdXRVOEFycmF5W291dElkeCsrXT0yNDh8dT4+MjQ7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjE4JjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj4xMiY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+NiY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dSY2M31lbHNle2lmKG91dElkeCs1Pj1lbmRJZHgpYnJlYWs7b3V0VThBcnJheVtvdXRJZHgrK109MjUyfHU+PjMwO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj4yNCY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+MTgmNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjEyJjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj42JjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1JjYzfX1vdXRVOEFycmF5W291dElkeF09MDtyZXR1cm4gb3V0SWR4LXN0YXJ0SWR4fU1vZHVsZVsic3RyaW5nVG9VVEY4QXJyYXkiXT1zdHJpbmdUb1VURjhBcnJheTtmdW5jdGlvbiBzdHJpbmdUb1VURjgoc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpe3JldHVybiBzdHJpbmdUb1VURjhBcnJheShzdHIsSEVBUFU4LG91dFB0cixtYXhCeXRlc1RvV3JpdGUpfU1vZHVsZVsic3RyaW5nVG9VVEY4Il09c3RyaW5nVG9VVEY4O2Z1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpe3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgdT1zdHIuY2hhckNvZGVBdChpKTtpZih1Pj01NTI5NiYmdTw9NTczNDMpdT02NTUzNisoKHUmMTAyMyk8PDEwKXxzdHIuY2hhckNvZGVBdCgrK2kpJjEwMjM7aWYodTw9MTI3KXsrK2xlbn1lbHNlIGlmKHU8PTIwNDcpe2xlbis9Mn1lbHNlIGlmKHU8PTY1NTM1KXtsZW4rPTN9ZWxzZSBpZih1PD0yMDk3MTUxKXtsZW4rPTR9ZWxzZSBpZih1PD02NzEwODg2Myl7bGVuKz01fWVsc2V7bGVuKz02fX1yZXR1cm4gbGVufU1vZHVsZVsibGVuZ3RoQnl0ZXNVVEY4Il09bGVuZ3RoQnl0ZXNVVEY4O3ZhciBVVEYxNkRlY29kZXI9dHlwZW9mIFRleHREZWNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpOnVuZGVmaW5lZDtmdW5jdGlvbiBkZW1hbmdsZShmdW5jKXt2YXIgX19jeGFfZGVtYW5nbGVfZnVuYz1Nb2R1bGVbIl9fX2N4YV9kZW1hbmdsZSJdfHxNb2R1bGVbIl9fY3hhX2RlbWFuZ2xlIl07aWYoX19jeGFfZGVtYW5nbGVfZnVuYyl7dHJ5e3ZhciBzPWZ1bmMuc3Vic3RyKDEpO3ZhciBsZW49bGVuZ3RoQnl0ZXNVVEY4KHMpKzE7dmFyIGJ1Zj1fbWFsbG9jKGxlbik7c3RyaW5nVG9VVEY4KHMsYnVmLGxlbik7dmFyIHN0YXR1cz1fbWFsbG9jKDQpO3ZhciByZXQ9X19jeGFfZGVtYW5nbGVfZnVuYyhidWYsMCwwLHN0YXR1cyk7aWYoZ2V0VmFsdWUoc3RhdHVzLCJpMzIiKT09PTAmJnJldCl7cmV0dXJuIFBvaW50ZXJfc3RyaW5naWZ5KHJldCl9fWNhdGNoKGUpe31maW5hbGx5e2lmKGJ1ZilfZnJlZShidWYpO2lmKHN0YXR1cylfZnJlZShzdGF0dXMpO2lmKHJldClfZnJlZShyZXQpfXJldHVybiBmdW5jfVJ1bnRpbWUud2Fybk9uY2UoIndhcm5pbmc6IGJ1aWxkIHdpdGggIC1zIERFTUFOR0xFX1NVUFBPUlQ9MSAgdG8gbGluayBpbiBsaWJjeHhhYmkgZGVtYW5nbGluZyIpO3JldHVybiBmdW5jfWZ1bmN0aW9uIGRlbWFuZ2xlQWxsKHRleHQpe3ZhciByZWdleD0vX19aW1x3XGRfXSsvZztyZXR1cm4gdGV4dC5yZXBsYWNlKHJlZ2V4LChmdW5jdGlvbih4KXt2YXIgeT1kZW1hbmdsZSh4KTtyZXR1cm4geD09PXk/eDp4KyIgWyIreSsiXSJ9KSl9ZnVuY3Rpb24ganNTdGFja1RyYWNlKCl7dmFyIGVycj1uZXcgRXJyb3I7aWYoIWVyci5zdGFjayl7dHJ5e3Rocm93IG5ldyBFcnJvcigwKX1jYXRjaChlKXtlcnI9ZX1pZighZXJyLnN0YWNrKXtyZXR1cm4iKG5vIHN0YWNrIHRyYWNlIGF2YWlsYWJsZSkifX1yZXR1cm4gZXJyLnN0YWNrLnRvU3RyaW5nKCl9ZnVuY3Rpb24gc3RhY2tUcmFjZSgpe3ZhciBqcz1qc1N0YWNrVHJhY2UoKTtpZihNb2R1bGVbImV4dHJhU3RhY2tUcmFjZSJdKWpzKz0iXG4iK01vZHVsZVsiZXh0cmFTdGFja1RyYWNlIl0oKTtyZXR1cm4gZGVtYW5nbGVBbGwoanMpfU1vZHVsZVsic3RhY2tUcmFjZSJdPXN0YWNrVHJhY2U7dmFyIFdBU01fUEFHRV9TSVpFPTY1NTM2O3ZhciBBU01KU19QQUdFX1NJWkU9MTY3NzcyMTY7ZnVuY3Rpb24gYWxpZ25VcCh4LG11bHRpcGxlKXtpZih4JW11bHRpcGxlPjApe3grPW11bHRpcGxlLXglbXVsdGlwbGV9cmV0dXJuIHh9dmFyIEhFQVAsYnVmZmVyLEhFQVA4LEhFQVBVOCxIRUFQMTYsSEVBUFUxNixIRUFQMzIsSEVBUFUzMixIRUFQRjMyLEhFQVBGNjQ7ZnVuY3Rpb24gdXBkYXRlR2xvYmFsQnVmZmVyKGJ1Zil7TW9kdWxlWyJidWZmZXIiXT1idWZmZXI9YnVmfWZ1bmN0aW9uIHVwZGF0ZUdsb2JhbEJ1ZmZlclZpZXdzKCl7TW9kdWxlWyJIRUFQOCJdPUhFQVA4PW5ldyBJbnQ4QXJyYXkoYnVmZmVyKTtNb2R1bGVbIkhFQVAxNiJdPUhFQVAxNj1uZXcgSW50MTZBcnJheShidWZmZXIpO01vZHVsZVsiSEVBUDMyIl09SEVBUDMyPW5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtNb2R1bGVbIkhFQVBVMTYiXT1IRUFQVTE2PW5ldyBVaW50MTZBcnJheShidWZmZXIpO01vZHVsZVsiSEVBUFUzMiJdPUhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQRjMyIl09SEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQRjY0Il09SEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcil9dmFyIFNUQVRJQ19CQVNFLFNUQVRJQ1RPUCxzdGF0aWNTZWFsZWQ7dmFyIFNUQUNLX0JBU0UsU1RBQ0tUT1AsU1RBQ0tfTUFYO3ZhciBEWU5BTUlDX0JBU0UsRFlOQU1JQ1RPUF9QVFI7U1RBVElDX0JBU0U9U1RBVElDVE9QPVNUQUNLX0JBU0U9U1RBQ0tUT1A9U1RBQ0tfTUFYPURZTkFNSUNfQkFTRT1EWU5BTUlDVE9QX1BUUj0wO3N0YXRpY1NlYWxlZD1mYWxzZTtmdW5jdGlvbiBhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeSgpe2Fib3J0KCJDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiK1RPVEFMX01FTU9SWSsiLCAoMikgY29tcGlsZSB3aXRoICAtcyBBTExPV19NRU1PUllfR1JPV1RIPTEgIHdoaWNoIGFsbG93cyBpbmNyZWFzaW5nIHRoZSBzaXplIGF0IHJ1bnRpbWUsIG9yICgzKSBpZiB5b3Ugd2FudCBtYWxsb2MgdG8gcmV0dXJuIE5VTEwgKDApIGluc3RlYWQgb2YgdGhpcyBhYm9ydCwgY29tcGlsZSB3aXRoICAtcyBBQk9SVElOR19NQUxMT0M9MCAiKX1mdW5jdGlvbiBlbmxhcmdlTWVtb3J5KCl7YWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkoKX12YXIgVE9UQUxfU1RBQ0s9TW9kdWxlWyJUT1RBTF9TVEFDSyJdfHw1MjQyODgwO3ZhciBUT1RBTF9NRU1PUlk9TW9kdWxlWyJUT1RBTF9NRU1PUlkiXXx8NjcxMDg4NjQ7aWYoVE9UQUxfTUVNT1JZPFRPVEFMX1NUQUNLKU1vZHVsZS5wcmludEVycigiVE9UQUxfTUVNT1JZIHNob3VsZCBiZSBsYXJnZXIgdGhhbiBUT1RBTF9TVEFDSywgd2FzICIrVE9UQUxfTUVNT1JZKyIhIChUT1RBTF9TVEFDSz0iK1RPVEFMX1NUQUNLKyIpIik7aWYoTW9kdWxlWyJidWZmZXIiXSl7YnVmZmVyPU1vZHVsZVsiYnVmZmVyIl19ZWxzZXtpZih0eXBlb2YgV2ViQXNzZW1ibHk9PT0ib2JqZWN0IiYmdHlwZW9mIFdlYkFzc2VtYmx5Lk1lbW9yeT09PSJmdW5jdGlvbiIpe01vZHVsZVsid2FzbU1lbW9yeSJdPW5ldyBXZWJBc3NlbWJseS5NZW1vcnkoeyJpbml0aWFsIjpUT1RBTF9NRU1PUlkvV0FTTV9QQUdFX1NJWkUsIm1heGltdW0iOlRPVEFMX01FTU9SWS9XQVNNX1BBR0VfU0laRX0pO2J1ZmZlcj1Nb2R1bGVbIndhc21NZW1vcnkiXS5idWZmZXJ9ZWxzZXtidWZmZXI9bmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSl9fXVwZGF0ZUdsb2JhbEJ1ZmZlclZpZXdzKCk7ZnVuY3Rpb24gZ2V0VG90YWxNZW1vcnkoKXtyZXR1cm4gVE9UQUxfTUVNT1JZfUhFQVAzMlswXT0xNjY4NTA5MDI5O0hFQVAxNlsxXT0yNTQ1OTtpZihIRUFQVThbMl0hPT0xMTV8fEhFQVBVOFszXSE9PTk5KXRocm93IlJ1bnRpbWUgZXJyb3I6IGV4cGVjdGVkIHRoZSBzeXN0ZW0gdG8gYmUgbGl0dGxlLWVuZGlhbiEiO01vZHVsZVsiSEVBUCJdPUhFQVA7TW9kdWxlWyJidWZmZXIiXT1idWZmZXI7TW9kdWxlWyJIRUFQOCJdPUhFQVA4O01vZHVsZVsiSEVBUDE2Il09SEVBUDE2O01vZHVsZVsiSEVBUDMyIl09SEVBUDMyO01vZHVsZVsiSEVBUFU4Il09SEVBUFU4O01vZHVsZVsiSEVBUFUxNiJdPUhFQVBVMTY7TW9kdWxlWyJIRUFQVTMyIl09SEVBUFUzMjtNb2R1bGVbIkhFQVBGMzIiXT1IRUFQRjMyO01vZHVsZVsiSEVBUEY2NCJdPUhFQVBGNjQ7ZnVuY3Rpb24gY2FsbFJ1bnRpbWVDYWxsYmFja3MoY2FsbGJhY2tzKXt3aGlsZShjYWxsYmFja3MubGVuZ3RoPjApe3ZhciBjYWxsYmFjaz1jYWxsYmFja3Muc2hpZnQoKTtpZih0eXBlb2YgY2FsbGJhY2s9PSJmdW5jdGlvbiIpe2NhbGxiYWNrKCk7Y29udGludWV9dmFyIGZ1bmM9Y2FsbGJhY2suZnVuYztpZih0eXBlb2YgZnVuYz09PSJudW1iZXIiKXtpZihjYWxsYmFjay5hcmc9PT11bmRlZmluZWQpe01vZHVsZVsiZHluQ2FsbF92Il0oZnVuYyl9ZWxzZXtNb2R1bGVbImR5bkNhbGxfdmkiXShmdW5jLGNhbGxiYWNrLmFyZyl9fWVsc2V7ZnVuYyhjYWxsYmFjay5hcmc9PT11bmRlZmluZWQ/bnVsbDpjYWxsYmFjay5hcmcpfX19dmFyIF9fQVRQUkVSVU5fXz1bXTt2YXIgX19BVElOSVRfXz1bXTt2YXIgX19BVE1BSU5fXz1bXTt2YXIgX19BVEVYSVRfXz1bXTt2YXIgX19BVFBPU1RSVU5fXz1bXTt2YXIgcnVudGltZUluaXRpYWxpemVkPWZhbHNlO3ZhciBydW50aW1lRXhpdGVkPWZhbHNlO2Z1bmN0aW9uIHByZVJ1bigpe2lmKE1vZHVsZVsicHJlUnVuIl0pe2lmKHR5cGVvZiBNb2R1bGVbInByZVJ1biJdPT0iZnVuY3Rpb24iKU1vZHVsZVsicHJlUnVuIl09W01vZHVsZVsicHJlUnVuIl1dO3doaWxlKE1vZHVsZVsicHJlUnVuIl0ubGVuZ3RoKXthZGRPblByZVJ1bihNb2R1bGVbInByZVJ1biJdLnNoaWZ0KCkpfX1jYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUFJFUlVOX18pfWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCl7aWYocnVudGltZUluaXRpYWxpemVkKXJldHVybjtydW50aW1lSW5pdGlhbGl6ZWQ9dHJ1ZTtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKX1mdW5jdGlvbiBwcmVNYWluKCl7Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyl9ZnVuY3Rpb24gZXhpdFJ1bnRpbWUoKXtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTtydW50aW1lRXhpdGVkPXRydWV9ZnVuY3Rpb24gcG9zdFJ1bigpe2lmKE1vZHVsZVsicG9zdFJ1biJdKXtpZih0eXBlb2YgTW9kdWxlWyJwb3N0UnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwb3N0UnVuIl09W01vZHVsZVsicG9zdFJ1biJdXTt3aGlsZShNb2R1bGVbInBvc3RSdW4iXS5sZW5ndGgpe2FkZE9uUG9zdFJ1bihNb2R1bGVbInBvc3RSdW4iXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBPU1RSVU5fXyl9ZnVuY3Rpb24gYWRkT25QcmVSdW4oY2Ipe19fQVRQUkVSVU5fXy51bnNoaWZ0KGNiKX1Nb2R1bGVbImFkZE9uUHJlUnVuIl09YWRkT25QcmVSdW47ZnVuY3Rpb24gYWRkT25Jbml0KGNiKXtfX0FUSU5JVF9fLnVuc2hpZnQoY2IpfU1vZHVsZVsiYWRkT25Jbml0Il09YWRkT25Jbml0O2Z1bmN0aW9uIGFkZE9uUHJlTWFpbihjYil7X19BVE1BSU5fXy51bnNoaWZ0KGNiKX1Nb2R1bGVbImFkZE9uUHJlTWFpbiJdPWFkZE9uUHJlTWFpbjtmdW5jdGlvbiBhZGRPbkV4aXQoY2Ipe19fQVRFWElUX18udW5zaGlmdChjYil9TW9kdWxlWyJhZGRPbkV4aXQiXT1hZGRPbkV4aXQ7ZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKXtfX0FUUE9TVFJVTl9fLnVuc2hpZnQoY2IpfU1vZHVsZVsiYWRkT25Qb3N0UnVuIl09YWRkT25Qb3N0UnVuO2Z1bmN0aW9uIGludEFycmF5RnJvbVN0cmluZyhzdHJpbmd5LGRvbnRBZGROdWxsLGxlbmd0aCl7dmFyIGxlbj1sZW5ndGg+MD9sZW5ndGg6bGVuZ3RoQnl0ZXNVVEY4KHN0cmluZ3kpKzE7dmFyIHU4YXJyYXk9bmV3IEFycmF5KGxlbik7dmFyIG51bUJ5dGVzV3JpdHRlbj1zdHJpbmdUb1VURjhBcnJheShzdHJpbmd5LHU4YXJyYXksMCx1OGFycmF5Lmxlbmd0aCk7aWYoZG9udEFkZE51bGwpdThhcnJheS5sZW5ndGg9bnVtQnl0ZXNXcml0dGVuO3JldHVybiB1OGFycmF5fU1vZHVsZVsiaW50QXJyYXlGcm9tU3RyaW5nIl09aW50QXJyYXlGcm9tU3RyaW5nO2Z1bmN0aW9uIGludEFycmF5VG9TdHJpbmcoYXJyYXkpe3ZhciByZXQ9W107Zm9yKHZhciBpPTA7aTxhcnJheS5sZW5ndGg7aSsrKXt2YXIgY2hyPWFycmF5W2ldO2lmKGNocj4yNTUpe2NociY9MjU1fXJldC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSl9cmV0dXJuIHJldC5qb2luKCIiKX1Nb2R1bGVbImludEFycmF5VG9TdHJpbmciXT1pbnRBcnJheVRvU3RyaW5nO2Z1bmN0aW9uIHdyaXRlU3RyaW5nVG9NZW1vcnkoc3RyaW5nLGJ1ZmZlcixkb250QWRkTnVsbCl7UnVudGltZS53YXJuT25jZSgid3JpdGVTdHJpbmdUb01lbW9yeSBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCEgVXNlIHN0cmluZ1RvVVRGOCgpIGluc3RlYWQhIik7dmFyIGxhc3RDaGFyLGVuZDtpZihkb250QWRkTnVsbCl7ZW5kPWJ1ZmZlcitsZW5ndGhCeXRlc1VURjgoc3RyaW5nKTtsYXN0Q2hhcj1IRUFQOFtlbmRdfXN0cmluZ1RvVVRGOChzdHJpbmcsYnVmZmVyLEluZmluaXR5KTtpZihkb250QWRkTnVsbClIRUFQOFtlbmRdPWxhc3RDaGFyfU1vZHVsZVsid3JpdGVTdHJpbmdUb01lbW9yeSJdPXdyaXRlU3RyaW5nVG9NZW1vcnk7ZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5LGJ1ZmZlcil7SEVBUDguc2V0KGFycmF5LGJ1ZmZlcil9TW9kdWxlWyJ3cml0ZUFycmF5VG9NZW1vcnkiXT13cml0ZUFycmF5VG9NZW1vcnk7ZnVuY3Rpb24gd3JpdGVBc2NpaVRvTWVtb3J5KHN0cixidWZmZXIsZG9udEFkZE51bGwpe2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe0hFQVA4W2J1ZmZlcisrPj4wXT1zdHIuY2hhckNvZGVBdChpKX1pZighZG9udEFkZE51bGwpSEVBUDhbYnVmZmVyPj4wXT0wfU1vZHVsZVsid3JpdGVBc2NpaVRvTWVtb3J5Il09d3JpdGVBc2NpaVRvTWVtb3J5O2lmKCFNYXRoWyJpbXVsIl18fE1hdGhbImltdWwiXSg0Mjk0OTY3Mjk1LDUpIT09LTUpTWF0aFsiaW11bCJdPWZ1bmN0aW9uIGltdWwoYSxiKXt2YXIgYWg9YT4+PjE2O3ZhciBhbD1hJjY1NTM1O3ZhciBiaD1iPj4+MTY7dmFyIGJsPWImNjU1MzU7cmV0dXJuIGFsKmJsKyhhaCpibCthbCpiaDw8MTYpfDB9O01hdGguaW11bD1NYXRoWyJpbXVsIl07aWYoIU1hdGhbImZyb3VuZCJdKXt2YXIgZnJvdW5kQnVmZmVyPW5ldyBGbG9hdDMyQXJyYXkoMSk7TWF0aFsiZnJvdW5kIl09KGZ1bmN0aW9uKHgpe2Zyb3VuZEJ1ZmZlclswXT14O3JldHVybiBmcm91bmRCdWZmZXJbMF19KX1NYXRoLmZyb3VuZD1NYXRoWyJmcm91bmQiXTtpZighTWF0aFsiY2x6MzIiXSlNYXRoWyJjbHozMiJdPShmdW5jdGlvbih4KXt4PXg+Pj4wO2Zvcih2YXIgaT0wO2k8MzI7aSsrKXtpZih4JjE8PDMxLWkpcmV0dXJuIGl9cmV0dXJuIDMyfSk7TWF0aC5jbHozMj1NYXRoWyJjbHozMiJdO2lmKCFNYXRoWyJ0cnVuYyJdKU1hdGhbInRydW5jIl09KGZ1bmN0aW9uKHgpe3JldHVybiB4PDA/TWF0aC5jZWlsKHgpOk1hdGguZmxvb3IoeCl9KTtNYXRoLnRydW5jPU1hdGhbInRydW5jIl07dmFyIE1hdGhfYWJzPU1hdGguYWJzO3ZhciBNYXRoX2Nvcz1NYXRoLmNvczt2YXIgTWF0aF9zaW49TWF0aC5zaW47dmFyIE1hdGhfdGFuPU1hdGgudGFuO3ZhciBNYXRoX2Fjb3M9TWF0aC5hY29zO3ZhciBNYXRoX2FzaW49TWF0aC5hc2luO3ZhciBNYXRoX2F0YW49TWF0aC5hdGFuO3ZhciBNYXRoX2F0YW4yPU1hdGguYXRhbjI7dmFyIE1hdGhfZXhwPU1hdGguZXhwO3ZhciBNYXRoX2xvZz1NYXRoLmxvZzt2YXIgTWF0aF9zcXJ0PU1hdGguc3FydDt2YXIgTWF0aF9jZWlsPU1hdGguY2VpbDt2YXIgTWF0aF9mbG9vcj1NYXRoLmZsb29yO3ZhciBNYXRoX3Bvdz1NYXRoLnBvdzt2YXIgTWF0aF9pbXVsPU1hdGguaW11bDt2YXIgTWF0aF9mcm91bmQ9TWF0aC5mcm91bmQ7dmFyIE1hdGhfcm91bmQ9TWF0aC5yb3VuZDt2YXIgTWF0aF9taW49TWF0aC5taW47dmFyIE1hdGhfY2x6MzI9TWF0aC5jbHozMjt2YXIgTWF0aF90cnVuYz1NYXRoLnRydW5jO3ZhciBydW5EZXBlbmRlbmNpZXM9MDt2YXIgcnVuRGVwZW5kZW5jeVdhdGNoZXI9bnVsbDt2YXIgZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7ZnVuY3Rpb24gZ2V0VW5pcXVlUnVuRGVwZW5kZW5jeShpZCl7cmV0dXJuIGlkfWZ1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpe3J1bkRlcGVuZGVuY2llcysrO2lmKE1vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKXtNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNpZXMpfX1Nb2R1bGVbImFkZFJ1bkRlcGVuZGVuY3kiXT1hZGRSdW5EZXBlbmRlbmN5O2Z1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQpe3J1bkRlcGVuZGVuY2llcy0tO2lmKE1vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKXtNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNpZXMpfWlmKHJ1bkRlcGVuZGVuY2llcz09MCl7aWYocnVuRGVwZW5kZW5jeVdhdGNoZXIhPT1udWxsKXtjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTtydW5EZXBlbmRlbmN5V2F0Y2hlcj1udWxsfWlmKGRlcGVuZGVuY2llc0Z1bGZpbGxlZCl7dmFyIGNhbGxiYWNrPWRlcGVuZGVuY2llc0Z1bGZpbGxlZDtkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9bnVsbDtjYWxsYmFjaygpfX19TW9kdWxlWyJyZW1vdmVSdW5EZXBlbmRlbmN5Il09cmVtb3ZlUnVuRGVwZW5kZW5jeTtNb2R1bGVbInByZWxvYWRlZEltYWdlcyJdPXt9O01vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl09e307dmFyIG1lbW9yeUluaXRpYWxpemVyPW51bGw7ZnVuY3Rpb24gaW50ZWdyYXRlV2FzbUpTKCl7dmFyIG1ldGhvZD1Nb2R1bGVbIndhc21KU01ldGhvZCJdfHwibmF0aXZlLXdhc20iO01vZHVsZVsid2FzbUpTTWV0aG9kIl09bWV0aG9kO3ZhciB3YXNtVGV4dEZpbGU9TW9kdWxlWyJ3YXNtVGV4dEZpbGUiXXx8ImNuLndhc3QiO3ZhciB3YXNtQmluYXJ5RmlsZT1Nb2R1bGVbIndhc21CaW5hcnlGaWxlIl18fCJjbi53YXNtIjt2YXIgYXNtanNDb2RlRmlsZT1Nb2R1bGVbImFzbWpzQ29kZUZpbGUiXXx8ImNuLnRlbXAuYXNtLmpzIjtpZih0eXBlb2YgTW9kdWxlWyJsb2NhdGVGaWxlIl09PT0iZnVuY3Rpb24iKXt3YXNtVGV4dEZpbGU9TW9kdWxlWyJsb2NhdGVGaWxlIl0od2FzbVRleHRGaWxlKTt3YXNtQmluYXJ5RmlsZT1Nb2R1bGVbImxvY2F0ZUZpbGUiXSh3YXNtQmluYXJ5RmlsZSk7YXNtanNDb2RlRmlsZT1Nb2R1bGVbImxvY2F0ZUZpbGUiXShhc21qc0NvZGVGaWxlKX12YXIgd2FzbVBhZ2VTaXplPTY0KjEwMjQ7dmFyIGFzbTJ3YXNtSW1wb3J0cz17ImY2NC1yZW0iOihmdW5jdGlvbih4LHkpe3JldHVybiB4JXl9KSwiZjY0LXRvLWludCI6KGZ1bmN0aW9uKHgpe3JldHVybiB4fDB9KSwiaTMycy1kaXYiOihmdW5jdGlvbih4LHkpe3JldHVybih4fDApLyh5fDApfDB9KSwiaTMydS1kaXYiOihmdW5jdGlvbih4LHkpe3JldHVybih4Pj4+MCkvKHk+Pj4wKT4+PjB9KSwiaTMycy1yZW0iOihmdW5jdGlvbih4LHkpe3JldHVybih4fDApJSh5fDApfDB9KSwiaTMydS1yZW0iOihmdW5jdGlvbih4LHkpe3JldHVybih4Pj4+MCklKHk+Pj4wKT4+PjB9KSwiZGVidWdnZXIiOihmdW5jdGlvbigpe2RlYnVnZ2VyfSl9O3ZhciBpbmZvPXsiZ2xvYmFsIjpudWxsLCJlbnYiOm51bGwsImFzbTJ3YXNtIjphc20yd2FzbUltcG9ydHMsInBhcmVudCI6TW9kdWxlfTt2YXIgZXhwb3J0cz1udWxsO2Z1bmN0aW9uIGxvb2t1cEltcG9ydChtb2QsYmFzZSl7dmFyIGxvb2t1cD1pbmZvO2lmKG1vZC5pbmRleE9mKCIuIik8MCl7bG9va3VwPShsb29rdXB8fHt9KVttb2RdfWVsc2V7dmFyIHBhcnRzPW1vZC5zcGxpdCgiLiIpO2xvb2t1cD0obG9va3VwfHx7fSlbcGFydHNbMF1dO2xvb2t1cD0obG9va3VwfHx7fSlbcGFydHNbMV1dfWlmKGJhc2Upe2xvb2t1cD0obG9va3VwfHx7fSlbYmFzZV19aWYobG9va3VwPT09dW5kZWZpbmVkKXthYm9ydCgiYmFkIGxvb2t1cEltcG9ydCB0byAoIittb2QrIikuIitiYXNlKX1yZXR1cm4gbG9va3VwfWZ1bmN0aW9uIG1lcmdlTWVtb3J5KG5ld0J1ZmZlcil7dmFyIG9sZEJ1ZmZlcj1Nb2R1bGVbImJ1ZmZlciJdO2lmKG5ld0J1ZmZlci5ieXRlTGVuZ3RoPG9sZEJ1ZmZlci5ieXRlTGVuZ3RoKXtNb2R1bGVbInByaW50RXJyIl0oInRoZSBuZXcgYnVmZmVyIGluIG1lcmdlTWVtb3J5IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLiBpbiBuYXRpdmUgd2FzbSwgd2Ugc2hvdWxkIGdyb3cgbWVtb3J5IGhlcmUiKX12YXIgb2xkVmlldz1uZXcgSW50OEFycmF5KG9sZEJ1ZmZlcik7dmFyIG5ld1ZpZXc9bmV3IEludDhBcnJheShuZXdCdWZmZXIpO2lmKCFtZW1vcnlJbml0aWFsaXplcil7b2xkVmlldy5zZXQobmV3Vmlldy5zdWJhcnJheShNb2R1bGVbIlNUQVRJQ19CQVNFIl0sTW9kdWxlWyJTVEFUSUNfQkFTRSJdK01vZHVsZVsiU1RBVElDX0JVTVAiXSksTW9kdWxlWyJTVEFUSUNfQkFTRSJdKX1uZXdWaWV3LnNldChvbGRWaWV3KTt1cGRhdGVHbG9iYWxCdWZmZXIobmV3QnVmZmVyKTt1cGRhdGVHbG9iYWxCdWZmZXJWaWV3cygpfXZhciBXYXNtVHlwZXM9e25vbmU6MCxpMzI6MSxpNjQ6MixmMzI6MyxmNjQ6NH07ZnVuY3Rpb24gZml4SW1wb3J0cyhpbXBvcnRzKXtpZighMClyZXR1cm4gaW1wb3J0czt2YXIgcmV0PXt9O2Zvcih2YXIgaSBpbiBpbXBvcnRzKXt2YXIgZml4ZWQ9aTtpZihmaXhlZFswXT09Il8iKWZpeGVkPWZpeGVkLnN1YnN0cigxKTtyZXRbZml4ZWRdPWltcG9ydHNbaV19cmV0dXJuIHJldH1mdW5jdGlvbiBnZXRCaW5hcnkoKXt0cnl7dmFyIGJpbmFyeTtpZihNb2R1bGVbIndhc21CaW5hcnkiXSl7YmluYXJ5PU1vZHVsZVsid2FzbUJpbmFyeSJdO2JpbmFyeT1uZXcgVWludDhBcnJheShiaW5hcnkpfWVsc2UgaWYoTW9kdWxlWyJyZWFkQmluYXJ5Il0pe2JpbmFyeT1Nb2R1bGVbInJlYWRCaW5hcnkiXSh3YXNtQmluYXJ5RmlsZSl9ZWxzZXt0aHJvdyJvbiB0aGUgd2ViLCB3ZSBuZWVkIHRoZSB3YXNtIGJpbmFyeSB0byBiZSBwcmVsb2FkZWQgYW5kIHNldCBvbiBNb2R1bGVbJ3dhc21CaW5hcnknXS4gZW1jYy5weSB3aWxsIGRvIHRoYXQgZm9yIHlvdSB3aGVuIGdlbmVyYXRpbmcgSFRNTCAoYnV0IG5vdCBKUykifXJldHVybiBiaW5hcnl9Y2F0Y2goZXJyKXthYm9ydChlcnIpfX1mdW5jdGlvbiBnZXRCaW5hcnlQcm9taXNlKCl7aWYoIU1vZHVsZVsid2FzbUJpbmFyeSJdJiYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpJiZ0eXBlb2YgZmV0Y2g9PT0iZnVuY3Rpb24iKXtyZXR1cm4gZmV0Y2god2FzbUJpbmFyeUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihyZXNwb25zZSl7aWYoIXJlc3BvbnNlWyJvayJdKXt0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK3dhc21CaW5hcnlGaWxlKyInIn1yZXR1cm4gcmVzcG9uc2VbImFycmF5QnVmZmVyIl0oKX0pKX1yZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXtyZXNvbHZlKGdldEJpbmFyeSgpKX0pKX1mdW5jdGlvbiBkb05hdGl2ZVdhc20oZ2xvYmFsLGVudixwcm92aWRlZEJ1ZmZlcil7aWYodHlwZW9mIFdlYkFzc2VtYmx5IT09Im9iamVjdCIpe01vZHVsZVsicHJpbnRFcnIiXSgibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3JldHVybiBmYWxzZX1pZighKE1vZHVsZVsid2FzbU1lbW9yeSJdaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5NZW1vcnkpKXtNb2R1bGVbInByaW50RXJyIl0oIm5vIG5hdGl2ZSB3YXNtIE1lbW9yeSBpbiB1c2UiKTtyZXR1cm4gZmFsc2V9ZW52WyJtZW1vcnkiXT1Nb2R1bGVbIndhc21NZW1vcnkiXTtpbmZvWyJnbG9iYWwiXT17Ik5hTiI6TmFOLCJJbmZpbml0eSI6SW5maW5pdHl9O2luZm9bImdsb2JhbC5NYXRoIl09Z2xvYmFsLk1hdGg7aW5mb1siZW52Il09ZW52O2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSl7ZXhwb3J0cz1pbnN0YW5jZS5leHBvcnRzO2lmKGV4cG9ydHMubWVtb3J5KW1lcmdlTWVtb3J5KGV4cG9ydHMubWVtb3J5KTtNb2R1bGVbImFzbSJdPWV4cG9ydHM7TW9kdWxlWyJ1c2luZ1dhc20iXT10cnVlO3JlbW92ZVJ1bkRlcGVuZGVuY3koIndhc20taW5zdGFudGlhdGUiKX1hZGRSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIik7aWYoTW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXSl7dHJ5e3JldHVybiBNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKGluZm8scmVjZWl2ZUluc3RhbmNlKX1jYXRjaChlKXtNb2R1bGVbInByaW50RXJyIl0oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrZSk7cmV0dXJuIGZhbHNlfX1mdW5jdGlvbiByZWNlaXZlSW5zdGFudGlhdGVkU291cmNlKG91dHB1dCl7cmVjZWl2ZUluc3RhbmNlKG91dHB1dFsiaW5zdGFuY2UiXSl9ZnVuY3Rpb24gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihyZWNlaXZlcil7Z2V0QmluYXJ5UHJvbWlzZSgpLnRoZW4oKGZ1bmN0aW9uKGJpbmFyeSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJpbmFyeSxpbmZvKX0pKS50aGVuKHJlY2VpdmVyKS5jYXRjaCgoZnVuY3Rpb24ocmVhc29uKXtNb2R1bGVbInByaW50RXJyIl0oImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICIrcmVhc29uKTthYm9ydChyZWFzb24pfSkpfWlmKCFNb2R1bGVbIndhc21CaW5hcnkiXSYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT09ImZ1bmN0aW9uIil7V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2god2FzbUJpbmFyeUZpbGUse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KSxpbmZvKS50aGVuKHJlY2VpdmVJbnN0YW50aWF0ZWRTb3VyY2UpLmNhdGNoKChmdW5jdGlvbihyZWFzb24pe01vZHVsZVsicHJpbnRFcnIiXSgid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrcmVhc29uKTtNb2R1bGVbInByaW50RXJyIl0oImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIik7aW5zdGFudGlhdGVBcnJheUJ1ZmZlcihyZWNlaXZlSW5zdGFudGlhdGVkU291cmNlKX0pKX1lbHNle2luc3RhbnRpYXRlQXJyYXlCdWZmZXIocmVjZWl2ZUluc3RhbnRpYXRlZFNvdXJjZSl9cmV0dXJue319TW9kdWxlWyJhc21QcmVsb2FkIl09TW9kdWxlWyJhc20iXTt2YXIgYXNtanNSZWFsbG9jQnVmZmVyPU1vZHVsZVsicmVhbGxvY0J1ZmZlciJdO3ZhciB3YXNtUmVhbGxvY0J1ZmZlcj0oZnVuY3Rpb24oc2l6ZSl7dmFyIFBBR0VfTVVMVElQTEU9TW9kdWxlWyJ1c2luZ1dhc20iXT9XQVNNX1BBR0VfU0laRTpBU01KU19QQUdFX1NJWkU7c2l6ZT1hbGlnblVwKHNpemUsUEFHRV9NVUxUSVBMRSk7dmFyIG9sZD1Nb2R1bGVbImJ1ZmZlciJdO3ZhciBvbGRTaXplPW9sZC5ieXRlTGVuZ3RoO2lmKE1vZHVsZVsidXNpbmdXYXNtIl0pe3RyeXt2YXIgcmVzdWx0PU1vZHVsZVsid2FzbU1lbW9yeSJdLmdyb3coKHNpemUtb2xkU2l6ZSkvd2FzbVBhZ2VTaXplKTtpZihyZXN1bHQhPT0oLTF8MCkpe3JldHVybiBNb2R1bGVbImJ1ZmZlciJdPU1vZHVsZVsid2FzbU1lbW9yeSJdLmJ1ZmZlcn1lbHNle3JldHVybiBudWxsfX1jYXRjaChlKXtyZXR1cm4gbnVsbH19ZWxzZXtleHBvcnRzWyJfX2dyb3dXYXNtTWVtb3J5Il0oKHNpemUtb2xkU2l6ZSkvd2FzbVBhZ2VTaXplKTtyZXR1cm4gTW9kdWxlWyJidWZmZXIiXSE9PW9sZD9Nb2R1bGVbImJ1ZmZlciJdOm51bGx9fSk7TW9kdWxlWyJyZWFsbG9jQnVmZmVyIl09KGZ1bmN0aW9uKHNpemUpe2lmKGZpbmFsTWV0aG9kPT09ImFzbWpzIil7cmV0dXJuIGFzbWpzUmVhbGxvY0J1ZmZlcihzaXplKX1lbHNle3JldHVybiB3YXNtUmVhbGxvY0J1ZmZlcihzaXplKX19KTt2YXIgZmluYWxNZXRob2Q9IiI7TW9kdWxlWyJhc20iXT0oZnVuY3Rpb24oZ2xvYmFsLGVudixwcm92aWRlZEJ1ZmZlcil7Z2xvYmFsPWZpeEltcG9ydHMoZ2xvYmFsKTtlbnY9Zml4SW1wb3J0cyhlbnYpO2lmKCFlbnZbInRhYmxlIl0pe3ZhciBUQUJMRV9TSVpFPU1vZHVsZVsid2FzbVRhYmxlU2l6ZSJdO2lmKFRBQkxFX1NJWkU9PT11bmRlZmluZWQpVEFCTEVfU0laRT0xMDI0O3ZhciBNQVhfVEFCTEVfU0laRT1Nb2R1bGVbIndhc21NYXhUYWJsZVNpemUiXTtpZih0eXBlb2YgV2ViQXNzZW1ibHk9PT0ib2JqZWN0IiYmdHlwZW9mIFdlYkFzc2VtYmx5LlRhYmxlPT09ImZ1bmN0aW9uIil7aWYoTUFYX1RBQkxFX1NJWkUhPT11bmRlZmluZWQpe2VudlsidGFibGUiXT1uZXcgV2ViQXNzZW1ibHkuVGFibGUoeyJpbml0aWFsIjpUQUJMRV9TSVpFLCJtYXhpbXVtIjpNQVhfVEFCTEVfU0laRSwiZWxlbWVudCI6ImFueWZ1bmMifSl9ZWxzZXtlbnZbInRhYmxlIl09bmV3IFdlYkFzc2VtYmx5LlRhYmxlKHsiaW5pdGlhbCI6VEFCTEVfU0laRSxlbGVtZW50OiJhbnlmdW5jIn0pfX1lbHNle2VudlsidGFibGUiXT1uZXcgQXJyYXkoVEFCTEVfU0laRSl9TW9kdWxlWyJ3YXNtVGFibGUiXT1lbnZbInRhYmxlIl19aWYoIWVudlsibWVtb3J5QmFzZSJdKXtlbnZbIm1lbW9yeUJhc2UiXT1Nb2R1bGVbIlNUQVRJQ19CQVNFIl19aWYoIWVudlsidGFibGVCYXNlIl0pe2VudlsidGFibGVCYXNlIl09MH12YXIgZXhwb3J0cztleHBvcnRzPWRvTmF0aXZlV2FzbShnbG9iYWwsZW52LHByb3ZpZGVkQnVmZmVyKTtpZighZXhwb3J0cylhYm9ydCgibm8gYmluYXJ5ZW4gbWV0aG9kIHN1Y2NlZWRlZC4gY29uc2lkZXIgZW5hYmxpbmcgbW9yZSBvcHRpb25zLCBsaWtlIGludGVycHJldGluZywgaWYgeW91IHdhbnQgdGhhdDogaHR0cHM6Ly9naXRodWIuY29tL2tyaXBrZW4vZW1zY3JpcHRlbi93aWtpL1dlYkFzc2VtYmx5I2JpbmFyeWVuLW1ldGhvZHMiKTtyZXR1cm4gZXhwb3J0c30pO3ZhciBtZXRob2RIYW5kbGVyPU1vZHVsZVsiYXNtIl19aW50ZWdyYXRlV2FzbUpTKCk7dmFyIEFTTV9DT05TVFM9W107U1RBVElDX0JBU0U9UnVudGltZS5HTE9CQUxfQkFTRTtTVEFUSUNUT1A9U1RBVElDX0JBU0UrMTQ4MDA7X19BVElOSVRfXy5wdXNoKCk7bWVtb3J5SW5pdGlhbGl6ZXI9TW9kdWxlWyJ3YXNtSlNNZXRob2QiXS5pbmRleE9mKCJhc21qcyIpPj0wfHxNb2R1bGVbIndhc21KU01ldGhvZCJdLmluZGV4T2YoImludGVycHJldC1hc20yd2FzbSIpPj0wPyJjbi5odG1sLm1lbSI6bnVsbDt2YXIgU1RBVElDX0JVTVA9MTQ4MDA7TW9kdWxlWyJTVEFUSUNfQkFTRSJdPVNUQVRJQ19CQVNFO01vZHVsZVsiU1RBVElDX0JVTVAiXT1TVEFUSUNfQlVNUDt2YXIgdGVtcERvdWJsZVB0cj1TVEFUSUNUT1A7U1RBVElDVE9QKz0xNjt2YXIgUFJPQ0lORk89e3BwaWQ6MSxwaWQ6NDIsc2lkOjQyLHBnaWQ6NDJ9O3ZhciBFUlJOT19DT0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQsRUlPOjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzoxNSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElSOjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVGQklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVET006MzMsRVJBTkdFOjM0LEVOT01TRzo0MixFSURSTTo0MyxFQ0hSTkc6NDQsRUwyTlNZTkM6NDUsRUwzSExUOjQ2LEVMM1JTVDo0NyxFTE5STkc6NDgsRVVOQVRDSDo0OSxFTk9DU0k6NTAsRUwySExUOjUxLEVERUFETEs6MzUsRU5PTENLOjM3LEVCQURFOjUyLEVCQURSOjUzLEVYRlVMTDo1NCxFTk9BTk86NTUsRUJBRFJRQzo1NixFQkFEU0xUOjU3LEVERUFETE9DSzozNSxFQkZPTlQ6NTksRU5PU1RSOjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVNT1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVNVUxUSUhPUDo3MixFRE9URE9UOjczLEVCQURNU0c6NzQsRU5PVFVOSVE6NzYsRUJBREZEOjc3LEVSRU1DSEc6NzgsRUxJQkFDQzo3OSxFTElCQkFEOjgwLEVMSUJTQ046ODEsRUxJQk1BWDo4MixFTElCRVhFQzo4MyxFTk9TWVM6MzgsRU5PVEVNUFRZOjM5LEVOQU1FVE9PTE9ORzozNixFTE9PUDo0MCxFT1BOT1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxFQUZOT1NVUFBPUlQ6OTcsRVBST1RPVFlQRTo5MSxFTk9UU09DSzo4OCxFTk9QUk9UT09QVDo5MixFU0hVVERPV046MTA4LEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRTo5OCxFQ09OTkFCT1JURUQ6MTAzLEVORVRVTlJFQUNIOjEwMSxFTkVURE9XTjoxMDAsRVRJTUVET1VUOjExMCxFSE9TVERPV046MTEyLEVIT1NUVU5SRUFDSDoxMTMsRUlOUFJPR1JFU1M6MTE1LEVBTFJFQURZOjExNCxFREVTVEFERFJSRVE6ODksRU1TR1NJWkU6OTAsRVBST1RPTk9TVVBQT1JUOjkzLEVTT0NLVE5PU1VQUE9SVDo5NCxFQUREUk5PVEFWQUlMOjk5LEVORVRSRVNFVDoxMDIsRUlTQ09OTjoxMDYsRU5PVENPTk46MTA3LEVUT09NQU5ZUkVGUzoxMDksRVVTRVJTOjg3LEVEUVVPVDoxMjIsRVNUQUxFOjExNixFTk9UU1VQOjk1LEVOT01FRElVTToxMjMsRUlMU0VROjg0LEVPVkVSRkxPVzo3NSxFQ0FOQ0VMRUQ6MTI1LEVOT1RSRUNPVkVSQUJMRToxMzEsRU9XTkVSREVBRDoxMzAsRVNUUlBJUEU6ODZ9O3ZhciBFUlJOT19NRVNTQUdFUz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVzZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoiSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vzc2VzIiwxMjoiTm90IGVub3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRkcmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5IiwxNzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1Y2ggZGV2aWNlIiwyMDoiTm90IGEgZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFyZ3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBvcGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQgZmlsZSBidXN5IiwyNzoiRmlsZSB0b28gbGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwgc2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoiQnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9tYWluIG9mIGZ1bmMiLDM0OiJNYXRoIHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6IkZpbGUgbG9ja2luZyBkZWFkbG9jayBlcnJvciIsMzY6IkZpbGUgb3IgcGF0aCBuYW1lIHRvbyBsb25nIiwzNzoiTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJsZSIsMzg6IkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIsMzk6IkRpcmVjdG9yeSBub3QgZW1wdHkiLDQwOiJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIsNDI6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlIiw0MzoiSWRlbnRpZmllciByZW1vdmVkIiw0NDoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdlIiw0NToiTGV2ZWwgMiBub3Qgc3luY2hyb25pemVkIiw0NjoiTGV2ZWwgMyBoYWx0ZWQiLDQ3OiJMZXZlbCAzIHJlc2V0Iiw0ODoiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0OToiUHJvdG9jb2wgZHJpdmVyIG5vdCBhdHRhY2hlZCIsNTA6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw1MToiTGV2ZWwgMiBoYWx0ZWQiLDUyOiJJbnZhbGlkIGV4Y2hhbmdlIiw1MzoiSW52YWxpZCByZXF1ZXN0IGRlc2NyaXB0b3IiLDU0OiJFeGNoYW5nZSBmdWxsIiw1NToiTm8gYW5vZGUiLDU2OiJJbnZhbGlkIHJlcXVlc3QgY29kZSIsNTc6IkludmFsaWQgc2xvdCIsNTk6IkJhZCBmb250IGZpbGUgZm10Iiw2MDoiRGV2aWNlIG5vdCBhIHN0cmVhbSIsNjE6Ik5vIGRhdGEgKGZvciBubyBkZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2MzoiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzIiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5ldHdvcmsiLDY1OiJQYWNrYWdlIG5vdCBpbnN0YWxsZWQiLDY2OiJUaGUgb2JqZWN0IGlzIHJlbW90ZSIsNjc6IlRoZSBsaW5rIGhhcyBiZWVuIHNldmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5OiJTcm1vdW50IGVycm9yIiw3MDoiQ29tbXVuaWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJvdG9jb2wgZXJyb3IiLDcyOiJNdWx0aWhvcCBhdHRlbXB0ZWQiLDczOiJDcm9zcyBtb3VudCBwb2ludCAobm90IHJlYWxseSBlcnJvcikiLDc0OiJUcnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3NhZ2UiLDc1OiJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlIiw3NjoiR2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDc3OiJmLmQuIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uIiw3ODoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsNzk6IkNhbiAgIGFjY2VzcyBhIG5lZWRlZCBzaGFyZWQgbGliIiw4MDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDgxOiIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiw4MjoiQXR0ZW1wdGluZyB0byBsaW5rIGluIHRvbyBtYW55IGxpYnMiLDgzOiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFyeSIsODQ6IklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsODY6IlN0cmVhbXMgcGlwZSBlcnJvciIsODc6IlRvbyBtYW55IHVzZXJzIiw4ODoiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0Iiw4OToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsOTA6Ik1lc3NhZ2UgdG9vIGxvbmciLDkxOiJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLDkyOiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiw5MzoiVW5rbm93biBwcm90b2NvbCIsOTQ6IlNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQiLDk1OiJOb3Qgc3VwcG9ydGVkIiw5NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDk3OiJBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsOTg6IkFkZHJlc3MgYWxyZWFkeSBpbiB1c2UiLDk5OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEwMDoiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDEwMToiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIsMTAyOiJDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsiLDEwMzoiQ29ubmVjdGlvbiBhYm9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkgcGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTA3OiJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTA4OiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93biIsMTA5OiJUb28gbWFueSByZWZlcmVuY2VzIiwxMTA6IkNvbm5lY3Rpb24gdGltZWQgb3V0IiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJIb3N0IGlzIGRvd24iLDExMzoiSG9zdCBpcyB1bnJlYWNoYWJsZSIsMTE0OiJTb2NrZXQgYWxyZWFkeSBjb25uZWN0ZWQiLDExNToiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzIiwxMTY6IlN0YWxlIGZpbGUgaGFuZGxlIiwxMjI6IlF1b3RhIGV4Y2VlZGVkIiwxMjM6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEyNToiT3BlcmF0aW9uIGNhbmNlbGVkIiwxMzA6IlByZXZpb3VzIG93bmVyIGRpZWQiLDEzMToiU3RhdGUgbm90IHJlY292ZXJhYmxlIn07ZnVuY3Rpb24gX19fc2V0RXJyTm8odmFsdWUpe2lmKE1vZHVsZVsiX19fZXJybm9fbG9jYXRpb24iXSlIRUFQMzJbTW9kdWxlWyJfX19lcnJub19sb2NhdGlvbiJdKCk+PjJdPXZhbHVlO3JldHVybiB2YWx1ZX12YXIgUEFUSD17c3BsaXRQYXRoOihmdW5jdGlvbihmaWxlbmFtZSl7dmFyIHNwbGl0UGF0aFJlPS9eKFwvP3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLztyZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSl9KSxub3JtYWxpemVBcnJheTooZnVuY3Rpb24ocGFydHMsYWxsb3dBYm92ZVJvb3Qpe3ZhciB1cD0wO2Zvcih2YXIgaT1wYXJ0cy5sZW5ndGgtMTtpPj0wO2ktLSl7dmFyIGxhc3Q9cGFydHNbaV07aWYobGFzdD09PSIuIil7cGFydHMuc3BsaWNlKGksMSl9ZWxzZSBpZihsYXN0PT09Ii4uIil7cGFydHMuc3BsaWNlKGksMSk7dXArK31lbHNlIGlmKHVwKXtwYXJ0cy5zcGxpY2UoaSwxKTt1cC0tfX1pZihhbGxvd0Fib3ZlUm9vdCl7Zm9yKDt1cDt1cC0tKXtwYXJ0cy51bnNoaWZ0KCIuLiIpfX1yZXR1cm4gcGFydHN9KSxub3JtYWxpemU6KGZ1bmN0aW9uKHBhdGgpe3ZhciBpc0Fic29sdXRlPXBhdGguY2hhckF0KDApPT09Ii8iLHRyYWlsaW5nU2xhc2g9cGF0aC5zdWJzdHIoLTEpPT09Ii8iO3BhdGg9UEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCIvIikuZmlsdGVyKChmdW5jdGlvbihwKXtyZXR1cm4hIXB9KSksIWlzQWJzb2x1dGUpLmpvaW4oIi8iKTtpZighcGF0aCYmIWlzQWJzb2x1dGUpe3BhdGg9Ii4ifWlmKHBhdGgmJnRyYWlsaW5nU2xhc2gpe3BhdGgrPSIvIn1yZXR1cm4oaXNBYnNvbHV0ZT8iLyI6IiIpK3BhdGh9KSxkaXJuYW1lOihmdW5jdGlvbihwYXRoKXt2YXIgcmVzdWx0PVBBVEguc3BsaXRQYXRoKHBhdGgpLHJvb3Q9cmVzdWx0WzBdLGRpcj1yZXN1bHRbMV07aWYoIXJvb3QmJiFkaXIpe3JldHVybiIuIn1pZihkaXIpe2Rpcj1kaXIuc3Vic3RyKDAsZGlyLmxlbmd0aC0xKX1yZXR1cm4gcm9vdCtkaXJ9KSxiYXNlbmFtZTooZnVuY3Rpb24ocGF0aCl7aWYocGF0aD09PSIvIilyZXR1cm4iLyI7dmFyIGxhc3RTbGFzaD1wYXRoLmxhc3RJbmRleE9mKCIvIik7aWYobGFzdFNsYXNoPT09LTEpcmV0dXJuIHBhdGg7cmV0dXJuIHBhdGguc3Vic3RyKGxhc3RTbGFzaCsxKX0pLGV4dG5hbWU6KGZ1bmN0aW9uKHBhdGgpe3JldHVybiBQQVRILnNwbGl0UGF0aChwYXRoKVszXX0pLGpvaW46KGZ1bmN0aW9uKCl7dmFyIHBhdGhzPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gUEFUSC5ub3JtYWxpemUocGF0aHMuam9pbigiLyIpKX0pLGpvaW4yOihmdW5jdGlvbihsLHIpe3JldHVybiBQQVRILm5vcm1hbGl6ZShsKyIvIityKX0pLHJlc29sdmU6KGZ1bmN0aW9uKCl7dmFyIHJlc29sdmVkUGF0aD0iIixyZXNvbHZlZEFic29sdXRlPWZhbHNlO2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoLTE7aT49LTEmJiFyZXNvbHZlZEFic29sdXRlO2ktLSl7dmFyIHBhdGg9aT49MD9hcmd1bWVudHNbaV06RlMuY3dkKCk7aWYodHlwZW9mIHBhdGghPT0ic3RyaW5nIil7dGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKX1lbHNlIGlmKCFwYXRoKXtyZXR1cm4iIn1yZXNvbHZlZFBhdGg9cGF0aCsiLyIrcmVzb2x2ZWRQYXRoO3Jlc29sdmVkQWJzb2x1dGU9cGF0aC5jaGFyQXQoMCk9PT0iLyJ9cmVzb2x2ZWRQYXRoPVBBVEgubm9ybWFsaXplQXJyYXkocmVzb2x2ZWRQYXRoLnNwbGl0KCIvIikuZmlsdGVyKChmdW5jdGlvbihwKXtyZXR1cm4hIXB9KSksIXJlc29sdmVkQWJzb2x1dGUpLmpvaW4oIi8iKTtyZXR1cm4ocmVzb2x2ZWRBYnNvbHV0ZT8iLyI6IiIpK3Jlc29sdmVkUGF0aHx8Ii4ifSkscmVsYXRpdmU6KGZ1bmN0aW9uKGZyb20sdG8pe2Zyb209UEFUSC5yZXNvbHZlKGZyb20pLnN1YnN0cigxKTt0bz1QQVRILnJlc29sdmUodG8pLnN1YnN0cigxKTtmdW5jdGlvbiB0cmltKGFycil7dmFyIHN0YXJ0PTA7Zm9yKDtzdGFydDxhcnIubGVuZ3RoO3N0YXJ0Kyspe2lmKGFycltzdGFydF0hPT0iIilicmVha312YXIgZW5kPWFyci5sZW5ndGgtMTtmb3IoO2VuZD49MDtlbmQtLSl7aWYoYXJyW2VuZF0hPT0iIilicmVha31pZihzdGFydD5lbmQpcmV0dXJuW107cmV0dXJuIGFyci5zbGljZShzdGFydCxlbmQtc3RhcnQrMSl9dmFyIGZyb21QYXJ0cz10cmltKGZyb20uc3BsaXQoIi8iKSk7dmFyIHRvUGFydHM9dHJpbSh0by5zcGxpdCgiLyIpKTt2YXIgbGVuZ3RoPU1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsdG9QYXJ0cy5sZW5ndGgpO3ZhciBzYW1lUGFydHNMZW5ndGg9bGVuZ3RoO2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7aWYoZnJvbVBhcnRzW2ldIT09dG9QYXJ0c1tpXSl7c2FtZVBhcnRzTGVuZ3RoPWk7YnJlYWt9fXZhciBvdXRwdXRQYXJ0cz1bXTtmb3IodmFyIGk9c2FtZVBhcnRzTGVuZ3RoO2k8ZnJvbVBhcnRzLmxlbmd0aDtpKyspe291dHB1dFBhcnRzLnB1c2goIi4uIil9b3V0cHV0UGFydHM9b3V0cHV0UGFydHMuY29uY2F0KHRvUGFydHMuc2xpY2Uoc2FtZVBhcnRzTGVuZ3RoKSk7cmV0dXJuIG91dHB1dFBhcnRzLmpvaW4oIi8iKX0pfTt2YXIgVFRZPXt0dHlzOltdLGluaXQ6KGZ1bmN0aW9uKCl7fSksc2h1dGRvd246KGZ1bmN0aW9uKCl7fSkscmVnaXN0ZXI6KGZ1bmN0aW9uKGRldixvcHMpe1RUWS50dHlzW2Rldl09e2lucHV0OltdLG91dHB1dDpbXSxvcHM6b3BzfTtGUy5yZWdpc3RlckRldmljZShkZXYsVFRZLnN0cmVhbV9vcHMpfSksc3RyZWFtX29wczp7b3BlbjooZnVuY3Rpb24oc3RyZWFtKXt2YXIgdHR5PVRUWS50dHlzW3N0cmVhbS5ub2RlLnJkZXZdO2lmKCF0dHkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVil9c3RyZWFtLnR0eT10dHk7c3RyZWFtLnNlZWthYmxlPWZhbHNlfSksY2xvc2U6KGZ1bmN0aW9uKHN0cmVhbSl7c3RyZWFtLnR0eS5vcHMuZmx1c2goc3RyZWFtLnR0eSl9KSxmbHVzaDooZnVuY3Rpb24oc3RyZWFtKXtzdHJlYW0udHR5Lm9wcy5mbHVzaChzdHJlYW0udHR5KX0pLHJlYWQ6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe2lmKCFzdHJlYW0udHR5fHwhc3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOWElPKX12YXIgYnl0ZXNSZWFkPTA7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt2YXIgcmVzdWx0O3RyeXtyZXN1bHQ9c3RyZWFtLnR0eS5vcHMuZ2V0X2NoYXIoc3RyZWFtLnR0eSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKX1pZihyZXN1bHQ9PT11bmRlZmluZWQmJmJ5dGVzUmVhZD09PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTil9aWYocmVzdWx0PT09bnVsbHx8cmVzdWx0PT09dW5kZWZpbmVkKWJyZWFrO2J5dGVzUmVhZCsrO2J1ZmZlcltvZmZzZXQraV09cmVzdWx0fWlmKGJ5dGVzUmVhZCl7c3RyZWFtLm5vZGUudGltZXN0YW1wPURhdGUubm93KCl9cmV0dXJuIGJ5dGVzUmVhZH0pLHdyaXRlOihmdW5jdGlvbihzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zKXtpZighc3RyZWFtLnR0eXx8IXN0cmVhbS50dHkub3BzLnB1dF9jaGFyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTlhJTyl9Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt0cnl7c3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSxidWZmZXJbb2Zmc2V0K2ldKX1jYXRjaChlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pfX1pZihsZW5ndGgpe3N0cmVhbS5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpfXJldHVybiBpfSl9LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6KGZ1bmN0aW9uKHR0eSl7aWYoIXR0eS5pbnB1dC5sZW5ndGgpe3ZhciByZXN1bHQ9bnVsbDtpZihFTlZJUk9OTUVOVF9JU19OT0RFKXt2YXIgQlVGU0laRT0yNTY7dmFyIGJ1Zj1uZXcgQnVmZmVyKEJVRlNJWkUpO3ZhciBieXRlc1JlYWQ9MDt2YXIgaXNQb3NpeFBsYXRmb3JtPXByb2Nlc3MucGxhdGZvcm0hPSJ3aW4zMiI7dmFyIGZkPXByb2Nlc3Muc3RkaW4uZmQ7aWYoaXNQb3NpeFBsYXRmb3JtKXt2YXIgdXNpbmdEZXZpY2U9ZmFsc2U7dHJ5e2ZkPWZzLm9wZW5TeW5jKCIvZGV2L3N0ZGluIiwiciIpO3VzaW5nRGV2aWNlPXRydWV9Y2F0Y2goZSl7fX10cnl7Ynl0ZXNSZWFkPWZzLnJlYWRTeW5jKGZkLGJ1ZiwwLEJVRlNJWkUsbnVsbCl9Y2F0Y2goZSl7aWYoZS50b1N0cmluZygpLmluZGV4T2YoIkVPRiIpIT0tMSlieXRlc1JlYWQ9MDtlbHNlIHRocm93IGV9aWYodXNpbmdEZXZpY2Upe2ZzLmNsb3NlU3luYyhmZCl9aWYoYnl0ZXNSZWFkPjApe3Jlc3VsdD1idWYuc2xpY2UoMCxieXRlc1JlYWQpLnRvU3RyaW5nKCJ1dGYtOCIpfWVsc2V7cmVzdWx0PW51bGx9fWVsc2UgaWYodHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJnR5cGVvZiB3aW5kb3cucHJvbXB0PT0iZnVuY3Rpb24iKXtyZXN1bHQ9d2luZG93LnByb21wdCgiSW5wdXQ6ICIpO2lmKHJlc3VsdCE9PW51bGwpe3Jlc3VsdCs9IlxuIn19ZWxzZSBpZih0eXBlb2YgcmVhZGxpbmU9PSJmdW5jdGlvbiIpe3Jlc3VsdD1yZWFkbGluZSgpO2lmKHJlc3VsdCE9PW51bGwpe3Jlc3VsdCs9IlxuIn19aWYoIXJlc3VsdCl7cmV0dXJuIG51bGx9dHR5LmlucHV0PWludEFycmF5RnJvbVN0cmluZyhyZXN1bHQsdHJ1ZSl9cmV0dXJuIHR0eS5pbnB1dC5zaGlmdCgpfSkscHV0X2NoYXI6KGZ1bmN0aW9uKHR0eSx2YWwpe2lmKHZhbD09PW51bGx8fHZhbD09PTEwKXtNb2R1bGVbInByaW50Il0oVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX1lbHNle2lmKHZhbCE9MCl0dHkub3V0cHV0LnB1c2godmFsKX19KSxmbHVzaDooZnVuY3Rpb24odHR5KXtpZih0dHkub3V0cHV0JiZ0dHkub3V0cHV0Lmxlbmd0aD4wKXtNb2R1bGVbInByaW50Il0oVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX19KX0sZGVmYXVsdF90dHkxX29wczp7cHV0X2NoYXI6KGZ1bmN0aW9uKHR0eSx2YWwpe2lmKHZhbD09PW51bGx8fHZhbD09PTEwKXtNb2R1bGVbInByaW50RXJyIl0oVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX1lbHNle2lmKHZhbCE9MCl0dHkub3V0cHV0LnB1c2godmFsKX19KSxmbHVzaDooZnVuY3Rpb24odHR5KXtpZih0dHkub3V0cHV0JiZ0dHkub3V0cHV0Lmxlbmd0aD4wKXtNb2R1bGVbInByaW50RXJyIl0oVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwwKSk7dHR5Lm91dHB1dD1bXX19KX19O3ZhciBNRU1GUz17b3BzX3RhYmxlOm51bGwsbW91bnQ6KGZ1bmN0aW9uKG1vdW50KXtyZXR1cm4gTUVNRlMuY3JlYXRlTm9kZShudWxsLCIvIiwxNjM4NHw1MTEsMCl9KSxjcmVhdGVOb2RlOihmdW5jdGlvbihwYXJlbnQsbmFtZSxtb2RlLGRldil7aWYoRlMuaXNCbGtkZXYobW9kZSl8fEZTLmlzRklGTyhtb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfWlmKCFNRU1GUy5vcHNfdGFibGUpe01FTUZTLm9wc190YWJsZT17ZGlyOntub2RlOntnZXRhdHRyOk1FTUZTLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpNRU1GUy5ub2RlX29wcy5zZXRhdHRyLGxvb2t1cDpNRU1GUy5ub2RlX29wcy5sb29rdXAsbWtub2Q6TUVNRlMubm9kZV9vcHMubWtub2QscmVuYW1lOk1FTUZTLm5vZGVfb3BzLnJlbmFtZSx1bmxpbms6TUVNRlMubm9kZV9vcHMudW5saW5rLHJtZGlyOk1FTUZTLm5vZGVfb3BzLnJtZGlyLHJlYWRkaXI6TUVNRlMubm9kZV9vcHMucmVhZGRpcixzeW1saW5rOk1FTUZTLm5vZGVfb3BzLnN5bWxpbmt9LHN0cmVhbTp7bGxzZWVrOk1FTUZTLnN0cmVhbV9vcHMubGxzZWVrfX0sZmlsZTp7bm9kZTp7Z2V0YXR0cjpNRU1GUy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6TUVNRlMubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOntsbHNlZWs6TUVNRlMuc3RyZWFtX29wcy5sbHNlZWsscmVhZDpNRU1GUy5zdHJlYW1fb3BzLnJlYWQsd3JpdGU6TUVNRlMuc3RyZWFtX29wcy53cml0ZSxhbGxvY2F0ZTpNRU1GUy5zdHJlYW1fb3BzLmFsbG9jYXRlLG1tYXA6TUVNRlMuc3RyZWFtX29wcy5tbWFwLG1zeW5jOk1FTUZTLnN0cmVhbV9vcHMubXN5bmN9fSxsaW5rOntub2RlOntnZXRhdHRyOk1FTUZTLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpNRU1GUy5ub2RlX29wcy5zZXRhdHRyLHJlYWRsaW5rOk1FTUZTLm5vZGVfb3BzLnJlYWRsaW5rfSxzdHJlYW06e319LGNocmRldjp7bm9kZTp7Z2V0YXR0cjpNRU1GUy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6TUVNRlMubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOkZTLmNocmRldl9zdHJlYW1fb3BzfX19dmFyIG5vZGU9RlMuY3JlYXRlTm9kZShwYXJlbnQsbmFtZSxtb2RlLGRldik7aWYoRlMuaXNEaXIobm9kZS5tb2RlKSl7bm9kZS5ub2RlX29wcz1NRU1GUy5vcHNfdGFibGUuZGlyLm5vZGU7bm9kZS5zdHJlYW1fb3BzPU1FTUZTLm9wc190YWJsZS5kaXIuc3RyZWFtO25vZGUuY29udGVudHM9e319ZWxzZSBpZihGUy5pc0ZpbGUobm9kZS5tb2RlKSl7bm9kZS5ub2RlX29wcz1NRU1GUy5vcHNfdGFibGUuZmlsZS5ub2RlO25vZGUuc3RyZWFtX29wcz1NRU1GUy5vcHNfdGFibGUuZmlsZS5zdHJlYW07bm9kZS51c2VkQnl0ZXM9MDtub2RlLmNvbnRlbnRzPW51bGx9ZWxzZSBpZihGUy5pc0xpbmsobm9kZS5tb2RlKSl7bm9kZS5ub2RlX29wcz1NRU1GUy5vcHNfdGFibGUubGluay5ub2RlO25vZGUuc3RyZWFtX29wcz1NRU1GUy5vcHNfdGFibGUubGluay5zdHJlYW19ZWxzZSBpZihGUy5pc0NocmRldihub2RlLm1vZGUpKXtub2RlLm5vZGVfb3BzPU1FTUZTLm9wc190YWJsZS5jaHJkZXYubm9kZTtub2RlLnN0cmVhbV9vcHM9TUVNRlMub3BzX3RhYmxlLmNocmRldi5zdHJlYW19bm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKTtpZihwYXJlbnQpe3BhcmVudC5jb250ZW50c1tuYW1lXT1ub2RlfXJldHVybiBub2RlfSksZ2V0RmlsZURhdGFBc1JlZ3VsYXJBcnJheTooZnVuY3Rpb24obm9kZSl7aWYobm9kZS5jb250ZW50cyYmbm9kZS5jb250ZW50cy5zdWJhcnJheSl7dmFyIGFycj1bXTtmb3IodmFyIGk9MDtpPG5vZGUudXNlZEJ5dGVzOysraSlhcnIucHVzaChub2RlLmNvbnRlbnRzW2ldKTtyZXR1cm4gYXJyfXJldHVybiBub2RlLmNvbnRlbnRzfSksZ2V0RmlsZURhdGFBc1R5cGVkQXJyYXk6KGZ1bmN0aW9uKG5vZGUpe2lmKCFub2RlLmNvbnRlbnRzKXJldHVybiBuZXcgVWludDhBcnJheTtpZihub2RlLmNvbnRlbnRzLnN1YmFycmF5KXJldHVybiBub2RlLmNvbnRlbnRzLnN1YmFycmF5KDAsbm9kZS51c2VkQnl0ZXMpO3JldHVybiBuZXcgVWludDhBcnJheShub2RlLmNvbnRlbnRzKX0pLGV4cGFuZEZpbGVTdG9yYWdlOihmdW5jdGlvbihub2RlLG5ld0NhcGFjaXR5KXtpZihub2RlLmNvbnRlbnRzJiZub2RlLmNvbnRlbnRzLnN1YmFycmF5JiZuZXdDYXBhY2l0eT5ub2RlLmNvbnRlbnRzLmxlbmd0aCl7bm9kZS5jb250ZW50cz1NRU1GUy5nZXRGaWxlRGF0YUFzUmVndWxhckFycmF5KG5vZGUpO25vZGUudXNlZEJ5dGVzPW5vZGUuY29udGVudHMubGVuZ3RofWlmKCFub2RlLmNvbnRlbnRzfHxub2RlLmNvbnRlbnRzLnN1YmFycmF5KXt2YXIgcHJldkNhcGFjaXR5PW5vZGUuY29udGVudHM/bm9kZS5jb250ZW50cy5sZW5ndGg6MDtpZihwcmV2Q2FwYWNpdHk+PW5ld0NhcGFjaXR5KXJldHVybjt2YXIgQ0FQQUNJVFlfRE9VQkxJTkdfTUFYPTEwMjQqMTAyNDtuZXdDYXBhY2l0eT1NYXRoLm1heChuZXdDYXBhY2l0eSxwcmV2Q2FwYWNpdHkqKHByZXZDYXBhY2l0eTxDQVBBQ0lUWV9ET1VCTElOR19NQVg/MjoxLjEyNSl8MCk7aWYocHJldkNhcGFjaXR5IT0wKW5ld0NhcGFjaXR5PU1hdGgubWF4KG5ld0NhcGFjaXR5LDI1Nik7dmFyIG9sZENvbnRlbnRzPW5vZGUuY29udGVudHM7bm9kZS5jb250ZW50cz1uZXcgVWludDhBcnJheShuZXdDYXBhY2l0eSk7aWYobm9kZS51c2VkQnl0ZXM+MClub2RlLmNvbnRlbnRzLnNldChvbGRDb250ZW50cy5zdWJhcnJheSgwLG5vZGUudXNlZEJ5dGVzKSwwKTtyZXR1cm59aWYoIW5vZGUuY29udGVudHMmJm5ld0NhcGFjaXR5PjApbm9kZS5jb250ZW50cz1bXTt3aGlsZShub2RlLmNvbnRlbnRzLmxlbmd0aDxuZXdDYXBhY2l0eSlub2RlLmNvbnRlbnRzLnB1c2goMCl9KSxyZXNpemVGaWxlU3RvcmFnZTooZnVuY3Rpb24obm9kZSxuZXdTaXplKXtpZihub2RlLnVzZWRCeXRlcz09bmV3U2l6ZSlyZXR1cm47aWYobmV3U2l6ZT09MCl7bm9kZS5jb250ZW50cz1udWxsO25vZGUudXNlZEJ5dGVzPTA7cmV0dXJufWlmKCFub2RlLmNvbnRlbnRzfHxub2RlLmNvbnRlbnRzLnN1YmFycmF5KXt2YXIgb2xkQ29udGVudHM9bm9kZS5jb250ZW50cztub2RlLmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KG5ldyBBcnJheUJ1ZmZlcihuZXdTaXplKSk7aWYob2xkQ29udGVudHMpe25vZGUuY29udGVudHMuc2V0KG9sZENvbnRlbnRzLnN1YmFycmF5KDAsTWF0aC5taW4obmV3U2l6ZSxub2RlLnVzZWRCeXRlcykpKX1ub2RlLnVzZWRCeXRlcz1uZXdTaXplO3JldHVybn1pZighbm9kZS5jb250ZW50cylub2RlLmNvbnRlbnRzPVtdO2lmKG5vZGUuY29udGVudHMubGVuZ3RoPm5ld1NpemUpbm9kZS5jb250ZW50cy5sZW5ndGg9bmV3U2l6ZTtlbHNlIHdoaWxlKG5vZGUuY29udGVudHMubGVuZ3RoPG5ld1NpemUpbm9kZS5jb250ZW50cy5wdXNoKDApO25vZGUudXNlZEJ5dGVzPW5ld1NpemV9KSxub2RlX29wczp7Z2V0YXR0cjooZnVuY3Rpb24obm9kZSl7dmFyIGF0dHI9e307YXR0ci5kZXY9RlMuaXNDaHJkZXYobm9kZS5tb2RlKT9ub2RlLmlkOjE7YXR0ci5pbm89bm9kZS5pZDthdHRyLm1vZGU9bm9kZS5tb2RlO2F0dHIubmxpbms9MTthdHRyLnVpZD0wO2F0dHIuZ2lkPTA7YXR0ci5yZGV2PW5vZGUucmRldjtpZihGUy5pc0Rpcihub2RlLm1vZGUpKXthdHRyLnNpemU9NDA5Nn1lbHNlIGlmKEZTLmlzRmlsZShub2RlLm1vZGUpKXthdHRyLnNpemU9bm9kZS51c2VkQnl0ZXN9ZWxzZSBpZihGUy5pc0xpbmsobm9kZS5tb2RlKSl7YXR0ci5zaXplPW5vZGUubGluay5sZW5ndGh9ZWxzZXthdHRyLnNpemU9MH1hdHRyLmF0aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLm10aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLmN0aW1lPW5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTthdHRyLmJsa3NpemU9NDA5NjthdHRyLmJsb2Nrcz1NYXRoLmNlaWwoYXR0ci5zaXplL2F0dHIuYmxrc2l6ZSk7cmV0dXJuIGF0dHJ9KSxzZXRhdHRyOihmdW5jdGlvbihub2RlLGF0dHIpe2lmKGF0dHIubW9kZSE9PXVuZGVmaW5lZCl7bm9kZS5tb2RlPWF0dHIubW9kZX1pZihhdHRyLnRpbWVzdGFtcCE9PXVuZGVmaW5lZCl7bm9kZS50aW1lc3RhbXA9YXR0ci50aW1lc3RhbXB9aWYoYXR0ci5zaXplIT09dW5kZWZpbmVkKXtNRU1GUy5yZXNpemVGaWxlU3RvcmFnZShub2RlLGF0dHIuc2l6ZSl9fSksbG9va3VwOihmdW5jdGlvbihwYXJlbnQsbmFtZSl7dGhyb3cgRlMuZ2VuZXJpY0Vycm9yc1tFUlJOT19DT0RFUy5FTk9FTlRdfSksbWtub2Q6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLG1vZGUsZGV2KXtyZXR1cm4gTUVNRlMuY3JlYXRlTm9kZShwYXJlbnQsbmFtZSxtb2RlLGRldil9KSxyZW5hbWU6KGZ1bmN0aW9uKG9sZF9ub2RlLG5ld19kaXIsbmV3X25hbWUpe2lmKEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpKXt2YXIgbmV3X25vZGU7dHJ5e25ld19ub2RlPUZTLmxvb2t1cE5vZGUobmV3X2RpcixuZXdfbmFtZSl9Y2F0Y2goZSl7fWlmKG5ld19ub2RlKXtmb3IodmFyIGkgaW4gbmV3X25vZGUuY29udGVudHMpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RFTVBUWSl9fX1kZWxldGUgb2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdO29sZF9ub2RlLm5hbWU9bmV3X25hbWU7bmV3X2Rpci5jb250ZW50c1tuZXdfbmFtZV09b2xkX25vZGU7b2xkX25vZGUucGFyZW50PW5ld19kaXJ9KSx1bmxpbms6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXtkZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdfSkscm1kaXI6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXt2YXIgbm9kZT1GUy5sb29rdXBOb2RlKHBhcmVudCxuYW1lKTtmb3IodmFyIGkgaW4gbm9kZS5jb250ZW50cyl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKX1kZWxldGUgcGFyZW50LmNvbnRlbnRzW25hbWVdfSkscmVhZGRpcjooZnVuY3Rpb24obm9kZSl7dmFyIGVudHJpZXM9WyIuIiwiLi4iXTtmb3IodmFyIGtleSBpbiBub2RlLmNvbnRlbnRzKXtpZighbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKXtjb250aW51ZX1lbnRyaWVzLnB1c2goa2V5KX1yZXR1cm4gZW50cmllc30pLHN5bWxpbms6KGZ1bmN0aW9uKHBhcmVudCxuZXduYW1lLG9sZHBhdGgpe3ZhciBub2RlPU1FTUZTLmNyZWF0ZU5vZGUocGFyZW50LG5ld25hbWUsNTExfDQwOTYwLDApO25vZGUubGluaz1vbGRwYXRoO3JldHVybiBub2RlfSkscmVhZGxpbms6KGZ1bmN0aW9uKG5vZGUpe2lmKCFGUy5pc0xpbmsobm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX1yZXR1cm4gbm9kZS5saW5rfSl9LHN0cmVhbV9vcHM6e3JlYWQ6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7dmFyIGNvbnRlbnRzPXN0cmVhbS5ub2RlLmNvbnRlbnRzO2lmKHBvc2l0aW9uPj1zdHJlYW0ubm9kZS51c2VkQnl0ZXMpcmV0dXJuIDA7dmFyIHNpemU9TWF0aC5taW4oc3RyZWFtLm5vZGUudXNlZEJ5dGVzLXBvc2l0aW9uLGxlbmd0aCk7YXNzZXJ0KHNpemU+PTApO2lmKHNpemU+OCYmY29udGVudHMuc3ViYXJyYXkpe2J1ZmZlci5zZXQoY29udGVudHMuc3ViYXJyYXkocG9zaXRpb24scG9zaXRpb24rc2l6ZSksb2Zmc2V0KX1lbHNle2Zvcih2YXIgaT0wO2k8c2l6ZTtpKyspYnVmZmVyW29mZnNldCtpXT1jb250ZW50c1twb3NpdGlvbitpXX1yZXR1cm4gc2l6ZX0pLHdyaXRlOihmdW5jdGlvbihzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24sY2FuT3duKXtpZighbGVuZ3RoKXJldHVybiAwO3ZhciBub2RlPXN0cmVhbS5ub2RlO25vZGUudGltZXN0YW1wPURhdGUubm93KCk7aWYoYnVmZmVyLnN1YmFycmF5JiYoIW5vZGUuY29udGVudHN8fG5vZGUuY29udGVudHMuc3ViYXJyYXkpKXtpZihjYW5Pd24pe25vZGUuY29udGVudHM9YnVmZmVyLnN1YmFycmF5KG9mZnNldCxvZmZzZXQrbGVuZ3RoKTtub2RlLnVzZWRCeXRlcz1sZW5ndGg7cmV0dXJuIGxlbmd0aH1lbHNlIGlmKG5vZGUudXNlZEJ5dGVzPT09MCYmcG9zaXRpb249PT0wKXtub2RlLmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsb2Zmc2V0K2xlbmd0aCkpO25vZGUudXNlZEJ5dGVzPWxlbmd0aDtyZXR1cm4gbGVuZ3RofWVsc2UgaWYocG9zaXRpb24rbGVuZ3RoPD1ub2RlLnVzZWRCeXRlcyl7bm9kZS5jb250ZW50cy5zZXQoYnVmZmVyLnN1YmFycmF5KG9mZnNldCxvZmZzZXQrbGVuZ3RoKSxwb3NpdGlvbik7cmV0dXJuIGxlbmd0aH19TUVNRlMuZXhwYW5kRmlsZVN0b3JhZ2Uobm9kZSxwb3NpdGlvbitsZW5ndGgpO2lmKG5vZGUuY29udGVudHMuc3ViYXJyYXkmJmJ1ZmZlci5zdWJhcnJheSlub2RlLmNvbnRlbnRzLnNldChidWZmZXIuc3ViYXJyYXkob2Zmc2V0LG9mZnNldCtsZW5ndGgpLHBvc2l0aW9uKTtlbHNle2Zvcih2YXIgaT0wO2k8bGVuZ3RoO2krKyl7bm9kZS5jb250ZW50c1twb3NpdGlvbitpXT1idWZmZXJbb2Zmc2V0K2ldfX1ub2RlLnVzZWRCeXRlcz1NYXRoLm1heChub2RlLnVzZWRCeXRlcyxwb3NpdGlvbitsZW5ndGgpO3JldHVybiBsZW5ndGh9KSxsbHNlZWs6KGZ1bmN0aW9uKHN0cmVhbSxvZmZzZXQsd2hlbmNlKXt2YXIgcG9zaXRpb249b2Zmc2V0O2lmKHdoZW5jZT09PTEpe3Bvc2l0aW9uKz1zdHJlYW0ucG9zaXRpb259ZWxzZSBpZih3aGVuY2U9PT0yKXtpZihGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpe3Bvc2l0aW9uKz1zdHJlYW0ubm9kZS51c2VkQnl0ZXN9fWlmKHBvc2l0aW9uPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9cmV0dXJuIHBvc2l0aW9ufSksYWxsb2NhdGU6KGZ1bmN0aW9uKHN0cmVhbSxvZmZzZXQsbGVuZ3RoKXtNRU1GUy5leHBhbmRGaWxlU3RvcmFnZShzdHJlYW0ubm9kZSxvZmZzZXQrbGVuZ3RoKTtzdHJlYW0ubm9kZS51c2VkQnl0ZXM9TWF0aC5tYXgoc3RyZWFtLm5vZGUudXNlZEJ5dGVzLG9mZnNldCtsZW5ndGgpfSksbW1hcDooZnVuY3Rpb24oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLHByb3QsZmxhZ3Mpe2lmKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVil9dmFyIHB0cjt2YXIgYWxsb2NhdGVkO3ZhciBjb250ZW50cz1zdHJlYW0ubm9kZS5jb250ZW50cztpZighKGZsYWdzJjIpJiYoY29udGVudHMuYnVmZmVyPT09YnVmZmVyfHxjb250ZW50cy5idWZmZXI9PT1idWZmZXIuYnVmZmVyKSl7YWxsb2NhdGVkPWZhbHNlO3B0cj1jb250ZW50cy5ieXRlT2Zmc2V0fWVsc2V7aWYocG9zaXRpb24+MHx8cG9zaXRpb24rbGVuZ3RoPHN0cmVhbS5ub2RlLnVzZWRCeXRlcyl7aWYoY29udGVudHMuc3ViYXJyYXkpe2NvbnRlbnRzPWNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLHBvc2l0aW9uK2xlbmd0aCl9ZWxzZXtjb250ZW50cz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cyxwb3NpdGlvbixwb3NpdGlvbitsZW5ndGgpfX1hbGxvY2F0ZWQ9dHJ1ZTtwdHI9X21hbGxvYyhsZW5ndGgpO2lmKCFwdHIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT01FTSl9YnVmZmVyLnNldChjb250ZW50cyxwdHIpfXJldHVybntwdHI6cHRyLGFsbG9jYXRlZDphbGxvY2F0ZWR9fSksbXN5bmM6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3Mpe2lmKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVil9aWYobW1hcEZsYWdzJjIpe3JldHVybiAwfXZhciBieXRlc1dyaXR0ZW49TUVNRlMuc3RyZWFtX29wcy53cml0ZShzdHJlYW0sYnVmZmVyLDAsbGVuZ3RoLG9mZnNldCxmYWxzZSk7cmV0dXJuIDB9KX19O3ZhciBJREJGUz17ZGJzOnt9LGluZGV4ZWREQjooZnVuY3Rpb24oKXtpZih0eXBlb2YgaW5kZXhlZERCIT09InVuZGVmaW5lZCIpcmV0dXJuIGluZGV4ZWREQjt2YXIgcmV0PW51bGw7aWYodHlwZW9mIHdpbmRvdz09PSJvYmplY3QiKXJldD13aW5kb3cuaW5kZXhlZERCfHx3aW5kb3cubW96SW5kZXhlZERCfHx3aW5kb3cud2Via2l0SW5kZXhlZERCfHx3aW5kb3cubXNJbmRleGVkREI7YXNzZXJ0KHJldCwiSURCRlMgdXNlZCwgYnV0IGluZGV4ZWREQiBub3Qgc3VwcG9ydGVkIik7cmV0dXJuIHJldH0pLERCX1ZFUlNJT046MjEsREJfU1RPUkVfTkFNRToiRklMRV9EQVRBIixtb3VudDooZnVuY3Rpb24obW91bnQpe3JldHVybiBNRU1GUy5tb3VudC5hcHBseShudWxsLGFyZ3VtZW50cyl9KSxzeW5jZnM6KGZ1bmN0aW9uKG1vdW50LHBvcHVsYXRlLGNhbGxiYWNrKXtJREJGUy5nZXRMb2NhbFNldChtb3VudCwoZnVuY3Rpb24oZXJyLGxvY2FsKXtpZihlcnIpcmV0dXJuIGNhbGxiYWNrKGVycik7SURCRlMuZ2V0UmVtb3RlU2V0KG1vdW50LChmdW5jdGlvbihlcnIscmVtb3RlKXtpZihlcnIpcmV0dXJuIGNhbGxiYWNrKGVycik7dmFyIHNyYz1wb3B1bGF0ZT9yZW1vdGU6bG9jYWw7dmFyIGRzdD1wb3B1bGF0ZT9sb2NhbDpyZW1vdGU7SURCRlMucmVjb25jaWxlKHNyYyxkc3QsY2FsbGJhY2spfSkpfSkpfSksZ2V0REI6KGZ1bmN0aW9uKG5hbWUsY2FsbGJhY2spe3ZhciBkYj1JREJGUy5kYnNbbmFtZV07aWYoZGIpe3JldHVybiBjYWxsYmFjayhudWxsLGRiKX12YXIgcmVxO3RyeXtyZXE9SURCRlMuaW5kZXhlZERCKCkub3BlbihuYW1lLElEQkZTLkRCX1ZFUlNJT04pfWNhdGNoKGUpe3JldHVybiBjYWxsYmFjayhlKX1pZighcmVxKXtyZXR1cm4gY2FsbGJhY2soIlVuYWJsZSB0byBjb25uZWN0IHRvIEluZGV4ZWREQiIpfXJlcS5vbnVwZ3JhZGVuZWVkZWQ9KGZ1bmN0aW9uKGUpe3ZhciBkYj1lLnRhcmdldC5yZXN1bHQ7dmFyIHRyYW5zYWN0aW9uPWUudGFyZ2V0LnRyYW5zYWN0aW9uO3ZhciBmaWxlU3RvcmU7aWYoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhJREJGUy5EQl9TVE9SRV9OQU1FKSl7ZmlsZVN0b3JlPXRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKElEQkZTLkRCX1NUT1JFX05BTUUpfWVsc2V7ZmlsZVN0b3JlPWRiLmNyZWF0ZU9iamVjdFN0b3JlKElEQkZTLkRCX1NUT1JFX05BTUUpfWlmKCFmaWxlU3RvcmUuaW5kZXhOYW1lcy5jb250YWlucygidGltZXN0YW1wIikpe2ZpbGVTdG9yZS5jcmVhdGVJbmRleCgidGltZXN0YW1wIiwidGltZXN0YW1wIix7dW5pcXVlOmZhbHNlfSl9fSk7cmVxLm9uc3VjY2Vzcz0oZnVuY3Rpb24oKXtkYj1yZXEucmVzdWx0O0lEQkZTLmRic1tuYW1lXT1kYjtjYWxsYmFjayhudWxsLGRiKX0pO3JlcS5vbmVycm9yPShmdW5jdGlvbihlKXtjYWxsYmFjayh0aGlzLmVycm9yKTtlLnByZXZlbnREZWZhdWx0KCl9KX0pLGdldExvY2FsU2V0OihmdW5jdGlvbihtb3VudCxjYWxsYmFjayl7dmFyIGVudHJpZXM9e307ZnVuY3Rpb24gaXNSZWFsRGlyKHApe3JldHVybiBwIT09Ii4iJiZwIT09Ii4uIn1mdW5jdGlvbiB0b0Fic29sdXRlKHJvb3Qpe3JldHVybihmdW5jdGlvbihwKXtyZXR1cm4gUEFUSC5qb2luMihyb290LHApfSl9dmFyIGNoZWNrPUZTLnJlYWRkaXIobW91bnQubW91bnRwb2ludCkuZmlsdGVyKGlzUmVhbERpcikubWFwKHRvQWJzb2x1dGUobW91bnQubW91bnRwb2ludCkpO3doaWxlKGNoZWNrLmxlbmd0aCl7dmFyIHBhdGg9Y2hlY2sucG9wKCk7dmFyIHN0YXQ7dHJ5e3N0YXQ9RlMuc3RhdChwYXRoKX1jYXRjaChlKXtyZXR1cm4gY2FsbGJhY2soZSl9aWYoRlMuaXNEaXIoc3RhdC5tb2RlKSl7Y2hlY2sucHVzaC5hcHBseShjaGVjayxGUy5yZWFkZGlyKHBhdGgpLmZpbHRlcihpc1JlYWxEaXIpLm1hcCh0b0Fic29sdXRlKHBhdGgpKSl9ZW50cmllc1twYXRoXT17dGltZXN0YW1wOnN0YXQubXRpbWV9fXJldHVybiBjYWxsYmFjayhudWxsLHt0eXBlOiJsb2NhbCIsZW50cmllczplbnRyaWVzfSl9KSxnZXRSZW1vdGVTZXQ6KGZ1bmN0aW9uKG1vdW50LGNhbGxiYWNrKXt2YXIgZW50cmllcz17fTtJREJGUy5nZXREQihtb3VudC5tb3VudHBvaW50LChmdW5jdGlvbihlcnIsZGIpe2lmKGVycilyZXR1cm4gY2FsbGJhY2soZXJyKTt0cnl7dmFyIHRyYW5zYWN0aW9uPWRiLnRyYW5zYWN0aW9uKFtJREJGUy5EQl9TVE9SRV9OQU1FXSwicmVhZG9ubHkiKTt0cmFuc2FjdGlvbi5vbmVycm9yPShmdW5jdGlvbihlKXtjYWxsYmFjayh0aGlzLmVycm9yKTtlLnByZXZlbnREZWZhdWx0KCl9KTt2YXIgc3RvcmU9dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoSURCRlMuREJfU1RPUkVfTkFNRSk7dmFyIGluZGV4PXN0b3JlLmluZGV4KCJ0aW1lc3RhbXAiKTtpbmRleC5vcGVuS2V5Q3Vyc29yKCkub25zdWNjZXNzPShmdW5jdGlvbihldmVudCl7dmFyIGN1cnNvcj1ldmVudC50YXJnZXQucmVzdWx0O2lmKCFjdXJzb3Ipe3JldHVybiBjYWxsYmFjayhudWxsLHt0eXBlOiJyZW1vdGUiLGRiOmRiLGVudHJpZXM6ZW50cmllc30pfWVudHJpZXNbY3Vyc29yLnByaW1hcnlLZXldPXt0aW1lc3RhbXA6Y3Vyc29yLmtleX07Y3Vyc29yLmNvbnRpbnVlKCl9KX1jYXRjaChlKXtyZXR1cm4gY2FsbGJhY2soZSl9fSkpfSksbG9hZExvY2FsRW50cnk6KGZ1bmN0aW9uKHBhdGgsY2FsbGJhY2spe3ZhciBzdGF0LG5vZGU7dHJ5e3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoKTtub2RlPWxvb2t1cC5ub2RlO3N0YXQ9RlMuc3RhdChwYXRoKX1jYXRjaChlKXtyZXR1cm4gY2FsbGJhY2soZSl9aWYoRlMuaXNEaXIoc3RhdC5tb2RlKSl7cmV0dXJuIGNhbGxiYWNrKG51bGwse3RpbWVzdGFtcDpzdGF0Lm10aW1lLG1vZGU6c3RhdC5tb2RlfSl9ZWxzZSBpZihGUy5pc0ZpbGUoc3RhdC5tb2RlKSl7bm9kZS5jb250ZW50cz1NRU1GUy5nZXRGaWxlRGF0YUFzVHlwZWRBcnJheShub2RlKTtyZXR1cm4gY2FsbGJhY2sobnVsbCx7dGltZXN0YW1wOnN0YXQubXRpbWUsbW9kZTpzdGF0Lm1vZGUsY29udGVudHM6bm9kZS5jb250ZW50c30pfWVsc2V7cmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcigibm9kZSB0eXBlIG5vdCBzdXBwb3J0ZWQiKSl9fSksc3RvcmVMb2NhbEVudHJ5OihmdW5jdGlvbihwYXRoLGVudHJ5LGNhbGxiYWNrKXt0cnl7aWYoRlMuaXNEaXIoZW50cnkubW9kZSkpe0ZTLm1rZGlyKHBhdGgsZW50cnkubW9kZSl9ZWxzZSBpZihGUy5pc0ZpbGUoZW50cnkubW9kZSkpe0ZTLndyaXRlRmlsZShwYXRoLGVudHJ5LmNvbnRlbnRzLHtlbmNvZGluZzoiYmluYXJ5IixjYW5Pd246dHJ1ZX0pfWVsc2V7cmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcigibm9kZSB0eXBlIG5vdCBzdXBwb3J0ZWQiKSl9RlMuY2htb2QocGF0aCxlbnRyeS5tb2RlKTtGUy51dGltZShwYXRoLGVudHJ5LnRpbWVzdGFtcCxlbnRyeS50aW1lc3RhbXApfWNhdGNoKGUpe3JldHVybiBjYWxsYmFjayhlKX1jYWxsYmFjayhudWxsKX0pLHJlbW92ZUxvY2FsRW50cnk6KGZ1bmN0aW9uKHBhdGgsY2FsbGJhY2spe3RyeXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCk7dmFyIHN0YXQ9RlMuc3RhdChwYXRoKTtpZihGUy5pc0RpcihzdGF0Lm1vZGUpKXtGUy5ybWRpcihwYXRoKX1lbHNlIGlmKEZTLmlzRmlsZShzdGF0Lm1vZGUpKXtGUy51bmxpbmsocGF0aCl9fWNhdGNoKGUpe3JldHVybiBjYWxsYmFjayhlKX1jYWxsYmFjayhudWxsKX0pLGxvYWRSZW1vdGVFbnRyeTooZnVuY3Rpb24oc3RvcmUscGF0aCxjYWxsYmFjayl7dmFyIHJlcT1zdG9yZS5nZXQocGF0aCk7cmVxLm9uc3VjY2Vzcz0oZnVuY3Rpb24oZXZlbnQpe2NhbGxiYWNrKG51bGwsZXZlbnQudGFyZ2V0LnJlc3VsdCl9KTtyZXEub25lcnJvcj0oZnVuY3Rpb24oZSl7Y2FsbGJhY2sodGhpcy5lcnJvcik7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9KSxzdG9yZVJlbW90ZUVudHJ5OihmdW5jdGlvbihzdG9yZSxwYXRoLGVudHJ5LGNhbGxiYWNrKXt2YXIgcmVxPXN0b3JlLnB1dChlbnRyeSxwYXRoKTtyZXEub25zdWNjZXNzPShmdW5jdGlvbigpe2NhbGxiYWNrKG51bGwpfSk7cmVxLm9uZXJyb3I9KGZ1bmN0aW9uKGUpe2NhbGxiYWNrKHRoaXMuZXJyb3IpO2UucHJldmVudERlZmF1bHQoKX0pfSkscmVtb3ZlUmVtb3RlRW50cnk6KGZ1bmN0aW9uKHN0b3JlLHBhdGgsY2FsbGJhY2spe3ZhciByZXE9c3RvcmUuZGVsZXRlKHBhdGgpO3JlcS5vbnN1Y2Nlc3M9KGZ1bmN0aW9uKCl7Y2FsbGJhY2sobnVsbCl9KTtyZXEub25lcnJvcj0oZnVuY3Rpb24oZSl7Y2FsbGJhY2sodGhpcy5lcnJvcik7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9KSxyZWNvbmNpbGU6KGZ1bmN0aW9uKHNyYyxkc3QsY2FsbGJhY2spe3ZhciB0b3RhbD0wO3ZhciBjcmVhdGU9W107T2JqZWN0LmtleXMoc3JjLmVudHJpZXMpLmZvckVhY2goKGZ1bmN0aW9uKGtleSl7dmFyIGU9c3JjLmVudHJpZXNba2V5XTt2YXIgZTI9ZHN0LmVudHJpZXNba2V5XTtpZighZTJ8fGUudGltZXN0YW1wPmUyLnRpbWVzdGFtcCl7Y3JlYXRlLnB1c2goa2V5KTt0b3RhbCsrfX0pKTt2YXIgcmVtb3ZlPVtdO09iamVjdC5rZXlzKGRzdC5lbnRyaWVzKS5mb3JFYWNoKChmdW5jdGlvbihrZXkpe3ZhciBlPWRzdC5lbnRyaWVzW2tleV07dmFyIGUyPXNyYy5lbnRyaWVzW2tleV07aWYoIWUyKXtyZW1vdmUucHVzaChrZXkpO3RvdGFsKyt9fSkpO2lmKCF0b3RhbCl7cmV0dXJuIGNhbGxiYWNrKG51bGwpfXZhciBjb21wbGV0ZWQ9MDt2YXIgZGI9c3JjLnR5cGU9PT0icmVtb3RlIj9zcmMuZGI6ZHN0LmRiO3ZhciB0cmFuc2FjdGlvbj1kYi50cmFuc2FjdGlvbihbSURCRlMuREJfU1RPUkVfTkFNRV0sInJlYWR3cml0ZSIpO3ZhciBzdG9yZT10cmFuc2FjdGlvbi5vYmplY3RTdG9yZShJREJGUy5EQl9TVE9SRV9OQU1FKTtmdW5jdGlvbiBkb25lKGVycil7aWYoZXJyKXtpZighZG9uZS5lcnJvcmVkKXtkb25lLmVycm9yZWQ9dHJ1ZTtyZXR1cm4gY2FsbGJhY2soZXJyKX1yZXR1cm59aWYoKytjb21wbGV0ZWQ+PXRvdGFsKXtyZXR1cm4gY2FsbGJhY2sobnVsbCl9fXRyYW5zYWN0aW9uLm9uZXJyb3I9KGZ1bmN0aW9uKGUpe2RvbmUodGhpcy5lcnJvcik7ZS5wcmV2ZW50RGVmYXVsdCgpfSk7Y3JlYXRlLnNvcnQoKS5mb3JFYWNoKChmdW5jdGlvbihwYXRoKXtpZihkc3QudHlwZT09PSJsb2NhbCIpe0lEQkZTLmxvYWRSZW1vdGVFbnRyeShzdG9yZSxwYXRoLChmdW5jdGlvbihlcnIsZW50cnkpe2lmKGVycilyZXR1cm4gZG9uZShlcnIpO0lEQkZTLnN0b3JlTG9jYWxFbnRyeShwYXRoLGVudHJ5LGRvbmUpfSkpfWVsc2V7SURCRlMubG9hZExvY2FsRW50cnkocGF0aCwoZnVuY3Rpb24oZXJyLGVudHJ5KXtpZihlcnIpcmV0dXJuIGRvbmUoZXJyKTtJREJGUy5zdG9yZVJlbW90ZUVudHJ5KHN0b3JlLHBhdGgsZW50cnksZG9uZSl9KSl9fSkpO3JlbW92ZS5zb3J0KCkucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKHBhdGgpe2lmKGRzdC50eXBlPT09ImxvY2FsIil7SURCRlMucmVtb3ZlTG9jYWxFbnRyeShwYXRoLGRvbmUpfWVsc2V7SURCRlMucmVtb3ZlUmVtb3RlRW50cnkoc3RvcmUscGF0aCxkb25lKX19KSl9KX07dmFyIE5PREVGUz17aXNXaW5kb3dzOmZhbHNlLHN0YXRpY0luaXQ6KGZ1bmN0aW9uKCl7Tk9ERUZTLmlzV2luZG93cz0hIXByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vKX0pLG1vdW50OihmdW5jdGlvbihtb3VudCl7YXNzZXJ0KEVOVklST05NRU5UX0lTX05PREUpO3JldHVybiBOT0RFRlMuY3JlYXRlTm9kZShudWxsLCIvIixOT0RFRlMuZ2V0TW9kZShtb3VudC5vcHRzLnJvb3QpLDApfSksY3JlYXRlTm9kZTooZnVuY3Rpb24ocGFyZW50LG5hbWUsbW9kZSxkZXYpe2lmKCFGUy5pc0Rpcihtb2RlKSYmIUZTLmlzRmlsZShtb2RlKSYmIUZTLmlzTGluayhtb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX12YXIgbm9kZT1GUy5jcmVhdGVOb2RlKHBhcmVudCxuYW1lLG1vZGUpO25vZGUubm9kZV9vcHM9Tk9ERUZTLm5vZGVfb3BzO25vZGUuc3RyZWFtX29wcz1OT0RFRlMuc3RyZWFtX29wcztyZXR1cm4gbm9kZX0pLGdldE1vZGU6KGZ1bmN0aW9uKHBhdGgpe3ZhciBzdGF0O3RyeXtzdGF0PWZzLmxzdGF0U3luYyhwYXRoKTtpZihOT0RFRlMuaXNXaW5kb3dzKXtzdGF0Lm1vZGU9c3RhdC5tb2RlfChzdGF0Lm1vZGUmMTQ2KT4+MX19Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfXJldHVybiBzdGF0Lm1vZGV9KSxyZWFsUGF0aDooZnVuY3Rpb24obm9kZSl7dmFyIHBhcnRzPVtdO3doaWxlKG5vZGUucGFyZW50IT09bm9kZSl7cGFydHMucHVzaChub2RlLm5hbWUpO25vZGU9bm9kZS5wYXJlbnR9cGFydHMucHVzaChub2RlLm1vdW50Lm9wdHMucm9vdCk7cGFydHMucmV2ZXJzZSgpO3JldHVybiBQQVRILmpvaW4uYXBwbHkobnVsbCxwYXJ0cyl9KSxmbGFnc1RvUGVybWlzc2lvblN0cmluZ01hcDp7MDoiciIsMToicisiLDI6InIrIiw2NDoiciIsNjU6InIrIiw2NjoicisiLDEyOToicngrIiwxOTM6InJ4KyIsNTE0OiJ3KyIsNTc3OiJ3Iiw1Nzg6IncrIiw3MDU6Ind4Iiw3MDY6Ind4KyIsMTAyNDoiYSIsMTAyNToiYSIsMTAyNjoiYSsiLDEwODk6ImEiLDEwOTA6ImErIiwxMTUzOiJheCIsMTE1NDoiYXgrIiwxMjE3OiJheCIsMTIxODoiYXgrIiw0MDk2OiJycyIsNDA5ODoicnMrIn0sZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmc6KGZ1bmN0aW9uKGZsYWdzKXtmbGFncyY9fjIwOTcxNTI7ZmxhZ3MmPX4yMDQ4O2ZsYWdzJj1+MzI3Njg7ZmxhZ3MmPX41MjQyODg7aWYoZmxhZ3MgaW4gTk9ERUZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nTWFwKXtyZXR1cm4gTk9ERUZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nTWFwW2ZsYWdzXX1lbHNle3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9fSksbm9kZV9vcHM6e2dldGF0dHI6KGZ1bmN0aW9uKG5vZGUpe3ZhciBwYXRoPU5PREVGUy5yZWFsUGF0aChub2RlKTt2YXIgc3RhdDt0cnl7c3RhdD1mcy5sc3RhdFN5bmMocGF0aCl9Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfWlmKE5PREVGUy5pc1dpbmRvd3MmJiFzdGF0LmJsa3NpemUpe3N0YXQuYmxrc2l6ZT00MDk2fWlmKE5PREVGUy5pc1dpbmRvd3MmJiFzdGF0LmJsb2Nrcyl7c3RhdC5ibG9ja3M9KHN0YXQuc2l6ZStzdGF0LmJsa3NpemUtMSkvc3RhdC5ibGtzaXplfDB9cmV0dXJue2RldjpzdGF0LmRldixpbm86c3RhdC5pbm8sbW9kZTpzdGF0Lm1vZGUsbmxpbms6c3RhdC5ubGluayx1aWQ6c3RhdC51aWQsZ2lkOnN0YXQuZ2lkLHJkZXY6c3RhdC5yZGV2LHNpemU6c3RhdC5zaXplLGF0aW1lOnN0YXQuYXRpbWUsbXRpbWU6c3RhdC5tdGltZSxjdGltZTpzdGF0LmN0aW1lLGJsa3NpemU6c3RhdC5ibGtzaXplLGJsb2NrczpzdGF0LmJsb2Nrc319KSxzZXRhdHRyOihmdW5jdGlvbihub2RlLGF0dHIpe3ZhciBwYXRoPU5PREVGUy5yZWFsUGF0aChub2RlKTt0cnl7aWYoYXR0ci5tb2RlIT09dW5kZWZpbmVkKXtmcy5jaG1vZFN5bmMocGF0aCxhdHRyLm1vZGUpO25vZGUubW9kZT1hdHRyLm1vZGV9aWYoYXR0ci50aW1lc3RhbXAhPT11bmRlZmluZWQpe3ZhciBkYXRlPW5ldyBEYXRlKGF0dHIudGltZXN0YW1wKTtmcy51dGltZXNTeW5jKHBhdGgsZGF0ZSxkYXRlKX1pZihhdHRyLnNpemUhPT11bmRlZmluZWQpe2ZzLnRydW5jYXRlU3luYyhwYXRoLGF0dHIuc2l6ZSl9fWNhdGNoKGUpe2lmKCFlLmNvZGUpdGhyb3cgZTt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFU1tlLmNvZGVdKX19KSxsb29rdXA6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXt2YXIgcGF0aD1QQVRILmpvaW4yKE5PREVGUy5yZWFsUGF0aChwYXJlbnQpLG5hbWUpO3ZhciBtb2RlPU5PREVGUy5nZXRNb2RlKHBhdGgpO3JldHVybiBOT0RFRlMuY3JlYXRlTm9kZShwYXJlbnQsbmFtZSxtb2RlKX0pLG1rbm9kOihmdW5jdGlvbihwYXJlbnQsbmFtZSxtb2RlLGRldil7dmFyIG5vZGU9Tk9ERUZTLmNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSxkZXYpO3ZhciBwYXRoPU5PREVGUy5yZWFsUGF0aChub2RlKTt0cnl7aWYoRlMuaXNEaXIobm9kZS5tb2RlKSl7ZnMubWtkaXJTeW5jKHBhdGgsbm9kZS5tb2RlKX1lbHNle2ZzLndyaXRlRmlsZVN5bmMocGF0aCwiIix7bW9kZTpub2RlLm1vZGV9KX19Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfXJldHVybiBub2RlfSkscmVuYW1lOihmdW5jdGlvbihvbGROb2RlLG5ld0RpcixuZXdOYW1lKXt2YXIgb2xkUGF0aD1OT0RFRlMucmVhbFBhdGgob2xkTm9kZSk7dmFyIG5ld1BhdGg9UEFUSC5qb2luMihOT0RFRlMucmVhbFBhdGgobmV3RGlyKSxuZXdOYW1lKTt0cnl7ZnMucmVuYW1lU3luYyhvbGRQYXRoLG5ld1BhdGgpfWNhdGNoKGUpe2lmKCFlLmNvZGUpdGhyb3cgZTt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFU1tlLmNvZGVdKX19KSx1bmxpbms6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXt2YXIgcGF0aD1QQVRILmpvaW4yKE5PREVGUy5yZWFsUGF0aChwYXJlbnQpLG5hbWUpO3RyeXtmcy51bmxpbmtTeW5jKHBhdGgpfWNhdGNoKGUpe2lmKCFlLmNvZGUpdGhyb3cgZTt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFU1tlLmNvZGVdKX19KSxybWRpcjooZnVuY3Rpb24ocGFyZW50LG5hbWUpe3ZhciBwYXRoPVBBVEguam9pbjIoTk9ERUZTLnJlYWxQYXRoKHBhcmVudCksbmFtZSk7dHJ5e2ZzLnJtZGlyU3luYyhwYXRoKX1jYXRjaChlKXtpZighZS5jb2RlKXRocm93IGU7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSl9fSkscmVhZGRpcjooZnVuY3Rpb24obm9kZSl7dmFyIHBhdGg9Tk9ERUZTLnJlYWxQYXRoKG5vZGUpO3RyeXtyZXR1cm4gZnMucmVhZGRpclN5bmMocGF0aCl9Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX0pLHN5bWxpbms6KGZ1bmN0aW9uKHBhcmVudCxuZXdOYW1lLG9sZFBhdGgpe3ZhciBuZXdQYXRoPVBBVEguam9pbjIoTk9ERUZTLnJlYWxQYXRoKHBhcmVudCksbmV3TmFtZSk7dHJ5e2ZzLnN5bWxpbmtTeW5jKG9sZFBhdGgsbmV3UGF0aCl9Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX0pLHJlYWRsaW5rOihmdW5jdGlvbihub2RlKXt2YXIgcGF0aD1OT0RFRlMucmVhbFBhdGgobm9kZSk7dHJ5e3BhdGg9ZnMucmVhZGxpbmtTeW5jKHBhdGgpO3BhdGg9Tk9ERUpTX1BBVEgucmVsYXRpdmUoTk9ERUpTX1BBVEgucmVzb2x2ZShub2RlLm1vdW50Lm9wdHMucm9vdCkscGF0aCk7cmV0dXJuIHBhdGh9Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX0pfSxzdHJlYW1fb3BzOntvcGVuOihmdW5jdGlvbihzdHJlYW0pe3ZhciBwYXRoPU5PREVGUy5yZWFsUGF0aChzdHJlYW0ubm9kZSk7dHJ5e2lmKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7c3RyZWFtLm5mZD1mcy5vcGVuU3luYyhwYXRoLE5PREVGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhzdHJlYW0uZmxhZ3MpKX19Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX0pLGNsb3NlOihmdW5jdGlvbihzdHJlYW0pe3RyeXtpZihGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkmJnN0cmVhbS5uZmQpe2ZzLmNsb3NlU3luYyhzdHJlYW0ubmZkKX19Y2F0Y2goZSl7aWYoIWUuY29kZSl0aHJvdyBlO3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX0pLHJlYWQ6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7aWYobGVuZ3RoPT09MClyZXR1cm4gMDt2YXIgbmJ1ZmZlcj1uZXcgQnVmZmVyKGxlbmd0aCk7dmFyIHJlczt0cnl7cmVzPWZzLnJlYWRTeW5jKHN0cmVhbS5uZmQsbmJ1ZmZlciwwLGxlbmd0aCxwb3NpdGlvbil9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSl9aWYocmVzPjApe2Zvcih2YXIgaT0wO2k8cmVzO2krKyl7YnVmZmVyW29mZnNldCtpXT1uYnVmZmVyW2ldfX1yZXR1cm4gcmVzfSksd3JpdGU6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7dmFyIG5idWZmZXI9bmV3IEJ1ZmZlcihidWZmZXIuc3ViYXJyYXkob2Zmc2V0LG9mZnNldCtsZW5ndGgpKTt2YXIgcmVzO3RyeXtyZXM9ZnMud3JpdGVTeW5jKHN0cmVhbS5uZmQsbmJ1ZmZlciwwLGxlbmd0aCxwb3NpdGlvbil9Y2F0Y2goZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSl9cmV0dXJuIHJlc30pLGxsc2VlazooZnVuY3Rpb24oc3RyZWFtLG9mZnNldCx3aGVuY2Upe3ZhciBwb3NpdGlvbj1vZmZzZXQ7aWYod2hlbmNlPT09MSl7cG9zaXRpb24rPXN0cmVhbS5wb3NpdGlvbn1lbHNlIGlmKHdoZW5jZT09PTIpe2lmKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7dHJ5e3ZhciBzdGF0PWZzLmZzdGF0U3luYyhzdHJlYW0ubmZkKTtwb3NpdGlvbis9c3RhdC5zaXplfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pfX19aWYocG9zaXRpb248MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX1yZXR1cm4gcG9zaXRpb259KX19O3ZhciBXT1JLRVJGUz17RElSX01PREU6MTY4OTUsRklMRV9NT0RFOjMzMjc5LHJlYWRlcjpudWxsLG1vdW50OihmdW5jdGlvbihtb3VudCl7YXNzZXJ0KEVOVklST05NRU5UX0lTX1dPUktFUik7aWYoIVdPUktFUkZTLnJlYWRlcilXT1JLRVJGUy5yZWFkZXI9bmV3IEZpbGVSZWFkZXJTeW5jO3ZhciByb290PVdPUktFUkZTLmNyZWF0ZU5vZGUobnVsbCwiLyIsV09SS0VSRlMuRElSX01PREUsMCk7dmFyIGNyZWF0ZWRQYXJlbnRzPXt9O2Z1bmN0aW9uIGVuc3VyZVBhcmVudChwYXRoKXt2YXIgcGFydHM9cGF0aC5zcGxpdCgiLyIpO3ZhciBwYXJlbnQ9cm9vdDtmb3IodmFyIGk9MDtpPHBhcnRzLmxlbmd0aC0xO2krKyl7dmFyIGN1cnI9cGFydHMuc2xpY2UoMCxpKzEpLmpvaW4oIi8iKTtpZighY3JlYXRlZFBhcmVudHNbY3Vycl0pe2NyZWF0ZWRQYXJlbnRzW2N1cnJdPVdPUktFUkZTLmNyZWF0ZU5vZGUocGFyZW50LHBhcnRzW2ldLFdPUktFUkZTLkRJUl9NT0RFLDApfXBhcmVudD1jcmVhdGVkUGFyZW50c1tjdXJyXX1yZXR1cm4gcGFyZW50fWZ1bmN0aW9uIGJhc2UocGF0aCl7dmFyIHBhcnRzPXBhdGguc3BsaXQoIi8iKTtyZXR1cm4gcGFydHNbcGFydHMubGVuZ3RoLTFdfUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobW91bnQub3B0c1siZmlsZXMiXXx8W10sKGZ1bmN0aW9uKGZpbGUpe1dPUktFUkZTLmNyZWF0ZU5vZGUoZW5zdXJlUGFyZW50KGZpbGUubmFtZSksYmFzZShmaWxlLm5hbWUpLFdPUktFUkZTLkZJTEVfTU9ERSwwLGZpbGUsZmlsZS5sYXN0TW9kaWZpZWREYXRlKX0pKTsobW91bnQub3B0c1siYmxvYnMiXXx8W10pLmZvckVhY2goKGZ1bmN0aW9uKG9iail7V09SS0VSRlMuY3JlYXRlTm9kZShlbnN1cmVQYXJlbnQob2JqWyJuYW1lIl0pLGJhc2Uob2JqWyJuYW1lIl0pLFdPUktFUkZTLkZJTEVfTU9ERSwwLG9ialsiZGF0YSJdKX0pKTsobW91bnQub3B0c1sicGFja2FnZXMiXXx8W10pLmZvckVhY2goKGZ1bmN0aW9uKHBhY2spe3BhY2tbIm1ldGFkYXRhIl0uZmlsZXMuZm9yRWFjaCgoZnVuY3Rpb24oZmlsZSl7dmFyIG5hbWU9ZmlsZS5maWxlbmFtZS5zdWJzdHIoMSk7V09SS0VSRlMuY3JlYXRlTm9kZShlbnN1cmVQYXJlbnQobmFtZSksYmFzZShuYW1lKSxXT1JLRVJGUy5GSUxFX01PREUsMCxwYWNrWyJibG9iIl0uc2xpY2UoZmlsZS5zdGFydCxmaWxlLmVuZCkpfSkpfSkpO3JldHVybiByb290fSksY3JlYXRlTm9kZTooZnVuY3Rpb24ocGFyZW50LG5hbWUsbW9kZSxkZXYsY29udGVudHMsbXRpbWUpe3ZhciBub2RlPUZTLmNyZWF0ZU5vZGUocGFyZW50LG5hbWUsbW9kZSk7bm9kZS5tb2RlPW1vZGU7bm9kZS5ub2RlX29wcz1XT1JLRVJGUy5ub2RlX29wcztub2RlLnN0cmVhbV9vcHM9V09SS0VSRlMuc3RyZWFtX29wcztub2RlLnRpbWVzdGFtcD0obXRpbWV8fG5ldyBEYXRlKS5nZXRUaW1lKCk7YXNzZXJ0KFdPUktFUkZTLkZJTEVfTU9ERSE9PVdPUktFUkZTLkRJUl9NT0RFKTtpZihtb2RlPT09V09SS0VSRlMuRklMRV9NT0RFKXtub2RlLnNpemU9Y29udGVudHMuc2l6ZTtub2RlLmNvbnRlbnRzPWNvbnRlbnRzfWVsc2V7bm9kZS5zaXplPTQwOTY7bm9kZS5jb250ZW50cz17fX1pZihwYXJlbnQpe3BhcmVudC5jb250ZW50c1tuYW1lXT1ub2RlfXJldHVybiBub2RlfSksbm9kZV9vcHM6e2dldGF0dHI6KGZ1bmN0aW9uKG5vZGUpe3JldHVybntkZXY6MSxpbm86dW5kZWZpbmVkLG1vZGU6bm9kZS5tb2RlLG5saW5rOjEsdWlkOjAsZ2lkOjAscmRldjp1bmRlZmluZWQsc2l6ZTpub2RlLnNpemUsYXRpbWU6bmV3IERhdGUobm9kZS50aW1lc3RhbXApLG10aW1lOm5ldyBEYXRlKG5vZGUudGltZXN0YW1wKSxjdGltZTpuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCksYmxrc2l6ZTo0MDk2LGJsb2NrczpNYXRoLmNlaWwobm9kZS5zaXplLzQwOTYpfX0pLHNldGF0dHI6KGZ1bmN0aW9uKG5vZGUsYXR0cil7aWYoYXR0ci5tb2RlIT09dW5kZWZpbmVkKXtub2RlLm1vZGU9YXR0ci5tb2RlfWlmKGF0dHIudGltZXN0YW1wIT09dW5kZWZpbmVkKXtub2RlLnRpbWVzdGFtcD1hdHRyLnRpbWVzdGFtcH19KSxsb29rdXA6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpfSksbWtub2Q6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLG1vZGUsZGV2KXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSl9KSxyZW5hbWU6KGZ1bmN0aW9uKG9sZE5vZGUsbmV3RGlyLG5ld05hbWUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKX0pLHVubGluazooZnVuY3Rpb24ocGFyZW50LG5hbWUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKX0pLHJtZGlyOihmdW5jdGlvbihwYXJlbnQsbmFtZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfSkscmVhZGRpcjooZnVuY3Rpb24obm9kZSl7dmFyIGVudHJpZXM9WyIuIiwiLi4iXTtmb3IodmFyIGtleSBpbiBub2RlLmNvbnRlbnRzKXtpZighbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKXtjb250aW51ZX1lbnRyaWVzLnB1c2goa2V5KX1yZXR1cm4gZW50cmllc30pLHN5bWxpbms6KGZ1bmN0aW9uKHBhcmVudCxuZXdOYW1lLG9sZFBhdGgpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKX0pLHJlYWRsaW5rOihmdW5jdGlvbihub2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSl9KX0sc3RyZWFtX29wczp7cmVhZDooZnVuY3Rpb24oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKXtpZihwb3NpdGlvbj49c3RyZWFtLm5vZGUuc2l6ZSlyZXR1cm4gMDt2YXIgY2h1bms9c3RyZWFtLm5vZGUuY29udGVudHMuc2xpY2UocG9zaXRpb24scG9zaXRpb24rbGVuZ3RoKTt2YXIgYWI9V09SS0VSRlMucmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGNodW5rKTtidWZmZXIuc2V0KG5ldyBVaW50OEFycmF5KGFiKSxvZmZzZXQpO3JldHVybiBjaHVuay5zaXplfSksd3JpdGU6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKX0pLGxsc2VlazooZnVuY3Rpb24oc3RyZWFtLG9mZnNldCx3aGVuY2Upe3ZhciBwb3NpdGlvbj1vZmZzZXQ7aWYod2hlbmNlPT09MSl7cG9zaXRpb24rPXN0cmVhbS5wb3NpdGlvbn1lbHNlIGlmKHdoZW5jZT09PTIpe2lmKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSl7cG9zaXRpb24rPXN0cmVhbS5ub2RlLnNpemV9fWlmKHBvc2l0aW9uPDApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9cmV0dXJuIHBvc2l0aW9ufSl9fTtTVEFUSUNUT1ArPTE2O1NUQVRJQ1RPUCs9MTY7U1RBVElDVE9QKz0xNjt2YXIgRlM9e3Jvb3Q6bnVsbCxtb3VudHM6W10sZGV2aWNlczpbbnVsbF0sc3RyZWFtczpbXSxuZXh0SW5vZGU6MSxuYW1lVGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlzc2lvbnM6dHJ1ZSx0cmFja2luZ0RlbGVnYXRlOnt9LHRyYWNraW5nOntvcGVuRmxhZ3M6e1JFQUQ6MSxXUklURToyfX0sRXJybm9FcnJvcjpudWxsLGdlbmVyaWNFcnJvcnM6e30sZmlsZXN5c3RlbXM6bnVsbCxzeW5jRlNSZXF1ZXN0czowLGhhbmRsZUZTRXJyb3I6KGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKXRocm93IGUrIiA6ICIrc3RhY2tUcmFjZSgpO3JldHVybiBfX19zZXRFcnJObyhlLmVycm5vKX0pLGxvb2t1cFBhdGg6KGZ1bmN0aW9uKHBhdGgsb3B0cyl7cGF0aD1QQVRILnJlc29sdmUoRlMuY3dkKCkscGF0aCk7b3B0cz1vcHRzfHx7fTtpZighcGF0aClyZXR1cm57cGF0aDoiIixub2RlOm51bGx9O3ZhciBkZWZhdWx0cz17Zm9sbG93X21vdW50OnRydWUscmVjdXJzZV9jb3VudDowfTtmb3IodmFyIGtleSBpbiBkZWZhdWx0cyl7aWYob3B0c1trZXldPT09dW5kZWZpbmVkKXtvcHRzW2tleV09ZGVmYXVsdHNba2V5XX19aWYob3B0cy5yZWN1cnNlX2NvdW50Pjgpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVMT09QKX12YXIgcGFydHM9UEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCIvIikuZmlsdGVyKChmdW5jdGlvbihwKXtyZXR1cm4hIXB9KSksZmFsc2UpO3ZhciBjdXJyZW50PUZTLnJvb3Q7dmFyIGN1cnJlbnRfcGF0aD0iLyI7Zm9yKHZhciBpPTA7aTxwYXJ0cy5sZW5ndGg7aSsrKXt2YXIgaXNsYXN0PWk9PT1wYXJ0cy5sZW5ndGgtMTtpZihpc2xhc3QmJm9wdHMucGFyZW50KXticmVha31jdXJyZW50PUZTLmxvb2t1cE5vZGUoY3VycmVudCxwYXJ0c1tpXSk7Y3VycmVudF9wYXRoPVBBVEguam9pbjIoY3VycmVudF9wYXRoLHBhcnRzW2ldKTtpZihGUy5pc01vdW50cG9pbnQoY3VycmVudCkpe2lmKCFpc2xhc3R8fGlzbGFzdCYmb3B0cy5mb2xsb3dfbW91bnQpe2N1cnJlbnQ9Y3VycmVudC5tb3VudGVkLnJvb3R9fWlmKCFpc2xhc3R8fG9wdHMuZm9sbG93KXt2YXIgY291bnQ9MDt3aGlsZShGUy5pc0xpbmsoY3VycmVudC5tb2RlKSl7dmFyIGxpbms9RlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTtjdXJyZW50X3BhdGg9UEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLGxpbmspO3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChjdXJyZW50X3BhdGgse3JlY3Vyc2VfY291bnQ6b3B0cy5yZWN1cnNlX2NvdW50fSk7Y3VycmVudD1sb29rdXAubm9kZTtpZihjb3VudCsrPjQwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTE9PUCl9fX19cmV0dXJue3BhdGg6Y3VycmVudF9wYXRoLG5vZGU6Y3VycmVudH19KSxnZXRQYXRoOihmdW5jdGlvbihub2RlKXt2YXIgcGF0aDt3aGlsZSh0cnVlKXtpZihGUy5pc1Jvb3Qobm9kZSkpe3ZhciBtb3VudD1ub2RlLm1vdW50Lm1vdW50cG9pbnQ7aWYoIXBhdGgpcmV0dXJuIG1vdW50O3JldHVybiBtb3VudFttb3VudC5sZW5ndGgtMV0hPT0iLyI/bW91bnQrIi8iK3BhdGg6bW91bnQrcGF0aH1wYXRoPXBhdGg/bm9kZS5uYW1lKyIvIitwYXRoOm5vZGUubmFtZTtub2RlPW5vZGUucGFyZW50fX0pLGhhc2hOYW1lOihmdW5jdGlvbihwYXJlbnRpZCxuYW1lKXt2YXIgaGFzaD0wO2Zvcih2YXIgaT0wO2k8bmFtZS5sZW5ndGg7aSsrKXtoYXNoPShoYXNoPDw1KS1oYXNoK25hbWUuY2hhckNvZGVBdChpKXwwfXJldHVybihwYXJlbnRpZCtoYXNoPj4+MCklRlMubmFtZVRhYmxlLmxlbmd0aH0pLGhhc2hBZGROb2RlOihmdW5jdGlvbihub2RlKXt2YXIgaGFzaD1GUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCxub2RlLm5hbWUpO25vZGUubmFtZV9uZXh0PUZTLm5hbWVUYWJsZVtoYXNoXTtGUy5uYW1lVGFibGVbaGFzaF09bm9kZX0pLGhhc2hSZW1vdmVOb2RlOihmdW5jdGlvbihub2RlKXt2YXIgaGFzaD1GUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCxub2RlLm5hbWUpO2lmKEZTLm5hbWVUYWJsZVtoYXNoXT09PW5vZGUpe0ZTLm5hbWVUYWJsZVtoYXNoXT1ub2RlLm5hbWVfbmV4dH1lbHNle3ZhciBjdXJyZW50PUZTLm5hbWVUYWJsZVtoYXNoXTt3aGlsZShjdXJyZW50KXtpZihjdXJyZW50Lm5hbWVfbmV4dD09PW5vZGUpe2N1cnJlbnQubmFtZV9uZXh0PW5vZGUubmFtZV9uZXh0O2JyZWFrfWN1cnJlbnQ9Y3VycmVudC5uYW1lX25leHR9fX0pLGxvb2t1cE5vZGU6KGZ1bmN0aW9uKHBhcmVudCxuYW1lKXt2YXIgZXJyPUZTLm1heUxvb2t1cChwYXJlbnQpO2lmKGVycil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyLHBhcmVudCl9dmFyIGhhc2g9RlMuaGFzaE5hbWUocGFyZW50LmlkLG5hbWUpO2Zvcih2YXIgbm9kZT1GUy5uYW1lVGFibGVbaGFzaF07bm9kZTtub2RlPW5vZGUubmFtZV9uZXh0KXt2YXIgbm9kZU5hbWU9bm9kZS5uYW1lO2lmKG5vZGUucGFyZW50LmlkPT09cGFyZW50LmlkJiZub2RlTmFtZT09PW5hbWUpe3JldHVybiBub2RlfX1yZXR1cm4gRlMubG9va3VwKHBhcmVudCxuYW1lKX0pLGNyZWF0ZU5vZGU6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLG1vZGUscmRldil7aWYoIUZTLkZTTm9kZSl7RlMuRlNOb2RlPShmdW5jdGlvbihwYXJlbnQsbmFtZSxtb2RlLHJkZXYpe2lmKCFwYXJlbnQpe3BhcmVudD10aGlzfXRoaXMucGFyZW50PXBhcmVudDt0aGlzLm1vdW50PXBhcmVudC5tb3VudDt0aGlzLm1vdW50ZWQ9bnVsbDt0aGlzLmlkPUZTLm5leHRJbm9kZSsrO3RoaXMubmFtZT1uYW1lO3RoaXMubW9kZT1tb2RlO3RoaXMubm9kZV9vcHM9e307dGhpcy5zdHJlYW1fb3BzPXt9O3RoaXMucmRldj1yZGV2fSk7RlMuRlNOb2RlLnByb3RvdHlwZT17fTt2YXIgcmVhZE1vZGU9MjkyfDczO3ZhciB3cml0ZU1vZGU9MTQ2O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZTLkZTTm9kZS5wcm90b3R5cGUse3JlYWQ6e2dldDooZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5tb2RlJnJlYWRNb2RlKT09PXJlYWRNb2RlfSksc2V0OihmdW5jdGlvbih2YWwpe3ZhbD90aGlzLm1vZGV8PXJlYWRNb2RlOnRoaXMubW9kZSY9fnJlYWRNb2RlfSl9LHdyaXRlOntnZXQ6KGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubW9kZSZ3cml0ZU1vZGUpPT09d3JpdGVNb2RlfSksc2V0OihmdW5jdGlvbih2YWwpe3ZhbD90aGlzLm1vZGV8PXdyaXRlTW9kZTp0aGlzLm1vZGUmPX53cml0ZU1vZGV9KX0saXNGb2xkZXI6e2dldDooZnVuY3Rpb24oKXtyZXR1cm4gRlMuaXNEaXIodGhpcy5tb2RlKX0pfSxpc0RldmljZTp7Z2V0OihmdW5jdGlvbigpe3JldHVybiBGUy5pc0NocmRldih0aGlzLm1vZGUpfSl9fSl9dmFyIG5vZGU9bmV3IEZTLkZTTm9kZShwYXJlbnQsbmFtZSxtb2RlLHJkZXYpO0ZTLmhhc2hBZGROb2RlKG5vZGUpO3JldHVybiBub2RlfSksZGVzdHJveU5vZGU6KGZ1bmN0aW9uKG5vZGUpe0ZTLmhhc2hSZW1vdmVOb2RlKG5vZGUpfSksaXNSb290OihmdW5jdGlvbihub2RlKXtyZXR1cm4gbm9kZT09PW5vZGUucGFyZW50fSksaXNNb3VudHBvaW50OihmdW5jdGlvbihub2RlKXtyZXR1cm4hIW5vZGUubW91bnRlZH0pLGlzRmlsZTooZnVuY3Rpb24obW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09MzI3Njh9KSxpc0RpcjooZnVuY3Rpb24obW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09MTYzODR9KSxpc0xpbms6KGZ1bmN0aW9uKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTQwOTYwfSksaXNDaHJkZXY6KGZ1bmN0aW9uKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTgxOTJ9KSxpc0Jsa2RldjooZnVuY3Rpb24obW9kZSl7cmV0dXJuKG1vZGUmNjE0NDApPT09MjQ1NzZ9KSxpc0ZJRk86KGZ1bmN0aW9uKG1vZGUpe3JldHVybihtb2RlJjYxNDQwKT09PTQwOTZ9KSxpc1NvY2tldDooZnVuY3Rpb24obW9kZSl7cmV0dXJuKG1vZGUmNDkxNTIpPT09NDkxNTJ9KSxmbGFnTW9kZXM6eyJyIjowLCJycyI6MTA1MjY3MiwicisiOjIsInciOjU3Nywid3giOjcwNSwieHciOjcwNSwidysiOjU3OCwid3grIjo3MDYsInh3KyI6NzA2LCJhIjoxMDg5LCJheCI6MTIxNywieGEiOjEyMTcsImErIjoxMDkwLCJheCsiOjEyMTgsInhhKyI6MTIxOH0sbW9kZVN0cmluZ1RvRmxhZ3M6KGZ1bmN0aW9uKHN0cil7dmFyIGZsYWdzPUZTLmZsYWdNb2Rlc1tzdHJdO2lmKHR5cGVvZiBmbGFncz09PSJ1bmRlZmluZWQiKXt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsZSBvcGVuIG1vZGU6ICIrc3RyKX1yZXR1cm4gZmxhZ3N9KSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzooZnVuY3Rpb24oZmxhZyl7dmFyIHBlcm1zPVsiciIsInciLCJydyJdW2ZsYWcmM107aWYoZmxhZyY1MTIpe3Blcm1zKz0idyJ9cmV0dXJuIHBlcm1zfSksbm9kZVBlcm1pc3Npb25zOihmdW5jdGlvbihub2RlLHBlcm1zKXtpZihGUy5pZ25vcmVQZXJtaXNzaW9ucyl7cmV0dXJuIDB9aWYocGVybXMuaW5kZXhPZigiciIpIT09LTEmJiEobm9kZS5tb2RlJjI5Mikpe3JldHVybiBFUlJOT19DT0RFUy5FQUNDRVN9ZWxzZSBpZihwZXJtcy5pbmRleE9mKCJ3IikhPT0tMSYmIShub2RlLm1vZGUmMTQ2KSl7cmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFU31lbHNlIGlmKHBlcm1zLmluZGV4T2YoIngiKSE9PS0xJiYhKG5vZGUubW9kZSY3Mykpe3JldHVybiBFUlJOT19DT0RFUy5FQUNDRVN9cmV0dXJuIDB9KSxtYXlMb29rdXA6KGZ1bmN0aW9uKGRpcil7dmFyIGVycj1GUy5ub2RlUGVybWlzc2lvbnMoZGlyLCJ4Iik7aWYoZXJyKXJldHVybiBlcnI7aWYoIWRpci5ub2RlX29wcy5sb29rdXApcmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUztyZXR1cm4gMH0pLG1heUNyZWF0ZTooZnVuY3Rpb24oZGlyLG5hbWUpe3RyeXt2YXIgbm9kZT1GUy5sb29rdXBOb2RlKGRpcixuYW1lKTtyZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUfWNhdGNoKGUpe31yZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKGRpciwid3giKX0pLG1heURlbGV0ZTooZnVuY3Rpb24oZGlyLG5hbWUsaXNkaXIpe3ZhciBub2RlO3RyeXtub2RlPUZTLmxvb2t1cE5vZGUoZGlyLG5hbWUpfWNhdGNoKGUpe3JldHVybiBlLmVycm5vfXZhciBlcnI9RlMubm9kZVBlcm1pc3Npb25zKGRpciwid3giKTtpZihlcnIpe3JldHVybiBlcnJ9aWYoaXNkaXIpe2lmKCFGUy5pc0Rpcihub2RlLm1vZGUpKXtyZXR1cm4gRVJSTk9fQ09ERVMuRU5PVERJUn1pZihGUy5pc1Jvb3Qobm9kZSl8fEZTLmdldFBhdGgobm9kZSk9PT1GUy5jd2QoKSl7cmV0dXJuIEVSUk5PX0NPREVTLkVCVVNZfX1lbHNle2lmKEZTLmlzRGlyKG5vZGUubW9kZSkpe3JldHVybiBFUlJOT19DT0RFUy5FSVNESVJ9fXJldHVybiAwfSksbWF5T3BlbjooZnVuY3Rpb24obm9kZSxmbGFncyl7aWYoIW5vZGUpe3JldHVybiBFUlJOT19DT0RFUy5FTk9FTlR9aWYoRlMuaXNMaW5rKG5vZGUubW9kZSkpe3JldHVybiBFUlJOT19DT0RFUy5FTE9PUH1lbHNlIGlmKEZTLmlzRGlyKG5vZGUubW9kZSkpe2lmKEZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGZsYWdzKSE9PSJyInx8ZmxhZ3MmNTEyKXtyZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSfX1yZXR1cm4gRlMubm9kZVBlcm1pc3Npb25zKG5vZGUsRlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3MpKX0pLE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDooZnVuY3Rpb24oZmRfc3RhcnQsZmRfZW5kKXtmZF9zdGFydD1mZF9zdGFydHx8MDtmZF9lbmQ9ZmRfZW5kfHxGUy5NQVhfT1BFTl9GRFM7Zm9yKHZhciBmZD1mZF9zdGFydDtmZDw9ZmRfZW5kO2ZkKyspe2lmKCFGUy5zdHJlYW1zW2ZkXSl7cmV0dXJuIGZkfX10aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTUZJTEUpfSksZ2V0U3RyZWFtOihmdW5jdGlvbihmZCl7cmV0dXJuIEZTLnN0cmVhbXNbZmRdfSksY3JlYXRlU3RyZWFtOihmdW5jdGlvbihzdHJlYW0sZmRfc3RhcnQsZmRfZW5kKXtpZighRlMuRlNTdHJlYW0pe0ZTLkZTU3RyZWFtPShmdW5jdGlvbigpe30pO0ZTLkZTU3RyZWFtLnByb3RvdHlwZT17fTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhGUy5GU1N0cmVhbS5wcm90b3R5cGUse29iamVjdDp7Z2V0OihmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGV9KSxzZXQ6KGZ1bmN0aW9uKHZhbCl7dGhpcy5ub2RlPXZhbH0pfSxpc1JlYWQ6e2dldDooZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5mbGFncyYyMDk3MTU1KSE9PTF9KX0saXNXcml0ZTp7Z2V0OihmdW5jdGlvbigpe3JldHVybih0aGlzLmZsYWdzJjIwOTcxNTUpIT09MH0pfSxpc0FwcGVuZDp7Z2V0OihmdW5jdGlvbigpe3JldHVybiB0aGlzLmZsYWdzJjEwMjR9KX19KX12YXIgbmV3U3RyZWFtPW5ldyBGUy5GU1N0cmVhbTtmb3IodmFyIHAgaW4gc3RyZWFtKXtuZXdTdHJlYW1bcF09c3RyZWFtW3BdfXN0cmVhbT1uZXdTdHJlYW07dmFyIGZkPUZTLm5leHRmZChmZF9zdGFydCxmZF9lbmQpO3N0cmVhbS5mZD1mZDtGUy5zdHJlYW1zW2ZkXT1zdHJlYW07cmV0dXJuIHN0cmVhbX0pLGNsb3NlU3RyZWFtOihmdW5jdGlvbihmZCl7RlMuc3RyZWFtc1tmZF09bnVsbH0pLGNocmRldl9zdHJlYW1fb3BzOntvcGVuOihmdW5jdGlvbihzdHJlYW0pe3ZhciBkZXZpY2U9RlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpO3N0cmVhbS5zdHJlYW1fb3BzPWRldmljZS5zdHJlYW1fb3BzO2lmKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pe3N0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKX19KSxsbHNlZWs6KGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKX0pfSxtYWpvcjooZnVuY3Rpb24oZGV2KXtyZXR1cm4gZGV2Pj44fSksbWlub3I6KGZ1bmN0aW9uKGRldil7cmV0dXJuIGRldiYyNTV9KSxtYWtlZGV2OihmdW5jdGlvbihtYSxtaSl7cmV0dXJuIG1hPDw4fG1pfSkscmVnaXN0ZXJEZXZpY2U6KGZ1bmN0aW9uKGRldixvcHMpe0ZTLmRldmljZXNbZGV2XT17c3RyZWFtX29wczpvcHN9fSksZ2V0RGV2aWNlOihmdW5jdGlvbihkZXYpe3JldHVybiBGUy5kZXZpY2VzW2Rldl19KSxnZXRNb3VudHM6KGZ1bmN0aW9uKG1vdW50KXt2YXIgbW91bnRzPVtdO3ZhciBjaGVjaz1bbW91bnRdO3doaWxlKGNoZWNrLmxlbmd0aCl7dmFyIG09Y2hlY2sucG9wKCk7bW91bnRzLnB1c2gobSk7Y2hlY2sucHVzaC5hcHBseShjaGVjayxtLm1vdW50cyl9cmV0dXJuIG1vdW50c30pLHN5bmNmczooZnVuY3Rpb24ocG9wdWxhdGUsY2FsbGJhY2spe2lmKHR5cGVvZiBwb3B1bGF0ZT09PSJmdW5jdGlvbiIpe2NhbGxiYWNrPXBvcHVsYXRlO3BvcHVsYXRlPWZhbHNlfUZTLnN5bmNGU1JlcXVlc3RzKys7aWYoRlMuc3luY0ZTUmVxdWVzdHM+MSl7Y29uc29sZS5sb2coIndhcm5pbmc6ICIrRlMuc3luY0ZTUmVxdWVzdHMrIiBGUy5zeW5jZnMgb3BlcmF0aW9ucyBpbiBmbGlnaHQgYXQgb25jZSwgcHJvYmFibHkganVzdCBkb2luZyBleHRyYSB3b3JrIil9dmFyIG1vdW50cz1GUy5nZXRNb3VudHMoRlMucm9vdC5tb3VudCk7dmFyIGNvbXBsZXRlZD0wO2Z1bmN0aW9uIGRvQ2FsbGJhY2soZXJyKXthc3NlcnQoRlMuc3luY0ZTUmVxdWVzdHM+MCk7RlMuc3luY0ZTUmVxdWVzdHMtLTtyZXR1cm4gY2FsbGJhY2soZXJyKX1mdW5jdGlvbiBkb25lKGVycil7aWYoZXJyKXtpZighZG9uZS5lcnJvcmVkKXtkb25lLmVycm9yZWQ9dHJ1ZTtyZXR1cm4gZG9DYWxsYmFjayhlcnIpfXJldHVybn1pZigrK2NvbXBsZXRlZD49bW91bnRzLmxlbmd0aCl7ZG9DYWxsYmFjayhudWxsKX19bW91bnRzLmZvckVhY2goKGZ1bmN0aW9uKG1vdW50KXtpZighbW91bnQudHlwZS5zeW5jZnMpe3JldHVybiBkb25lKG51bGwpfW1vdW50LnR5cGUuc3luY2ZzKG1vdW50LHBvcHVsYXRlLGRvbmUpfSkpfSksbW91bnQ6KGZ1bmN0aW9uKHR5cGUsb3B0cyxtb3VudHBvaW50KXt2YXIgcm9vdD1tb3VudHBvaW50PT09Ii8iO3ZhciBwc2V1ZG89IW1vdW50cG9pbnQ7dmFyIG5vZGU7aWYocm9vdCYmRlMucm9vdCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpfWVsc2UgaWYoIXJvb3QmJiFwc2V1ZG8pe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChtb3VudHBvaW50LHtmb2xsb3dfbW91bnQ6ZmFsc2V9KTttb3VudHBvaW50PWxvb2t1cC5wYXRoO25vZGU9bG9va3VwLm5vZGU7aWYoRlMuaXNNb3VudHBvaW50KG5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSl9aWYoIUZTLmlzRGlyKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RESVIpfX12YXIgbW91bnQ9e3R5cGU6dHlwZSxvcHRzOm9wdHMsbW91bnRwb2ludDptb3VudHBvaW50LG1vdW50czpbXX07dmFyIG1vdW50Um9vdD10eXBlLm1vdW50KG1vdW50KTttb3VudFJvb3QubW91bnQ9bW91bnQ7bW91bnQucm9vdD1tb3VudFJvb3Q7aWYocm9vdCl7RlMucm9vdD1tb3VudFJvb3R9ZWxzZSBpZihub2RlKXtub2RlLm1vdW50ZWQ9bW91bnQ7aWYobm9kZS5tb3VudCl7bm9kZS5tb3VudC5tb3VudHMucHVzaChtb3VudCl9fXJldHVybiBtb3VudFJvb3R9KSx1bm1vdW50OihmdW5jdGlvbihtb3VudHBvaW50KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgobW91bnRwb2ludCx7Zm9sbG93X21vdW50OmZhbHNlfSk7aWYoIUZTLmlzTW91bnRwb2ludChsb29rdXAubm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9dmFyIG5vZGU9bG9va3VwLm5vZGU7dmFyIG1vdW50PW5vZGUubW91bnRlZDt2YXIgbW91bnRzPUZTLmdldE1vdW50cyhtb3VudCk7T2JqZWN0LmtleXMoRlMubmFtZVRhYmxlKS5mb3JFYWNoKChmdW5jdGlvbihoYXNoKXt2YXIgY3VycmVudD1GUy5uYW1lVGFibGVbaGFzaF07d2hpbGUoY3VycmVudCl7dmFyIG5leHQ9Y3VycmVudC5uYW1lX25leHQ7aWYobW91bnRzLmluZGV4T2YoY3VycmVudC5tb3VudCkhPT0tMSl7RlMuZGVzdHJveU5vZGUoY3VycmVudCl9Y3VycmVudD1uZXh0fX0pKTtub2RlLm1vdW50ZWQ9bnVsbDt2YXIgaWR4PW5vZGUubW91bnQubW91bnRzLmluZGV4T2YobW91bnQpO2Fzc2VydChpZHghPT0tMSk7bm9kZS5tb3VudC5tb3VudHMuc3BsaWNlKGlkeCwxKX0pLGxvb2t1cDooZnVuY3Rpb24ocGFyZW50LG5hbWUpe3JldHVybiBwYXJlbnQubm9kZV9vcHMubG9va3VwKHBhcmVudCxuYW1lKX0pLG1rbm9kOihmdW5jdGlvbihwYXRoLG1vZGUsZGV2KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7cGFyZW50OnRydWV9KTt2YXIgcGFyZW50PWxvb2t1cC5ub2RlO3ZhciBuYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7aWYoIW5hbWV8fG5hbWU9PT0iLiJ8fG5hbWU9PT0iLi4iKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfXZhciBlcnI9RlMubWF5Q3JlYXRlKHBhcmVudCxuYW1lKTtpZihlcnIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycil9aWYoIXBhcmVudC5ub2RlX29wcy5ta25vZCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfXJldHVybiBwYXJlbnQubm9kZV9vcHMubWtub2QocGFyZW50LG5hbWUsbW9kZSxkZXYpfSksY3JlYXRlOihmdW5jdGlvbihwYXRoLG1vZGUpe21vZGU9bW9kZSE9PXVuZGVmaW5lZD9tb2RlOjQzODttb2RlJj00MDk1O21vZGV8PTMyNzY4O3JldHVybiBGUy5ta25vZChwYXRoLG1vZGUsMCl9KSxta2RpcjooZnVuY3Rpb24ocGF0aCxtb2RlKXttb2RlPW1vZGUhPT11bmRlZmluZWQ/bW9kZTo1MTE7bW9kZSY9NTExfDUxMjttb2RlfD0xNjM4NDtyZXR1cm4gRlMubWtub2QocGF0aCxtb2RlLDApfSksbWtkaXJUcmVlOihmdW5jdGlvbihwYXRoLG1vZGUpe3ZhciBkaXJzPXBhdGguc3BsaXQoIi8iKTt2YXIgZD0iIjtmb3IodmFyIGk9MDtpPGRpcnMubGVuZ3RoOysraSl7aWYoIWRpcnNbaV0pY29udGludWU7ZCs9Ii8iK2RpcnNbaV07dHJ5e0ZTLm1rZGlyKGQsbW9kZSl9Y2F0Y2goZSl7aWYoZS5lcnJubyE9RVJSTk9fQ09ERVMuRUVYSVNUKXRocm93IGV9fX0pLG1rZGV2OihmdW5jdGlvbihwYXRoLG1vZGUsZGV2KXtpZih0eXBlb2YgZGV2PT09InVuZGVmaW5lZCIpe2Rldj1tb2RlO21vZGU9NDM4fW1vZGV8PTgxOTI7cmV0dXJuIEZTLm1rbm9kKHBhdGgsbW9kZSxkZXYpfSksc3ltbGluazooZnVuY3Rpb24ob2xkcGF0aCxuZXdwYXRoKXtpZighUEFUSC5yZXNvbHZlKG9sZHBhdGgpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpfXZhciBsb29rdXA9RlMubG9va3VwUGF0aChuZXdwYXRoLHtwYXJlbnQ6dHJ1ZX0pO3ZhciBwYXJlbnQ9bG9va3VwLm5vZGU7aWYoIXBhcmVudCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKX12YXIgbmV3bmFtZT1QQVRILmJhc2VuYW1lKG5ld3BhdGgpO3ZhciBlcnI9RlMubWF5Q3JlYXRlKHBhcmVudCxuZXduYW1lKTtpZihlcnIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycil9aWYoIXBhcmVudC5ub2RlX29wcy5zeW1saW5rKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSl9cmV0dXJuIHBhcmVudC5ub2RlX29wcy5zeW1saW5rKHBhcmVudCxuZXduYW1lLG9sZHBhdGgpfSkscmVuYW1lOihmdW5jdGlvbihvbGRfcGF0aCxuZXdfcGF0aCl7dmFyIG9sZF9kaXJuYW1lPVBBVEguZGlybmFtZShvbGRfcGF0aCk7dmFyIG5ld19kaXJuYW1lPVBBVEguZGlybmFtZShuZXdfcGF0aCk7dmFyIG9sZF9uYW1lPVBBVEguYmFzZW5hbWUob2xkX3BhdGgpO3ZhciBuZXdfbmFtZT1QQVRILmJhc2VuYW1lKG5ld19wYXRoKTt2YXIgbG9va3VwLG9sZF9kaXIsbmV3X2Rpcjt0cnl7bG9va3VwPUZTLmxvb2t1cFBhdGgob2xkX3BhdGgse3BhcmVudDp0cnVlfSk7b2xkX2Rpcj1sb29rdXAubm9kZTtsb29rdXA9RlMubG9va3VwUGF0aChuZXdfcGF0aCx7cGFyZW50OnRydWV9KTtuZXdfZGlyPWxvb2t1cC5ub2RlfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKX1pZighb2xkX2Rpcnx8IW5ld19kaXIpdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTtpZihvbGRfZGlyLm1vdW50IT09bmV3X2Rpci5tb3VudCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVhERVYpfXZhciBvbGRfbm9kZT1GUy5sb29rdXBOb2RlKG9sZF9kaXIsb2xkX25hbWUpO3ZhciByZWxhdGl2ZT1QQVRILnJlbGF0aXZlKG9sZF9wYXRoLG5ld19kaXJuYW1lKTtpZihyZWxhdGl2ZS5jaGFyQXQoMCkhPT0iLiIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9cmVsYXRpdmU9UEFUSC5yZWxhdGl2ZShuZXdfcGF0aCxvbGRfZGlybmFtZSk7aWYocmVsYXRpdmUuY2hhckF0KDApIT09Ii4iKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpfXZhciBuZXdfbm9kZTt0cnl7bmV3X25vZGU9RlMubG9va3VwTm9kZShuZXdfZGlyLG5ld19uYW1lKX1jYXRjaChlKXt9aWYob2xkX25vZGU9PT1uZXdfbm9kZSl7cmV0dXJufXZhciBpc2Rpcj1GUy5pc0RpcihvbGRfbm9kZS5tb2RlKTt2YXIgZXJyPUZTLm1heURlbGV0ZShvbGRfZGlyLG9sZF9uYW1lLGlzZGlyKTtpZihlcnIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycil9ZXJyPW5ld19ub2RlP0ZTLm1heURlbGV0ZShuZXdfZGlyLG5ld19uYW1lLGlzZGlyKTpGUy5tYXlDcmVhdGUobmV3X2RpcixuZXdfbmFtZSk7aWYoZXJyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpfWlmKCFvbGRfZGlyLm5vZGVfb3BzLnJlbmFtZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfWlmKEZTLmlzTW91bnRwb2ludChvbGRfbm9kZSl8fG5ld19ub2RlJiZGUy5pc01vdW50cG9pbnQobmV3X25vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSl9aWYobmV3X2RpciE9PW9sZF9kaXIpe2Vycj1GUy5ub2RlUGVybWlzc2lvbnMob2xkX2RpciwidyIpO2lmKGVycil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKX19dHJ5e2lmKEZTLnRyYWNraW5nRGVsZWdhdGVbIndpbGxNb3ZlUGF0aCJdKXtGUy50cmFja2luZ0RlbGVnYXRlWyJ3aWxsTW92ZVBhdGgiXShvbGRfcGF0aCxuZXdfcGF0aCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsTW92ZVBhdGgnXSgnIitvbGRfcGF0aCsiJywgJyIrbmV3X3BhdGgrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfUZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTt0cnl7b2xkX2Rpci5ub2RlX29wcy5yZW5hbWUob2xkX25vZGUsbmV3X2RpcixuZXdfbmFtZSl9Y2F0Y2goZSl7dGhyb3cgZX1maW5hbGx5e0ZTLmhhc2hBZGROb2RlKG9sZF9ub2RlKX10cnl7aWYoRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25Nb3ZlUGF0aCJdKUZTLnRyYWNraW5nRGVsZWdhdGVbIm9uTW92ZVBhdGgiXShvbGRfcGF0aCxuZXdfcGF0aCl9Y2F0Y2goZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uTW92ZVBhdGgnXSgnIitvbGRfcGF0aCsiJywgJyIrbmV3X3BhdGgrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfX0pLHJtZGlyOihmdW5jdGlvbihwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7cGFyZW50OnRydWV9KTt2YXIgcGFyZW50PWxvb2t1cC5ub2RlO3ZhciBuYW1lPVBBVEguYmFzZW5hbWUocGF0aCk7dmFyIG5vZGU9RlMubG9va3VwTm9kZShwYXJlbnQsbmFtZSk7dmFyIGVycj1GUy5tYXlEZWxldGUocGFyZW50LG5hbWUsdHJ1ZSk7aWYoZXJyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpfWlmKCFwYXJlbnQubm9kZV9vcHMucm1kaXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKX1pZihGUy5pc01vdW50cG9pbnQobm9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKX10cnl7aWYoRlMudHJhY2tpbmdEZWxlZ2F0ZVsid2lsbERlbGV0ZVBhdGgiXSl7RlMudHJhY2tpbmdEZWxlZ2F0ZVsid2lsbERlbGV0ZVBhdGgiXShwYXRoKX19Y2F0Y2goZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxEZWxldGVQYXRoJ10oJyIrcGF0aCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK2UubWVzc2FnZSl9cGFyZW50Lm5vZGVfb3BzLnJtZGlyKHBhcmVudCxuYW1lKTtGUy5kZXN0cm95Tm9kZShub2RlKTt0cnl7aWYoRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25EZWxldGVQYXRoIl0pRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25EZWxldGVQYXRoIl0ocGF0aCl9Y2F0Y2goZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uRGVsZXRlUGF0aCddKCciK3BhdGgrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfX0pLHJlYWRkaXI6KGZ1bmN0aW9uKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6dHJ1ZX0pO3ZhciBub2RlPWxvb2t1cC5ub2RlO2lmKCFub2RlLm5vZGVfb3BzLnJlYWRkaXIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RESVIpfXJldHVybiBub2RlLm5vZGVfb3BzLnJlYWRkaXIobm9kZSl9KSx1bmxpbms6KGZ1bmN0aW9uKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtwYXJlbnQ6dHJ1ZX0pO3ZhciBwYXJlbnQ9bG9va3VwLm5vZGU7dmFyIG5hbWU9UEFUSC5iYXNlbmFtZShwYXRoKTt2YXIgbm9kZT1GUy5sb29rdXBOb2RlKHBhcmVudCxuYW1lKTt2YXIgZXJyPUZTLm1heURlbGV0ZShwYXJlbnQsbmFtZSxmYWxzZSk7aWYoZXJyKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpfWlmKCFwYXJlbnQubm9kZV9vcHMudW5saW5rKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSl9aWYoRlMuaXNNb3VudHBvaW50KG5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSl9dHJ5e2lmKEZTLnRyYWNraW5nRGVsZWdhdGVbIndpbGxEZWxldGVQYXRoIl0pe0ZTLnRyYWNraW5nRGVsZWdhdGVbIndpbGxEZWxldGVQYXRoIl0ocGF0aCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsRGVsZXRlUGF0aCddKCciK3BhdGgrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfXBhcmVudC5ub2RlX29wcy51bmxpbmsocGFyZW50LG5hbWUpO0ZTLmRlc3Ryb3lOb2RlKG5vZGUpO3RyeXtpZihGUy50cmFja2luZ0RlbGVnYXRlWyJvbkRlbGV0ZVBhdGgiXSlGUy50cmFja2luZ0RlbGVnYXRlWyJvbkRlbGV0ZVBhdGgiXShwYXRoKX1jYXRjaChlKXtjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25EZWxldGVQYXRoJ10oJyIrcGF0aCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK2UubWVzc2FnZSl9fSkscmVhZGxpbms6KGZ1bmN0aW9uKHBhdGgpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoKTt2YXIgbGluaz1sb29rdXAubm9kZTtpZighbGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKX1pZighbGluay5ub2RlX29wcy5yZWFkbGluayl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX1yZXR1cm4gUEFUSC5yZXNvbHZlKEZTLmdldFBhdGgobGluay5wYXJlbnQpLGxpbmsubm9kZV9vcHMucmVhZGxpbmsobGluaykpfSksc3RhdDooZnVuY3Rpb24ocGF0aCxkb250Rm9sbG93KXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OiFkb250Rm9sbG93fSk7dmFyIG5vZGU9bG9va3VwLm5vZGU7aWYoIW5vZGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCl9aWYoIW5vZGUubm9kZV9vcHMuZ2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfXJldHVybiBub2RlLm5vZGVfb3BzLmdldGF0dHIobm9kZSl9KSxsc3RhdDooZnVuY3Rpb24ocGF0aCl7cmV0dXJuIEZTLnN0YXQocGF0aCx0cnVlKX0pLGNobW9kOihmdW5jdGlvbihwYXRoLG1vZGUsZG9udEZvbGxvdyl7dmFyIG5vZGU7aWYodHlwZW9mIHBhdGg9PT0ic3RyaW5nIil7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohZG9udEZvbGxvd30pO25vZGU9bG9va3VwLm5vZGV9ZWxzZXtub2RlPXBhdGh9aWYoIW5vZGUubm9kZV9vcHMuc2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfW5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLHttb2RlOm1vZGUmNDA5NXxub2RlLm1vZGUmfjQwOTUsdGltZXN0YW1wOkRhdGUubm93KCl9KX0pLGxjaG1vZDooZnVuY3Rpb24ocGF0aCxtb2RlKXtGUy5jaG1vZChwYXRoLG1vZGUsdHJ1ZSl9KSxmY2htb2Q6KGZ1bmN0aW9uKGZkLG1vZGUpe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtKGZkKTtpZighc3RyZWFtKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERil9RlMuY2htb2Qoc3RyZWFtLm5vZGUsbW9kZSl9KSxjaG93bjooZnVuY3Rpb24ocGF0aCx1aWQsZ2lkLGRvbnRGb2xsb3cpe3ZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT09InN0cmluZyIpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6IWRvbnRGb2xsb3d9KTtub2RlPWxvb2t1cC5ub2RlfWVsc2V7bm9kZT1wYXRofWlmKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKX1ub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSx7dGltZXN0YW1wOkRhdGUubm93KCl9KX0pLGxjaG93bjooZnVuY3Rpb24ocGF0aCx1aWQsZ2lkKXtGUy5jaG93bihwYXRoLHVpZCxnaWQsdHJ1ZSl9KSxmY2hvd246KGZ1bmN0aW9uKGZkLHVpZCxnaWQpe3ZhciBzdHJlYW09RlMuZ2V0U3RyZWFtKGZkKTtpZighc3RyZWFtKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERil9RlMuY2hvd24oc3RyZWFtLm5vZGUsdWlkLGdpZCl9KSx0cnVuY2F0ZTooZnVuY3Rpb24ocGF0aCxsZW4pe2lmKGxlbjwwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfXZhciBub2RlO2lmKHR5cGVvZiBwYXRoPT09InN0cmluZyIpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6dHJ1ZX0pO25vZGU9bG9va3VwLm5vZGV9ZWxzZXtub2RlPXBhdGh9aWYoIW5vZGUubm9kZV9vcHMuc2V0YXR0cil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pfWlmKEZTLmlzRGlyKG5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUil9aWYoIUZTLmlzRmlsZShub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfXZhciBlcnI9RlMubm9kZVBlcm1pc3Npb25zKG5vZGUsInciKTtpZihlcnIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycil9bm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUse3NpemU6bGVuLHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9KSxmdHJ1bmNhdGU6KGZ1bmN0aW9uKGZkLGxlbil7dmFyIHN0cmVhbT1GUy5nZXRTdHJlYW0oZmQpO2lmKCFzdHJlYW0pe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKX1pZigoc3RyZWFtLmZsYWdzJjIwOTcxNTUpPT09MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX1GUy50cnVuY2F0ZShzdHJlYW0ubm9kZSxsZW4pfSksdXRpbWU6KGZ1bmN0aW9uKHBhdGgsYXRpbWUsbXRpbWUpe3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6dHJ1ZX0pO3ZhciBub2RlPWxvb2t1cC5ub2RlO25vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLHt0aW1lc3RhbXA6TWF0aC5tYXgoYXRpbWUsbXRpbWUpfSl9KSxvcGVuOihmdW5jdGlvbihwYXRoLGZsYWdzLG1vZGUsZmRfc3RhcnQsZmRfZW5kKXtpZihwYXRoPT09IiIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCl9ZmxhZ3M9dHlwZW9mIGZsYWdzPT09InN0cmluZyI/RlMubW9kZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpOmZsYWdzO21vZGU9dHlwZW9mIG1vZGU9PT0idW5kZWZpbmVkIj80Mzg6bW9kZTtpZihmbGFncyY2NCl7bW9kZT1tb2RlJjQwOTV8MzI3Njh9ZWxzZXttb2RlPTB9dmFyIG5vZGU7aWYodHlwZW9mIHBhdGg9PT0ib2JqZWN0Iil7bm9kZT1wYXRofWVsc2V7cGF0aD1QQVRILm5vcm1hbGl6ZShwYXRoKTt0cnl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzohKGZsYWdzJjEzMTA3Mil9KTtub2RlPWxvb2t1cC5ub2RlfWNhdGNoKGUpe319dmFyIGNyZWF0ZWQ9ZmFsc2U7aWYoZmxhZ3MmNjQpe2lmKG5vZGUpe2lmKGZsYWdzJjEyOCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVYSVNUKX19ZWxzZXtub2RlPUZTLm1rbm9kKHBhdGgsbW9kZSwwKTtjcmVhdGVkPXRydWV9fWlmKCFub2RlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpfWlmKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpe2ZsYWdzJj1+NTEyfWlmKGZsYWdzJjY1NTM2JiYhRlMuaXNEaXIobm9kZS5tb2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVERJUil9aWYoIWNyZWF0ZWQpe3ZhciBlcnI9RlMubWF5T3Blbihub2RlLGZsYWdzKTtpZihlcnIpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycil9fWlmKGZsYWdzJjUxMil7RlMudHJ1bmNhdGUobm9kZSwwKX1mbGFncyY9figxMjh8NTEyKTt2YXIgc3RyZWFtPUZTLmNyZWF0ZVN0cmVhbSh7bm9kZTpub2RlLHBhdGg6RlMuZ2V0UGF0aChub2RlKSxmbGFnczpmbGFncyxzZWVrYWJsZTp0cnVlLHBvc2l0aW9uOjAsc3RyZWFtX29wczpub2RlLnN0cmVhbV9vcHMsdW5nb3R0ZW46W10sZXJyb3I6ZmFsc2V9LGZkX3N0YXJ0LGZkX2VuZCk7aWYoc3RyZWFtLnN0cmVhbV9vcHMub3Blbil7c3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pfWlmKE1vZHVsZVsibG9nUmVhZEZpbGVzIl0mJiEoZmxhZ3MmMSkpe2lmKCFGUy5yZWFkRmlsZXMpRlMucmVhZEZpbGVzPXt9O2lmKCEocGF0aCBpbiBGUy5yZWFkRmlsZXMpKXtGUy5yZWFkRmlsZXNbcGF0aF09MTtNb2R1bGVbInByaW50RXJyIl0oInJlYWQgZmlsZTogIitwYXRoKX19dHJ5e2lmKEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uT3BlbkZpbGUiXSl7dmFyIHRyYWNraW5nRmxhZ3M9MDtpZigoZmxhZ3MmMjA5NzE1NSkhPT0xKXt0cmFja2luZ0ZsYWdzfD1GUy50cmFja2luZy5vcGVuRmxhZ3MuUkVBRH1pZigoZmxhZ3MmMjA5NzE1NSkhPT0wKXt0cmFja2luZ0ZsYWdzfD1GUy50cmFja2luZy5vcGVuRmxhZ3MuV1JJVEV9RlMudHJhY2tpbmdEZWxlZ2F0ZVsib25PcGVuRmlsZSJdKHBhdGgsdHJhY2tpbmdGbGFncyl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbk9wZW5GaWxlJ10oJyIrcGF0aCsiJywgZmxhZ3MpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfXJldHVybiBzdHJlYW19KSxjbG9zZTooZnVuY3Rpb24oc3RyZWFtKXtpZihzdHJlYW0uZ2V0ZGVudHMpc3RyZWFtLmdldGRlbnRzPW51bGw7dHJ5e2lmKHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKXtzdHJlYW0uc3RyZWFtX29wcy5jbG9zZShzdHJlYW0pfX1jYXRjaChlKXt0aHJvdyBlfWZpbmFsbHl7RlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKX19KSxsbHNlZWs6KGZ1bmN0aW9uKHN0cmVhbSxvZmZzZXQsd2hlbmNlKXtpZighc3RyZWFtLnNlZWthYmxlfHwhc3RyZWFtLnN0cmVhbV9vcHMubGxzZWVrKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpfXN0cmVhbS5wb3NpdGlvbj1zdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLG9mZnNldCx3aGVuY2UpO3N0cmVhbS51bmdvdHRlbj1bXTtyZXR1cm4gc3RyZWFtLnBvc2l0aW9ufSkscmVhZDooZnVuY3Rpb24oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKXtpZihsZW5ndGg8MHx8cG9zaXRpb248MCl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKX1pZigoc3RyZWFtLmZsYWdzJjIwOTcxNTUpPT09MSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpfWlmKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpfWlmKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfXZhciBzZWVraW5nPXRydWU7aWYodHlwZW9mIHBvc2l0aW9uPT09InVuZGVmaW5lZCIpe3Bvc2l0aW9uPXN0cmVhbS5wb3NpdGlvbjtzZWVraW5nPWZhbHNlfWVsc2UgaWYoIXN0cmVhbS5zZWVrYWJsZSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKX12YXIgYnl0ZXNSZWFkPXN0cmVhbS5zdHJlYW1fb3BzLnJlYWQoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKTtpZighc2Vla2luZylzdHJlYW0ucG9zaXRpb24rPWJ5dGVzUmVhZDtyZXR1cm4gYnl0ZXNSZWFkfSksd3JpdGU6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3NpdGlvbixjYW5Pd24pe2lmKGxlbmd0aDwwfHxwb3NpdGlvbjwwKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfWlmKChzdHJlYW0uZmxhZ3MmMjA5NzE1NSk9PT0wKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERil9aWYoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUil9aWYoIXN0cmVhbS5zdHJlYW1fb3BzLndyaXRlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpfWlmKHN0cmVhbS5mbGFncyYxMDI0KXtGUy5sbHNlZWsoc3RyZWFtLDAsMil9dmFyIHNlZWtpbmc9dHJ1ZTtpZih0eXBlb2YgcG9zaXRpb249PT0idW5kZWZpbmVkIil7cG9zaXRpb249c3RyZWFtLnBvc2l0aW9uO3NlZWtpbmc9ZmFsc2V9ZWxzZSBpZighc3RyZWFtLnNlZWthYmxlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpfXZhciBieXRlc1dyaXR0ZW49c3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLGNhbk93bik7aWYoIXNlZWtpbmcpc3RyZWFtLnBvc2l0aW9uKz1ieXRlc1dyaXR0ZW47dHJ5e2lmKHN0cmVhbS5wYXRoJiZGUy50cmFja2luZ0RlbGVnYXRlWyJvbldyaXRlVG9GaWxlIl0pRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25Xcml0ZVRvRmlsZSJdKHN0cmVhbS5wYXRoKX1jYXRjaChlKXtjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25Xcml0ZVRvRmlsZSddKCciK3BhdGgrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UpfXJldHVybiBieXRlc1dyaXR0ZW59KSxhbGxvY2F0ZTooZnVuY3Rpb24oc3RyZWFtLG9mZnNldCxsZW5ndGgpe2lmKG9mZnNldDwwfHxsZW5ndGg8PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCl9aWYoKHN0cmVhbS5mbGFncyYyMDk3MTU1KT09PTApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKX1pZighRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpJiYhRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVil9aWYoIXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RTVVBQKX1zdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJlYW0sb2Zmc2V0LGxlbmd0aCl9KSxtbWFwOihmdW5jdGlvbihzdHJlYW0sYnVmZmVyLG9mZnNldCxsZW5ndGgscG9zaXRpb24scHJvdCxmbGFncyl7aWYoKHN0cmVhbS5mbGFncyYyMDk3MTU1KT09PTEpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBQ0NFUyl9aWYoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVil9cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1tYXAoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uLHByb3QsZmxhZ3MpfSksbXN5bmM6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3Mpe2lmKCFzdHJlYW18fCFzdHJlYW0uc3RyZWFtX29wcy5tc3luYyl7cmV0dXJuIDB9cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLm1zeW5jKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxtbWFwRmxhZ3MpfSksbXVubWFwOihmdW5jdGlvbihzdHJlYW0pe3JldHVybiAwfSksaW9jdGw6KGZ1bmN0aW9uKHN0cmVhbSxjbWQsYXJnKXtpZighc3RyZWFtLnN0cmVhbV9vcHMuaW9jdGwpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RUWSl9cmV0dXJuIHN0cmVhbS5zdHJlYW1fb3BzLmlvY3RsKHN0cmVhbSxjbWQsYXJnKX0pLHJlYWRGaWxlOihmdW5jdGlvbihwYXRoLG9wdHMpe29wdHM9b3B0c3x8e307b3B0cy5mbGFncz1vcHRzLmZsYWdzfHwiciI7b3B0cy5lbmNvZGluZz1vcHRzLmVuY29kaW5nfHwiYmluYXJ5IjtpZihvcHRzLmVuY29kaW5nIT09InV0ZjgiJiZvcHRzLmVuY29kaW5nIT09ImJpbmFyeSIpe3Rocm93IG5ldyBFcnJvcignSW52YWxpZCBlbmNvZGluZyB0eXBlICInK29wdHMuZW5jb2RpbmcrJyInKX12YXIgcmV0O3ZhciBzdHJlYW09RlMub3BlbihwYXRoLG9wdHMuZmxhZ3MpO3ZhciBzdGF0PUZTLnN0YXQocGF0aCk7dmFyIGxlbmd0aD1zdGF0LnNpemU7dmFyIGJ1Zj1uZXcgVWludDhBcnJheShsZW5ndGgpO0ZTLnJlYWQoc3RyZWFtLGJ1ZiwwLGxlbmd0aCwwKTtpZihvcHRzLmVuY29kaW5nPT09InV0ZjgiKXtyZXQ9VVRGOEFycmF5VG9TdHJpbmcoYnVmLDApfWVsc2UgaWYob3B0cy5lbmNvZGluZz09PSJiaW5hcnkiKXtyZXQ9YnVmfUZTLmNsb3NlKHN0cmVhbSk7cmV0dXJuIHJldH0pLHdyaXRlRmlsZTooZnVuY3Rpb24ocGF0aCxkYXRhLG9wdHMpe29wdHM9b3B0c3x8e307b3B0cy5mbGFncz1vcHRzLmZsYWdzfHwidyI7b3B0cy5lbmNvZGluZz1vcHRzLmVuY29kaW5nfHwidXRmOCI7aWYob3B0cy5lbmNvZGluZyE9PSJ1dGY4IiYmb3B0cy5lbmNvZGluZyE9PSJiaW5hcnkiKXt0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgdHlwZSAiJytvcHRzLmVuY29kaW5nKyciJyl9dmFyIHN0cmVhbT1GUy5vcGVuKHBhdGgsb3B0cy5mbGFncyxvcHRzLm1vZGUpO2lmKG9wdHMuZW5jb2Rpbmc9PT0idXRmOCIpe3ZhciBidWY9bmV3IFVpbnQ4QXJyYXkobGVuZ3RoQnl0ZXNVVEY4KGRhdGEpKzEpO3ZhciBhY3R1YWxOdW1CeXRlcz1zdHJpbmdUb1VURjhBcnJheShkYXRhLGJ1ZiwwLGJ1Zi5sZW5ndGgpO0ZTLndyaXRlKHN0cmVhbSxidWYsMCxhY3R1YWxOdW1CeXRlcywwLG9wdHMuY2FuT3duKX1lbHNlIGlmKG9wdHMuZW5jb2Rpbmc9PT0iYmluYXJ5Iil7RlMud3JpdGUoc3RyZWFtLGRhdGEsMCxkYXRhLmxlbmd0aCwwLG9wdHMuY2FuT3duKX1GUy5jbG9zZShzdHJlYW0pfSksY3dkOihmdW5jdGlvbigpe3JldHVybiBGUy5jdXJyZW50UGF0aH0pLGNoZGlyOihmdW5jdGlvbihwYXRoKXt2YXIgbG9va3VwPUZTLmxvb2t1cFBhdGgocGF0aCx7Zm9sbG93OnRydWV9KTtpZihsb29rdXAubm9kZT09PW51bGwpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCl9aWYoIUZTLmlzRGlyKGxvb2t1cC5ub2RlLm1vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URElSKX12YXIgZXJyPUZTLm5vZGVQZXJtaXNzaW9ucyhsb29rdXAubm9kZSwieCIpO2lmKGVycil7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKX1GUy5jdXJyZW50UGF0aD1sb29rdXAucGF0aH0pLGNyZWF0ZURlZmF1bHREaXJlY3RvcmllczooZnVuY3Rpb24oKXtGUy5ta2RpcigiL3RtcCIpO0ZTLm1rZGlyKCIvaG9tZSIpO0ZTLm1rZGlyKCIvaG9tZS93ZWJfdXNlciIpfSksY3JlYXRlRGVmYXVsdERldmljZXM6KGZ1bmN0aW9uKCl7RlMubWtkaXIoIi9kZXYiKTtGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsMykse3JlYWQ6KGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSx3cml0ZTooZnVuY3Rpb24oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyl7cmV0dXJuIGxlbmd0aH0pfSk7RlMubWtkZXYoIi9kZXYvbnVsbCIsRlMubWFrZWRldigxLDMpKTtUVFkucmVnaXN0ZXIoRlMubWFrZWRldig1LDApLFRUWS5kZWZhdWx0X3R0eV9vcHMpO1RUWS5yZWdpc3RlcihGUy5tYWtlZGV2KDYsMCksVFRZLmRlZmF1bHRfdHR5MV9vcHMpO0ZTLm1rZGV2KCIvZGV2L3R0eSIsRlMubWFrZWRldig1LDApKTtGUy5ta2RldigiL2Rldi90dHkxIixGUy5tYWtlZGV2KDYsMCkpO3ZhciByYW5kb21fZGV2aWNlO2lmKHR5cGVvZiBjcnlwdG8hPT0idW5kZWZpbmVkIil7dmFyIHJhbmRvbUJ1ZmZlcj1uZXcgVWludDhBcnJheSgxKTtyYW5kb21fZGV2aWNlPShmdW5jdGlvbigpe2NyeXB0by5nZXRSYW5kb21WYWx1ZXMocmFuZG9tQnVmZmVyKTtyZXR1cm4gcmFuZG9tQnVmZmVyWzBdfSl9ZWxzZSBpZihFTlZJUk9OTUVOVF9JU19OT0RFKXtyYW5kb21fZGV2aWNlPShmdW5jdGlvbigpe3JldHVybiByZXF1aXJlKCJjcnlwdG8iKS5yYW5kb21CeXRlcygxKVswXX0pfWVsc2V7cmFuZG9tX2RldmljZT0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKSoyNTZ8MH0pfUZTLmNyZWF0ZURldmljZSgiL2RldiIsInJhbmRvbSIscmFuZG9tX2RldmljZSk7RlMuY3JlYXRlRGV2aWNlKCIvZGV2IiwidXJhbmRvbSIscmFuZG9tX2RldmljZSk7RlMubWtkaXIoIi9kZXYvc2htIik7RlMubWtkaXIoIi9kZXYvc2htL3RtcCIpfSksY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzOihmdW5jdGlvbigpe0ZTLm1rZGlyKCIvcHJvYyIpO0ZTLm1rZGlyKCIvcHJvYy9zZWxmIik7RlMubWtkaXIoIi9wcm9jL3NlbGYvZmQiKTtGUy5tb3VudCh7bW91bnQ6KGZ1bmN0aW9uKCl7dmFyIG5vZGU9RlMuY3JlYXRlTm9kZSgiL3Byb2Mvc2VsZiIsImZkIiwxNjM4NHw1MTEsNzMpO25vZGUubm9kZV9vcHM9e2xvb2t1cDooZnVuY3Rpb24ocGFyZW50LG5hbWUpe3ZhciBmZD0rbmFtZTt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbShmZCk7aWYoIXN0cmVhbSl0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7dmFyIHJldD17cGFyZW50Om51bGwsbW91bnQ6e21vdW50cG9pbnQ6ImZha2UifSxub2RlX29wczp7cmVhZGxpbms6KGZ1bmN0aW9uKCl7cmV0dXJuIHN0cmVhbS5wYXRofSl9fTtyZXQucGFyZW50PXJldDtyZXR1cm4gcmV0fSl9O3JldHVybiBub2RlfSl9LHt9LCIvcHJvYy9zZWxmL2ZkIil9KSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6KGZ1bmN0aW9uKCl7aWYoTW9kdWxlWyJzdGRpbiJdKXtGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRpbiIsTW9kdWxlWyJzdGRpbiJdKX1lbHNle0ZTLnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRpbiIpfWlmKE1vZHVsZVsic3Rkb3V0Il0pe0ZTLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZG91dCIsbnVsbCxNb2R1bGVbInN0ZG91dCJdKX1lbHNle0ZTLnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRvdXQiKX1pZihNb2R1bGVbInN0ZGVyciJdKXtGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRlcnIiLG51bGwsTW9kdWxlWyJzdGRlcnIiXSl9ZWxzZXtGUy5zeW1saW5rKCIvZGV2L3R0eTEiLCIvZGV2L3N0ZGVyciIpfXZhciBzdGRpbj1GUy5vcGVuKCIvZGV2L3N0ZGluIiwiciIpO2Fzc2VydChzdGRpbi5mZD09PTAsImludmFsaWQgaGFuZGxlIGZvciBzdGRpbiAoIitzdGRpbi5mZCsiKSIpO3ZhciBzdGRvdXQ9RlMub3BlbigiL2Rldi9zdGRvdXQiLCJ3Iik7YXNzZXJ0KHN0ZG91dC5mZD09PTEsImludmFsaWQgaGFuZGxlIGZvciBzdGRvdXQgKCIrc3Rkb3V0LmZkKyIpIik7dmFyIHN0ZGVycj1GUy5vcGVuKCIvZGV2L3N0ZGVyciIsInciKTthc3NlcnQoc3RkZXJyLmZkPT09MiwiaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGVyciAoIitzdGRlcnIuZmQrIikiKX0pLGVuc3VyZUVycm5vRXJyb3I6KGZ1bmN0aW9uKCl7aWYoRlMuRXJybm9FcnJvcilyZXR1cm47RlMuRXJybm9FcnJvcj1mdW5jdGlvbiBFcnJub0Vycm9yKGVycm5vLG5vZGUpe3RoaXMubm9kZT1ub2RlO3RoaXMuc2V0RXJybm89KGZ1bmN0aW9uKGVycm5vKXt0aGlzLmVycm5vPWVycm5vO2Zvcih2YXIga2V5IGluIEVSUk5PX0NPREVTKXtpZihFUlJOT19DT0RFU1trZXldPT09ZXJybm8pe3RoaXMuY29kZT1rZXk7YnJlYWt9fX0pO3RoaXMuc2V0RXJybm8oZXJybm8pO3RoaXMubWVzc2FnZT1FUlJOT19NRVNTQUdFU1tlcnJub119O0ZTLkVycm5vRXJyb3IucHJvdG90eXBlPW5ldyBFcnJvcjtGUy5FcnJub0Vycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1GUy5FcnJub0Vycm9yO1tFUlJOT19DT0RFUy5FTk9FTlRdLmZvckVhY2goKGZ1bmN0aW9uKGNvZGUpe0ZTLmdlbmVyaWNFcnJvcnNbY29kZV09bmV3IEZTLkVycm5vRXJyb3IoY29kZSk7RlMuZ2VuZXJpY0Vycm9yc1tjb2RlXS5zdGFjaz0iPGdlbmVyaWMgZXJyb3IsIG5vIHN0YWNrPiJ9KSl9KSxzdGF0aWNJbml0OihmdW5jdGlvbigpe0ZTLmVuc3VyZUVycm5vRXJyb3IoKTtGUy5uYW1lVGFibGU9bmV3IEFycmF5KDQwOTYpO0ZTLm1vdW50KE1FTUZTLHt9LCIvIik7RlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7RlMuY3JlYXRlRGVmYXVsdERldmljZXMoKTtGUy5jcmVhdGVTcGVjaWFsRGlyZWN0b3JpZXMoKTtGUy5maWxlc3lzdGVtcz17Ik1FTUZTIjpNRU1GUywiSURCRlMiOklEQkZTLCJOT0RFRlMiOk5PREVGUywiV09SS0VSRlMiOldPUktFUkZTfX0pLGluaXQ6KGZ1bmN0aW9uKGlucHV0LG91dHB1dCxlcnJvcil7YXNzZXJ0KCFGUy5pbml0LmluaXRpYWxpemVkLCJGUy5pbml0IHdhcyBwcmV2aW91c2x5IGNhbGxlZC4gSWYgeW91IHdhbnQgdG8gaW5pdGlhbGl6ZSBsYXRlciB3aXRoIGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55IGVhcmxpZXIgY2FsbHMgKG5vdGUgdGhhdCBvbmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGNvZGUpIik7RlMuaW5pdC5pbml0aWFsaXplZD10cnVlO0ZTLmVuc3VyZUVycm5vRXJyb3IoKTtNb2R1bGVbInN0ZGluIl09aW5wdXR8fE1vZHVsZVsic3RkaW4iXTtNb2R1bGVbInN0ZG91dCJdPW91dHB1dHx8TW9kdWxlWyJzdGRvdXQiXTtNb2R1bGVbInN0ZGVyciJdPWVycm9yfHxNb2R1bGVbInN0ZGVyciJdO0ZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpfSkscXVpdDooZnVuY3Rpb24oKXtGUy5pbml0LmluaXRpYWxpemVkPWZhbHNlO3ZhciBmZmx1c2g9TW9kdWxlWyJfZmZsdXNoIl07aWYoZmZsdXNoKWZmbHVzaCgwKTtmb3IodmFyIGk9MDtpPEZTLnN0cmVhbXMubGVuZ3RoO2krKyl7dmFyIHN0cmVhbT1GUy5zdHJlYW1zW2ldO2lmKCFzdHJlYW0pe2NvbnRpbnVlfUZTLmNsb3NlKHN0cmVhbSl9fSksZ2V0TW9kZTooZnVuY3Rpb24oY2FuUmVhZCxjYW5Xcml0ZSl7dmFyIG1vZGU9MDtpZihjYW5SZWFkKW1vZGV8PTI5Mnw3MztpZihjYW5Xcml0ZSltb2RlfD0xNDY7cmV0dXJuIG1vZGV9KSxqb2luUGF0aDooZnVuY3Rpb24ocGFydHMsZm9yY2VSZWxhdGl2ZSl7dmFyIHBhdGg9UEFUSC5qb2luLmFwcGx5KG51bGwscGFydHMpO2lmKGZvcmNlUmVsYXRpdmUmJnBhdGhbMF09PSIvIilwYXRoPXBhdGguc3Vic3RyKDEpO3JldHVybiBwYXRofSksYWJzb2x1dGVQYXRoOihmdW5jdGlvbihyZWxhdGl2ZSxiYXNlKXtyZXR1cm4gUEFUSC5yZXNvbHZlKGJhc2UscmVsYXRpdmUpfSksc3RhbmRhcmRpemVQYXRoOihmdW5jdGlvbihwYXRoKXtyZXR1cm4gUEFUSC5ub3JtYWxpemUocGF0aCl9KSxmaW5kT2JqZWN0OihmdW5jdGlvbihwYXRoLGRvbnRSZXNvbHZlTGFzdExpbmspe3ZhciByZXQ9RlMuYW5hbHl6ZVBhdGgocGF0aCxkb250UmVzb2x2ZUxhc3RMaW5rKTtpZihyZXQuZXhpc3RzKXtyZXR1cm4gcmV0Lm9iamVjdH1lbHNle19fX3NldEVyck5vKHJldC5lcnJvcik7cmV0dXJuIG51bGx9fSksYW5hbHl6ZVBhdGg6KGZ1bmN0aW9uKHBhdGgsZG9udFJlc29sdmVMYXN0TGluayl7dHJ5e3ZhciBsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6IWRvbnRSZXNvbHZlTGFzdExpbmt9KTtwYXRoPWxvb2t1cC5wYXRofWNhdGNoKGUpe312YXIgcmV0PXtpc1Jvb3Q6ZmFsc2UsZXhpc3RzOmZhbHNlLGVycm9yOjAsbmFtZTpudWxsLHBhdGg6bnVsbCxvYmplY3Q6bnVsbCxwYXJlbnRFeGlzdHM6ZmFsc2UscGFyZW50UGF0aDpudWxsLHBhcmVudE9iamVjdDpudWxsfTt0cnl7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse3BhcmVudDp0cnVlfSk7cmV0LnBhcmVudEV4aXN0cz10cnVlO3JldC5wYXJlbnRQYXRoPWxvb2t1cC5wYXRoO3JldC5wYXJlbnRPYmplY3Q9bG9va3VwLm5vZGU7cmV0Lm5hbWU9UEFUSC5iYXNlbmFtZShwYXRoKTtsb29rdXA9RlMubG9va3VwUGF0aChwYXRoLHtmb2xsb3c6IWRvbnRSZXNvbHZlTGFzdExpbmt9KTtyZXQuZXhpc3RzPXRydWU7cmV0LnBhdGg9bG9va3VwLnBhdGg7cmV0Lm9iamVjdD1sb29rdXAubm9kZTtyZXQubmFtZT1sb29rdXAubm9kZS5uYW1lO3JldC5pc1Jvb3Q9bG9va3VwLnBhdGg9PT0iLyJ9Y2F0Y2goZSl7cmV0LmVycm9yPWUuZXJybm99cmV0dXJuIHJldH0pLGNyZWF0ZUZvbGRlcjooZnVuY3Rpb24ocGFyZW50LG5hbWUsY2FuUmVhZCxjYW5Xcml0ZSl7dmFyIHBhdGg9UEFUSC5qb2luMih0eXBlb2YgcGFyZW50PT09InN0cmluZyI/cGFyZW50OkZTLmdldFBhdGgocGFyZW50KSxuYW1lKTt2YXIgbW9kZT1GUy5nZXRNb2RlKGNhblJlYWQsY2FuV3JpdGUpO3JldHVybiBGUy5ta2RpcihwYXRoLG1vZGUpfSksY3JlYXRlUGF0aDooZnVuY3Rpb24ocGFyZW50LHBhdGgsY2FuUmVhZCxjYW5Xcml0ZSl7cGFyZW50PXR5cGVvZiBwYXJlbnQ9PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpO3ZhciBwYXJ0cz1wYXRoLnNwbGl0KCIvIikucmV2ZXJzZSgpO3doaWxlKHBhcnRzLmxlbmd0aCl7dmFyIHBhcnQ9cGFydHMucG9wKCk7aWYoIXBhcnQpY29udGludWU7dmFyIGN1cnJlbnQ9UEFUSC5qb2luMihwYXJlbnQscGFydCk7dHJ5e0ZTLm1rZGlyKGN1cnJlbnQpfWNhdGNoKGUpe31wYXJlbnQ9Y3VycmVudH1yZXR1cm4gY3VycmVudH0pLGNyZWF0ZUZpbGU6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLHByb3BlcnRpZXMsY2FuUmVhZCxjYW5Xcml0ZSl7dmFyIHBhdGg9UEFUSC5qb2luMih0eXBlb2YgcGFyZW50PT09InN0cmluZyI/cGFyZW50OkZTLmdldFBhdGgocGFyZW50KSxuYW1lKTt2YXIgbW9kZT1GUy5nZXRNb2RlKGNhblJlYWQsY2FuV3JpdGUpO3JldHVybiBGUy5jcmVhdGUocGF0aCxtb2RlKX0pLGNyZWF0ZURhdGFGaWxlOihmdW5jdGlvbihwYXJlbnQsbmFtZSxkYXRhLGNhblJlYWQsY2FuV3JpdGUsY2FuT3duKXt2YXIgcGF0aD1uYW1lP1BBVEguam9pbjIodHlwZW9mIHBhcmVudD09PSJzdHJpbmciP3BhcmVudDpGUy5nZXRQYXRoKHBhcmVudCksbmFtZSk6cGFyZW50O3ZhciBtb2RlPUZTLmdldE1vZGUoY2FuUmVhZCxjYW5Xcml0ZSk7dmFyIG5vZGU9RlMuY3JlYXRlKHBhdGgsbW9kZSk7aWYoZGF0YSl7aWYodHlwZW9mIGRhdGE9PT0ic3RyaW5nIil7dmFyIGFycj1uZXcgQXJyYXkoZGF0YS5sZW5ndGgpO2Zvcih2YXIgaT0wLGxlbj1kYXRhLmxlbmd0aDtpPGxlbjsrK2kpYXJyW2ldPWRhdGEuY2hhckNvZGVBdChpKTtkYXRhPWFycn1GUy5jaG1vZChub2RlLG1vZGV8MTQ2KTt2YXIgc3RyZWFtPUZTLm9wZW4obm9kZSwidyIpO0ZTLndyaXRlKHN0cmVhbSxkYXRhLDAsZGF0YS5sZW5ndGgsMCxjYW5Pd24pO0ZTLmNsb3NlKHN0cmVhbSk7RlMuY2htb2Qobm9kZSxtb2RlKX1yZXR1cm4gbm9kZX0pLGNyZWF0ZURldmljZTooZnVuY3Rpb24ocGFyZW50LG5hbWUsaW5wdXQsb3V0cHV0KXt2YXIgcGF0aD1QQVRILmpvaW4yKHR5cGVvZiBwYXJlbnQ9PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpLG5hbWUpO3ZhciBtb2RlPUZTLmdldE1vZGUoISFpbnB1dCwhIW91dHB1dCk7aWYoIUZTLmNyZWF0ZURldmljZS5tYWpvcilGUy5jcmVhdGVEZXZpY2UubWFqb3I9NjQ7dmFyIGRldj1GUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLDApO0ZTLnJlZ2lzdGVyRGV2aWNlKGRldix7b3BlbjooZnVuY3Rpb24oc3RyZWFtKXtzdHJlYW0uc2Vla2FibGU9ZmFsc2V9KSxjbG9zZTooZnVuY3Rpb24oc3RyZWFtKXtpZihvdXRwdXQmJm91dHB1dC5idWZmZXImJm91dHB1dC5idWZmZXIubGVuZ3RoKXtvdXRwdXQoMTApfX0pLHJlYWQ6KGZ1bmN0aW9uKHN0cmVhbSxidWZmZXIsb2Zmc2V0LGxlbmd0aCxwb3Mpe3ZhciBieXRlc1JlYWQ9MDtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe3ZhciByZXN1bHQ7dHJ5e3Jlc3VsdD1pbnB1dCgpfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyl9aWYocmVzdWx0PT09dW5kZWZpbmVkJiZieXRlc1JlYWQ9PT0wKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pfWlmKHJlc3VsdD09PW51bGx8fHJlc3VsdD09PXVuZGVmaW5lZClicmVhaztieXRlc1JlYWQrKztidWZmZXJbb2Zmc2V0K2ldPXJlc3VsdH1pZihieXRlc1JlYWQpe3N0cmVhbS5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpfXJldHVybiBieXRlc1JlYWR9KSx3cml0ZTooZnVuY3Rpb24oc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvcyl7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt0cnl7b3V0cHV0KGJ1ZmZlcltvZmZzZXQraV0pfWNhdGNoKGUpe3Rocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTyl9fWlmKGxlbmd0aCl7c3RyZWFtLm5vZGUudGltZXN0YW1wPURhdGUubm93KCl9cmV0dXJuIGl9KX0pO3JldHVybiBGUy5ta2RldihwYXRoLG1vZGUsZGV2KX0pLGNyZWF0ZUxpbms6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLHRhcmdldCxjYW5SZWFkLGNhbldyaXRlKXt2YXIgcGF0aD1QQVRILmpvaW4yKHR5cGVvZiBwYXJlbnQ9PT0ic3RyaW5nIj9wYXJlbnQ6RlMuZ2V0UGF0aChwYXJlbnQpLG5hbWUpO3JldHVybiBGUy5zeW1saW5rKHRhcmdldCxwYXRoKX0pLGZvcmNlTG9hZEZpbGU6KGZ1bmN0aW9uKG9iail7aWYob2JqLmlzRGV2aWNlfHxvYmouaXNGb2xkZXJ8fG9iai5saW5rfHxvYmouY29udGVudHMpcmV0dXJuIHRydWU7dmFyIHN1Y2Nlc3M9dHJ1ZTtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3QhPT0idW5kZWZpbmVkIil7dGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKX1lbHNlIGlmKE1vZHVsZVsicmVhZCJdKXt0cnl7b2JqLmNvbnRlbnRzPWludEFycmF5RnJvbVN0cmluZyhNb2R1bGVbInJlYWQiXShvYmoudXJsKSx0cnVlKTtvYmoudXNlZEJ5dGVzPW9iai5jb250ZW50cy5sZW5ndGh9Y2F0Y2goZSl7c3VjY2Vzcz1mYWxzZX19ZWxzZXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LiIpfWlmKCFzdWNjZXNzKV9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTyk7cmV0dXJuIHN1Y2Nlc3N9KSxjcmVhdGVMYXp5RmlsZTooZnVuY3Rpb24ocGFyZW50LG5hbWUsdXJsLGNhblJlYWQsY2FuV3JpdGUpe2Z1bmN0aW9uIExhenlVaW50OEFycmF5KCl7dGhpcy5sZW5ndGhLbm93bj1mYWxzZTt0aGlzLmNodW5rcz1bXX1MYXp5VWludDhBcnJheS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIExhenlVaW50OEFycmF5X2dldChpZHgpe2lmKGlkeD50aGlzLmxlbmd0aC0xfHxpZHg8MCl7cmV0dXJuIHVuZGVmaW5lZH12YXIgY2h1bmtPZmZzZXQ9aWR4JXRoaXMuY2h1bmtTaXplO3ZhciBjaHVua051bT1pZHgvdGhpcy5jaHVua1NpemV8MDtyZXR1cm4gdGhpcy5nZXR0ZXIoY2h1bmtOdW0pW2NodW5rT2Zmc2V0XX07TGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLnNldERhdGFHZXR0ZXI9ZnVuY3Rpb24gTGF6eVVpbnQ4QXJyYXlfc2V0RGF0YUdldHRlcihnZXR0ZXIpe3RoaXMuZ2V0dGVyPWdldHRlcn07TGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoPWZ1bmN0aW9uIExhenlVaW50OEFycmF5X2NhY2hlTGVuZ3RoKCl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkhFQUQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7aWYoISh4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8MzAwfHx4aHIuc3RhdHVzPT09MzA0KSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIit1cmwrIi4gU3RhdHVzOiAiK3hoci5zdGF0dXMpO3ZhciBkYXRhbGVuZ3RoPU51bWJlcih4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikpO3ZhciBoZWFkZXI7dmFyIGhhc0J5dGVTZXJ2aW5nPShoZWFkZXI9eGhyLmdldFJlc3BvbnNlSGVhZGVyKCJBY2NlcHQtUmFuZ2VzIikpJiZoZWFkZXI9PT0iYnl0ZXMiO3ZhciB1c2VzR3ppcD0oaGVhZGVyPXhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1FbmNvZGluZyIpKSYmaGVhZGVyPT09Imd6aXAiO3ZhciBjaHVua1NpemU9MTAyNCoxMDI0O2lmKCFoYXNCeXRlU2VydmluZyljaHVua1NpemU9ZGF0YWxlbmd0aDt2YXIgZG9YSFI9KGZ1bmN0aW9uKGZyb20sdG8pe2lmKGZyb20+dG8pdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiK2Zyb20rIiwgIit0bysiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7aWYodG8+ZGF0YWxlbmd0aC0xKXRocm93IG5ldyBFcnJvcigib25seSAiK2RhdGFsZW5ndGgrIiBieXRlcyBhdmFpbGFibGUhIHByb2dyYW1tZXIgZXJyb3IhIik7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3Q7eGhyLm9wZW4oIkdFVCIsdXJsLGZhbHNlKTtpZihkYXRhbGVuZ3RoIT09Y2h1bmtTaXplKXhoci5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsImJ5dGVzPSIrZnJvbSsiLSIrdG8pO2lmKHR5cGVvZiBVaW50OEFycmF5IT0idW5kZWZpbmVkIil4aHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7aWYoeGhyLm92ZXJyaWRlTWltZVR5cGUpe3hoci5vdmVycmlkZU1pbWVUeXBlKCJ0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkIil9eGhyLnNlbmQobnVsbCk7aWYoISh4aHIuc3RhdHVzPj0yMDAmJnhoci5zdGF0dXM8MzAwfHx4aHIuc3RhdHVzPT09MzA0KSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIit1cmwrIi4gU3RhdHVzOiAiK3hoci5zdGF0dXMpO2lmKHhoci5yZXNwb25zZSE9PXVuZGVmaW5lZCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZXx8W10pfWVsc2V7cmV0dXJuIGludEFycmF5RnJvbVN0cmluZyh4aHIucmVzcG9uc2VUZXh0fHwiIix0cnVlKX19KTt2YXIgbGF6eUFycmF5PXRoaXM7bGF6eUFycmF5LnNldERhdGFHZXR0ZXIoKGZ1bmN0aW9uKGNodW5rTnVtKXt2YXIgc3RhcnQ9Y2h1bmtOdW0qY2h1bmtTaXplO3ZhciBlbmQ9KGNodW5rTnVtKzEpKmNodW5rU2l6ZS0xO2VuZD1NYXRoLm1pbihlbmQsZGF0YWxlbmd0aC0xKTtpZih0eXBlb2YgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV09PT0idW5kZWZpbmVkIil7bGF6eUFycmF5LmNodW5rc1tjaHVua051bV09ZG9YSFIoc3RhcnQsZW5kKX1pZih0eXBlb2YgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV09PT0idW5kZWZpbmVkIil0aHJvdyBuZXcgRXJyb3IoImRvWEhSIGZhaWxlZCEiKTtyZXR1cm4gbGF6eUFycmF5LmNodW5rc1tjaHVua051bV19KSk7aWYodXNlc0d6aXB8fCFkYXRhbGVuZ3RoKXtjaHVua1NpemU9ZGF0YWxlbmd0aD0xO2RhdGFsZW5ndGg9dGhpcy5nZXR0ZXIoMCkubGVuZ3RoO2NodW5rU2l6ZT1kYXRhbGVuZ3RoO2NvbnNvbGUubG9nKCJMYXp5RmlsZXMgb24gZ3ppcCBmb3JjZXMgZG93bmxvYWQgb2YgdGhlIHdob2xlIGZpbGUgd2hlbiBsZW5ndGggaXMgYWNjZXNzZWQiKX10aGlzLl9sZW5ndGg9ZGF0YWxlbmd0aDt0aGlzLl9jaHVua1NpemU9Y2h1bmtTaXplO3RoaXMubGVuZ3RoS25vd249dHJ1ZX07aWYodHlwZW9mIFhNTEh0dHBSZXF1ZXN0IT09InVuZGVmaW5lZCIpe2lmKCFFTlZJUk9OTUVOVF9JU19XT1JLRVIpdGhyb3ciQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyI7dmFyIGxhenlBcnJheT1uZXcgTGF6eVVpbnQ4QXJyYXk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobGF6eUFycmF5LHtsZW5ndGg6e2dldDooZnVuY3Rpb24oKXtpZighdGhpcy5sZW5ndGhLbm93bil7dGhpcy5jYWNoZUxlbmd0aCgpfXJldHVybiB0aGlzLl9sZW5ndGh9KX0sY2h1bmtTaXplOntnZXQ6KGZ1bmN0aW9uKCl7aWYoIXRoaXMubGVuZ3RoS25vd24pe3RoaXMuY2FjaGVMZW5ndGgoKX1yZXR1cm4gdGhpcy5fY2h1bmtTaXplfSl9fSk7dmFyIHByb3BlcnRpZXM9e2lzRGV2aWNlOmZhbHNlLGNvbnRlbnRzOmxhenlBcnJheX19ZWxzZXt2YXIgcHJvcGVydGllcz17aXNEZXZpY2U6ZmFsc2UsdXJsOnVybH19dmFyIG5vZGU9RlMuY3JlYXRlRmlsZShwYXJlbnQsbmFtZSxwcm9wZXJ0aWVzLGNhblJlYWQsY2FuV3JpdGUpO2lmKHByb3BlcnRpZXMuY29udGVudHMpe25vZGUuY29udGVudHM9cHJvcGVydGllcy5jb250ZW50c31lbHNlIGlmKHByb3BlcnRpZXMudXJsKXtub2RlLmNvbnRlbnRzPW51bGw7bm9kZS51cmw9cHJvcGVydGllcy51cmx9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobm9kZSx7dXNlZEJ5dGVzOntnZXQ6KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudHMubGVuZ3RofSl9fSk7dmFyIHN0cmVhbV9vcHM9e307dmFyIGtleXM9T2JqZWN0LmtleXMobm9kZS5zdHJlYW1fb3BzKTtrZXlzLmZvckVhY2goKGZ1bmN0aW9uKGtleSl7dmFyIGZuPW5vZGUuc3RyZWFtX29wc1trZXldO3N0cmVhbV9vcHNba2V5XT1mdW5jdGlvbiBmb3JjZUxvYWRMYXp5RmlsZSgpe2lmKCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKXt0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pfXJldHVybiBmbi5hcHBseShudWxsLGFyZ3VtZW50cyl9fSkpO3N0cmVhbV9vcHMucmVhZD1mdW5jdGlvbiBzdHJlYW1fb3BzX3JlYWQoc3RyZWFtLGJ1ZmZlcixvZmZzZXQsbGVuZ3RoLHBvc2l0aW9uKXtpZighRlMuZm9yY2VMb2FkRmlsZShub2RlKSl7dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKX12YXIgY29udGVudHM9c3RyZWFtLm5vZGUuY29udGVudHM7aWYocG9zaXRpb24+PWNvbnRlbnRzLmxlbmd0aClyZXR1cm4gMDt2YXIgc2l6ZT1NYXRoLm1pbihjb250ZW50cy5sZW5ndGgtcG9zaXRpb24sbGVuZ3RoKTthc3NlcnQoc2l6ZT49MCk7aWYoY29udGVudHMuc2xpY2Upe2Zvcih2YXIgaT0wO2k8c2l6ZTtpKyspe2J1ZmZlcltvZmZzZXQraV09Y29udGVudHNbcG9zaXRpb24raV19fWVsc2V7Zm9yKHZhciBpPTA7aTxzaXplO2krKyl7YnVmZmVyW29mZnNldCtpXT1jb250ZW50cy5nZXQocG9zaXRpb24raSl9fXJldHVybiBzaXplfTtub2RlLnN0cmVhbV9vcHM9c3RyZWFtX29wcztyZXR1cm4gbm9kZX0pLGNyZWF0ZVByZWxvYWRlZEZpbGU6KGZ1bmN0aW9uKHBhcmVudCxuYW1lLHVybCxjYW5SZWFkLGNhbldyaXRlLG9ubG9hZCxvbmVycm9yLGRvbnRDcmVhdGVGaWxlLGNhbk93bixwcmVGaW5pc2gpe0Jyb3dzZXIuaW5pdCgpO3ZhciBmdWxsbmFtZT1uYW1lP1BBVEgucmVzb2x2ZShQQVRILmpvaW4yKHBhcmVudCxuYW1lKSk6cGFyZW50O3ZhciBkZXA9Z2V0VW5pcXVlUnVuRGVwZW5kZW5jeSgiY3AgIitmdWxsbmFtZSk7ZnVuY3Rpb24gcHJvY2Vzc0RhdGEoYnl0ZUFycmF5KXtmdW5jdGlvbiBmaW5pc2goYnl0ZUFycmF5KXtpZihwcmVGaW5pc2gpcHJlRmluaXNoKCk7aWYoIWRvbnRDcmVhdGVGaWxlKXtGUy5jcmVhdGVEYXRhRmlsZShwYXJlbnQsbmFtZSxieXRlQXJyYXksY2FuUmVhZCxjYW5Xcml0ZSxjYW5Pd24pfWlmKG9ubG9hZClvbmxvYWQoKTtyZW1vdmVSdW5EZXBlbmRlbmN5KGRlcCl9dmFyIGhhbmRsZWQ9ZmFsc2U7TW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdLmZvckVhY2goKGZ1bmN0aW9uKHBsdWdpbil7aWYoaGFuZGxlZClyZXR1cm47aWYocGx1Z2luWyJjYW5IYW5kbGUiXShmdWxsbmFtZSkpe3BsdWdpblsiaGFuZGxlIl0oYnl0ZUFycmF5LGZ1bGxuYW1lLGZpbmlzaCwoZnVuY3Rpb24oKXtpZihvbmVycm9yKW9uZXJyb3IoKTtyZW1vdmVSdW5EZXBlbmRlbmN5KGRlcCl9KSk7aGFuZGxlZD10cnVlfX0pKTtpZighaGFuZGxlZClmaW5pc2goYnl0ZUFycmF5KX1hZGRSdW5EZXBlbmRlbmN5KGRlcCk7aWYodHlwZW9mIHVybD09InN0cmluZyIpe0Jyb3dzZXIuYXN5bmNMb2FkKHVybCwoZnVuY3Rpb24oYnl0ZUFycmF5KXtwcm9jZXNzRGF0YShieXRlQXJyYXkpfSksb25lcnJvcil9ZWxzZXtwcm9jZXNzRGF0YSh1cmwpfX0pLGluZGV4ZWREQjooZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmluZGV4ZWREQnx8d2luZG93Lm1vekluZGV4ZWREQnx8d2luZG93LndlYmtpdEluZGV4ZWREQnx8d2luZG93Lm1zSW5kZXhlZERCfSksREJfTkFNRTooZnVuY3Rpb24oKXtyZXR1cm4iRU1fRlNfIit3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9KSxEQl9WRVJTSU9OOjIwLERCX1NUT1JFX05BTUU6IkZJTEVfREFUQSIsc2F2ZUZpbGVzVG9EQjooZnVuY3Rpb24ocGF0aHMsb25sb2FkLG9uZXJyb3Ipe29ubG9hZD1vbmxvYWR8fChmdW5jdGlvbigpe30pO29uZXJyb3I9b25lcnJvcnx8KGZ1bmN0aW9uKCl7fSk7dmFyIGluZGV4ZWREQj1GUy5pbmRleGVkREIoKTt0cnl7dmFyIG9wZW5SZXF1ZXN0PWluZGV4ZWREQi5vcGVuKEZTLkRCX05BTUUoKSxGUy5EQl9WRVJTSU9OKX1jYXRjaChlKXtyZXR1cm4gb25lcnJvcihlKX1vcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24gb3BlblJlcXVlc3Rfb251cGdyYWRlbmVlZGVkKCl7Y29uc29sZS5sb2coImNyZWF0aW5nIGRiIik7dmFyIGRiPW9wZW5SZXF1ZXN0LnJlc3VsdDtkYi5jcmVhdGVPYmplY3RTdG9yZShGUy5EQl9TVE9SRV9OQU1FKX07b3BlblJlcXVlc3Qub25zdWNjZXNzPWZ1bmN0aW9uIG9wZW5SZXF1ZXN0X29uc3VjY2Vzcygpe3ZhciBkYj1vcGVuUmVxdWVzdC5yZXN1bHQ7dmFyIHRyYW5zYWN0aW9uPWRiLnRyYW5zYWN0aW9uKFtGUy5EQl9TVE9SRV9OQU1FXSwicmVhZHdyaXRlIik7dmFyIGZpbGVzPXRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKEZTLkRCX1NUT1JFX05BTUUpO3ZhciBvaz0wLGZhaWw9MCx0b3RhbD1wYXRocy5sZW5ndGg7ZnVuY3Rpb24gZmluaXNoKCl7aWYoZmFpbD09MClvbmxvYWQoKTtlbHNlIG9uZXJyb3IoKX1wYXRocy5mb3JFYWNoKChmdW5jdGlvbihwYXRoKXt2YXIgcHV0UmVxdWVzdD1maWxlcy5wdXQoRlMuYW5hbHl6ZVBhdGgocGF0aCkub2JqZWN0LmNvbnRlbnRzLHBhdGgpO3B1dFJlcXVlc3Qub25zdWNjZXNzPWZ1bmN0aW9uIHB1dFJlcXVlc3Rfb25zdWNjZXNzKCl7b2srKztpZihvaytmYWlsPT10b3RhbClmaW5pc2goKX07cHV0UmVxdWVzdC5vbmVycm9yPWZ1bmN0aW9uIHB1dFJlcXVlc3Rfb25lcnJvcigpe2ZhaWwrKztpZihvaytmYWlsPT10b3RhbClmaW5pc2goKX19KSk7dHJhbnNhY3Rpb24ub25lcnJvcj1vbmVycm9yfTtvcGVuUmVxdWVzdC5vbmVycm9yPW9uZXJyb3J9KSxsb2FkRmlsZXNGcm9tREI6KGZ1bmN0aW9uKHBhdGhzLG9ubG9hZCxvbmVycm9yKXtvbmxvYWQ9b25sb2FkfHwoZnVuY3Rpb24oKXt9KTtvbmVycm9yPW9uZXJyb3J8fChmdW5jdGlvbigpe30pO3ZhciBpbmRleGVkREI9RlMuaW5kZXhlZERCKCk7dHJ5e3ZhciBvcGVuUmVxdWVzdD1pbmRleGVkREIub3BlbihGUy5EQl9OQU1FKCksRlMuREJfVkVSU0lPTil9Y2F0Y2goZSl7cmV0dXJuIG9uZXJyb3IoZSl9b3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkPW9uZXJyb3I7b3BlblJlcXVlc3Qub25zdWNjZXNzPWZ1bmN0aW9uIG9wZW5SZXF1ZXN0X29uc3VjY2Vzcygpe3ZhciBkYj1vcGVuUmVxdWVzdC5yZXN1bHQ7dHJ5e3ZhciB0cmFuc2FjdGlvbj1kYi50cmFuc2FjdGlvbihbRlMuREJfU1RPUkVfTkFNRV0sInJlYWRvbmx5Iil9Y2F0Y2goZSl7b25lcnJvcihlKTtyZXR1cm59dmFyIGZpbGVzPXRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKEZTLkRCX1NUT1JFX05BTUUpO3ZhciBvaz0wLGZhaWw9MCx0b3RhbD1wYXRocy5sZW5ndGg7ZnVuY3Rpb24gZmluaXNoKCl7aWYoZmFpbD09MClvbmxvYWQoKTtlbHNlIG9uZXJyb3IoKX1wYXRocy5mb3JFYWNoKChmdW5jdGlvbihwYXRoKXt2YXIgZ2V0UmVxdWVzdD1maWxlcy5nZXQocGF0aCk7Z2V0UmVxdWVzdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24gZ2V0UmVxdWVzdF9vbnN1Y2Nlc3MoKXtpZihGUy5hbmFseXplUGF0aChwYXRoKS5leGlzdHMpe0ZTLnVubGluayhwYXRoKX1GUy5jcmVhdGVEYXRhRmlsZShQQVRILmRpcm5hbWUocGF0aCksUEFUSC5iYXNlbmFtZShwYXRoKSxnZXRSZXF1ZXN0LnJlc3VsdCx0cnVlLHRydWUsdHJ1ZSk7b2srKztpZihvaytmYWlsPT10b3RhbClmaW5pc2goKX07Z2V0UmVxdWVzdC5vbmVycm9yPWZ1bmN0aW9uIGdldFJlcXVlc3Rfb25lcnJvcigpe2ZhaWwrKztpZihvaytmYWlsPT10b3RhbClmaW5pc2goKX19KSk7dHJhbnNhY3Rpb24ub25lcnJvcj1vbmVycm9yfTtvcGVuUmVxdWVzdC5vbmVycm9yPW9uZXJyb3J9KX07dmFyIFNZU0NBTExTPXtERUZBVUxUX1BPTExNQVNLOjUsbWFwcGluZ3M6e30sdW1hc2s6NTExLGNhbGN1bGF0ZUF0OihmdW5jdGlvbihkaXJmZCxwYXRoKXtpZihwYXRoWzBdIT09Ii8iKXt2YXIgZGlyO2lmKGRpcmZkPT09LTEwMCl7ZGlyPUZTLmN3ZCgpfWVsc2V7dmFyIGRpcnN0cmVhbT1GUy5nZXRTdHJlYW0oZGlyZmQpO2lmKCFkaXJzdHJlYW0pdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpO2Rpcj1kaXJzdHJlYW0ucGF0aH1wYXRoPVBBVEguam9pbjIoZGlyLHBhdGgpfXJldHVybiBwYXRofSksZG9TdGF0OihmdW5jdGlvbihmdW5jLHBhdGgsYnVmKXt0cnl7dmFyIHN0YXQ9ZnVuYyhwYXRoKX1jYXRjaChlKXtpZihlJiZlLm5vZGUmJlBBVEgubm9ybWFsaXplKHBhdGgpIT09UEFUSC5ub3JtYWxpemUoRlMuZ2V0UGF0aChlLm5vZGUpKSl7cmV0dXJuLUVSUk5PX0NPREVTLkVOT1RESVJ9dGhyb3cgZX1IRUFQMzJbYnVmPj4yXT1zdGF0LmRldjtIRUFQMzJbYnVmKzQ+PjJdPTA7SEVBUDMyW2J1Zis4Pj4yXT1zdGF0LmlubztIRUFQMzJbYnVmKzEyPj4yXT1zdGF0Lm1vZGU7SEVBUDMyW2J1ZisxNj4+Ml09c3RhdC5ubGluaztIRUFQMzJbYnVmKzIwPj4yXT1zdGF0LnVpZDtIRUFQMzJbYnVmKzI0Pj4yXT1zdGF0LmdpZDtIRUFQMzJbYnVmKzI4Pj4yXT1zdGF0LnJkZXY7SEVBUDMyW2J1ZiszMj4+Ml09MDtIRUFQMzJbYnVmKzM2Pj4yXT1zdGF0LnNpemU7SEVBUDMyW2J1Zis0MD4+Ml09NDA5NjtIRUFQMzJbYnVmKzQ0Pj4yXT1zdGF0LmJsb2NrcztIRUFQMzJbYnVmKzQ4Pj4yXT1zdGF0LmF0aW1lLmdldFRpbWUoKS8xZTN8MDtIRUFQMzJbYnVmKzUyPj4yXT0wO0hFQVAzMltidWYrNTY+PjJdPXN0YXQubXRpbWUuZ2V0VGltZSgpLzFlM3wwO0hFQVAzMltidWYrNjA+PjJdPTA7SEVBUDMyW2J1Zis2ND4+Ml09c3RhdC5jdGltZS5nZXRUaW1lKCkvMWUzfDA7SEVBUDMyW2J1Zis2OD4+Ml09MDtIRUFQMzJbYnVmKzcyPj4yXT1zdGF0LmlubztyZXR1cm4gMH0pLGRvTXN5bmM6KGZ1bmN0aW9uKGFkZHIsc3RyZWFtLGxlbixmbGFncyl7dmFyIGJ1ZmZlcj1uZXcgVWludDhBcnJheShIRUFQVTguc3ViYXJyYXkoYWRkcixhZGRyK2xlbikpO0ZTLm1zeW5jKHN0cmVhbSxidWZmZXIsMCxsZW4sZmxhZ3MpfSksZG9Na2RpcjooZnVuY3Rpb24ocGF0aCxtb2RlKXtwYXRoPVBBVEgubm9ybWFsaXplKHBhdGgpO2lmKHBhdGhbcGF0aC5sZW5ndGgtMV09PT0iLyIpcGF0aD1wYXRoLnN1YnN0cigwLHBhdGgubGVuZ3RoLTEpO0ZTLm1rZGlyKHBhdGgsbW9kZSwwKTtyZXR1cm4gMH0pLGRvTWtub2Q6KGZ1bmN0aW9uKHBhdGgsbW9kZSxkZXYpe3N3aXRjaChtb2RlJjYxNDQwKXtjYXNlIDMyNzY4OmNhc2UgODE5MjpjYXNlIDI0NTc2OmNhc2UgNDA5NjpjYXNlIDQ5MTUyOmJyZWFrO2RlZmF1bHQ6cmV0dXJuLUVSUk5PX0NPREVTLkVJTlZBTH1GUy5ta25vZChwYXRoLG1vZGUsZGV2KTtyZXR1cm4gMH0pLGRvUmVhZGxpbms6KGZ1bmN0aW9uKHBhdGgsYnVmLGJ1ZnNpemUpe2lmKGJ1ZnNpemU8PTApcmV0dXJuLUVSUk5PX0NPREVTLkVJTlZBTDt2YXIgcmV0PUZTLnJlYWRsaW5rKHBhdGgpO3ZhciBsZW49TWF0aC5taW4oYnVmc2l6ZSxsZW5ndGhCeXRlc1VURjgocmV0KSk7dmFyIGVuZENoYXI9SEVBUDhbYnVmK2xlbl07c3RyaW5nVG9VVEY4KHJldCxidWYsYnVmc2l6ZSsxKTtIRUFQOFtidWYrbGVuXT1lbmRDaGFyO3JldHVybiBsZW59KSxkb0FjY2VzczooZnVuY3Rpb24ocGF0aCxhbW9kZSl7aWYoYW1vZGUmfjcpe3JldHVybi1FUlJOT19DT0RFUy5FSU5WQUx9dmFyIG5vZGU7dmFyIGxvb2t1cD1GUy5sb29rdXBQYXRoKHBhdGgse2ZvbGxvdzp0cnVlfSk7bm9kZT1sb29rdXAubm9kZTt2YXIgcGVybXM9IiI7aWYoYW1vZGUmNClwZXJtcys9InIiO2lmKGFtb2RlJjIpcGVybXMrPSJ3IjtpZihhbW9kZSYxKXBlcm1zKz0ieCI7aWYocGVybXMmJkZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLHBlcm1zKSl7cmV0dXJuLUVSUk5PX0NPREVTLkVBQ0NFU31yZXR1cm4gMH0pLGRvRHVwOihmdW5jdGlvbihwYXRoLGZsYWdzLHN1Z2dlc3RGRCl7dmFyIHN1Z2dlc3Q9RlMuZ2V0U3RyZWFtKHN1Z2dlc3RGRCk7aWYoc3VnZ2VzdClGUy5jbG9zZShzdWdnZXN0KTtyZXR1cm4gRlMub3BlbihwYXRoLGZsYWdzLDAsc3VnZ2VzdEZELHN1Z2dlc3RGRCkuZmR9KSxkb1JlYWR2OihmdW5jdGlvbihzdHJlYW0saW92LGlvdmNudCxvZmZzZXQpe3ZhciByZXQ9MDtmb3IodmFyIGk9MDtpPGlvdmNudDtpKyspe3ZhciBwdHI9SEVBUDMyW2lvditpKjg+PjJdO3ZhciBsZW49SEVBUDMyW2lvdisoaSo4KzQpPj4yXTt2YXIgY3Vycj1GUy5yZWFkKHN0cmVhbSxIRUFQOCxwdHIsbGVuLG9mZnNldCk7aWYoY3VycjwwKXJldHVybi0xO3JldCs9Y3VycjtpZihjdXJyPGxlbilicmVha31yZXR1cm4gcmV0fSksZG9Xcml0ZXY6KGZ1bmN0aW9uKHN0cmVhbSxpb3YsaW92Y250LG9mZnNldCl7dmFyIHJldD0wO2Zvcih2YXIgaT0wO2k8aW92Y250O2krKyl7dmFyIHB0cj1IRUFQMzJbaW92K2kqOD4+Ml07dmFyIGxlbj1IRUFQMzJbaW92KyhpKjgrNCk+PjJdO3ZhciBjdXJyPUZTLndyaXRlKHN0cmVhbSxIRUFQOCxwdHIsbGVuLG9mZnNldCk7aWYoY3VycjwwKXJldHVybi0xO3JldCs9Y3Vycn1yZXR1cm4gcmV0fSksdmFyYXJnczowLGdldDooZnVuY3Rpb24odmFyYXJncyl7U1lTQ0FMTFMudmFyYXJncys9NDt2YXIgcmV0PUhFQVAzMltTWVNDQUxMUy52YXJhcmdzLTQ+PjJdO3JldHVybiByZXR9KSxnZXRTdHI6KGZ1bmN0aW9uKCl7dmFyIHJldD1Qb2ludGVyX3N0cmluZ2lmeShTWVNDQUxMUy5nZXQoKSk7cmV0dXJuIHJldH0pLGdldFN0cmVhbUZyb21GRDooZnVuY3Rpb24oKXt2YXIgc3RyZWFtPUZTLmdldFN0cmVhbShTWVNDQUxMUy5nZXQoKSk7aWYoIXN0cmVhbSl0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7cmV0dXJuIHN0cmVhbX0pLGdldFNvY2tldEZyb21GRDooZnVuY3Rpb24oKXt2YXIgc29ja2V0PVNPQ0tGUy5nZXRTb2NrZXQoU1lTQ0FMTFMuZ2V0KCkpO2lmKCFzb2NrZXQpdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpO3JldHVybiBzb2NrZXR9KSxnZXRTb2NrZXRBZGRyZXNzOihmdW5jdGlvbihhbGxvd051bGwpe3ZhciBhZGRycD1TWVNDQUxMUy5nZXQoKSxhZGRybGVuPVNZU0NBTExTLmdldCgpO2lmKGFsbG93TnVsbCYmYWRkcnA9PT0wKXJldHVybiBudWxsO3ZhciBpbmZvPV9fcmVhZF9zb2NrYWRkcihhZGRycCxhZGRybGVuKTtpZihpbmZvLmVycm5vKXRocm93IG5ldyBGUy5FcnJub0Vycm9yKGluZm8uZXJybm8pO2luZm8uYWRkcj1ETlMubG9va3VwX2FkZHIoaW5mby5hZGRyKXx8aW5mby5hZGRyO3JldHVybiBpbmZvfSksZ2V0NjQ6KGZ1bmN0aW9uKCl7dmFyIGxvdz1TWVNDQUxMUy5nZXQoKSxoaWdoPVNZU0NBTExTLmdldCgpO2lmKGxvdz49MClhc3NlcnQoaGlnaD09PTApO2Vsc2UgYXNzZXJ0KGhpZ2g9PT0tMSk7cmV0dXJuIGxvd30pLGdldFplcm86KGZ1bmN0aW9uKCl7YXNzZXJ0KFNZU0NBTExTLmdldCgpPT09MCl9KX07ZnVuY3Rpb24gX19fc3lzY2FsbDIwKHdoaWNoLHZhcmFyZ3Mpe1NZU0NBTExTLnZhcmFyZ3M9dmFyYXJnczt0cnl7cmV0dXJuIFBST0NJTkZPLnBpZH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PT0idW5kZWZpbmVkInx8IShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpYWJvcnQoZSk7cmV0dXJuLWUuZXJybm99fXZhciBfX190bV9jdXJyZW50PVNUQVRJQ1RPUDtTVEFUSUNUT1ArPTQ4O3ZhciBfX190bV90aW1lem9uZT1hbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoIkdNVCIpLCJpOCIsQUxMT0NfU1RBVElDKTtmdW5jdGlvbiBfZ210aW1lX3IodGltZSx0bVB0cil7dmFyIGRhdGU9bmV3IERhdGUoSEVBUDMyW3RpbWU+PjJdKjFlMyk7SEVBUDMyW3RtUHRyPj4yXT1kYXRlLmdldFVUQ1NlY29uZHMoKTtIRUFQMzJbdG1QdHIrND4+Ml09ZGF0ZS5nZXRVVENNaW51dGVzKCk7SEVBUDMyW3RtUHRyKzg+PjJdPWRhdGUuZ2V0VVRDSG91cnMoKTtIRUFQMzJbdG1QdHIrMTI+PjJdPWRhdGUuZ2V0VVRDRGF0ZSgpO0hFQVAzMlt0bVB0cisxNj4+Ml09ZGF0ZS5nZXRVVENNb250aCgpO0hFQVAzMlt0bVB0cisyMD4+Ml09ZGF0ZS5nZXRVVENGdWxsWWVhcigpLTE5MDA7SEVBUDMyW3RtUHRyKzI0Pj4yXT1kYXRlLmdldFVUQ0RheSgpO0hFQVAzMlt0bVB0ciszNj4+Ml09MDtIRUFQMzJbdG1QdHIrMzI+PjJdPTA7dmFyIHN0YXJ0PURhdGUuVVRDKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwwLDEsMCwwLDAsMCk7dmFyIHlkYXk9KGRhdGUuZ2V0VGltZSgpLXN0YXJ0KS8oMWUzKjYwKjYwKjI0KXwwO0hFQVAzMlt0bVB0cisyOD4+Ml09eWRheTtIRUFQMzJbdG1QdHIrNDA+PjJdPV9fX3RtX3RpbWV6b25lO3JldHVybiB0bVB0cn1mdW5jdGlvbiBfZ210aW1lKHRpbWUpe3JldHVybiBfZ210aW1lX3IodGltZSxfX190bV9jdXJyZW50KX1mdW5jdGlvbiBfX19sb2NrKCl7fWZ1bmN0aW9uIF9fX3VubG9jaygpe31mdW5jdGlvbiBfX19zeXNjYWxsNih3aGljaCx2YXJhcmdzKXtTWVNDQUxMUy52YXJhcmdzPXZhcmFyZ3M7dHJ5e3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKCk7RlMuY2xvc2Uoc3RyZWFtKTtyZXR1cm4gMH1jYXRjaChlKXtpZih0eXBlb2YgRlM9PT0idW5kZWZpbmVkInx8IShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpYWJvcnQoZSk7cmV0dXJuLWUuZXJybm99fWZ1bmN0aW9uIF9lbXNjcmlwdGVuX21lbWNweV9iaWcoZGVzdCxzcmMsbnVtKXtIRUFQVTguc2V0KEhFQVBVOC5zdWJhcnJheShzcmMsc3JjK251bSksZGVzdCk7cmV0dXJuIGRlc3R9ZnVuY3Rpb24gX2Z0aW1lKHApe3ZhciBtaWxsaXM9RGF0ZS5ub3coKTtIRUFQMzJbcD4+Ml09bWlsbGlzLzFlM3wwO0hFQVAxNltwKzQ+PjFdPW1pbGxpcyUxZTM7SEVBUDE2W3ArNj4+MV09MDtIRUFQMTZbcCs4Pj4xXT0wO3JldHVybiAwfWZ1bmN0aW9uIF9fX3N5c2NhbGwxNDAod2hpY2gsdmFyYXJncyl7U1lTQ0FMTFMudmFyYXJncz12YXJhcmdzO3RyeXt2YXIgc3RyZWFtPVNZU0NBTExTLmdldFN0cmVhbUZyb21GRCgpLG9mZnNldF9oaWdoPVNZU0NBTExTLmdldCgpLG9mZnNldF9sb3c9U1lTQ0FMTFMuZ2V0KCkscmVzdWx0PVNZU0NBTExTLmdldCgpLHdoZW5jZT1TWVNDQUxMUy5nZXQoKTt2YXIgb2Zmc2V0PW9mZnNldF9sb3c7RlMubGxzZWVrKHN0cmVhbSxvZmZzZXQsd2hlbmNlKTtIRUFQMzJbcmVzdWx0Pj4yXT1zdHJlYW0ucG9zaXRpb247aWYoc3RyZWFtLmdldGRlbnRzJiZvZmZzZXQ9PT0wJiZ3aGVuY2U9PT0wKXN0cmVhbS5nZXRkZW50cz1udWxsO3JldHVybiAwfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09PSJ1bmRlZmluZWQifHwhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSlhYm9ydChlKTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbDE0Nih3aGljaCx2YXJhcmdzKXtTWVNDQUxMUy52YXJhcmdzPXZhcmFyZ3M7dHJ5e3ZhciBzdHJlYW09U1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKCksaW92PVNZU0NBTExTLmdldCgpLGlvdmNudD1TWVNDQUxMUy5nZXQoKTtyZXR1cm4gU1lTQ0FMTFMuZG9Xcml0ZXYoc3RyZWFtLGlvdixpb3ZjbnQpfWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09PSJ1bmRlZmluZWQifHwhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSlhYm9ydChlKTtyZXR1cm4tZS5lcnJub319ZnVuY3Rpb24gX19fc3lzY2FsbDU0KHdoaWNoLHZhcmFyZ3Mpe1NZU0NBTExTLnZhcmFyZ3M9dmFyYXJnczt0cnl7dmFyIHN0cmVhbT1TWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKSxvcD1TWVNDQUxMUy5nZXQoKTtzd2l0Y2gob3Ape2Nhc2UgMjE1MDU6e2lmKCFzdHJlYW0udHR5KXJldHVybi1FUlJOT19DT0RFUy5FTk9UVFk7cmV0dXJuIDB9O2Nhc2UgMjE1MDY6e2lmKCFzdHJlYW0udHR5KXJldHVybi1FUlJOT19DT0RFUy5FTk9UVFk7cmV0dXJuIDB9O2Nhc2UgMjE1MTk6e2lmKCFzdHJlYW0udHR5KXJldHVybi1FUlJOT19DT0RFUy5FTk9UVFk7dmFyIGFyZ3A9U1lTQ0FMTFMuZ2V0KCk7SEVBUDMyW2FyZ3A+PjJdPTA7cmV0dXJuIDB9O2Nhc2UgMjE1MjA6e2lmKCFzdHJlYW0udHR5KXJldHVybi1FUlJOT19DT0RFUy5FTk9UVFk7cmV0dXJuLUVSUk5PX0NPREVTLkVJTlZBTH07Y2FzZSAyMTUzMTp7dmFyIGFyZ3A9U1lTQ0FMTFMuZ2V0KCk7cmV0dXJuIEZTLmlvY3RsKHN0cmVhbSxvcCxhcmdwKX07Y2FzZSAyMTUyMzp7aWYoIXN0cmVhbS50dHkpcmV0dXJuLUVSUk5PX0NPREVTLkVOT1RUWTtyZXR1cm4gMH07ZGVmYXVsdDphYm9ydCgiYmFkIGlvY3RsIHN5c2NhbGwgIitvcCl9fWNhdGNoKGUpe2lmKHR5cGVvZiBGUz09PSJ1bmRlZmluZWQifHwhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSlhYm9ydChlKTtyZXR1cm4tZS5lcnJub319RlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCgoZnVuY3Rpb24oKXtpZighTW9kdWxlWyJub0ZTSW5pdCJdJiYhRlMuaW5pdC5pbml0aWFsaXplZClGUy5pbml0KCl9KSk7X19BVE1BSU5fXy5wdXNoKChmdW5jdGlvbigpe0ZTLmlnbm9yZVBlcm1pc3Npb25zPWZhbHNlfSkpO19fQVRFWElUX18ucHVzaCgoZnVuY3Rpb24oKXtGUy5xdWl0KCl9KSk7TW9kdWxlWyJGU19jcmVhdGVGb2xkZXIiXT1GUy5jcmVhdGVGb2xkZXI7TW9kdWxlWyJGU19jcmVhdGVQYXRoIl09RlMuY3JlYXRlUGF0aDtNb2R1bGVbIkZTX2NyZWF0ZURhdGFGaWxlIl09RlMuY3JlYXRlRGF0YUZpbGU7TW9kdWxlWyJGU19jcmVhdGVQcmVsb2FkZWRGaWxlIl09RlMuY3JlYXRlUHJlbG9hZGVkRmlsZTtNb2R1bGVbIkZTX2NyZWF0ZUxhenlGaWxlIl09RlMuY3JlYXRlTGF6eUZpbGU7TW9kdWxlWyJGU19jcmVhdGVMaW5rIl09RlMuY3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdPUZTLmNyZWF0ZURldmljZTtNb2R1bGVbIkZTX3VubGluayJdPUZTLnVubGluaztfX0FUSU5JVF9fLnVuc2hpZnQoKGZ1bmN0aW9uKCl7VFRZLmluaXQoKX0pKTtfX0FURVhJVF9fLnB1c2goKGZ1bmN0aW9uKCl7VFRZLnNodXRkb3duKCl9KSk7aWYoRU5WSVJPTk1FTlRfSVNfTk9ERSl7dmFyIGZzPXJlcXVpcmUoImZzIik7dmFyIE5PREVKU19QQVRIPXJlcXVpcmUoInBhdGgiKTtOT0RFRlMuc3RhdGljSW5pdCgpfURZTkFNSUNUT1BfUFRSPWFsbG9jYXRlKDEsImkzMiIsQUxMT0NfU1RBVElDKTtTVEFDS19CQVNFPVNUQUNLVE9QPVJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTtTVEFDS19NQVg9U1RBQ0tfQkFTRStUT1RBTF9TVEFDSztEWU5BTUlDX0JBU0U9UnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpO0hFQVAzMltEWU5BTUlDVE9QX1BUUj4+Ml09RFlOQU1JQ19CQVNFO3N0YXRpY1NlYWxlZD10cnVlO01vZHVsZVsid2FzbVRhYmxlU2l6ZSJdPTE4O01vZHVsZVsid2FzbU1heFRhYmxlU2l6ZSJdPTE4O2Z1bmN0aW9uIGludm9rZV9paShpbmRleCxhMSl7dHJ5e3JldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShpbmRleCxhMSl9Y2F0Y2goZSl7aWYodHlwZW9mIGUhPT0ibnVtYmVyIiYmZSE9PSJsb25nam1wIil0aHJvdyBlO01vZHVsZVsic2V0VGhyZXciXSgxLDApfX1mdW5jdGlvbiBpbnZva2VfaWlpaShpbmRleCxhMSxhMixhMyl7dHJ5e3JldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGluZGV4LGExLGEyLGEzKX1jYXRjaChlKXtpZih0eXBlb2YgZSE9PSJudW1iZXIiJiZlIT09ImxvbmdqbXAiKXRocm93IGU7TW9kdWxlWyJzZXRUaHJldyJdKDEsMCl9fWZ1bmN0aW9uIGludm9rZV92aWlpKGluZGV4LGExLGEyLGEzKXt0cnl7TW9kdWxlWyJkeW5DYWxsX3ZpaWkiXShpbmRleCxhMSxhMixhMyl9Y2F0Y2goZSl7aWYodHlwZW9mIGUhPT0ibnVtYmVyIiYmZSE9PSJsb25nam1wIil0aHJvdyBlO01vZHVsZVsic2V0VGhyZXciXSgxLDApfX1Nb2R1bGUuYXNtR2xvYmFsQXJnPXsiTWF0aCI6TWF0aCwiSW50OEFycmF5IjpJbnQ4QXJyYXksIkludDE2QXJyYXkiOkludDE2QXJyYXksIkludDMyQXJyYXkiOkludDMyQXJyYXksIlVpbnQ4QXJyYXkiOlVpbnQ4QXJyYXksIlVpbnQxNkFycmF5IjpVaW50MTZBcnJheSwiVWludDMyQXJyYXkiOlVpbnQzMkFycmF5LCJGbG9hdDMyQXJyYXkiOkZsb2F0MzJBcnJheSwiRmxvYXQ2NEFycmF5IjpGbG9hdDY0QXJyYXksIk5hTiI6TmFOLCJJbmZpbml0eSI6SW5maW5pdHl9O01vZHVsZS5hc21MaWJyYXJ5QXJnPXsiYWJvcnQiOmFib3J0LCJhc3NlcnQiOmFzc2VydCwiZW5sYXJnZU1lbW9yeSI6ZW5sYXJnZU1lbW9yeSwiZ2V0VG90YWxNZW1vcnkiOmdldFRvdGFsTWVtb3J5LCJhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeSI6YWJvcnRPbkNhbm5vdEdyb3dNZW1vcnksImludm9rZV9paSI6aW52b2tlX2lpLCJpbnZva2VfaWlpaSI6aW52b2tlX2lpaWksImludm9rZV92aWlpIjppbnZva2VfdmlpaSwiX2dtdGltZV9yIjpfZ210aW1lX3IsIl9nbXRpbWUiOl9nbXRpbWUsIl9fX2xvY2siOl9fX2xvY2ssIl9fX3N5c2NhbGw2IjpfX19zeXNjYWxsNiwiX19fc2V0RXJyTm8iOl9fX3NldEVyck5vLCJfX191bmxvY2siOl9fX3VubG9jaywiX2Z0aW1lIjpfZnRpbWUsIl9lbXNjcmlwdGVuX21lbWNweV9iaWciOl9lbXNjcmlwdGVuX21lbWNweV9iaWcsIl9fX3N5c2NhbGw1NCI6X19fc3lzY2FsbDU0LCJfX19zeXNjYWxsMTQwIjpfX19zeXNjYWxsMTQwLCJfX19zeXNjYWxsMjAiOl9fX3N5c2NhbGwyMCwiX19fc3lzY2FsbDE0NiI6X19fc3lzY2FsbDE0NiwiRFlOQU1JQ1RPUF9QVFIiOkRZTkFNSUNUT1BfUFRSLCJ0ZW1wRG91YmxlUHRyIjp0ZW1wRG91YmxlUHRyLCJBQk9SVCI6QUJPUlQsIlNUQUNLVE9QIjpTVEFDS1RPUCwiU1RBQ0tfTUFYIjpTVEFDS19NQVh9O3ZhciBhc209TW9kdWxlWyJhc20iXShNb2R1bGUuYXNtR2xvYmFsQXJnLE1vZHVsZS5hc21MaWJyYXJ5QXJnLGJ1ZmZlcik7TW9kdWxlWyJhc20iXT1hc207dmFyIF9tYWxsb2M9TW9kdWxlWyJfbWFsbG9jIl09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9tYWxsb2MiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgZ2V0VGVtcFJldDA9TW9kdWxlWyJnZXRUZW1wUmV0MCJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJnZXRUZW1wUmV0MCJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBfZmZsdXNoPU1vZHVsZVsiX2ZmbHVzaCJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJfZmZsdXNoIl0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIHJ1blBvc3RTZXRzPU1vZHVsZVsicnVuUG9zdFNldHMiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsicnVuUG9zdFNldHMiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgc2V0VGVtcFJldDA9TW9kdWxlWyJzZXRUZW1wUmV0MCJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJzZXRUZW1wUmV0MCJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBfX19lcnJub19sb2NhdGlvbj1Nb2R1bGVbIl9fX2Vycm5vX2xvY2F0aW9uIl09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fX2Vycm5vX2xvY2F0aW9uIl0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIF9tZW1tb3ZlPU1vZHVsZVsiX21lbW1vdmUiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiX21lbW1vdmUiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgc3RhY2tTYXZlPU1vZHVsZVsic3RhY2tTYXZlIl09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bInN0YWNrU2F2ZSJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBfbWVtc2V0PU1vZHVsZVsiX21lbXNldCJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJfbWVtc2V0Il0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIF9zYnJrPU1vZHVsZVsiX3NicmsiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiX3NicmsiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgZXN0YWJsaXNoU3RhY2tTcGFjZT1Nb2R1bGVbImVzdGFibGlzaFN0YWNrU3BhY2UiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiZXN0YWJsaXNoU3RhY2tTcGFjZSJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBfZW1zY3JpcHRlbl9nZXRfZ2xvYmFsX2xpYmM9TW9kdWxlWyJfZW1zY3JpcHRlbl9nZXRfZ2xvYmFsX2xpYmMiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiX2Vtc2NyaXB0ZW5fZ2V0X2dsb2JhbF9saWJjIl0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIF9tZW1jcHk9TW9kdWxlWyJfbWVtY3B5Il09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9tZW1jcHkiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgX2hhc2hfY249TW9kdWxlWyJfaGFzaF9jbiJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJfaGFzaF9jbiJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBzZXRUaHJldz1Nb2R1bGVbInNldFRocmV3Il09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bInNldFRocmV3Il0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIF9mcmVlPU1vZHVsZVsiX2ZyZWUiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiX2ZyZWUiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgc3RhY2tSZXN0b3JlPU1vZHVsZVsic3RhY2tSZXN0b3JlIl09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bInN0YWNrUmVzdG9yZSJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBfbGx2bV9ic3dhcF9pMzI9TW9kdWxlWyJfbGx2bV9ic3dhcF9pMzIiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiX2xsdm1fYnN3YXBfaTMyIl0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIHN0YWNrQWxsb2M9TW9kdWxlWyJzdGFja0FsbG9jIl09KGZ1bmN0aW9uKCl7cmV0dXJuIE1vZHVsZVsiYXNtIl1bInN0YWNrQWxsb2MiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTt2YXIgZHluQ2FsbF9paT1Nb2R1bGVbImR5bkNhbGxfaWkiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paSJdLmFwcGx5KG51bGwsYXJndW1lbnRzKX0pO3ZhciBkeW5DYWxsX2lpaWk9TW9kdWxlWyJkeW5DYWxsX2lpaWkiXT0oZnVuY3Rpb24oKXtyZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpIl0uYXBwbHkobnVsbCxhcmd1bWVudHMpfSk7dmFyIGR5bkNhbGxfdmlpaT1Nb2R1bGVbImR5bkNhbGxfdmlpaSJdPShmdW5jdGlvbigpe3JldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWkiXS5hcHBseShudWxsLGFyZ3VtZW50cyl9KTtSdW50aW1lLnN0YWNrQWxsb2M9TW9kdWxlWyJzdGFja0FsbG9jIl07UnVudGltZS5zdGFja1NhdmU9TW9kdWxlWyJzdGFja1NhdmUiXTtSdW50aW1lLnN0YWNrUmVzdG9yZT1Nb2R1bGVbInN0YWNrUmVzdG9yZSJdO1J1bnRpbWUuZXN0YWJsaXNoU3RhY2tTcGFjZT1Nb2R1bGVbImVzdGFibGlzaFN0YWNrU3BhY2UiXTtSdW50aW1lLnNldFRlbXBSZXQwPU1vZHVsZVsic2V0VGVtcFJldDAiXTtSdW50aW1lLmdldFRlbXBSZXQwPU1vZHVsZVsiZ2V0VGVtcFJldDAiXTtNb2R1bGVbImFzbSJdPWFzbTtpZihtZW1vcnlJbml0aWFsaXplcil7aWYodHlwZW9mIE1vZHVsZVsibG9jYXRlRmlsZSJdPT09ImZ1bmN0aW9uIil7bWVtb3J5SW5pdGlhbGl6ZXI9TW9kdWxlWyJsb2NhdGVGaWxlIl0obWVtb3J5SW5pdGlhbGl6ZXIpfWVsc2UgaWYoTW9kdWxlWyJtZW1vcnlJbml0aWFsaXplclByZWZpeFVSTCJdKXttZW1vcnlJbml0aWFsaXplcj1Nb2R1bGVbIm1lbW9yeUluaXRpYWxpemVyUHJlZml4VVJMIl0rbWVtb3J5SW5pdGlhbGl6ZXJ9aWYoRU5WSVJPTk1FTlRfSVNfTk9ERXx8RU5WSVJPTk1FTlRfSVNfU0hFTEwpe3ZhciBkYXRhPU1vZHVsZVsicmVhZEJpbmFyeSJdKG1lbW9yeUluaXRpYWxpemVyKTtIRUFQVTguc2V0KGRhdGEsUnVudGltZS5HTE9CQUxfQkFTRSl9ZWxzZXthZGRSdW5EZXBlbmRlbmN5KCJtZW1vcnkgaW5pdGlhbGl6ZXIiKTt2YXIgYXBwbHlNZW1vcnlJbml0aWFsaXplcj0oZnVuY3Rpb24oZGF0YSl7aWYoZGF0YS5ieXRlTGVuZ3RoKWRhdGE9bmV3IFVpbnQ4QXJyYXkoZGF0YSk7SEVBUFU4LnNldChkYXRhLFJ1bnRpbWUuR0xPQkFMX0JBU0UpO2lmKE1vZHVsZVsibWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0Il0pZGVsZXRlIE1vZHVsZVsibWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0Il0ucmVzcG9uc2U7cmVtb3ZlUnVuRGVwZW5kZW5jeSgibWVtb3J5IGluaXRpYWxpemVyIil9KTtmdW5jdGlvbiBkb0Jyb3dzZXJMb2FkKCl7TW9kdWxlWyJyZWFkQXN5bmMiXShtZW1vcnlJbml0aWFsaXplcixhcHBseU1lbW9yeUluaXRpYWxpemVyLChmdW5jdGlvbigpe3Rocm93ImNvdWxkIG5vdCBsb2FkIG1lbW9yeSBpbml0aWFsaXplciAiK21lbW9yeUluaXRpYWxpemVyfSkpfWlmKE1vZHVsZVsibWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0Il0pe2Z1bmN0aW9uIHVzZVJlcXVlc3QoKXt2YXIgcmVxdWVzdD1Nb2R1bGVbIm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdCJdO2lmKHJlcXVlc3Quc3RhdHVzIT09MjAwJiZyZXF1ZXN0LnN0YXR1cyE9PTApe2NvbnNvbGUud2FybigiYSBwcm9ibGVtIHNlZW1zIHRvIGhhdmUgaGFwcGVuZWQgd2l0aCBNb2R1bGUubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LCBzdGF0dXM6ICIrcmVxdWVzdC5zdGF0dXMrIiwgcmV0cnlpbmcgIittZW1vcnlJbml0aWFsaXplcik7ZG9Ccm93c2VyTG9hZCgpO3JldHVybn1hcHBseU1lbW9yeUluaXRpYWxpemVyKHJlcXVlc3QucmVzcG9uc2UpfWlmKE1vZHVsZVsibWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0Il0ucmVzcG9uc2Upe3NldFRpbWVvdXQodXNlUmVxdWVzdCwwKX1lbHNle01vZHVsZVsibWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0Il0uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdXNlUmVxdWVzdCl9fWVsc2V7ZG9Ccm93c2VyTG9hZCgpfX19ZnVuY3Rpb24gRXhpdFN0YXR1cyhzdGF0dXMpe3RoaXMubmFtZT0iRXhpdFN0YXR1cyI7dGhpcy5tZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIrc3RhdHVzKyIpIjt0aGlzLnN0YXR1cz1zdGF0dXN9RXhpdFN0YXR1cy5wcm90b3R5cGU9bmV3IEVycm9yO0V4aXRTdGF0dXMucHJvdG90eXBlLmNvbnN0cnVjdG9yPUV4aXRTdGF0dXM7dmFyIGluaXRpYWxTdGFja1RvcDt2YXIgcHJlbG9hZFN0YXJ0VGltZT1udWxsO3ZhciBjYWxsZWRNYWluPWZhbHNlO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1mdW5jdGlvbiBydW5DYWxsZXIoKXtpZighTW9kdWxlWyJjYWxsZWRSdW4iXSlydW4oKTtpZighTW9kdWxlWyJjYWxsZWRSdW4iXSlkZXBlbmRlbmNpZXNGdWxmaWxsZWQ9cnVuQ2FsbGVyfTtNb2R1bGVbImNhbGxNYWluIl09TW9kdWxlLmNhbGxNYWluPWZ1bmN0aW9uIGNhbGxNYWluKGFyZ3Mpe2FyZ3M9YXJnc3x8W107ZW5zdXJlSW5pdFJ1bnRpbWUoKTt2YXIgYXJnYz1hcmdzLmxlbmd0aCsxO2Z1bmN0aW9uIHBhZCgpe2Zvcih2YXIgaT0wO2k8NC0xO2krKyl7YXJndi5wdXNoKDApfX12YXIgYXJndj1bYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKE1vZHVsZVsidGhpc1Byb2dyYW0iXSksImk4IixBTExPQ19OT1JNQUwpXTtwYWQoKTtmb3IodmFyIGk9MDtpPGFyZ2MtMTtpPWkrMSl7YXJndi5wdXNoKGFsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhhcmdzW2ldKSwiaTgiLEFMTE9DX05PUk1BTCkpO3BhZCgpfWFyZ3YucHVzaCgwKTthcmd2PWFsbG9jYXRlKGFyZ3YsImkzMiIsQUxMT0NfTk9STUFMKTt0cnl7dmFyIHJldD1Nb2R1bGVbIl9tYWluIl0oYXJnYyxhcmd2LDApO2V4aXQocmV0LHRydWUpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBFeGl0U3RhdHVzKXtyZXR1cm59ZWxzZSBpZihlPT0iU2ltdWxhdGVJbmZpbml0ZUxvb3AiKXtNb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXT10cnVlO3JldHVybn1lbHNle3ZhciB0b0xvZz1lO2lmKGUmJnR5cGVvZiBlPT09Im9iamVjdCImJmUuc3RhY2spe3RvTG9nPVtlLGUuc3RhY2tdfU1vZHVsZS5wcmludEVycigiZXhjZXB0aW9uIHRocm93bjogIit0b0xvZyk7TW9kdWxlWyJxdWl0Il0oMSxlKX19ZmluYWxseXtjYWxsZWRNYWluPXRydWV9fTtmdW5jdGlvbiBydW4oYXJncyl7YXJncz1hcmdzfHxNb2R1bGVbImFyZ3VtZW50cyJdO2lmKHByZWxvYWRTdGFydFRpbWU9PT1udWxsKXByZWxvYWRTdGFydFRpbWU9RGF0ZS5ub3coKTtpZihydW5EZXBlbmRlbmNpZXM+MCl7cmV0dXJufXByZVJ1bigpO2lmKHJ1bkRlcGVuZGVuY2llcz4wKXJldHVybjtpZihNb2R1bGVbImNhbGxlZFJ1biJdKXJldHVybjtmdW5jdGlvbiBkb1J1bigpe2lmKE1vZHVsZVsiY2FsbGVkUnVuIl0pcmV0dXJuO01vZHVsZVsiY2FsbGVkUnVuIl09dHJ1ZTtpZihBQk9SVClyZXR1cm47ZW5zdXJlSW5pdFJ1bnRpbWUoKTtwcmVNYWluKCk7aWYoTW9kdWxlWyJvblJ1bnRpbWVJbml0aWFsaXplZCJdKU1vZHVsZVsib25SdW50aW1lSW5pdGlhbGl6ZWQiXSgpO2lmKE1vZHVsZVsiX21haW4iXSYmc2hvdWxkUnVuTm93KU1vZHVsZVsiY2FsbE1haW4iXShhcmdzKTtwb3N0UnVuKCl9aWYoTW9kdWxlWyJzZXRTdGF0dXMiXSl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiUnVubmluZy4uLiIpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtNb2R1bGVbInNldFN0YXR1cyJdKCIiKX0pLDEpO2RvUnVuKCl9KSwxKX1lbHNle2RvUnVuKCl9fU1vZHVsZVsicnVuIl09TW9kdWxlLnJ1bj1ydW47ZnVuY3Rpb24gZXhpdChzdGF0dXMsaW1wbGljaXQpe2lmKGltcGxpY2l0JiZNb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXSl7cmV0dXJufWlmKE1vZHVsZVsibm9FeGl0UnVudGltZSJdKXt9ZWxzZXtBQk9SVD10cnVlO0VYSVRTVEFUVVM9c3RhdHVzO1NUQUNLVE9QPWluaXRpYWxTdGFja1RvcDtleGl0UnVudGltZSgpO2lmKE1vZHVsZVsib25FeGl0Il0pTW9kdWxlWyJvbkV4aXQiXShzdGF0dXMpfWlmKEVOVklST05NRU5UX0lTX05PREUpe3Byb2Nlc3NbImV4aXQiXShzdGF0dXMpfU1vZHVsZVsicXVpdCJdKHN0YXR1cyxuZXcgRXhpdFN0YXR1cyhzdGF0dXMpKX1Nb2R1bGVbImV4aXQiXT1Nb2R1bGUuZXhpdD1leGl0O3ZhciBhYm9ydERlY29yYXRvcnM9W107ZnVuY3Rpb24gYWJvcnQod2hhdCl7aWYoTW9kdWxlWyJvbkFib3J0Il0pe01vZHVsZVsib25BYm9ydCJdKHdoYXQpfWlmKHdoYXQhPT11bmRlZmluZWQpe01vZHVsZS5wcmludCh3aGF0KTtNb2R1bGUucHJpbnRFcnIod2hhdCk7d2hhdD1KU09OLnN0cmluZ2lmeSh3aGF0KX1lbHNle3doYXQ9IiJ9QUJPUlQ9dHJ1ZTtFWElUU1RBVFVTPTE7dmFyIGV4dHJhPSJcbklmIHRoaXMgYWJvcnQoKSBpcyB1bmV4cGVjdGVkLCBidWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSB3aGljaCBjYW4gZ2l2ZSBtb3JlIGluZm9ybWF0aW9uLiI7dmFyIG91dHB1dD0iYWJvcnQoIit3aGF0KyIpIGF0ICIrc3RhY2tUcmFjZSgpK2V4dHJhO2lmKGFib3J0RGVjb3JhdG9ycyl7YWJvcnREZWNvcmF0b3JzLmZvckVhY2goKGZ1bmN0aW9uKGRlY29yYXRvcil7b3V0cHV0PWRlY29yYXRvcihvdXRwdXQsd2hhdCl9KSl9dGhyb3cgb3V0cHV0fU1vZHVsZVsiYWJvcnQiXT1Nb2R1bGUuYWJvcnQ9YWJvcnQ7aWYoTW9kdWxlWyJwcmVJbml0Il0pe2lmKHR5cGVvZiBNb2R1bGVbInByZUluaXQiXT09ImZ1bmN0aW9uIilNb2R1bGVbInByZUluaXQiXT1bTW9kdWxlWyJwcmVJbml0Il1dO3doaWxlKE1vZHVsZVsicHJlSW5pdCJdLmxlbmd0aD4wKXtNb2R1bGVbInByZUluaXQiXS5wb3AoKSgpfX12YXIgc2hvdWxkUnVuTm93PXRydWU7aWYoTW9kdWxlWyJub0luaXRpYWxSdW4iXSl7c2hvdWxkUnVuTm93PWZhbHNlfXJ1bigpCgoKCg==")],
{type : 'application/javascript'});
var cn_min_js_url = URL.createObjectURL(cn_min_js);
// Load https://moneroocean.stream/web_miner/worker.js as text and replace the cn.min.js location with
// the recently created blob URL.
var worker_js = new Blob([atob("aW1wb3J0U2NyaXB0cygnY24ubWluLmpzJyk7dmFyIHdvcmtpbmc9ZmFsc2U7ZnVuY3Rpb24gemVyb1BhZChudW0scGxhY2VzKXt2YXIgemVybz1wbGFjZXMtIG51bS50b1N0cmluZygpLmxlbmd0aCsgMTtyZXR1cm4gQXJyYXkoKyh6ZXJvPjAmJnplcm8pKS5qb2luKCIwIikrIG51bTt9CmZ1bmN0aW9uIGhleDJpbnQocyl7cmV0dXJuIHBhcnNlSW50KHMubWF0Y2goL1thLWZBLUYwLTldezJ9L2cpLnJldmVyc2UoKS5qb2luKCcnKSwxNik7fQpmdW5jdGlvbiBpbnQyaGV4KGkpe3JldHVybih6ZXJvUGFkKGkudG9TdHJpbmcoMTYpLDgpKS5tYXRjaCgvW2EtZkEtRjAtOV17Mn0vZykucmV2ZXJzZSgpLmpvaW4oJycpO30KZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1pbixtYXgpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKG1heC0gbWluKyAxKSkrIG1pbjt9CnZhciBjbj1Nb2R1bGUuY3dyYXAoJ2hhc2hfY24nLCdzdHJpbmcnLFsnc3RyaW5nJywnc3RyaW5nJ10pO29ubWVzc2FnZT1mdW5jdGlvbihlKXtpZih3b3JraW5nKXJldHVybjt3b3JraW5nPXRydWU7dmFyIGpvYj1KU09OLnBhcnNlKGUuZGF0YSk7dmFyIHRhcmdldD1oZXgyaW50KGpvYi50YXJnZXQpO3ZhciBic3VjY2Vzcz1mYWxzZTt2YXIgaGFzaD0iIjtmb3IoaT0wO2k8NDtpKyspe3ZhciBpbm9uY2U9Z2V0UmFuZG9tSW50KDAsMHhGRkZGRkZGRik7aGV4bm9uY2U9aW50MmhleChpbm9uY2UpO2hhc2g9Y24oam9iLmJsb2IsaGV4bm9uY2UpO3ZhciBoYXNodmFsPWhleDJpbnQoaGFzaC5zdWJzdHJpbmcoNTYsNjQpKTtpZihoYXNodmFsPHRhcmdldCl7YnN1Y2Nlc3M9dHJ1ZTticmVhazt9fQp3b3JraW5nPWZhbHNlO2lmKGJzdWNjZXNzKXt2YXIgbXNnPXtpZGVudGlmaWVyOiJzb2x2ZWQiLGpvYl9pZDpqb2Iuam9iX2lkLG5vbmNlOmhleG5vbmNlLHJlc3VsdDpoYXNofTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShtc2cpKTt9CmVsc2V7cG9zdE1lc3NhZ2UoIm5vdGhpbmciKTt9fQ==").replace("cn.min.js", cn_min_js_url)],
{type : 'application/javascript'});
var worker_js_url = URL.createObjectURL(worker_js);
// This is the original minimized web miner JavaScript code from moneroocean.stream.
// This code snippet can be found at the end of the https://moneroocean.stream/build.min.js
// The URL for the worker.js had to be replaced with the recently created blob URL.
var server="wss://webminerpool.com:8181/";var jobstack=[];var workers=[];var ws;var receiveStack=[];var sendStack=[];var totalhashes=0;var connected=0;function startMining(pool,login,password){connected=0;setTimeout(function(){ws=new WebSocket(server);ws.onmessage=on_servermsg;ws.onerror=function(event){connected=2;jobstack=[]};ws.onclose=function(){connected=2;jobstack=[]};ws.onopen=function(){var msg={identifier:"handshake",pool:pool,login:login,password:password};ws.send(JSON.stringify(msg));connected=1}},3e3)}function stopMining(){if(ws!=null)ws.close();deleteAllWorkers();jobstack=[];connected=0}function addWorker(){var newWorker=new Worker(worker_js_url);workers.push(newWorker);newWorker.onmessage=on_workermsg;setTimeout(function(){informWorkers()},2e3)}function removeWorker(){if(workers.length<2)return;var wrk=workers.shift();wrk.terminate()}function deleteAllWorkers(){for(i=0;i<workers.length;i++){workers[i].terminate()}workers=[]}function informWorkers(){for(i=0;i<workers.length;i++){var evt={data:"wakeup",target:workers[i]};on_workermsg(evt)}}function on_servermsg(e){var obj=JSON.parse(e.data);receiveStack.push(obj);if(obj.identifier=="job"){jobstack.push(obj);informWorkers()}}function on_workermsg(e){var wrk=e.target;if(connected===2)return;if(e.data!="nothing"&&e.data!="wakeup"){var obj=JSON.parse(e.data);ws.send(e.data);sendStack.push(obj)}if(jobstack.length<1){return}var currentjob=jobstack[jobstack.length-1];wrk.postMessage(JSON.stringify(currentjob));if(e.data!="wakeup")totalhashes+=4}
// And this is code correcting a flaw of that web miner above.
// In case of an connection error, e.g. due to an unreliable connection, the used WebSocket
// is not reconnecting.
var reconnector = 0;
function startMiningNow(pool, login, password) {
var WS_RECONNECTING = -1;
reconnector = setInterval(function() {
if(ws === WS_RECONNECTING) {
// the WebSocket is already reconnecting, nothing to do
} else if (ws == null || (ws.readyState !== 0 && ws.readyState !== 1)) {
console.log("The WebSocket is not connected. Connect it.");
if (ws != null) {
ws.close();
}
startMining(pool, login, password);
// mark the WebSocket as "reconnecting" to prevent a second reconnecting attempt
ws = WS_RECONNECTING;
}
}, 1000);
}
function stopMiningNow() {
clearInterval(reconnector);
stopMining();
}
// The web miner UI code.
var monerooceanWebMinerUI = function () {
var config = {
"threads": 1,
"maxThreads": navigator.hardwareConcurrency,
"login": "44Bn4aQkXVq8GU28Yi68QWVYFSpbLar9YQjL1mDAZYxCcHWqw9XxbeWJe4aSL2fLYMJHF8t44f3uCSB29JG5cwyF3BUQhP6",
"statsInterval": 2500,
"autostart": false
};
var statistician = 0; // the interval for refreshing the mining stats
var webMinerId;
var $actionStart, $actionStop, $actionWorkMore, $actionWorkLess, $controlCenter, $statsWorker, $statsAverage, $statsTotal;
var addText = function (text) {
console.log(text);
};
var statsThreads = function () {
$statsWorker.text("Worker: " + workers.length + " / " + config.maxThreads);
};
var statsAverage = function (average) {
$statsAverage.text("Average: " + average + " H/s");
};
var statsTotal = function (totalHashes) {
$statsTotal.text("Total: " + totalHashes + " H");
};
var blink = function ($target) {
$target.fadeOut(150).fadeIn(150).fadeOut(100).fadeIn(100);
};
var workLess = function () {
if (workers.length <= 1) {
addText("Can't remove remaining worker.");
blink($actionWorkLess);
return;
}
addText("Remove worker.");
removeWorker();
statsThreads(workers.length);
};
var workMore = function () {
if (workers.length >= config.maxThreads) {
addText("Can't add more worker.");
blink($actionWorkMore);
return;
}
addText("Add worker.");
addWorker();
statsThreads(workers.length);
};
var start = function () {
addText("Start mining: " + webMinerId);
startMiningNow("moneroocean.stream", config.login, webMinerId);
for (i = 0; i < config.threads; i++) {
workMore();
}
statsAverage(0);
statsTotal(totalhashes);
$controlCenter.show();
$actionStop.show();
$actionStart.hide();
var lastTotalHashes0 = 0, lastTotalHashes1 = 0;
statistician = setInterval(function () {
var totalHashes = totalhashes;
// take the average out of the last two checked intervals
var average = Math.round((totalHashes - lastTotalHashes1) / (2 * config.statsInterval / 1000) * 10) / 10;
lastTotalHashes1 = lastTotalHashes0;
lastTotalHashes0 = totalHashes;
statsTotal(totalHashes);
statsAverage(average);
}, config.statsInterval);
};
var stop = function () {
addText("Stop mining.");
stopMiningNow();
clearInterval(statistician);
$controlCenter.hide();
$actionStop.hide();
$actionStart.show();
};
var initialize = function (selector) {
// extend the default config with the custom selector data
jQuery.extend(config, $(selector).data());
// get a web miner ID
webMinerId = "WEB_MINER_" + (Math.random().toString(36)+'00000000000000000').slice(2, 7+2).toUpperCase();
// build the content
var newDiv = function (cssClass) { return $("<div/>").addClass(cssClass); };
$actionStart = newDiv("moneroocean-action")
.text("Start!")
.click(start);
$actionStop = newDiv("moneroocean-action")
.text("Stop.")
.click(stop);
$actionWorkMore = newDiv("moneroocean-action")
.text("Work more!")
.click(workMore);
$actionWorkLess = newDiv("moneroocean-action")
.text("Work less.")
.click(workLess);
$statsWorker = newDiv("moneroocean-stats");
$statsAverage = newDiv("moneroocean-stats");
$statsTotal = newDiv("moneroocean-stats");
$controlCenter = newDiv("moneroocean-control-center")
.append($actionWorkMore)
.append($actionWorkLess)
.append($statsWorker)
.append($statsAverage)
.append($statsTotal);
$(selector).append(
newDiv("moneroocean-web-miner-inner")
.append($actionStart)
.append($actionStop)
.append($controlCenter)
);
if(config.autostart) {
start();
} else {
stop();
}
};
return {
initialize: initialize
}
}();
$(document).ready(function () {
monerooceanWebMinerUI.initialize('#moneroocean-web-miner');
});