-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
324 lines (323 loc) · 23.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="Referrer-Policy" content="no-referrer" />
<meta name="referrer" content="no-referrer" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="theme-color" content="#ffffff" />
<meta name="description" content="Free + open source unblocked games website; 400+ HTML5, DOS, Flash games for school; Free, No Ads" />
<meta name="keywords" content="whitespider,unblocked,unlocked,unblocker,proxy,games,html5,flash,dos,free,open source" />
<base href="/" target="_blank" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<link rel="stylesheet" type="text/css" href="index.css" />
<link rel="apple-touch-icon" type="image/png" href="res/logo256.png" />
<link rel="manifest" type="application/json" href="manifest.json" />
<link rel="canonical" href="https://whitespider.dev/" />
<title>WhiteSpider</title>
</head>
<body>
<div id="error">Error Message</div>
<noscript><div>Error: This page could not function unless JavaScript is supported and enabled in your browser.</div></noscript>
<div id="navigation-bar">
<div id="logo"></div>
<div id="status"></div>
<div id="version"></div>
<input id="side-menu" type="checkbox" placeholder="Navigation Menu" />
<label for="side-menu" id="hamb"><div></div></label>
<div id="nav-bar">
<button id="home-btn" type="button" current="true">Home</button>
<button id="prox-btn" type="button">Unblocker</button>
<button id="chai-btn" type="button">ChatGPT</button>
<button id="apps-btn" type="button">Apps</button>
<button id="chat-btn" type="button">Chat</button>
<button id="unbl-btn" type="button">Site is Blocked?</button>
<button id="accn-btn" type="button">Login</button>
</div>
</div>
<div id="content">
<div id="home-page" current="true">
<div class="text-body">
<h1>WhiteSpider Unblocked Games</h1>
<p>A 100% free + open source unblocked games website designed for school or office users who are
restricted from accessing certain websites. We host and maintain this website because we believe
everyone should have the freedom to do whatever they like to do. (Disclaimer: The developers are not
responsible for issues caused by gaming in unauthorized periods, use it at your own risks.)</p>
<p>WhiteSpider Dev is a small but ambitious development team. We aim to bring everyone online freedom without
any charges. If you enjoy using this website, please <b>share it with your friends</b> or <b>give a star to the
<a href="https://github.com/whitespider-dev/whitespider" target="_blank" rel="noopener">official GitHub repository</a></b>.
It is the simplest way for you to do, and the easiest way for us to achieve a better popularity.</p>
</div>
<form id="game-search" action="null" method="post">
<input name="q" type="text" placeholder="Search Games" maxlength="50" autocomplete="off" />
<button type="submit" title="Search"></button>
</form>
<div id="game-category">
<button type="button" match="all" current="true">All</button>
<button type="button" match="new">New</button>
<button type="button" match="html5">HTML5</button>
<button type="button" match="flash">Flash</button>
<button type="button" match="dos">DOS</button>
<button type="button" match="cards">Cards</button>
<button type="button" match="puzzles">Puzzles</button>
<button type="button" match="mahjong">Mahjong</button>
<button type="button" match="classic">Classic</button>
</div>
<div id="game-container"></div>
<div id="game-navigator">
<button id="gnav-back" type="button" disabled="true" title="Previous page"></button>
<div id="gnav-page-number">Page: 0/0</div>
<button id="gnav-forward" type="button" disabled="true" title="Next page"></button>
</div>
<div id="game-notice">⚠ Games with 'USER' label are added by users with the button below.
They have not been verified by the developers, and are not guaranteed to work properly.</div>
<button id="submit-game" type="button">Submit a game now</button>
<div id="game-disclaimer">Disclaimer: All games listed on this site are collected from other popular websites,
for making them accessible to restricted users.
If copyright violations occurred, please email <a href="mailto:[email protected]">[email protected]</a>.
We will resolve these issues as soon as possible.</div>
</div>
<div id="chatgpt-page">
<h1>ChatGPT</h1>
<div>
<div id="dialog"></div>
<div id="interface">
<div>
<button id="new-topic" type="button" title="New topic"></button>
<form id="chatgpt" action="None" method="post">
<input name="m" type="text" placeholder="Message" minlength="2" required="true" autocomplete="off" />
<button type="submit" title="Send"></button>
</form>
</div>
</div>
</div>
</div>
<div id="services-page">
<h1>Apps</h1>
<h2>YouTube Unblocked</h2>
<form id="yt-search" action="None" method="post">
<input name="q" type="text" placeholder="Search Video or Paste YouTube Video URL" maxlength="50" autocomplete="off" />
<button type="submit" title="Search"></button>
</form>
<div id="yt-option-bar">
<label for="yt-max-results">Results:</label>
<input id="yt-max-results" type="number" min="1" max="30" value="10" placeholder="10" />
<label for="yt-order">Order:</label>
<select id="yt-order">
<option value="date">Date</option>
<option value="rating">Rating</option>
<option value="relevance" selected="true">Relevance</option>
<option value="title">Title</option>
<option value="viewCount">View Count</option>
</select>
</div>
<div id="yt-results"></div>
<button id="yt-load-more" type="button">Load More</button>
<div id="yt-api-info">
<p>Notice: YouTube Unblocked uses Google's free API to get search results, which is limited to 10000 requests per day.
When it reaches the limit, an error message like 'quota exceed' would be shown, and the search function would no longer work.</p>
<p>As a workaround for this error, we recommend you to create and use your own API key. To do so, follow the steps below:</p>
<p> - Login with your personal Google account and go to <a href="https://console.cloud.google.com/apis/dashboard">Google Cloud Console</a>.</p>
<p> - Create or select an existing project.</p>
<p> - In 'APIs & Services' section, click 'library'.</p>
<p> - Search for 'YouTube Data API v3' and enable it.</p>
<p> - Go back to 'APIs & Services' section, then click 'credentials'.</p>
<p> - Click 'create credentials' at the top and select 'API key'.</p>
<p> - Fill in your API key below to use it.</p>
<label for="yt-api-key">API Key: </label>
<input id="yt-api-key" type="text" placeholder=" (Default) " />
</div>
<hr />
<h2>Private Search</h2>
<div id="search-container">
<script type="text/javascript" src="https://cse.google.com/cse.js?cx=6505c81d738124627"></script>
<div class="gcse-search"></div>
</div>
<hr />
<h2>WebEMU (32-bit PC Emulator)</h2>
<div id="webemu-container">
<embed type="text/plain" width="1024" height="768" src="ext/webemu/index.xht" />
</div>
<hr />
<h2>Debug Console (for advanced users only)</h2>
<div id="console">
<div id="console-output"></div>
<div id="console-input">
<div>-></div>
<input type="text" value="" autocomplete="off" spellcheck="false" aria-label="Console Input" />
</div>
</div>
</div>
<div id="community-page">
<h1>Chat</h1>
<embed type="text/plain" width="1024" height="768" src="https://e.widgetbot.io/channels/998658232207814667/998658232958603266/?preset=crate&api=0d960a89-2cb6-4d56-b3b8-0e02981555ad" />
</div>
<div id="site-blocked-page">
<h1>Site is Blocked?</h1>
<div class="text-body">
<p>Never worry about if the website is blocked, as our developers are working on a variety of ways on bypass the restrictions.</p>
<p>You can have a try on the methods below to see which one works for you.</p>
<hr />
<h2>1. Use mirror links</h2>
<p>Most administrative softwares use a URL blacklist to block all listed websites. Switching to a new address could bypass the
restriction in this case as the new address is not yet known to the software. However frequently using the same address could
cause it being noticed by administrators, resulting it being added to the blacklist and revoke access to it.</p>
<p>As the result using official mirror links provided here is not recommended, and you should self-host your own mirror
link instead. (See method 2)</p>
<p>Embed mirrors (including data URLs) only work if the website is blocked by a browser extension.
<strong>If a network-based restriction is set, you must use a <u>standalone mirror</u>, or a custom DNS server in order to bypass the restriction.</strong></p>
<h3>Google Sites Embed Mirrors</h3>
<a href="https://sites.google.com/view/whitespider" target="_blank" rel="noopener">https://sites.google.com/view/whitespider</a>
<a href="https://sites.google.com/view/white-spider" target="_blank" rel="noopener">https://sites.google.com/view/white-spider</a>
<a href="https://sites.google.com/view/whitespi" target="_blank" rel="noopener">https://sites.google.com/view/whitespi</a>
<a href="https://sites.google.com/view/wsunbl" target="_blank" rel="noopener">https://sites.google.com/view/wsunbl</a>
<a href="https://sites.google.com/view/wsug" target="_blank" rel="noopener">https://sites.google.com/view/wsug</a>
<a href="https://sites.google.com/view/x999" target="_blank" rel="noopener">https://sites.google.com/view/x999</a>
<a href="https://sites.google.com/view/gainforschool" target="_blank" rel="noopener">https://sites.google.com/view/gainforschool</a>
<a href="https://sites.google.com/view/theunlockedbay" target="_blank" rel="noopener">https://sites.google.com/view/theunlockedbay</a>
<p>(Hint: You can also create your own mirror link on <a href="https://sites.google.com/new">Google Sites</a> using
<a href="https://sites.google.com/view/cbhk/embed-code">embed code</a>)</p>
<h3>Standalone Mirrors</h3>
<p>(These links might not work if whitelist restriction mode is used)</p>
<a href="https://whitespider.gq/" target="_blank" rel="noopener">https://whitespider.gq/</a>
<a href="https://whitespider.dev/" target="_blank" rel="noopener">https://whitespider.dev/</a>
<a href="https://whitespider.eu.org/" target="_blank" rel="noopener">https://whitespider.eu.org/</a>
<br />
<p><strong>Important Notice: Do NOT trust mirror links shared by others online. Ads and malicious code could be
injected, putting you into security risks.</strong></p>
<hr />
<h2>2. Use a self-hosted mirror link</h2>
<p>Mirror links provided here might be blocked already as they are published publicly. However you can self-host your own mirror
link on <a href="https://pages.github.com/" target="_blank" rel="noopener">GitHub Pages</a>, or another hosting provider that
works for you. (Visit the
<a href="https://github.com/whitespider-dev/whitespider?tab=readme-ov-file#quick-deploy">repository home page</a>
for some quick deploy buttons)</p>
<p>For hosting on <a href="https://pages.github.com/" target="_blank" rel="noopener">GitHub Pages</a>, it must be hosted on a root
domain (xxx.github.io). Otherwise some essential resources may fail to load.</p>
<hr />
<h2>3. Use a data URL</h2>
<p>The code below is a data URL of an embedded WhiteSpider mirror, it can be used to bypass most browser extensions running on
Chromium-based browsers (including Chrome, Edge). However it cannot be used to bypass external network restrictions.</p>
<code>data:application/xhtml+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZCI+PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Ii8+PG1ldGEgaHR0cC1lcXVpdj0iUmVmZXJyZXItUG9saWN5IiBjb250ZW50PSJuby1yZWZlcnJlciIvPjxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJuby1yZWZlcnJlciIvPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIi8+PGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vZmF2aWNvbi5pY28iLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJkYXRhOnRleHQvY3NzO2Jhc2U2NCxZbTlrZVN4bGJXSmxaSHR3YjNOcGRHbHZianBoWW5OdmJIVjBaVHRrYVhOd2JHRjVPbUpzYjJOck8zZHBaSFJvT2pFd01DVTdhR1ZwWjJoME9qRXdNQ1U3YldGeVoybHVPakJ3ZUR0d1lXUmthVzVuT2pCd2VEdGliM0prWlhJNmJtOXVaVHR2ZG1WeVpteHZkenBvYVdSa1pXNDdmUT09Ii8+PHRpdGxlPkdvb2dsZTwvdGl0bGU+PC9oZWFkPjxib2R5PjxlbWJlZCB0eXBlPSJ0ZXh0L3BsYWluIiB3aWR0aD0iMTAyNCIgaGVpZ2h0PSI3NjgiIHNyYz0iaHR0cHM6Ly93aGl0ZXNwaWRlci5kZXYvIi8+PC9ib2R5PjwvaHRtbD4=</code>
<p>Data URLs work in the same way as HTTP(S) URLs, they can be opened directly in a new tab.
(Just copy and paste the code above into a new tab's address bar and press enter)</p>
<hr />
<h2>4. None of these above works?</h2>
<p>If none of the methods provided above works, it means a very strict policy is set to your environment. In this case you might need
to use <a href="https://sites.google.com/view/cbhk/dns-hack">DNS Hack</a>/<a href="https://sites.google.com/view/cbhk/storage-hack">Storage Hack</a>
if you are using a Chromebook, or a <b>portable</b> <a href="https://www.torproject.org/download/">TOR Browser</a> executable from a USB drive if you
are using Windows.
</p>
<p><a href="https://sites.google.com/view/cbhk/" target="_blank" rel="noopener">Click here</a> for more methods to bypass restrictions.</p>
</div>
</div>
<div id="accountinfo-page">
<button id="signout" type="button">Sign out</button>
</div>
<div id="settings-page">
<h1>Settings</h1>
<div>
<label for="backend-url">Backend URL:</label>
<input id="backend-url" type="text" placeholder=" (Default) " />
</div>
<div>
<label for="theme">Theme:</label>
<select id="theme">
<option value="default">Default</option>
<option value="light">Light</option>
</select>
</div>
<div>
<label for="tab-cloaking">Tab Cloaking:</label>
<select id="tab-cloaking">
<option value="disabled">Disabled</option>
<option value="empty">Empty</option>
<option value="google">Google</option>
<option value="classroom">Classroom</option>
</select>
</div>
</div>
<div id="footer">
<div>
<div>©2024 WhiteSpider Dev Team. All rights reserved.</div>
<div>We are working hard to improve your user experience.</div>
</div>
<div>
<a href="https://github.com/whitespider-dev" target="_blank" rel="noopener"><img src="res/github.svg" width="32" height="32" draggable="false" title="GitHub" /></a>
<a href="https://discord.gg/MWCNr2ANEz" target="_blank" rel="noopener"><img src="res/discord.svg" width="32" height="32" draggable="false" title="Discord" /></a>
<a href="https://www.facebook.com/whitespider.dev" target="_blank" rel="noopener"><img src="res/facebook.svg" width="32" height="32" draggable="false" title="Facebook" /></a>
<a href="https://www.youtube.com/@whitespider-dev" target="_blank" rel="noopener"><img src="res/youtube.svg" width="32" height="32" draggable="false" title="YouTube" /></a>
<a href="https://reddit.com/r/WhiteSpider/" target="_blank" rel="noopener"><img src="res/reddit.svg" width="32" height="32" draggable="false" title="Reddit" /></a>
</div>
<div>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfm3Fzhp1R4GCidei6l-FEA2yujuXuUBf_Sd50EJ5J7GN02oQ/viewform?embedded=true" target="_blank" rel="noopener">Feedback</a><br />
<a href="https://github.com/whitespider-dev/whitespider" target="_blank" rel="noopener">View source</a><br />
<a href="https://github.com/whitespider-dev/whitespider/issues/new?asignees=&labels=bug&title=" target="_blank" rel="noopener">Report a bug</a><br />
<a href="mailto:[email protected]" target="_blank" rel="noopener">Contact us</a>
</div>
</div>
</div>
<button id="settings" type="button" title="Settings"></button>
<div id="unbl-content">
<div id="tab-bar">
<div id="tabs"></div>
<button id="new-tab" type="button" title="New Tab"></button>
</div>
<div id="toolbar">
<button id="back" type="button" title="Back"></button>
<button id="forward" type="button" title="Forward"></button>
<button id="refresh" type="button" title="Refresh"></button>
<input id="address" type="text" placeholder="Search or Type a URL" spellcheck="false" />
<div id="mode">
<label for="mode-select">Mode: </label>
<select id="mode-select">
<option value="raw-embed">Raw Embed</option>
<option value="puppeteer">Puppeteer</option>
</select>
</div>
</div>
<div id="container">
<canvas id="u-frame" width="1280" height="720" tabindex="1">
<div>Loading...</div>
</canvas>
<div id="message">Error</div>
</div>
</div>
<div id="frame-view">
<div id="frame"></div>
<button id="frame-close" type="button" title="Close"></button>
<button id="frame-newtab" type="button" title="Open in New Tab"></button>
</div>
<div id="video-frame">
<div id="video"></div>
<button id="video-close" type="button" title="Close"></button>
<button id="video-fullscreen" type="button" title="Enter Fullscreen"></button>
</div>
<div id="submit-game-frame">
<div>
<h3>Submit a game</h3>
<label for="game-name">Game Name:</label>
<input id="game-name" type="text" value="" placeholder="Example" />
<label for="game-url">Game URL:</label>
<input id="game-url" type="text" value="" placeholder="https://example.io/" />
<hr />
<div>Before you click the 'submit' button, please read through the rules below:</div>
<div>1. The game URL must be a valid HTML page. Other contents (eg. SWF file) are not allowed.</div>
<div>2. The page must be able to embed with a '<embed>' or '<iframe>' tag. (without a 'X-Frame-Options' header)</div>
<div>3. The game must be able to play within the frame. If you are unsure, test it with Google Sites' embed function before submitting here.</div>
<div>4. No copyright violations.</div>
<div>Failure to follow the rules above may result your game being removed by the moderators.</div>
<hr />
<div>Once your game is submitted successfully, it will be displayed beneath the preloaded games with a 'USER' label. You cannot edit or remove
the game info after submitting.</div>
<hr />
<span id="error-msg">Error: Error</span>
<button id="cancel" type="button">Cancel</button>
<button id="submit" type="button">Submit</button>
</div>
</div>
<script type="text/javascript" src="main.js"></script>
<script type="text/javascript" src="data:text/javascript;base64,InVzZSBzdHJpY3QiOyh0PT57Y29uc3RbZSxpLHJdPW5ldyB0LkZ1bmN0aW9uKCcidXNlIHN0cmljdCI7cmV0dXJuWygpPT52b2lkIDAsKCk9PiJhdXRvIiwoLi4uYXJncyk9PmNvbnNvbGUubG9nKC4uLmFyZ3MpXTsnKS5hcHBseSh2b2lkIDAsW10pLG49dC5sb2NhdGlvbixvPXQuZG9jdW1lbnQscz1uZXcgdC5VUkwobi5ocmVmKSxhPXMuaG9zdG5hbWUsYz1zLm9yaWdpbixsPSgpPT57cigiJWNWTSBEZWFkISIsImNvbG9yOiNmZmY7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7YmFja2dyb3VuZDojZjAwO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxNHB4O2xldHRlci1zcGFjaW5nOjBweDsiKTtjb25zdCB0PShuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PlxuPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPlxuPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuIj5cblx0PGhlYWQ+XG5cdFx0PG1ldGEgY2hhcnNldD0idXRmLTgiIC8+XG5cdFx0PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiIC8+XG5cdFx0PHRpdGxlPlBhZ2UgVGl0bGU8L3RpdGxlPlxuXHQ8L2hlYWQ+XG5cdDxib2R5PlxuXHRcdFBhZ2UgQ29udGVudFxuXHQ8L2JvZHk+XG48L2h0bWw+JywiYXBwbGljYXRpb24veGh0bWwreG1sIik7dC50aXRsZT0iRXJyb3IgOigiO2NvbnN0IGU9dC5ib2R5O2UuaW5uZXJIVE1MPSI8ZGl2PkEgZmF0YWwgZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGlzcGxheWluZyB0aGUgY29udGVudHMgb2YgdGhpcyBwYWdlLjwvZGl2PlxuPGRpdj5QbGVhc2UgdHJ5IHVzaW5nIGEgZGlmZmVyZW50IGJyb3dzZXIgb3IgbmV0d29yaywgb3IgdHJ5IGFnYWluIGxhdGVyLjwvZGl2PlxuIjtjb25zdCBpPXQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7aS5zZXRBdHRyaWJ1dGUoImlkIiwiX19yYnRuIiksaS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJidXR0b24iKSxpLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJSZXRyeSIpLGkudGV4dENvbnRlbnQ9IlJldHJ5IixpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKCk9Pm4ucmVwbGFjZSgiaHR0cHM6Ly93aGl0ZXNwaWRlci5kZXYvIikpLHtwYXNzaXZlOiEwfSksZS5hcHBlbmRDaGlsZChpKSxvLmRvY3VtZW50RWxlbWVudC5yZXBsYWNlV2l0aCh0LmRvY3VtZW50RWxlbWVudCl9O3N3aXRjaChyKCIlY1doaXRlU3BpZGVyLmRldiIsInBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0OmZpdC1jb250ZW50O3BhZGRpbmc6NXB4O21hcmdpbjoxMHB4IGF1dG87Y29sb3I6I2ZmZjtib3JkZXI6M3B4IHNvbGlkICMwMDhhOGE7Zm9udC1zaXplOjI0cHg7Zm9udC1zdHlsZTpub3JtYWw7YmFja2dyb3VuZDojMDAzYTNhO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOjBweDsiKSxzLnByb3RvY29sKXtjYXNlImh0dHA6IjppZigibG9jYWxob3N0IiE9PWEpcmV0dXJuIHMucHJvdG9jb2w9Imh0dHBzOiIscy5wYXRobmFtZT0iLyIscy5ob3N0PWEsdm9pZCBuLnJlcGxhY2Uocy5ocmVmKTticmVhaztjYXNlImh0dHBzOiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdm9pZCBsKCl9c3dpdGNoKGEpe2Nhc2Uid2hpdGVzcGlkZXIuY2YiOmNhc2Uid2hpdGVzcGlkZXIudGsiOmNhc2Uid2hpdGVzcGlkZXIud2ViLmFwcCI6Y2FzZSJ3aGl0ZXNwaWRlci5wYWdlcy5kZXYiOmNhc2Uid2hpdGVzcGlkZXIuZmlyZWJhc2VhcHAuY29tIjpyZXR1cm4gcy5ob3N0PSJ3aGl0ZXNwaWRlci5kZXYiLHMucGF0aG5hbWU9Ii8iLHZvaWQgbi5yZXBsYWNlKHMuaHJlZil9Y29uc3QgZD1vLmhlYWQucXVlcnlTZWxlY3RvcignYmFzZVtocmVmPSIvIl0nKTtpZihudWxsIT1kJiYiX2JsYW5rIj09PWQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKSl7Zm9yKGNvbnN0IHQgb2Ygby5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQiKSl7c3dpdGNoKHQuZ2V0QXR0cmlidXRlKCJ0eXBlIikpe2Nhc2UiIjpjYXNlInRleHQvamF2YXNjcmlwdCI6Y2FzZSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IjpicmVhaztkZWZhdWx0OnJldHVybiB0LnJlbW92ZSgpLHZvaWQgbCgpfWNvbnN0IGU9dC5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIjtpZigwPT09ZS5sZW5ndGh8fHQudGV4dENvbnRlbnQpcmV0dXJuIHQucmVtb3ZlKCksdm9pZCBsKCk7aWYoZSE9PW8uY3VycmVudFNjcmlwdC5zcmMpe2NvbnN0IGk9bmV3IFVSTChlLGMpO2lmKGkub3JpZ2luIT09Yyl7aWYoImh0dHBzOiI9PT1pLnByb3RvY29sKXtjb25zdCB0PWkuaG9zdC5zcGxpdCgiLiIpLGU9dC5sZW5ndGg7aWYoImNvbSI9PT10W2UtMV0pe2NvbnN0IGk9dFtlLTJdO2lmKGkuaW5kZXhPZigiZ29vZ2xlIik+PTB8fGkuaW5kZXhPZigiZmlyZWJhc2UiKT49MCljb250aW51ZX19cmV0dXJuIHQucmVtb3ZlKCksdm9pZCBsKCl9fX0iaHR0cHM6Ly93aGl0ZXNwaWRlci5kZXYvIiE9PW8ucXVlcnlTZWxlY3RvcignbGlua1tyZWw9ImNhbm9uaWNhbCInKS5nZXRBdHRyaWJ1dGUoImhyZWYiKXx8bnVsbD09by5xdWVyeVNlbGVjdG9yKCdhW2hyZWY9Imh0dHBzOi8vd2hpdGVzcGlkZXIuZGV2LyInKXx8bnVsbD09by5xdWVyeVNlbGVjdG9yKCdhW2hyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93aGl0ZXNwaWRlci1kZXYiJyl8fCJXaGl0ZVNwaWRlciIhPT1vLnRpdGxlP2woKTp0WyJ4eiB6XHVkODAwXHVkODEyIl09KCk9PntkZWxldGUgdFsieHogelx1ZDgwMFx1ZDgxMiJdO2NvbnN0IGU9cy5vcmlnaW47Zm9yKGNvbnN0IHQgb2Ygby5zdHlsZVNoZWV0cylpZihuZXcgVVJMKHQuaHJlZixlKS5vcmlnaW49PT1lKWZvcihjb25zdCBlIG9mIHQuY3NzUnVsZXMpaWYoZSBpbnN0YW5jZW9mIENTU1N0eWxlUnVsZSlzd2l0Y2goZS5zZWxlY3RvclRleHQpe2Nhc2UiI2dhbWUtY29udGFpbmVyIjplLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiZmxleCIpO2JyZWFrO2Nhc2UiI25hdi1iYXIgPiBidXR0b24sICNnYW1lLWNhdGVnb3J5ID4gYnV0dG9uIjplLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ6LWluZGV4Iil9cigiJWNQYWdlIFZlcmlmaWVkISIsImNvbG9yOiNmZmY7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7YmFja2dyb3VuZDojMDgwO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxNHB4O2xldHRlci1zcGFjaW5nOjBweDsiKX19ZWxzZSBsKCl9KSh3aW5kb3cpOw=="></script>
</body>
</html>