forked from bobthecow/genghis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
genghis.php
814 lines (805 loc) · 549 KB
/
genghis.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
<?php
/**
* Genghis v1.4.1
*
* The single-file MongoDB admin app
*
* http://genghisapp.com
*
* @author Justin Hileman <justin@justinhileman.info>
*/
class Genghis_Api extends Genghis_App { const ROUTE_PATTERN = '~^/?servers(?:/(?P<server>[^/]+)(?P<databases>/databases(?:/(?P<database>[^/]+)(?P<collections>/collections(?:/(?P<collection>[^/]+)(?P<documents>/documents(?:/(?P<document>[^/]+))?)?)?)?)?)?)?/?$~'; const CONVERT_JSON_ROUTE = '~/?convert-json/?$~'; const CHECK_STATUS_ROUTE = '~/?check-status/?$~'; const PAGE_LIMIT = 50; protected $servers; public function run() { try { return parent::run(); } catch (Genghis_HttpException $e) { $msg = $e->getMessage() ? $e->getMessage() : Genghis_Response::getStatusText($e->getStatus()); $response = new Genghis_JsonResponse(array('error' => $msg), $e->getStatus()); $response->render(); } } public function route($method, $path) { if (preg_match(self::CHECK_STATUS_ROUTE, $path)) { return $this->checkStatus(); } if (preg_match(self::CONVERT_JSON_ROUTE, $path)) { $decoder = new Genghis_JsonDecoder; return new Genghis_JsonResponse($decoder->decode(file_get_contents('php://input'))); } $p = array(); if (preg_match(self::ROUTE_PATTERN, $path, $p)) { foreach ($p as $i => $val) { if (is_numeric($i) || empty($val)) { unset($p[$i]); } } if (isset($p['documents'])) { if (isset($p['document'])) { switch ($method) { case 'GET': return $this->findDocument($p['server'], $p['database'], $p['collection'], $p['document']); case 'PUT': return $this->updateDocument($p['server'], $p['database'], $p['collection'], $p['document'], $this->getRequestData()); case 'DELETE': return $this->removeDocument($p['server'], $p['database'], $p['collection'], $p['document']); default: throw new Genghis_HttpException(405); } } else { switch ($method) { case 'GET': return $this->findDocuments( $p['server'], $p['database'], $p['collection'], (string) $this->getQueryParam('q', ''), (int) $this->getQueryParam('page', 1) ); case 'POST': return $this->insertDocument($p['server'], $p['database'], $p['collection'], $this->getRequestData()); case 'DELETE': return $this->truncateCollection($p['server'], $p['database'], $p['collection']); default: throw new Genghis_HttpException(405); } } } elseif (isset($p['collections'])) { if (isset($p['collection'])) { switch ($method) { case 'GET': return $this->selectCollection($p['server'], $p['database'], $p['collection']); case 'DELETE': return $this->dropCollection($p['server'], $p['database'], $p['collection']); default: throw new Genghis_HttpException(405); } } else { switch ($method) { case 'GET': return $this->listCollections($p['server'], $p['database']); case 'POST': return $this->createCollection($p['server'], $p['database'], $this->getRequestData()); default: throw new Genghis_HttpException(405); } } } elseif (isset($p['databases'])) { if (isset($p['database'])) { switch ($method) { case 'GET': return $this->selectDatabase($p['server'], $p['database']); case 'DELETE': return $this->dropDatabase($p['server'], $p['database']); default: throw new Genghis_HttpException(405); } } else { switch ($method) { case 'GET': return $this->listDatabases($p['server']); case 'POST': return $this->createDatabase($p['server'], $this->getRequestData()); default: throw new Genghis_HttpException(405); } } } else { if (isset($p['server'])) { switch ($method) { case 'GET': return $this->showServer($p['server']); case 'DELETE': return $this->removeServer($p['server']); default: throw new Genghis_HttpException(405); } } else { switch ($method) { case 'GET': return $this->listServers(); case 'POST': return $this->addServer($this->getRequestData()); default: throw new Genghis_HttpException(405); } } } } throw new Genghis_HttpException(404); } protected function checkStatus() { $alerts = array(); if (!class_exists('Mongo', false)) { $alerts[] = array( 'level' => 'error', 'msg' => '<strong>Mongo PHP class not found.</strong> ' . 'Have you installed and enabled the PECL Mongo drivers?', ); } return new Genghis_JsonResponse(compact('alerts')); } protected function listServers() { $this->initServers(); $servers = array(); foreach (array_keys($this->servers) as $name) { $servers[] = $this->dumpServer($name); } return new Genghis_JsonResponse($servers); } protected function addServer(array $data) { if (!isset($data['name'])) { throw new Genghis_HttpException(400, 'Server name must be specified'); } $dsn = $data['name']; if (strpos($dsn, '://') === false) { $dsn = 'mongodb://'.$dsn; } else if (strpos($dsn, 'mongodb://') !== 0) { throw new Genghis_HttpException(400, 'Malformed server dsn'); } $chunks = parse_url($dsn); if ($chunks === false || isset($chunks['query']) || isset($chunks['fragment']) || !isset($chunks['host'])) { throw new Genghis_HttpException(400, 'Malformed server dsn'); } $name = $chunks['host']; if (isset($chunks['user'])) { $name = $chunks['user'].'@'.$name; } if (isset($chunks['port']) && $chunks['port'] !== 27017) { $name .= ':'.$chunks['port']; } $this->initServers(); $this->servers[$name] = $dsn; $this->saveServers(); return $this->showServer($name); } protected function removeServer($name) { $this->initServers(); if (isset($this->servers[$name])) { unset($this->servers[$name]); $this->saveServers(); return new Genghis_JsonResponse(array('success' => true)); } throw new Genghis_HttpException(404); } protected function showServer($name) { $this->initServers(); if (isset($this->servers[$name])) { return new Genghis_JsonResponse($this->dumpServer($name)); } else { throw new Genghis_HttpException(404); } } protected function dumpServer($name) { try { $res = $this->getMongo($name)->listDBs(); $dbs = array_map(function($db) { return $db['name']; }, $res['databases']); return array( 'id' => $name, 'name' => $name, 'size' => $res['totalSize'], 'count' => count($dbs), 'databases' => $dbs, ); } catch (Exception $e) { return array( 'id' => $name, 'name' => $name, 'error' => 'Unable to connect to Mongo server at "'.$name.'".', ); } } protected function initServers() { if (!isset($this->servers)) { if (isset($_COOKIE['genghis_servers']) && $servers = json_decode($_COOKIE['genghis_servers'], true)) { $this->servers = $servers; } else { $this->servers = array('localhost' => 'localhost:27017'); } } } protected function saveServers() { setcookie('genghis_servers', json_encode($this->servers), time()+60*60*24*365, '/'); } protected function dumpDatabase($server, $database) { $dbs = $this->getMongo($server)->listDBs(); foreach ($dbs['databases'] as $db) { if ($db['name'] == $database) { $colls = array(); foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { $colls[] = $coll->getName(); } return array( 'id' => $db['name'], 'name' => $db['name'], 'count' => count($colls), 'collections' => $colls, 'size' => $db['sizeOnDisk'], ); } } } protected function selectDatabase($server, $database) { if ($db = $this->dumpDatabase($server, $database)) { return new Genghis_JsonResponse($db); } throw new Genghis_HttpException(404); } protected function dropDatabase($server, $database) { $this->getDatabase($server, $database)->drop(); return new Genghis_JsonResponse(array('success' => true)); } protected function listDatabases($server) { $dbs = array(); $mongo = $this->getMongo($server); $res = $this->getMongo($server)->listDBs(); foreach ($res['databases'] as $db) { $dbs[] = $this->dumpDatabase($server, $db['name']); } return new Genghis_JsonResponse($dbs); } protected function createDatabase($server, array $data) { if (!isset($data['name'])) { throw new HttpException(400, 'Database name must be specified'); } $this->getCollection($server, $data['name'], '__genghis_tmp_collection__')->drop(); return $this->selectDatabase($server, $data['name']); } protected function dumpCollection($server, $database, $collection) { foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { if ($coll->getName() == $collection) { return array( 'id' => $coll->getName(), 'name' => $coll->getName(), 'count' => $coll->count(), 'indexes' => $coll->getIndexInfo(), ); } } } public function selectCollection($server, $database, $collection) { if ($coll = $this->dumpCollection($server, $database, $collection)) { return new Genghis_JsonResponse($coll); } throw new Genghis_HttpException(404); } public function truncateCollection($server, $database, $collection) { if ($coll = $this->getCollection($server, $database, $collection)) { $coll->remove(array()); return $this->selectCollection($server, $database, $collection); } throw new Genghis_HttpException(404); } public function dropCollection($server, $database, $collection) { if ($coll = $this->getCollection($server, $database, $collection)) { $coll->drop(); return new Genghis_JsonResponse(array('success' => true)); } throw new Genghis_HttpException(404); } public function listCollections($server, $database) { $colls = array(); foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { $colls[] = $this->dumpCollection($server, $database, $coll->getName()); } return new Genghis_JsonResponse($colls); } public function createCollection($server, $database, array $data = array()) { if (!isset($data['name'])) { throw new Genghis_HttpException(400, 'Database name must be specified'); } $this->getDatabase($server, $database)->createCollection($data['name']); return $this->selectCollection($server, $database, $data['name']); } public function findDocument($server, $database, $collection, $document) { $doc = $this->getCollection($server, $database, $collection)->findOne(array( '_id' => new MongoId($document), )); if ($doc) { return new Genghis_JsonResponse($doc); } throw new Genghis_HttpException(404); } public function updateDocument($server, $database, $collection, $document, array $data) { $coll = $this->getCollection($server, $database, $collection); $query = array('_id' => new MongoId($document)); if ($coll->findOne($query)) { $result = $coll->update($query, $data, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return $this->findDocument($server, $database, $collection, $document); } else { throw new Genghis_HttpException; } } else { throw new Genghis_HttpException(404); } } public function removeDocument($server, $database, $collection, $document) { $coll = $this->getCollection($server, $database, $collection); $query = array('_id' => new MongoId($document)); if ($coll->findOne($query)) { $result = $coll->remove($query, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return new Genghis_JsonResponse(array('success' => true)); } else { throw new Genghis_HttpException; } } else { throw new Genghis_HttpException(404); } } public function findDocuments($server, $database, $collection, $query = null, $page = 1) { $offset = self::PAGE_LIMIT * ($page - 1); $cursor = $this->getCollection($server, $database, $collection) ->find($query ? $this->decodeJson($query) : array()) ->limit(self::PAGE_LIMIT) ->skip($offset); $count = $cursor->count(); return new Genghis_JsonResponse(array( 'count' => $count, 'page' => $page, 'pages' => max(1, ceil($count / self::PAGE_LIMIT)), 'per_page' => self::PAGE_LIMIT, 'offset' => $offset, 'documents' => array_values(iterator_to_array($cursor)), )); } public function insertDocument($server, $database, $collection, array $data = null) { if (empty($data)) { throw new Genghis_HttpException(400, 'Malformed document'); } $result = $this->getCollection($server, $database, $collection) ->insert($data, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return new Genghis_JsonResponse($data); } else { throw new Genghis_HttpException; } } protected function decodeJson($data) { try { $decoder = new Genghis_JsonDecoder; return $this->thunkMongoQuery($decoder->decode($data)); } catch (Genghis_JsonException $e) { throw new Genghis_HttpException(400, 'Malformed document'); } } protected function thunkMongoQuery(array $query) { foreach ($query as $key => $val) { if (is_array($val)) { if (isset($val['$id']) && count($val) == 1) { $query[$key] = new MongoId($val['$id']); } elseif (count($val) == 2 && isset($val['sec']) && isset($val['usec'])) { $query[$key] = new MongoDate($val['sec'], $val['usec']); } else { $query[$key] = $this->thunkMongoQuery($val); } } else if ($val instanceof Genghis_JsonRegex) { $query[$key] = new MongoRegex($val->pattern); } } return $query; } protected function getRequestData() { return $this->decodeJson(file_get_contents('php://input')); } protected function getMongo($server) { $this->initServers(); if (isset($this->servers[$server])) { return new Mongo($this->servers[$server]); } } protected function getDatabase($server, $database) { return $this->getMongo($server)->selectDB($database); } protected function getCollection($server, $database, $collection) { return $this->getDatabase($server, $database)->selectCollection($collection); } }
class Genghis_App { protected $assets = array(); protected $assetEtags = array(); protected $baseUrl; public function run() { try { $response = $this->route($this->getRequestMethod(), $this->getRequestPath()); if ($response instanceof Genghis_Response) { $response->render(); } else { throw new Genghis_HttpException(500); } } catch (Genghis_HttpException $e) { $errorResponse = $this->renderTemplate( 'error.html.mustache', $e->getStatus(), array( 'message' => $e->getMessage(), 'status' => $e->getStatus(), ) ); $errorResponse->render(); } } public function route($method, $path) { if ($this->isJsonRequest()) { try { $api = new Genghis_Api; return $api->route($method, $path); } catch (Genghis_HttpException $e) { $msg = $e->getMessage() ? $e->getMessage() : Genghis_Response::getStatusText($e->getStatus()); return new Genghis_JsonResponse(array('error' => $msg, 'status' => $e->getStatus()), $e->getStatus()); } } else { if (strpos($path, '/assets/') === 0) { return $this->getAsset(substr($path, 8)); } else { return $this->renderTemplate('index.html.mustache'); } break; } } protected function isJsonRequest() { if (in_array($this->getRequestMethod(), array('POST', 'PUT'))) { $type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : 'x-www-form-urlencoded'; } else { $type = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : 'text/html'; } return strpos($type, 'application/json') !== false || strpos($type, 'application/javascript') !== false; } protected function getBaseUrl() { if (!isset($this->baseUrl)) { $this->baseUrl = $this->prepareBaseUrl(); } return $this->baseUrl; } protected function prepareBaseUrl() { $filename = basename($_SERVER['SCRIPT_FILENAME']); foreach (array('SCRIPT_NAME', 'PHP_SELF', 'ORIG_SCRIPT_NAME') as $key) { if (isset($_SERVER[$key]) && basename($_SERVER[$key]) == $filename) { $baseUrl = $_SERVER[$key]; break; } } if (!isset($baseUrl)) { $path = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : ''; $file = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : ''; $chunks = array_reverse(explode('/', trim($file, '/'))); $index = 0; $last = count($chunks); $baseUrl = ''; do { $seg = $segs[$index]; $baseUrl = '/'.$seg.$baseUrl; ++$index; } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos)); } $requestUri = $_SERVER['REQUEST_URI']; if ($baseUrl && 0 === strpos($requestUri, $baseUrl)) { return $baseUrl; } if ($baseUrl && 0 === strpos($requestUri, dirname($baseUrl))) { return rtrim(dirname($baseUrl), '/'); } $truncatedRequestUri = $requestUri; if (($pos = strpos($requestUri, '?')) !== false) { $truncatedRequestUri = substr($requestUri, 0, $pos); } $basename = basename($baseUrl); if (empty($basename) || !strpos($truncatedRequestUri, $basename)) { return ''; } if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) { $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl)); } return rtrim($baseUrl, '/'); } protected function getRequestMethod() { return $_SERVER['REQUEST_METHOD']; } protected function getRequestPath() { return isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/'; } protected function getQueryParams() { global $_GET; return $_GET; } protected function getQueryParam($name, $default = null) { $params = $this->getQueryParams(); if (isset($params[$name])) { return $params[$name]; } else { return $default; } } protected function renderTemplate($name, $status = 200, array $vars = array()) { $this->initAssets(); $defaults = array( 'base_url' => $this->getBaseUrl(), ); return new Genghis_Response(strtr($this->assets[$name], $this->prepareVars(array_merge($defaults, $vars))), $status); } protected function prepareVars($vars) { $ret = array(); foreach ($vars as $name => $var) { $ret['{{ '.$name.' }}'] = $var; } return $ret; } protected function getAsset($name) { $this->initAssets(); if (isset($this->assets[$name])) { return new Genghis_AssetResponse($name, $this->assets[$name], array( 'Last-Modified' => gmdate("D, d M Y H:i:s", filemtime(__FILE__))." GMT", 'Etag' => sprintf('"%s"', $this->assetEtags[$name]), )); } throw new Genghis_HttpException(404); } protected function initAssets() { if (empty($this->assets)) { $data = file_get_contents(__FILE__, false, null, __COMPILER_HALT_OFFSET__); foreach (preg_split("/^@@(?=[\w\d\.]+( [\w\d\.]+)?$)/m", $data, -1) as $asset) { if (trim($asset)) { list($line, $content) = explode("\n", $asset, 2); list($name, $etag) = explode(" ", $line, 2); $this->assets[$name] = trim($content); $this->assetEtags[$name] = $etag; } } } } }
class Genghis_AssetResponse extends Genghis_Response { protected $headers; private static $extMap = array( 'js' => 'application/x-javascript', 'json' => 'application/json', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'php' => 'text/html', 'txt' => 'text/plain', ); public function __construct($name, $content, $headers = array()) { parent::__construct($content); $this->name = $name; $this->headers = array_merge(array('Content-type' => $this->getContentType()), $headers); } protected function getContentType() { $parts = explode('.', $this->name); $ext = end($parts); if (isset(self::$extMap[$ext])) { return self::$extMap[$ext]; } else { return 'unknown/' . trim($ext); } } }
class Genghis_HttpException extends Exception { protected $status; public function __construct($status = 500, $msg = '') { $this->status = $status; parent::__construct(empty($msg) ? Genghis_Response::getStatusText($status) : $msg); } public function getStatus() { return $this->status; } }
class Genghis_JsonDecoder { const SLICE = 1; const IN_STR = 2; const IN_ARR = 3; const IN_OBJ = 4; const IN_CMT = 5; const IN_REGEX = 6; public function __construct() { $this->_mb_strlen = function_exists('mb_strlen'); $this->_mb_convert_encoding = function_exists('mb_convert_encoding'); $this->_mb_substr = function_exists('mb_substr'); } var $_mb_strlen = false; var $_mb_substr = false; var $_mb_convert_encoding = false; private function utf162utf8($utf16) { if ($this->_mb_convert_encoding) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); switch(true) { case ((0x7F & $bytes) == $bytes): return chr(0x7F & $bytes); case (0x07FF & $bytes) == $bytes: return chr(0xC0 | (($bytes >> 6) & 0x1F)) . chr(0x80 | ($bytes & 0x3F)); case (0xFFFF & $bytes) == $bytes: return chr(0xE0 | (($bytes >> 12) & 0x0F)) . chr(0x80 | (($bytes >> 6) & 0x3F)) . chr(0x80 | ($bytes & 0x3F)); } return ''; } private function utf82utf16($utf8) { if($this->_mb_convert_encoding) { return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } switch($this->strlen8($utf8)) { case 1: return $utf8; case 2: return chr(0x07 & (ord($utf8{0}) >> 2)) . chr((0xC0 & (ord($utf8{0}) << 6)) | (0x3F & ord($utf8{1}))); case 3: return chr((0xF0 & (ord($utf8{0}) << 4)) | (0x0F & (ord($utf8{1}) >> 2))) . chr((0xC0 & (ord($utf8{1}) << 6)) | (0x7F & ord($utf8{2}))); } return ''; } private function reduce_string($str) { $str = preg_replace(array( '#^\s*//(.+)$#m', '#^\s*/\*(.+)\*/#Us', '#/\*(.+)\*/\s*$#Us' ), '', $str); return trim($str); } public function decode($str) { $str = $this->reduce_string($str); switch (strtolower($str)) { case 'true': return true; case 'false': return false; case 'null': return null; default: $m = array(); if (is_numeric($str)) { return ((float) $str == (integer) $str) ? (integer) $str : (float) $str; } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { $delim = $this->substr8($str, 0, 1); $chrs = $this->substr8($str, 1, -1); $utf8 = ''; $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c < $strlen_chrs; ++$c) { $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); $ord_chrs_c = ord($chrs{$c}); switch (true) { case $substr_chrs_c_2 == '\b': $utf8 .= chr(0x08); ++$c; break; case $substr_chrs_c_2 == '\t': $utf8 .= chr(0x09); ++$c; break; case $substr_chrs_c_2 == '\n': $utf8 .= chr(0x0A); ++$c; break; case $substr_chrs_c_2 == '\f': $utf8 .= chr(0x0C); ++$c; break; case $substr_chrs_c_2 == '\r': $utf8 .= chr(0x0D); ++$c; break; case $substr_chrs_c_2 == '\\"': case $substr_chrs_c_2 == '\\\'': case $substr_chrs_c_2 == '\\\\': case $substr_chrs_c_2 == '\\/': if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || ($delim == "'" && $substr_chrs_c_2 != '\\"')) { $utf8 .= $chrs{++$c}; } break; case preg_match('/\\\u[0-9A-F]{4}/i', $this->substr8($chrs, $c, 6)): $utf16 = chr(hexdec($this->substr8($chrs, ($c + 2), 2))) . chr(hexdec($this->substr8($chrs, ($c + 4), 2))); $utf8 .= $this->utf162utf8($utf16); $c += 5; break; case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): $utf8 .= $chrs{$c}; break; case ($ord_chrs_c & 0xE0) == 0xC0: $utf8 .= $this->substr8($chrs, $c, 2); ++$c; break; case ($ord_chrs_c & 0xF0) == 0xE0: $utf8 .= $this->substr8($chrs, $c, 3); $c += 2; break; case ($ord_chrs_c & 0xF8) == 0xF0: $utf8 .= $this->substr8($chrs, $c, 4); $c += 3; break; case ($ord_chrs_c & 0xFC) == 0xF8: $utf8 .= $this->substr8($chrs, $c, 5); $c += 4; break; case ($ord_chrs_c & 0xFE) == 0xFC: $utf8 .= $this->substr8($chrs, $c, 6); $c += 5; break; } } return $utf8; } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { if ($str{0} == '[') { $stk = array(self::IN_ARR); $arr = array(); } else { $stk = array(self::IN_OBJ); $obj = array(); } array_push($stk, array('what' => self::SLICE, 'where' => 0, 'delim' => false)); $chrs = $this->substr8($str, 1, -1); $chrs = $this->reduce_string($chrs); if ($chrs == '') { if (reset($stk) == self::IN_ARR) { return $arr; } else { return $obj; } } $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c <= $strlen_chrs; ++$c) { $top = end($stk); $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == self::SLICE))) { $slice = $this->substr8($chrs, $top['where'], ($c - $top['where'])); array_push($stk, array('what' => self::SLICE, 'where' => ($c + 1), 'delim' => false)); if (reset($stk) == self::IN_ARR) { array_push($arr, $this->decode($slice)); } elseif (reset($stk) == self::IN_OBJ) { $parts = array(); if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:/Uis', $slice, $parts)) { $key = $this->decode($parts[1]); $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); $obj[$key] = $val; } elseif (preg_match('/^\s*([\p{L}\p{Nl}$_][\p{L}\p{Nl}$\p{Mn}\p{Mc}\p{Nd}\p{Pc}]*)\s*:/Uis', $slice, $parts)) { $key = $parts[1]; $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); $obj[$key] = $val; } else { throw new Genghis_JsonException; } } } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != self::IN_STR)) { array_push($stk, array('what' => self::IN_STR, 'where' => $c, 'delim' => $chrs{$c})); } elseif (($chrs{$c} == $top['delim']) && ($top['what'] == self::IN_STR) && (($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) { array_pop($stk); } elseif (($chrs{$c} == '[') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_ARR, 'where' => $c, 'delim' => false)); } elseif (($chrs{$c} == ']') && ($top['what'] == self::IN_ARR)) { array_pop($stk); } elseif (($chrs{$c} == '{') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_OBJ, 'where' => $c, 'delim' => false)); } elseif (($chrs{$c} == '}') && ($top['what'] == self::IN_OBJ)) { array_pop($stk); } elseif (($substr_chrs_c_2 == '/*') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_CMT, 'where' => $c, 'delim' => false)); $c++; } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == self::IN_CMT)) { array_pop($stk); $c++; for ($i = $top['where']; $i <= $c; ++$i) { $chrs = substr_replace($chrs, ' ', $i, 1); } } } if (in_array($top['what'], array(self::IN_CMT, self::IN_STR))) { throw new Genghis_JsonException; } if (reset($stk) == self::IN_ARR) { return $arr; } elseif (reset($stk) == self::IN_OBJ) { return $obj; } } elseif (preg_match('/^\/.*\/$/s', $str)) { return new Genghis_JsonRegex($str); } else { throw new Genghis_JsonException; } } } private function strlen8($str) { if ($this->_mb_strlen) { return mb_strlen($str, "8bit"); } return strlen($str); } private function substr8( $string, $start, $length=false ) { if ($length === false) { $length = $this->strlen8($string) - $start; } if ($this->_mb_substr) { return mb_substr($string, $start, $length, "8bit"); } return substr($string, $start, $length); } }
class Genghis_JsonException extends Exception { }
class Genghis_JsonRegex { public $pattern; public function __construct($pattern) { $this->pattern = $pattern; } public function __toString() { return $this->getPattern(); } }
class Genghis_JsonResponse extends Genghis_Response { public function renderHeaders() { $this->headers['Content-type'] = 'application/json'; $this->headers['Cache-Control'] = 'no-cache, must-revalidate'; $this->headers['Expires'] = 'Wed, 04 Aug 1982 00:00:00 GMT'; parent::renderHeaders(); } public function renderContent() { if (class_exists('Mongo') && version_compare(Mongo::VERSION, '1.0.11', '<')) { array_walk_recursive($this->data, array(__CLASS__, 'prepareData'), ini_get('mongo.cmd')); } print(json_encode($this->data)); } private static function prepareData(&$data, $key, $cmd = '$') { if (is_object($data) && $data instanceof MongoId) { $data = array($cmd.'id' => (string) $data); } } }
class Genghis_RedirectResponse extends Genghis_Response { public function __construct($url, $status = 301) { parent::__construct($url, $status); } public function render() { header(sprintf('Location: %s', $this->data), $this->status); } }
class Genghis_Response { protected static $statusCodes = array( 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 204 => 'No Content', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 400 => 'Bad Request', 401 => 'Unauthorized', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 412 => 'Precondition Failed', 415 => 'Unsupported Media Type', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', ); protected $data = ''; protected $status = 200; protected $headers = array(); public function __construct($data, $status = 200, $headers = array()) { $this->data = $data; $this->status = $status; $this->headers = $headers; } public function render() { $this->renderHeaders(); $this->renderContent(); } public static function getStatusText($status) { if (isset(self::$statusCodes[$status])) { return self::$statusCodes[$status]; } } protected function renderHeaders() { header(sprintf('HTTP/1.0 %s %s', $this->status, self::$statusCodes[$this->status])); foreach ($this->headers as $name => $val) { header(sprintf('%s: %s', $name, $val)); } } protected function renderContent() { print((string) $this->data); } }
$app = new Genghis_App;
$app->run();
__halt_compiler();
@@index.html.mustache 60a0efb0e9b70b3e242ccf9e9e8d0007
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis</title> <link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADL0lEQVRYw8VW r1fbQBy/P2X8SNpcAsgZYHJ7o0zyUhRvRS6ojap1ap1hGFaTIgCzGmqKADME NTU1MRVFVGwiIqIVERWfJYHA5Zq7lO5ty3ufd9f7fu/z+eT6vcuRlZUV/E+Q 5eXlqBO2syCeGxM+lY9kEf9tkH8hkmlgaWlpIpA2xsfCNg2y+fxcIiOb1gAv mMXJ5hJRggiGTqHl81BVBYqiBq0atblgjOo6jCjPANU0aAGobkg5iUzsQdQw AmENytwrfLTP0XH6cL0RRiMPrutF7c++g9bpAbbmVWjURKvTRbfbRau2J+Um sQArxifpmor3p214mObx0G514N//8ntndy9wD15DaCCeoGs5HHXcVKmxP4IX rIQ/FtsZOccJAzyILGgYFB/O+7wsbq8bKG+/SORulw/R7rlM1owG9LCQ7lu6 8Q3Jdx+hWV6PYizYeXvHnYkVEOVGBkRkelDt1XZSvnO4mUqSnKfjy/Wvx5Xg amBiBXgDjzDRGTLq7jXeCAQnUcRxo4lms4lauSjJ0yUGNuuJqu+d7UqJZgWh lIJF9N+H/QJrYIyrT5tCkrt5FPngMEoDpfoEf8LAgyjTL1QuGAMe6gUdvFl2 jrb6Dke2DZvHqY3PbwvTG3iAeRbUfPwM0ShpUgNm3RGeBWEhiuYSUYAW64wB wKmb0dkene9BPG5jFGtd8dnYrYkNsIQsKN1Hb8zuZxt5jQqJKF3HrmXBsnZh mlUMBOZ5EFEgRKPnMzRD2FtKYEKcHyP32k7soPbhYw3wLyw1sFa5Sq6le4Od BSX49ErE1UUcdRl534El0YgMhFslLRiON2+5L43n4GDnOeYXFqEEd4FcLgdV Ce8Gi5h79hL2j0Ei3amXpKtFYvF4z/J9TQtqwZ8srKHbx81lC99PTvD9/DK6 I4w4r+PBBVYF/AkDWdDW9tEe+HjK4zlNbKRxTWsgXFp+zPragDPwIP78j+EN HDSqJWTxhm0Iwg+IxJNYhVmyUKlUUK1Wo9YqmdFyp4nIuEiWw2mQZVqWS7KI ZzU1LRdR462k3l2x475obNa4KCZdgTgpC7yBLM6EARGpEhwu0xr4E/wGQ3S1 MEjLIesAAAAASUVORK5CYII="> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Rokkitt:400,700"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css"> <script type="text/template" id="alert-template"><div class="alert<% if (block) { %> alert-block<% } %> alert-<%= level %>"> <a class="close" href="#">×</a> <% if (block) { %> <p><%= msg %></p> <% } else { %> <%= msg %> <% } %> </div></script> <script type="text/template" id="collection-row-template"><td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="documents value"><%= obj.get('count') %></span> </td> <td> <span class="indexes has-details value"><%= obj.get('indexes').length %></span> <div class="details" title="<%= obj.get('indexes').length %> Index<% if (obj.get('indexes').length != 1) { %>es<% } %>"> <% if (obj.get('indexes').length> 0) { %> <ul class="index-details"> <% _.each(obj.get('indexes'), function(index) { %> <li><%= Genghis.Util.formatJSON(index.key) %></li> <% }); %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td class="action-column"> <button class="btn btn-mini btn-danger destroy">Remove</button> </td></script> <script type="text/template" id="collections-template"><header><h2>Collections</h2></header> <div class="content"> <table> <thead> <tr> <th>name</th> <th>documents</th> <th>indexes</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive form-horizontal"> <input class="name span4" type="text" size="30"> <button class="show btn">Add collection</button> <button class="add btn btn-primary">Add collection</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/template" id="database-row-template"><td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="collections has-details value"><%= obj.get('count') %></span> <div class="details" title="<%= obj.get('count') %> Collection<% if (obj.get('count') != 1) { %>s<% } %>"> <% if (obj.get('count')> 0) { %> <ul> <% _.each(_.first(obj.get('collections'), 15), function(collection) { %> <li><%= collection %></li> <% }); %> <% if (obj.get('count')> 15) { %> <li>…</li> <% } %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td> <span class="size value"><%= Genghis.Util.humanizeSize(obj.get('size')) %></span> </td> <td class="action-column"> <button class="btn btn-mini btn-danger destroy">Remove</button> </td></script> <script type="text/template" id="databases-template"><header><h2>Databases</h2></header> <div class="content"> <table> <thead> <tr> <th>name</th> <th>collections</th> <th>size</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive form-horizontal"> <input class="name span4" type="text" size="30"> <button class="show btn">Add database</button> <button class="add btn btn-primary">Add database</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/template" id="document-view-template"><div class="well"> <div class="document-actions"> <button class="btn btn-small btn-primary save">Save</button> <button class="btn btn-small cancel">Cancel</button> <button class="btn btn-small edit">Edit</button> <button class="btn btn-small btn-danger destroy">Delete</button> </div> <h3> <a class="id" href="<%= obj.url() %>"><%= obj.id %></a> </h3> <div class="document"><%= obj.prettyPrint() %></div> </div></script> <script type="text/template" id="document-template"><header><h2><%= model.id %></h2></header> <div class="content document-wrapper"></div></script> <script type="text/template" id="documents-template"><header><h2>Documents</h2></header> <div class="controls"> <button class="add-document btn btn-large">Add document</button> <div class="pagination-wrapper top"></div> </div> <div class="content document-wrapper"></div> <div class="controls"> <button class="add-document btn btn-large">Add document</button> <div class="pagination-wrapper top"></div> </div></script> <script type="text/template" id="keyboard-shortcuts-template"><div id="keyboard-shortcuts" class="modal"> <div class="modal-header"> <a href="#" class="close">×</a> <h3>Keyboard shortcuts</h3> </div> <div class="modal-body"> <ul> <li> <h4>Global</h4> <dl> <dt><kbd>?</kbd></dt> <dd>This cheat sheet</dd> <dt><kbd>s</kbd></dt> <dd>Go to servers</dd> <dt><kbd>u</kbd></dt> <dd>Go up one level</dd> </dl> <h4>Servers</h4> <dl> <dt><kbd>c</kbd></dt> <dd>New server</dd> </dl> <h4>Databases</h4> <dl> <dt><kbd>c</kbd></dt> <dd>New database</dd> </dl> </li> <li> <h4>Collections</h4> <dl> <dt><kbd>c</kbd></dt> <dd>New collection</dd> </dl> <h4>Documents</h4> <dl> <dt><kbd>/</kbd></dt> <dd>Search</dd> <dt><kbd>c</kbd></dt> <dd>New document</dd> <dt><kbd>n</kbd></dt> <dd>Next page</dd> <dt><kbd>p</kbd></dt> <dd>Previous page</dd> </dl> </li> </ul> </div> </div></script> <script type="text/template" id="nav-section-menu-template"><% _.each(collection.toArray().slice(0, 10), function(m) { %> <li<% if (m.id == model.id) { %> class="active"<% } %>><a href="<%= m.url() %>"> <%= m.id %> <span><%= Genghis.Util.humanizeCount(m.get('count') || 0) %></span> </a></li> <% }); %> <% if (collection.size()> 10) { %> <li class="divider"></li> <li><a href="<%= collection.url %>">More »</a></li> <% } %></script> <script type="text/template" id="nav-section-template"><a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= model.id %></a> <ul class="dropdown-menu"></ul></script> <script type="text/template" id="nav-template"><ul class="nav"> <li class="dropdown server"></li> <li class="dropdown database"></li> <li class="dropdown collection"></li> </ul> <form class="navbar-search"><input id="navbar-query" class="search-query" name="q" type="text" value="<%= Genghis.Util.escape(query) %>" /></form></script> <script type="text/template" id="new-document-template"><div id="new-document" class="modal editor"> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h3>New Document</h3> </div> <div class="modal-body"> <div class="wrapper"> <div id="editor-new" class="genghis-document-editor"></div> </div> </div> <div class="modal-footer"> <button class="btn cancel">Cancel</button> <button class="btn btn-primary save">Save</button> </div> </div></script> <script type="text/template" id="pagination-template"><div class="pagination pagination-right"> <ul> <li class="prev<% if (page == 1) print(' disabled'); %>"> <a<% if (page != 1) { %> href="<%= url(prev) %>"<% } %>>←</a> </li> <% if (start> 1) { %> <li class="first"><a href="<%= url(1) %>">1</a></li> <li class="disabled"><a>…</a></li> <% } %> <% for (var i = start; i <= end; i++) { %> <li<% if (page == i) print(' class="active"'); %>><a href="<%= url(i) %>"><%= i %></a></li> <% } %> <% if (end < pages) { %> <li class="disabled"><a>…</a></li> <li class="last"><a href="<%= url(pages) %>"><%= pages %></a></li> <% } %> <li class="next<% if (page == pages) print(' disabled'); %>"> <a<% if (page != pages) { %> href="<%= url(next) %>"<% } %>>→</a> </li> </ul> </div></script> <script type="text/template" id="server-row-template"><% if (obj.get('error')) { %> <td> <span class="value"><%= obj.get('name') %></span> <span class="label label-important" title="<%= Genghis.Util.escape(obj.get('error')) %>">Error</span> </td> <td></td> <td></td> <% } else { %> <td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="databases has-details value"><%= obj.get('count') %></span> <div class="details" title="<%= obj.get('count') %> Database<% if (obj.get('count') != 1) { %>s<% } %>"> <% if (obj.get('count')> 0) { %> <ul> <% _.each(_.first(obj.get('databases'), 15), function(database) { %> <li><%= database %></li> <% }); %> <% if (obj.get('count')> 15) { %> <li>…</li> <% } %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td> <span class="size value"><%= Genghis.Util.humanizeSize(obj.get('size')) %></span> </td> <% } %> <td class="action-column"> <button class="btn btn-mini btn-danger destroy">Remove</button> </td></script> <script type="text/template" id="servers-template"><header><h2>Servers</h2></header> <div class="content"> <table> <thead> <tr> <th>name</th> <th>databases</th> <th>size</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive form-horizontal"> <span class="input-append"> <input class="name span4" type="text" size="30"><span class="add-on help" title="user:pass@localhost:27017">?</span> </span> <button class="show btn">Add server</button> <button class="add btn btn-primary">Add server</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/javascript" src="{{ base_url }}/assets/script.js"></script> <script type="text/javascript">jQuery(function() { Genghis.boot('{{ base_url }}'); });</script> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <h3><a class="magic brand" href="{{ base_url }}">Genghis</a></h3> <nav></nav> </div> </div> </header> <noscript><h1>You won’t get far in life without JavaScript…</h1></noscript> <section id="genghis" class="container fluid"> <aside id="alerts"></aside> <section id="servers"></section> <section id="databases"></section> <section id="collections"></section> <section id="documents"></section> <section id="document"><header></header></section> <section id="error"></section> </section> <footer class="container"> <p><a href="http://genghisapp.com">Genghis</a>, by <a href="http://justinhileman.info">Justin Hileman</a>.</p> <p><a class="keyboard-shortcuts" href="#">Keyboard shortcuts available <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAABK0lEQVR42p2R sWqDUBSGL5QOfYFCn8NXKJpop0BoH0OHZnJzKGTTIZghGF0TECFLtkCmQB4g kw4uEQTRTRz++gsZEkKadPj87znnfocLCgBCVdVvWZZfeX6U7qMoynuv1/sa DocvrJmapg3axVbLD+GZPc4uF1B46vf7n7x4gnW7+I3z09K2/8H+5YK7kSTp mS85WzCfzye+7+MRPM/rkq6YzWZIkgT7/R5xHN+VhA5d4bouttstmqbBZrP5 M+u6Jp1DV9i2jd1uh9Vq9RB06IrxeIzD4YDFYoGqqm5mURTIsgx5niOKItAV lmVhvV4jCIKbhGF4VtOhK0zT7BplWWI6neJ4PCJN06twdrpDh64YjUZYLpdw HIe/h3kNzs6SDl2h6/rEMAz8B7q//llIEoKdz2AAAAAASUVORK5CYII= "></a></p> </footer> </body> </html>
@@error.html.mustache ae189ca26b8fcd0c5a94fb1a9ff824bc
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis — {{ status }}: {{ message }}</title> <link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADL0lEQVRYw8VW r1fbQBy/P2X8SNpcAsgZYHJ7o0zyUhRvRS6ojap1ap1hGFaTIgCzGmqKADME NTU1MRVFVGwiIqIVERWfJYHA5Zq7lO5ty3ufd9f7fu/z+eT6vcuRlZUV/E+Q 5eXlqBO2syCeGxM+lY9kEf9tkH8hkmlgaWlpIpA2xsfCNg2y+fxcIiOb1gAv mMXJ5hJRggiGTqHl81BVBYqiBq0atblgjOo6jCjPANU0aAGobkg5iUzsQdQw AmENytwrfLTP0XH6cL0RRiMPrutF7c++g9bpAbbmVWjURKvTRbfbRau2J+Um sQArxifpmor3p214mObx0G514N//8ntndy9wD15DaCCeoGs5HHXcVKmxP4IX rIQ/FtsZOccJAzyILGgYFB/O+7wsbq8bKG+/SORulw/R7rlM1owG9LCQ7lu6 8Q3Jdx+hWV6PYizYeXvHnYkVEOVGBkRkelDt1XZSvnO4mUqSnKfjy/Wvx5Xg amBiBXgDjzDRGTLq7jXeCAQnUcRxo4lms4lauSjJ0yUGNuuJqu+d7UqJZgWh lIJF9N+H/QJrYIyrT5tCkrt5FPngMEoDpfoEf8LAgyjTL1QuGAMe6gUdvFl2 jrb6Dke2DZvHqY3PbwvTG3iAeRbUfPwM0ShpUgNm3RGeBWEhiuYSUYAW64wB wKmb0dkene9BPG5jFGtd8dnYrYkNsIQsKN1Hb8zuZxt5jQqJKF3HrmXBsnZh mlUMBOZ5EFEgRKPnMzRD2FtKYEKcHyP32k7soPbhYw3wLyw1sFa5Sq6le4Od BSX49ErE1UUcdRl534El0YgMhFslLRiON2+5L43n4GDnOeYXFqEEd4FcLgdV Ce8Gi5h79hL2j0Ei3amXpKtFYvF4z/J9TQtqwZ8srKHbx81lC99PTvD9/DK6 I4w4r+PBBVYF/AkDWdDW9tEe+HjK4zlNbKRxTWsgXFp+zPragDPwIP78j+EN HDSqJWTxhm0Iwg+IxJNYhVmyUKlUUK1Wo9YqmdFyp4nIuEiWw2mQZVqWS7KI ZzU1LRdR462k3l2x475obNa4KCZdgTgpC7yBLM6EARGpEhwu0xr4E/wGQ3S1 MEjLIesAAAAASUVORK5CYII="> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Rokkitt:400,700"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css"> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <h3><a class="magic brand" href="{{ base_url }}">Genghis</a></h3> <nav></nav> </div> </div> </header> <section id="genghis" class="container fluid"> <section id="error" style="display:block;"> <header><h2>{{ status }}: {{ message }}</h2></header> <div class="content"> <p> If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again. </p> </div> </section> </section> <footer class="container"><p>Genghis, by <a href="http://justinhileman.info">Justin Hileman</a>.</p></footer> </body> </html>
@@style.css ca351a568b8620e62feab15f1ecf195e
/**
* Genghis v1.4.1
*
* The single-file MongoDB admin app
*
* http://genghisapp.com
*
* @author Justin Hileman <justin@justinhileman.info>
*/
kbd,.key{display:inline;display:inline-block;min-width:1em;padding:.2em .3em;font:400 .85em/1 "Lucida Grande",Lucida,Arial,sans-serif;text-align:center;text-decoration:none;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;border:none;cursor:default;-moz-user-select:none;-webkit-user-select:none;user-select:none}kbd[title],.key[title]{cursor:help}kbd,kbd.dark,.dark-keys kbd,.key,.key.dark,.dark-keys .key{background:#505050;background:-moz-linear-gradient(top,#3c3c3c,#505050);background:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#505050));color:#fafafa;text-shadow:-1px -1px 0 #464646;-moz-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3)}kbd.light,.light-keys kbd,.key.light,.light-keys .key{background:#fafafa;background:-moz-linear-gradient(top,#d2d2d2,#fff);background:-webkit-gradient(linear,left top,left bottom,from(#d2d2d2),to(#fff));color:#323232;text-shadow:0 0 2px#fff;-moz-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);-webkit-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9)}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{height:auto;border:0;-ms-interpolation-mode:bicubic;vertical-align:middle}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid > [class*="span"]{float:left;margin-left:2.127659574%}.row-fluid > [class*="span"]:first-child{margin-left:0}.row-fluid > .span12{width:99.99999998999999%}.row-fluid > .span11{width:91.489361693%}.row-fluid > .span10{width:82.97872339599999%}.row-fluid > .span9{width:74.468085099%}.row-fluid > .span8{width:65.95744680199999%}.row-fluid > .span7{width:57.446808505%}.row-fluid > .span6{width:48.93617020799999%}.row-fluid > .span5{width:40.425531911%}.row-fluid > .span4{width:31.914893614%}.row-fluid > .span3{width:23.404255317%}.row-fluid > .span2{width:14.89361702%}.row-fluid > .span1{width:6.382978723%}.container{margin-left:auto;margin-right:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-left:20px;padding-right:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:700;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{line-height:27px;font-size:18px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid#eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:700;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;clear:left;width:120px;text-align:right}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid#eee;border-bottom:1px solid#fff}strong{font-weight:700}em{font-style:italic}.muted{color:#999}abbr[title]{border-bottom:1px dotted #ddd;cursor:help}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid#eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid#eee}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;line-height:18px;font-style:normal}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}pre.prettyprint{margin-bottom:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #eee}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:400;line-height:18px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px;color:#333}input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555;border:1px solid#ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.uneditable-textarea{width:auto;height:auto}label input,label textarea,label select{display:block}input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0 \9}input[type="image"]{border:0}input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:#fff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}input[type="file"]{line-height:18px \9}select{width:220px;background-color:#fff}select[multiple],select[size]{height:auto}input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}textarea{height:auto}input[type="hidden"]{display:none}.radio,.checkbox{padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls > .radio:first-child,.controls > .checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline + .radio.inline,.checkbox.inline + .checkbox.inline{margin-left:10px}input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus,textarea:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);outline:0;outline:thin dotted \9}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#eee;border-color:#ddd;cursor:not-allowed}.control-group.warning > label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error > label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success > label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#eee;border-top:1px solid #ddd;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{display:block;background-color:#fff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);cursor:not-allowed}:-moz-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{*margin-left:0;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0#fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-append input,.input-append select .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .uneditable-input{border-left-color:#eee;border-right-color:#ccc}.input-append .add-on,.input-append .btn{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;margin-bottom:0}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px}.control-group{margin-bottom:9px}legend + .control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{margin-left:160px;*display:inline-block;*margin-left:0;*padding-left:20px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid#ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table colgroup + thead tr:first-child th,.table colgroup + thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody + tbody{border-top:2px solid#ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid#ddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid#ddd}.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid#000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li > a:hover,.dropdown-menu .active > a,.dropdown-menu .active > a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,0.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid#000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear;opacity:0}.fade.in{opacity:1}.collapse{-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;position:relative;overflow:hidden;height:0}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0#fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;opacity:.4;filter:alpha(opacity=40);cursor:pointer}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid#ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);cursor:pointer;*margin-left:.3em}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{text-shadow:0 -1px 0 rgba(0,0,0,0.25);color:#fff}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top,#08c,#05c);background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);border-color:#05c #0055cc #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top,#555,#222);background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);border-color:#222 #222222#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-group{position:relative;*zoom:1;*margin-left:.3em}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group + .btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);*padding-top:3px;*padding-bottom:3px}.btn-group .btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:1px;*padding-bottom:1px}.btn-group .btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group .btn-large.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open{*z-index:1000}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 6px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 6px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid#000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block > p,.alert-block > ul{margin-bottom:0}.alert-block p + p{margin-top:5px}.nav{margin-left:0;margin-bottom:18px;list-style:none}.nav > li > a{display:block}.nav > li > a:hover{text-decoration:none;background-color:#eee}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li + .nav-header{margin-top:9px}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0}.nav-list > li > a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list > li > a{padding:3px 15px}.nav-list > .active > a,.nav-list > .active > a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff;*width:100%;*margin:-5px 0 5px}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs > li,.nav-pills > li{float:left}.nav-tabs > li > a,.nav-pills > li > a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs > li{margin-bottom:-1px}.nav-tabs > li > a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs > li > a:hover{border-color:#eee #eeeeee#ddd}.nav-tabs > .active > a,.nav-tabs > .active > a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills > li > a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills > .active > a,.nav-pills > .active > a:hover{color:#fff;background-color:#08c}.nav-stacked > li{float:none}.nav-stacked > li > a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked > li > a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked > li:first-child > a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked > li:last-child > a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked > li > a:hover{border-color:#ddd;z-index:2}.nav-pills.nav-stacked > li > a{margin-bottom:3px}.nav-pills.nav-stacked > li:last-child > a{margin-bottom:1px}.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#08c;border-bottom-color:#08c;margin-top:6px}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav > .dropdown.active > a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav > .open.active > a:hover{color:#fff;background-color:#999;border-color:#999}.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open > a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{display:table;width:100%}.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0}.tab-content > .tab-pane,.pill-content > .pill-pane{display:none}.tab-content > .active,.pill-content > .active{display:block}.tabs-below .nav-tabs{border-top:1px solid #ddd}.tabs-below .nav-tabs > li{margin-top:-1px;margin-bottom:0}.tabs-below .nav-tabs > li > a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below .nav-tabs > li > a:hover{border-bottom-color:transparent;border-top-color:#ddd}.tabs-below .nav-tabs .active > a,.tabs-below .nav-tabs .active > a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left .nav-tabs > li,.tabs-right .nav-tabs > li{float:none}.tabs-left .nav-tabs > li > a,.tabs-right .nav-tabs > li > a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left .nav-tabs > li > a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left .nav-tabs > li > a:hover{border-color:#eee #dddddd#eee #eeeeee}.tabs-left .nav-tabs .active > a,.tabs-left .nav-tabs .active > a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right .nav-tabs > li > a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right .nav-tabs > li > a:hover{border-color:#eee #eeeeee#eee #dddddd}.tabs-right .nav-tabs .active > a,.tabs-right .nav-tabs .active > a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:18px}.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);border-color:#222 #222222#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222}.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9}.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar + .icon-bar{margin-top:3px}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#fff}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0#fff;background-color:#fff;border:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15);outline:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav > li{display:block;float:left}.navbar .nav > li > a{float:none;padding:10px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .nav > li > a:hover{background-color:transparent;color:#fff;text-decoration:none}.navbar .nav .active > a,.navbar .nav .active > a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid#333}.navbar .nav.pull-right{margin-left:10px;margin-right:0}.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:9px}.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid#fff;position:absolute;top:-6px;left:10px}.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0;bottom:-7px;top:auto}.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid#fff;border-bottom:0;bottom:-6px;top:auto}.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav .open > .dropdown-toggle,.navbar .nav .active > .dropdown-toggle,.navbar .nav .open.active > .dropdown-toggle{background-color:transparent}.navbar .nav .active > .dropdown-toggle:hover{color:#fff}.navbar .nav.pull-right .dropdown-menu,.navbar .nav .dropdown-menu.pull-right{left:auto;right:0}.navbar .nav.pull-right .dropdown-menu:before,.navbar .nav .dropdown-menu.pull-right:before{left:auto;right:12px}.navbar .nav.pull-right .dropdown-menu:after,.navbar .nav .dropdown-menu.pull-right:after{left:auto;right:13px}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0#fff}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;background-color:transparent;cursor:default}.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;background-color:#fff;cursor:default}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn + .btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn + .btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid#000}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid#000}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid#000}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid#000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.thumbnails > li{float:left;margin:0 0 18px 20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail > img{display:block;max-width:100%;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px}.label{padding:1px 4px 2px;font-size:10.998px;font-weight:700;line-height:13px;color:#fff;vertical-align:middle;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.label:hover{color:#fff;text-decoration:none}.label-important{background-color:#b94a48}.label-important:hover{background-color:#953b39}.label-warning{background-color:#f89406}.label-warning:hover{background-color:#c67605}.label-success{background-color:#468847}.label-success:hover{background-color:#356635}.label-info{background-color:#3a87ad}.label-info:hover{background-color:#2d6987}.label-inverse{background-color:#333}.label-inverse:hover{background-color:#1a1a1a}.badge{padding:1px 9px 2px;font-size:12.025px;font-weight:700;white-space:nowrap;color:#fff;background-color:#999;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-error{background-color:#b94a48}.badge-error:hover{background-color:#953b39}.badge-warning{background-color:#f89406}.badge-warning:hover{background-color:#c67605}.badge-success{background-color:#468847}.badge-success:hover{background-color:#356635}.badge-info{background-color:#3a87ad}.badge-info:hover{background-color:#2d6987}.badge-inverse{background-color:#333}.badge-inverse:hover{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@-ms-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.progress .bar{width:0;height:18px;color:#fff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:18px;line-height:1}.carousel-inner{overflow:hidden;width:100%;position:relative}.carousel .item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item > img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid#fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{left:auto;right:15px}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.container,.navbar .container{padding-left:20px;padding-right:20px;width:auto;min-width:480px;max-width:1400px}.navbar{height:60px}.navbar .brand{font-size:32px;line-height:26px;padding:16px 20px 12px}.navbar ul .dropdown-menu li a{padding-right:45px;position:relative}.navbar ul .dropdown-menu li a span{padding:0 6px;display:inline-block;position:absolute;top:50%;right:10px;margin-top:-8px;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;line-height:16px;color:#666;background-color:rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2)}.navbar ul .dropdown-menu li a:hover span{color:#DDD}.navbar ul .dropdown-menu li.active a span{color:#CCC;background-color:rgba(0,0,0,0.2)}.navbar form{padding-left:20px;margin:15px 0 15px -10px}.nav .dropdown,.navbar-search{background:transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAiCAQAAADMxIBtAAABLUlEQVQoz2NgYPzPxMDEgAaY/7OrsGMIruJs4GFAE2aU4vooxCCCrpb7pbiaNAMbqiBblfhsRQYpNAN4xH5qcuuju0Fwj5qfIYMYqiB7gPI+cwYjdMvk3lmLuzBwoQoKzTMqdGHQQhVkNdG55s3sw8CIKqx4wc0ojEEGVVC4wa4jgsEJzQAlk9sx/CnolilvC/BNR3eYcJrbkiy2GFTLhLM8FmUzRKKqVN0f4prBoIMSVtpm1+K4klGDUHyiY3kEgxWa5ic+8lEMgshCnIH6+7wYXFHVie8183NlkEMJe36lz3bsrgzMKFHXrDrJjEEDVbPYc205YwZOZCEmbYlnmqiOBmreJhOlyiCEKsj/X5ZDES0tJfFuE0VXx/6WT0EA1THAEP/PgR7aDNgSLQDySzbpQ/g6wQAAAABJRU5ErkJggg==') center left no-repeat}.nav .dropdown .dropdown-toggle{padding:20px 10px 21px 20px;height:19px;line-height:19px;white-space:nowrap;color:#EEE}.nav .dropdown .dropdown-toggle:hover{background-color:transparent}html,body{margin:0;padding:0;color:#111;background-color:#D3D3D3;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAADmBAMAAAADyPWpAAAAHlBMVEUAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAzn7ZSAAAACnRSTlMEAgEFAAMGBwgJHK6+iAAAAjVJREFUeF7t3TFvEzEYh3EnUQJjoaRzCGS/ChW6UsF+pc0eCSkwVqrUwhcAPjZT38fDKzmKuBvQ858qy/bP9mT57LTcvIu8iHxZP2VVIl8Prrmj0TpyHW1OIf9zXl5eXl5eXl5+uX1Kv41gzuC7rHASnS4bzdOBlk+Rj/AMr2tMFP4lPb2OwhOg24CuWJIheXl5eXl5eXl5ef5cpbtKxoR0ktUs1JyzfYV/xTwLSUdaSfDMfsOSoC9YsgsaMbu3wX8eh5eXl5eXl5eXl+9pn/IU7pD2kfswP1B4l/U5ZfRAR53pXj5GKgl+ly3JOcevLMmQvLy8vLy8vLy8fN/YQNL+d5g/4X+F+Q3+Lv/+HmGe1Ub7LO0U/gEpW5L31JykEx2bl5eXl5eXl5eXr25w7iPsKn/AVxL8njQ+oJNZIdPspBYTqVXzonF9AGg1Di8vLy8vLy8vL89h43wdKUd8VS/byDV8Bj17jBQyZ/gMZNO4KpoUNtfpchxeXl5eXl5eXl5+S7K94pL2VLjJvsqfUpjuP9lqPv8TKckF0vSpU3v7nPGz7KLrm31kQF5eXl5eXl5eXj5/rdMdcVa5OHiruaj4/AIpVQc4/a1qDsnLy8vLy8vLy8t3UNkBZj/Ap/ZFSQPP7vuKwn92+rsEGoOXl5eXl5eXl5fPfywp/133CXzVP3z6fr5rvEo6qx/AR7JO1/D9EYtX6GhIXl5eXl5eXl5eHvM7fPUAvvEviOBn1Jwz5orPav4FxfqDRAI+1ZEAAAAASUVORK5CYII=")}body{padding-top:60px}h1,h2,h3,body > footer p{font-family:"Rokkitt",serif;font-weight:700}body > footer{font-weight:400;text-align:center}body > footer a.keyboard-shortcuts:link,body > footer a.keyboard-shortcuts:visited{color:#888}body > footer a.keyboard-shortcuts:hover,body > footer a.keyboard-shortcuts:active{color:#666}body > footer a.keyboard-shortcuts img{line-height:1px;vertical-align:text-top;height:13px;width:16px}a:link,a:visited{color:#0058e1}a:hover,a:active{color:#111}noscript h1{font-size:2.2em;text-align:center;margin:80px 40px}.document-wrapper article h3{line-height:1;margin-bottom:10px}.document-wrapper .document{color:#111;position:relative}.document-wrapper .document .prop:after{content:':';color:#998;padding-right:.5em}.document-wrapper .document .null,.document-wrapper .document .bool{color:#0086b3}.document-wrapper .document .num{color:#40A070}.document-wrapper .document .string{color:#D20}.document-wrapper .document .string .value{color:#D14}.document-wrapper .document .string a:link .value,.document-wrapper .document .string a:visited .value{text-decoration:underline}.document-wrapper .document .string a:hover .value,.document-wrapper .document .string a:active .value{color:#0058E1}.document-wrapper .document .db-ref .db-ref-ref .string .value,.document-wrapper .document .db-ref .db-ref-id .string .value,.document-wrapper .document .db-ref .db-ref-db .string .value{cursor:pointer;border-bottom:1px dotted #D14}.document-wrapper .document .db-ref .db-ref-ref .string .value:hover,.document-wrapper .document .db-ref .db-ref-id .string .value:hover,.document-wrapper .document .db-ref .db-ref-db .string .value:hover{color:#0058E1;border-bottom:1px solid #0058E1}.document-wrapper .document .collapser{cursor:pointer;position:absolute;height:16px;width:16px;left:-16px;padding:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.document-wrapper .document .collapser:after{display:block;border:4px solid blue;content:' ';overflow:hidden;height:0;width:0;position:relative;left:4px;top:6px;border:4px solid transparent;border-top-color:#c8c8bf}.document-wrapper .document .collapser:hover:after,.document-wrapper .document .collapser:active:after{border-top-color:#998}.document-wrapper .document .collapser.collapsed:after{left:6px;top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.document-wrapper .document .collapser.collapsed:hover:after,.document-wrapper .document .collapser.collapsed:active:after{border-top-color:transparent;border-left-color:#998}.document-wrapper .document .ellipsis{color:#998;cursor:pointer}.document-wrapper .document .ellipsis .summary{padding-left:5px;font-style:italic}.document-wrapper .document .fn{color:#458}.document-wrapper .document ul{list-style:none;margin:0;padding:0 0 0 2em;-webkit-box-shadow:inset 2px 0 0 -1px #e0e0da;-moz-box-shadow:inset 2px 0 0 -1px #e0e0da;box-shadow:inset 2px 0 0 -1px #e0e0da}.document-wrapper .document li{position:relative;color:#111}.document-wrapper .document li:after{content:','}.document-wrapper .document li:last-of-type:after{content:''}aside#alerts{margin-top:20px}body > section{min-height:150px}body > section section{display:none;background-color:#fff;margin:20px 0;padding:20px;border:1px solid #AAA;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0#fff}body > section section > header{background-color:#d8d8d8;min-height:40px;margin:-20px -20px 20px;padding:0 20px;border-top-left-radius:4px;border-top-right-radius:4px;background-image:-moz-linear-gradient(-90deg,#e4e4e4,#d8d8d8);background-image:-webkit-gradient(linear,0 top,0 bottom,from(#e4e4e4),to(#d8d8d8));box-shadow:inset 0 1px 0 rgba(255,255,255,0.6)}body > section section > header h2{margin:0;line-height:40px}body > section section > .content{min-height:100px;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-ms-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}body > section section > p:first-child{margin-top:0}body > section section > p:last-child{margin-bottom:0}body > section section.spinning{height:180px}body > section section.spinning header h2{background:transparent url('data:image/gif;base64,R0lGODlhEAALAPQAAN7e3oiIiNHR0c3NzdbW1omJiYiIiJeXl7Ozs6enp8bGxpKSkqCgoLa2tqmpqcjIyJSUlIiIiKKiotXV1dDQ0Nra2pqamtLS0tnZ2cXFxb29vcvLy9jY2AAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA') left center no-repeat;text-indent:-10000em}body > section section.spinning .controls,body > section section.spinning .add-form,body > section section.spinning .content{display:none}body > section section .details{display:none}body > section section .has-details{border-bottom:1px dotted#998;cursor:default}.add-form button.show{display:none}.add-form.inactive button,.add-form.inactive input,.add-form.inactive .input-append{display:none}.add-form.inactive button.show{display:inherit}.add-form.inactive .help{display:none}.add-form span.input-append .add-on{margin-right:4px}.add-form .help{cursor:default}#query-editor{width:888px;height:100px;position:relative;-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);margin:0 0 10px;padding:4px;border:1px solid #CCC;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}table{width:100%;margin-bottom:18px;border:1px solid#ddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}table th,table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid#ddd}table th{font-weight:700}table thead th{vertical-align:bottom}table colgroup + thead tr:first-child th,table colgroup + thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody + tbody{border-top:2px solid#ddd}table tbody tr:hover td,table tbody tr:hover th{background-color:#f5f5f5}table th,table td{border-left:1px solid#ddd}table thead:first-child tr:first-child th,table tbody:first-child tr:first-child th,table tbody:first-child tr:first-child td{border-top:0}table thead:first-child tr:first-child th:first-child,table tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0}table thead:first-child tr:first-child th:last-child,table tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0}table thead:last-child tr:last-child th:first-child,table tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px}table thead:last-child tr:last-child th:last-child,table tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0}table tbody tr:nth-child(odd) td,table tbody tr:nth-child(odd) th{background-color:#f9f9f9}table .header{cursor:pointer}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden}table .header.headerSortUp,table .header.headerSortDown{background-color:rgba(4,156,219,0.050000000000000044);text-shadow:0 1px 1px rgba(255,255,255,0.75)}table .header:hover:after{visibility:visible}table .header.headerSortDown:after,table .header.headerSortDown:hover:after{visibility:visible;opacity:.6;filter:alpha(opacity=60)}table .header.headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.6;filter:alpha(opacity=60)}tr td.action-column{padding:7px 10px 0;text-align:right}tr td.action-column button{visibility:hidden;-o-transition-property:color,background,box-shadow;-moz-transition-property:color,background,box-shadow;-webkit-transition-property:color,background,box-shadow;transition-property:color,background,box-shadow}tr:hover td.action-column button{visibility:inherit}section#servers .alert.alert-error{padding:3px 10px;font-weight:700}section#servers tr.spinning td:first-child{padding-left:35px;background:transparent url('data:image/gif;base64,R0lGODlhEAALAPQAAP///zMzM+Hh4dnZ2e7u7jc3NzMzM1dXV5qamn9/f8fHx05OTm5ubqGhoYKCgsrKylFRUTY2NnFxcerq6t/f3/b29l9fX+Li4vT09MTExLKystTU1PHx8QAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA') 10px center no-repeat}section#servers tr input{display:none}section#servers tr.editing span.name{display:none}section#servers tr.editing input{display:inherit}.index-details{color:#111;list-style:none;margin:0}.index-details > li{display:block;margin-bottom:5px}.index-details > li ul,.index-details > li li{display:inline-block;list-style:none;margin:0;padding:0}.index-details > li li{color:#111}.index-details > li li:after{content:',';padding-right:.25em}.index-details > li li:last-of-type:after{content:'';padding-right:0}.index-details > li .prop:after{content:':';color:#998;padding-right:.25em}.index-details > li .num{color:#40A070}.document-wrapper div.well{overflow-x:auto}.document-wrapper div.well h3 a{color:#333}.document-wrapper div.well h3 a:hover,.document-wrapper div.well h3 a:active{color:#0058e1}.document-wrapper article{position:relative}.document-wrapper article div.document-actions{position:absolute;right:20px;z-index:10}.document-wrapper article div.document-actions button.save,.document-wrapper article div.document-actions button.cancel{display:none}.document-wrapper article div.document-actions button.edit,.document-wrapper article div.document-actions button.destroy{visibility:hidden}.document-wrapper article:hover div.document-actions button.edit,.document-wrapper article:hover div.document-actions button.destroy{visibility:inherit}.document-wrapper article div.well{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.document-wrapper article.edit div.document-actions{margin-top:20px}.document-wrapper article.edit div.document-actions button.edit,.document-wrapper article.edit div.document-actions button.destroy{display:none}.document-wrapper article.edit div.document-actions button.save,.document-wrapper article.edit div.document-actions button.cancel{display:inline-block}.document-wrapper article.edit div.well{padding:0;height:400px;border-color:rgba(82,168,236,0.8);background-color:#fff;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);*zoom:1}.document-wrapper article.edit div.well h3{display:none}.document-wrapper article.edit div.well:before,.document-wrapper article.edit div.well:after{display:table;content:""}.document-wrapper article.edit div.well:after{clear:both}.document-wrapper article.edit div.well .genghis-document-editor{position:relative;left:1px;right:1px;height:400px}.document-wrapper article.edit div.well .genghis-document-editor .ace_scroller{background-color:transparent}section#documents .controls{*zoom:1;margin-bottom:20px}section#documents .controls:before,section#documents .controls:after{display:table;content:""}section#documents .controls:after{clear:both}section#documents .controls .add-document{float:left}section#documents .controls .pagination{margin:0}section#documents .controls .pagination li.prev a:after{content:' Previous'}section#documents .controls .pagination li.next a:before{content:'Next '}section#document article h3{display:none}.modal.editor{width:820px;margin-left:-410px;max-height:90%}.modal.editor .wrapper{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:1px solid rgba(82,168,236,0.8);background-color:#fff;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);*zoom:1}.modal.editor .wrapper:before,.modal.editor .wrapper:after{display:table;content:""}.modal.editor .wrapper:after{clear:both}.modal.editor .genghis-document-editor{height:250px;position:relative}.modal.editor .genghis-document-editor .ace_scroller{background-color:transparent}#keyboard-shortcuts .modal-body ul{*zoom:1;list-style:none;margin:0;padding:0}#keyboard-shortcuts .modal-body ul:before,#keyboard-shortcuts .modal-body ul:after{display:table;content:""}#keyboard-shortcuts .modal-body ul:after{clear:both}#keyboard-shortcuts .modal-body ul li{width:50%;float:left;list-style:none;margin:0;padding:0}#keyboard-shortcuts .modal-body h4{font-size:1em;line-height:2}#keyboard-shortcuts .modal-body dl dt,#keyboard-shortcuts .modal-body dl dd{line-height:1.5}#keyboard-shortcuts .modal-body dl dt{margin:0;padding:0;float:left;width:2em}#keyboard-shortcuts .modal-body dl dd{margin:0 0 0 3em}@media screen and (max-width:1200px){section#documents .controls .pagination li.next a:before{content:'Next '}section#documents .controls .pagination li.prev a:after{content:' Prev'}}@media screen and (max-width:860px){.modal.editor{left:20px;right:20px;width:auto;margin-left:0}table th,table td{padding:4px 5px}table td.action-column{padding-top:2px}section#documents .controls .pagination li.prev a:after,section#documents .controls .pagination li.next a:before{content:''}}.appriseOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;opacity:.8;filter:alpha(opacity=80)}.appriseOverlay.fade{opacity:0}.appriseOuter{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;width:auto;top:inherit;left:inherit;margin:0;min-width:200px;min-height:50px;max-width:75%;display:none}.appriseOuter.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.appriseOuter.fade.in{top:50%}.appriseInner{overflow-y:auto;max-height:400px;padding:15px}.appriseInner button{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid#ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);cursor:pointer;*margin-left:.3em}.appriseInner button:hover,.appriseInner button:active,.appriseInner button.active,.appriseInner button.disabled,.appriseInner button[disabled]{background-color:#e6e6e6}.appriseInner button:active,.appriseInner button.active{background-color:#ccc \9}.appriseInner button:first-child{*margin-left:0}.appriseInner button[value="ok"]{text-shadow:0 -1px 0 rgba(0,0,0,0.25);color:#fff;background-color:#0074cc;background-image:-moz-linear-gradient(top,#08c,#05c);background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);border-color:#05c #0055cc #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.appriseInner button[value="ok"]:hover,.appriseInner button[value="ok"]:active,.appriseInner button[value="ok"].active,.appriseInner button[value="ok"].disabled,.appriseInner button[value="ok"][disabled]{background-color:#05c}.appriseInner button[value="ok"]:active,.appriseInner button[value="ok"].active{background-color:#004099 \9}.appriseInner button[value="ok"] .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.aButtons{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;*zoom:1;margin:20px -15px -15px}.aButtons:before,.aButtons:after{display:table;content:""}.aButtons:after{clear:both}.aButtons .btn + .btn{margin-left:5px;margin-bottom:0}.aButtons .btn-group .btn + .btn{margin-left:-1px}.aButtons button{float:right;margin-left:5px;margin-bottom:0}.aButtons button:last-child{margin-left:0}.aTextbox{width:94%;min-width:180px;display:block;margin:20px auto 0}
@@script.js 9b1faf9c6070a3fcea1b25462755f10f
/**
* Genghis v1.4.1
*
* The single-file MongoDB admin app
*
* http://genghisapp.com
*
* @author Justin Hileman <justin@justinhileman.info>
*/
(function(a,m){function j(d){var o=O[d]={},h,b,d=d.split(/\s+/);h=0;for(b=d.length;h<b;h++)o[d[h]]=!0;return o}function c(d,o,b){if(b===m&&1===d.nodeType)if(b="data-"+o.replace(N,"-$1").toLowerCase(),b=d.getAttribute(b),"string"===typeof b){try{b="true"===b?!0:"false"===b?!1:"null"===b?null:h.isNumeric(b)?parseFloat(b):ca.test(b)?h.parseJSON(b):b}catch(a){}h.data(d,o,b)}else b=m;return b}function e(d){for(var o in d)if(!("data"===o&&h.isEmptyObject(d[o]))&&"toJSON"!==o)return!1;return!0}function g(d,
o,b){var a=o+"defer",c=o+"queue",f=o+"mark",e=h._data(d,a);e&&("queue"===b||!h._data(d,c))&&("mark"===b||!h._data(d,f))&&setTimeout(function(){!h._data(d,c)&&!h._data(d,f)&&(h.removeData(d,a,!0),e.fire())},0)}function k(){return!1}function b(){return!0}function f(d,o,b){o=o||0;if(h.isFunction(o))return h.grep(d,function(d,h){return!!o.call(d,h,d)===b});if(o.nodeType)return h.grep(d,function(d){return d===o===b});if("string"===typeof o){var a=h.grep(d,function(d){return 1===d.nodeType});if(La.test(o))return h.filter(o,
a,!b);o=h.filter(o,a)}return h.grep(d,function(d){return 0<=h.inArray(d,o)===b})}function n(d){var o=ka.split("|"),d=d.createDocumentFragment();if(d.createElement)for(;o.length;)d.createElement(o.pop());return d}function v(d,o){if(1===o.nodeType&&h.hasData(d)){var b,a,c;a=h._data(d);var f=h._data(o,a),e=a.events;if(e)for(b in delete f.handle,f.events={},e){a=0;for(c=e[b].length;a<c;a++)h.event.add(o,b+(e[b][a].namespace?".":"")+e[b][a].namespace,e[b][a],e[b][a].data)}f.data&&(f.data=h.extend({},f.data))}}
function u(d,o){var b;if(1===o.nodeType){o.clearAttributes&&o.clearAttributes();o.mergeAttributes&&o.mergeAttributes(d);b=o.nodeName.toLowerCase();if("object"===b)o.outerHTML=d.outerHTML;else if("input"===b&&("checkbox"===d.type||"radio"===d.type)){if(d.checked&&(o.defaultChecked=o.checked=d.checked),o.value!==d.value)o.value=d.value}else if("option"===b)o.selected=d.defaultSelected;else if("input"===b||"textarea"===b)o.defaultValue=d.defaultValue;o.removeAttribute(h.expando)}}function s(d){return"undefined"!==
typeof d.getElementsByTagName?d.getElementsByTagName("*"):"undefined"!==typeof d.querySelectorAll?d.querySelectorAll("*"):[]}function t(d){if("checkbox"===d.type||"radio"===d.type)d.defaultChecked=d.checked}function y(d){var o=(d.nodeName||"").toLowerCase();"input"===o?t(d):"script"!==o&&"undefined"!==typeof d.getElementsByTagName&&h.grep(d.getElementsByTagName("input"),t)}function q(d,o){o.src?h.ajax({url:o.src,async:!1,dataType:"script"}):h.globalEval((o.text||o.textContent||o.innerHTML||"").replace(Ma,
"/*$0*/"));o.parentNode&&o.parentNode.removeChild(o)}function x(d,o,b){var a="width"===o?d.offsetWidth:d.offsetHeight,c="width"===o?Na:Oa,f=0,e=c.length;if(0<a){if("border"!==b)for(;f<e;f++)b||(a-=parseFloat(h.css(d,"padding"+c[f]))||0),a="margin"===b?a+(parseFloat(h.css(d,b+c[f]))||0):a-(parseFloat(h.css(d,"border"+c[f]+"Width"))||0);return a+"px"}a=S(d,o,o);if(0>a||null==a)a=d.style[o]||0;a=parseFloat(a)||0;if(b)for(;f<e;f++)a+=parseFloat(h.css(d,"padding"+c[f]))||0,"padding"!==b&&(a+=parseFloat(h.css(d,
"border"+c[f]+"Width"))||0),"margin"===b&&(a+=parseFloat(h.css(d,b+c[f]))||0);return a+"px"}function A(d){return function(o,b){"string"!==typeof o&&(b=o,o="*");if(h.isFunction(b))for(var a=o.toLowerCase().split(la),c=0,f=a.length,e,k;c<f;c++)e=a[c],(k=/^\+/.test(e))&&(e=e.substr(1)||"*"),e=d[e]=d[e]||[],e[k?"unshift":"push"](b)}}function B(d,o,h,b,a,c){a=a||o.dataTypes[0];c=c||{};c[a]=!0;for(var a=d[a],f=0,e=a?a.length:0,k=d===da,n;f<e&&(k||!n);f++)n=a[f](o,h,b),"string"===typeof n&&(!k||c[n]?n=m:
(o.dataTypes.unshift(n),n=B(d,o,h,b,n,c)));if((k||!n)&&!c["*"])n=B(d,o,h,b,"*",c);return n}function r(d,o){var b,a,c=h.ajaxSettings.flatOptions||{};for(b in o)o[b]!==m&&((c[b]?d:a||(a={}))[b]=o[b]);a&&h.extend(!0,d,a)}function p(d,o,b,a){if(h.isArray(o))h.each(o,function(o,c){b||Pa.test(d)?a(d,c):p(d+"["+("object"===typeof c||h.isArray(c)?o:"")+"]",c,b,a)});else if(!b&&null!=o&&"object"===typeof o)for(var c in o)p(d+"["+c+"]",o[c],b,a);else a(d,o)}function z(){try{return new a.XMLHttpRequest}catch(d){}}
function E(){setTimeout(C,0);return W=h.now()}function C(){W=m}function F(d,o){var b={};h.each(ma.concat.apply([],ma.slice(0,o)),function(){b[this]=d});return b}function G(d){if(!ea[d]){var o=w.body,b=h("<"+d+">").appendTo(o),a=b.css("display");b.remove();if("none"===a||""===a){I||(I=w.createElement("iframe"),I.frameBorder=I.width=I.height=0);o.appendChild(I);if(!T||!I.createElement)T=(I.contentWindow||I.contentDocument).document,T.write(("CSS1Compat"===w.compatMode?"<!doctype html>":"")+"<html><body>"),
T.close();b=T.createElement(d);T.body.appendChild(b);a=h.css(b,"display");o.removeChild(I)}ea[d]=a}return ea[d]}function J(d){return h.isWindow(d)?d:9===d.nodeType?d.defaultView||d.parentWindow:!1}var w=a.document,D=a.navigator,K=a.location,h=function(){function d(){if(!o.isReady){try{w.documentElement.doScroll("left")}catch(h){setTimeout(d,1);return}o.ready()}}var o=function(d,h){return new o.fn.init(d,h,c)},h=a.jQuery,b=a.$,c,f=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,e=/\S/,k=/^\s+/,n=/\s+$/,
g=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,j=/^[\],:{}\s]*$/,q=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,t=/(?:^|:|,)(?:\s*\[)+/g,p=/(webkit)[ \/]([\w.]+)/,x=/(opera)(?:.*version)?[ \/]([\w.]+)/,y=/(msie) ([\w.]+)/,z=/(mozilla)(?:.*? rv:([\w.]+))?/,A=/-([a-z]|[0-9])/ig,v=/^-ms-/,u=function(d,o){return(o+"").toUpperCase()},B=D.userAgent,X,K,E=Object.prototype.toString,s=Object.prototype.hasOwnProperty,C=Array.prototype.push,F=Array.prototype.slice,
O=String.prototype.trim,L=Array.prototype.indexOf,G={};o.fn=o.prototype={constructor:o,init:function(d,h,b){var a;if(!d)return this;if(d.nodeType)return this.context=this[0]=d,this.length=1,this;if("body"===d&&!h&&w.body)return this.context=w,this[0]=w.body,this.selector=d,this.length=1,this;if("string"===typeof d){if((a="<"===d.charAt(0)&&">"===d.charAt(d.length-1)&&3<=d.length?[null,d,null]:f.exec(d))&&(a[1]||!h)){if(a[1])return b=(h=h instanceof o?h[0]:h)?h.ownerDocument||h:w,(d=g.exec(d))?o.isPlainObject(h)?
(d=[w.createElement(d[1])],o.fn.attr.call(d,h,!0)):d=[b.createElement(d[1])]:(d=o.buildFragment([a[1]],[b]),d=(d.cacheable?o.clone(d.fragment):d.fragment).childNodes),o.merge(this,d);if((h=w.getElementById(a[2]))&&h.parentNode){if(h.id!==a[2])return b.find(d);this.length=1;this[0]=h}this.context=w;this.selector=d;return this}return!h||h.jquery?(h||b).find(d):this.constructor(h).find(d)}if(o.isFunction(d))return b.ready(d);d.selector!==m&&(this.selector=d.selector,this.context=d.context);return o.makeArray(d,
this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(d){return null==d?this.toArray():0>d?this[this.length+d]:this[d]},pushStack:function(d,h,b){var a=this.constructor();o.isArray(d)?C.apply(a,d):o.merge(a,d);a.prevObject=this;a.context=this.context;"find"===h?a.selector=this.selector+(this.selector?" ":"")+b:h&&(a.selector=this.selector+"."+h+"("+b+")");return a},each:function(d,h){return o.each(this,d,h)},ready:function(d){o.bindReady();
X.add(d);return this},eq:function(d){d=+d;return-1===d?this.slice(d):this.slice(d,d+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(d){return this.pushStack(o.map(this,function(h,o){return d.call(h,o,h)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice};o.fn.init.prototype=o.fn;o.extend=o.fn.extend=function(){var d,
h,b,a,c,f=arguments[0]||{},e=1,k=arguments.length,n=!1;"boolean"===typeof f&&(n=f,f=arguments[1]||{},e=2);"object"!==typeof f&&!o.isFunction(f)&&(f={});k===e&&(f=this,--e);for(;e<k;e++)if(null!=(d=arguments[e]))for(h in d)b=f[h],a=d[h],f!==a&&(n&&a&&(o.isPlainObject(a)||(c=o.isArray(a)))?(c?(c=!1,b=b&&o.isArray(b)?b:[]):b=b&&o.isPlainObject(b)?b:{},f[h]=o.extend(n,b,a)):a!==m&&(f[h]=a));return f};o.extend({noConflict:function(d){a.$===o&&(a.$=b);d&&a.jQuery===o&&(a.jQuery=h);return o},isReady:!1,
readyWait:1,holdReady:function(d){d?o.readyWait++:o.ready(!0)},ready:function(d){if(!0===d&&!--o.readyWait||!0!==d&&!o.isReady){if(!w.body)return setTimeout(o.ready,1);o.isReady=!0;!0!==d&&0<--o.readyWait||(X.fireWith(w,[o]),o.fn.trigger&&o(w).trigger("ready").off("ready"))}},bindReady:function(){if(!X){X=o.Callbacks("once memory");if("complete"===w.readyState)return setTimeout(o.ready,1);if(w.addEventListener)w.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",o.ready,!1);else if(w.attachEvent){w.attachEvent("onreadystatechange",
K);a.attachEvent("onload",o.ready);var h=!1;try{h=null==a.frameElement}catch(b){}w.documentElement.doScroll&&h&&d()}}},isFunction:function(d){return"function"===o.type(d)},isArray:Array.isArray||function(d){return"array"===o.type(d)},isWindow:function(d){return d&&"object"===typeof d&&"setInterval"in d},isNumeric:function(d){return!isNaN(parseFloat(d))&&isFinite(d)},type:function(d){return null==d?""+d:G[E.call(d)]||"object"},isPlainObject:function(d){if(!d||"object"!==o.type(d)||d.nodeType||o.isWindow(d))return!1;
try{if(d.constructor&&!s.call(d,"constructor")&&!s.call(d.constructor.prototype,"isPrototypeOf"))return!1}catch(h){return!1}for(var b in d);return b===m||s.call(d,b)},isEmptyObject:function(d){for(var h in d)return!1;return!0},error:function(d){throw Error(d);},parseJSON:function(d){if("string"!==typeof d||!d)return null;d=o.trim(d);if(a.JSON&&a.JSON.parse)return a.JSON.parse(d);if(j.test(d.replace(q,"@").replace(r,"]").replace(t,"")))return(new Function("return "+d))();o.error("Invalid JSON: "+d)},
parseXML:function(d){var h,b;try{a.DOMParser?(b=new DOMParser,h=b.parseFromString(d,"text/xml")):(h=new ActiveXObject("Microsoft.XMLDOM"),h.async="false",h.loadXML(d))}catch(c){h=m}(!h||!h.documentElement||h.getElementsByTagName("parsererror").length)&&o.error("Invalid XML: "+d);return h},noop:function(){},globalEval:function(d){d&&e.test(d)&&(a.execScript||function(d){a.eval.call(a,d)})(d)},camelCase:function(d){return d.replace(v,"ms-").replace(A,u)},nodeName:function(d,h){return d.nodeName&&d.nodeName.toUpperCase()===
h.toUpperCase()},each:function(d,h,b){var a,c=0,f=d.length,e=f===m||o.isFunction(d);if(b)if(e)for(a in d){if(!1===h.apply(d[a],b))break}else for(;c<f&&!1!==h.apply(d[c++],b););else if(e)for(a in d){if(!1===h.call(d[a],a,d[a]))break}else for(;c<f&&!1!==h.call(d[c],c,d[c++]););return d},trim:O?function(d){return null==d?"":O.call(d)}:function(d){return null==d?"":d.toString().replace(k,"").replace(n,"")},makeArray:function(d,h){var b=h||[];if(null!=d){var a=o.type(d);null==d.length||"string"===a||"function"===
a||"regexp"===a||o.isWindow(d)?C.call(b,d):o.merge(b,d)}return b},inArray:function(d,h,o){var b;if(h){if(L)return L.call(h,d,o);b=h.length;for(o=o?0>o?Math.max(0,b+o):o:0;o<b;o++)if(o in h&&h[o]===d)return o}return-1},merge:function(d,h){var o=d.length,b=0;if("number"===typeof h.length)for(var a=h.length;b<a;b++)d[o++]=h[b];else for(;h[b]!==m;)d[o++]=h[b++];d.length=o;return d},grep:function(d,h,o){for(var b=[],a,o=!!o,c=0,f=d.length;c<f;c++)a=!!h(d[c],c),o!==a&&b.push(d[c]);return b},map:function(d,
h,b){var a,c,f=[],e=0,k=d.length;if(d instanceof o||k!==m&&"number"===typeof k&&(0<k&&d[0]&&d[k-1]||0===k||o.isArray(d)))for(;e<k;e++)a=h(d[e],e,b),null!=a&&(f[f.length]=a);else for(c in d)a=h(d[c],c,b),null!=a&&(f[f.length]=a);return f.concat.apply([],f)},guid:1,proxy:function(d,h){if("string"===typeof h)var b=d[h],h=d,d=b;if(!o.isFunction(d))return m;var a=F.call(arguments,2),b=function(){return d.apply(h,a.concat(F.call(arguments)))};b.guid=d.guid=d.guid||b.guid||o.guid++;return b},access:function(d,
h,b,a,c,f){var e=d.length;if("object"===typeof h){for(var k in h)o.access(d,k,h[k],a,c,b);return d}if(b!==m){a=!f&&a&&o.isFunction(b);for(k=0;k<e;k++)c(d[k],h,a?b.call(d[k],k,c(d[k],h)):b,f);return d}return e?c(d[0],h):m},now:function(){return(new Date).getTime()},uaMatch:function(d){d=d.toLowerCase();d=p.exec(d)||x.exec(d)||y.exec(d)||0>d.indexOf("compatible")&&z.exec(d)||[];return{browser:d[1]||"",version:d[2]||"0"}},sub:function(){function d(h,o){return new d.fn.init(h,o)}o.extend(!0,d,this);d.superclass=
this;d.fn=d.prototype=this();d.fn.constructor=d;d.sub=this.sub;d.fn.init=function(b,a){a&&a instanceof o&&!(a instanceof d)&&(a=d(a));return o.fn.init.call(this,b,a,h)};d.fn.init.prototype=d.fn;var h=d(w);return d},browser:{}});o.each("Boolean,Number,String,Function,Array,Date,RegExp,Object".split(","),function(d,h){G["[object "+h+"]"]=h.toLowerCase()});B=o.uaMatch(B);B.browser&&(o.browser[B.browser]=!0,o.browser.version=B.version);o.browser.webkit&&(o.browser.safari=!0);e.test("\u00a0")&&(k=/^[\s\xA0]+/,
n=/[\s\xA0]+$/);c=o(w);w.addEventListener?K=function(){w.removeEventListener("DOMContentLoaded",K,false);o.ready()}:w.attachEvent&&(K=function(){if(w.readyState==="complete"){w.detachEvent("onreadystatechange",K);o.ready()}});return o}(),O={};h.Callbacks=function(d){var d=d?O[d]||j(d):{},o=[],b=[],a,c,f,e,k,n=function(b){var a,c,f,e;a=0;for(c=b.length;a<c;a++)f=b[a],e=h.type(f),"array"===e?n(f):"function"===e&&(!d.unique||!q.has(f))&&o.push(f)},g=function(h,n){n=n||[];a=!d.memory||[h,n];c=!0;k=f||
0;f=0;for(e=o.length;o&&k<e;k++)if(!1===o[k].apply(h,n)&&d.stopOnFalse){a=!0;break}c=!1;o&&(d.once?!0===a?q.disable():o=[]:b&&b.length&&(a=b.shift(),q.fireWith(a[0],a[1])))},q={add:function(){if(o){var d=o.length;n(arguments);c?e=o.length:a&&!0!==a&&(f=d,g(a[0],a[1]))}return this},remove:function(){if(o)for(var h=arguments,b=0,a=h.length;b<a;b++)for(var f=0;f<o.length&&!(h[b]===o[f]&&(c&&f<=e&&(e--,f<=k&&k--),o.splice(f--,1),d.unique));f++);return this},has:function(d){if(o)for(var h=0,b=o.length;h<
b;h++)if(d===o[h])return!0;return!1},empty:function(){o=[];return this},disable:function(){o=b=a=m;return this},disabled:function(){return!o},lock:function(){b=m;(!a||!0===a)&&q.disable();return this},locked:function(){return!b},fireWith:function(h,o){b&&(c?d.once||b.push([h,o]):(!d.once||!a)&&g(h,o));return this},fire:function(){q.fireWith(this,arguments);return this},fired:function(){return!!a}};return q};var L=[].slice;h.extend({Deferred:function(d){var o=h.Callbacks("once memory"),b=h.Callbacks("once memory"),
a=h.Callbacks("memory"),c="pending",f={resolve:o,reject:b,notify:a},e={done:o.add,fail:b.add,progress:a.add,state:function(){return c},isResolved:o.fired,isRejected:b.fired,then:function(d,h,o){k.done(d).fail(h).progress(o);return this},always:function(){k.done.apply(k,arguments).fail.apply(k,arguments);return this},pipe:function(d,o,b){return h.Deferred(function(a){h.each({done:[d,"resolve"],fail:[o,"reject"],progress:[b,"notify"]},function(d,o){var b=o[0],c=o[1],f;if(h.isFunction(b))k[d](function(){if((f=
b.apply(this,arguments))&&h.isFunction(f.promise))f.promise().then(a.resolve,a.reject,a.notify);else a[c+"With"](this===k?a:this,[f])});else k[d](a[c])})}).promise()},promise:function(d){if(null==d)d=e;else for(var h in e)d[h]=e[h];return d}},k=e.promise({}),n;for(n in f)k[n]=f[n].fire,k[n+"With"]=f[n].fireWith;k.done(function(){c="resolved"},b.disable,a.lock).fail(function(){c="rejected"},o.disable,a.lock);d&&d.call(k,k);return k},when:function(d){function o(d){return function(h){a[d]=1<arguments.length?
L.call(arguments,0):h;--k||n.resolveWith(n,a)}}function b(d){return function(h){e[d]=1<arguments.length?L.call(arguments,0):h;n.notifyWith(g,e)}}var a=L.call(arguments,0),c=0,f=a.length,e=Array(f),k=f,n=1>=f&&d&&h.isFunction(d.promise)?d:h.Deferred(),g=n.promise();if(1<f){for(;c<f;c++)a[c]&&a[c].promise&&h.isFunction(a[c].promise)?a[c].promise().then(o(c),n.reject,b(c)):--k;k||n.resolveWith(n,a)}else n!==d&&n.resolveWith(n,f?[d]:[]);return g}});h.support=function(){var d,o,b,c,f,e,k,n,g=w.createElement("div");
g.setAttribute("className","t");g.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";o=g.getElementsByTagName("*");b=g.getElementsByTagName("a")[0];if(!o||!o.length||!b)return{};c=w.createElement("select");f=c.appendChild(w.createElement("option"));o=g.getElementsByTagName("input")[0];d={leadingWhitespace:3===g.firstChild.nodeType,tbody:!g.getElementsByTagName("tbody").length,htmlSerialize:!!g.getElementsByTagName("link").length,
style:/top/.test(b.getAttribute("style")),hrefNormalized:"/a"===b.getAttribute("href"),opacity:/^0.55/.test(b.style.opacity),cssFloat:!!b.style.cssFloat,checkOn:"on"===o.value,optSelected:f.selected,getSetAttribute:"t"!==g.className,enctype:!!w.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==w.createElement("nav").cloneNode(!0).outerHTML,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0};
o.checked=!0;d.noCloneChecked=o.cloneNode(!0).checked;c.disabled=!0;d.optDisabled=!f.disabled;try{delete g.test}catch(j){d.deleteExpando=!1}!g.addEventListener&&g.attachEvent&&g.fireEvent&&(g.attachEvent("onclick",function(){d.noCloneEvent=!1}),g.cloneNode(!0).fireEvent("onclick"));o=w.createElement("input");o.value="t";o.setAttribute("type","radio");d.radioValue="t"===o.value;o.setAttribute("checked","checked");g.appendChild(o);b=w.createDocumentFragment();b.appendChild(g.lastChild);d.checkClone=
b.cloneNode(!0).cloneNode(!0).lastChild.checked;d.appendChecked=o.checked;b.removeChild(o);b.appendChild(g);g.innerHTML="";a.getComputedStyle&&(o=w.createElement("div"),o.style.width="0",o.style.marginRight="0",g.style.width="2px",g.appendChild(o),d.reliableMarginRight=0===(parseInt((a.getComputedStyle(o,null)||{marginRight:0}).marginRight,10)||0));if(g.attachEvent)for(k in{submit:1,change:1,focusin:1})o="on"+k,n=o in g,n||(g.setAttribute(o,"return;"),n="function"===typeof g[o]),d[k+"Bubbles"]=n;
b.removeChild(g);b=c=f=o=g=o=null;h(function(){var b,o,a,c,f=w.getElementsByTagName("body")[0];if(f){b=w.createElement("div");b.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";f.insertBefore(b,f.firstChild);g=w.createElement("div");b.appendChild(g);g.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";e=g.getElementsByTagName("td");n=e[0].offsetHeight===0;e[0].style.display="";e[1].style.display="none";d.reliableHiddenOffsets=
n&&e[0].offsetHeight===0;g.innerHTML="";g.style.width=g.style.paddingLeft="1px";h.boxModel=d.boxModel=g.offsetWidth===2;if(typeof g.style.zoom!=="undefined"){g.style.display="inline";g.style.zoom=1;d.inlineBlockNeedsLayout=g.offsetWidth===2;g.style.display="";g.innerHTML="<div style='width:4px;'></div>";d.shrinkWrapBlocks=g.offsetWidth!==2}g.style.cssText="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;visibility:hidden;border:0;";g.innerHTML="<div style='position:absolute;top:0;left:0;width:1px;height:1px;margin:0;border:5px solid #000;padding:0;'><div></div></div><table style='position:absolute;top:0;left:0;width:1px;height:1px;margin:0;border:5px solid #000;padding:0;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
o=g.firstChild;a=o.firstChild;c={doesNotAddBorder:a.offsetTop!==5,doesAddBorderForTableAndCells:o.nextSibling.firstChild.firstChild.offsetTop===5};a.style.position="fixed";a.style.top="20px";c.fixedPosition=a.offsetTop===20||a.offsetTop===15;a.style.position=a.style.top="";o.style.overflow="hidden";o.style.position="relative";c.subtractsBorderForOverflowNotVisible=a.offsetTop===-5;c.doesNotIncludeMarginInBodyOffset=f.offsetTop!==1;f.removeChild(b);g=null;h.extend(d,c)}});return d}();var ca=/^(?:\{.*\}|\[.*\])$/,
N=/([A-Z])/g;h.extend({cache:{},uuid:0,expando:"jQuery"+(h.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(d){d=d.nodeType?h.cache[d[h.expando]]:d[h.expando];return!!d&&!e(d)},data:function(d,b,a,c){if(h.acceptData(d)){var f;f=h.expando;var e="string"===typeof b,k=d.nodeType,n=k?h.cache:d,g=k?d[f]:d[f]&&f,j="events"===b;if(g&&n[g]&&(j||c||n[g].data)||!(e&&a===m)){g||(k?d[f]=g=++h.uuid:g=f);n[g]||(n[g]={},k||
(n[g].toJSON=h.noop));if("object"===typeof b||"function"===typeof b)c?n[g]=h.extend(n[g],b):n[g].data=h.extend(n[g].data,b);f=d=n[g];c||(d.data||(d.data={}),d=d.data);a!==m&&(d[h.camelCase(b)]=a);if(j&&!d[b])return f.events;e?(a=d[b],null==a&&(a=d[h.camelCase(b)])):a=d;return a}}},removeData:function(d,b,a){if(h.acceptData(d)){var c,f,k,n=h.expando,g=d.nodeType,j=g?h.cache:d,q=g?d[n]:n;if(j[q]){if(b&&(c=a?j[q]:j[q].data)){h.isArray(b)||(b in c?b=[b]:(b=h.camelCase(b),b=b in c?[b]:b.split(" ")));f=
0;for(k=b.length;f<k;f++)delete c[b[f]];if(!(a?e:h.isEmptyObject)(c))return}if(!a&&(delete j[q].data,!e(j[q])))return;h.support.deleteExpando||!j.setInterval?delete j[q]:j[q]=null;g&&(h.support.deleteExpando?delete d[n]:d.removeAttribute?d.removeAttribute(n):d[n]=null)}}},_data:function(d,b,a){return h.data(d,b,a,!0)},acceptData:function(d){if(d.nodeName){var b=h.noData[d.nodeName.toLowerCase()];if(b)return!(!0===b||d.getAttribute("classid")!==b)}return!0}});h.fn.extend({data:function(d,b){var a,
f,e,k=null;if("undefined"===typeof d){if(this.length&&(k=h.data(this[0]),1===this[0].nodeType&&!h._data(this[0],"parsedAttrs"))){f=this[0].attributes;for(var n=0,g=f.length;n<g;n++)e=f[n].name,0===e.indexOf("data-")&&(e=h.camelCase(e.substring(5)),c(this[0],e,k[e]));h._data(this[0],"parsedAttrs",!0)}return k}if("object"===typeof d)return this.each(function(){h.data(this,d)});a=d.split(".");a[1]=a[1]?"."+a[1]:"";return b===m?(k=this.triggerHandler("getData"+a[1]+"!",[a[0]]),k===m&&this.length&&(k=
h.data(this[0],d),k=c(this[0],d,k)),k===m&&a[1]?this.data(a[0]):k):this.each(function(){var c=h(this),f=[a[0],b];c.triggerHandler("setData"+a[1]+"!",f);h.data(this,d,b);c.triggerHandler("changeData"+a[1]+"!",f)})},removeData:function(d){return this.each(function(){h.removeData(this,d)})}});h.extend({_mark:function(d,b){d&&(b=(b||"fx")+"mark",h._data(d,b,(h._data(d,b)||0)+1))},_unmark:function(d,b,a){!0!==d&&(a=b,b=d,d=!1);if(b){var a=a||"fx",c=a+"mark";(d=d?0:(h._data(b,c)||1)-1)?h._data(b,c,d):(h.removeData(b,
c,!0),g(b,a,"mark"))}},queue:function(d,b,a){var c;if(d)return b=(b||"fx")+"queue",c=h._data(d,b),a&&(!c||h.isArray(a)?c=h._data(d,b,h.makeArray(a)):c.push(a)),c||[]},dequeue:function(d,b){var b=b||"fx",a=h.queue(d,b),c=a.shift(),f={};"inprogress"===c&&(c=a.shift());c&&("fx"===b&&a.unshift("inprogress"),h._data(d,b+".run",f),c.call(d,function(){h.dequeue(d,b)},f));a.length||(h.removeData(d,b+"queue "+b+".run",!0),g(d,b,"queue"))}});h.fn.extend({queue:function(d,b){"string"!==typeof d&&(b=d,d="fx");
return b===m?h.queue(this[0],d):this.each(function(){var a=h.queue(this,d,b);d==="fx"&&a[0]!=="inprogress"&&h.dequeue(this,d)})},dequeue:function(d){return this.each(function(){h.dequeue(this,d)})},delay:function(d,b){d=h.fx?h.fx.speeds[d]||d:d;return this.queue(b||"fx",function(b,h){var a=setTimeout(b,d);h.stop=function(){clearTimeout(a)}})},clearQueue:function(d){return this.queue(d||"fx",[])},promise:function(d){function b(){--e||a.resolveWith(c,[c])}"string"!==typeof d&&(d=m);for(var d=d||"fx",
a=h.Deferred(),c=this,f=c.length,e=1,k=d+"defer",n=d+"queue",d=d+"mark",g;f--;)if(g=h.data(c[f],k,m,!0)||(h.data(c[f],n,m,!0)||h.data(c[f],d,m,!0))&&h.data(c[f],k,h.Callbacks("once memory"),!0))e++,g.add(b);b();return a.promise()}});var na=/[\n\t\r]/g,Y=/\s+/,Qa=/\r/g,Ra=/^(?:button|input)$/i,Sa=/^(?:button|input|object|select|textarea)$/i,Ta=/^a(?:rea)?$/i,oa=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,pa=h.support.getSetAttribute,
M,qa,ra;h.fn.extend({attr:function(d,b){return h.access(this,d,b,!0,h.attr)},removeAttr:function(d){return this.each(function(){h.removeAttr(this,d)})},prop:function(d,b){return h.access(this,d,b,!0,h.prop)},removeProp:function(d){d=h.propFix[d]||d;return this.each(function(){try{this[d]=m,delete this[d]}catch(b){}})},addClass:function(d){var b,a,c,f,e,k,n;if(h.isFunction(d))return this.each(function(b){h(this).addClass(d.call(this,b,this.className))});if(d&&"string"===typeof d){b=d.split(Y);a=0;
for(c=this.length;a<c;a++)if(f=this[a],1===f.nodeType)if(!f.className&&1===b.length)f.className=d;else{e=" "+f.className+" ";k=0;for(n=b.length;k<n;k++)~e.indexOf(" "+b[k]+" ")||(e+=b[k]+" ");f.className=h.trim(e)}}return this},removeClass:function(d){var b,a,c,f,e,k,n;if(h.isFunction(d))return this.each(function(b){h(this).removeClass(d.call(this,b,this.className))});if(d&&"string"===typeof d||d===m){b=(d||"").split(Y);a=0;for(c=this.length;a<c;a++)if(f=this[a],1===f.nodeType&&f.className)if(d){e=
(" "+f.className+" ").replace(na," ");k=0;for(n=b.length;k<n;k++)e=e.replace(" "+b[k]+" "," ");f.className=h.trim(e)}else f.className=""}return this},toggleClass:function(d,b){var a=typeof d,c="boolean"===typeof b;return h.isFunction(d)?this.each(function(a){h(this).toggleClass(d.call(this,a,this.className,b),b)}):this.each(function(){if("string"===a)for(var f,e=0,k=h(this),n=b,g=d.split(Y);f=g[e++];)n=c?n:!k.hasClass(f),k[n?"addClass":"removeClass"](f);else if("undefined"===a||"boolean"===a)this.className&&
h._data(this,"__className__",this.className),this.className=this.className||!1===d?"":h._data(this,"__className__")||""})},hasClass:function(d){for(var d=" "+d+" ",b=0,h=this.length;b<h;b++)if(1===this[b].nodeType&&-1<(" "+this[b].className+" ").replace(na," ").indexOf(d))return!0;return!1},val:function(d){var b,a,c,f=this[0];if(arguments.length)return c=h.isFunction(d),this.each(function(a){var f=h(this);if(1===this.nodeType&&(a=c?d.call(this,a,f.val()):d,null==a?a="":"number"===typeof a?a+="":h.isArray(a)&&
(a=h.map(a,function(d){return d==null?"":d+""})),b=h.valHooks[this.nodeName.toLowerCase()]||h.valHooks[this.type],!b||!("set"in b)||b.set(this,a,"value")===m))this.value=a});if(f){if((b=h.valHooks[f.nodeName.toLowerCase()]||h.valHooks[f.type])&&"get"in b&&(a=b.get(f,"value"))!==m)return a;a=f.value;return"string"===typeof a?a.replace(Qa,""):null==a?"":a}}});h.extend({valHooks:{option:{get:function(d){var b=d.attributes.value;return!b||b.specified?d.value:d.text}},select:{get:function(d){var b,a,c=
d.selectedIndex,f=[],e=d.options,k="select-one"===d.type;if(0>c)return null;d=k?c:0;for(a=k?c+1:e.length;d<a;d++)if(b=e[d],b.selected&&(h.support.optDisabled?!b.disabled:null===b.getAttribute("disabled"))&&(!b.parentNode.disabled||!h.nodeName(b.parentNode,"optgroup"))){b=h(b).val();if(k)return b;f.push(b)}return k&&!f.length&&e.length?h(e[c]).val():f},set:function(d,b){var a=h.makeArray(b);h(d).find("option").each(function(){this.selected=0<=h.inArray(h(this).val(),a)});a.length||(d.selectedIndex=
-1);return a}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(d,b,a,c){var f,e,k=d.nodeType;if(d&&!(3===k||8===k||2===k)){if(c&&b in h.attrFn)return h(d)[b](a);if("undefined"===typeof d.getAttribute)return h.prop(d,b,a);if(c=1!==k||!h.isXMLDoc(d))b=b.toLowerCase(),e=h.attrHooks[b]||(oa.test(b)?qa:M);if(a!==m)if(null===a)h.removeAttr(d,b);else{if(e&&"set"in e&&c&&(f=e.set(d,a,b))!==m)return f;d.setAttribute(b,""+a);return a}else{if(e&&"get"in e&&c&&null!==
(f=e.get(d,b)))return f;f=d.getAttribute(b);return null===f?m:f}}},removeAttr:function(d,b){var a,c,f,e,k=0;if(b&&1===d.nodeType){c=b.toLowerCase().split(Y);for(e=c.length;k<e;k++)if(f=c[k])a=h.propFix[f]||f,h.attr(d,f,""),d.removeAttribute(pa?f:a),oa.test(f)&&a in d&&(d[a]=!1)}},attrHooks:{type:{set:function(d,b){if(Ra.test(d.nodeName)&&d.parentNode)h.error("type property can't be changed");else if(!h.support.radioValue&&"radio"===b&&h.nodeName(d,"input")){var a=d.value;d.setAttribute("type",b);
a&&(d.value=a);return b}}},value:{get:function(d,b){return M&&h.nodeName(d,"button")?M.get(d,b):b in d?d.value:null},set:function(d,b,a){if(M&&h.nodeName(d,"button"))return M.set(d,b,a);d.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(d,b,a){var c,f,e=
d.nodeType;if(d&&!(3===e||8===e||2===e)){if(1!==e||!h.isXMLDoc(d))b=h.propFix[b]||b,f=h.propHooks[b];return a!==m?f&&"set"in f&&(c=f.set(d,a,b))!==m?c:d[b]=a:f&&"get"in f&&null!==(c=f.get(d,b))?c:d[b]}},propHooks:{tabIndex:{get:function(d){var b=d.getAttributeNode("tabindex");return b&&b.specified?parseInt(b.value,10):Sa.test(d.nodeName)||Ta.test(d.nodeName)&&d.href?0:m}}}});h.attrHooks.tabindex=h.propHooks.tabIndex;qa={get:function(d,b){var a,c=h.prop(d,b);return!0===c||"boolean"!==typeof c&&(a=
d.getAttributeNode(b))&&!1!==a.nodeValue?b.toLowerCase():m},set:function(d,b,a){!1===b?h.removeAttr(d,a):(b=h.propFix[a]||a,b in d&&(d[b]=!0),d.setAttribute(a,a.toLowerCase()));return a}};pa||(ra={name:!0,id:!0},M=h.valHooks.button={get:function(d,b){var a;return(a=d.getAttributeNode(b))&&(ra[b]?""!==a.nodeValue:a.specified)?a.nodeValue:m},set:function(d,b,a){var h=d.getAttributeNode(a);h||(h=w.createAttribute(a),d.setAttributeNode(h));return h.nodeValue=b+""}},h.attrHooks.tabindex.set=M.set,h.each(["width",
"height"],function(d,b){h.attrHooks[b]=h.extend(h.attrHooks[b],{set:function(d,a){if(""===a)return d.setAttribute(b,"auto"),a}})}),h.attrHooks.contenteditable={get:M.get,set:function(d,b,a){""===b&&(b="false");M.set(d,b,a)}});h.support.hrefNormalized||h.each(["href","src","width","height"],function(d,b){h.attrHooks[b]=h.extend(h.attrHooks[b],{get:function(d){d=d.getAttribute(b,2);return d===null?m:d}})});h.support.style||(h.attrHooks.style={get:function(d){return d.style.cssText.toLowerCase()||m},
set:function(d,b){return d.style.cssText=""+b}});h.support.optSelected||(h.propHooks.selected=h.extend(h.propHooks.selected,{get:function(d){if(d=d.parentNode){d.selectedIndex;d.parentNode&&d.parentNode.selectedIndex}return null}}));h.support.enctype||(h.propFix.enctype="encoding");h.support.checkOn||h.each(["radio","checkbox"],function(){h.valHooks[this]={get:function(d){return d.getAttribute("value")===null?"on":d.value}}});h.each(["radio","checkbox"],function(){h.valHooks[this]=h.extend(h.valHooks[this],
{set:function(d,b){if(h.isArray(b))return d.checked=h.inArray(h(d).val(),b)>=0}})});var ga=/^(?:textarea|input|select)$/i,sa=/^([^\.]*)?(?:\.(.+))?$/,Ua=/\bhover(\.\S+)?\b/,Va=/^key/,Wa=/^(?:mouse|contextmenu)|click/,ta=/^(?:focusinfocus|focusoutblur)$/,Xa=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Ya=function(d){if(d=Xa.exec(d)){d[1]=(d[1]||"").toLowerCase();d[3]=d[3]&&RegExp("(?:^|\\s)"+d[3]+"(?:\\s|$)")}return d},ua=function(d){return h.event.special.hover?d:d.replace(Ua,"mouseenter$1 mouseleave$1")};
h.event={add:function(d,b,a,c,f){var e,k,n,g,j,q,r,t,p;if(!(d.nodeType===3||d.nodeType===8||!b||!a||!(e=h._data(d)))){if(a.handler){r=a;a=r.handler}if(!a.guid)a.guid=h.guid++;n=e.events;if(!n)e.events=n={};k=e.handle;if(!k){e.handle=k=function(d){return typeof h!=="undefined"&&(!d||h.event.triggered!==d.type)?h.event.dispatch.apply(k.elem,arguments):m};k.elem=d}b=h.trim(ua(b)).split(" ");for(e=0;e<b.length;e++){g=sa.exec(b[e])||[];j=g[1];q=(g[2]||"").split(".").sort();p=h.event.special[j]||{};j=(f?
p.delegateType:p.bindType)||j;p=h.event.special[j]||{};g=h.extend({type:j,origType:g[1],data:c,handler:a,guid:a.guid,selector:f,quick:Ya(f),namespace:q.join(".")},r);t=n[j];if(!t){t=n[j]=[];t.delegateCount=0;if(!p.setup||p.setup.call(d,c,q,k)===false)d.addEventListener?d.addEventListener(j,k,false):d.attachEvent&&d.attachEvent("on"+j,k)}if(p.add){p.add.call(d,g);if(!g.handler.guid)g.handler.guid=a.guid}f?t.splice(t.delegateCount++,0,g):t.push(g);h.event.global[j]=true}d=null}},global:{},remove:function(d,
b,a,c,f){var e=h.hasData(d)&&h._data(d),k,n,g,j,q,m,r,t,p,x;if(e&&(r=e.events)){b=h.trim(ua(b||"")).split(" ");for(k=0;k<b.length;k++){n=sa.exec(b[k])||[];g=j=n[1];n=n[2];if(g){t=h.event.special[g]||{};g=(c?t.delegateType:t.bindType)||g;p=r[g]||[];q=p.length;n=n?RegExp("(^|\\.)"+n.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(m=0;m<p.length;m++){x=p[m];if((f||j===x.origType)&&(!a||a.guid===x.guid)&&(!n||n.test(x.namespace))&&(!c||c===x.selector||c==="**"&&x.selector)){p.splice(m--,1);
x.selector&&p.delegateCount--;t.remove&&t.remove.call(d,x)}}if(p.length===0&&q!==p.length){(!t.teardown||t.teardown.call(d,n)===false)&&h.removeEvent(d,g,e.handle);delete r[g]}}else for(g in r)h.event.remove(d,g+b[k],a,c,true)}if(h.isEmptyObject(r)){if(b=e.handle)b.elem=null;h.removeData(d,["events","handle"],true)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(d,b,c,f){if(!c||!(c.nodeType===3||c.nodeType===8)){var e=d.type||d,k=[],n,g,j,q,r;if(!ta.test(e+h.event.triggered)){if(e.indexOf("!")>=
0){e=e.slice(0,-1);n=true}if(e.indexOf(".")>=0){k=e.split(".");e=k.shift();k.sort()}if(c&&!h.event.customEvent[e]||h.event.global[e]){d=typeof d==="object"?d[h.expando]?d:new h.Event(e,d):new h.Event(e);d.type=e;d.isTrigger=true;d.exclusive=n;d.namespace=k.join(".");d.namespace_re=d.namespace?RegExp("(^|\\.)"+k.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;n=e.indexOf(":")<0?"on"+e:"";if(c){d.result=m;if(!d.target)d.target=c;b=b!=null?h.makeArray(b):[];b.unshift(d);j=h.event.special[e]||{};if(!(j.trigger&&
j.trigger.apply(c,b)===false)){r=[[c,j.bindType||e]];if(!f&&!j.noBubble&&!h.isWindow(c)){q=j.delegateType||e;k=ta.test(q+e)?c:c.parentNode;for(g=null;k;k=k.parentNode){r.push([k,q]);g=k}g&&g===c.ownerDocument&&r.push([g.defaultView||g.parentWindow||a,q])}for(g=0;g<r.length&&!d.isPropagationStopped();g++){k=r[g][0];d.type=r[g][1];(q=(h._data(k,"events")||{})[d.type]&&h._data(k,"handle"))&&q.apply(k,b);(q=n&&k[n])&&h.acceptData(k)&&q.apply(k,b)===false&&d.preventDefault()}d.type=e;if(!f&&!d.isDefaultPrevented()&&
(!j._default||j._default.apply(c.ownerDocument,b)===false)&&!(e==="click"&&h.nodeName(c,"a"))&&h.acceptData(c))if(n&&c[e]&&(e!=="focus"&&e!=="blur"||d.target.offsetWidth!==0)&&!h.isWindow(c)){(g=c[n])&&(c[n]=null);h.event.triggered=e;c[e]();h.event.triggered=m;g&&(c[n]=g)}return d.result}}else{c=h.cache;for(g in c)c[g].events&&c[g].events[e]&&h.event.trigger(d,b,c[g].handle.elem,true)}}}}},dispatch:function(d){var d=h.event.fix(d||a.event),b=(h._data(this,"events")||{})[d.type]||[],c=b.delegateCount,
f=[].slice.call(arguments,0),e=!d.exclusive&&!d.namespace,k=[],n,g,j,q,r,t,p;f[0]=d;d.delegateTarget=this;if(c&&!d.target.disabled&&!(d.button&&d.type==="click")){j=h(this);j.context=this.ownerDocument||this;for(g=d.target;g!=this;g=g.parentNode||this){r={};t=[];j[0]=g;for(n=0;n<c;n++){q=b[n];p=q.selector;if(r[p]===m){var x=r,y=p,D;if(q.quick){D=q.quick;var z=g.attributes||{};D=(!D[1]||g.nodeName.toLowerCase()===D[1])&&(!D[2]||(z.id||{}).value===D[2])&&(!D[3]||D[3].test((z["class"]||{}).value))}else D=
j.is(p);x[y]=D}r[p]&&t.push(q)}t.length&&k.push({elem:g,matches:t})}}b.length>c&&k.push({elem:this,matches:b.slice(c)});for(n=0;n<k.length&&!d.isPropagationStopped();n++){c=k[n];d.currentTarget=c.elem;for(b=0;b<c.matches.length&&!d.isImmediatePropagationStopped();b++){q=c.matches[b];if(e||!d.namespace&&!q.namespace||d.namespace_re&&d.namespace_re.test(q.namespace)){d.data=q.data;d.handleObj=q;q=((h.event.special[q.origType]||{}).handle||q.handler).apply(c.elem,f);if(q!==m){d.result=q;if(q===false){d.preventDefault();
d.stopPropagation()}}}}}return d.result},props:"attrChange,attrName,relatedNode,srcElement,altKey,bubbles,cancelable,ctrlKey,currentTarget,eventPhase,metaKey,relatedTarget,shiftKey,target,timeStamp,view,which".split(","),fixHooks:{},keyHooks:{props:["char","charCode","key","keyCode"],filter:function(d,b){if(d.which==null)d.which=b.charCode!=null?b.charCode:b.keyCode;return d}},mouseHooks:{props:"button,buttons,clientX,clientY,fromElement,offsetX,offsetY,pageX,pageY,screenX,screenY,toElement".split(","),
filter:function(d,b){var a,h,c=b.button,f=b.fromElement;if(d.pageX==null&&b.clientX!=null){a=d.target.ownerDocument||w;h=a.documentElement;a=a.body;d.pageX=b.clientX+(h&&h.scrollLeft||a&&a.scrollLeft||0)-(h&&h.clientLeft||a&&a.clientLeft||0);d.pageY=b.clientY+(h&&h.scrollTop||a&&a.scrollTop||0)-(h&&h.clientTop||a&&a.clientTop||0)}if(!d.relatedTarget&&f)d.relatedTarget=f===d.target?b.toElement:f;if(!d.which&&c!==m)d.which=c&1?1:c&2?3:c&4?2:0;return d}},fix:function(d){if(d[h.expando])return d;var b,
a,c=d,f=h.event.fixHooks[d.type]||{},e=f.props?this.props.concat(f.props):this.props,d=h.Event(c);for(b=e.length;b;){a=e[--b];d[a]=c[a]}if(!d.target)d.target=c.srcElement||w;if(d.target.nodeType===3)d.target=d.target.parentNode;if(d.metaKey===m)d.metaKey=d.ctrlKey;return f.filter?f.filter(d,c):d},special:{ready:{setup:h.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(d,b,a){if(h.isWindow(this))this.onbeforeunload=a},teardown:function(d,
b){if(this.onbeforeunload===b)this.onbeforeunload=null}}},simulate:function(d,b,a,c){d=h.extend(new h.Event,a,{type:d,isSimulated:true,originalEvent:{}});c?h.event.trigger(d,null,b):h.event.dispatch.call(b,d);d.isDefaultPrevented()&&a.preventDefault()}};h.event.handle=h.event.dispatch;h.removeEvent=w.removeEventListener?function(d,b,a){d.removeEventListener&&d.removeEventListener(b,a,false)}:function(d,b,a){d.detachEvent&&d.detachEvent("on"+b,a)};h.Event=function(d,a){if(!(this instanceof h.Event))return new h.Event(d,
a);if(d&&d.type){this.originalEvent=d;this.type=d.type;this.isDefaultPrevented=d.defaultPrevented||d.returnValue===false||d.getPreventDefault&&d.getPreventDefault()?b:k}else this.type=d;a&&h.extend(this,a);this.timeStamp=d&&d.timeStamp||h.now();this[h.expando]=true};h.Event.prototype={preventDefault:function(){this.isDefaultPrevented=b;var d=this.originalEvent;if(d)d.preventDefault?d.preventDefault():d.returnValue=false},stopPropagation:function(){this.isPropagationStopped=b;var d=this.originalEvent;
if(d){d.stopPropagation&&d.stopPropagation();d.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=b;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};h.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(d,b){h.event.special[d]={delegateType:b,bindType:b,handle:function(d){var a=d.relatedTarget,c=d.handleObj,f;if(!a||a!==this&&!h.contains(this,a)){d.type=c.origType;f=c.handler.apply(this,arguments);
d.type=b}return f}}});h.support.submitBubbles||(h.event.special.submit={setup:function(){if(h.nodeName(this,"form"))return false;h.event.add(this,"click._submit keypress._submit",function(d){d=d.target;if((d=h.nodeName(d,"input")||h.nodeName(d,"button")?d.form:m)&&!d._submit_attached){h.event.add(d,"submit._submit",function(d){this.parentNode&&!d.isTrigger&&h.event.simulate("submit",this.parentNode,d,true)});d._submit_attached=true}})},teardown:function(){if(h.nodeName(this,"form"))return false;h.event.remove(this,
"._submit")}});h.support.changeBubbles||(h.event.special.change={setup:function(){if(ga.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){h.event.add(this,"propertychange._change",function(d){if(d.originalEvent.propertyName==="checked")this._just_changed=true});h.event.add(this,"click._change",function(d){if(this._just_changed&&!d.isTrigger){this._just_changed=false;h.event.simulate("change",this,d,true)}})}return false}h.event.add(this,"beforeactivate._change",function(d){d=d.target;
if(ga.test(d.nodeName)&&!d._change_attached){h.event.add(d,"change._change",function(d){this.parentNode&&!d.isSimulated&&!d.isTrigger&&h.event.simulate("change",this.parentNode,d,true)});d._change_attached=true}})},handle:function(d){var b=d.target;if(this!==b||d.isSimulated||d.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return d.handleObj.handler.apply(this,arguments)},teardown:function(){h.event.remove(this,"._change");return ga.test(this.nodeName)}});h.support.focusinBubbles||h.each({focus:"focusin",
blur:"focusout"},function(d,b){var a=0,c=function(d){h.event.simulate(b,d.target,h.event.fix(d),true)};h.event.special[b]={setup:function(){a++===0&&w.addEventListener(d,c,true)},teardown:function(){--a===0&&w.removeEventListener(d,c,true)}}});h.fn.extend({on:function(d,b,a,c,f){var e,n;if(typeof d==="object"){if(typeof b!=="string"){a=b;b=m}for(n in d)this.on(n,b,a,d[n],f);return this}if(a==null&&c==null){c=b;a=b=m}else if(c==null)if(typeof b==="string"){c=a;a=m}else{c=a;a=b;b=m}if(c===false)c=k;
else if(!c)return this;if(f===1){e=c;c=function(d){h().off(d);return e.apply(this,arguments)};c.guid=e.guid||(e.guid=h.guid++)}return this.each(function(){h.event.add(this,d,c,a,b)})},one:function(d,b,a,h){return this.on.call(this,d,b,a,h,1)},off:function(d,b,a){if(d&&d.preventDefault&&d.handleObj){var c=d.handleObj;h(d.delegateTarget).off(c.namespace?c.type+"."+c.namespace:c.type,c.selector,c.handler);return this}if(typeof d==="object"){for(c in d)this.off(c,b,d[c]);return this}if(b===false||typeof b===
"function"){a=b;b=m}a===false&&(a=k);return this.each(function(){h.event.remove(this,d,a,b)})},bind:function(d,b,a){return this.on(d,null,b,a)},unbind:function(d,b){return this.off(d,null,b)},live:function(d,b,a){h(this.context).on(d,this.selector,b,a);return this},die:function(d,b){h(this.context).off(d,this.selector||"**",b);return this},delegate:function(d,b,a,h){return this.on(b,d,a,h)},undelegate:function(d,b,a){return arguments.length==1?this.off(d,"**"):this.off(b,d,a)},trigger:function(d,
b){return this.each(function(){h.event.trigger(d,b,this)})},triggerHandler:function(d,b){if(this[0])return h.event.trigger(d,b,this[0],true)},toggle:function(d){var b=arguments,a=d.guid||h.guid++,c=0,f=function(a){var f=(h._data(this,"lastToggle"+d.guid)||0)%c;h._data(this,"lastToggle"+d.guid,f+1);a.preventDefault();return b[f].apply(this,arguments)||false};for(f.guid=a;c<b.length;)b[c++].guid=a;return this.click(f)},hover:function(d,b){return this.mouseenter(d).mouseleave(b||d)}});h.each("blur,focus,focusin,focusout,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error,contextmenu".split(","),
function(d,b){h.fn[b]=function(d,a){if(a==null){a=d;d=null}return arguments.length>0?this.on(b,null,d,a):this.trigger(b)};h.attrFn&&(h.attrFn[b]=true);if(Va.test(b))h.event.fixHooks[b]=h.event.keyHooks;if(Wa.test(b))h.event.fixHooks[b]=h.event.mouseHooks});(function(){function d(d,b,a,h,f,e){for(var f=0,k=h.length;f<k;f++){var n=h[f];if(n){for(var g=false,n=n[d];n;){if(n[c]===a){g=h[n.sizset];break}if(n.nodeType===1&&!e){n[c]=a;n.sizset=f}if(n.nodeName.toLowerCase()===b){g=n;break}n=n[d]}h[f]=g}}}
function b(d,a,h,f,e,k){for(var e=0,n=f.length;e<n;e++){var g=f[e];if(g){for(var j=false,g=g[d];g;){if(g[c]===h){j=f[g.sizset];break}if(g.nodeType===1){if(!k){g[c]=h;g.sizset=e}if(typeof a!=="string"){if(g===a){j=true;break}}else if(r.filter(a,[g]).length>0){j=g;break}}g=g[d]}f[e]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,c="sizcache"+(Math.random()+"").replace(".",""),f=0,e=Object.prototype.toString,
k=false,n=true,g=/\\/g,j=/\r\n/g,q=/\W/;[0,0].sort(function(){n=false;return 0});var r=function(d,b,h,c){var h=h||[],f=b=b||w;if(b.nodeType!==1&&b.nodeType!==9)return[];if(!d||typeof d!=="string")return h;var k,n,g,j,q,o=true,m=r.isXML(b),t=[],y=d;do{a.exec("");if(k=a.exec(y)){y=k[3];t.push(k[1]);if(k[2]){j=k[3];break}}}while(k);if(t.length>1&&x.exec(d))if(t.length===2&&p.relative[t[0]])n=B(t[0]+t[1],b,c);else for(n=p.relative[t[0]]?[b]:r(t.shift(),b);t.length;){d=t.shift();p.relative[d]&&(d=d+t.shift());
n=B(d,n,c)}else{if(!c&&t.length>1&&b.nodeType===9&&!m&&p.match.ID.test(t[0])&&!p.match.ID.test(t[t.length-1])){k=r.find(t.shift(),b,m);b=k.expr?r.filter(k.expr,k.set)[0]:k.set[0]}if(b){k=c?{expr:t.pop(),set:z(c)}:r.find(t.pop(),t.length===1&&(t[0]==="~"||t[0]==="+")&&b.parentNode?b.parentNode:b,m);n=k.expr?r.filter(k.expr,k.set):k.set;for(t.length>0?g=z(n):o=false;t.length;){k=q=t.pop();p.relative[q]?k=t.pop():q="";k==null&&(k=b);p.relative[q](g,k,m)}}else g=[]}g||(g=n);g||r.error(q||d);if(e.call(g)===
"[object Array]")if(o)if(b&&b.nodeType===1)for(d=0;g[d]!=null;d++)g[d]&&(g[d]===true||g[d].nodeType===1&&r.contains(b,g[d]))&&h.push(n[d]);else for(d=0;g[d]!=null;d++)g[d]&&g[d].nodeType===1&&h.push(n[d]);else h.push.apply(h,g);else z(g,h);if(j){r(j,f,h,c);r.uniqueSort(h)}return h};r.uniqueSort=function(d){if(v){k=n;d.sort(v);if(k)for(var b=1;b<d.length;b++)d[b]===d[b-1]&&d.splice(b--,1)}return d};r.matches=function(d,b){return r(d,null,null,b)};r.matchesSelector=function(d,b){return r(b,null,null,
[d]).length>0};r.find=function(d,b,a){var h,c,f,e,k,n;if(!d)return[];c=0;for(f=p.order.length;c<f;c++){k=p.order[c];if(e=p.leftMatch[k].exec(d)){n=e[1];e.splice(1,1);if(n.substr(n.length-1)!=="\\"){e[1]=(e[1]||"").replace(g,"");h=p.find[k](e,b,a);if(h!=null){d=d.replace(p.match[k],"");break}}}}h||(h=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:h,expr:d}};r.filter=function(d,b,a,h){for(var c,f,e,k,g,n,j,q,o=d,t=[],x=b,y=b&&b[0]&&r.isXML(b[0]);d&&b.length;){for(e in p.filter)if((c=
p.leftMatch[e].exec(d))!=null&&c[2]){n=p.filter[e];g=c[1];f=false;c.splice(1,1);if(g.substr(g.length-1)!=="\\"){x===t&&(t=[]);if(p.preFilter[e])if(c=p.preFilter[e](c,x,a,t,h,y)){if(c===true)continue}else f=k=true;if(c)for(j=0;(g=x[j])!=null;j++)if(g){k=n(g,c,j,x);q=h^k;if(a&&k!=null)q?f=true:x[j]=false;else if(q){t.push(g);f=true}}if(k!==m){a||(x=t);d=d.replace(p.match[e],"");if(!f)return[];break}}}if(d===o)if(f==null)r.error(d);else break;o=d}return x};r.error=function(d){throw Error("Syntax error, unrecognized expression: "+
d);};var t=r.getText=function(d){var b,a;b=d.nodeType;var h="";if(b)if(b===1||b===9){if(typeof d.textContent==="string")return d.textContent;if(typeof d.innerText==="string")return d.innerText.replace(j,"");for(d=d.firstChild;d;d=d.nextSibling)h=h+t(d)}else{if(b===3||b===4)return d.nodeValue}else for(b=0;a=d[b];b++)a.nodeType!==8&&(h=h+t(a));return h},p=r.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(d){return d.getAttribute("href")},
type:function(d){return d.getAttribute("type")}},relative:{"+":function(d,b){var a=typeof b==="string",h=a&&!q.test(b),a=a&&!h;h&&(b=b.toLowerCase());for(var h=0,c=d.length,f;h<c;h++)if(f=d[h]){for(;(f=f.previousSibling)&&f.nodeType!==1;);d[h]=a||f&&f.nodeName.toLowerCase()===b?f||false:f===b}a&&r.filter(b,d,true)},">":function(d,b){var a,h=typeof b==="string",c=0,f=d.length;if(h&&!q.test(b))for(b=b.toLowerCase();c<f;c++){if(a=d[c]){a=a.parentNode;d[c]=a.nodeName.toLowerCase()===b?a:false}}else{for(;c<
f;c++)(a=d[c])&&(d[c]=h?a.parentNode:a.parentNode===b);h&&r.filter(b,d,true)}},"":function(a,h,c){var e,k=f++,g=b;if(typeof h==="string"&&!q.test(h)){e=h=h.toLowerCase();g=d}g("parentNode",h,k,a,e,c)},"~":function(a,h,c){var e,k=f++,g=b;if(typeof h==="string"&&!q.test(h)){e=h=h.toLowerCase();g=d}g("previousSibling",h,k,a,e,c)}},find:{ID:function(d,b,a){if(typeof b.getElementById!=="undefined"&&!a)return(d=b.getElementById(d[1]))&&d.parentNode?[d]:[]},NAME:function(d,b){if(typeof b.getElementsByName!==
"undefined"){for(var a=[],h=b.getElementsByName(d[1]),c=0,f=h.length;c<f;c++)h[c].getAttribute("name")===d[1]&&a.push(h[c]);return a.length===0?null:a}},TAG:function(d,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(d[1])}},preFilter:{CLASS:function(d,b,a,h,c,f){d=" "+d[1].replace(g,"")+" ";if(f)return d;for(var f=0,e;(e=b[f])!=null;f++)e&&(c^(e.className&&(" "+e.className+" ").replace(/[\t\n\r]/g," ").indexOf(d)>=0)?a||h.push(e):a&&(b[f]=false));return false},ID:function(d){return d[1].replace(g,
"")},TAG:function(d){return d[1].replace(g,"").toLowerCase()},CHILD:function(d){if(d[1]==="nth"){d[2]||r.error(d[0]);d[2]=d[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(d[2]==="even"&&"2n"||d[2]==="odd"&&"2n+1"||!/\D/.test(d[2])&&"0n+"+d[2]||d[2]);d[2]=b[1]+(b[2]||1)-0;d[3]=b[3]-0}else d[2]&&r.error(d[0]);d[0]=f++;return d},ATTR:function(d,b,a,h,c,f){b=d[1]=d[1].replace(g,"");!f&&p.attrMap[b]&&(d[1]=p.attrMap[b]);d[4]=(d[4]||d[5]||"").replace(g,"");d[2]==="~="&&(d[4]=" "+d[4]+
" ");return d},PSEUDO:function(d,b,h,c,f){if(d[1]==="not")if((a.exec(d[3])||"").length>1||/^\w/.test(d[3]))d[3]=r(d[3],null,null,b);else{d=r.filter(d[3],b,h,1^f);h||c.push.apply(c,d);return false}else if(p.match.POS.test(d[0])||p.match.CHILD.test(d[0]))return true;return d},POS:function(d){d.unshift(true);return d}},filters:{enabled:function(d){return d.disabled===false&&d.type!=="hidden"},disabled:function(d){return d.disabled===true},checked:function(d){return d.checked===true},selected:function(d){d.parentNode&&
d.parentNode.selectedIndex;return d.selected===true},parent:function(d){return!!d.firstChild},empty:function(d){return!d.firstChild},has:function(d,b,a){return!!r(a[3],d).length},header:function(d){return/h\d/i.test(d.nodeName)},text:function(d){var b=d.getAttribute("type"),a=d.type;return d.nodeName.toLowerCase()==="input"&&"text"===a&&(b===a||b===null)},radio:function(d){return d.nodeName.toLowerCase()==="input"&&"radio"===d.type},checkbox:function(d){return d.nodeName.toLowerCase()==="input"&&
"checkbox"===d.type},file:function(d){return d.nodeName.toLowerCase()==="input"&&"file"===d.type},password:function(d){return d.nodeName.toLowerCase()==="input"&&"password"===d.type},submit:function(d){var b=d.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===d.type},image:function(d){return d.nodeName.toLowerCase()==="input"&&"image"===d.type},reset:function(d){var b=d.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===d.type},button:function(d){var b=d.nodeName.toLowerCase();
return b==="input"&&"button"===d.type||b==="button"},input:function(d){return/input|select|textarea|button/i.test(d.nodeName)},focus:function(d){return d===d.ownerDocument.activeElement}},setFilters:{first:function(d,b){return b===0},last:function(d,b,a,h){return b===h.length-1},even:function(d,b){return b%2===0},odd:function(d,b){return b%2===1},lt:function(d,b,a){return b<a[3]-0},gt:function(d,b,a){return b>a[3]-0},nth:function(d,b,a){return a[3]-0===b},eq:function(d,b,a){return a[3]-0===b}},filter:{PSEUDO:function(d,
b,a,h){var c=b[1],f=p.filters[c];if(f)return f(d,a,b,h);if(c==="contains")return(d.textContent||d.innerText||t([d])||"").indexOf(b[3])>=0;if(c==="not"){b=b[3];a=0;for(h=b.length;a<h;a++)if(b[a]===d)return false;return true}r.error(c)},CHILD:function(d,b){var a,h,f,e,k,g;a=b[1];g=d;switch(a){case "only":case "first":for(;g=g.previousSibling;)if(g.nodeType===1)return false;if(a==="first")return true;g=d;case "last":for(;g=g.nextSibling;)if(g.nodeType===1)return false;return true;case "nth":a=b[2];h=
b[3];if(a===1&&h===0)return true;f=b[0];if((e=d.parentNode)&&(e[c]!==f||!d.nodeIndex)){k=0;for(g=e.firstChild;g;g=g.nextSibling)if(g.nodeType===1)g.nodeIndex=++k;e[c]=f}g=d.nodeIndex-h;return a===0?g===0:g%a===0&&g/a>=0}},ID:function(d,b){return d.nodeType===1&&d.getAttribute("id")===b},TAG:function(d,b){return b==="*"&&d.nodeType===1||!!d.nodeName&&d.nodeName.toLowerCase()===b},CLASS:function(d,b){return(" "+(d.className||d.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(d,b){var a=b[1],
a=r.attr?r.attr(d,a):p.attrHandle[a]?p.attrHandle[a](d):d[a]!=null?d[a]:d.getAttribute(a),h=a+"",c=b[2],f=b[4];return a==null?c==="!=":!c&&r.attr?a!=null:c==="="?h===f:c==="*="?h.indexOf(f)>=0:c==="~="?(" "+h+" ").indexOf(f)>=0:!f?h&&a!==false:c==="!="?h!==f:c==="^="?h.indexOf(f)===0:c==="$="?h.substr(h.length-f.length)===f:c==="|="?h===f||h.substr(0,f.length+1)===f+"-":false},POS:function(d,b,a,h){var c=p.setFilters[b[2]];if(c)return c(d,a,b,h)}}},x=p.match.POS,y=function(d,b){return"\\"+(b-0+1)},
D;for(D in p.match){p.match[D]=RegExp(p.match[D].source+/(?![^\[]*\])(?![^\(]*\))/.source);p.leftMatch[D]=RegExp(/(^(?:.|\r|\n)*?)/.source+p.match[D].source.replace(/\\(\d+)/g,y))}var z=function(d,b){d=Array.prototype.slice.call(d,0);if(b){b.push.apply(b,d);return b}return d};try{Array.prototype.slice.call(w.documentElement.childNodes,0)[0].nodeType}catch(A){z=function(d,b){var a=0,h=b||[];if(e.call(d)==="[object Array]")Array.prototype.push.apply(h,d);else if(typeof d.length==="number")for(var c=
d.length;a<c;a++)h.push(d[a]);else for(;d[a];a++)h.push(d[a]);return h}}var v,u;if(w.documentElement.compareDocumentPosition)v=function(d,b){if(d===b){k=true;return 0}return!d.compareDocumentPosition||!b.compareDocumentPosition?d.compareDocumentPosition?-1:1:d.compareDocumentPosition(b)&4?-1:1};else{v=function(d,b){if(d===b){k=true;return 0}if(d.sourceIndex&&b.sourceIndex)return d.sourceIndex-b.sourceIndex;var a,h,c=[],f=[];a=d.parentNode;h=b.parentNode;var e=a;if(a===h)return u(d,b);if(a){if(!h)return 1}else return-1;
for(;e;){c.unshift(e);e=e.parentNode}for(e=h;e;){f.unshift(e);e=e.parentNode}a=c.length;h=f.length;for(e=0;e<a&&e<h;e++)if(c[e]!==f[e])return u(c[e],f[e]);return e===a?u(d,f[e],-1):u(c[e],b,1)};u=function(d,b,a){if(d===b)return a;for(d=d.nextSibling;d;){if(d===b)return-1;d=d.nextSibling}return 1}}(function(){var d=w.createElement("div"),b="script"+(new Date).getTime(),a=w.documentElement;d.innerHTML="<a name='"+b+"'/>";a.insertBefore(d,a.firstChild);if(w.getElementById(b)){p.find.ID=function(d,b,
a){if(typeof b.getElementById!=="undefined"&&!a)return(b=b.getElementById(d[1]))?b.id===d[1]||typeof b.getAttributeNode!=="undefined"&&b.getAttributeNode("id").nodeValue===d[1]?[b]:m:[]};p.filter.ID=function(d,b){var a=typeof d.getAttributeNode!=="undefined"&&d.getAttributeNode("id");return d.nodeType===1&&a&&a.nodeValue===b}}a.removeChild(d);a=d=null})();(function(){var d=w.createElement("div");d.appendChild(w.createComment(""));if(d.getElementsByTagName("*").length>0)p.find.TAG=function(d,b){var a=
b.getElementsByTagName(d[1]);if(d[1]==="*"){for(var h=[],c=0;a[c];c++)a[c].nodeType===1&&h.push(a[c]);a=h}return a};d.innerHTML="<a href='#'></a>";if(d.firstChild&&typeof d.firstChild.getAttribute!=="undefined"&&d.firstChild.getAttribute("href")!=="#")p.attrHandle.href=function(d){return d.getAttribute("href",2)};d=null})();w.querySelectorAll&&function(){var d=r,b=w.createElement("div");b.innerHTML="<p class='TEST'></p>";if(!(b.querySelectorAll&&b.querySelectorAll(".TEST").length===0)){r=function(b,
a,h,c){a=a||w;if(!c&&!r.isXML(a)){var f=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(f&&(a.nodeType===1||a.nodeType===9)){if(f[1])return z(a.getElementsByTagName(b),h);if(f[2]&&p.find.CLASS&&a.getElementsByClassName)return z(a.getElementsByClassName(f[2]),h)}if(a.nodeType===9){if(b==="body"&&a.body)return z([a.body],h);if(f&&f[3]){var e=a.getElementById(f[3]);if(e&&e.parentNode){if(e.id===f[3])return z([e],h)}else return z([],h)}try{return z(a.querySelectorAll(b),h)}catch(k){}}else if(a.nodeType===
1&&a.nodeName.toLowerCase()!=="object"){var f=a,g=(e=a.getAttribute("id"))||"__sizzle__",n=a.parentNode,j=/^\s*[+~]/.test(b);e?g=g.replace(/'/g,"\\$&"):a.setAttribute("id",g);if(j&&n)a=a.parentNode;try{if(!j||n)return z(a.querySelectorAll("[id='"+g+"'] "+b),h)}catch(q){}finally{e||f.removeAttribute("id")}}}return d(b,a,h,c)};for(var a in d)r[a]=d[a];b=null}}();(function(){var d=w.documentElement,b=d.matchesSelector||d.mozMatchesSelector||d.webkitMatchesSelector||d.msMatchesSelector;if(b){var a=!b.call(w.createElement("div"),
"div"),h=false;try{b.call(w.documentElement,"[test!='']:sizzle")}catch(c){h=true}r.matchesSelector=function(d,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!r.isXML(d))try{if(h||!p.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(d,c);if(f||!a||d.document&&d.document.nodeType!==11)return f}}catch(e){}return r(c,null,null,[d]).length>0}}})();(function(){var d=w.createElement("div");d.innerHTML="<div class='test e'></div><div class='test'></div>";if(d.getElementsByClassName&&d.getElementsByClassName("e").length!==
0){d.lastChild.className="e";if(d.getElementsByClassName("e").length!==1){p.order.splice(1,0,"CLASS");p.find.CLASS=function(d,b,a){if(typeof b.getElementsByClassName!=="undefined"&&!a)return b.getElementsByClassName(d[1])};d=null}}})();r.contains=w.documentElement.contains?function(d,b){return d!==b&&(d.contains?d.contains(b):true)}:w.documentElement.compareDocumentPosition?function(d,b){return!!(d.compareDocumentPosition(b)&16)}:function(){return false};r.isXML=function(d){return(d=(d?d.ownerDocument||
d:0).documentElement)?d.nodeName!=="HTML":false};var B=function(d,b,a){for(var h,c=[],f="",b=b.nodeType?[b]:b;h=p.match.PSEUDO.exec(d);){f=f+h[0];d=d.replace(p.match.PSEUDO,"")}d=p.relative[d]?d+"*":d;h=0;for(var e=b.length;h<e;h++)r(d,b[h],c,a);return r.filter(f,c)};r.attr=h.attr;r.selectors.attrMap={};h.find=r;h.expr=r.selectors;h.expr[":"]=h.expr.filters;h.unique=r.uniqueSort;h.text=r.getText;h.isXMLDoc=r.isXML;h.contains=r.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,
La=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,va=h.expr.match.POS,cb={children:!0,contents:!0,next:!0,prev:!0};h.fn.extend({find:function(d){var b=this,a,c;if(typeof d!=="string")return h(d).filter(function(){a=0;for(c=b.length;a<c;a++)if(h.contains(b[a],this))return true});var f=this.pushStack("","find",d),e,k,g;a=0;for(c=this.length;a<c;a++){e=f.length;h.find(d,this[a],f);if(a>0)for(k=e;k<f.length;k++)for(g=0;g<e;g++)if(f[g]===f[k]){f.splice(k--,1);break}}return f},has:function(d){var b=h(d);return this.filter(function(){for(var d=
0,a=b.length;d<a;d++)if(h.contains(this,b[d]))return true})},not:function(d){return this.pushStack(f(this,d,false),"not",d)},filter:function(d){return this.pushStack(f(this,d,true),"filter",d)},is:function(d){return!!d&&(typeof d==="string"?va.test(d)?h(d,this.context).index(this[0])>=0:h.filter(d,this).length>0:this.filter(d).length>0)},closest:function(d,b){var a=[],c,f,e=this[0];if(h.isArray(d)){for(f=1;e&&e.ownerDocument&&e!==b;){for(c=0;c<d.length;c++)h(e).is(d[c])&&a.push({selector:d[c],elem:e,
level:f});e=e.parentNode;f++}return a}var k=va.test(d)||typeof d!=="string"?h(d,b||this.context):0;c=0;for(f=this.length;c<f;c++)for(e=this[c];e;)if(k?k.index(e)>-1:h.find.matchesSelector(e,d)){a.push(e);break}else{e=e.parentNode;if(!e||!e.ownerDocument||e===b||e.nodeType===11)break}a=a.length>1?h.unique(a):a;return this.pushStack(a,"closest",d)},index:function(d){return!d?this[0]&&this[0].parentNode?this.prevAll().length:-1:typeof d==="string"?h.inArray(this[0],h(d)):h.inArray(d.jquery?d[0]:d,this)},
add:function(d,b){var a=typeof d==="string"?h(d,b):h.makeArray(d&&d.nodeType?[d]:d),c=h.merge(this.get(),a);return this.pushStack(!a[0]||!a[0].parentNode||a[0].parentNode.nodeType===11||!c[0]||!c[0].parentNode||c[0].parentNode.nodeType===11?c:h.unique(c))},andSelf:function(){return this.add(this.prevObject)}});h.each({parent:function(d){return(d=d.parentNode)&&d.nodeType!==11?d:null},parents:function(d){return h.dir(d,"parentNode")},parentsUntil:function(d,b,a){return h.dir(d,"parentNode",a)},next:function(d){return h.nth(d,
2,"nextSibling")},prev:function(d){return h.nth(d,2,"previousSibling")},nextAll:function(d){return h.dir(d,"nextSibling")},prevAll:function(d){return h.dir(d,"previousSibling")},nextUntil:function(d,b,a){return h.dir(d,"nextSibling",a)},prevUntil:function(d,b,a){return h.dir(d,"previousSibling",a)},siblings:function(d){return h.sibling(d.parentNode.firstChild,d)},children:function(d){return h.sibling(d.firstChild)},contents:function(d){return h.nodeName(d,"iframe")?d.contentDocument||d.contentWindow.document:
h.makeArray(d.childNodes)}},function(d,b){h.fn[d]=function(a,c){var f=h.map(this,b,a);Za.test(d)||(c=a);c&&typeof c==="string"&&(f=h.filter(c,f));f=this.length>1&&!cb[d]?h.unique(f):f;if((this.length>1||ab.test(c))&&$a.test(d))f=f.reverse();return this.pushStack(f,d,bb.call(arguments).join(","))}});h.extend({filter:function(d,b,a){a&&(d=":not("+d+")");return b.length===1?h.find.matchesSelector(b[0],d)?[b[0]]:[]:h.find.matches(d,b)},dir:function(d,b,a){for(var c=[],d=d[b];d&&d.nodeType!==9&&(a===m||
d.nodeType!==1||!h(d).is(a));){d.nodeType===1&&c.push(d);d=d[b]}return c},nth:function(d,b,a){for(var b=b||1,h=0;d;d=d[a])if(d.nodeType===1&&++h===b)break;return d},sibling:function(d,b){for(var a=[];d;d=d.nextSibling)d.nodeType===1&&d!==b&&a.push(d);return a}});var ka="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",db=/ jQuery\d+="(?:\d+|null)"/g,ha=/^\s+/,wa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
xa=/<([\w:]+)/,eb=/<tbody/i,fb=/<|&#?\w+;/,gb=/<(?:script|style)/i,hb=/<(?:script|object|embed|option|style)/i,ya=RegExp("<(?:"+ka+")","i"),za=/checked\s*(?:[^=]|=\s*.checked.)/i,ib=/\/(java|ecma)script/i,Ma=/^\s*<!(?:\[CDATA\[|\-\-)/,H={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],
area:[1,"<map>","</map>"],_default:[0,"",""]},Aa=n(w);H.optgroup=H.option;H.tbody=H.tfoot=H.colgroup=H.caption=H.thead;H.th=H.td;h.support.htmlSerialize||(H._default=[1,"div<div>","</div>"]);h.fn.extend({text:function(d){return h.isFunction(d)?this.each(function(b){var a=h(this);a.text(d.call(this,b,a.text()))}):typeof d!=="object"&&d!==m?this.empty().append((this[0]&&this[0].ownerDocument||w).createTextNode(d)):h.text(this)},wrapAll:function(d){if(h.isFunction(d))return this.each(function(b){h(this).wrapAll(d.call(this,
b))});if(this[0]){var b=h(d,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(d){return h.isFunction(d)?this.each(function(b){h(this).wrapInner(d.call(this,b))}):this.each(function(){var b=h(this),a=b.contents();a.length?a.wrapAll(d):b.append(d)})},wrap:function(d){var b=h.isFunction(d);return this.each(function(a){h(this).wrapAll(b?
d.call(this,a):d)})},unwrap:function(){return this.parent().each(function(){h.nodeName(this,"body")||h(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(d){this.nodeType===1&&this.appendChild(d)})},prepend:function(){return this.domManip(arguments,true,function(d){this.nodeType===1&&this.insertBefore(d,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(d){this.parentNode.insertBefore(d,
this)});if(arguments.length){var d=h.clean(arguments);d.push.apply(d,this.toArray());return this.pushStack(d,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(d){this.parentNode.insertBefore(d,this.nextSibling)});if(arguments.length){var d=this.pushStack(this,"after",arguments);d.push.apply(d,h.clean(arguments));return d}},remove:function(d,b){for(var a=0,c;(c=this[a])!=null;a++)if(!d||h.filter(d,[c]).length){if(!b&&c.nodeType===1){h.cleanData(c.getElementsByTagName("*"));
h.cleanData([c])}c.parentNode&&c.parentNode.removeChild(c)}return this},empty:function(){for(var d=0,b;(b=this[d])!=null;d++)for(b.nodeType===1&&h.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(d,b){d=d==null?false:d;b=b==null?d:b;return this.map(function(){return h.clone(this,d,b)})},html:function(d){if(d===m)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(db,""):null;if(typeof d==="string"&&!gb.test(d)&&(h.support.leadingWhitespace||
!ha.test(d))&&!H[(xa.exec(d)||["",""])[1].toLowerCase()]){d=d.replace(wa,"<$1></$2>");try{for(var b=0,a=this.length;b<a;b++)if(this[b].nodeType===1){h.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=d}}catch(c){this.empty().append(d)}}else h.isFunction(d)?this.each(function(b){var a=h(this);a.html(d.call(this,b,a.html()))}):this.empty().append(d);return this},replaceWith:function(d){if(this[0]&&this[0].parentNode){if(h.isFunction(d))return this.each(function(b){var a=h(this),c=a.html();
a.replaceWith(d.call(this,b,c))});typeof d!=="string"&&(d=h(d).detach());return this.each(function(){var b=this.nextSibling,a=this.parentNode;h(this).remove();b?h(b).before(d):h(a).append(d)})}return this.length?this.pushStack(h(h.isFunction(d)?d():d),"replaceWith",d):this},detach:function(d){return this.remove(d,true)},domManip:function(d,b,a){var c,f,e,k=d[0],g=[];if(!h.support.checkClone&&arguments.length===3&&typeof k==="string"&&za.test(k))return this.each(function(){h(this).domManip(d,b,a,true)});
if(h.isFunction(k))return this.each(function(c){var f=h(this);d[0]=k.call(this,c,b?f.html():m);f.domManip(d,b,a)});if(this[0]){c=k&&k.parentNode;c=h.support.parentNode&&c&&c.nodeType===11&&c.childNodes.length===this.length?{fragment:c}:h.buildFragment(d,this,g);e=c.fragment;if(f=e.childNodes.length===1?e=e.firstChild:e.firstChild){b=b&&h.nodeName(f,"tr");f=0;for(var n=this.length,j=n-1;f<n;f++)a.call(b?h.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
this[f]:this[f],c.cacheable||n>1&&f<j?h.clone(e,true,true):e)}g.length&&h.each(g,q)}return this}});h.buildFragment=function(d,b,a){var c,f,e,k,g=d[0];b&&b[0]&&(k=b[0].ownerDocument||b[0]);k.createDocumentFragment||(k=w);if(d.length===1&&typeof g==="string"&&g.length<512&&k===w&&g.charAt(0)==="<"&&!hb.test(g)&&(h.support.checkClone||!za.test(g))&&(h.support.html5Clone||!ya.test(g))){f=true;(e=h.fragments[g])&&e!==1&&(c=e)}if(!c){c=k.createDocumentFragment();h.clean(d,k,c,a)}f&&(h.fragments[g]=e?c:
1);return{fragment:c,cacheable:f}};h.fragments={};h.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(d,b){h.fn[d]=function(a){var c=[],a=h(a),f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&a.length===1){a[b](this[0]);return this}for(var f=0,e=a.length;f<e;f++){var k=(f>0?this.clone(true):this).get();h(a[f])[b](k);c=c.concat(k)}return this.pushStack(c,d,a.selector)}});h.extend({clone:function(d,
b,a){var c,f,e;if(h.support.html5Clone||!ya.test("<"+d.nodeName))c=d.cloneNode(true);else{c=w.createElement("div");Aa.appendChild(c);c.innerHTML=d.outerHTML;c=c.firstChild}var k=c;if((!h.support.noCloneEvent||!h.support.noCloneChecked)&&(d.nodeType===1||d.nodeType===11)&&!h.isXMLDoc(d)){u(d,k);c=s(d);f=s(k);for(e=0;c[e];++e)f[e]&&u(c[e],f[e])}if(b){v(d,k);if(a){c=s(d);f=s(k);for(e=0;c[e];++e)v(c[e],f[e])}}return k},clean:function(d,b,a,c){b=b||w;typeof b.createElement==="undefined"&&(b=b.ownerDocument||
b[0]&&b[0].ownerDocument||w);for(var f=[],e,k=0,g;(g=d[k])!=null;k++){typeof g==="number"&&(g=g+"");if(g){if(typeof g==="string")if(fb.test(g)){g=g.replace(wa,"<$1></$2>");e=(xa.exec(g)||["",""])[1].toLowerCase();var j=H[e]||H._default,q=j[0],r=b.createElement("div");b===w?Aa.appendChild(r):n(b).appendChild(r);for(r.innerHTML=j[1]+g+j[2];q--;)r=r.lastChild;if(!h.support.tbody){q=eb.test(g);j=e==="table"&&!q?r.firstChild&&r.firstChild.childNodes:j[1]==="<table>"&&!q?r.childNodes:[];for(e=j.length-
1;e>=0;--e)h.nodeName(j[e],"tbody")&&!j[e].childNodes.length&&j[e].parentNode.removeChild(j[e])}!h.support.leadingWhitespace&&ha.test(g)&&r.insertBefore(b.createTextNode(ha.exec(g)[0]),r.firstChild);g=r.childNodes}else g=b.createTextNode(g);var m;if(!h.support.appendChecked)if(g[0]&&typeof(m=g.length)==="number")for(e=0;e<m;e++)y(g[e]);else y(g);g.nodeType?f.push(g):f=h.merge(f,g)}}if(a){d=function(d){return!d.type||ib.test(d.type)};for(k=0;f[k];k++)if(c&&h.nodeName(f[k],"script")&&(!f[k].type||f[k].type.toLowerCase()===
"text/javascript"))c.push(f[k].parentNode?f[k].parentNode.removeChild(f[k]):f[k]);else{if(f[k].nodeType===1){b=h.grep(f[k].getElementsByTagName("script"),d);f.splice.apply(f,[k+1,0].concat(b))}a.appendChild(f[k])}}return f},cleanData:function(d){for(var b,a,c=h.cache,f=h.event.special,e=h.support.deleteExpando,k=0,g;(g=d[k])!=null;k++)if(!g.nodeName||!h.noData[g.nodeName.toLowerCase()])if(a=g[h.expando]){if((b=c[a])&&b.events){for(var n in b.events)f[n]?h.event.remove(g,n):h.removeEvent(g,n,b.handle);
if(b.handle)b.handle.elem=null}e?delete g[h.expando]:g.removeAttribute&&g.removeAttribute(h.expando);delete c[a]}}});var ia=/alpha\([^)]*\)/i,jb=/opacity=([^)]*)/,kb=/([A-Z]|^ms)/g,Ba=/^-?\d+(?:px)?$/i,lb=/^-?\d/,mb=/^([\-+])=([\-+.\de]+)/,nb={position:"absolute",visibility:"hidden",display:"block"},Na=["Left","Right"],Oa=["Top","Bottom"],S,Ca,Da;h.fn.css=function(d,b){return arguments.length===2&&b===m?this:h.access(this,d,b,true,function(d,b,a){return a!==m?h.style(d,b,a):h.css(d,b)})};h.extend({cssHooks:{opacity:{get:function(d,
b){if(b){var a=S(d,"opacity","opacity");return a===""?"1":a}return d.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":h.support.cssFloat?"cssFloat":"styleFloat"},style:function(d,b,a,c){if(d&&!(d.nodeType===3||d.nodeType===8||!d.style)){var f,e=h.camelCase(b),k=d.style,g=h.cssHooks[e],b=h.cssProps[e]||e;if(a!==m){c=typeof a;if(c==="string"&&(f=mb.exec(a))){a=+(f[1]+1)*+f[2]+parseFloat(h.css(d,b));c="number"}if(!(a==
null||c==="number"&&isNaN(a))){c==="number"&&!h.cssNumber[e]&&(a=a+"px");if(!g||!("set"in g)||(a=g.set(d,a))!==m)try{k[b]=a}catch(n){}}}else return g&&"get"in g&&(f=g.get(d,false,c))!==m?f:k[b]}},css:function(d,b,a){var c,f,b=h.camelCase(b);f=h.cssHooks[b];b=h.cssProps[b]||b;b==="cssFloat"&&(b="float");if(f&&"get"in f&&(c=f.get(d,true,a))!==m)return c;if(S)return S(d,b)},swap:function(d,b,a){var c={},h;for(h in b){c[h]=d.style[h];d.style[h]=b[h]}a.call(d);for(h in b)d.style[h]=c[h]}});h.curCSS=h.css;
h.each(["height","width"],function(d,b){h.cssHooks[b]={get:function(d,a,c){var f;if(a){if(d.offsetWidth!==0)return x(d,b,c);h.swap(d,nb,function(){f=x(d,b,c)});return f}},set:function(d,b){if(Ba.test(b)){b=parseFloat(b);if(b>=0)return b+"px"}else return b}}});h.support.opacity||(h.cssHooks.opacity={get:function(d,b){return jb.test((b&&d.currentStyle?d.currentStyle.filter:d.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(d,b){var a=d.style,c=d.currentStyle,f=h.isNumeric(b)?"alpha(opacity="+
b*100+")":"",e=c&&c.filter||a.filter||"";a.zoom=1;if(b>=1&&h.trim(e.replace(ia,""))===""){a.removeAttribute("filter");if(c&&!c.filter)return}a.filter=ia.test(e)?e.replace(ia,f):e+" "+f}});h(function(){if(!h.support.reliableMarginRight)h.cssHooks.marginRight={get:function(d,b){var a;h.swap(d,{display:"inline-block"},function(){a=b?S(d,"margin-right","marginRight"):d.style.marginRight});return a}}});w.defaultView&&w.defaultView.getComputedStyle&&(Ca=function(d,b){var a,c,f,b=b.replace(kb,"-$1").toLowerCase();
if((c=d.ownerDocument.defaultView)&&(f=c.getComputedStyle(d,null))){a=f.getPropertyValue(b);a===""&&!h.contains(d.ownerDocument.documentElement,d)&&(a=h.style(d,b))}return a});w.documentElement.currentStyle&&(Da=function(d,b){var a,c,h=d.currentStyle&&d.currentStyle[b],f=d.style;if(h===null&&f&&(a=f[b]))h=a;if(!Ba.test(h)&&lb.test(h)){a=f.left;if(c=d.runtimeStyle&&d.runtimeStyle.left)d.runtimeStyle.left=d.currentStyle.left;f.left=b==="fontSize"?"1em":h||0;h=f.pixelLeft+"px";f.left=a;if(c)d.runtimeStyle.left=
c}return h===""?"auto":h});S=Ca||Da;h.expr&&h.expr.filters&&(h.expr.filters.hidden=function(d){var b=d.offsetHeight;return d.offsetWidth===0&&b===0||!h.support.reliableHiddenOffsets&&(d.style&&d.style.display||h.css(d,"display"))==="none"},h.expr.filters.visible=function(d){return!h.expr.filters.hidden(d)});var ob=/%20/g,Pa=/\[\]$/,Ea=/\r?\n/g,pb=/#.*$/,qb=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rb=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
sb=/^(?:GET|HEAD)$/,tb=/^\/\//,Fa=/\?/,ub=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,vb=/^(?:select|textarea)/i,la=/\s+/,wb=/([?&])_=[^&]*/,Ga=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,Ha=h.fn.load,da={},Ia={},Q,R,Ja=["*/"]+["*"];try{Q=K.href}catch(Cb){Q=w.createElement("a"),Q.href="",Q=Q.href}R=Ga.exec(Q.toLowerCase())||[];h.fn.extend({load:function(d,b,a){if(typeof d!=="string"&&Ha)return Ha.apply(this,arguments);if(!this.length)return this;var c=d.indexOf(" ");if(c>=0)var f=d.slice(c,
d.length),d=d.slice(0,c);c="GET";if(b)if(h.isFunction(b)){a=b;b=m}else if(typeof b==="object"){b=h.param(b,h.ajaxSettings.traditional);c="POST"}var e=this;h.ajax({url:d,type:c,dataType:"html",data:b,complete:function(d,b,c){c=d.responseText;if(d.isResolved()){d.done(function(d){c=d});e.html(f?h("<div>").append(c.replace(ub,"")).find(f):c)}a&&e.each(a,[c,b,d])}});return this},serialize:function(){return h.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?
h.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||vb.test(this.nodeName)||rb.test(this.type))}).map(function(d,b){var a=h(this).val();return a==null?null:h.isArray(a)?h.map(a,function(d){return{name:b.name,value:d.replace(Ea,"\r\n")}}):{name:b.name,value:a.replace(Ea,"\r\n")}}).get()}});h.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(d,b){h.fn[b]=function(d){return this.on(b,d)}});h.each(["get","post"],
function(d,b){h[b]=function(d,a,c,f){if(h.isFunction(a)){f=f||c;c=a;a=m}return h.ajax({type:b,url:d,data:a,success:c,dataType:f})}});h.extend({getScript:function(d,b){return h.get(d,m,b,"script")},getJSON:function(d,b,a){return h.get(d,b,a,"json")},ajaxSetup:function(d,b){if(b)r(d,h.ajaxSettings);else{b=d;d=h.ajaxSettings}r(d,b);return d},ajaxSettings:{url:Q,isLocal:/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/.test(R[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",
processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Ja},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":h.parseJSON,"text xml":h.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:A(da),ajaxTransport:A(Ia),ajax:function(d,b){function a(d,b,q,r){if(z!==2){z=2;y&&clearTimeout(y);x=m;t=r||"";u.readyState=
d>0?4:0;var p,o,D,r=b;if(q){var v=c,B=u,K=v.contents,E=v.dataTypes,s=v.responseFields,w,C,F,O;for(C in s)C in q&&(B[s[C]]=q[C]);for(;E[0]==="*";){E.shift();w===m&&(w=v.mimeType||B.getResponseHeader("content-type"))}if(w)for(C in K)if(K[C]&&K[C].test(w)){E.unshift(C);break}if(E[0]in q)F=E[0];else{for(C in q){if(!E[0]||v.converters[C+" "+E[0]]){F=C;break}O||(O=C)}F=F||O}if(F){F!==E[0]&&E.unshift(F);q=q[F]}else q=void 0}else q=m;if(d>=200&&d<300||d===304){if(c.ifModified){if(w=u.getResponseHeader("Last-Modified"))h.lastModified[j]=
w;if(w=u.getResponseHeader("Etag"))h.etag[j]=w}if(d===304){r="notmodified";p=true}else try{w=c;w.dataFilter&&(q=w.dataFilter(q,w.dataType));var ba=w.dataTypes;C={};var L,G,ca=ba.length,J,N=ba[0],U,fa,H,P,I;for(L=1;L<ca;L++){if(L===1)for(G in w.converters)typeof G==="string"&&(C[G.toLowerCase()]=w.converters[G]);U=N;N=ba[L];if(N==="*")N=U;else if(U!=="*"&&U!==N){fa=U+" "+N;H=C[fa]||C["* "+N];if(!H){I=m;for(P in C){J=P.split(" ");if(J[0]===U||J[0]==="*")if(I=C[J[1]+" "+N]){P=C[P];P===true?H=I:I===true&&
(H=P);break}}}!H&&!I&&h.error("No conversion from "+fa.replace(" "," to "));H!==true&&(q=H?H(q):I(P(q)))}}o=q;r="success";p=true}catch(M){r="parsererror";D=M}}else{D=r;if(!r||d){r="error";d<0&&(d=0)}}u.status=d;u.statusText=""+(b||r);p?k.resolveWith(f,[o,r,u]):k.rejectWith(f,[u,r,D]);u.statusCode(n);n=m;A&&e.trigger("ajax"+(p?"Success":"Error"),[u,c,p?o:D]);g.fireWith(f,[u,r]);if(A){e.trigger("ajaxComplete",[u,c]);--h.active||h.event.trigger("ajaxStop")}}}if(typeof d==="object"){b=d;d=m}var b=b||
{},c=h.ajaxSetup({},b),f=c.context||c,e=f!==c&&(f.nodeType||f instanceof h)?h(f):h.event,k=h.Deferred(),g=h.Callbacks("once memory"),n=c.statusCode||{},j,q={},r={},t,p,x,y,D,z=0,A,v,u={readyState:0,setRequestHeader:function(d,b){if(!z){var a=d.toLowerCase(),d=r[a]=r[a]||d;q[d]=b}return this},getAllResponseHeaders:function(){return z===2?t:null},getResponseHeader:function(d){var b;if(z===2){if(!p)for(p={};b=qb.exec(t);)p[b[1].toLowerCase()]=b[2];b=p[d.toLowerCase()]}return b===m?null:b},overrideMimeType:function(d){if(!z)c.mimeType=
d;return this},abort:function(d){d=d||"abort";x&&x.abort(d);a(0,d);return this}};k.promise(u);u.success=u.done;u.error=u.fail;u.complete=g.add;u.statusCode=function(d){if(d){var b;if(z<2)for(b in d)n[b]=[n[b],d[b]];else{b=d[u.status];u.then(b,b)}}return this};c.url=((d||c.url)+"").replace(pb,"").replace(tb,R[1]+"//");c.dataTypes=h.trim(c.dataType||"*").toLowerCase().split(la);if(c.crossDomain==null){D=Ga.exec(c.url.toLowerCase());c.crossDomain=!(!D||!(D[1]!=R[1]||D[2]!=R[2]||(D[3]||(D[1]==="http:"?
80:443))!=(R[3]||(R[1]==="http:"?80:443))))}if(c.data&&c.processData&&typeof c.data!=="string")c.data=h.param(c.data,c.traditional);B(da,c,b,u);if(z===2)return false;A=c.global;c.type=c.type.toUpperCase();c.hasContent=!sb.test(c.type);A&&h.active++===0&&h.event.trigger("ajaxStart");if(!c.hasContent){if(c.data){c.url=c.url+((Fa.test(c.url)?"&":"?")+c.data);delete c.data}j=c.url;if(c.cache===false){D=h.now();var K=c.url.replace(wb,"$1_="+D);c.url=K+(K===c.url?(Fa.test(c.url)?"&":"?")+"_="+D:"")}}(c.data&&
c.hasContent&&c.contentType!==false||b.contentType)&&u.setRequestHeader("Content-Type",c.contentType);if(c.ifModified){j=j||c.url;h.lastModified[j]&&u.setRequestHeader("If-Modified-Since",h.lastModified[j]);h.etag[j]&&u.setRequestHeader("If-None-Match",h.etag[j])}u.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Ja+"; q=0.01":""):c.accepts["*"]);for(v in c.headers)u.setRequestHeader(v,c.headers[v]);if(c.beforeSend&&(c.beforeSend.call(f,
u,c)===false||z===2)){u.abort();return false}for(v in{success:1,error:1,complete:1})u[v](c[v]);if(x=B(Ia,c,b,u)){u.readyState=1;A&&e.trigger("ajaxSend",[u,c]);c.async&&c.timeout>0&&(y=setTimeout(function(){u.abort("timeout")},c.timeout));try{z=1;x.send(q,a)}catch(E){if(z<2)a(-1,E);else throw E;}}else a(-1,"No Transport");return u},param:function(d,b){var a=[],c=function(d,b){b=h.isFunction(b)?b():b;a[a.length]=encodeURIComponent(d)+"="+encodeURIComponent(b)};if(b===m)b=h.ajaxSettings.traditional;
if(h.isArray(d)||d.jquery&&!h.isPlainObject(d))h.each(d,function(){c(this.name,this.value)});else for(var f in d)p(f,d[f],b,c);return a.join("&").replace(ob,"+")}});h.extend({active:0,lastModified:{},etag:{}});var xb=h.now(),Z=/(\=)\?(&|$)|\?\?/i;h.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return h.expando+"_"+xb++}});h.ajaxPrefilter("json jsonp",function(d,b,c){b=d.contentType==="application/x-www-form-urlencoded"&&typeof d.data==="string";if(d.dataTypes[0]==="jsonp"||d.jsonp!==false&&
(Z.test(d.url)||b&&Z.test(d.data))){var f,e=d.jsonpCallback=h.isFunction(d.jsonpCallback)?d.jsonpCallback():d.jsonpCallback,k=a[e],g=d.url,n=d.data,j="$1"+e+"$2";if(d.jsonp!==false){g=g.replace(Z,j);if(d.url===g){b&&(n=n.replace(Z,j));d.data===n&&(g=g+((/\?/.test(g)?"&":"?")+d.jsonp+"="+e))}}d.url=g;d.data=n;a[e]=function(d){f=[d]};c.always(function(){a[e]=k;if(f&&h.isFunction(k))a[e](f[0])});d.converters["script json"]=function(){f||h.error(e+" was not called");return f[0]};d.dataTypes[0]="json";
return"script"}});h.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(d){h.globalEval(d);return d}}});h.ajaxPrefilter("script",function(d){if(d.cache===m)d.cache=false;if(d.crossDomain){d.type="GET";d.global=false}});h.ajaxTransport("script",function(d){if(d.crossDomain){var b,a=w.head||w.getElementsByTagName("head")[0]||w.documentElement;return{send:function(c,
h){b=w.createElement("script");b.async="async";if(d.scriptCharset)b.charset=d.scriptCharset;b.src=d.url;b.onload=b.onreadystatechange=function(d,c){if(c||!b.readyState||/loaded|complete/.test(b.readyState)){b.onload=b.onreadystatechange=null;a&&b.parentNode&&a.removeChild(b);b=m;c||h(200,"success")}};a.insertBefore(b,a.firstChild)},abort:function(){if(b)b.onload(0,1)}}}});var ja=a.ActiveXObject?function(){for(var d in V)V[d](0,1)}:!1,yb=0,V;h.ajaxSettings.xhr=a.ActiveXObject?function(){var d;if(!(d=
!this.isLocal&&z()))a:{try{d=new a.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}d=void 0}return d}:z;(function(d){h.extend(h.support,{ajax:!!d,cors:!!d&&"withCredentials"in d})})(h.ajaxSettings.xhr());h.support.ajax&&h.ajaxTransport(function(d){if(!d.crossDomain||h.support.cors){var b;return{send:function(c,f){var e=d.xhr(),k,g;d.username?e.open(d.type,d.url,d.async,d.username,d.password):e.open(d.type,d.url,d.async);if(d.xhrFields)for(g in d.xhrFields)e[g]=d.xhrFields[g];d.mimeType&&e.overrideMimeType&&
e.overrideMimeType(d.mimeType);!d.crossDomain&&!c["X-Requested-With"]&&(c["X-Requested-With"]="XMLHttpRequest");try{for(g in c)e.setRequestHeader(g,c[g])}catch(n){}e.send(d.hasContent&&d.data||null);b=function(a,c){var g,n,j,q,r;try{if(b&&(c||e.readyState===4)){b=m;if(k){e.onreadystatechange=h.noop;ja&&delete V[k]}if(c)e.readyState!==4&&e.abort();else{g=e.status;j=e.getAllResponseHeaders();q={};if((r=e.responseXML)&&r.documentElement)q.xml=r;q.text=e.responseText;try{n=e.statusText}catch(t){n=""}!g&&
d.isLocal&&!d.crossDomain?g=q.text?200:404:g===1223&&(g=204)}}}catch(p){c||f(-1,p)}q&&f(g,n,q,j)};if(!d.async||e.readyState===4)b();else{k=++yb;if(ja){if(!V){V={};h(a).unload(ja)}V[k]=b}e.onreadystatechange=b}},abort:function(){b&&b(0,1)}}}});var ea={},I,T,zb=/^(?:toggle|show|hide)$/,Ab=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,aa,ma=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],W;h.fn.extend({show:function(d,
b,a){if(d||d===0)return this.animate(F("show",3),d,b,a);for(var a=0,c=this.length;a<c;a++){d=this[a];if(d.style){b=d.style.display;if(!h._data(d,"olddisplay")&&b==="none")b=d.style.display="";b===""&&h.css(d,"display")==="none"&&h._data(d,"olddisplay",G(d.nodeName))}}for(a=0;a<c;a++){d=this[a];if(d.style){b=d.style.display;if(b===""||b==="none")d.style.display=h._data(d,"olddisplay")||""}}return this},hide:function(d,b,a){if(d||d===0)return this.animate(F("hide",3),d,b,a);for(var a=0,c=this.length;a<
c;a++){d=this[a];if(d.style){b=h.css(d,"display");b!=="none"&&!h._data(d,"olddisplay")&&h._data(d,"olddisplay",b)}}for(a=0;a<c;a++)if(this[a].style)this[a].style.display="none";return this},_toggle:h.fn.toggle,toggle:function(d,b,a){var c=typeof d==="boolean";h.isFunction(d)&&h.isFunction(b)?this._toggle.apply(this,arguments):d==null||c?this.each(function(){var b=c?d:h(this).is(":hidden");h(this)[b?"show":"hide"]()}):this.animate(F("toggle",3),d,b,a);return this},fadeTo:function(d,b,a,c){return this.filter(":hidden").css("opacity",
0).show().end().animate({opacity:b},d,a,c)},animate:function(d,b,a,c){function f(){e.queue===false&&h._mark(this);var b=h.extend({},e),a=this.nodeType===1,c=a&&h(this).is(":hidden"),g,k,n,j,q;b.animatedProperties={};for(n in d){g=h.camelCase(n);if(n!==g){d[g]=d[n];delete d[n]}k=d[g];if(h.isArray(k)){b.animatedProperties[g]=k[1];k=d[g]=k[0]}else b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(k==="hide"&&c||k==="show"&&!c)return b.complete.call(this);if(a&&(g==="height"||
g==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(h.css(this,"display")==="inline"&&h.css(this,"float")==="none")!h.support.inlineBlockNeedsLayout||G(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1}}if(b.overflow!=null)this.style.overflow="hidden";for(n in d){a=new h.fx(this,b,n);k=d[n];if(zb.test(k))if(g=h._data(this,"toggle"+n)||(k==="toggle"?c?"show":"hide":0)){h._data(this,"toggle"+n,g==="show"?"hide":"show");a[g]()}else a[k]();
else{g=Ab.exec(k);j=a.cur();if(g){k=parseFloat(g[2]);q=g[3]||(h.cssNumber[n]?"":"px");if(q!=="px"){h.style(this,n,(k||1)+q);j=(k||1)/a.cur()*j;h.style(this,n,j+q)}g[1]&&(k=(g[1]==="-="?-1:1)*k+j);a.custom(j,k,q)}else a.custom(j,k,"")}}return true}var e=h.speed(b,a,c);if(h.isEmptyObject(d))return this.each(e.complete,[false]);d=h.extend({},d);return e.queue===false?this.each(f):this.queue(e.queue,f)},stop:function(d,b,a){if(typeof d!=="string"){a=b;b=d;d=m}b&&d!==false&&this.queue(d||"fx",[]);return this.each(function(){var b,
c=false,f=h.timers,e=h._data(this);a||h._unmark(true,this);if(d==null)for(b in e){if(e[b]&&e[b].stop&&b.indexOf(".run")===b.length-4){var g=e[b];h.removeData(this,b,true);g.stop(a)}}else if(e[b=d+".run"]&&e[b].stop){e=e[b];h.removeData(this,b,true);e.stop(a)}for(b=f.length;b--;)if(f[b].elem===this&&(d==null||f[b].queue===d)){if(a)f[b](true);else f[b].saveState();c=true;f.splice(b,1)}(!a||!c)&&h.dequeue(this,d)})}});h.each({slideDown:F("show",1),slideUp:F("hide",1),slideToggle:F("toggle",1),fadeIn:{opacity:"show"},
fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(b,a){h.fn[b]=function(b,d,c){return this.animate(a,b,d,c)}});h.extend({speed:function(b,a,c){var f=b&&typeof b==="object"?h.extend({},b):{complete:c||!c&&a||h.isFunction(b)&&b,duration:b,easing:c&&a||a&&!h.isFunction(a)&&a};f.duration=h.fx.off?0:typeof f.duration==="number"?f.duration:f.duration in h.fx.speeds?h.fx.speeds[f.duration]:h.fx.speeds._default;if(f.queue==null||f.queue===true)f.queue="fx";f.old=f.complete;f.complete=function(b){h.isFunction(f.old)&&
f.old.call(this);f.queue?h.dequeue(this,f.queue):b!==false&&h._unmark(this)};return f},easing:{linear:function(b,a,c,h){return c+h*b},swing:function(b,a,c,h){return(-Math.cos(b*Math.PI)/2+0.5)*h+c}},timers:[],fx:function(b,a,c){this.options=a;this.elem=b;this.prop=c;a.orig=a.orig||{}}});h.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(h.fx.step[this.prop]||h.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||
this.elem.style[this.prop]==null))return this.elem[this.prop];var b,a=h.css(this.elem,this.prop);return isNaN(b=parseFloat(a))?!a||a==="auto"?0:a:b},custom:function(b,a,c){function f(b){return e.step(b)}var e=this,g=h.fx;this.startTime=W||E();this.end=a;this.now=this.start=b;this.pos=this.state=0;this.unit=c||this.unit||(h.cssNumber[this.prop]?"":"px");f.queue=this.options.queue;f.elem=this.elem;f.saveState=function(){e.options.hide&&h._data(e.elem,"fxshow"+e.prop)===m&&h._data(e.elem,"fxshow"+e.prop,
e.start)};f()&&h.timers.push(f)&&!aa&&(aa=setInterval(g.tick,g.interval))},show:function(){var b=h._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=b||h.style(this.elem,this.prop);this.options.show=true;b!==m?this.custom(this.cur(),b):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());h(this.elem).show()},hide:function(){this.options.orig[this.prop]=h._data(this.elem,"fxshow"+this.prop)||h.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),
0)},step:function(b){var a,c=W||E(),f=true,e=this.elem,g=this.options;if(b||c>=g.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();g.animatedProperties[this.prop]=true;for(a in g.animatedProperties)g.animatedProperties[a]!==true&&(f=false);if(f){g.overflow!=null&&!h.support.shrinkWrapBlocks&&h.each(["","X","Y"],function(b,d){e.style["overflow"+d]=g.overflow[b]});g.hide&&h(e).hide();if(g.hide||g.show)for(a in g.animatedProperties){h.style(e,a,g.orig[a]);h.removeData(e,
"fxshow"+a,true);h.removeData(e,"toggle"+a,true)}if(b=g.complete){g.complete=false;b.call(e)}}return false}if(g.duration==Infinity)this.now=c;else{b=c-this.startTime;this.state=b/g.duration;this.pos=h.easing[g.animatedProperties[this.prop]](this.state,b,0,1,g.duration);this.now=this.start+(this.end-this.start)*this.pos}this.update();return true}};h.extend(h.fx,{tick:function(){for(var b,a=h.timers,c=0;c<a.length;c++){b=a[c];!b()&&a[c]===b&&a.splice(c--,1)}a.length||h.fx.stop()},interval:13,stop:function(){clearInterval(aa);
aa=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(b){h.style(b.elem,"opacity",b.now)},_default:function(b){b.elem.style&&b.elem.style[b.prop]!=null?b.elem.style[b.prop]=b.now+b.unit:b.elem[b.prop]=b.now}}});h.each(["width","height"],function(b,a){h.fx.step[a]=function(b){h.style(b.elem,a,Math.max(0,b.now)+b.unit)}});h.expr&&h.expr.filters&&(h.expr.filters.animated=function(b){return h.grep(h.timers,function(a){return b===a.elem}).length});var Bb=/^t(?:able|d|h)$/i,Ka=/^(?:body|html)$/i;
h.fn.offset="getBoundingClientRect"in w.documentElement?function(b){var a=this[0],c;if(b)return this.each(function(a){h.offset.setOffset(this,b,a)});if(!a||!a.ownerDocument)return null;if(a===a.ownerDocument.body)return h.offset.bodyOffset(a);try{c=a.getBoundingClientRect()}catch(f){}var e=a.ownerDocument,g=e.documentElement;if(!c||!h.contains(g,a))return c?{top:c.top,left:c.left}:{top:0,left:0};a=e.body;e=J(e);return{top:c.top+(e.pageYOffset||h.support.boxModel&&g.scrollTop||a.scrollTop)-(g.clientTop||
a.clientTop||0),left:c.left+(e.pageXOffset||h.support.boxModel&&g.scrollLeft||a.scrollLeft)-(g.clientLeft||a.clientLeft||0)}}:function(b){var a=this[0];if(b)return this.each(function(a){h.offset.setOffset(this,b,a)});if(!a||!a.ownerDocument)return null;if(a===a.ownerDocument.body)return h.offset.bodyOffset(a);var c,f=a.offsetParent,e=a.ownerDocument,g=e.documentElement,k=e.body;c=(e=e.defaultView)?e.getComputedStyle(a,null):a.currentStyle;for(var n=a.offsetTop,j=a.offsetLeft;(a=a.parentNode)&&a!==
k&&a!==g;){if(h.support.fixedPosition&&c.position==="fixed")break;c=e?e.getComputedStyle(a,null):a.currentStyle;n=n-a.scrollTop;j=j-a.scrollLeft;if(a===f){n=n+a.offsetTop;j=j+a.offsetLeft;if(h.support.doesNotAddBorder&&(!h.support.doesAddBorderForTableAndCells||!Bb.test(a.nodeName))){n=n+(parseFloat(c.borderTopWidth)||0);j=j+(parseFloat(c.borderLeftWidth)||0)}f=a.offsetParent}if(h.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"){n=n+(parseFloat(c.borderTopWidth)||0);j=j+(parseFloat(c.borderLeftWidth)||
0)}}if(c.position==="relative"||c.position==="static"){n=n+k.offsetTop;j=j+k.offsetLeft}if(h.support.fixedPosition&&c.position==="fixed"){n=n+Math.max(g.scrollTop,k.scrollTop);j=j+Math.max(g.scrollLeft,k.scrollLeft)}return{top:n,left:j}};h.offset={bodyOffset:function(b){var a=b.offsetTop,c=b.offsetLeft;if(h.support.doesNotIncludeMarginInBodyOffset){a=a+(parseFloat(h.css(b,"marginTop"))||0);c=c+(parseFloat(h.css(b,"marginLeft"))||0)}return{top:a,left:c}},setOffset:function(b,a,c){var f=h.css(b,"position");
if(f==="static")b.style.position="relative";var e=h(b),g=e.offset(),k=h.css(b,"top"),n=h.css(b,"left"),j={},q={};if((f==="absolute"||f==="fixed")&&h.inArray("auto",[k,n])>-1){q=e.position();f=q.top;n=q.left}else{f=parseFloat(k)||0;n=parseFloat(n)||0}h.isFunction(a)&&(a=a.call(b,c,g));if(a.top!=null)j.top=a.top-g.top+f;if(a.left!=null)j.left=a.left-g.left+n;"using"in a?a.using.call(b,j):e.css(j)}};h.fn.extend({position:function(){if(!this[0])return null;var b=this[0],a=this.offsetParent(),c=this.offset(),
f=Ka.test(a[0].nodeName)?{top:0,left:0}:a.offset();c.top=c.top-(parseFloat(h.css(b,"marginTop"))||0);c.left=c.left-(parseFloat(h.css(b,"marginLeft"))||0);f.top=f.top+(parseFloat(h.css(a[0],"borderTopWidth"))||0);f.left=f.left+(parseFloat(h.css(a[0],"borderLeftWidth"))||0);return{top:c.top-f.top,left:c.left-f.left}},offsetParent:function(){return this.map(function(){for(var b=this.offsetParent||w.body;b&&!Ka.test(b.nodeName)&&h.css(b,"position")==="static";)b=b.offsetParent;return b})}});h.each(["Left",
"Top"],function(b,a){var c="scroll"+a;h.fn[c]=function(a){var f,e;if(a===m){f=this[0];if(!f)return null;return(e=J(f))?"pageXOffset"in e?e[b?"pageYOffset":"pageXOffset"]:h.support.boxModel&&e.document.documentElement[c]||e.document.body[c]:f[c]}return this.each(function(){(e=J(this))?e.scrollTo(!b?a:h(e).scrollLeft(),b?a:h(e).scrollTop()):this[c]=a})}});h.each(["Height","Width"],function(b,a){var c=a.toLowerCase();h.fn["inner"+a]=function(){var b=this[0];return b?b.style?parseFloat(h.css(b,c,"padding")):
this[c]():null};h.fn["outer"+a]=function(b){var d=this[0];return d?d.style?parseFloat(h.css(d,c,b?"margin":"border")):this[c]():null};h.fn[c]=function(b){var d=this[0];if(!d)return b==null?null:this;if(h.isFunction(b))return this.each(function(d){var a=h(this);a[c](b.call(this,d,a[c]()))});if(h.isWindow(d)){var f=d.document.documentElement["client"+a],e=d.document.body;return d.document.compatMode==="CSS1Compat"&&f||e&&e["client"+a]||f}if(d.nodeType===9)return Math.max(d.documentElement["client"+
a],d.body["scroll"+a],d.documentElement["scroll"+a],d.body["offset"+a],d.documentElement["offset"+a]);if(b===m){d=h.css(d,c);f=parseFloat(d);return h.isNumeric(f)?f:d}return this.css(c,typeof b==="string"?b:b+"px")}});a.jQuery=a.$=h;"function"===typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return h})})(window);
(function(a){a.fn.hoverIntent=function(m,j){var c={sensitivity:7,interval:100,timeout:0},c=a.extend(c,j?{over:m,out:j}:m),e,g,k,b,f=function(b){e=b.pageX;g=b.pageY},n=function(j,m){m.hoverIntent_t=clearTimeout(m.hoverIntent_t);if(Math.abs(k-e)+Math.abs(b-g)<c.sensitivity)return a(m).unbind("mousemove",f),m.hoverIntent_s=1,c.over.apply(m,[j]);k=e;b=g;m.hoverIntent_t=setTimeout(function(){n(j,m)},c.interval)},v=function(e){var g=jQuery.extend({},e),j=this;j.hoverIntent_t&&(j.hoverIntent_t=clearTimeout(j.hoverIntent_t));
"mouseenter"==e.type?(k=g.pageX,b=g.pageY,a(j).bind("mousemove",f),1!=j.hoverIntent_s&&(j.hoverIntent_t=setTimeout(function(){n(g,j)},c.interval))):(a(j).unbind("mousemove",f),1==j.hoverIntent_s&&(j.hoverIntent_t=setTimeout(function(){j.hoverIntent_t=clearTimeout(j.hoverIntent_t);j.hoverIntent_s=0;c.out.apply(j,[g])},c.timeout)))};return this.bind("mouseenter",v).bind("mouseleave",v)}})(jQuery);
(function(a){a.extend({tablesorter:new function(){function j(b,a){c(b+","+((new Date).getTime()-a.getTime())+"ms")}function c(b){"undefined"!=typeof console&&"undefined"!=typeof console.debug?console.log(b):alert(b)}function e(f,e){if(f.config.debug)var k="";if(0!=f.tBodies.length){var n=f.tBodies[0].rows;if(n[0])for(var j=[],q=n[0].cells.length,m=0;m<q;m++){var p=!1;a.metadata&&a(e[m]).metadata()&&a(e[m]).metadata().sorter?p=g(a(e[m]).metadata().sorter):f.config.headers[m]&&f.config.headers[m].sorter&&
(p=g(f.config.headers[m].sorter));if(!p)a:{for(var p=f,t=n,h=-1,x=m,y=r.length,u=!1,A=!1,v=!0;""==A&&v;)h++,t[h]?(u=t[h].cells[x],A=a.trim(b(p.config,u)),p.config.debug&&c("Checking if value was empty on row:"+h)):v=!1;for(t=1;t<y;t++)if(r[t].is(A,p,u)){p=r[t];break a}p=r[0]}f.config.debug&&(k+="column:"+m+" parser:"+p.id+"\n");j.push(p)}f.config.debug&&c(k);return j}}function g(b){for(var a=r.length,c=0;c<a;c++)if(r[c].id.toLowerCase()==b.toLowerCase())return r[c];return!1}function k(c){if(c.config.debug)var f=
new Date;for(var e=c.tBodies[0]&&c.tBodies[0].rows.length||0,g=c.tBodies[0].rows[0]&&c.tBodies[0].rows[0].cells.length||0,k=c.config.parsers,n={row:[],normalized:[]},q=0;q<e;++q){var r=a(c.tBodies[0].rows[q]),m=[];if(r.hasClass(c.config.cssChildRow))n.row[n.row.length-1]=n.row[n.row.length-1].add(r);else{n.row.push(r);for(var h=0;h<g;++h)m.push(k[h].format(b(c.config,r[0].cells[h]),c,r[0].cells[h]));m.push(n.normalized.length);n.normalized.push(m)}}c.config.debug&&j("Building cache for "+e+" rows:",
f);return n}function b(b,c){var f="";if(!c)return"";b.supportsTextContent||(b.supportsTextContent=c.textContent||!1);return f="simple"==b.textExtraction?b.supportsTextContent?c.textContent:c.childNodes[0]&&c.childNodes[0].hasChildNodes()?c.childNodes[0].innerHTML:c.innerHTML:"function"==typeof b.textExtraction?b.textExtraction(c):a(c).text()}function f(b,c){if(b.config.debug)var f=new Date;for(var e=c.row,g=c.normalized,k=g.length,n=g[0].length-1,q=a(b.tBodies[0]),r=[],h=0;h<k;h++){var m=g[h][n];
r.push(e[m]);if(!b.config.appender)for(var p=e[m].length,t=0;t<p;t++)q[0].appendChild(e[m][t])}b.config.appender&&b.config.appender(b,r);r=null;b.config.debug&&j("Rebuilt table:",f);s(b);setTimeout(function(){a(b).trigger("sortEnd")},0)}function n(b){if(b.config.debug)var f=new Date;var e=m(b);$tableHeaders=a(b.config.selectorHeaders,b).each(function(c){this.column=e[this.parentNode.rowIndex+"-"+this.cellIndex];this.count=this.order="Number"!=typeof b.config.sortInitialOrder?"desc"==b.config.sortInitialOrder.toLowerCase()?
1:0:1==b.config.sortInitialOrder?1:0;if(a.metadata&&!1===a(this).metadata().sorter||b.config.headers[c]&&!1===b.config.headers[c].sorter)this.sortDisabled=!0;u(b,c)&&(this.order=this.lockedOrder=u(b,c));if(!this.sortDisabled){var f=a(this).addClass(b.config.cssHeader);b.config.onRenderHeader&&b.config.onRenderHeader.apply(f)}b.config.headerList[c]=this});b.config.debug&&(j("Built headers:",f),c($tableHeaders));return $tableHeaders}function m(b){for(var a=[],c={},b=b.getElementsByTagName("THEAD")[0].getElementsByTagName("TR"),
f=0;f<b.length;f++)for(var e=b[f].cells,g=0;g<e.length;g++){var k=e[g],n=k.parentNode.rowIndex,j=n+"-"+k.cellIndex,h=k.rowSpan||1,k=k.colSpan||1,q;"undefined"==typeof a[n]&&(a[n]=[]);for(var r=0;r<a[n].length+1;r++)if("undefined"==typeof a[n][r]){q=r;break}c[j]=q;for(r=n;r<n+h;r++){"undefined"==typeof a[r]&&(a[r]=[]);for(var j=a[r],p=q;p<q+k;p++)j[p]="x"}}return c}function u(b,a){return b.config.headers[a]&&b.config.headers[a].lockedOrder?b.config.headers[a].lockedOrder:!1}function s(b){for(var a=
b.config.widgets,c=a.length,f=0;f<c;f++)t(a[f]).format(b)}function t(b){for(var a=p.length,c=0;c<a;c++)if(p[c].id.toLowerCase()==b.toLowerCase())return p[c]}function y(b,a){for(var c=a.length,f=0;f<c;f++)if(a[f][0]==b)return!0;return!1}function q(b,c,f,e){c.removeClass(e[0]).removeClass(e[1]);var g=[];c.each(function(){this.sortDisabled||(g[this.column]=a(this))});b=f.length;for(c=0;c<b;c++)g[f[c][0]].addClass(e[f[c][1]])}function x(b){if(b.config.widthFixed){var c=a("<colgroup>");a("tr:first td",
b.tBodies[0]).each(function(){c.append(a("<col>").css("width",a(this).width()))});a(b).prepend(c)}}function A(b,a,c){if(b.config.debug)var f=new Date;for(var e="var sortWrapper = function(a,b) {",g=a.length,k=0;k<g;k++)var n=a[k][0],q=a[k][1],n="text"==b.config.parsers[n].type?0==q?B("text","asc",n):B("text","desc",n):0==q?B("numeric","asc",n):B("numeric","desc",n),h="e"+k,e=e+("var "+h+" = "+n),e=e+("if("+h+") { return "+h+"; } "),e=e+"else { ";k=c.normalized[0].length-1;e+="return a["+k+"]-b["+
k+"];";for(k=0;k<g;k++)e+="}; ";e+="return 0; }; ";b.config.debug&&j("Evaling expression:"+e,new Date);eval(e);c.normalized.sort(sortWrapper);b.config.debug&&j("Sorting on "+a.toString()+" and dir "+q+" time:",f);return c}function B(b,a,c){var f="a["+c+"]",c="b["+c+"]";if("text"==b&&"asc"==a)return"("+f+" == "+c+" ? 0 : ("+f+" === null ? Number.POSITIVE_INFINITY : ("+c+" === null ? Number.NEGATIVE_INFINITY : ("+f+" < "+c+") ? -1 : 1 )));";if("text"==b&&"desc"==a)return"("+f+" == "+c+" ? 0 : ("+f+
" === null ? Number.POSITIVE_INFINITY : ("+c+" === null ? Number.NEGATIVE_INFINITY : ("+c+" < "+f+") ? -1 : 1 )));";if("numeric"==b&&"asc"==a)return"("+f+" === null && "+c+" === null) ? 0 :("+f+" === null ? Number.POSITIVE_INFINITY : ("+c+" === null ? Number.NEGATIVE_INFINITY : "+f+" - "+c+"));";if("numeric"==b&&"desc"==a)return"("+f+" === null && "+c+" === null) ? 0 :("+f+" === null ? Number.POSITIVE_INFINITY : ("+c+" === null ? Number.NEGATIVE_INFINITY : "+c+" - "+f+"));"}var r=[],p=[];this.defaults=
{cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:!0,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:!1,cancelSelection:!0,sortList:[],headerList:[],dateFormat:"us",decimal:"/.|,/g",onRenderHeader:null,selectorHeaders:"thead th",debug:!1};this.benchmark=j;this.construct=function(c){return this.each(function(){if(this.tHead&&
this.tBodies){var g,j,r,m;this.config={};m=a.extend(this.config,a.tablesorter.defaults,c);g=a(this);a.data(this,"tablesorter",m);j=n(this);this.config.parsers=e(this,j);r=k(this);var p=[m.cssDesc,m.cssAsc];x(this);j.click(function(b){var c=g[0].tBodies[0]&&g[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&0<c){g.trigger("sortStart");a(this);c=this.column;this.order=this.count++%2;this.lockedOrder&&(this.order=this.lockedOrder);if(b[m.sortMultiSortKey])if(y(c,m.sortList))for(b=0;b<m.sortList.length;b++){var e=
m.sortList[b],h=m.headerList[e[0]];e[0]==c&&(h.count=e[1],h.count++,e[1]=h.count%2)}else m.sortList.push([c,this.order]);else{m.sortList=[];if(null!=m.sortForce){e=m.sortForce;for(b=0;b<e.length;b++)e[b][0]!=c&&m.sortList.push(e[b])}m.sortList.push([c,this.order])}setTimeout(function(){q(g[0],j,m.sortList,p);f(g[0],A(g[0],m.sortList,r))},1);return!1}}).mousedown(function(){if(m.cancelSelection)return this.onselectstart=function(){return!1},!1});g.bind("update",function(){var b=this;setTimeout(function(){b.config.parsers=
e(b,j);r=k(b)},1)}).bind("updateCell",function(a,c){var f=this.config,h=[c.parentNode.rowIndex-1,c.cellIndex];r.normalized[h[0]][h[1]]=f.parsers[h[1]].format(b(f,c),c)}).bind("sorton",function(b,c){a(this).trigger("sortStart");m.sortList=c;for(var e=m.sortList,h=this.config,g=e.length,k=0;k<g;k++){var n=e[k],t=h.headerList[n[0]];t.count=n[1];t.count++}q(this,j,e,p);f(this,A(this,e,r))}).bind("appendCache",function(){f(this,r)}).bind("applyWidgetId",function(b,a){t(a).format(this)}).bind("applyWidgets",
function(){s(this)});a.metadata&&a(this).metadata()&&a(this).metadata().sortlist&&(m.sortList=a(this).metadata().sortlist);0<m.sortList.length&&g.trigger("sorton",[m.sortList]);s(this)}})};this.addParser=function(b){for(var a=r.length,c=!0,f=0;f<a;f++)r[f].id.toLowerCase()==b.id.toLowerCase()&&(c=!1);c&&r.push(b)};this.addWidget=function(b){p.push(b)};this.formatFloat=function(b){b=parseFloat(b);return isNaN(b)?0:b};this.formatInt=function(b){b=parseInt(b);return isNaN(b)?0:b};this.isDigit=function(b){return/^[-+]?\d*$/.test(a.trim(b.replace(/[,.']/g,
"")))};this.clearTableBody=function(b){a.browser.msie?function(){for(;this.firstChild;)this.removeChild(this.firstChild)}.apply(b.tBodies[0]):b.tBodies[0].innerHTML=""}}});a.fn.extend({tablesorter:a.tablesorter.construct});var m=a.tablesorter;m.addParser({id:"text",is:function(){return!0},format:function(j){return a.trim(j.toLocaleLowerCase())},type:"text"});m.addParser({id:"digit",is:function(j,c){return a.tablesorter.isDigit(j,c.config)},format:function(j){return a.tablesorter.formatFloat(j)},type:"numeric"});
m.addParser({id:"currency",is:function(a){return/^[\u00c2\u00a3$\u00e2\u201a\u00ac?.]/.test(a)},format:function(j){return a.tablesorter.formatFloat(j.replace(RegExp(/[\u00c2\u00a3$\u00e2\u201a\u00ac]/g),""))},type:"numeric"});m.addParser({id:"ipAddress",is:function(a){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(a)},format:function(j){for(var j=j.split("."),c="",e=j.length,g=0;g<e;g++)var k=j[g],c=2==k.length?c+("0"+k):c+k;return a.tablesorter.formatFloat(c)},type:"numeric"});m.addParser({id:"url",
is:function(a){return/^(https?|ftp|file):\/\/$/.test(a)},format:function(a){return jQuery.trim(a.replace(RegExp(/(https?|ftp|file):\/\//),""))},type:"text"});m.addParser({id:"isoDate",is:function(a){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},format:function(j){return a.tablesorter.formatFloat(""!=j?(new Date(j.replace(RegExp(/-/g),"/"))).getTime():"0")},type:"numeric"});m.addParser({id:"percent",is:function(j){return/\%$/.test(a.trim(j))},format:function(j){return a.tablesorter.formatFloat(j.replace(RegExp(/%/g),
""))},type:"numeric"});m.addParser({id:"usLongDate",is:function(a){return a.match(RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(j){return a.tablesorter.formatFloat((new Date(j)).getTime())},type:"numeric"});m.addParser({id:"shortDate",is:function(a){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(a)},format:function(j,c){var e=c.config,j=j.replace(/\-/g,"/");if("us"==e.dateFormat)j=j.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,
"$3/$1/$2");else if("uk"==e.dateFormat)j=j.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");else if("dd/mm/yy"==e.dateFormat||"dd-mm-yy"==e.dateFormat)j=j.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");return a.tablesorter.formatFloat((new Date(j)).getTime())},type:"numeric"});m.addParser({id:"time",is:function(a){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(a)},format:function(j){return a.tablesorter.formatFloat((new Date("2000/01/01 "+j)).getTime())},
type:"numeric"});m.addParser({id:"metadata",is:function(){return!1},format:function(j,c,e){j=c.config;j=!j.parserMetadataName?"sortValue":j.parserMetadataName;return a(e).metadata()[j]},type:"numeric"});m.addWidget({id:"zebra",format:function(j){if(j.config.debug)var c=new Date;var e,g=-1,k;a("tr:visible",j.tBodies[0]).each(function(){e=a(this);e.hasClass(j.config.cssChildRow)||g++;k=0==g%2;e.removeClass(j.config.widgetZebra.css[k?0:1]).addClass(j.config.widgetZebra.css[k?1:0])});j.config.debug&&
a.tablesorter.benchmark("Applying Zebra widget",c)}})})(jQuery);
(function(){var a=this,m=a._,j={},c=Array.prototype,e=Object.prototype,g=c.slice,k=c.unshift,b=e.toString,f=e.hasOwnProperty,n=c.forEach,v=c.map,u=c.reduce,s=c.reduceRight,t=c.filter,y=c.every,q=c.some,x=c.indexOf,A=c.lastIndexOf,e=Array.isArray,B=Object.keys,r=Function.prototype.bind,p=function(b){return new G(b)};"undefined"!==typeof module&&module.exports?(module.exports=p,p._=p):a._=p;p.VERSION="1.1.7";var z=p.each=p.forEach=function(b,a,c){if(b!=null)if(n&&b.forEach===n)b.forEach(a,c);else if(b.length===
+b.length)for(var e=0,g=b.length;e<g;e++){if(e in b&&a.call(c,b[e],e,b)===j)break}else for(e in b)if(f.call(b,e)&&a.call(c,b[e],e,b)===j)break};p.map=function(b,a,c){var f=[];if(b==null)return f;if(v&&b.map===v)return b.map(a,c);z(b,function(b,e,g){f[f.length]=a.call(c,b,e,g)});return f};p.reduce=p.foldl=p.inject=function(b,a,c,f){var e=c!==void 0;b==null&&(b=[]);if(u&&b.reduce===u){f&&(a=p.bind(a,f));return e?b.reduce(a,c):b.reduce(a)}z(b,function(b,g,k){if(e)c=a.call(f,c,b,g,k);else{c=b;e=true}});
if(!e)throw new TypeError("Reduce of empty array with no initial value");return c};p.reduceRight=p.foldr=function(b,a,c,f){b==null&&(b=[]);if(s&&b.reduceRight===s){f&&(a=p.bind(a,f));return c!==void 0?b.reduceRight(a,c):b.reduceRight(a)}b=(p.isArray(b)?b.slice():p.toArray(b)).reverse();return p.reduce(b,a,c,f)};p.find=p.detect=function(b,a,c){var f;E(b,function(b,e,g){if(a.call(c,b,e,g)){f=b;return true}});return f};p.filter=p.select=function(b,a,c){var f=[];if(b==null)return f;if(t&&b.filter===t)return b.filter(a,
c);z(b,function(b,e,g){a.call(c,b,e,g)&&(f[f.length]=b)});return f};p.reject=function(b,a,c){var f=[];if(b==null)return f;z(b,function(b,e,g){a.call(c,b,e,g)||(f[f.length]=b)});return f};p.every=p.all=function(b,a,c){var f=true;if(b==null)return f;if(y&&b.every===y)return b.every(a,c);z(b,function(b,e,g){if(!(f=f&&a.call(c,b,e,g)))return j});return f};var E=p.some=p.any=function(b,a,c){var a=a||p.identity,f=false;if(b==null)return f;if(q&&b.some===q)return b.some(a,c);z(b,function(b,e,g){if(f=f|a.call(c,
b,e,g))return j});return!!f};p.include=p.contains=function(b,a){var c=false;if(b==null)return c;if(x&&b.indexOf===x)return b.indexOf(a)!=-1;E(b,function(b){if(c=b===a)return true});return c};p.invoke=function(b,a){var c=g.call(arguments,2);return p.map(b,function(b){return(a.call?a||b:b[a]).apply(b,c)})};p.pluck=function(b,a){return p.map(b,function(b){return b[a]})};p.max=function(b,a,c){if(!a&&p.isArray(b))return Math.max.apply(Math,b);var f={computed:-Infinity};z(b,function(b,e,g){e=a?a.call(c,
b,e,g):b;e>=f.computed&&(f={value:b,computed:e})});return f.value};p.min=function(b,a,c){if(!a&&p.isArray(b))return Math.min.apply(Math,b);var f={computed:Infinity};z(b,function(b,e,g){e=a?a.call(c,b,e,g):b;e<f.computed&&(f={value:b,computed:e})});return f.value};p.sortBy=function(b,a,c){return p.pluck(p.map(b,function(b,f,e){return{value:b,criteria:a.call(c,b,f,e)}}).sort(function(b,a){var c=b.criteria,f=a.criteria;return c<f?-1:c>f?1:0}),"value")};p.groupBy=function(b,a){var c={};z(b,function(b,
f){var e=a(b,f);(c[e]||(c[e]=[])).push(b)});return c};p.sortedIndex=function(b,a,c){c||(c=p.identity);for(var f=0,e=b.length;f<e;){var g=f+e>>1;c(b[g])<c(a)?f=g+1:e=g}return f};p.toArray=function(b){return!b?[]:b.toArray?b.toArray():p.isArray(b)||p.isArguments(b)?g.call(b):p.values(b)};p.size=function(b){return p.toArray(b).length};p.first=p.head=function(b,a,c){return a!=null&&!c?g.call(b,0,a):b[0]};p.rest=p.tail=function(b,a,c){return g.call(b,a==null||c?1:a)};p.last=function(b){return b[b.length-
1]};p.compact=function(b){return p.filter(b,function(b){return!!b})};p.flatten=function(b){return p.reduce(b,function(b,a){if(p.isArray(a))return b.concat(p.flatten(a));b[b.length]=a;return b},[])};p.without=function(b){return p.difference(b,g.call(arguments,1))};p.uniq=p.unique=function(b,a){return p.reduce(b,function(b,c,f){if(0==f||(a===true?p.last(b)!=c:!p.include(b,c)))b[b.length]=c;return b},[])};p.union=function(){return p.uniq(p.flatten(arguments))};p.intersection=p.intersect=function(b){var a=
g.call(arguments,1);return p.filter(p.uniq(b),function(b){return p.every(a,function(a){return p.indexOf(a,b)>=0})})};p.difference=function(b,a){return p.filter(b,function(b){return!p.include(a,b)})};p.zip=function(){for(var b=g.call(arguments),a=p.max(p.pluck(b,"length")),c=Array(a),f=0;f<a;f++)c[f]=p.pluck(b,""+f);return c};p.indexOf=function(b,a,c){if(b==null)return-1;var f;if(c){c=p.sortedIndex(b,a);return b[c]===a?c:-1}if(x&&b.indexOf===x)return b.indexOf(a);c=0;for(f=b.length;c<f;c++)if(b[c]===
a)return c;return-1};p.lastIndexOf=function(b,a){if(b==null)return-1;if(A&&b.lastIndexOf===A)return b.lastIndexOf(a);for(var c=b.length;c--;)if(b[c]===a)return c;return-1};p.range=function(b,a,c){if(arguments.length<=1){a=b||0;b=0}for(var c=arguments[2]||1,f=Math.max(Math.ceil((a-b)/c),0),e=0,g=Array(f);e<f;){g[e++]=b;b=b+c}return g};p.bind=function(b,a){if(b.bind===r&&r)return r.apply(b,g.call(arguments,1));var c=g.call(arguments,2);return function(){return b.apply(a,c.concat(g.call(arguments)))}};
p.bindAll=function(b){var a=g.call(arguments,1);a.length==0&&(a=p.functions(b));z(a,function(a){b[a]=p.bind(b[a],b)});return b};p.memoize=function(b,a){var c={};a||(a=p.identity);return function(){var e=a.apply(this,arguments);return f.call(c,e)?c[e]:c[e]=b.apply(this,arguments)}};p.delay=function(b,a){var c=g.call(arguments,2);return setTimeout(function(){return b.apply(b,c)},a)};p.defer=function(b){return p.delay.apply(p,[b,1].concat(g.call(arguments,1)))};var C=function(b,a,c){var f;return function(){var e=
this,g=arguments,k=function(){f=null;b.apply(e,g)};c&&clearTimeout(f);if(c||!f)f=setTimeout(k,a)}};p.throttle=function(b,a){return C(b,a,false)};p.debounce=function(b,a){return C(b,a,true)};p.once=function(b){var a=false,c;return function(){if(a)return c;a=true;return c=b.apply(this,arguments)}};p.wrap=function(b,a){return function(){var c=[b].concat(g.call(arguments));return a.apply(this,c)}};p.compose=function(){var b=g.call(arguments);return function(){for(var a=g.call(arguments),c=b.length-1;c>=
0;c--)a=[b[c].apply(this,a)];return a[0]}};p.after=function(b,a){return function(){if(--b<1)return a.apply(this,arguments)}};p.keys=B||function(b){if(b!==Object(b))throw new TypeError("Invalid object");var a=[],c;for(c in b)f.call(b,c)&&(a[a.length]=c);return a};p.values=function(b){return p.map(b,p.identity)};p.functions=p.methods=function(b){var a=[],c;for(c in b)p.isFunction(b[c])&&a.push(c);return a.sort()};p.extend=function(b){z(g.call(arguments,1),function(a){for(var c in a)a[c]!==void 0&&(b[c]=
a[c])});return b};p.defaults=function(b){z(g.call(arguments,1),function(a){for(var c in a)b[c]==null&&(b[c]=a[c])});return b};p.clone=function(b){return p.isArray(b)?b.slice():p.extend({},b)};p.tap=function(b,a){a(b);return b};p.isEqual=function(b,a){if(b===a)return true;var c=typeof b;if(c!=typeof a)return false;if(b==a)return true;if(!b&&a||b&&!a)return false;if(b._chain)b=b._wrapped;if(a._chain)a=a._wrapped;if(b.isEqual)return b.isEqual(a);if(a.isEqual)return a.isEqual(b);if(p.isDate(b)&&p.isDate(a))return b.getTime()===
a.getTime();if(p.isNaN(b)&&p.isNaN(a))return false;if(p.isRegExp(b)&&p.isRegExp(a))return b.source===a.source&&b.global===a.global&&b.ignoreCase===a.ignoreCase&&b.multiline===a.multiline;if(c!=="object"||b.length&&b.length!==a.length)return false;var c=p.keys(b),f=p.keys(a);if(c.length!=f.length)return false;for(var e in b)if(!(e in a)||!p.isEqual(b[e],a[e]))return false;return true};p.isEmpty=function(b){if(p.isArray(b)||p.isString(b))return b.length===0;for(var a in b)if(f.call(b,a))return false;
return true};p.isElement=function(b){return!!(b&&b.nodeType==1)};p.isArray=e||function(a){return b.call(a)==="[object Array]"};p.isObject=function(b){return b===Object(b)};p.isArguments=function(b){return!(!b||!f.call(b,"callee"))};p.isFunction=function(b){return!(!b||!b.constructor||!b.call||!b.apply)};p.isString=function(b){return!!(b===""||b&&b.charCodeAt&&b.substr)};p.isNumber=function(b){return!!(b===0||b&&b.toExponential&&b.toFixed)};p.isNaN=function(b){return b!==b};p.isBoolean=function(b){return b===
true||b===false};p.isDate=function(b){return!(!b||!b.getTimezoneOffset||!b.setUTCFullYear)};p.isRegExp=function(b){return!(!b||!b.test||!b.exec||!(b.ignoreCase||b.ignoreCase===false))};p.isNull=function(b){return b===null};p.isUndefined=function(b){return b===void 0};p.noConflict=function(){a._=m;return this};p.identity=function(b){return b};p.times=function(b,a,c){for(var f=0;f<b;f++)a.call(c,f)};p.mixin=function(b){z(p.functions(b),function(a){w(a,p[a]=b[a])})};var F=0;p.uniqueId=function(b){var a=
F++;return b?b+a:a};p.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g};p.template=function(b,a){var c=p.templateSettings,c="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+b.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(c.interpolate,function(b,a){return"',"+a.replace(/\\'/g,"'")+",'"}).replace(c.evaluate||null,function(b,a){return"');"+a.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,
"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",c=new Function("obj",c);return a?c(a):c};var G=function(b){this._wrapped=b};p.prototype=G.prototype;var J=function(b,a){return a?p(b).chain():b},w=function(b,a){G.prototype[b]=function(){var b=g.call(arguments);k.call(b,this._wrapped);return J(a.apply(p,b),this._chain)}};p.mixin(p);z("pop,push,reverse,shift,sort,splice,unshift".split(","),function(b){var a=c[b];G.prototype[b]=function(){a.apply(this._wrapped,arguments);return J(this._wrapped,
this._chain)}});z(["concat","join","slice"],function(b){var a=c[b];G.prototype[b]=function(){return J(a.apply(this._wrapped,arguments),this._chain)}});G.prototype.chain=function(){this._chain=true;return this};G.prototype.value=function(){return this._wrapped}})();
(function(){var a=this,m=a.Backbone,j;j="undefined"!==typeof exports?exports:a.Backbone={};j.VERSION="0.5.3";var c=a._;!c&&"undefined"!==typeof require&&(c=require("underscore")._);var e=a.jQuery||a.Zepto;j.noConflict=function(){a.Backbone=m;return this};j.emulateHTTP=!1;j.emulateJSON=!1;j.Events={bind:function(b,a,c){var f=this._callbacks||(this._callbacks={});(f[b]||(f[b]=[])).push([a,c]);return this},unbind:function(b,a){var c;if(b){if(c=this._callbacks)if(a){c=c[b];if(!c)return this;for(var f=
0,e=c.length;f<e;f++)if(c[f]&&a===c[f][0]){c[f]=null;break}}else c[b]=[]}else this._callbacks={};return this},trigger:function(b){var a,c,f,e,g=2;if(!(c=this._callbacks))return this;for(;g--;){a=g?b:"all";if(a=c[a])for(var k=0,n=a.length;k<n;k++)if(f=a[k]){e=g?Array.prototype.slice.call(arguments,1):arguments;f[0].apply(f[1]||this,e)}else{a.splice(k,1);k--;n--}}return this}};j.Model=function(b,a){var f;b||(b={});if(f=this.defaults){c.isFunction(f)&&(f=f.call(this));b=c.extend({},f,b)}this.attributes=
{};this._escapedAttributes={};this.cid=c.uniqueId("c");this.set(b,{silent:true});this._changed=false;this._previousAttributes=c.clone(this.attributes);if(a&&a.collection)this.collection=a.collection;this.initialize(b,a)};c.extend(j.Model.prototype,j.Events,{_previousAttributes:null,_changed:!1,idAttribute:"id",initialize:function(){},toJSON:function(){return c.clone(this.attributes)},get:function(b){return this.attributes[b]},escape:function(b){var a;if(a=this._escapedAttributes[b])return a;a=this.attributes[b];
return this._escapedAttributes[b]=(a==null?"":""+a).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},has:function(b){return this.attributes[b]!=null},set:function(b,a){a||(a={});if(!b)return this;if(b.attributes)b=b.attributes;var f=this.attributes,e=this._escapedAttributes;if(!a.silent&&this.validate&&!this._performValidation(b,a))return false;if(this.idAttribute in b)this.id=b[this.idAttribute];
var g=this._changing;this._changing=true;for(var k in b){var n=b[k];if(!c.isEqual(f[k],n)){f[k]=n;delete e[k];this._changed=true;a.silent||this.trigger("change:"+k,this,n,a)}}!g&&!a.silent&&this._changed&&this.change(a);this._changing=false;return this},unset:function(b,a){if(!(b in this.attributes))return this;a||(a={});var c={};c[b]=void 0;if(!a.silent&&this.validate&&!this._performValidation(c,a))return false;delete this.attributes[b];delete this._escapedAttributes[b];b==this.idAttribute&&delete this.id;
this._changed=true;if(!a.silent){this.trigger("change:"+b,this,void 0,a);this.change(a)}return this},clear:function(b){b||(b={});var a,c=this.attributes,f={};for(a in c)f[a]=void 0;if(!b.silent&&this.validate&&!this._performValidation(f,b))return false;this.attributes={};this._escapedAttributes={};this._changed=true;if(!b.silent){for(a in c)this.trigger("change:"+a,this,void 0,b);this.change(b)}return this},fetch:function(b){b||(b={});var a=this,c=b.success;b.success=function(f,e,g){if(!a.set(a.parse(f,
g),b))return false;c&&c(a,f)};b.error=B(b.error,a,b);return(this.sync||j.sync).call(this,"read",this,b)},save:function(b,a){a||(a={});if(b&&!this.set(b,a))return false;var c=this,f=a.success;a.success=function(b,e,g){if(!c.set(c.parse(b,g),a))return false;f&&f(c,b,g)};a.error=B(a.error,c,a);var e=this.isNew()?"create":"update";return(this.sync||j.sync).call(this,e,this,a)},destroy:function(b){b||(b={});if(this.isNew())return this.trigger("destroy",this,this.collection,b);var a=this,c=b.success;b.success=
function(f){a.trigger("destroy",a,a.collection,b);c&&c(a,f)};b.error=B(b.error,a,b);return(this.sync||j.sync).call(this,"delete",this,b)},url:function(){var b=x(this.collection)||this.urlRoot||A();return this.isNew()?b:b+(b.charAt(b.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},parse:function(b){return b},clone:function(){return new this.constructor(this)},isNew:function(){return this.id==null},change:function(b){this.trigger("change",this,b);this._previousAttributes=c.clone(this.attributes);
this._changed=false},hasChanged:function(b){return b?this._previousAttributes[b]!=this.attributes[b]:this._changed},changedAttributes:function(b){b||(b=this.attributes);var a=this._previousAttributes,f=false,e;for(e in b)if(!c.isEqual(a[e],b[e])){f=f||{};f[e]=b[e]}return f},previous:function(b){return!b||!this._previousAttributes?null:this._previousAttributes[b]},previousAttributes:function(){return c.clone(this._previousAttributes)},_performValidation:function(b,a){var c=this.validate(b);if(c){a.error?
a.error(this,c,a):this.trigger("error",this,c,a);return false}return true}});j.Collection=function(b,a){a||(a={});if(a.comparator)this.comparator=a.comparator;c.bindAll(this,"_onModelEvent","_removeReference");this._reset();b&&this.reset(b,{silent:true});this.initialize.apply(this,arguments)};c.extend(j.Collection.prototype,j.Events,{model:j.Model,initialize:function(){},toJSON:function(){return this.map(function(b){return b.toJSON()})},add:function(b,a){if(c.isArray(b))for(var f=0,e=b.length;f<e;f++)this._add(b[f],
a);else this._add(b,a);return this},remove:function(b,a){if(c.isArray(b))for(var f=0,e=b.length;f<e;f++)this._remove(b[f],a);else this._remove(b,a);return this},get:function(b){return b==null?null:this._byId[b.id!=null?b.id:b]},getByCid:function(b){return b&&this._byCid[b.cid||b]},at:function(b){return this.models[b]},sort:function(b){b||(b={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");this.models=this.sortBy(this.comparator);b.silent||this.trigger("reset",this,b);
return this},pluck:function(b){return c.map(this.models,function(a){return a.get(b)})},reset:function(b,a){b||(b=[]);a||(a={});this.each(this._removeReference);this._reset();this.add(b,{silent:true});a.silent||this.trigger("reset",this,a);return this},fetch:function(b){b||(b={});var a=this,c=b.success;b.success=function(f,e,g){a[b.add?"add":"reset"](a.parse(f,g),b);c&&c(a,f)};b.error=B(b.error,a,b);return(this.sync||j.sync).call(this,"read",this,b)},create:function(b,a){var c=this;a||(a={});b=this._prepareModel(b,
a);if(!b)return false;var f=a.success;a.success=function(b,e,g){c.add(b,a);f&&f(b,e,g)};b.save(null,a);return b},parse:function(b){return b},chain:function(){return c(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId={};this._byCid={}},_prepareModel:function(b,a){if(b instanceof j.Model){if(!b.collection)b.collection=this}else{var c=b,b=new this.model(c,{collection:this});b.validate&&!b._performValidation(c,a)&&(b=false)}return b},_add:function(b,a){a||(a={});b=this._prepareModel(b,
a);if(!b)return false;var c=this.getByCid(b);if(c)throw Error(["Can't add the same model to a set twice",c.id]);this._byId[b.id]=b;this._byCid[b.cid]=b;this.models.splice(a.at!=null?a.at:this.comparator?this.sortedIndex(b,this.comparator):this.length,0,b);b.bind("all",this._onModelEvent);this.length++;a.silent||b.trigger("add",b,this,a);return b},_remove:function(b,a){a||(a={});b=this.getByCid(b)||this.get(b);if(!b)return null;delete this._byId[b.id];delete this._byCid[b.cid];this.models.splice(this.indexOf(b),
1);this.length--;a.silent||b.trigger("remove",b,this,a);this._removeReference(b);return b},_removeReference:function(b){this==b.collection&&delete b.collection;b.unbind("all",this._onModelEvent)},_onModelEvent:function(b,a,c,f){if(!((b=="add"||b=="remove")&&c!=this)){b=="destroy"&&this._remove(a,f);if(a&&b==="change:"+a.idAttribute){delete this._byId[a.previous(a.idAttribute)];this._byId[a.id]=a}this.trigger.apply(this,arguments)}}});c.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,rest,last,without,indexOf,lastIndexOf,isEmpty,groupBy".split(","),
function(b){j.Collection.prototype[b]=function(){return c[b].apply(c,[this.models].concat(c.toArray(arguments)))}});j.Router=function(b){b||(b={});if(b.routes)this.routes=b.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var g=/:([\w\d]+)/g,k=/\*([\w\d]+)/g,b=/[-[\]{}()+?.,\\^$|#\s]/g;c.extend(j.Router.prototype,j.Events,{initialize:function(){},route:function(b,a,f){j.history||(j.history=new j.History);c.isRegExp(b)||(b=this._routeToRegExp(b));j.history.route(b,c.bind(function(c){c=
this._extractParameters(b,c);f.apply(this,c);this.trigger.apply(this,["route:"+a].concat(c))},this))},navigate:function(b,a){j.history.navigate(b,a)},_bindRoutes:function(){if(this.routes){var b=[],a;for(a in this.routes)b.unshift([a,this.routes[a]]);a=0;for(var c=b.length;a<c;a++)this.route(b[a][0],b[a][1],this[b[a][1]])}},_routeToRegExp:function(a){a=a.replace(b,"\\$&").replace(g,"([^/]*)").replace(k,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(b,a){return b.exec(a).slice(1)}});
j.History=function(){this.handlers=[];c.bindAll(this,"checkUrl")};var f=/^#*/,n=/msie [\w.]+/,v=!1;c.extend(j.History.prototype,{interval:50,getFragment:function(b,a){if(b==null)if(this._hasPushState||a){var b=window.location.pathname,c=window.location.search;c&&(b=b+c);b.indexOf(this.options.root)==0&&(b=b.substr(this.options.root.length))}else b=window.location.hash;return decodeURIComponent(b.replace(f,""))},start:function(b){if(v)throw Error("Backbone.history has already been started");this.options=
c.extend({},{root:"/"},this.options,b);this._wantsPushState=!!this.options.pushState;this._hasPushState=!(!this.options.pushState||!window.history||!window.history.pushState);var b=this.getFragment(),a=document.documentMode;if(a=n.exec(navigator.userAgent.toLowerCase())&&(!a||a<=7)){this.iframe=e('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow;this.navigate(b)}this._hasPushState?e(window).bind("popstate",this.checkUrl):"onhashchange"in window&&!a?e(window).bind("hashchange",
this.checkUrl):setInterval(this.checkUrl,this.interval);this.fragment=b;v=true;b=window.location;a=b.pathname==this.options.root;if(this._wantsPushState&&!this._hasPushState&&!a){this.fragment=this.getFragment(null,true);window.location.replace(this.options.root+"#"+this.fragment);return true}if(this._wantsPushState&&this._hasPushState&&a&&b.hash){this.fragment=b.hash.replace(f,"");window.history.replaceState({},document.title,b.protocol+"//"+b.host+this.options.root+this.fragment)}if(!this.options.silent)return this.loadUrl()},
route:function(b,a){this.handlers.unshift({route:b,callback:a})},checkUrl:function(){var b=this.getFragment();b==this.fragment&&this.iframe&&(b=this.getFragment(this.iframe.location.hash));if(b==this.fragment||b==decodeURIComponent(this.fragment))return false;this.iframe&&this.navigate(b);this.loadUrl()||this.loadUrl(window.location.hash)},loadUrl:function(b){var a=this.fragment=this.getFragment(b);return c.any(this.handlers,function(b){if(b.route.test(a)){b.callback(a);return true}})},navigate:function(b,
a){var c=(b||"").replace(f,"");if(!(this.fragment==c||this.fragment==decodeURIComponent(c))){if(this._hasPushState){var e=window.location;c.indexOf(this.options.root)!=0&&(c=this.options.root+c);this.fragment=c;window.history.pushState({},document.title,e.protocol+"//"+e.host+c)}else{window.location.hash=this.fragment=c;if(this.iframe&&c!=this.getFragment(this.iframe.location.hash)){this.iframe.document.open().close();this.iframe.location.hash=c}}a&&this.loadUrl(b)}}});j.View=function(b){this.cid=
c.uniqueId("view");this._configure(b||{});this._ensureElement();this.delegateEvents();this.initialize.apply(this,arguments)};var u=/^(\S+)\s*(.*)$/,s="model,collection,el,id,attributes,className,tagName".split(",");c.extend(j.View.prototype,j.Events,{tagName:"div",$:function(b){return e(b,this.el)},initialize:function(){},render:function(){return this},remove:function(){e(this.el).remove();return this},make:function(b,a,c){b=document.createElement(b);a&&e(b).attr(a);c&&e(b).html(c);return b},delegateEvents:function(b){if(b||
(b=this.events)){c.isFunction(b)&&(b=b.call(this));e(this.el).unbind(".delegateEvents"+this.cid);for(var a in b){var f=this[b[a]];if(!f)throw Error('Event "'+b[a]+'" does not exist');var g=a.match(u),k=g[1],g=g[2],f=c.bind(f,this),k=k+(".delegateEvents"+this.cid);g===""?e(this.el).bind(k,f):e(this.el).delegate(g,k,f)}}},_configure:function(b){this.options&&(b=c.extend({},this.options,b));for(var a=0,f=s.length;a<f;a++){var e=s[a];b[e]&&(this[e]=b[e])}this.options=b},_ensureElement:function(){if(this.el){if(c.isString(this.el))this.el=
e(this.el).get(0)}else{var b=this.attributes||{};if(this.id)b.id=this.id;if(this.className)b["class"]=this.className;this.el=this.make(this.tagName,b)}}});j.Model.extend=j.Collection.extend=j.Router.extend=j.View.extend=function(b,a){var c=q(this,b,a);c.extend=this.extend;return c};var t={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};j.sync=function(b,a,f){var g=t[b],f=c.extend({type:g,dataType:"json"},f);if(!f.url)f.url=x(a)||A();if(!f.data&&a&&(b=="create"||b=="update")){f.contentType=
"application/json";f.data=JSON.stringify(a.toJSON())}if(j.emulateJSON){f.contentType="application/x-www-form-urlencoded";f.data=f.data?{model:f.data}:{}}if(j.emulateHTTP&&(g==="PUT"||g==="DELETE")){if(j.emulateJSON)f.data._method=g;f.type="POST";f.beforeSend=function(b){b.setRequestHeader("X-HTTP-Method-Override",g)}}if(f.type!=="GET"&&!j.emulateJSON)f.processData=false;return e.ajax(f)};var y=function(){},q=function(b,a,f){var e;e=a&&a.hasOwnProperty("constructor")?a.constructor:function(){return b.apply(this,
arguments)};c.extend(e,b);y.prototype=b.prototype;e.prototype=new y;a&&c.extend(e.prototype,a);f&&c.extend(e,f);e.prototype.constructor=e;e.__super__=b.prototype;return e},x=function(b){return!b||!b.url?null:c.isFunction(b.url)?b.url():b.url},A=function(){throw Error('A "url" property or function must be specified');},B=function(b,a,c){return function(f){b?b(a,f,c):a.trigger("error",a,f,c)}}}).call(this);
(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var m=function(a,c,k){"string"!==typeof a?m.original?m.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(2==arguments.length&&(k=c),define.modules||(define.modules={}),define.modules[a]=k)};a.define&&(m.original=a.define);a.define=m;var j=function(a,g){if(Object.prototype.toString.call(a)==="[object Array]"){for(var k=[],b=0,f=a.length;b<f;++b){var n=
c(a[b]);if(!n&&j.original)return j.original.apply(window,arguments);k.push(n)}g&&g.apply(null,k)}else{if(typeof a==="string"){k=c(a);if(!k&&j.original)return j.original.apply(window,arguments);g&&g();return k}if(j.original)return j.original.apply(window,arguments)}};a.require&&(j.original=a.require);a.require=j;require.packaged=!0;var c=function(a){var c=define.modules[a];if(c==null){console.error("Missing module: "+a);return null}if(typeof c==="function"){var k={};c(require,k,{id:a,uri:""});return define.modules[a]=
k}return c}}})();
define("pilot/fixoldbrowsers",["require","exports","module"],function(){if(!Function.prototype.bind){var a=Array.prototype.slice;Function.prototype.bind=function(b){var c=this;if("function"!==typeof c.apply||"function"!==typeof c.call)return new TypeError;var f=a.call(arguments),e=function z(){if(this instanceof z){var b=Object.create(c.prototype);c.apply(b,f.concat(a.call(arguments)));return b}return c.call.apply(c,f.concat(a.call(arguments)))};e.length="function"===typeof c?Math.max(c.length-f.length,
0):0;return e}}var m=Function.prototype.call,j=Object.prototype,c=m.bind(j.hasOwnProperty),e,g,k,b,f;if(f=c(j,"__defineGetter__"))e=m.bind(j.__defineGetter__),g=m.bind(j.__defineSetter__),k=m.bind(j.__lookupGetter__),b=m.bind(j.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return"[object Array]"===Object.prototype.toString.call(b)});Array.prototype.forEach||(Array.prototype.forEach=function(b,a){for(var c=+this.length,f=0;f<c;f++)f in this&&b.call(a,this[f],f,this)});Array.prototype.map||
(Array.prototype.map=function(b,a){var c=+this.length;if(typeof b!=="function")throw new TypeError;for(var f=Array(c),e=0;e<c;e++)e in this&&(f[e]=b.call(a,this[e],e,this));return f});Array.prototype.filter||(Array.prototype.filter=function(b,a){for(var c=[],f=0;f<this.length;f++)b.call(a,this[f])&&c.push(this[f]);return c});Array.prototype.every||(Array.prototype.every=function(b,a){for(var c=0;c<this.length;c++)if(!b.call(a,this[c]))return false;return true});Array.prototype.some||(Array.prototype.some=
function(b,a){for(var c=0;c<this.length;c++)if(b.call(a,this[c]))return true;return false});Array.prototype.reduce||(Array.prototype.reduce=function(b){var a=+this.length;if(typeof b!=="function")throw new TypeError;if(a===0&&arguments.length===1)throw new TypeError;var c=0;if(arguments.length>=2)var f=arguments[1];else{do{if(c in this){f=this[c++];break}if(++c>=a)throw new TypeError;}while(1)}for(;c<a;c++)c in this&&(f=b.call(null,f,this[c],c,this));return f});Array.prototype.reduceRight||(Array.prototype.reduceRight=
function(b){var a=+this.length;if(typeof b!=="function")throw new TypeError;if(a===0&&arguments.length===1)throw new TypeError;a=a-1;if(arguments.length>=2)var c=arguments[1];else{do{if(a in this){c=this[a--];break}if(--a<0)throw new TypeError;}while(1)}for(;a>=0;a--)a in this&&(c=b.call(null,c,this[a],a,this));return c});Array.prototype.indexOf||(Array.prototype.indexOf=function(b,a){var f=this.length;if(!f)return-1;var e=a||0;if(e>=f)return-1;for(e<0&&(e=e+f);e<f;e++)if(c(this,e)&&b===this[e])return e;
return-1});Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(b,a){var f=this.length;if(!f)return-1;var e=a||f;e<0&&(e=e+f);for(e=Math.min(e,f-1);e>=0;e--)if(c(this,e)&&b===this[e])return e;return-1});Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||b.constructor.prototype});Object.getOwnPropertyDescriptor||(Object.getOwnPropertyDescriptor=function(a,e){if(typeof a!=="object"&&typeof a!=="function"||a===null)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+
a);if(c(a,e)){var g,n;if(f){var q=a.__proto__;a.__proto__=j;g=k(a,e);n=b(a,e);a.__proto__=q;if(g||n){if(g)descriptor.get=g;if(n)descriptor.set=n;return descriptor}}descriptor.value=a[e];return descriptor}});Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)});Object.create||(Object.create=function(b,a){var c;if(b===null)c={__proto__:null};else{if(typeof b!=="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");c=function(){};c.prototype=
b;c=new c;c.__proto__=b}typeof a!=="undefined"&&Object.defineProperties(c,a);return c});Object.defineProperty||(Object.defineProperty=function(a,n,q){if(typeof a!=="object"&&typeof a!=="function")throw new TypeError("Object.defineProperty called on non-object: "+a);if(typeof a!=="object"||a===null)throw new TypeError("Property description must be an object: "+q);if(c(q,"value"))if(f&&(k(a,n)||b(a,n))){a.__proto__=j;delete a[n];a[n]=q.value;a.prototype}else a[n]=q.value;else{if(!f)throw new TypeError("getters & setters can not be defined on this javascript engine");
c(q,"get")&&e(a,n,q.get);c(q,"set")&&g(a,n,q.set)}return a});Object.defineProperties||(Object.defineProperties=function(b,a){for(var f in a)c(a,f)&&Object.defineProperty(b,f,a[f]);return b});Object.seal||(Object.seal=function(b){return b});Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(n){Object.freeze=function(b){return function(a){return typeof a==="function"?a:b(a)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b});
Object.isSealed||(Object.isSealed=function(){return false});Object.isFrozen||(Object.isFrozen=function(){return false});Object.isExtensible||(Object.isExtensible=function(){return true});if(!Object.keys){var v=!0,u="toString,toLocaleString,valueOf,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,constructor".split(","),s=u.length,t;for(t in{toString:null})v=!1;Object.keys=function(b){if(typeof b!=="object"&&typeof b!=="function"||b===null)throw new TypeError("Object.keys called on a non-object");
var a=[],f;for(f in b)c(b,f)&&a.push(f);if(v)for(f=0;f<s;f++){var e=u[f];c(b,e)&&a.push(e)}return a}}Date.prototype.toISOString||(Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+(this.getUTCMonth()+1)+"-"+this.getUTCDate()+"T"+this.getUTCHours()+":"+this.getUTCMinutes()+":"+this.getUTCSeconds()+"Z"});Date.now||(Date.now=function(){return(new Date).getTime()});Date.prototype.toJSON||(Date.prototype.toJSON=function(){if(typeof this.toISOString!=="function")throw new TypeError;
return this.toISOString()});isNaN(Date.parse("T00:00"))&&(Date=function(b){var a=function(c,f,e,g,k,n,j){var q=arguments.length;if(this instanceof b){q=q===1&&""+c===c?new b(a.parse(c)):q>=7?new b(c,f,e,g,k,n,j):q>=6?new b(c,f,e,g,k,n):q>=5?new b(c,f,e,g,k):q>=4?new b(c,f,e,g):q>=3?new b(c,f,e):q>=2?new b(c,f):q>=1?new b(c):new b;q.constructor=a;return q}return b.apply(this,arguments)},c=RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$"),
f;for(f in b)a[f]=b[f];a.now=b.now;a.UTC=b.UTC;a.prototype=b.prototype;a.prototype.constructor=a;a.parse=function(a){var f=c.exec(a);if(f){f.shift();for(var e=f[0]===void 0,g=0;g<10;g++)if(g!==7){f[g]=+(f[g]||(g<3?1:0));g===1&&f[g]--}if(e)return((f[3]*60+f[4])*60+f[5])*1E3+f[6];e=(f[8]*60+f[9])*6E4;f[6]==="-"&&(e=-e);return b.UTC.apply(this,f.slice(0,7))+e}return b.parse.apply(this,arguments)};return a}(Date));if(!String.prototype.trim){var y=/^\s\s*/,q=/\s\s*$/;String.prototype.trim=function(){return(""+
this).replace(y,"").replace(q,"")}}});
define("ace/ace","require,exports,module,pilot/index,pilot/fixoldbrowsers,pilot/plugin_manager,pilot/dom,pilot/event,ace/editor,ace/edit_session,ace/undomanager,ace/virtual_renderer,ace/theme/textmate,pilot/environment".split(","),function(a,m){a("pilot/index");a("pilot/fixoldbrowsers");var j=a("pilot/plugin_manager").catalog;j.registerPlugins(["pilot/index"]);var c=a("pilot/dom"),e=a("pilot/event"),g=a("ace/editor").Editor,k=a("ace/edit_session").EditSession,b=a("ace/undomanager").UndoManager,f=
a("ace/virtual_renderer").VirtualRenderer;m.edit=function(n){typeof n=="string"&&(n=document.getElementById(n));var m=new k(c.getInnerText(n));m.setUndoManager(new b);n.innerHTML="";var u=new g(new f(n,a("ace/theme/textmate")));u.setSession(m);var s=a("pilot/environment").create();j.startupPlugins({env:s}).then(function(){s.document=m;s.editor=u;u.resize();e.addListener(window,"resize",function(){u.resize()});n.env=s});u.env=s;return u}});
define("pilot/index","require,exports,module,pilot/fixoldbrowsers,pilot/types/basic,pilot/types/command,pilot/types/settings,pilot/commands/settings,pilot/commands/basic,pilot/settings/canon,pilot/canon".split(","),function(a,m){m.startup=function(j,c){a("pilot/fixoldbrowsers");a("pilot/types/basic").startup(j,c);a("pilot/types/command").startup(j,c);a("pilot/types/settings").startup(j,c);a("pilot/commands/settings").startup(j,c);a("pilot/commands/basic").startup(j,c);a("pilot/settings/canon").startup(j,
c);a("pilot/canon").startup(j,c)};m.shutdown=function(j,c){a("pilot/types/basic").shutdown(j,c);a("pilot/types/command").shutdown(j,c);a("pilot/types/settings").shutdown(j,c);a("pilot/commands/settings").shutdown(j,c);a("pilot/commands/basic").shutdown(j,c);a("pilot/settings/canon").shutdown(j,c);a("pilot/canon").shutdown(j,c)}});
define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,m){function j(b){if(!Array.isArray(b.data)&&"function"!==typeof b.data)throw Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(b));Object.keys(b).forEach(function(a){this[a]=b[a]},this)}function c(b){if("function"!==typeof b.defer)throw Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(b).forEach(function(a){this[a]=
b[a]},this)}function e(b){if(b instanceof k)this.subtype=b;else if("string"===typeof b){if(this.subtype=g.getType(b),null==this.subtype)throw Error("Unknown array subtype: "+b);}else throw Error("Can' handle array subtype");}var g=a("pilot/types"),k=g.Type,b=g.Conversion,f=g.Status,n=new k;n.stringify=function(b){return b};n.parse=function(a){if("string"!=typeof a)throw Error("non-string passed to text.parse()");return new b(a)};n.name="text";var v=new k;v.stringify=function(b){return!b?null:""+b};
v.parse=function(a){if("string"!=typeof a)throw Error("non-string passed to number.parse()");if(0===a.replace(/\s/g,"").length)return new b(null,f.INCOMPLETE,"");var c=new b(parseInt(a,10));isNaN(c.value)&&(c.status=f.INVALID,c.message="Can't convert \""+a+'" to a number.');return c};v.decrement=function(b){return b-1};v.increment=function(b){return b+1};v.name="number";j.prototype=new k;j.prototype.stringify=function(b){return b};j.prototype.parse=function(a){if("string"!=typeof a)throw Error("non-string passed to parse()");
if(!this.data)throw Error("Missing data on selection type extension.");var c=!1,e,g=[];("function"===typeof this.data?this.data():this.data).forEach(function(b){a==b?(e=this.fromString(b),c=!0):0===b.indexOf(a)&&g.push(this.fromString(b))},this);if(c)return new b(e);this.noMatch&&this.noMatch();if(0<g.length){var k="Possibilities"+(0===a.length?"":" for '"+a+"'");return new b(null,f.INCOMPLETE,k,g)}return new b(null,f.INVALID,"Can't use '"+a+"'.",g)};j.prototype.fromString=function(b){return b};j.prototype.decrement=
function(b){var a="function"===typeof this.data?this.data():this.data;null==b?b=a.length-1:(b=this.stringify(b),b=a.indexOf(b),b=0===b?a.length-1:b-1);return this.fromString(a[b])};j.prototype.increment=function(b){var a="function"===typeof this.data?this.data():this.data;null==b?b=0:(b=this.stringify(b),b=a.indexOf(b),b=b===a.length-1?0:b+1);return this.fromString(a[b])};j.prototype.name="selection";m.SelectionType=j;var u=new j({name:"bool",data:["true","false"],stringify:function(b){return""+b},
fromString:function(b){return"true"===b?!0:!1}});c.prototype=new k;c.prototype.stringify=function(b){return this.defer().stringify(b)};c.prototype.parse=function(b){return this.defer().parse(b)};c.prototype.decrement=function(b){var a=this.defer();return a.decrement?a.decrement(b):void 0};c.prototype.increment=function(b){var a=this.defer();return a.increment?a.increment(b):void 0};c.prototype.name="deferred";m.DeferredType=c;e.prototype=new k;e.prototype.stringify=function(b){return b.join(" ")};
e.prototype.parse=function(b){return this.defer().parse(b)};e.prototype.name="array";var s=!1;m.startup=function(){s||(s=!0,g.registerType(n),g.registerType(v),g.registerType(u),g.registerType(j),g.registerType(c),g.registerType(e))};m.shutdown=function(){s=!1;g.unregisterType(n);g.unregisterType(v);g.unregisterType(u);g.unregisterType(j);g.unregisterType(c);g.unregisterType(e)}});
define("pilot/types",["require","exports","module"],function(a,m){function j(){}function c(a,b){if("[]"===a.substr(-2)){var c=a.slice(0,-2);return new g.array(c)}c=g[a];"function"===typeof c&&(c=new c(b));return c}var e={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){for(var b=e.VALID,c=0;c<a.length;c++)a[c].valueOf()>
b.valueOf()&&(b=a[c]);return b}};m.Status=e;m.Conversion=function(a,b,c,g){this.value=a;this.status=b||e.VALID;this.message=c;this.predictions=g||[]};j.prototype={stringify:function(){throw Error("not implemented");},parse:function(){throw Error("not implemented");},name:void 0,increment:function(){},decrement:function(){},getDefault:function(){return this.parse("")}};m.Type=j;var g={};m.registerType=function(a){if("object"===typeof a)if(a instanceof j){if(!a.name)throw Error("All registered types must have a name");
g[a.name]=a}else throw Error("Can't registerType using: "+a);else if("function"===typeof a){if(!a.prototype.name)throw Error("All registered types must have a name");g[a.prototype.name]=a}else throw Error("Unknown type: "+a);};m.registerTypes=function(a){Object.keys(a).forEach(function(b){var c=a[b];c.name=b;m.registerType(c)})};m.deregisterType=function(a){delete g[a.name]};m.getType=function(a){if("string"===typeof a)return c(a);if("object"===typeof a){if(!a.name)throw Error("Missing 'name' member to typeSpec");
return c(a.name,a)}throw Error("Can't extract type from "+a);}});define("pilot/types/command","require,exports,module,pilot/canon,pilot/types/basic,pilot/types".split(","),function(a,m){var j=a("pilot/canon"),c=a("pilot/types/basic").SelectionType,e=a("pilot/types"),g=new c({name:"command",data:function(){return j.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return j.getCommand(a)}});m.startup=function(){e.registerType(g)};m.shutdown=function(){e.unregisterType(g)}});
define("pilot/canon","require,exports,module,pilot/console,pilot/stacktrace,pilot/oop,pilot/useragent,pilot/keys,pilot/event_emitter,pilot/typecheck,pilot/catalog,pilot/types,pilot/lang".split(","),function(a,m){function j(b,a,c,f){return(f&&b.toLowerCase()||b).replace(/(?:^\s+|\n|\s+$)/g,"").split(RegExp("[\\s ]*"+a+"[\\s ]*","g"),c||999)}function c(b,a,c){for(var f,e=0,b=j(b,"\\-",null,true),g=0,k=b.length;g<k;++g)t.KEY_MODS[b[g]]?e=e|t.KEY_MODS[b[g]]:f=b[g]||"-";if(c==null)return{key:f,hashId:e};
(c[e]||(c[e]={}))[f]=a}function e(b){var a=b.bindKey,f=a[F],e=E,g=C;if(!a.sender)throw Error("All key bindings must have a sender");if(!a.mac&&a.mac!==null)throw Error("All key bindings must have a mac key binding");if(!a.win&&a.win!==null)throw Error("All key bindings must have a windows key binding");if(a[F])if(typeof a.sender=="string")j(a.sender,"\\|",null,true).forEach(function(a){e[a]||(e[a]={});f.split("|").forEach(function(f){c(f,b,e[a])})});else if(q.isFunction(a.sender)){a={command:b,sender:a.sender};
keyData=c(f);g[keyData.hashId]||(g[keyData.hashId]={});g[keyData.hashId][keyData.key]?g[keyData.hashId][keyData.key].push(a):g[keyData.hashId][keyData.key]=[a]}else throw Error("Key binding must have a sender that is a string or function");}function g(b,a,c,f){q.isNumber(f)&&(f=t.keyCodeToString(f));for(var e=(C[c]||{})[f]||[],g=0;g<e.length;g++)if(e[g].sender(b,a,c,f))return e[g].command;return(b=E[a])&&b[c]&&b[c][f]}function k(b,a){var c=a.type;a.type=B.getType(c);if(a.type==null)throw Error("In "+
b+"/"+a.name+": can't find type for: "+JSON.stringify(c));}function b(b,a){for(var c=b.args,f=b.command.params,e=0;e<f.length;e++){var g=f[e];if(b.getParamStatus(g)!=A.VALID||g.defaultValue===null){var k=g.description;g.defaultValue===null&&(k=k+" (optional)");k=prompt(k,g.defaultValue||"");if(!k){a();return}c[g.name]=k}}a()}function f(a,c,f,e,g){function k(){a.exec(c,j.args,j);!j.isAsync&&!j.isDone&&j.done()}typeof a==="string"&&(a=z[a]);if(!a)return false;var j=new n({sender:f,command:a,args:e||
{},typed:g});if(j.getStatus()==A.INVALID){v.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return false}if(j.getStatus()==A.INCOMPLETE){var q,f=c[f];if(!f||!f.getArgsProvider||!(q=f.getArgsProvider()))q=b;q(j,function(){j.getStatus()==A.VALID&&k()})}else k();return true}function n(b){b=b||{};this.command=b.command;this.args=b.args;this.typed=b.typed;this._begunOutput=false;this.start=new Date;this.end=null;this.error=this.completed=false}var v=a("pilot/console");a("pilot/stacktrace");
var u=a("pilot/oop"),s=a("pilot/useragent"),t=a("pilot/keys"),y=a("pilot/event_emitter").EventEmitter,q=a("pilot/typecheck"),x=a("pilot/catalog"),A=a("pilot/types").Status,B=a("pilot/types"),r=a("pilot/lang"),p={name:"command",description:"A command is a bit of functionality with optional typed arguments which can do something small like moving the cursor around the screen, or large like cloning a project from VCS.",indexOn:"name"};m.startup=function(){x.addExtensionSpec(p)};m.shutdown=function(){x.removeExtensionSpec(p)};
var z={},E={},C={},F=s.isMac?"mac":"win",G=[];m.removeCommand=function(b){var a=typeof b==="string"?b:b.name,b=z[a];delete z[a];r.arrayRemove(G,a);var a=E,c;for(c in a)for(var f in a[c])for(var e in a[c][f])a[c][f][e]==b&&delete a[c][f][e];var g=C;for(c in g)for(f in g[c])g[c][f].forEach(function(a,e){a.command==b&&g[c][f].splice(e,1)})};m.addCommand=function(b){if(!b.name)throw Error("All registered commands must have a name");if(b.params==null)b.params=[];if(!Array.isArray(b.params))throw Error("command.params must be an array in "+
b.name);b.params.forEach(function(a){if(!a.name)throw Error("In "+b.name+": all params must have a name");k(b.name,a)},this);z[b.name]=b;b.bindKey&&e(b);G.push(b.name);G.sort()};m.getCommand=function(b){return z[b]};m.getCommandNames=function(){return G};m.findKeyCommand=g;m.exec=f;m.execKeyCommand=function(b,a,c,e){return(c=g(b,a,c,e))?f(c,b,a,{}):false};m.upgradeType=k;u.implement(m,y);var J=[];u.implement(n.prototype,y);n.prototype.getParamStatus=function(b){var a=this.args||{};if(b.name in a){if(a[b.name]==
null)return b.defaultValue===null?A.VALID:A.INCOMPLETE;var c,a=a[b.name].toString();try{c=b.type.parse(a)}catch(f){return A.INVALID}if(c.status!=A.VALID)return c.status}else if(b.defaultValue===void 0)return A.INCOMPLETE;return A.VALID};n.prototype.getParamNameStatus=function(b){for(var a=this.command.params||[],c=0;c<a.length;c++)if(a[c].name==b)return this.getParamStatus(a[c]);throw"Parameter '"+b+"' not defined on command '"+this.command.name+"'";};n.prototype.getStatus=function(){var b=this.command.params;
if(!b||b.length==0)return A.VALID;for(var a=[],c=0;c<b.length;c++)a.push(this.getParamStatus(b[c]));return A.combine(a)};n.prototype._beginOutput=function(){this._begunOutput=true;this.outputs=[];for(J.push(this);J.length>100;)J.shiftObject();m._dispatchEvent("output",{requests:J,request:this})};n.prototype.doneWithError=function(b){this.error=true;this.done(b)};n.prototype.async=function(){this.isAsync=true;this._begunOutput||this._beginOutput()};n.prototype.output=function(b){this._begunOutput||
this._beginOutput();typeof b!=="string"&&!(b instanceof Node)&&(b=b.toString());this.outputs.push(b);this.isDone=true;this._dispatchEvent("output",{});return this};n.prototype.done=function(b){this.completed=true;this.end=new Date;this.duration=this.end.getTime()-this.start.getTime();b&&this.output(b);if(!this.isDone){this.isDone=true;this._dispatchEvent("output",{})}};m.Request=n});
define("pilot/console",["require","exports","module"],function(a,m){var j=function(){},c="assert,count,debug,dir,dirxml,error,group,groupEnd,info,log,profile,profileEnd,time,timeEnd,trace,warn".split(",");"undefined"===typeof window?c.forEach(function(a){m[a]=function(){var c=Array.prototype.slice.call(arguments);postMessage(JSON.stringify({op:"log",method:a,args:c}))}}):c.forEach(function(a){m[a]=window.console&&window.console[a]?Function.prototype.bind.call(window.console[a],window.console):j})});
define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,m){function j(){}var c=a("pilot/useragent"),e=a("pilot/console"),g=c.isGecko?"firefox":c.isOpera?"opera":"other",k={chrome:function(b){var a=b.stack;return!a?(e.log(b),[]):a.replace(/^.*?\n/,"").replace(/^.*?\n/,"").replace(/^.*?\n/,"").replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(b){var a=b.stack;if(!a)return e.log(b),
[];a=a.replace(/(?:\n@:0)?\s+$/m,"");a=a.replace(/^\(/gm,"{anonymous}(");return a.split("\n")},opera:function(b){var b=b.message.split("\n"),a=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,c,f,e;c=4;f=0;for(e=b.length;c<e;c+=2)a.test(b[c])&&(b[f++]=(RegExp.$3?RegExp.$3+"()@"+RegExp.$2+RegExp.$1:"{anonymous}()@"+RegExp.$2+":"+RegExp.$1)+" -- "+b[c+1].replace(/^\s+/,""));b.splice(f,b.length-f);return b},other:function(b){for(var a=/function\s*([\w\-$]+)?\s*\(/i,c=[],f=0,e,g;b&&10>
c.length;){e=a.test(b.toString())?RegExp.$1||"{anonymous}":"{anonymous}";g=Array.prototype.slice.call(b.arguments);var k=c,j=f++;e+="(";for(var m=0;m<g.length;++m){var B=g[m];"object"==typeof B?g[m]="#object":"function"==typeof B?g[m]="#function":"string"==typeof B&&(g[m]='"'+B+'"')}g=g.join(",");k[j]=e+g+")";if(b===b.caller&&window.opera)break;b=b.caller}return c}};j.prototype={sourceCache:{},ajax:function(b){var a=this.createXMLHTTPObject();if(a)return a.open("GET",b,!1),a.setRequestHeader("User-Agent",
"XMLHTTP/1.0"),a.send(""),a.responseText},createXMLHTTPObject:function(){for(var b,a=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=0;c<a.length;c++)try{return b=a[c](),this.createXMLHTTPObject=a[c],b}catch(f){}},getSource:function(b){b in this.sourceCache||(this.sourceCache[b]=this.ajax(b).split("\n"));return this.sourceCache[b]},guessFunctions:function(b){for(var a=
0;a<b.length;++a){var c=b[a],f=/{anonymous}\(.*\)@(\w+:\/\/([-\w\.]+)+(:\d+)?[^:]+):(\d+):?(\d+)?/.exec(c);if(f){var e=f[1],f=f[4];e&&f&&(e=this.guessFunctionName(e,f),b[a]=c.replace("{anonymous}",e))}}return b},guessFunctionName:function(b,a){try{return this.guessFunctionNameFromLines(a,this.getSource(b))}catch(c){return"getSource failed with url: "+b+", exception: "+c.toString()}},guessFunctionNameFromLines:function(b,a){for(var c=/function ([^(]*)\(([^)]*)\)/,f=/['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,
e="",g=0;10>g;++g)if(e=a[b-g]+e,void 0!==e){var k=f.exec(e);if(k||(k=c.exec(e))&&k[1])return k[1]}return"(?)"}};var b=new j,f=[/http:\/\/localhost:4020\/sproutcore.js:/];m.ignoreFramesMatching=function(b){f.push(b)};m.Trace=function(a,c){this._ex=a;this._stack=k[g](a);c&&(this._stack=b.guessFunctions(this._stack))};m.Trace.prototype.log=function(b){0>=b&&(b=999999999);for(var a=0,c=0;c<this._stack.length&&a<b;c++){var g=this._stack[c],k=!0;f.forEach(function(b){b.test(g)&&(k=!1)});k&&(e.debug(g),
a++)}}});
define("pilot/useragent",["require","exports","module"],function(a,m){var j=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),c=navigator.userAgent;m.isWin="win"==j;m.isMac="mac"==j;m.isLinux="linux"==j;m.isIE=!+"\v1";m.isGecko=m.isMozilla=window.controllers&&"Gecko"===window.navigator.product;m.isOldGecko=m.isGecko&&/rv\:1/.test(navigator.userAgent);m.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera);m.isWebKit=parseFloat(c.split("WebKit/")[1])||void 0;
m.isChrome=parseFloat(c.split(" Chrome/")[1])||void 0;m.isAIR=0<=c.indexOf("AdobeAIR");m.isIPad=0<=c.indexOf("iPad");m.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"};m.getOS=function(){return m.isMac?m.OS.MAC:m.isLinux?m.OS.LINUX:m.OS.WINDOWS}});
define("pilot/oop",["require","exports","module"],function(a,m){m.inherits=function(){var a=function(){};return function(c,e){a.prototype=e.prototype;c.super_=e.prototype;c.prototype=new a;c.prototype.constructor=c}}();m.mixin=function(a,c){for(var e in c)a[e]=c[e]};m.implement=function(a,c){m.mixin(a,c)}});
define("pilot/keys",["require","exports","module","pilot/oop"],function(a,m){var j=a("pilot/oop"),c=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",
120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[i].toUpperCase();
a[c]=parseInt(i,10)}j.mixin(a,a.MODIFIER_KEYS);j.mixin(a,a.PRINTABLE_KEYS);j.mixin(a,a.FUNCTION_KEYS);return a}();j.mixin(m,c);m.keyCodeToString=function(a){return(c[a]||String.fromCharCode(a)).toLowerCase()}});
define("pilot/event_emitter",["require","exports","module"],function(a,m){var j={};j._emit=j._dispatchEvent=function(a,e){this._eventRegistry=this._eventRegistry||{};var g=this._eventRegistry[a];if(g&&g.length){e=e||{};e.type=a;for(var k=0;k<g.length;k++)g[k](e)}};j.on=j.addEventListener=function(a,e){this._eventRegistry=this._eventRegistry||{};var g=this._eventRegistry[a];g||(g=this._eventRegistry[a]=[]);-1==g.indexOf(e)&&g.push(e)};j.removeListener=j.removeEventListener=function(a,e){this._eventRegistry=
this._eventRegistry||{};var g=this._eventRegistry[a];if(g){var k=g.indexOf(e);-1!==k&&g.splice(k,1)}};j.removeAllListeners=function(a){this._eventRegistry&&(this._eventRegistry[a]=[])};m.EventEmitter=j});
define("pilot/typecheck",["require","exports","module"],function(a,m){var j=Object.prototype.toString;m.isString=function(a){return a&&"[object String]"===j.call(a)};m.isBoolean=function(a){return a&&"[object Boolean]"===j.call(a)};m.isNumber=function(a){return a&&"[object Number]"===j.call(a)&&isFinite(a)};m.isObject=function(a){return void 0!==a&&(null===a||"object"==typeof a||Array.isArray(a)||m.isFunction(a))};m.isFunction=function(a){return a&&"[object Function]"===j.call(a)}});
define("pilot/catalog",["require","exports","module"],function(a,m){var j={};m.addExtensionSpec=function(a){j[a.name]=a};m.removeExtensionSpec=function(a){"string"===typeof a?delete j[a]:delete j[a.name]};m.getExtensionSpec=function(a){return j[a]};m.getExtensionSpecs=function(){return Object.keys(j)}});
define("pilot/lang",["require","exports","module"],function(a,m){m.stringReverse=function(a){return a.split("").reverse().join("")};m.stringRepeat=function(a,c){return Array(c+1).join(a)};var j=/^\s\s*/,c=/\s\s*$/;m.stringTrimLeft=function(a){return a.replace(j,"")};m.stringTrimRight=function(a){return a.replace(c,"")};m.copyObject=function(a){var c={},k;for(k in a)c[k]=a[k];return c};m.copyArray=function(a){var c=[];i=0;for(l=a.length;i<l;i++)c[i]=a[i]&&"object"==typeof a[i]?this.copyObject(a[i]):
a[i];return c};m.deepCopy=function(a){if("object"!=typeof a)return a;var c=a.constructor(),k;for(k in a)c[k]="object"==typeof a[k]?this.deepCopy(a[k]):a[k];return c};m.arrayToMap=function(a){for(var c={},k=0;k<a.length;k++)c[a[k]]=1;return c};m.arrayRemove=function(a,c){for(var k=0;k<=a.length;k++)c===a[k]&&a.splice(k,1)};m.escapeRegExp=function(a){return a.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")};m.deferredCall=function(a){var c=null,k=function(){c=null;a()},b=function(a){c||(c=setTimeout(k,a||
0));return b};b.schedule=b;b.call=function(){this.cancel();a();return b};b.cancel=function(){clearTimeout(c);c=null;return b};return b}});
define("pilot/types/settings","require,exports,module,pilot/types/basic,pilot/types,pilot/settings".split(","),function(a,m){var j=a("pilot/types/basic").SelectionType,c=a("pilot/types/basic").DeferredType,e=a("pilot/types"),g=a("pilot/settings").settings,k,b=new j({name:"setting",data:function(){return n.settings.getSettingNames()},stringify:function(b){k=b;return b.name},fromString:function(b){return k=g.getSetting(b)},noMatch:function(){k=null}}),f=new c({name:"settingValue",defer:function(){return k?
k.type:e.getType("text")},getDefault:function(){var b=this.parse("");if(k){var a=k.get();if(b.predictions.length===0)b.predictions.push(a);else{for(var c=false;;){var f=b.predictions.indexOf(a);if(f===-1)break;b.predictions.splice(f,1);c=true}c&&b.predictions.push(a)}}return b}}),n;m.startup=function(a){n=a.env;e.registerType(b);e.registerType(f)};m.shutdown=function(){e.unregisterType(b);e.unregisterType(f)}});
define("pilot/settings","require,exports,module,pilot/console,pilot/oop,pilot/types,pilot/event_emitter,pilot/catalog".split(","),function(a,m){function j(a,c){this._settings=c;Object.keys(a).forEach(function(b){this[b]=a[b]},this);this.type=b.getType(this.type);if(this.type==null)throw Error("In "+this.name+": can't find type for: "+JSON.stringify(a.type));if(!this.name)throw Error("Setting.name == undefined. Ignoring.",this);if(!this.defaultValue===void 0)throw Error("Setting.defaultValue == undefined",
this);if(this.onChange)this.on("change",this.onChange.bind(this));this.set(this.defaultValue)}function c(b){this._deactivated={};this._settings={};this._settingNames=[];b&&this.setPersister(b)}function e(){}var g=a("pilot/console"),k=a("pilot/oop"),b=a("pilot/types"),f=a("pilot/event_emitter").EventEmitter,n=a("pilot/catalog"),v={name:"setting",description:"A setting is something that the application offers as a way to customize how it works",register:"env.settings.addSetting",indexOn:"name"};m.startup=
function(){n.addExtensionSpec(v)};m.shutdown=function(){n.removeExtensionSpec(v)};j.prototype={get:function(){return this.value},set:function(b){if(this.value!==b){this.value=b;this._settings.persister&&this._settings.persister.persistValue(this._settings,this.name,b);this._dispatchEvent("change",{setting:this,value:b})}},resetValue:function(){this.set(this.defaultValue)},toString:function(){return this.name}};k.implement(j.prototype,f);c.prototype={addSetting:function(b){b=new j(b,this);this._settings[b.name]=
b;this._settingNames.push(b.name);this._settingNames.sort()},addSettings:function(b){Object.keys(b).forEach(function(a){var c=b[a];if(!("name"in c))c.name=a;this.addSetting(c)},this)},removeSetting:function(b){b=typeof b==="string"?b:b.name;delete this._settings[b];util.arrayRemove(this._settingNames,b);settings.removeAllListeners("change")},removeSettings:function(b){Object.keys(b).forEach(function(a){var c=b[a];if(!("name"in c))c.name=a;this.removeSettings(c)},this)},getSettingNames:function(){return this._settingNames},
getSetting:function(b){return this._settings[b]},setPersister:function(b){(this._persister=b)&&b.loadInitialValues(this)},resetAll:function(){this.getSettingNames().forEach(function(b){this.resetValue(b)},this)},_list:function(){var b=[];this.getSettingNames().forEach(function(a){b.push({key:a,value:this.getSetting(a).get()})},this);return b},_loadDefaultValues:function(){this._loadFromObject(this._getDefaultValues())},_loadFromObject:function(b){for(var a in b)if(b.hasOwnProperty(a)){var c=this._settings[a];
if(c){c=c.type.parse(b[a]);this.set(a,c)}else this.set(a,b[a])}},_saveToObject:function(){return this.getSettingNames().map(function(b){return this._settings[b].type.stringify(this.get(b))}.bind(this))},_getDefaultValues:function(){return this.getSettingNames().map(function(b){return this._settings[b].spec.defaultValue}.bind(this))}};m.settings=new c;e.prototype={loadInitialValues:function(b){b._loadDefaultValues();var a=cookie.get("settings");b._loadFromObject(JSON.parse(a))},persistValue:function(b){try{var a=
JSON.stringify(b._saveToObject());cookie.set("settings",a)}catch(c){g.error("Unable to JSONify the settings! "+c)}}};m.CookiePersister=e});
define("pilot/commands/settings",["require","exports","module","pilot/canon"],function(a,m){var j={name:"set",params:[{name:"setting",type:"setting",description:"The name of the setting to display or alter",defaultValue:null},{name:"value",type:"settingValue",description:"The new value for the chosen setting",defaultValue:null}],description:"define and show settings",exec:function(a,c,b){var f;c.setting?void 0===c.value?f="<strong>"+setting.name+"</strong> = "+setting.get():(c.setting.set(c.value),
f="Setting: <strong>"+c.setting.name+"</strong> = "+c.setting.get()):(c=a.settings.getSettingNames(),f="",c.sort(function(b,a){return b.localeCompare(a)}),c.forEach(function(b){b=a.settings.getSetting(b);f+='<a class="setting" href="https://wiki.mozilla.org/Labs/Skywriter/Settings#'+b.name+'" title="View external documentation on setting: '+b.name+'" target="_blank">'+b.name+"</a> = "+b.value+"<br/>"}));b.done(f)}},c={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],
description:"unset a setting entirely",exec:function(a,c,b){var f=a.settings.get(c.setting);f?(f.reset(),b.done("Reset "+f.name+" to default: "+a.settings.get(c.setting))):b.doneWithError("No setting with the name <strong>"+c.setting+"</strong>.")}},e=a("pilot/canon");m.startup=function(){e.addCommand(j);e.addCommand(c)};m.shutdown=function(){e.removeCommand(j);e.removeCommand(c)}});
define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(a,m){var j=a("pilot/typecheck"),c=a("pilot/canon"),e={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,f){var a=[],e=c.getCommand(b.search);if(e&&e.exec)a.push(e.description?e.description:"No description for "+b.search);else{var g=!1;e?(a.push("<h2>Sub-Commands of "+
e.name+"</h2>"),a.push("<p>"+e.description+"</p>")):b.search?("hidden"==b.search&&(b.search="",g=!0),a.push("<h2>Commands starting with '"+b.search+"':</h2>")):a.push("<h2>Available Commands:</h2>");var j=c.getCommandNames();j.sort();a.push("<table>");for(var m=0;m<j.length;m++)if(e=c.getCommand(j[m]),(g||!e.hidden)&&void 0!==e.description&&!(b.search&&0!==e.name.indexOf(b.search)))if((b.search||-1==e.name.indexOf(" "))&&!(e&&e.name==b.search))a.push("<tr>"),a.push('<th class="right">'+e.name+"</th>"),
a.push("<td>"+e.description+"</td>"),a.push("</tr>");a.push("</table>")}f.done(a.join(""))}},g={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(a,b,c){var e,a=b.javascript;try{e=eval(a)}catch(g){e="<b>Error: "+g.message+"</b>"}var m=b="",s;if(j.isFunction(e))b=(e+"").replace(/\n/g,"<br>").replace(/ /g," "),m="function";else if(j.isObject(e)){var m=Array.isArray(e)?"array":
"object",t=[],y;for(s in e)e.hasOwnProperty(s)&&(y=j.isFunction(e[s])?"[function]":j.isObject(e[s])?"[object]":e[s],t.push({name:s,value:y}));t.sort(function(b,a){return b.name.toLowerCase()<a.name.toLowerCase()?-1:1});for(s=0;s<t.length;s++)b+="<b>"+t[s].name+"</b>: "+t[s].value+"<br>"}else b=e,m=typeof e;c.done("Result for eval <b>'"+a+"'</b> (type: "+m+"): <br><br>"+b)}},c=a("pilot/canon");m.startup=function(){c.addCommand(e);c.addCommand(g)};m.shutdown=function(){c.removeCommand(e);c.removeCommand(g)}});
define("pilot/settings/canon",["require","exports","module"],function(a,m){var j={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};m.startup=function(a){a.env.settings.addSetting(j)};m.shutdown=function(a){a.env.settings.removeSetting(j)}});
define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,m){var j=a("pilot/promise").Promise;m.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8};m.Plugin=function(a){this.name=a;this.status=this.INSTALLED};m.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(c,e){var g=new j;if(this.status>this.NEW)return g.resolve(this),g;
a([this.name],function(a){a.install&&a.install(c,e);this.status=this.INSTALLED;g.resolve(this)}.bind(this));return g},register:function(c,e){var g=new j;if(this.status!=this.INSTALLED)return g.resolve(this),g;a([this.name],function(a){a.register&&a.register(c,e);this.status=this.REGISTERED;g.resolve(this)}.bind(this));return g},startup:function(c,e){var e=e||m.REASONS.APP_STARTUP,g=new j;if(this.status!=this.REGISTERED)return g.resolve(this),g;a([this.name],function(a){a.startup&&a.startup(c,e);this.status=
this.STARTED;g.resolve(this)}.bind(this));return g},shutdown:function(c,e){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(c,e))}};m.PluginCatalog=function(){this.plugins={}};m.PluginCatalog.prototype={registerPlugins:function(a,e,g){var k=[];a.forEach(function(b){var a=this.plugins[b];void 0===a&&(a=new m.Plugin(b),this.plugins[b]=a,k.push(a.register(e,g)))}.bind(this));return j.group(k)},startupPlugins:function(a,e){var g=[],k;for(k in this.plugins)g.push(this.plugins[k].startup(a,
e));return j.group(g)}};m.catalog=new m.PluginCatalog});
define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,m){var j=a("pilot/console");a("pilot/stacktrace");var c=0,e=[],g=[];Promise=function(){this._status=0;this._value=void 0;this._onSuccessHandlers=[];this._onErrorHandlers=[];this._id=c++;e[this._id]=this};Promise.prototype.isPromise=!0;Promise.prototype.isComplete=function(){return 0!=this._status};Promise.prototype.isResolved=function(){return 1==this._status};Promise.prototype.isRejected=function(){return-1==
this._status};Promise.prototype.then=function(a,b){"function"===typeof a&&(1===this._status?a.call(null,this._value):0===this._status&&this._onSuccessHandlers.push(a));"function"===typeof b&&(-1===this._status?b.call(null,this._value):0===this._status&&this._onErrorHandlers.push(b));return this};Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this;this.then(function(c){try{b.resolve(a(c))}catch(e){b.reject(e)}},function(a){b.reject(a)});return b};Promise.prototype.resolve=
function(a){return this._complete(this._onSuccessHandlers,1,a,"resolve")};Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,-1,a,"reject")};Promise.prototype._complete=function(a,b,c,n){if(0!=this._status)return j.group("Promise already closed"),j.error("Attempted "+n+"() with ",c),j.error("Previous status = ",this._status,", previous value = ",this._value),j.trace(),this._completeTrace&&(j.error("Trace of previous completion:"),this._completeTrace.log(5)),j.groupEnd(),
this;this._status=b;this._value=c;a.forEach(function(b){b.call(null,this._value)},this);this._onSuccessHandlers.length=0;this._onErrorHandlers.length=0;delete e[this._id];for(g.push(this);20<g.length;)g.shift();return this};Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(0===a.length)return(new Promise).resolve([]);var b=new Promise,c=[],e=0,g=function(g){return function(j){c[g]=j;e++;-1!==b._status&&e===a.length&&b.resolve(c)}};a.forEach(function(a,c){var f=
g(c),e=b.reject.bind(b);a.then(f,e)});return b};m.Promise=Promise;m._outstanding=e;m._recent=g});
define("pilot/dom",["require","exports","module"],function(a,m){m.createElement=function(a,c){return document.createElementNS?document.createElementNS(c||"http://www.w3.org/1999/xhtml",a):document.createElement(a)};m.setText=function(a,c){void 0!==a.innerText&&(a.innerText=c);void 0!==a.textContent&&(a.textContent=c)};document.documentElement.classList?(m.hasCssClass=function(a,c){return a.classList.contains(c)},m.addCssClass=function(a,c){a.classList.add(c)},m.removeCssClass=function(a,c){a.classList.remove(c)},
m.toggleCssClass=function(a,c){return a.classList.toggle(c)}):(m.hasCssClass=function(a,c){return-1!==a.className.split(/\s+/g).indexOf(c)},m.addCssClass=function(a,c){m.hasCssClass(a,c)||(a.className+=" "+c)},m.removeCssClass=function(a,c){for(var e=a.className.split(/\s+/g);;){var g=e.indexOf(c);if(-1==g)break;e.splice(g,1)}a.className=e.join(" ")},m.toggleCssClass=function(a,c){for(var e=a.className.split(/\s+/g),g=!0;;){var k=e.indexOf(c);if(-1==k)break;g=!1;e.splice(k,1)}g&&e.push(c);a.className=
e.join(" ");return g});m.setCssClass=function(a,c,e){e?m.addCssClass(a,c):m.removeCssClass(a,c)};m.importCssString=function(a,c){c=c||document;if(c.createStyleSheet)c.createStyleSheet().cssText=a;else{var e=c.createElementNS?c.createElementNS("http://www.w3.org/1999/xhtml","style"):c.createElement("style");e.appendChild(c.createTextNode(a));(c.getElementsByTagName("head")[0]||c.documentElement).appendChild(e)}};m.getInnerWidth=function(a){return parseInt(m.computedStyle(a,"paddingLeft"))+parseInt(m.computedStyle(a,
"paddingRight"))+a.clientWidth};m.getInnerHeight=function(a){return parseInt(m.computedStyle(a,"paddingTop"))+parseInt(m.computedStyle(a,"paddingBottom"))+a.clientHeight};void 0!==window.pageYOffset?(m.getPageScrollTop=function(){return window.pageYOffset},m.getPageScrollLeft=function(){return window.pageXOffset}):(m.getPageScrollTop=function(){return document.body.scrollTop},m.getPageScrollLeft=function(){return document.body.scrollLeft});m.computedStyle=window.getComputedStyle?function(a,c){return c?
(window.getComputedStyle(a,"")||{})[c]||"":window.getComputedStyle(a,"")||{}}:function(a,c){return c?a.currentStyle[c]:a.currentStyle};m.scrollbarWidth=function(){var a=m.createElement("p");a.style.width="100%";a.style.minWidth="0px";a.style.height="200px";var c=m.createElement("div"),e=c.style;e.position="absolute";e.left="-10000px";e.overflow="hidden";e.width="200px";e.minWidth="0px";e.height="150px";c.appendChild(a);var g=document.body||document.documentElement;g.appendChild(c);var k=a.offsetWidth;
e.overflow="scroll";a=a.offsetWidth;if(k==a)a=c.clientWidth;g.removeChild(c);return k-a};m.setInnerHtml=function(a,c){var e=a.cloneNode(false);e.innerHTML=c;a.parentNode.replaceChild(e,a);return e};m.setInnerText=function(a,c){document.body&&"textContent"in document.body?a.textContent=c:a.innerText=c};m.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""};m.getParentWindow=function(a){return a.defaultView||a.parentWindow};m.getSelectionStart=
function(a){var c;try{c=a.selectionStart||0}catch(e){c=0}return c};m.setSelectionStart=function(a,c){return a.selectionStart=c};m.getSelectionEnd=function(a){var c;try{c=a.selectionEnd||0}catch(e){c=0}return c};m.setSelectionEnd=function(a,c){return a.selectionEnd=c}});
define("pilot/event","require,exports,module,pilot/keys,pilot/useragent,pilot/dom".split(","),function(a,m){function j(a,b,f){var g=0,g=e.isOpera&&e.isMac?0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(f in c.MODIFIER_KEYS){switch(c.MODIFIER_KEYS[f]){case "Alt":g=2;break;case "Shift":g=4;break;case "Ctrl":g=1;break;default:g=8}f=0}if(g&8&&(f==91||f==93))f=0;return g==0&&!(f in c.FUNCTION_KEYS)?false:a(b,g,f)}var c=
a("pilot/keys"),e=a("pilot/useragent"),g=a("pilot/dom");m.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,false);if(a.attachEvent){var e=function(){c(window.event)};c._wrapper=e;a.attachEvent("on"+b,e)}};m.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,false);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)};m.stopEvent=function(a){m.stopPropagation(a);m.preventDefault(a);return false};m.stopPropagation=function(a){a.stopPropagation?
a.stopPropagation():a.cancelBubble=true};m.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=false};m.getDocumentX=function(a){return a.clientX?a.clientX+g.getPageScrollLeft():a.pageX};m.getDocumentY=function(a){return a.clientY?a.clientY+g.getPageScrollTop():a.pageY};m.getButton=function(a){return a.type=="dblclick"?0:a.type=="contextmenu"?2:a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]};m.capture=document.documentElement.setCapture?function(a,b,c){function e(g){b&&
b(g);c&&c();m.removeListener(a,"mousemove",b);m.removeListener(a,"mouseup",e);m.removeListener(a,"losecapture",e);a.releaseCapture()}m.addListener(a,"mousemove",b);m.addListener(a,"mouseup",e);m.addListener(a,"losecapture",e);a.setCapture()}:function(a,b,c){function e(a){b(a);a.stopPropagation()}function g(a){b&&b(a);c&&c();document.removeEventListener("mousemove",e,true);document.removeEventListener("mouseup",g,true);a.stopPropagation()}document.addEventListener("mousemove",e,true);document.addEventListener("mouseup",
g,true)};m.addMouseWheelListener=function(a,b){var c=function(a){if(a.wheelDelta!==void 0)if(a.wheelDeltaX!==void 0){a.wheelX=-a.wheelDeltaX/8;a.wheelY=-a.wheelDeltaY/8}else{a.wheelX=0;a.wheelY=-a.wheelDelta/8}else if(a.axis&&a.axis==a.HORIZONTAL_AXIS){a.wheelX=(a.detail||0)*5;a.wheelY=0}else{a.wheelX=0;a.wheelY=(a.detail||0)*5}b(a)};m.addListener(a,"DOMMouseScroll",c);m.addListener(a,"mousewheel",c)};m.addMultiMouseDownListener=function(a,b,c,g,j){var u=0,s,t,y=function(a){u=u+1;if(u==1){s=a.clientX;
t=a.clientY;setTimeout(function(){u=0},g||600)}var e=m.getButton(a)==b;if(!e||Math.abs(a.clientX-s)>5||Math.abs(a.clientY-t)>5)u=0;if(u==c){u=0;j(a)}if(e)return m.preventDefault(a)};m.addListener(a,"mousedown",y);e.isIE&&m.addListener(a,"dblclick",y)};m.addCommandKeyListener=function(a,b){var c=m.addListener;if(e.isOldGecko){var g=null;c(a,"keydown",function(b){g=b.keyCode});c(a,"keypress",function(a){return j(b,a,g)})}else{var v=null;c(a,"keydown",function(a){v=a.keyIdentifier||a.keyCode;return j(b,
a,a.keyCode)});e.isMac&&e.isOpera&&c(a,"keypress",function(a){if(v!==(a.keyIdentifier||a.keyCode))return j(b,a,a.keyCode);v=null})}}});
define("ace/editor","require,exports,module,pilot/fixoldbrowsers,pilot/oop,pilot/event,pilot/lang,pilot/useragent,ace/keyboard/textinput,ace/mouse_handler,ace/keyboard/keybinding,ace/edit_session,ace/search,ace/range,pilot/event_emitter".split(","),function(a,m){a("pilot/fixoldbrowsers");var j=a("pilot/oop");a("pilot/event");var c=a("pilot/lang"),e=a("pilot/useragent"),g=a("ace/keyboard/textinput").TextInput,k=a("ace/mouse_handler").MouseHandler,b=a("ace/keyboard/keybinding").KeyBinding,f=a("ace/edit_session").EditSession,
n=a("ace/search").Search,v=a("ace/range").Range,u=a("pilot/event_emitter").EventEmitter,s=function(a,c){this.container=a.getContainerElement();this.renderer=a;this.textInput=new g(a.getTextAreaContainer(),this);this.keyBinding=new b(this);if(!e.isIPad)this.$mouseHandler=new k(this);this.$blockScrolling=0;this.$search=(new n).set({wrap:true});this.setSession(c||new f(""))};(function(){j.implement(this,u);this.$forwardEvents={gutterclick:1,gutterdblclick:1};this.$originalAddEventListener=this.addEventListener;
this.$originalRemoveEventListener=this.removeEventListener;this.addEventListener=function(b,a){return this.$forwardEvents[b]?this.renderer.addEventListener(b,a):this.$originalAddEventListener(b,a)};this.removeEventListener=function(b,a){return this.$forwardEvents[b]?this.renderer.removeEventListener(b,a):this.$originalRemoveEventListener(b,a)};this.setKeyboardHandler=function(b){this.keyBinding.setKeyboardHandler(b)};this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()};
this.setSession=function(b){if(this.session!=b){if(this.session){var a=this.session;this.session.removeEventListener("change",this.$onDocumentChange);this.session.removeEventListener("changeMode",this.$onChangeMode);this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.session.removeEventListener("changeTabSize",this.$onChangeTabSize);this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode);
this.session.removeEventListener("onChangeFold",this.$onChangeFold);this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker);this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation);this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",
this.$onCursorChange);c.removeEventListener("changeSelection",this.$onSelectionChange);this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=b;this.$onDocumentChange=this.onDocumentChange.bind(this);b.addEventListener("change",this.$onDocumentChange);this.renderer.setSession(b);this.$onChangeMode=this.onChangeMode.bind(this);b.addEventListener("changeMode",this.$onChangeMode);this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this);b.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate);
this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer);b.addEventListener("changeTabSize",this.$onChangeTabSize);this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this);b.addEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.$onChangeWrapMode=this.onChangeWrapMode.bind(this);b.addEventListener("changeWrapMode",this.$onChangeWrapMode);this.$onChangeFold=this.onChangeFold.bind(this);b.addEventListener("changeFold",this.$onChangeFold);this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this);
this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.$onChangeBackMarker=this.onChangeBackMarker.bind(this);this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker);this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this);this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.$onChangeAnnotation=this.onChangeAnnotation.bind(this);this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation);this.$onCursorChange=
this.onCursorChange.bind(this);this.session.addEventListener("changeOverwrite",this.$onCursorChange);this.selection=b.getSelection();this.selection.addEventListener("changeCursor",this.$onCursorChange);this.$onSelectionChange=this.onSelectionChange.bind(this);this.selection.addEventListener("changeSelection",this.$onSelectionChange);this.onChangeMode();this.onCursorChange();this.onSelectionChange();this.onChangeFrontMarker();this.onChangeBackMarker();this.onChangeBreakpoint();this.onChangeAnnotation();
this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit();this.renderer.scrollToRow(b.getScrollTopRow());this.renderer.updateFull();this._dispatchEvent("changeSession",{session:b,oldSession:a})}};this.getSession=function(){return this.session};this.getSelection=function(){return this.selection};this.resize=function(){this.renderer.onResize()};this.setTheme=function(b){this.renderer.setTheme(b)};this.getTheme=function(){return this.renderer.getTheme()};this.setStyle=function(b){this.renderer.setStyle(b)};
this.unsetStyle=function(b){this.renderer.unsetStyle(b)};this.setFontSize=function(b){this.container.style.fontSize=b};this.$highlightBrackets=function(){if(this.session.$bracketHighlight){this.session.removeMarker(this.session.$bracketHighlight);this.session.$bracketHighlight=null}if(!this.$highlightPending){var b=this;this.$highlightPending=true;setTimeout(function(){b.$highlightPending=false;var a=b.session.findMatchingBracket(b.getCursorPosition());if(a){a=new v(a.row,a.column,a.row,a.column+
1);b.session.$bracketHighlight=b.session.addMarker(a,"ace_bracket","text")}},10)}};this.focus=function(){var b=this;e.isIE||setTimeout(function(){b.textInput.focus()});this.textInput.focus()};this.isFocused=function(){return this.textInput.isFocused()};this.blur=function(){this.textInput.blur()};this.onFocus=function(){this.renderer.showCursor();this.renderer.visualizeFocus();this._dispatchEvent("focus")};this.onBlur=function(){this.renderer.hideCursor();this.renderer.visualizeBlur();this._dispatchEvent("blur")};
this.onDocumentChange=function(b){var b=b.data,a=b.range;this.renderer.updateLines(a.start.row,a.start.row==a.end.row&&b.action!="insertLines"&&b.action!="removeLines"?a.end.row:Infinity);this.renderer.updateCursor()};this.onTokenizerUpdate=function(b){b=b.data;this.renderer.updateLines(b.first,b.last)};this.onCursorChange=function(){this.renderer.updateCursor();this.$blockScrolling||this.renderer.scrollCursorIntoView();this.renderer.moveTextAreaToCursor(this.textInput.getElement());this.$highlightBrackets();
this.$updateHighlightActiveLine()};this.$updateHighlightActiveLine=function(){var b=this.getSession();b.$highlightLineMarker&&b.removeMarker(b.$highlightLineMarker);b.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var a=this.getCursorPosition(),c=this.session.getFoldLine(a.row),a=c?new v(c.start.row,0,c.end.row+1,0):new v(a.row,0,a.row+1,0);b.$highlightLineMarker=b.addMarker(a,"ace_active_line","background")}};this.onSelectionChange=
function(){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker);b.$selectionMarker=null;if(this.selection.isEmpty())this.$updateHighlightActiveLine();else{var a=this.selection.getRange(),c=this.getSelectionStyle();b.$selectionMarker=b.addMarker(a,"ace_selection",c)}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)};this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()};this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()};
this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())};this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())};this.onChangeMode=function(){this.renderer.updateText()};this.onChangeWrapLimit=function(){this.renderer.updateFull()};this.onChangeWrapMode=function(){this.renderer.onResize(true)};this.onChangeFold=function(){this.$updateHighlightActiveLine();this.renderer.updateFull()};this.getCopyText=function(){return this.selection.isEmpty()?
"":this.session.getTextRange(this.getSelectionRange())};this.onCut=function(){if(!this.$readOnly&&!this.selection.isEmpty()){this.session.remove(this.getSelectionRange());this.clearSelection()}};this.insert=function(b){if(!this.$readOnly){var a=this.session,c=a.getMode(),f=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(a.getState(f.row),"insertion",this,a,b);if(e)b=e.text}b=b.replace("\t",this.session.getTabString());if(this.selection.isEmpty()){if(this.session.getOverwrite()){var g=
new v.fromPoints(f,f);g.end.column=g.end.column+b.length;this.session.remove(g)}}else{f=this.session.remove(this.getSelectionRange());this.clearSelection()}this.clearSelection();var k=f.column,n=a.getState(f.row),j=c.checkOutdent(n,a.getLine(f.row),b),g=a.getLine(f.row),m=c.getNextLineIndent(n,g.slice(0,f.column),a.getTabString()),u=a.insert(f,b);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new v(f.row,k+e.selection[0],f.row,k+e.selection[1])):this.selection.setSelectionRange(new v(f.row+
e.selection[0],e.selection[1],f.row+e.selection[2],e.selection[3])));n=a.getState(f.row);if(a.getDocument().isNewLine(b)){this.moveCursorTo(f.row+1,0);b=a.getTabSize();c=Number.MAX_VALUE;for(e=f.row+1;e<=u.row;++e){n=0;g=a.getLine(e);for(k=0;k<g.length;++k)if(g.charAt(k)=="\t")n=n+b;else if(g.charAt(k)==" ")n=n+1;else break;/[^\s]/.test(g)&&(c=Math.min(n,c))}for(e=f.row+1;e<=u.row;++e){n=c;g=a.getLine(e);for(k=0;k<g.length&&n>0;++k)g.charAt(k)=="\t"?n=n-b:g.charAt(k)==" "&&(n=n-1);a.remove(new v(e,
0,e,k))}a.indentRows(f.row+1,u.row,m)}else j&&c.autoOutdent(n,a,f.row)}};this.onTextInput=function(b,a){if(a&&b.length==1)this.keyBinding.onCommandKey({},0,null,b)||this.insert(b);else this.keyBinding.onTextInput(b)};this.onCommandKey=function(b,a,c){this.keyBinding.onCommandKey(b,a,c)};this.setOverwrite=function(b){this.session.setOverwrite(b)};this.getOverwrite=function(){return this.session.getOverwrite()};this.toggleOverwrite=function(){this.session.toggleOverwrite()};this.setScrollSpeed=function(b){this.$mouseHandler.setScrollSpeed(b)};
this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()};this.$selectionStyle="line";this.setSelectionStyle=function(b){if(this.$selectionStyle!=b){this.$selectionStyle=b;this.onSelectionChange();this._dispatchEvent("changeSelectionStyle",{data:b})}};this.getSelectionStyle=function(){return this.$selectionStyle};this.$highlightActiveLine=true;this.setHighlightActiveLine=function(b){if(this.$highlightActiveLine!=b){this.$highlightActiveLine=b;this.$updateHighlightActiveLine()}};this.getHighlightActiveLine=
function(){return this.$highlightActiveLine};this.$highlightSelectedWord=true;this.setHighlightSelectedWord=function(b){if(this.$highlightSelectedWord!=b)(this.$highlightSelectedWord=b)?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)};this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord};this.setShowInvisibles=function(b){this.getShowInvisibles()!=b&&this.renderer.setShowInvisibles(b)};this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()};
this.setShowPrintMargin=function(b){this.renderer.setShowPrintMargin(b)};this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()};this.setPrintMarginColumn=function(b){this.renderer.setPrintMarginColumn(b)};this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()};this.$readOnly=false;this.setReadOnly=function(b){this.$readOnly=b};this.getReadOnly=function(){return this.$readOnly};this.$modeBehaviours=true;this.setBehavioursEnabled=function(b){this.$modeBehaviours=
b};this.getBehavioursEnabled=function(){return this.$modeBehaviours};this.removeRight=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectRight();this.session.remove(this.getSelectionRange());this.clearSelection()}};this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var a=this.session,c=a.getState(b.start.row),a=a.getMode().transformAction(c,"deletion",this,a,
b);a!==false&&(b=a)}this.session.remove(b);this.clearSelection()}};this.removeWordRight=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectWordRight();this.session.remove(this.getSelectionRange());this.clearSelection()}};this.removeWordLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectWordLeft();this.session.remove(this.getSelectionRange());this.clearSelection()}};this.removeToLineStart=function(){if(!this.$readOnly){this.selection.isEmpty()&&
this.selection.selectLineStart();this.session.remove(this.getSelectionRange());this.clearSelection()}};this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var b=this.getSelectionRange();if(b.start.column==b.end.column&&b.start.row==b.end.row){b.end.column=0;b.end.row++}this.session.remove(b);this.clearSelection()}};this.splitLine=function(){if(!this.$readOnly){if(!this.selection.isEmpty()){this.session.remove(this.getSelectionRange());this.clearSelection()}var b=
this.getCursorPosition();this.insert("\n");this.moveCursorToPosition(b)}};this.transposeLetters=function(){if(!this.$readOnly&&this.selection.isEmpty()){var b=this.getCursorPosition(),a=b.column;if(a!=0){var c=this.session.getLine(b.row);if(a<c.length){c=c.charAt(a)+c.charAt(a-1);b=new v(b.row,a-1,b.row,a+1)}else{c=c.charAt(a-1)+c.charAt(a-2);b=new v(b.row,a-2,b.row,a)}this.session.replace(b,c)}}};this.indent=function(){if(!this.$readOnly){var b=this.session,a=this.getSelectionRange();if(a.start.row<
a.end.row||a.start.column<a.end.column){a=this.$getSelectedRows();b.indentRows(a.first,a.last,"\t")}else{if(this.session.getUseSoftTabs())var a=b.getTabSize(),f=this.getCursorPosition(),b=b.documentToScreenColumn(f.row,f.column),b=c.stringRepeat(" ",a-b%a);else b="\t";return this.onTextInput(b)}}};this.blockOutdent=function(){this.$readOnly||this.session.outdentRows(this.session.getSelection().getRange())};this.toggleCommentLines=function(){if(!this.$readOnly){var b=this.session.getState(this.getCursorPosition().row),
a=this.$getSelectedRows();this.session.getMode().toggleCommentLines(b,this.session,a.first,a.last)}};this.removeLines=function(){if(!this.$readOnly){var b=this.$getSelectedRows();this.session.remove(b.last==0||b.last+1<this.session.getLength()?new v(b.first,0,b.last+1,0):new v(b.first-1,this.session.getLine(b.first).length,b.last,this.session.getLine(b.last).length));this.clearSelection()}};this.moveLinesDown=function(){this.$readOnly||this.$moveLines(function(b,a){return this.session.moveLinesDown(b,
a)})};this.moveLinesUp=function(){this.$readOnly||this.$moveLines(function(b,a){return this.session.moveLinesUp(b,a)})};this.moveText=function(b,a){return this.$readOnly?null:this.session.moveText(b,a)};this.copyLinesUp=function(){this.$readOnly||this.$moveLines(function(b,a){this.session.duplicateLines(b,a);return 0})};this.copyLinesDown=function(){this.$readOnly||this.$moveLines(function(b,a){return this.session.duplicateLines(b,a)})};this.$moveLines=function(b){var a=this.$getSelectedRows(),c=
b.call(this,a.first,a.last),f=this.selection;f.setSelectionAnchor(a.last+c+1,0);f.$moveSelection(function(){f.moveCursorTo(a.first+c,0)})};this.$getSelectedRows=function(){var b=this.getSelectionRange().collapseRows();return{first:b.start.row,last:b.end.row}};this.onCompositionStart=function(){this.renderer.showComposition(this.getCursorPosition())};this.onCompositionUpdate=function(b){this.renderer.setCompositionText(b)};this.onCompositionEnd=function(){this.renderer.hideComposition()};this.getFirstVisibleRow=
function(){return this.renderer.getFirstVisibleRow()};this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()};this.isRowVisible=function(b){return b>=this.getFirstVisibleRow()&&b<=this.getLastVisibleRow()};this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1};this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()};this.$getPageUpRow=function(){var b=this.renderer.getScrollTopRow(),a=this.renderer.getScrollBottomRow();
return b-(a-b)};this.selectPageDown=function(){var b=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var a=this.getSelection(),c=this.session.documentToScreenPosition(a.getSelectionLead()),b=this.session.screenToDocumentPosition(b,c.column);a.selectTo(b.row,b.column)};this.selectPageUp=function(){var b=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),a=this.$getPageUpRow()+Math.round(b/2);this.scrollPageUp();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),
a=this.session.screenToDocumentPosition(a,c.column);b.selectTo(a.row,a.column)};this.gotoPageDown=function(){var b=this.$getPageDownRow(),a=this.getCursorPositionScreen().column;this.scrollToRow(b);this.getSelection().moveCursorToScreen(b,a)};this.gotoPageUp=function(){var b=this.$getPageUpRow(),a=this.getCursorPositionScreen().column;this.scrollToRow(b);this.getSelection().moveCursorToScreen(b,a)};this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())};this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())};
this.scrollToRow=function(b){this.renderer.scrollToRow(b)};this.scrollToLine=function(b,a){this.renderer.scrollToLine(b,a)};this.centerSelection=function(){var b=this.getSelectionRange();this.renderer.scrollToLine(Math.floor(b.start.row+(b.end.row-b.start.row)/2),true)};this.getCursorPosition=function(){return this.selection.getCursor()};this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())};this.getSelectionRange=function(){return this.selection.getRange()};
this.selectAll=function(){this.$blockScrolling=this.$blockScrolling+1;this.selection.selectAll();this.$blockScrolling=this.$blockScrolling-1};this.clearSelection=function(){this.selection.clearSelection()};this.moveCursorTo=function(b,a){this.selection.moveCursorTo(b,a)};this.moveCursorToPosition=function(b){this.selection.moveCursorToPosition(b)};this.gotoLine=function(b,a){this.selection.clearSelection();this.$blockScrolling=this.$blockScrolling+1;this.moveCursorTo(b-1,a||0);this.$blockScrolling=
this.$blockScrolling-1;this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(b,true)};this.navigateTo=function(b,a){this.clearSelection();this.moveCursorTo(b,a)};this.navigateUp=function(b){this.selection.clearSelection();this.selection.moveCursorBy(-(b||1),0)};this.navigateDown=function(b){this.selection.clearSelection();this.selection.moveCursorBy(b||1,0)};this.navigateLeft=function(b){if(this.selection.isEmpty())for(b=b||1;b--;)this.selection.moveCursorLeft();else this.moveCursorToPosition(this.getSelectionRange().start);
this.clearSelection()};this.navigateRight=function(b){if(this.selection.isEmpty())for(b=b||1;b--;)this.selection.moveCursorRight();else this.moveCursorToPosition(this.getSelectionRange().end);this.clearSelection()};this.navigateLineStart=function(){this.selection.moveCursorLineStart();this.clearSelection()};this.navigateLineEnd=function(){this.selection.moveCursorLineEnd();this.clearSelection()};this.navigateFileEnd=function(){this.selection.moveCursorFileEnd();this.clearSelection()};this.navigateFileStart=
function(){this.selection.moveCursorFileStart();this.clearSelection()};this.navigateWordRight=function(){this.selection.moveCursorWordRight();this.clearSelection()};this.navigateWordLeft=function(){this.selection.moveCursorWordLeft();this.clearSelection()};this.replace=function(b,a){a&&this.$search.set(a);var c=this.$search.find(this.session);if(c){this.$tryReplace(c,b);c!==null&&this.selection.setSelectionRange(c)}};this.replaceAll=function(b,a){a&&this.$search.set(a);var c=this.$search.findAll(this.session);
if(c.length){var f=this.getSelectionRange();this.clearSelection();this.selection.moveCursorTo(0,0);this.$blockScrolling=this.$blockScrolling+1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],b);this.selection.setSelectionRange(f);this.$blockScrolling=this.$blockScrolling-1}};this.$tryReplace=function(b,a){a=this.$search.replace(this.session.getTextRange(b),a);if(a!==null){b.end=this.session.replace(b,a);return b}return null};this.getLastSearchOptions=function(){return this.$search.getOptions()};
this.find=function(b,a){this.clearSelection();a=a||{};a.needle=b;this.$search.set(a);this.$find()};this.findNext=function(b){b=b||{};if(typeof b.backwards=="undefined")b.backwards=false;this.$search.set(b);this.$find()};this.findPrevious=function(b){b=b||{};if(typeof b.backwards=="undefined")b.backwards=true;this.$search.set(b);this.$find()};this.$find=function(b){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())});typeof b!="undefined"&&this.$search.set({backwards:b});
if(b=this.$search.find(this.session)){this.gotoLine(b.end.row+1,b.end.column);this.selection.setSelectionRange(b)}};this.undo=function(){this.session.getUndoManager().undo()};this.redo=function(){this.session.getUndoManager().redo()};this.destroy=function(){this.renderer.destroy()}}).call(s.prototype);m.Editor=s});
define("ace/keyboard/textinput","require,exports,module,pilot/event,pilot/useragent,pilot/dom".split(","),function(a,m){var j=a("pilot/event"),c=a("pilot/useragent"),e=a("pilot/dom");m.TextInput=function(a,k){function b(b){if(!s)if(b=b||n.value){if(b.charCodeAt(b.length-1)==m.charCodeAt(0)){if(b=b.slice(0,-1))k.onTextInput(b,!t)}else k.onTextInput(b,!t);if(!f())return false}t=s=false;n.value=m;n.select()}function f(){return document.activeElement===n}var n=e.createElement("textarea");n.style.left=
"-10000px";a.appendChild(n);var m=String.fromCharCode(0);b();var u=false,s=false,t=false,y="",q=function(a){setTimeout(function(){u||b(a.data)},0)},x=function(){c.isIE&&n.value.charCodeAt(0)>128||setTimeout(function(){u||b()},0)},A=function(){u=true;k.onCompositionStart();c.isGecko||setTimeout(B,0)},B=function(){if(u)k.onCompositionUpdate(n.value)},r=function(){u=false;k.onCompositionEnd()},p=function(a){s=true;var c=k.getCopyText();c?n.value=c:a.preventDefault();n.select();setTimeout(function(){b()},
0)},z=function(a){s=true;var c=k.getCopyText();if(c){n.value=c;k.onCut()}else a.preventDefault();n.select();setTimeout(function(){b()},0)};j.addCommandKeyListener(n,k.onCommandKey.bind(k));if(c.isIE){var E={13:1,27:1};j.addListener(n,"keyup",function(b){u&&(!n.value||E[b.keyCode])&&setTimeout(r,0);(n.value.charCodeAt(0)|0)<129||(u?B():A())})}n.attachEvent?j.addListener(n,"propertychange",x):c.isChrome||c.isSafari?j.addListener(n,"textInput",q):c.isIE?j.addListener(n,"textinput",q):j.addListener(n,
"input",q);j.addListener(n,"paste",function(a){t=true;if(a.clipboardData&&a.clipboardData.getData){b(a.clipboardData.getData("text/plain"));a.preventDefault()}else x()});if(c.isIE){j.addListener(n,"beforecopy",function(b){var a=k.getCopyText();a?clipboardData.setData("Text",a):b.preventDefault()});j.addListener(a,"keydown",function(b){if(b.ctrlKey&&b.keyCode==88){var a=k.getCopyText();if(a){clipboardData.setData("Text",a);k.onCut()}j.preventDefault(b)}})}else{j.addListener(n,"copy",p);j.addListener(n,
"cut",z)}j.addListener(n,"compositionstart",A);c.isGecko&&j.addListener(n,"text",B);c.isWebKit&&j.addListener(n,"keyup",B);j.addListener(n,"compositionend",r);j.addListener(n,"blur",function(){k.onBlur()});j.addListener(n,"focus",function(){k.onFocus();n.select()});this.focus=function(){k.onFocus();n.select();n.focus()};this.blur=function(){n.blur()};this.isFocused=f;this.getElement=function(){return n};this.onContextMenu=function(b,a){if(b){if(!y)y=n.style.cssText;n.style.cssText="position:fixed; z-index:1000;left:"+
(b.x-2)+"px; top:"+(b.y-2)+"px;"}if(a)n.value=""};this.onContextMenuClose=function(){setTimeout(function(){if(y){n.style.cssText=y;y=""}b()},0)}}});
define("ace/mouse_handler","require,exports,module,pilot/event,pilot/dom,pilot/browser_focus".split(","),function(a,m){var j=a("pilot/event"),c=a("pilot/dom"),e=a("pilot/browser_focus").BrowserFocus,g=1,k=function(b){this.editor=b;this.browserFocus=new e;j.addListener(b.container,"mousedown",function(a){b.focus();return j.preventDefault(a)});j.addListener(b.container,"selectstart",function(b){return j.preventDefault(b)});var a=b.renderer.getMouseEventTarget();j.addListener(a,"mousedown",this.onMouseDown.bind(this));
j.addMultiMouseDownListener(a,0,2,500,this.onMouseDoubleClick.bind(this));j.addMultiMouseDownListener(a,0,3,600,this.onMouseTripleClick.bind(this));j.addMultiMouseDownListener(a,0,4,600,this.onMouseQuadClick.bind(this));j.addMouseWheelListener(a,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1;this.setScrollSpeed=function(b){this.$scrollSpeed=b};this.getScrollSpeed=function(){return this.$scrollSpeed};this.$getEventPosition=function(b){var a=j.getDocumentX(b),b=j.getDocumentY(b),a=this.editor.renderer.screenToTextCoordinates(a,
b);a.row=Math.max(0,Math.min(a.row,this.editor.session.getLength()-1));return a};this.$distance=function(b,a,c,e){return Math.sqrt(Math.pow(c-b,2)+Math.pow(e-a,2))};this.onMouseDown=function(b){function a(c){if(b.shiftKey)s.selection.selectToPosition(c);else if(!t.$clickSelection){s.moveCursorToPosition(c);s.selection.clearSelection(c.row,c.column)}x=g}if(this.browserFocus.isFocused()&&!((new Date).getTime()-this.browserFocus.lastFocus<20)&&this.editor.isFocused()){var e=j.getDocumentX(b),k=j.getDocumentY(b),
m=this.$getEventPosition(b),s=this.editor,t=this,y=s.getSelectionRange(),q=y.isEmpty(),x=0,A=false,A=j.getButton(b);if(A!==0){q&&s.moveCursorToPosition(m);if(A==2){s.textInput.onContextMenu({x:e,y:k},q);j.capture(s.container,function(){},s.textInput.onContextMenuClose)}}else if(A=s.session.getFoldAt(m.row,m.column,1))s.selection.setSelectionRange(A.range);else{(A=!s.getReadOnly()&&!q&&y.contains(m.row,m.column))||a(m);var B,r;s.getOverwrite();var p=(new Date).getTime(),z,E;j.capture(s.container,function(b){B=
j.getDocumentX(b);r=j.getDocumentY(b)},function(){clearInterval(C);if(x==0)a(m);else if(x==2){c.removeCssClass(s.container,"ace_dragging");s.session.removeMarker(dragSelectionMarker);if(!t.$clickSelection&&!z){s.moveCursorToPosition(m);s.selection.clearSelection(m.row,m.column)}if(z)if(E.contains(z.row,z.column))z=null;else{s.clearSelection();var b=s.moveText(E,z);b?s.selection.setSelectionRange(b):z=null}}t.$clickSelection=null;x=0});var C=setInterval(function(){if(!(B===void 0||r===void 0)){if(x==
0){var b=t.$distance(e,k,B,r),j=(new Date).getTime();if(b>5){x=g;b=s.renderer.screenToTextCoordinates(B,r);b.row=Math.max(0,Math.min(b.row,s.session.getLength()-1));a(b)}else if(j-p>250){x=2;E=s.getSelectionRange();b=s.getSelectionStyle();dragSelectionMarker=s.session.addMarker(E,"ace_selection",b);s.clearSelection();c.addCssClass(s.container,"ace_dragging")}}if(x==2){z=s.renderer.screenToTextCoordinates(B,r);z.row=Math.max(0,Math.min(z.row,s.session.getLength()-1));s.moveCursorToPosition(z)}else if(x==
g){b=s.renderer.screenToTextCoordinates(B,r);b.row=Math.max(0,Math.min(b.row,s.session.getLength()-1));if(t.$clickSelection)if(t.$clickSelection.contains(b.row,b.column))s.selection.setSelectionRange(t.$clickSelection);else{j=t.$clickSelection.compare(b.row,b.column)==-1?t.$clickSelection.end:t.$clickSelection.start;s.selection.setSelectionAnchor(j.row,j.column);s.selection.selectToPosition(b)}else s.selection.selectToPosition(b);s.renderer.scrollCursorIntoView()}}},20);return j.preventDefault(b)}}};
this.onMouseDoubleClick=function(b){var a=this.editor,b=this.$getEventPosition(b),c=a.session.getFoldAt(b.row,b.column,1);if(c)a.session.expandFold(c);else{a.moveCursorToPosition(b);a.selection.selectWord();this.$clickSelection=a.getSelectionRange()}};this.onMouseTripleClick=function(b){this.editor.moveCursorToPosition(this.$getEventPosition(b));this.editor.selection.selectLine();this.$clickSelection=this.editor.getSelectionRange()};this.onMouseQuadClick=function(){this.editor.selectAll();this.$clickSelection=
this.editor.getSelectionRange()};this.onMouseWheel=function(b){var a=this.$scrollSpeed*2;this.editor.renderer.scrollBy(b.wheelX*a,b.wheelY*a);return j.preventDefault(b)}}).call(k.prototype);m.MouseHandler=k});
define("pilot/browser_focus","require,exports,module,pilot/oop,pilot/event,pilot/event_emitter".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/event"),e=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window;this.lastFocus=(new Date).getTime();this._isFocused=true;var b=this;c.addListener(a,"blur",function(){b._setFocused(false)});c.addListener(a,"focus",function(){b._setFocused(true)})};(function(){j.implement(this,e);this.isFocused=function(){return this._isFocused};this._setFocused=
function(a){if(this._isFocused!=a){if(a)this.lastFocus=(new Date).getTime();this._isFocused=a;this._emit("changeFocus")}}}).call(g.prototype);m.BrowserFocus=g});
define("ace/keyboard/keybinding","require,exports,module,pilot/useragent,pilot/keys,pilot/event,pilot/settings,pilot/canon,ace/commands/default_commands".split(","),function(a,m){a("pilot/useragent");var j=a("pilot/keys"),c=a("pilot/event");a("pilot/settings");var e=a("pilot/canon");a("ace/commands/default_commands");var g=function(a){this.$editor=a;this.$data={};this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){if(this.$keyboardHandler!=a){this.$data={};this.$keyboardHandler=
a}};this.getKeyboardHandler=function(){return this.$keyboardHandler};this.$callKeyboardHandler=function(a,b,f,g){var j={editor:this.$editor},m;this.$keyboardHandler&&(m=this.$keyboardHandler.handleKeyboard(this.$data,b,f,g,a));if(!m||!m.command)m=b!=0||g!=0?{command:e.findKeyCommand(j,"editor",b,f)}:{command:"inserttext",args:{text:f}};b=false;if(m)(b=e.exec(m.command,j,"editor",m.args))&&c.stopEvent(a);return b};this.onCommandKey=function(a,b,c,e){e||(e=j.keyCodeToString(c));return this.$callKeyboardHandler(a,
b,e,c)};this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(g.prototype);m.KeyBinding=g});
define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a){function m(a,e){return{win:a,mac:e,sender:"editor"}}var j=a("pilot/lang"),a=a("pilot/canon");a.addCommand({name:"null",exec:function(){}});a.addCommand({name:"selectall",bindKey:m("Ctrl-A","Command-A"),exec:function(a){a.editor.selectAll()}});a.addCommand({name:"removeline",bindKey:m("Ctrl-D","Command-D"),exec:function(a){a.editor.removeLines()}});a.addCommand({name:"gotoline",bindKey:m("Ctrl-L",
"Command-L"),exec:function(a){var e=parseInt(prompt("Enter line number:"));isNaN(e)||a.editor.gotoLine(e)}});a.addCommand({name:"togglecomment",bindKey:m("Ctrl-7","Command-7"),exec:function(a){a.editor.toggleCommentLines()}});a.addCommand({name:"findnext",bindKey:m("Ctrl-K","Command-G"),exec:function(a){a.editor.findNext()}});a.addCommand({name:"findprevious",bindKey:m("Ctrl-Shift-K","Command-Shift-G"),exec:function(a){a.editor.findPrevious()}});a.addCommand({name:"find",bindKey:m("Ctrl-F","Command-F"),
exec:function(a){var e=prompt("Find:");a.editor.find(e)}});a.addCommand({name:"replace",bindKey:m("Ctrl-R","Command-Option-F"),exec:function(a){var e=prompt("Find:");if(e){var g=prompt("Replacement:");g&&a.editor.replace(g,{needle:e})}}});a.addCommand({name:"replaceall",bindKey:m("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a){var e=prompt("Find:");if(e){var g=prompt("Replacement:");g&&a.editor.replaceAll(g,{needle:e})}}});a.addCommand({name:"undo",bindKey:m("Ctrl-Z","Command-Z"),exec:function(a){a.editor.undo()}});
a.addCommand({name:"redo",bindKey:m("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a){a.editor.redo()}});a.addCommand({name:"overwrite",bindKey:m("Insert","Insert"),exec:function(a){a.editor.toggleOverwrite()}});a.addCommand({name:"copylinesup",bindKey:m("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a){a.editor.copyLinesUp()}});a.addCommand({name:"movelinesup",bindKey:m("Alt-Up","Option-Up"),exec:function(a){a.editor.moveLinesUp()}});a.addCommand({name:"selecttostart",bindKey:m("Ctrl-Shift-Home|Alt-Shift-Up",
"Command-Shift-Up"),exec:function(a){a.editor.getSelection().selectFileStart()}});a.addCommand({name:"gotostart",bindKey:m("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a){a.editor.navigateFileStart()}});a.addCommand({name:"selectup",bindKey:m("Shift-Up","Shift-Up"),exec:function(a){a.editor.getSelection().selectUp()}});a.addCommand({name:"golineup",bindKey:m("Up","Up|Ctrl-P"),exec:function(a,e){a.editor.navigateUp(e.times)}});a.addCommand({name:"copylinesdown",bindKey:m("Ctrl-Alt-Down",
"Command-Option-Down"),exec:function(a){a.editor.copyLinesDown()}});a.addCommand({name:"movelinesdown",bindKey:m("Alt-Down","Option-Down"),exec:function(a){a.editor.moveLinesDown()}});a.addCommand({name:"selecttoend",bindKey:m("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a){a.editor.getSelection().selectFileEnd()}});a.addCommand({name:"gotoend",bindKey:m("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a){a.editor.navigateFileEnd()}});a.addCommand({name:"selectdown",
bindKey:m("Shift-Down","Shift-Down"),exec:function(a){a.editor.getSelection().selectDown()}});a.addCommand({name:"golinedown",bindKey:m("Down","Down|Ctrl-N"),exec:function(a,e){a.editor.navigateDown(e.times)}});a.addCommand({name:"selectwordleft",bindKey:m("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a){a.editor.getSelection().selectWordLeft()}});a.addCommand({name:"gotowordleft",bindKey:m("Ctrl-Left","Option-Left"),exec:function(a){a.editor.navigateWordLeft()}});a.addCommand({name:"selecttolinestart",
bindKey:m("Alt-Shift-Left","Command-Shift-Left"),exec:function(a){a.editor.getSelection().selectLineStart()}});a.addCommand({name:"gotolinestart",bindKey:m("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a){a.editor.navigateLineStart()}});a.addCommand({name:"selectleft",bindKey:m("Shift-Left","Shift-Left"),exec:function(a){a.editor.getSelection().selectLeft()}});a.addCommand({name:"gotoleft",bindKey:m("Left","Left|Ctrl-B"),exec:function(a,e){a.editor.navigateLeft(e.times)}});a.addCommand({name:"selectwordright",
bindKey:m("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a){a.editor.getSelection().selectWordRight()}});a.addCommand({name:"gotowordright",bindKey:m("Ctrl-Right","Option-Right"),exec:function(a){a.editor.navigateWordRight()}});a.addCommand({name:"selecttolineend",bindKey:m("Alt-Shift-Right","Command-Shift-Right"),exec:function(a){a.editor.getSelection().selectLineEnd()}});a.addCommand({name:"gotolineend",bindKey:m("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a){a.editor.navigateLineEnd()}});
a.addCommand({name:"selectright",bindKey:m("Shift-Right","Shift-Right"),exec:function(a){a.editor.getSelection().selectRight()}});a.addCommand({name:"gotoright",bindKey:m("Right","Right|Ctrl-F"),exec:function(a,e){a.editor.navigateRight(e.times)}});a.addCommand({name:"selectpagedown",bindKey:m("Shift-PageDown","Shift-PageDown"),exec:function(a){a.editor.selectPageDown()}});a.addCommand({name:"pagedown",bindKey:m(null,"PageDown"),exec:function(a){a.editor.scrollPageDown()}});a.addCommand({name:"gotopagedown",
bindKey:m("PageDown","Option-PageDown|Ctrl-V"),exec:function(a){a.editor.gotoPageDown()}});a.addCommand({name:"selectpageup",bindKey:m("Shift-PageUp","Shift-PageUp"),exec:function(a){a.editor.selectPageUp()}});a.addCommand({name:"pageup",bindKey:m(null,"PageUp"),exec:function(a){a.editor.scrollPageUp()}});a.addCommand({name:"gotopageup",bindKey:m("PageUp","Option-PageUp"),exec:function(a){a.editor.gotoPageUp()}});a.addCommand({name:"selectlinestart",bindKey:m("Shift-Home","Shift-Home"),exec:function(a){a.editor.getSelection().selectLineStart()}});
a.addCommand({name:"selectlineend",bindKey:m("Shift-End","Shift-End"),exec:function(a){a.editor.getSelection().selectLineEnd()}});a.addCommand({name:"del",bindKey:m("Delete","Delete|Ctrl-D"),exec:function(a){a.editor.removeRight()}});a.addCommand({name:"backspace",bindKey:m("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a){a.editor.removeLeft()}});a.addCommand({name:"removetolinestart",
bindKey:m(null,"Option-Backspace"),exec:function(a){a.editor.removeToLineStart()}});a.addCommand({name:"removetolineend",bindKey:m(null,"Ctrl-K"),exec:function(a){a.editor.removeToLineEnd()}});a.addCommand({name:"removewordleft",bindKey:m("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a){a.editor.removeWordLeft()}});a.addCommand({name:"removewordright",bindKey:m(null,"Alt-Delete"),exec:function(a){a.editor.removeWordRight()}});a.addCommand({name:"outdent",bindKey:m("Shift-Tab",
"Shift-Tab"),exec:function(a){a.editor.blockOutdent()}});a.addCommand({name:"indent",bindKey:m("Tab","Tab"),exec:function(a){a.editor.indent()}});a.addCommand({name:"inserttext",exec:function(a,e){a.editor.insert(j.stringRepeat(e.text||"",e.times||1))}});a.addCommand({name:"centerselection",bindKey:m(null,"Ctrl-L"),exec:function(a){a.editor.centerSelection()}});a.addCommand({name:"splitline",bindKey:m(null,"Ctrl-O"),exec:function(a){a.editor.splitLine()}});a.addCommand({name:"transposeletters",bindKey:m("Ctrl-T",
"Ctrl-T"),exec:function(a){a.editor.transposeLetters()}})});
define("ace/edit_session","require,exports,module,pilot/oop,pilot/lang,pilot/event_emitter,ace/selection,ace/mode/text,ace/range,ace/document,ace/background_tokenizer,ace/edit_session/folding".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/lang"),e=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,k=a("ace/mode/text").Mode,b=a("ace/range").Range,f=a("ace/document").Document,n=a("ace/background_tokenizer").BackgroundTokenizer,v=function(b,a){this.$modified=true;this.$breakpoints=
[];this.$frontMarkers={};this.$backMarkers={};this.$markerId=1;this.$rowCache=[];this.$wrapData=[];this.$foldData=[];this.$foldData.toString=function(){var b="";this.forEach(function(a){b=b+("\n"+a.toString())});return b};b instanceof f?this.setDocument(b):this.setDocument(new f(b));this.selection=new g(this);a?this.setMode(a):this.setMode(new k)};(function(){function f(b){return b<4352?false:b>=4352&&b<=4447||b>=4515&&b<=4519||b>=4602&&b<=4607||b>=9001&&b<=9002||b>=11904&&b<=11929||b>=11931&&b<=
12019||b>=12032&&b<=12245||b>=12272&&b<=12283||b>=12288&&b<=12350||b>=12353&&b<=12438||b>=12441&&b<=12543||b>=12549&&b<=12589||b>=12593&&b<=12686||b>=12688&&b<=12730||b>=12736&&b<=12771||b>=12784&&b<=12830||b>=12832&&b<=12871||b>=12880&&b<=13054||b>=13056&&b<=19903||b>=19968&&b<=42124||b>=42128&&b<=42182||b>=43360&&b<=43388||b>=44032&&b<=55203||b>=55216&&b<=55238||b>=55243&&b<=55291||b>=63744&&b<=64255||b>=65040&&b<=65049||b>=65072&&b<=65106||b>=65108&&b<=65126||b>=65128&&b<=65131||b>=65281&&b<=65376||
b>=65504&&b<=65510}j.implement(this,e);this.setDocument=function(b){if(this.doc)throw Error("Document is already set");this.doc=b;b.on("change",this.onChange.bind(this));this.on("changeFold",this.onChangeFold.bind(this))};this.getDocument=function(){return this.doc};this.$resetRowCache=function(b){if(b==0)this.$rowCache=[];else for(var a=this.$rowCache,c=0;c<a.length;c++)if(a[c].docRow>=b){a.splice(c,a.length);break}};this.onChangeFold=function(b){this.$resetRowCache(b.data.start.row)};this.onChange=
function(b){var a=b.data;this.$modified=true;this.$resetRowCache(a.range.start.row);var c=this.$updateInternalDataOnChange(b);if(!this.$fromUndo&&this.$undoManager&&!a.ignore){this.$deltasDoc.push(a);c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c});this.$informUndoManager.schedule()}this.bgTokenizer.start(a.range.start.row);this._dispatchEvent("change",b)};this.setValue=function(b){this.doc.setValue(b);this.selection.moveCursorTo(0,0);this.selection.clearSelection();this.$resetRowCache(0);
this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.getUndoManager().reset()};this.getValue=this.toString=function(){return this.doc.getValue()};this.getSelection=function(){return this.selection};this.getState=function(b){return this.bgTokenizer.getState(b)};this.getTokens=function(b,a){return this.bgTokenizer.getTokens(b,a)};this.setUndoManager=function(b){this.$undoManager=b;this.$resetRowCache(0);this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.$informUndoManager&&this.$informUndoManager.cancel();
if(b){var a=this;this.$syncInformUndoManager=function(){a.$informUndoManager.cancel();if(a.$deltasFold.length){a.$deltas.push({group:"fold",deltas:a.$deltasFold});a.$deltasFold=[]}if(a.$deltasDoc.length){a.$deltas.push({group:"doc",deltas:a.$deltasDoc});a.$deltasDoc=[]}a.$deltas.length>0&&b.execute({action:"aceupdate",args:[a.$deltas,a]});a.$deltas=[]};this.$informUndoManager=c.deferredCall(this.$syncInformUndoManager)}};this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}};
this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager};this.getTabString=function(){return this.getUseSoftTabs()?c.stringRepeat(" ",this.getTabSize()):"\t"};this.$useSoftTabs=true;this.setUseSoftTabs=function(b){if(this.$useSoftTabs!==b)this.$useSoftTabs=b};this.getUseSoftTabs=function(){return this.$useSoftTabs};this.$tabSize=4;this.setTabSize=function(b){if(!(isNaN(b)||this.$tabSize===b)){this.$modified=true;this.$tabSize=b;this._dispatchEvent("changeTabSize")}};this.getTabSize=
function(){return this.$tabSize};this.isTabStop=function(b){return this.$useSoftTabs&&b.column%this.$tabSize==0};this.$overwrite=false;this.setOverwrite=function(b){if(this.$overwrite!=b){this.$overwrite=b;this._dispatchEvent("changeOverwrite")}};this.getOverwrite=function(){return this.$overwrite};this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)};this.getBreakpoints=function(){return this.$breakpoints};this.setBreakpoints=function(b){this.$breakpoints=[];for(var a=0;a<b.length;a++)this.$breakpoints[b[a]]=
true;this._dispatchEvent("changeBreakpoint",{})};this.clearBreakpoints=function(){this.$breakpoints=[];this._dispatchEvent("changeBreakpoint",{})};this.setBreakpoint=function(b){this.$breakpoints[b]=true;this._dispatchEvent("changeBreakpoint",{})};this.clearBreakpoint=function(b){delete this.$breakpoints[b];this._dispatchEvent("changeBreakpoint",{})};this.getBreakpoints=function(){return this.$breakpoints};this.addMarker=function(b,a,c,f){var e=this.$markerId++,b={range:b,type:c||"line",renderer:typeof c==
"function"?c:null,clazz:a,inFront:!!f};if(f){this.$frontMarkers[e]=b;this._dispatchEvent("changeFrontMarker")}else{this.$backMarkers[e]=b;this._dispatchEvent("changeBackMarker")}return e};this.removeMarker=function(b){var a=this.$frontMarkers[b]||this.$backMarkers[b];if(a){var c=a.inFront?this.$frontMarkers:this.$backMarkers;if(a){delete c[b];this._dispatchEvent(a.inFront?"changeFrontMarker":"changeBackMarker")}}};this.getMarkers=function(b){return b?this.$frontMarkers:this.$backMarkers};this.setAnnotations=
function(b){this.$annotations={};for(var a=0;a<b.length;a++){var c=b[a],f=c.row;this.$annotations[f]?this.$annotations[f].push(c):this.$annotations[f]=[c]}this._dispatchEvent("changeAnnotation",{})};this.getAnnotations=function(){return this.$annotations};this.clearAnnotations=function(){this.$annotations={};this._dispatchEvent("changeAnnotation",{})};this.$detectNewLine=function(b){this.$autoNewLine=(b=b.match(/^.*?(\r?\n)/m))?b[1]:"\n"};this.getWordRange=function(a,c){var f=this.getLine(a),e=false;
c>0&&(e=!!f.charAt(c-1).match(this.tokenRe));e||(e=!!f.charAt(c).match(this.tokenRe));var e=e?this.tokenRe:this.nonTokenRe,g=c;if(g>0){do g--;while(g>=0&&f.charAt(g).match(e));g++}for(var k=c;k<f.length&&f.charAt(k).match(e);)k++;return new b(a,g,a,k)};this.setNewLineMode=function(b){this.doc.setNewLineMode(b)};this.getNewLineMode=function(){return this.doc.getNewLineMode()};this.$useWorker=true;this.setUseWorker=function(b){if(this.$useWorker!=b){this.$useWorker=b;this.$stopWorker();b&&this.$startWorker()}};
this.getUseWorker=function(){return this.$useWorker};this.onReloadTokenizer=function(b){this.bgTokenizer.start(b.data.first);this._dispatchEvent("tokenizerUpdate",b)};this.$mode=null;this.setMode=function(b){if(this.$mode!==b){this.$mode=b;this.$stopWorker();this.$useWorker&&this.$startWorker();var a=b.getTokenizer();if(a.addEventListener!==void 0){var c=this.onReloadTokenizer.bind(this);a.addEventListener("update",c)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(a);else{this.bgTokenizer=new n(a);
var f=this;this.bgTokenizer.addEventListener("update",function(b){f._dispatchEvent("tokenizerUpdate",b)})}this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);this.tokenRe=b.tokenRe;this.nonTokenRe=b.nonTokenRe;this._dispatchEvent("changeMode")}};this.$stopWorker=function(){this.$worker&&this.$worker.terminate();this.$worker=null};this.$startWorker=function(){if(typeof Worker!=="undefined"&&!a.noWorker)try{this.$worker=this.$mode.createWorker(this)}catch(b){console.log("Could not load worker");
console.log(b);this.$worker=null}else this.$worker=null};this.getMode=function(){return this.$mode};this.$scrollTop=0;this.setScrollTopRow=function(b){if(this.$scrollTop!==b){this.$scrollTop=b;this._dispatchEvent("changeScrollTop")}};this.getScrollTopRow=function(){return this.$scrollTop};this.getWidth=function(){this.$computeWidth();return this.width};this.getScreenWidth=function(){this.$computeWidth();return this.screenWidth};this.$computeWidth=function(b){if(this.$modified||b){this.$modified=false;
for(var b=this.doc.getAllLines(),a=0,c=0,f=0;f<b.length;f++){var e=this.getFoldLine(f),g;g=b[f];if(e){f=e.range.end;g=this.getFoldDisplayLine(e);f=f.row}a=Math.max(a,g.length);this.$useWrapMode||(c=Math.max(c,this.$getStringScreenWidth(g)[0]))}this.width=a;this.screenWidth=this.$useWrapMode?this.$wrapLimit:c}};this.getLine=function(b){return this.doc.getLine(b)};this.getLines=function(b,a){return this.doc.getLines(b,a)};this.getLength=function(){return this.doc.getLength()};this.getTextRange=function(b){return this.doc.getTextRange(b)};
this.findMatchingBracket=function(b){if(b.column==0)return null;var a=this.getLine(b.row).charAt(b.column-1);if(a=="")return null;a=a.match(/([\(\[\{])|([\)\]\}])/);return!a?null:a[1]?this.$findClosingBracket(a[1],b):this.$findOpeningBracket(a[2],b)};this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"};this.$findOpeningBracket=function(b,a){for(var c=this.$brackets[b],f=a.column-2,e=a.row,g=1,k=this.getLine(e);;){for(;f>=0;){var n=k.charAt(f);if(n==c){g=g-1;if(g==0)return{row:e,column:f}}else n==
b&&(g=g+1);f=f-1}e=e-1;if(e<0)break;k=this.getLine(e);f=k.length-1}return null};this.$findClosingBracket=function(b,a){for(var c=this.$brackets[b],f=a.column,e=a.row,g=1,k=this.getLine(e),n=this.getLength();;){for(;f<k.length;){var m=k.charAt(f);if(m==c){g=g-1;if(g==0)return{row:e,column:f}}else m==b&&(g=g+1);f=f+1}e=e+1;if(e>=n)break;k=this.getLine(e);f=0}return null};this.insert=function(b,a){return this.doc.insert(b,a)};this.remove=function(b){return this.doc.remove(b)};this.undoChanges=function(b,
a){if(b.length){this.$fromUndo=true;for(var c=null,f=b.length-1;f!=-1;f--){delta=b[f];if(delta.group=="doc"){this.doc.revertDeltas(delta.deltas);c=this.$getUndoSelection(delta.deltas,true,c)}else delta.deltas.forEach(function(b){this.addFolds(b.folds)},this)}this.$fromUndo=false;c&&!a&&this.selection.setSelectionRange(c);return c}};this.redoChanges=function(b,a){if(b.length){this.$fromUndo=true;for(var c=null,f=0;f<b.length;f++){delta=b[f];if(delta.group=="doc"){this.doc.applyDeltas(delta.deltas);
c=this.$getUndoSelection(delta.deltas,false,c)}}this.$fromUndo=false;c&&!a&&this.selection.setSelectionRange(c);return c}};this.$getUndoSelection=function(a,c,f){function e(b){b=b.action=="insertText"||b.action=="insertLines";return c?!b:b}var g=a[0],k,n;k=e(g)?g.range.clone():b.fromPoints(g.range.start,g.range.start);for(var m=1;m<a.length;m++){g=a[m];if(e(g)){n=g.range.start;k.compare(n.row,n.column)==-1&&k.setStart(g.range.start);n=g.range.end;k.compare(n.row,n.column)==1&&k.setEnd(g.range.end)}else{n=
g.range.start;k.compare(n.row,n.column)==-1&&(k=b.fromPoints(g.range.start,g.range.start))}}if(f!=null){a=f.compareRange(k);a==1?k.setStart(f.start):a==-1&&k.setEnd(f.end)}return k};this.replace=function(b,a){return this.doc.replace(b,a)};this.moveText=function(a,c){var f=this.getTextRange(a);this.remove(a);var e=c.row,g=c.column;!a.isMultiLine()&&a.start.row==e&&a.end.column<g&&(g=g-f.length);if(a.isMultiLine()&&a.end.row<e)var k=this.doc.$split(f),e=e-(k.length-1);var k=e+a.end.row-a.start.row,
n=a.isMultiLine()?a.end.column:g+a.end.column-a.start.column,e=new b(e,g,k,n);this.insert(e.start,f);return e};this.indentRows=function(b,a,c){for(c=c.replace(/\t/g,this.getTabString());b<=a;b++)this.insert({row:b,column:0},c)};this.outdentRows=function(a){for(var a=a.collapseRows(),c=new b(0,0,0,0),f=this.getTabSize(),e=a.start.row;e<=a.end.row;++e){var g=this.getLine(e);c.start.row=e;c.end.row=e;for(var k=0;k<f;++k)if(g.charAt(k)!=" ")break;if(k<f&&g.charAt(k)=="\t"){c.start.column=k;c.end.column=
k+1}else{c.start.column=0;c.end.column=k}this.remove(c)}};this.moveLinesUp=function(b,a){if(b<=0)return 0;var c=this.doc.removeLines(b,a);this.doc.insertLines(b-1,c);return-1};this.moveLinesDown=function(b,a){if(a>=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(b,a);this.doc.insertLines(b+1,c);return 1};this.duplicateLines=function(b,a){var b=this.$clipRowToDocument(b),a=this.$clipRowToDocument(a),c=this.getLines(b,a);this.doc.insertLines(b,c);return a-b+1};this.$clipRowToDocument=function(b){return Math.max(0,
Math.min(b,this.doc.getLength()-1))};this.$clipPositionToDocument=function(b,a){a=Math.max(0,a);if(b<0)a=b=0;else{var c=this.doc.getLength();if(b>=c){b=c-1;a=this.doc.getLine(c-1).length}else a=Math.min(this.doc.getLine(b).length,a)}return{row:b,column:a}};this.$wrapLimit=80;this.$useWrapMode=false;this.$wrapLimitRange={min:null,max:null};this.setUseWrapMode=function(b){if(b!=this.$useWrapMode){this.$useWrapMode=b;this.$modified=true;this.$resetRowCache(0);if(b){b=this.getLength();this.$wrapData=
[];for(i=0;i<b;i++)this.$wrapData.push([]);this.$updateWrapData(0,b-1)}this._dispatchEvent("changeWrapMode")}};this.getUseWrapMode=function(){return this.$useWrapMode};this.setWrapLimitRange=function(b,a){if(this.$wrapLimitRange.min!==b||this.$wrapLimitRange.max!==a){this.$wrapLimitRange.min=b;this.$wrapLimitRange.max=a;this.$modified=true;this._dispatchEvent("changeWrapMode")}};this.adjustWrapLimit=function(b){b=this.$constrainWrapLimit(b);if(b!=this.$wrapLimit&&b>0){this.$wrapLimit=b;this.$modified=
true;if(this.$useWrapMode){this.$updateWrapData(0,this.getLength()-1);this.$resetRowCache(0);this._dispatchEvent("changeWrapLimit")}return true}return false};this.$constrainWrapLimit=function(b){var a=this.$wrapLimitRange.min;a&&(b=Math.max(a,b));(a=this.$wrapLimitRange.max)&&(b=Math.min(a,b));return Math.max(1,b)};this.getWrapLimit=function(){return this.$wrapLimit};this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}};this.$updateInternalDataOnChange=
function(b){var a=this.$useWrapMode,c,f=b.data.action,e=b.data.range.start.row,g=b.data.range.end.row,k=b.data.range.start,n=b.data.range.end,m=null;if(f.indexOf("Lines")!=-1){g=f=="insertLines"?e+b.data.lines.length:e;c=b.data.lines.length}else c=g-e;if(c!=0)if(f.indexOf("remove")!=-1){a&&this.$wrapData.splice(e,c);f=this.$foldData;m=this.getFoldsInRange(b.data.range);this.removeFolds(m);var b=this.getFoldLine(n.row),j=0;if(b){b.addRemoveChars(n.row,n.column,k.column-n.column);b.shiftRow(-c);if((g=
this.getFoldLine(e))&&g!==b){g.merge(b);b=g}j=f.indexOf(b)+1}for(j;j<f.length;j++){b=f[j];b.start.row>=n.row&&b.shiftRow(-c)}g=e}else{if(a){f=[e,0];for(b=0;b<c;b++)f.push([]);this.$wrapData.splice.apply(this.$wrapData,f)}f=this.$foldData;b=this.getFoldLine(e);j=0;if(b){j=b.range.compareInside(k.row,k.column);if(j==0){b=b.split(k.row,k.column);b.shiftRow(c);b.addRemoveChars(g,0,n.column-k.column)}else if(j==-1){b.addRemoveChars(e,0,n.column-k.column);b.shiftRow(c)}j=f.indexOf(b)+1}for(j;j<f.length;j++){b=
f[j];b.start.row>=e&&b.shiftRow(c)}}else{c=Math.abs(b.data.range.start.column-b.data.range.end.column);if(f.indexOf("remove")!=-1){m=this.getFoldsInRange(b.data.range);this.removeFolds(m);c=-c}(b=this.getFoldLine(e))&&b.addRemoveChars(e,k.column,c)}a&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!");a&&this.$updateWrapData(e,g);return m};this.$updateWrapData=function(b,a){for(var f=this.doc.getAllLines(),e=this.getTabSize(),n=
this.$wrapData,j=this.$wrapLimit,v,u,C=b,a=Math.min(a,f.length-1);C<=a;){if(u=this.getFoldLine(C)){v=[];for(u.walk(function(b,a,c,e){if(b){b=this.$getDisplayTokens(b,v.length);b[0]=g;for(a=1;a<b.length;a++)b[a]=k}else b=this.$getDisplayTokens(f[a].substring(e,c),v.length);v=v.concat(b)}.bind(this),u.end.row,f[u.end.row].length+1);v.length!=0&&v[v.length-1]>=m;)v.pop()}else v=this.$getDisplayTokens(c.stringTrimRight(f[C]));n[C]=this.$computeWrapSplits(v,j,e);C=this.getRowFoldEnd(C)+1}};var g=3,k=4,
m=10;this.$computeWrapSplits=function(b,a){function c(a){var e=b.slice(n,a),g=e.length;e.join("").replace(/12/g,function(){g=g-1}).replace(/2/g,function(){g=g-1});j=j+g;f.push(j);n=a}if(b.length==0)return[];this.getTabSize();for(var f=[],e=b.length,n=0,j=0;e-n>a;){var v=n+a;if(b[v]>=m){for(;b[v]>=m;)v++;c(v)}else if(b[v]==g||b[v]==k){for(v;v!=n-1;v--)if(b[v]==g)break;if(!(v>n)){v=n+a;for(v;v<b.length;v++)if(b[v]!=k)break;if(v==b.length)break}c(v)}else{for(v;v!=n-1;v--)if(b[v]>=g){v++;break}if(v>n)c(v);
else{v=n+a;c(n+a)}}}return f};this.$getDisplayTokens=function(b,a){for(var c=[],e,a=a||0,g=0;g<b.length;g++){e=b.charCodeAt(g);if(e==9){e=this.getScreenTabSize(c.length+a);c.push(11);for(var k=1;k<e;k++)c.push(12)}else e==32?c.push(m):f(e)?c.push(1,2):c.push(1)}return c};this.$getStringScreenWidth=function(b,a,c){if(a==0)return[0,0];a==null&&(a=c+b.length*Math.max(this.getTabSize(),2));var c=c||0,e,g;for(g=0;g<b.length;g++){e=b.charCodeAt(g);c=e==9?c+this.getScreenTabSize(c):f(e)?c+2:c+1;if(c>a)break}return[c,
g]};this.getRowLength=function(b){return!this.$useWrapMode||!this.$wrapData[b]?1:this.$wrapData[b].length+1};this.getRowHeight=function(b,a){return this.getRowLength(a)*b.lineHeight};this.getScreenLastRowColumn=function(b){return this.documentToScreenColumn(b,this.doc.getLine(b).length)};this.getDocumentLastRowColumn=function(b,a){return this.getScreenLastRowColumn(this.documentToScreenRow(b,a))};this.getDocumentLastRowColumnPosition=function(b,a){return this.screenToDocumentPosition(this.documentToScreenRow(b,
a),Number.MAX_VALUE/10)};this.getRowSplitData=function(b){if(this.$useWrapMode)return this.$wrapData[b]};this.getScreenTabSize=function(b){return this.$tabSize-b%this.$tabSize};this.screenToDocumentRow=function(b,a){return this.screenToDocumentPosition(b,a).row};this.screenToDocumentColumn=function(b,a){return this.screenToDocumentPosition(b,a).column};this.screenToDocumentPosition=function(b,a){if(b<0)return{row:0,column:0};var c,f=0,e=0,g,k=0,n=0;c=this.$rowCache;for(var j=0;j<c.length;j++)if(c[j].screenRow<
b){k=c[j].screenRow;f=c[j].docRow}else break;for(var m=!c.length||j==c.length,v=this.getLength()-1,y=(j=this.getNextFold(f))?j.start.row:Infinity;k<=b;){n=this.getRowLength(f);if(k+n-1>=b||f>=v)break;else{k=k+n;f++;if(f>y){f=j.end.row+1;y=(j=this.getNextFold(f))?j.start.row:Infinity}}m&&c.push({docRow:f,screenRow:k})}if(j&&j.start.row<=f)c=this.getFoldDisplayLine(j);else{c=this.getLine(f);j=null}n=[];if(this.$useWrapMode)if(n=this.$wrapData[f]){g=n[b-k];if(b>k&&n.length){e=n[b-k-1]||n[n.length-1];
c=c.substring(e)}}e=e+this.$getStringScreenWidth(c,a)[1];if(k+n.length<b)e=Number.MAX_VALUE;this.$useWrapMode?e>=g&&(e=g-1):e=Math.min(e,c.length);return j?j.idxToPosition(e):{row:f,column:e}};this.documentToScreenPosition=function(b,a){var c=typeof a==="undefined"?this.$clipPositionToDocument(b.row,b.column):this.$clipPositionToDocument(b,a),b=c.row,a=c.column,f;if(this.$useWrapMode){f=this.$wrapData;if(b>f.length-1)return{row:this.getScreenLength(),column:f.length==0?0:f[f.length-1].length-1}}var c=
0,e=null,e=null;if(e=this.getFoldAt(b,a,1)){b=e.start.row;a=e.start.column}for(var g,e=0,k=this.$rowCache,n=0;n<k.length;n++)if(k[n].docRow<b){c=k[n].screenRow;e=k[n].docRow}else break;for(var j=!k.length||n==k.length,m=(n=this.getNextFold(e))?n.start.row:Infinity;e<b;){if(e>=m){g=n.end.row+1;if(g>b)break;m=(n=this.getNextFold(g))?n.start.row:Infinity}else g=e+1;c=c+this.getRowLength(e);e=g;j&&k.push({docRow:e,screenRow:c})}k="";if(n&&e>=m){k=this.getFoldDisplayLine(n,b,a);e=n.start.row}else{k=this.getLine(b).substring(0,
a);e=b}if(this.$useWrapMode){f=f[e];for(e=0;k.length>=f[e];){c++;e++}k=k.substring(f[e-1]||0,k.length)}return{row:c,column:this.$getStringScreenWidth(k)[0]}};this.documentToScreenColumn=function(b,a){return this.documentToScreenPosition(b,a).column};this.documentToScreenRow=function(b,a){return this.documentToScreenPosition(b,a).row};this.getScreenLength=function(){var b=0,a=null;if(this.$useWrapMode)for(var c=0;c<this.$wrapData.length;c++)if(a=this.getFoldLine(c,null)){c=a.end.row;b=b+1}else b=b+
(this.$wrapData[c].length+1);else for(var b=this.getLength(),c=this.$foldData,f=0;f<c.length;f++){a=c[f];b=b-(a.end.row-a.start.row)}return b}}).call(v.prototype);a("ace/edit_session/folding").Folding.call(v.prototype);m.EditSession=v});
define("ace/selection","require,exports,module,pilot/oop,pilot/lang,pilot/event_emitter,ace/range".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/lang"),e=a("pilot/event_emitter").EventEmitter,g=a("ace/range").Range,k=function(b){this.session=b;this.doc=b.getDocument();this.clearSelection();this.selectionLead=this.doc.createAnchor(0,0);this.selectionAnchor=this.doc.createAnchor(0,0);var a=this;this.selectionLead.on("change",function(b){a._dispatchEvent("changeCursor");a.$isEmpty||a._dispatchEvent("changeSelection");
!a.$preventUpdateDesiredColumnOnChange&&b.old.column!=b.value.column&&a.$updateDesiredColumn()});this.selectionAnchor.on("change",function(){a.$isEmpty||a._dispatchEvent("changeSelection")})};(function(){j.implement(this,e);this.isEmpty=function(){return this.$isEmpty||this.selectionAnchor.row==this.selectionLead.row&&this.selectionAnchor.column==this.selectionLead.column};this.isMultiLine=function(){return this.isEmpty()?false:this.getRange().isMultiLine()};this.getCursor=function(){return this.selectionLead.getPosition()};
this.setSelectionAnchor=function(b,a){this.selectionAnchor.setPosition(b,a);if(this.$isEmpty){this.$isEmpty=false;this._dispatchEvent("changeSelection")}};this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.selectionAnchor.getPosition()};this.getSelectionLead=function(){return this.selectionLead.getPosition()};this.shiftSelection=function(b){if(this.$isEmpty)this.moveCursorTo(this.selectionLead.row,this.selectionLead.column+b);else{var a=this.getSelectionAnchor(),
c=this.getSelectionLead(),e=this.isBackwards();(!e||a.column!==0)&&this.setSelectionAnchor(a.row,a.column+b);(e||c.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(c.row,c.column+b)})}};this.isBackwards=function(){var b=this.selectionAnchor,a=this.selectionLead;return b.row>a.row||b.row==a.row&&b.column>a.column};this.getRange=function(){var b=this.selectionAnchor,a=this.selectionLead;return this.isEmpty()?g.fromPoints(a,a):this.isBackwards()?g.fromPoints(a,b):g.fromPoints(b,a)};this.clearSelection=
function(){if(!this.$isEmpty){this.$isEmpty=true;this._dispatchEvent("changeSelection")}};this.selectAll=function(){var b=this.doc.getLength()-1;this.setSelectionAnchor(b,this.doc.getLine(b).length);this.moveCursorTo(0,0)};this.setSelectionRange=function(b,a){if(a){this.setSelectionAnchor(b.end.row,b.end.column);this.selectTo(b.start.row,b.start.column)}else{this.setSelectionAnchor(b.start.row,b.start.column);this.selectTo(b.end.row,b.end.column)}this.$updateDesiredColumn()};this.$updateDesiredColumn=
function(){var b=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(b.row,b.column)};this.$moveSelection=function(b){var a=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(a.row,a.column);b.call(this)};this.selectTo=function(b,a){this.$moveSelection(function(){this.moveCursorTo(b,a)})};this.selectToPosition=function(b){this.$moveSelection(function(){this.moveCursorToPosition(b)})};this.selectUp=function(){this.$moveSelection(this.moveCursorUp)};this.selectDown=function(){this.$moveSelection(this.moveCursorDown)};
this.selectRight=function(){this.$moveSelection(this.moveCursorRight)};this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)};this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)};this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)};this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)};this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)};this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)};
this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)};this.selectWord=function(){var b=this.getCursor();this.setSelectionRange(this.session.getWordRange(b.row,b.column))};this.selectLine=function(){var b=this.selectionLead.row,a,c=this.session.getFoldLine(b);if(c){b=c.start.row;a=c.end.row}else a=b;this.setSelectionAnchor(b,0);this.$moveSelection(function(){this.moveCursorTo(a+1,0)})};this.moveCursorUp=function(){this.moveCursorBy(-1,0)};this.moveCursorDown=function(){this.moveCursorBy(1,
0)};this.moveCursorLeft=function(){var b=this.selectionLead.getPosition(),a;if(a=this.session.getFoldAt(b.row,b.column,-1))this.moveCursorTo(a.start.row,a.start.column);else if(b.column==0)b.row>0&&this.moveCursorTo(b.row-1,this.doc.getLine(b.row-1).length);else{a=this.session.getTabSize();this.session.isTabStop(b)&&this.doc.getLine(b.row).slice(b.column-a,b.column).split(" ").length-1==a?this.moveCursorBy(0,-a):this.moveCursorBy(0,-1)}};this.moveCursorRight=function(){var b=this.selectionLead.getPosition();
if(b=this.session.getFoldAt(b.row,b.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row<this.doc.getLength()-1&&this.moveCursorTo(this.selectionLead.row+1,0);else{var a=this.session.getTabSize(),b=this.selectionLead;this.session.isTabStop(b)&&this.doc.getLine(b.row).slice(b.column,b.column+a).split(" ").length-1==a?this.moveCursorBy(0,a):this.moveCursorBy(0,1)}};this.moveCursorLineStart=function(){var b=
this.selectionLead.row,a=this.selectionLead.column,c=this.session.screenToDocumentPosition(this.session.documentToScreenRow(b,a),0),b=this.session.getDisplayLine(b,null,c.row,c.column).match(/^\s*/);b[0].length==a?this.moveCursorTo(c.row,c.column):this.moveCursorTo(c.row,c.column+b[0].length)};this.moveCursorLineEnd=function(){var b=this.selectionLead,b=this.session.getDocumentLastRowColumnPosition(b.row,b.column);this.moveCursorTo(b.row,b.column)};this.moveCursorFileEnd=function(){var b=this.doc.getLength()-
1,a=this.doc.getLine(b).length;this.moveCursorTo(b,a)};this.moveCursorFileStart=function(){this.moveCursorTo(0,0)};this.moveCursorWordRight=function(){var b=this.selectionLead.row,a=this.selectionLead.column,c=this.doc.getLine(b),e=c.substring(a);this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;var g;if(g=this.session.getFoldAt(b,a,1))this.moveCursorTo(g.end.row,g.end.column);else if(a==c.length)this.moveCursorRight();else{if(this.session.nonTokenRe.exec(e)){a=a+this.session.nonTokenRe.lastIndex;
this.session.nonTokenRe.lastIndex=0}else if(this.session.tokenRe.exec(e)){a=a+this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0}this.moveCursorTo(b,a)}};this.moveCursorWordLeft=function(){var b=this.selectionLead.row,a=this.selectionLead.column,e;if(e=this.session.getFoldAt(b,a,-1))this.moveCursorTo(e.start.row,e.start.column);else if(a==0)this.moveCursorLeft();else{e=this.session.getFoldStringAt(b,a,-1);e==null&&(e=this.doc.getLine(b).substring(0,a));e=c.stringReverse(e);this.session.nonTokenRe.lastIndex=
0;this.session.tokenRe.lastIndex=0;if(this.session.nonTokenRe.exec(e)){a=a-this.session.nonTokenRe.lastIndex;this.session.nonTokenRe.lastIndex=0}else if(this.session.tokenRe.exec(e)){a=a-this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0}this.moveCursorTo(b,a)}};this.moveCursorBy=function(b,a){var c=this.session.documentToScreenPosition(this.selectionLead.row,this.selectionLead.column),c=this.session.screenToDocumentPosition(c.row+b,a==0&&this.$desiredColumn||c.column);this.moveCursorTo(c.row,
c.column+a,a==0)};this.moveCursorToPosition=function(b){this.moveCursorTo(b.row,b.column)};this.moveCursorTo=function(b,a,c){var e=this.session.getFoldAt(b,a,1);if(e){b=e.start.row;a=e.start.column}this.$preventUpdateDesiredColumnOnChange=true;this.selectionLead.setPosition(b,a);this.$preventUpdateDesiredColumnOnChange=false;c||this.$updateDesiredColumn(this.selectionLead.column)};this.moveCursorToScreen=function(b,a,c){a=this.session.screenToDocumentPosition(b,a);b=a.row;a=a.column;this.moveCursorTo(b,
a,c)}}).call(k.prototype);m.Selection=k});
define("ace/range",["require","exports","module"],function(a,m){var j=function(a,e,g,k){this.start={row:a,column:e};this.end={row:g,column:k}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"};this.contains=function(a,e){return 0==this.compare(a,e)};this.compareRange=function(a){var e;e=a.end;a=a.start;e=this.compare(e.row,e.column);if(1==e)return e=this.compare(a.row,a.column),1==e?2:0==e?1:0;if(-1==e)return-2;
e=this.compare(a.row,a.column);return-1==e?-1:1==e?42:0};this.containsRange=function(a){a=this.compareRange(a);return-1==a||0==a||1==a};this.isEnd=function(a,e){return this.end.row==a&&this.end.column==e};this.isStart=function(a,e){return this.start.row==a&&this.start.column==e};this.setStart=function(a,e){"object"==typeof a?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=e)};this.setEnd=function(a,e){"object"==typeof a?(this.end.column=a.column,this.end.row=
a.row):(this.end.row=a,this.end.column=e)};this.inside=function(a,e){return 0==this.compare(a,e)&&!this.isEnd(a,e)&&!this.isStart(a,e)?!0:!1};this.insideStart=function(a,e){return 0==this.compare(a,e)&&!this.isEnd(a,e)?!0:!1};this.insideEnd=function(a,e){return 0==this.compare(a,e)&&!this.isStart(a,e)?!0:!1};this.compare=function(a,e){return!this.isMultiLine()&&a===this.start.row?e<this.start.column?-1:e>this.end.column?1:0:a<this.start.row?-1:a>this.end.row?1:this.start.row===a?e>=this.start.column?
0:-1:this.end.row===a?e<=this.end.column?0:1:0};this.compareStart=function(a,e){return this.start.row==a&&this.start.column==e?-1:this.compare(a,e)};this.compareEnd=function(a,e){return this.end.row==a&&this.end.column==e?1:this.compare(a,e)};this.compareInside=function(a,e){return this.end.row==a&&this.end.column==e?1:this.start.row==a&&this.start.column==e?-1:this.compare(a,e)};this.clipRows=function(a,e){if(this.end.row>e)var g={row:e+1,column:0};if(this.start.row>e)var k={row:e+1,column:0};this.start.row<
a&&(k={row:a,column:0});this.end.row<a&&(g={row:a,column:0});return j.fromPoints(k||this.start,g||this.end)};this.extend=function(a,e){var g=this.compare(a,e);if(0==g)return this;if(-1==g)var k={row:a,column:e};else var b={row:a,column:e};return j.fromPoints(k||this.start,b||this.end)};this.isEmpty=function(){return this.start.row==this.end.row&&this.start.column==this.end.column};this.isMultiLine=function(){return this.start.row!==this.end.row};this.clone=function(){return j.fromPoints(this.start,
this.end)};this.collapseRows=function(){return 0==this.end.column?new j(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new j(this.start.row,0,this.end.row,0)};this.toScreenRange=function(a){var e=a.documentToScreenPosition(this.start),a=a.documentToScreenPosition(this.end);return new j(e.row,e.column,a.row,a.column)}}).call(j.prototype);j.fromPoints=function(a,e){return new j(a.row,a.column,e.row,e.column)};m.Range=j});
define("ace/mode/text","require,exports,module,ace/tokenizer,ace/mode/text_highlight_rules,ace/mode/behaviour,ace/unicode".split(","),function(a,m){var j=a("ace/tokenizer").Tokenizer,c=a("ace/mode/text_highlight_rules").TextHighlightRules,e=a("ace/mode/behaviour").Behaviour,g=a("ace/unicode"),k=function(){this.$tokenizer=new j((new c).getRules());this.$behaviour=new e};(function(){this.tokenRe=RegExp("^["+g.packages.L+g.packages.Mn+g.packages.Mc+g.packages.Nd+g.packages.Pc+"\\$_]+","g");this.nonTokenRe=
RegExp("^(?:[^"+g.packages.L+g.packages.Mn+g.packages.Mc+g.packages.Nd+g.packages.Pc+"\\$_]|s])+","g");this.getTokenizer=function(){return this.$tokenizer};this.toggleCommentLines=function(){};this.getNextLineIndent=function(){return""};this.checkOutdent=function(){return false};this.autoOutdent=function(){};this.$getIndent=function(b){return(b=b.match(/^(\s+)/))?b[1]:""};this.createWorker=function(){return null};this.highlightSelection=function(b){var a=b.session;if(!a.$selectionOccurrences)a.$selectionOccurrences=
[];a.$selectionOccurrences.length&&this.clearSelectionHighlight(b);var c=b.getSelectionRange();if(!c.isEmpty()&&!c.isMultiLine()){var e=c.start.column-1,g=c.end.column+1,k=a.getLine(c.start.row),j=k.length,m=k.substring(Math.max(e,0),Math.min(g,j));if(!(e>=0&&/^[\w\d]/.test(m)||g<=j&&/[\w\d]$/.test(m))){m=k.substring(c.start.column,c.end.column);if(/^[\w\d]+$/.test(m)){var q=b.getCursorPosition(),c={wrap:true,wholeWord:true,caseSensitive:true,needle:m},e=b.$search.getOptions();b.$search.set(c);b.$search.findAll(a).forEach(function(b){if(!b.contains(q.row,
q.column)){b=a.addMarker(b,"ace_selected_word","text");a.$selectionOccurrences.push(b)}});b.$search.set(e)}}}};this.clearSelectionHighlight=function(b){if(b.session.$selectionOccurrences){b.session.$selectionOccurrences.forEach(function(a){b.session.removeMarker(a)});b.session.$selectionOccurrences=[]}};this.createModeDelegates=function(b){if(this.$embeds){this.$modes={};for(var a=0;a<this.$embeds.length;a++)b[this.$embeds[a]]&&(this.$modes[this.$embeds[a]]=new b[this.$embeds[a]]);for(var c=["toggleCommentLines",
"getNextLineIndent","checkOutdent","autoOutdent","transformAction"],a=0;a<c.length;a++)(function(b){var e=c[a],g=b[e];b[c[a]]=function(){return this.$delegator(e,arguments,g)}})(this)}};this.$delegator=function(b,a,c){for(var e=a[0],g=0;g<this.$embeds.length;g++)if(this.$modes[this.$embeds[g]]){var k=e.split(this.$embeds[g]);if(!k[0]&&k[1]){a[0]=k[1];c=this.$modes[this.$embeds[g]];return c[b].apply(c,a)}}b=c.apply(this,a);return c?b:void 0};this.transformAction=function(b,a,c,e,g){if(this.$behaviour){var k=
this.$behaviour.getBehaviours(),j;for(j in k)if(k[j][a]){var m=k[j][a].apply(this,arguments);if(m!==false)return m}}return false}}).call(k.prototype);m.Mode=k});
define("ace/tokenizer",["require","exports","module"],function(a,m){var j=function(a){this.rules=a;this.regExps={};this.matchMappings={};for(var e in this.rules){for(var a=this.rules[e],g=[],k=0,b=this.matchMappings[e]={},f=0;f<a.length;f++){var n=RegExp("(?:("+a[f].regex+")|(.))").exec("a").length-2,j=a[f].regex.replace(/\\([0-9]+)/g,function(b,a){return"\\"+(parseInt(a,10)+k+1)});b[k]={rule:f,len:n};k+=n;g.push(j)}this.regExps[e]=RegExp("(?:("+g.join(")|(")+")|(.))","g")}};(function(){this.getLineTokens=
function(a,e){var g=e,k=this.rules[g],b=this.matchMappings[g],f=this.regExps[g];f.lastIndex=0;for(var n,j=[],m=0,s={type:null,value:""};n=f.exec(a);){for(var t="text",y=null,q=[n[0]],x=0;x<n.length-2;x++)if(void 0!==n[x+1]){y=k[b[x].rule];1<b[x].len&&(q=n.slice(x+2,x+1+b[x].len));t="function"==typeof y.token?y.token.apply(this,q):y.token;if((n=y.next)&&n!==g)g=n,k=this.rules[g],b=this.matchMappings[g],m=f.lastIndex,f=this.regExps[g],f.lastIndex=m;break}if(q[0]){"string"==typeof t&&(q=[q.join("")],
t=[t]);for(x=0;x<q.length;x++)(!y||y.merge||"text"===t[x])&&s.type===t[x]?s.value+=q[x]:(s.type&&j.push(s),s={type:t[x],value:q[x]})}if(m==a.length)break;m=f.lastIndex}s.type&&j.push(s);return{tokens:j,state:g}}}).call(j.prototype);m.Tokenizer=j});
define("ace/mode/text_highlight_rules",["require","exports","module","pilot/lang"],function(a,m){var j=a("pilot/lang"),c=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:"text",regex:".+"}]}};(function(){this.addRules=function(a,c){for(var k in a){for(var b=a[k],f=0;f<b.length;f++){var n=b[f];n.next=n.next?c+n.next:c+k}this.$rules[c+k]=b}};this.getRules=function(){return this.$rules};this.embedRules=function(a,c,k,b){a=(new a).getRules();if(b)for(var f=0;f<b.length;f++)b[f]=c+
b[f];else for(f in b=[],a)b.push(c+f);this.addRules(a,c);for(f=0;f<b.length;f++)Array.prototype.unshift.apply(this.$rules[b[f]],j.deepCopy(k));this.$embeds||(this.$embeds=[]);this.$embeds.push(c)};this.getEmbeds=function(){return this.$embeds}}).call(c.prototype);m.TextHighlightRules=c});
define("ace/mode/behaviour",["require","exports","module"],function(a,m){var j=function(){this.$behaviours={}};(function(){this.add=function(a,e,g){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[a]:this.$behaviours[a]={}}this.$behaviours[a][e]=g};this.addBehaviours=function(a){for(var e in a)for(var g in a[e])this.add(e,g,a[e][g])};this.remove=function(a){this.$behaviours&&this.$behaviours[a]&&delete this.$behaviours[a]};this.inherit=function(a,e){this.addBehaviours("function"===
typeof a?(new a).getBehaviours(e):a.getBehaviours(e))};this.getBehaviours=function(a){if(a){for(var e={},g=0;g<a.length;g++)this.$behaviours[a[g]]&&(e[a[g]]=this.$behaviours[a[g]]);return e}return this.$behaviours}}).call(j.prototype);m.Behaviour=j});
define("ace/unicode",["require","exports","module"],function(a,m){m.packages={};var j={L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",
Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",
Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",
Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",
Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",
Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",
P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",
Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",
Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",
S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",
Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",
So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",
Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",
Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"},
c=/\w{4}/g,e;for(e in j)m.packages[e]=j[e].replace(c,"\\u$&")});
define("ace/document","require,exports,module,pilot/oop,pilot/event_emitter,ace/range,ace/anchor".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/event_emitter").EventEmitter,e=a("ace/range").Range,g=a("ace/anchor").Anchor,k=function(b){this.$lines=[];Array.isArray(b)?this.insertLines(0,b):b.length==0?this.$lines=[""]:this.insert({row:0,column:0},b)};(function(){j.implement(this,c);this.setValue=function(b){var a=this.getLength();this.remove(new e(0,0,a,this.getLine(a-1).length));this.insert({row:0,
column:0},b)};this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())};this.createAnchor=function(b,a){return new g(this,b,a)};this.$split="aaa".split(/a/).length==0?function(b){return b.replace(/\r\n|\r/g,"\n").split("\n")}:function(b){return b.split(/\r\n|\r|\n/)};this.$detectNewLine=function(b){this.$autoNewLine=(b=b.match(/^.*?(\r?\n)/m))?b[1]:"\n"};this.getNewLineCharacter=function(){switch(this.$newLineMode){case "windows":return"\r\n";case "unix":return"\n";case "auto":return this.$autoNewLine}};
this.$autoNewLine="\n";this.$newLineMode="auto";this.setNewLineMode=function(b){if(this.$newLineMode!==b)this.$newLineMode=b};this.getNewLineMode=function(){return this.$newLineMode};this.isNewLine=function(b){return b=="\r\n"||b=="\r"||b=="\n"};this.getLine=function(b){return this.$lines[b]||""};this.getLines=function(b,a){return this.$lines.slice(b,a+1)};this.getAllLines=function(){return this.getLines(0,this.getLength())};this.getLength=function(){return this.$lines.length};this.getTextRange=function(b){if(b.start.row==
b.end.row)return this.$lines[b.start.row].substring(b.start.column,b.end.column);var a=[];a.push(this.$lines[b.start.row].substring(b.start.column));a.push.apply(a,this.getLines(b.start.row+1,b.end.row-1));a.push(this.$lines[b.end.row].substring(0,b.end.column));return a.join(this.getNewLineCharacter())};this.$clipPosition=function(b){var a=this.getLength();if(b.row>=a){b.row=Math.max(0,a-1);b.column=this.getLine(a-1).length}return b};this.insert=function(b,a){if(a.length==0)return b;b=this.$clipPosition(b);
this.getLength()<=1&&this.$detectNewLine(a);var c=this.$split(a),e=c.splice(0,1)[0],g=c.length==0?null:c.splice(c.length-1,1)[0],b=this.insertInLine(b,e);if(g!==null){b=this.insertNewLine(b);b=this.insertLines(b.row,c);b=this.insertInLine(b,g||"")}return b};this.insertLines=function(b,a){if(a.length==0)return{row:b,column:0};var c=[b,0];c.push.apply(c,a);this.$lines.splice.apply(this.$lines,c);c=new e(b,0,b+a.length,0);this._dispatchEvent("change",{data:{action:"insertLines",range:c,lines:a}});return c.end};
this.insertNewLine=function(b){var b=this.$clipPosition(b),a=this.$lines[b.row]||"";this.$lines[b.row]=a.substring(0,b.column);this.$lines.splice(b.row+1,0,a.substring(b.column,a.length));a={row:b.row+1,column:0};this._dispatchEvent("change",{data:{action:"insertText",range:e.fromPoints(b,a),text:this.getNewLineCharacter()}});return a};this.insertInLine=function(b,a){if(a.length==0)return b;var c=this.$lines[b.row]||"";this.$lines[b.row]=c.substring(0,b.column)+a+c.substring(b.column);c={row:b.row,
column:b.column+a.length};this._dispatchEvent("change",{data:{action:"insertText",range:e.fromPoints(b,c),text:a}});return c};this.remove=function(b){b.start=this.$clipPosition(b.start);b.end=this.$clipPosition(b.end);if(b.isEmpty())return b.start;var a=b.start.row,c=b.end.row;if(b.isMultiLine()){var e=b.start.column==0?a:a+1,g=c-1;b.end.column>0&&this.removeInLine(c,0,b.end.column);g>=e&&this.removeLines(e,g);if(e!=a){this.removeInLine(a,b.start.column,this.getLine(a).length);this.removeNewLine(b.start.row)}}else this.removeInLine(a,
b.start.column,b.end.column);return b.start};this.removeInLine=function(b,a,c){if(a!=c){var g=new e(b,a,b,c),k=this.getLine(b),j=k.substring(a,c),a=k.substring(0,a)+k.substring(c,k.length);this.$lines.splice(b,1,a);this._dispatchEvent("change",{data:{action:"removeText",range:g,text:j}});return g.start}};this.removeLines=function(b,a){var c=new e(b,0,a+1,0),g=this.$lines.splice(b,a-b+1);this._dispatchEvent("change",{data:{action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:g}});return g};
this.removeNewLine=function(b){var a=this.getLine(b),c=this.getLine(b+1),g=new e(b,a.length,b+1,0);this.$lines.splice(b,2,a+c);this._dispatchEvent("change",{data:{action:"removeText",range:g,text:this.getNewLineCharacter()}})};this.replace=function(b,a){if(a.length==0&&b.isEmpty())return b.start;if(a==this.getTextRange(b))return b.end;this.remove(b);return a?this.insert(b.start,a):b.start};this.applyDeltas=function(b){for(var a=0;a<b.length;a++){var c=b[a],g=e.fromPoints(c.range.start,c.range.end);
c.action=="insertLines"?this.insertLines(g.start.row,c.lines):c.action=="insertText"?this.insert(g.start,c.text):c.action=="removeLines"?this.removeLines(g.start.row,g.end.row-1):c.action=="removeText"&&this.remove(g)}};this.revertDeltas=function(b){for(var a=b.length-1;a>=0;a--){var c=b[a],g=e.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(g.start.row,g.end.row-1):c.action=="insertText"?this.remove(g):c.action=="removeLines"?this.insertLines(g.start.row,c.lines):c.action==
"removeText"&&this.insert(g.start,c.text)}}}).call(k.prototype);m.Document=k});
define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,m){var j=a("pilot/oop"),c=a("pilot/event_emitter").EventEmitter;(function(){j.implement(this,c);this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)};this.getDocument=function(){return this.document};this.onChange=function(a){var a=a.data,c=a.range;if(!(c.start.row==c.end.row&&c.start.row!=this.row||c.start.row>this.row||c.start.row==this.row&&c.start.column>this.column)){var k=
this.row,b=this.column;"insertText"===a.action?c.start.row===k&&c.start.column<=b?c.start.row===c.end.row?b+=c.end.column-c.start.column:(b-=c.start.column,k+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row<k&&(k+=c.end.row-c.start.row):"insertLines"===a.action?c.start.row<=k&&(k+=c.end.row-c.start.row):"removeText"==a.action?c.start.row==k&&c.start.column<b?b=c.end.column>=b?c.start.column:Math.max(0,b-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row<k?(c.end.row==
k&&(b=Math.max(0,b-c.end.column)+c.start.column),k-=c.end.row-c.start.row):c.end.row==k&&(k-=c.end.row-c.start.row,b=Math.max(0,b-c.end.column)+c.start.column):"removeLines"==a.action&&c.start.row<=k&&(c.end.row<=k?k-=c.end.row-c.start.row:(k=c.start.row,b=0));this.setPosition(k,b,!0)}};this.setPosition=function(a,c,k){a=k?{row:a,column:c}:this.$clipPositionToDocument(a,c);this.row==a.row&&this.column==a.column||(c={row:this.row,column:this.column},this.row=a.row,this.column=a.column,this._dispatchEvent("change",
{old:c,value:a}))};this.detach=function(){this.document.removeEventListener("change",this.$onChange)};this.$clipPositionToDocument=function(a,c){var k={};a>=this.document.getLength()?(k.row=Math.max(0,this.document.getLength()-1),k.column=this.document.getLine(k.row).length):0>a?(k.row=0,k.column=0):(k.row=a,k.column=Math.min(this.document.getLine(k.row).length,Math.max(0,c)));0>c&&(k.column=0);return k}}).call((m.Anchor=function(a,c,k){this.document=a;"undefined"==typeof k?this.setPosition(c.row,
c.column):this.setPosition(c,k);this.$onChange=this.onChange.bind(this);a.on("change",this.$onChange)}).prototype)});
define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,m){var j=a("pilot/oop"),c=a("pilot/event_emitter").EventEmitter,e=function(a){this.running=!1;this.lines=[];this.currentLine=0;this.tokenizer=a;var c=this;this.$worker=function(){if(c.running){for(var b=new Date,a=c.currentLine,e=0,g=c.doc.getLength();c.currentLine<g;)if(c.lines[c.currentLine]=c.$tokenizeRows(c.currentLine,c.currentLine)[0],c.currentLine++,e+=1,0==e%5&&20<new Date-b){c.fireUpdateEvent(a,
c.currentLine-1);c.running=setTimeout(c.$worker,20);return}c.running=!1;c.fireUpdateEvent(a,g-1)}}};(function(){j.implement(this,c);this.setTokenizer=function(a){this.tokenizer=a;this.lines=[];this.start(0)};this.setDocument=function(a){this.doc=a;this.lines=[];this.stop()};this.fireUpdateEvent=function(a,c){this._dispatchEvent("update",{data:{first:a,last:c}})};this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength());this.lines.splice(this.currentLine,this.lines.length);
this.stop();this.running=setTimeout(this.$worker,700)};this.stop=function(){this.running&&clearTimeout(this.running);this.running=!1};this.getTokens=function(a,c){return this.$tokenizeRows(a,c)};this.getState=function(a){return this.$tokenizeRows(a,a)[0].state};this.$tokenizeRows=function(a,c){if(!this.doc)return[];var b=[],e="start",n=!1;0<a&&this.lines[a-1]?(e=this.lines[a-1].state,n=!0):0==a?(e="start",n=!0):0<this.lines.length&&(e=this.lines[this.lines.length-1].state);for(var j=this.doc.getLines(a,
c),m=a;m<=c;m++)if(this.lines[m])s=this.lines[m],e=s.state,b.push(s);else{var s=this.tokenizer.getLineTokens(j[m-a]||"",e),e=s.state;b.push(s);n&&(this.lines[m]=s)}return b}}).call(e.prototype);m.BackgroundTokenizer=e});
define("ace/edit_session/folding","require,exports,module,ace/range,ace/edit_session/fold_line,ace/edit_session/fold".split(","),function(a,m){a("ace/range");var j=a("ace/edit_session/fold_line").FoldLine,c=a("ace/edit_session/fold").Fold;m.Folding=function(){this.getFoldAt=function(a,c,k){var b=this.getFoldLine(a);if(!b)return null;for(var b=b.folds,f=0;f<b.length;f++){var n=b[f];if(n.range.contains(a,c)&&!(k==1&&n.range.isEnd(a,c))&&!(k==-1&&n.range.isStart(a,c)))return n}};this.getFoldsInRange=
function(a){var a=a.clone(),c=a.start,k=a.end,b=this.$foldData,f=[];c.column=c.column+1;k.column=k.column-1;for(c=0;c<b.length;c++){k=b[c].range.compareRange(a);if(k!=2){if(k==-2)break;for(var n=b[c].folds,j=0;j<n.length;j++){var m=n[j],k=m.range.compareRange(a);if(k==-2)break;else if(k==2)continue;else if(k==42)break;f.push(m)}}}return f};this.getFoldStringAt=function(a,c,k,b){b=b||this.getFoldLine(a);if(!b)return null;for(var f={end:{column:0}},j=0;j<b.folds.length;j++){var m=b.folds[j],u=m.range.compareEnd(a,
c);if(u==-1){var s=this.getLine(m.start.row).substring(f.end.column,m.start.column);break}else if(u==0)return null;f=m}s||(s=this.getLine(m.start.row).substring(f.end.column));return k==-1?s.substring(0,c-f.end.column):k==1?s.substring(c-f.end.column):s};this.getFoldLine=function(a,c){var k=this.$foldData,b=0;c&&(b=k.indexOf(c));b==-1&&(b=0);for(b;b<k.length;b++){var f=k[b];if(f.start.row<=a&&f.end.row>=a)return f;if(f.end.row>a)break}return null};this.getNextFold=function(a,c){var k=this.$foldData,
b=0;c&&(b=k.indexOf(c));b==-1&&(b=0);for(b;b<k.length;b++){var f=k[b];if(f.end.row>=a)return f}return null};this.getFoldedRowCount=function(a,c){for(var k=this.$foldData,b=c-a+1,f=0;f<k.length;f++){var j=k[f],m=j.end.row,j=j.start.row;if(m>=c){j<c&&(b=j>=a?b-(c-j):0);break}else m>=a&&(b=j>=a?b-(m-j):b-(m-a+1))}return b};this.$addFoldLine=function(a){this.$foldData.push(a);this.$foldData.sort(function(a,c){return a.start.row-c.start.row});return a};this.addFold=function(a,g){var k=this.$foldData,b=
false,f=a instanceof c?a:new c(g,a),m=f.start.row,v=f.start.column,u=f.end.row,s=f.end.column;if(f.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(m==u&&s-v<2)throw"The range has to be at least 2 characters width";var t=this.getFoldAt(m,v,1);if(t&&t.range.isEnd(u,s)&&t.range.isStart(m,v))return f;if((t=this.getFoldAt(m,v,1))&&!t.range.isStart(m,v))throw"A fold can't start inside of an already existing fold";if((t=this.getFoldAt(u,s,-1))&&!t.range.isEnd(u,s))throw"A fold can't end inside of an already existing fold";
if(u>=this.doc.getLength())throw"End of fold is outside of the document.";if(s>this.getLine(u).length||v>this.getLine(m).length)throw"End of fold is outside of the document.";v=this.getFoldsInRange(f.range);if(v.length>0){this.removeFolds(v);f.subFolds=v}for(v=0;v<k.length;v++){var y=k[v];if(u==y.start.row){y.addFold(f);b=true;break}else if(m==y.end.row){y.addFold(f);b=true;if(!f.sameRow)if((foldLineNext=k[v+1])&&foldLineNext.start.row==u){y.merge(foldLineNext);break}break}else if(u<=y.start.row)break}b||
(y=this.$addFoldLine(new j(this.$foldData,f)));this.$useWrapMode&&this.$updateWrapData(y.start.row,y.start.row);this.$modified=true;this._dispatchEvent("changeFold",{data:f});return f};this.addFolds=function(a){a.forEach(function(a){this.addFold(a)},this)};this.removeFold=function(a){var c=a.foldLine,k=c.start.row,b=c.end.row,f=this.$foldData,j=c.folds;if(j.length==1)f.splice(f.indexOf(c),1);else if(c.range.isEnd(a.end.row,a.end.column)){j.pop();c.end.row=j[j.length-1].end.row;c.end.column=j[j.length-
1].end.column}else if(c.range.isStart(a.start.row,a.start.column)){j.shift();c.start.row=j[0].start.row;c.start.column=j[0].start.column}else if(a.sameRow)j.splice(j.indexOf(a),1);else{f=c.split(a.start.row,a.start.column);f.folds.shift();c.start.row=j[0].start.row;c.start.column=j[0].start.column;this.$addFoldLine(f)}this.$useWrapMode&&this.$updateWrapData(k,b);this.$modified=true;this._dispatchEvent("changeFold",{data:a})};this.removeFolds=function(a){for(var c=[],k=0;k<a.length;k++)c.push(a[k]);
c.forEach(function(b){this.removeFold(b)},this);this.$modified=true};this.expandFold=function(a){this.removeFold(a);a.subFolds.forEach(function(a){this.addFold(a)},this);a.subFolds=[]};this.expandFolds=function(a){a.forEach(function(a){this.expandFold(a)},this)};this.isRowFolded=function(a,c){return!!this.getFoldLine(a,c)};this.getRowFoldEnd=function(a,c){var k=this.getFoldLine(a,c);return k?k.end.row:a};this.getFoldDisplayLine=function(a,c,k,b,f){if(b==null){b=a.start.row;f=0}if(c==null){c=a.end.row;
k=this.getLine(c).length}var j=this.doc,m="";a.walk(function(a,c,e,g){if(!(c<b)){if(c==b){if(e<f)return;g=Math.max(f,g)}m=a?m+a:m+j.getLine(c).substring(g,e)}}.bind(this),c,k);return m};this.getDisplayLine=function(a,c,k,b){var f=this.getFoldLine(a);if(f)return this.getFoldDisplayLine(f,a,c,k,b);a=this.doc.getLine(a);return a.substring(b||0,c||a.length)};this.$cloneFoldData=function(){var a=[];return a=this.$foldData.map(function(c){c=c.folds.map(function(a){return a.clone()});return new j(a,c)})}}});
define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(a,m){function j(a,g){this.foldData=a;Array.isArray(g)?this.folds=g:g=this.folds=[g];var k=g[g.length-1];this.range=new c(g[0].start.row,g[0].start.column,k.end.row,k.end.column);this.start=this.range.start;this.end=this.range.end;this.folds.forEach(function(b){b.setFoldLine(this)},this)}var c=a("ace/range").Range;(function(){this.shiftRow=function(a){this.start.row+=a;this.end.row+=a;this.folds.forEach(function(c){c.start.row+=
a;c.end.row+=a})};this.addFold=function(a){if(a.sameRow){if(a.start.row<this.startRow||a.endRow>this.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a);this.folds.sort(function(a,c){return-a.range.compareEnd(c.start.row,c.start.column)});0<this.range.compareEnd(a.start.row,a.start.column)?(this.end.row=a.end.row,this.end.column=a.end.column):0>this.range.compareStart(a.end.row,a.end.column)&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==
this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this};this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row};this.walk=function(a,c,k){var b=0,f=this.folds,j,m,u;u=!0;null==c&&(c=this.end.row,k=this.end.column);for(var s=0;s<f.length;s++){j=f[s];
m=j.range.compareStart(c,k);if(-1==m){a(null,c,k,b,u);return}u=a(null,j.start.row,j.start.column,b,u);if((u=!u&&a(j.placeholder,j.start.row,j.start.column,b))||0==m)return;u=!j.sameRow;b=j.end.column}a(null,c,k,b,u)};this.getNextFoldTo=function(a,c){for(var k,b,f=0;f<this.folds.length;f++){k=this.folds[f];b=k.range.compareEnd(a,c);if(-1==b)return{fold:k,kind:"after"};if(0==b)return{fold:k,kind:"inside"}}return null};this.addRemoveChars=function(a,c,k){var b=this.getNextFoldTo(a,c),f;if(b){f=b.fold;
if("inside"==b.kind&&f.start.column!=c&&f.start.row!=a)throw"Moving characters inside of a fold should never be reached";if(f.start.row==a){a=this.folds;c=a.indexOf(f);0==c&&(this.start.column+=k);for(c;c<a.length;c++){f=a[c];f.start.column+=k;if(!f.sameRow)return;f.end.column+=k}this.end.column+=k}}};this.split=function(a,c){var k=this.getNextFoldTo(a,c).fold,b=this.folds,f=this.foldData;if(!k)return null;var k=b.indexOf(k),m=b[k-1];this.end.row=m.end.row;this.end.column=m.end.column;b=b.splice(k,
b.length-k);b=new j(f,b);f.splice(f.indexOf(this)+1,0,b);return b};this.merge=function(a){for(var c=a.folds,k=0;k<c.length;k++)this.addFold(c[k]);c=this.foldData;c.splice(c.indexOf(a),1)};this.toString=function(){var a=[this.range.toString()+": ["];this.folds.forEach(function(c){a.push(" "+c.toString())});a.push("]");return a.join("\n")};this.idxToPosition=function(a){for(var c=0,k,b=0;b<this.folds.length;b++){k=this.folds[b];a-=k.start.column-c;if(0>a)return{row:k.start.row,column:k.start.column+
a};a-=k.placeholder.length;if(0>a)return k.start;c=k.end.column}return{row:this.end.row,column:this.end.column+a}}}).call(j.prototype);m.FoldLine=j});
define("ace/edit_session/fold",["require","exports","module"],function(a,m){var j=m.Fold=function(a,e){this.foldLine=null;this.placeholder=e;this.range=a;this.start=a.start;this.end=a.end;this.sameRow=a.start.row==a.end.row;this.subFolds=[]};(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()};this.setFoldLine=function(a){this.foldLine=a;this.subFolds.forEach(function(e){e.setFoldLine(a)})};this.clone=function(){var a=this.range.clone(),e=new j(a,this.placeholder);
this.subFolds.forEach(function(a){e.subFolds.push(a.clone())});return e}}).call(j.prototype)});
define("ace/search","require,exports,module,pilot/lang,pilot/oop,ace/range".split(","),function(a,m){var j=a("pilot/lang"),c=a("pilot/oop"),e=a("ace/range").Range,g=function(){this.$options={needle:"",backwards:false,wrap:false,caseSensitive:false,wholeWord:false,scope:g.ALL,regExp:false}};g.ALL=1;g.SELECTION=2;(function(){this.set=function(a){c.mixin(this.$options,a);return this};this.getOptions=function(){return j.copyObject(this.$options)};this.find=function(a){if(!this.$options.needle)return null;
var b=null;(this.$options.backwards?this.$backwardMatchIterator(a):this.$forwardMatchIterator(a)).forEach(function(a){b=a;return true});return b};this.findAll=function(a){if(!this.$options.needle)return[];var b=[];(this.$options.backwards?this.$backwardMatchIterator(a):this.$forwardMatchIterator(a)).forEach(function(a){b.push(a)});return b};this.replace=function(a,b){var c=this.$assembleRegExp(),e=c.exec(a);return e&&e[0].length==a.length?this.$options.regExp?a.replace(c,b):b:null};this.$forwardMatchIterator=
function(a){var b=this.$assembleRegExp(),c=this;return{forEach:function(e){c.$forwardLineIterator(a).forEach(function(a,g,k){g&&(a=a.substring(g));var j=[];a.replace(b,function(a){j.push({str:a,offset:g+arguments[arguments.length-2]});return a});for(a=0;a<j.length;a++){var m=j[a],m=c.$rangeFromMatch(k,m.offset,m.str.length);if(e(m))return true}})}}};this.$backwardMatchIterator=function(a){var b=this.$assembleRegExp(),c=this;return{forEach:function(e){c.$backwardLineIterator(a).forEach(function(a,
g,k){g&&(a=a.substring(g));var j=[];a.replace(b,function(a,b){j.push({str:a,offset:g+b});return a});for(a=j.length-1;a>=0;a--){var m=j[a],m=c.$rangeFromMatch(k,m.offset,m.str.length);if(e(m))return true}})}}};this.$rangeFromMatch=function(a,b,c){return new e(a,b,a,b+c)};this.$assembleRegExp=function(){var a=this.$options.regExp?this.$options.needle:j.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b=b+"i");return RegExp(a,b)};this.$forwardLineIterator=
function(a){function b(b){var g=a.getLine(b);c&&b==e.end.row&&(g=g.substring(0,e.end.column));q&&b==j.row&&(g=g.substring(0,j.column));return g}var c=this.$options.scope==g.SELECTION,e=a.getSelection().getRange(),j=a.getSelection().getCursor(),m=c?e.start.row:0,s=c?e.start.column:0,t=c?e.end.row:a.getLength()-1,y=this.$options.wrap,q=false;return{forEach:function(a){var c=j.row,f=b(c),e=j.column,g=false;for(q=false;!a(f,e,c);){if(g)break;c++;e=0;if(c>t)if(y){c=m;e=s;q=true}else break;c==j.row&&(g=
true);f=b(c)}}}};this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),e=b?c.end:c.start,j=b?c.start.row:0,m=b?c.start.column:0,s=b?c.end.row:a.getLength()-1,t=this.$options.wrap;return{forEach:function(g){for(var q=e.row,x=a.getLine(q).substring(0,e.column),A=0,B=false,r=false;!g(x,A,q);){if(B)break;q--;A=0;if(q<j)if(t){q=s;r=true}else break;q==e.row&&(B=true);x=a.getLine(q);b&&(q==j?A=m:q==s&&(x=x.substring(0,c.end.column)));if(r&&q==e.row)A=
e.column}}}}}).call(g.prototype);m.Search=g});
define("ace/undomanager",["require","exports","module"],function(a,m){var j=function(){this.reset()};(function(){this.execute=function(a){var e=a.args[0];this.$doc=a.args[1];this.$undoStack.push(e);this.$redoStack=[]};this.undo=function(a){var e=this.$undoStack.pop(),g=null;e&&(g=this.$doc.undoChanges(e,a),this.$redoStack.push(e));return g};this.redo=function(a){var e=this.$redoStack.pop(),g=null;e&&(g=this.$doc.redoChanges(e,a),this.$undoStack.push(e));return g};this.reset=function(){this.$undoStack=
[];this.$redoStack=[]};this.hasUndo=function(){return 0<this.$undoStack.length};this.hasRedo=function(){return 0<this.$redoStack.length}}).call(j.prototype);m.UndoManager=j});
define("ace/virtual_renderer","require,exports,module,pilot/oop,pilot/dom,pilot/event,pilot/useragent,ace/layer/gutter,ace/layer/marker,ace/layer/text,ace/layer/cursor,ace/scrollbar,ace/renderloop,pilot/event_emitter,text/ace/css/editor.css".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/dom"),e=a("pilot/event"),g=a("pilot/useragent"),k=a("ace/layer/gutter").Gutter,b=a("ace/layer/marker").Marker,f=a("ace/layer/text").Text,n=a("ace/layer/cursor").Cursor,v=a("ace/scrollbar").ScrollBar,u=a("ace/renderloop").RenderLoop,
s=a("pilot/event_emitter").EventEmitter,t=a("text/ace/css/editor.css");c.importCssString(t);t=function(a,g){this.container=a;c.addCssClass(this.container,"ace_editor");this.setTheme(g);this.$gutter=c.createElement("div");this.$gutter.className="ace_gutter";this.container.appendChild(this.$gutter);this.scroller=c.createElement("div");this.scroller.className="ace_scroller";this.container.appendChild(this.scroller);this.content=c.createElement("div");this.content.className="ace_content";this.scroller.appendChild(this.content);
this.$gutterLayer=new k(this.$gutter);this.$markerBack=new b(this.content);var j=this.$textLayer=new f(this.content);this.canvas=j.element;this.$markerFront=new b(this.content);this.characterWidth=j.getCharacterWidth();this.lineHeight=j.getLineHeight();this.$cursorLayer=new n(this.content);this.$cursorPadding=8;this.$horizScrollAlwaysVisible=this.$horizScroll=true;this.scrollBar=new v(a);this.scrollBar.addEventListener("scroll",this.onScroll.bind(this));this.scrollTop=0;this.cursorPos={row:0,column:0};
var m=this;this.$textLayer.addEventListener("changeCharaterSize",function(){m.characterWidth=j.getCharacterWidth();m.lineHeight=j.getLineHeight();m.$updatePrintMargin();m.onResize(true);m.$loop.schedule(m.CHANGE_FULL)});e.addListener(this.$gutter,"click",this.$onGutterClick.bind(this));e.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this));this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0};this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,
characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1};this.$loop=new u(this.$renderChanges.bind(this));this.$loop.schedule(this.CHANGE_FULL);this.setPadding(4);this.$updatePrintMargin()};(function(){this.showGutter=true;this.CHANGE_CURSOR=1;this.CHANGE_MARKER=2;this.CHANGE_GUTTER=4;this.CHANGE_SCROLL=8;this.CHANGE_LINES=16;this.CHANGE_TEXT=32;this.CHANGE_SIZE=64;this.CHANGE_MARKER_BACK=128;this.CHANGE_MARKER_FRONT=256;this.CHANGE_FULL=512;j.implement(this,s);this.setSession=function(a){this.session=
a;this.$cursorLayer.setSession(a);this.$markerBack.setSession(a);this.$markerFront.setSession(a);this.$gutterLayer.setSession(a);this.$textLayer.setSession(a);this.$loop.schedule(this.CHANGE_FULL)};this.updateLines=function(a,b){b===void 0&&(b=Infinity);if(this.$changedLines){if(this.$changedLines.firstRow>a)this.$changedLines.firstRow=a;if(this.$changedLines.lastRow<b)this.$changedLines.lastRow=b}else this.$changedLines={firstRow:a,lastRow:b};this.$loop.schedule(this.CHANGE_LINES)};this.updateText=
function(){this.$loop.schedule(this.CHANGE_TEXT)};this.updateFull=function(){this.$loop.schedule(this.CHANGE_FULL)};this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()};this.onResize=function(a){var b=this.CHANGE_SIZE,f=this.$size,e=c.getInnerHeight(this.container);if(a||f.height!=e){f.height=e;this.scroller.style.height=e+"px";f.scrollerHeight=this.scroller.clientHeight;this.scrollBar.setHeight(f.scrollerHeight);if(this.session){this.scrollToY(this.getScrollTop());b=b|this.CHANGE_FULL}}e=
c.getInnerWidth(this.container);if(a||f.width!=e){f.width=e;var g=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=g+"px";f.scrollerWidth=Math.max(0,e-g-this.scrollBar.getWidth());this.scroller.style.width=f.scrollerWidth+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||a)b=b|this.CHANGE_FULL}this.$loop.schedule(b)};this.adjustWrapLimit=function(){return this.session.adjustWrapLimit(Math.floor((this.$size.scrollerWidth-this.$padding*2)/this.characterWidth)-1)};this.$onGutterClick=
function(a){var b=e.getDocumentX(a),c=e.getDocumentY(a);this._dispatchEvent("gutter"+a.type,{row:this.screenToTextCoordinates(b,c).row,htmlEvent:a})};this.setShowInvisibles=function(a){this.$textLayer.setShowInvisibles(a)&&this.$loop.schedule(this.CHANGE_TEXT)};this.getShowInvisibles=function(){return this.$textLayer.showInvisibles};this.$showPrintMargin=true;this.setShowPrintMargin=function(a){this.$showPrintMargin=a;this.$updatePrintMargin()};this.getShowPrintMargin=function(){return this.$showPrintMargin};
this.$printMarginColumn=80;this.setPrintMarginColumn=function(a){this.$printMarginColumn=a;this.$updatePrintMargin()};this.getPrintMarginColumn=function(){return this.$printMarginColumn};this.getShowGutter=function(){return this.showGutter};this.setShowGutter=function(a){if(this.showGutter!==a){this.$gutter.style.display=a?"block":"none";this.showGutter=a;this.onResize(true)}};this.$updatePrintMargin=function(){var a;if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){a=c.createElement("div");
a.className="ace_print_margin_layer";this.$printMarginEl=c.createElement("div");this.$printMarginEl.className="ace_print_margin";a.appendChild(this.$printMarginEl);this.content.insertBefore(a,this.$textLayer.element)}a=this.$printMarginEl.style;a.left=this.characterWidth*this.$printMarginColumn+this.$padding*2+"px";a.visibility=this.$showPrintMargin?"visible":"hidden"}};this.getContainerElement=function(){return this.container};this.getMouseEventTarget=function(){return this.content};this.getTextAreaContainer=
function(){return this.container};this.moveTextAreaToCursor=function(a){if(!g.isIE){var b=this.$cursorLayer.getPixelPosition();if(b){var c=this.content.getBoundingClientRect(),f=this.layerConfig.offset;a.style.left=c.left+b.left+this.$padding+"px";a.style.top=c.top+b.top-this.scrollTop+f+"px"}}};this.getFirstVisibleRow=function(){return this.layerConfig.firstRow};this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)};this.getLastFullyVisibleRow=
function(){return this.layerConfig.firstRow-1+Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight)};this.getLastVisibleRow=function(){return this.layerConfig.lastRow};this.$padding=null;this.setPadding=function(a){this.$padding=a;this.$textLayer.setPadding(a);this.$cursorLayer.setPadding(a);this.$markerFront.setPadding(a);this.$markerBack.setPadding(a);this.$loop.schedule(this.CHANGE_FULL);this.$updatePrintMargin()};this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible};
this.setHScrollBarAlwaysVisible=function(a){if(this.$horizScrollAlwaysVisible!=a){this.$horizScrollAlwaysVisible=a;(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)}};this.onScroll=function(a){this.scrollToY(a.data)};this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight);this.scrollBar.setScrollTop(this.scrollTop)};this.$renderChanges=function(a){if(a&&this.session){(a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||
a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(a&this.CHANGE_FULL){this.$textLayer.update(this.layerConfig);this.showGutter&&this.$gutterLayer.update(this.layerConfig);this.$markerBack.update(this.layerConfig);this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$updateScrollBar()}else if(a&this.CHANGE_SCROLL){a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig);
this.showGutter&&this.$gutterLayer.update(this.layerConfig);this.$markerBack.update(this.layerConfig);this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$updateScrollBar()}else{if(a&this.CHANGE_TEXT){this.$textLayer.update(this.layerConfig);this.showGutter&&this.$gutterLayer.update(this.layerConfig)}else if(a&this.CHANGE_LINES){this.$updateLines();this.$updateScrollBar();this.showGutter&&this.$gutterLayer.update(this.layerConfig)}else a&this.CHANGE_GUTTER&&
this.showGutter&&this.$gutterLayer.update(this.layerConfig);a&this.CHANGE_CURSOR&&this.$cursorLayer.update(this.layerConfig);a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig);a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig);a&this.CHANGE_SIZE&&this.$updateScrollBar()}}};this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,f=this.$getLongestLine(),
e=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-f<0,g=this.$horizScroll!==e;this.$horizScroll=e;if(g)this.scroller.style.overflowX=e?"scroll":"hidden";e=this.session.getScreenLength()*this.lineHeight;this.scrollTop=Math.max(0,Math.min(this.scrollTop,e-this.$size.scrollerHeight));var k=Math.ceil(c/this.lineHeight)-1,j=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),k=j+k,m,b={lineHeight:this.lineHeight},j=a.screenToDocumentRow(j,0);if(m=a.getFoldLine(j))j=m.start.row;m=a.documentToScreenRow(j,
0);c=a.getRowHeight(b,j);k=Math.min(a.screenToDocumentRow(k,0),a.getLength()-1);c=this.$size.scrollerHeight+a.getRowHeight(b,k)+c;b=this.scrollTop-m*this.lineHeight;this.layerConfig={width:f,padding:this.$padding,firstRow:j,firstRowScreen:m,lastRow:k,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:c,maxHeight:e,offset:b,height:this.$size.scrollerHeight};this.$gutterLayer.element.style.marginTop=-b+"px";this.content.style.marginTop=-b+"px";this.content.style.width=f+"px";this.content.style.height=
c+"px";if(this.$desiredScrollLeft){this.scrollToX(this.$desiredScrollLeft);this.$desiredScrollLeft=0}if(g)this.onResize(true)};this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(c.width!=this.$getLongestLine())return this.$textLayer.update(c);if(!(a>c.lastRow+1||b<c.firstRow))if(b===Infinity){this.showGutter&&this.$gutterLayer.update(c);this.$textLayer.update(c)}else this.$textLayer.updateLines(c,a,b)};this.$getLongestLine=
function(){var a=this.session.getScreenWidth()+1;this.$textLayer.showInvisibles&&(a=a+1);return Math.max(this.$size.scrollerWidth,Math.round(a*this.characterWidth))};this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(true));this.$loop.schedule(this.CHANGE_MARKER_FRONT)};this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers());this.$loop.schedule(this.CHANGE_MARKER_BACK)};this.addGutterDecoration=function(a,b){this.$gutterLayer.addGutterDecoration(a,
b);this.$loop.schedule(this.CHANGE_GUTTER)};this.removeGutterDecoration=function(a,b){this.$gutterLayer.removeGutterDecoration(a,b);this.$loop.schedule(this.CHANGE_GUTTER)};this.setBreakpoints=function(a){this.$gutterLayer.setBreakpoints(a);this.$loop.schedule(this.CHANGE_GUTTER)};this.setAnnotations=function(a){this.$gutterLayer.setAnnotations(a);this.$loop.schedule(this.CHANGE_GUTTER)};this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)};this.hideCursor=function(){this.$cursorLayer.hideCursor()};
this.showCursor=function(){this.$cursorLayer.showCursor()};this.scrollCursorIntoView=function(){if(this.$size.scrollerHeight!==0){var a=this.$cursorLayer.getPixelPosition(),b=a.left+this.$padding,a=a.top;this.scrollTop>a&&this.scrollToY(a);this.scrollTop+this.$size.scrollerHeight<a+this.lineHeight&&this.scrollToY(a+this.lineHeight-this.$size.scrollerHeight);a=this.scroller.scrollLeft;a>b&&this.scrollToX(b);if(a+this.$size.scrollerWidth<b+this.characterWidth)b>this.layerConfig.width?this.$desiredScrollLeft=
b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth))}};this.getScrollTop=function(){return this.scrollTop};this.getScrollLeft=function(){return this.scroller.scrollLeft};this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight};this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)};this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)};this.scrollToLine=function(a,
b){for(var c={lineHeight:this.lineHeight},f=0,e=1;e<a;e++)f=f+this.session.getRowHeight(c,e-1);b&&(f=f-this.$size.scrollerHeight/2);this.scrollToY(f)};this.scrollToY=function(a){a=Math.max(0,a);if(this.scrollTop!==a){this.$loop.schedule(this.CHANGE_SCROLL);this.scrollTop=a}};this.scrollToX=function(a){a<=this.$padding&&(a=0);this.scroller.scrollLeft=a};this.scrollBy=function(a,b){b&&this.scrollToY(this.scrollTop+b);a&&this.scrollToX(this.scroller.scrollLeft+a)};this.screenToTextCoordinates=function(a,
b){var f=this.scroller.getBoundingClientRect(),e=Math.round((a+this.scroller.scrollLeft-f.left-this.$padding-c.getPageScrollLeft())/this.characterWidth);return this.session.screenToDocumentPosition(Math.floor((b+this.scrollTop-f.top-c.getPageScrollTop())/this.lineHeight),Math.max(e,0))};this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),f=this.session.documentToScreenPosition(a,b),e=this.$padding+Math.round(f.column*this.characterWidth),f=f.row*this.lineHeight;
return{pageX:c.left+e-this.getScrollLeft(),pageY:c.top+f-this.getScrollTop()}};this.visualizeFocus=function(){c.addCssClass(this.container,"ace_focus")};this.visualizeBlur=function(){c.removeCssClass(this.container,"ace_focus")};this.showComposition=function(){if(!this.$composition){this.$composition=c.createElement("div");this.$composition.className="ace_composition";this.content.appendChild(this.$composition)}this.$composition.innerHTML=" ";var a=this.$cursorLayer.getPixelPosition(),b=this.$composition.style;
b.top=a.top+"px";b.left=a.left+this.$padding+"px";b.height=this.lineHeight+"px";this.hideCursor()};this.setCompositionText=function(a){c.setInnerText(this.$composition,a)};this.hideComposition=function(){this.showCursor();if(this.$composition){var a=this.$composition.style;a.top="-10000px";a.left="-10000px"}};this.setTheme=function(b){function f(a){e.$theme&&c.removeCssClass(e.container,e.$theme);e.$theme=a?a.cssClass:null;e.$theme&&c.addCssClass(e.container,e.$theme);if(e.$size){e.$size.width=0;
e.onResize()}}var e=this;this.$themeValue=b;!b||typeof b=="string"?a([b||"ace/theme/textmate"],function(a){f(a)}):f(b)};this.getTheme=function(){return this.$themeValue};this.setStyle=function(a){c.addCssClass(this.container,a)};this.unsetStyle=function(a){c.removeCssClass(this.container,a)};this.destroy=function(){this.$textLayer.destroy();this.$cursorLayer.destroy()}}).call(t.prototype);m.VirtualRenderer=t});
define("ace/layer/gutter",["require","exports","module","pilot/dom"],function(a,m){var j=a("pilot/dom"),c=function(a){this.element=j.createElement("div");this.element.className="ace_layer ace_gutter-layer";a.appendChild(this.element);this.$breakpoints=[];this.$annotations=[];this.$decorations=[]};(function(){this.setSession=function(a){this.session=a};this.addGutterDecoration=function(a,c){this.$decorations[a]||(this.$decorations[a]="");this.$decorations[a]+=" ace_"+c};this.removeGutterDecoration=
function(a,c){this.$decorations[a]=this.$decorations[a].replace(" ace_"+c,"")};this.setBreakpoints=function(a){this.$breakpoints=a.concat()};this.setAnnotations=function(a){this.$annotations=[];for(var c in a)if(a.hasOwnProperty(c)){var k=a[c];if(k)for(var b=this.$annotations[c]={text:[]},f=0;f<k.length;f++){var j=k[f];b.text.push(j.text.replace(/"/g,""").replace(/'/g,"’").replace(/</,"<"));j=j.type;"error"==j?b.className="ace_error":"warning"==j&&"ace_error"!=b.className?b.className=
"ace_warning":"info"==j&&!b.className&&(b.className="ace_info")}}};this.update=function(a){this.$config=a;for(var c={className:"",text:[]},k=[],b=a.firstRow,f=a.lastRow,m=this.session.getNextFold(b),v=m?m.start.row:Infinity;;){b>v&&(b=m.end.row+1,v=(m=this.session.getNextFold(b))?m.start.row:Infinity);if(b>f)break;var u=this.$annotations[b]||c;k.push("<div class='ace_gutter-cell",this.$decorations[b]||"",this.$breakpoints[b]?" ace_breakpoint ":" ",u.className,"' title='",u.text.join("\n"),"' style='height:",
a.lineHeight,"px;'>",b+1);for(u=this.session.getRowLength(b)-1;u--;)k.push("</div><div class='ace_gutter-cell' style='height:",a.lineHeight,"px'>¦</div>");k.push("</div>");b++}this.element=j.setInnerHtml(this.element,k.join(""));this.element.style.height=a.minHeight+"px"}}).call(c.prototype);m.Gutter=c});
define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,m){var j=a("ace/range").Range,c=a("pilot/dom"),e=function(a){this.element=c.createElement("div");this.element.className="ace_layer ace_marker-layer";a.appendChild(this.element)};(function(){this.$padding=0;this.setPadding=function(a){this.$padding=a};this.setSession=function(a){this.session=a};this.setMarkers=function(a){this.markers=a};this.update=function(a){if(a=a||this.config){this.config=a;var e=[],b;
for(b in this.markers){var f=this.markers[b],j=f.range.clipRows(a.firstRow,a.lastRow);if(!j.isEmpty())if(j=j.toScreenRange(this.session),f.renderer){var m=this.$getTop(j.start.row,a),u=Math.round(this.$padding+j.start.column*a.characterWidth);f.renderer(e,j,u,m,a)}else j.isMultiLine()?"text"==f.type?this.drawTextMarker(e,j,f.clazz,a):this.drawMultiLineMarker(e,j,f.clazz,a,f.type):this.drawSingleLineMarker(e,j,f.clazz,a,null,f.type)}this.element=c.setInnerHtml(this.element,e.join(""))}};this.$getTop=
function(a,c){return(a-c.firstRowScreen)*c.lineHeight};this.drawTextMarker=function(a,c,b,f){var e=c.start.row,m=new j(e,c.start.column,e,this.session.getScreenLastRowColumn(e));this.drawSingleLineMarker(a,m,b,f,1,"text");e=c.end.row;m=new j(e,0,e,c.end.column);this.drawSingleLineMarker(a,m,b,f,0,"text");for(e=c.start.row+1;e<c.end.row;e++)m.start.row=e,m.end.row=e,m.end.column=this.session.getScreenLastRowColumn(e),this.drawSingleLineMarker(a,m,b,f,1,"text")};this.drawMultiLineMarker=function(a,
c,b,f,e){var e="background"===e?0:this.$padding,j=f.lineHeight,m=Math.round(f.width-c.start.column*f.characterWidth),s=this.$getTop(c.start.row,f),t=Math.round(e+c.start.column*f.characterWidth);a.push("<div class='",b,"' style='","height:",j,"px;","width:",m,"px;","top:",s,"px;","left:",t,"px;'></div>");s=this.$getTop(c.end.row,f);m=Math.round(c.end.column*f.characterWidth);a.push("<div class='",b,"' style='","height:",j,"px;","width:",m,"px;","top:",s,"px;","left:",e,"px;'></div>");j=(c.end.row-
c.start.row-1)*f.lineHeight;0>j||(s=this.$getTop(c.start.row+1,f),m=f.width,a.push("<div class='",b,"' style='","height:",j,"px;","width:",m,"px;","top:",s,"px;","left:",e,"px;'></div>"))};this.drawSingleLineMarker=function(a,c,b,f,e,j){var m="background"===j?0:this.$padding,s=f.lineHeight,e="background"===j?f.width:Math.round((c.end.column+(e||0)-c.start.column)*f.characterWidth),j=this.$getTop(c.start.row,f),c=Math.round(m+c.start.column*f.characterWidth);a.push("<div class='",b,"' style='","height:",
s,"px;","width:",e,"px;","top:",j,"px;","left:",c,"px;'></div>")}}).call(e.prototype);m.Marker=e});
define("ace/layer/text","require,exports,module,pilot/oop,pilot/dom,pilot/lang,pilot/useragent,pilot/event_emitter".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/dom"),e=a("pilot/lang"),g=a("pilot/useragent"),k=a("pilot/event_emitter").EventEmitter,b=function(a){this.element=c.createElement("div");this.element.className="ace_layer ace_text-layer";this.element.style.width="auto";a.appendChild(this.element);this.$characterSize=this.$measureSizes()||{width:0,height:0};this.$pollSizeChanges()};
(function(){j.implement(this,k);this.EOF_CHAR="¶";this.EOL_CHAR="¬";this.TAB_CHAR="→";this.SPACE_CHAR="·";this.$padding=0;this.setPadding=function(a){this.$padding=a;this.element.style.padding="0 "+a+"px"};this.getLineHeight=function(){return this.$characterSize.height||1};this.getCharacterWidth=function(){return this.$characterSize.width||1};this.checkForSizeChanges=function(){var a=this.$measureSizes();if(a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==
a.height)){this.$characterSize=a;this._dispatchEvent("changeCharaterSize",{data:a})}};this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)};this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1};this.$measureSizes=function(){if(!this.$measureNode){var a=this.$measureNode=c.createElement("div"),b=a.style;b.width=b.height="auto";b.left=b.top="-40000px";b.visibility="hidden";b.position="absolute";b.overflow=
"visible";b.whiteSpace="nowrap";a.innerHTML=e.stringRepeat("Xy",1E3);if(document.body)document.body.appendChild(a);else{for(b=this.element.parentNode;!c.hasCssClass(b,"ace_editor");)b=b.parentNode;b.appendChild(a)}}var b=this.$measureNode.style,a=c.computedStyle(this.element),g;for(g in this.$fontStyles)b[g]=a[g];g={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/2E3};return g.width==0&&g.height==0?null:g};this.setSession=function(a){this.session=a};this.showInvisibles=false;
this.setShowInvisibles=function(a){if(this.showInvisibles==a)return false;this.showInvisibles=a;return true};this.$tabStrings=[];this.$computeTabString=function(){for(var a=this.session.getTabSize(),b=this.$tabStrings=[0],c=1;c<a+1;c++)this.showInvisibles?b.push("<span class='ace_invisible'>"+this.TAB_CHAR+Array(c).join(" ")+"</span>"):b.push(Array(c+1).join(" "))};this.updateLines=function(a,b,e){this.$computeTabString();(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&
this.scrollLines(a);this.config=a;for(var g=Math.max(b,a.firstRow),e=Math.min(e,a.lastRow),b=this.element.childNodes,k=0,a=a.firstRow;a<g;a++){var j=this.session.getFoldLine(a);if(j)if(j.containsRow(g))break;else a=j.end.row;k++}for(;g<=e;g++)if(a=b[k++]){var j=[],m=this.session.getTokens(g,g);this.$renderLine(j,g,m[0].tokens,true);c.setInnerHtml(a,j.join(""));g=this.session.getRowFoldEnd(g)}};this.scrollLines=function(a){this.$computeTabString();var b=this.config;this.config=a;if(!b||b.lastRow<a.firstRow||
a.lastRow<b.firstRow)return this.update(a);var c=this.element;if(b.firstRow<a.firstRow)for(var e=this.session.getFoldedRowCount(b.firstRow,a.firstRow-1);e>0;e--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(e=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);e>0;e--)c.removeChild(c.lastChild);if(a.firstRow<b.firstRow){e=this.$renderLinesFragment(a,a.firstRow,b.firstRow-1);c.firstChild?c.insertBefore(e,c.firstChild):c.appendChild(e)}if(a.lastRow>b.lastRow){e=this.$renderLinesFragment(a,
b.lastRow+1,a.lastRow);c.appendChild(e)}};this.$renderLinesFragment=function(a,b,e){for(var a=document.createDocumentFragment(),g=this.session.getNextFold(b),k=g?g.start.row:Infinity;;){if(b>k){b=g.end.row+1;k=(g=this.session.getNextFold(b))?g.start.row:Infinity}if(b>e)break;var j=c.createElement("div"),m=[],q=this.session.getTokens(b,b);q.length==1&&this.$renderLine(m,b,q[0].tokens,false);j.innerHTML=m.join("");for(j=j.childNodes;j.length;)a.appendChild(j[0]);b++}return a};this.update=function(a){this.$computeTabString();
this.config=a;for(var b=[],e=a.lastRow,a=a.firstRow,g=this.session.getNextFold(a),k=g?g.start.row:Infinity;;){if(a>k){a=g.end.row+1;k=(g=this.session.getNextFold(a))?g.start.row:Infinity}if(a>e)break;var j=this.session.getTokens(a,a);j.length==1&&this.$renderLine(b,a,j[0].tokens,false);a++}this.element=c.setInnerHtml(this.element,b.join(""))};this.$textToken={text:true,rparen:true,lparen:true};this.$renderToken=function(a,b,c,e){var k=this,j=e.replace(/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,
function(a,c,e,f){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){a=k.session.getScreenTabSize(b+f);b=b+(a-1);return k.$tabStrings[a]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/))return k.showInvisibles?"<span class='ace_invisible'>"+Array(a.length+1).join(k.SPACE_CHAR)+"</span>":" ";b=b+1;return"<span class='ace_cjk' style='width:"+
k.config.characterWidth*2+"px'>"+a+"</span>"});if(this.$textToken[c.type])a.push(j);else{c="ace_"+c.type.replace(/\./g," ace_");a.push("<span class='",c,"'>",j,"</span>")}return b+e.length};this.$renderLineCore=function(a,b,c,e,g){var k=0,j=0,m,x=0;m=!e||e.length==0?Number.MAX_VALUE:e[0];g||a.push("<div class='ace_line' style='height:",this.config.lineHeight,"px","'>");for(var A=0;A<c.length;A++){var B=c[A],r=B.value;if(k+r.length<m){x=this.$renderToken(a,x,B,r);k=k+r.length}else{for(;k+r.length>=
m;){this.$renderToken(a,x,B,r.substring(0,m-k));r=r.substring(m-k);k=m;g||a.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px","'>");j++;x=0;m=e[j]||Number.MAX_VALUE}if(r.length!=0){k=k+r.length;x=this.$renderToken(a,x,B,r)}}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push("<span class='ace_invisible'>"+this.EOL_CHAR+"</span>"):a.push("<span class='ace_invisible'>"+this.EOF_CHAR+"</span>"));a.push("</div>")};this.$renderLine=function(a,b,c,e){if(this.session.isRowFolded(b))this.$renderFoldLine(a,
b,c,e);else{var g=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,g,e)}};this.$renderFoldLine=function(a,b,c,e){var g=this.session.getFoldLine(b),k=[];g.walk(function(a,b,e,f,g){if(a)k.push({type:"fold",value:a});else{if(g)c=this.session.getTokens(b,b)[0].tokens;if(c.length!=0)a:{a=c;for(g=b=0;g+a[b].value.length<f;){g=g+a[b].value.length;b++;if(b==a.length)break a}if(g!=f){var j=a[b].value.substring(f-g);j.length>e-f&&(j=j.substring(0,e-f));k.push({type:a[b].type,value:j});g=f+j.length;
b=b+1}for(;g<e;){j=a[b].value;j.length+g>e&&(j=j.substring(0,e-g));k.push({type:a[b].type,value:j});g=g+j.length;b=b+1}}}}.bind(this),g.end.row,this.session.getLine(g.end.row).length);this.$renderLineCore(a,b,k,this.session.$useWrapMode?this.session.$wrapData[b]:null,e)};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode);delete this.$measureNode}}).call(b.prototype);m.Text=b});
define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,m){var j=a("pilot/dom"),c=function(a){this.element=j.createElement("div");this.element.className="ace_layer ace_cursor-layer";a.appendChild(this.element);this.cursor=j.createElement("div");this.cursor.className="ace_cursor ace_hidden";this.element.appendChild(this.cursor);this.isVisible=!1};(function(){this.$padding=0;this.setPadding=function(a){this.$padding=a};this.setSession=function(a){this.session=a};this.hideCursor=
function(){this.isVisible=!1;j.addCssClass(this.cursor,"ace_hidden");clearInterval(this.blinkId)};this.showCursor=function(){this.isVisible=!0;j.removeCssClass(this.cursor,"ace_hidden");this.cursor.style.visibility="visible";this.restartTimer()};this.restartTimer=function(){clearInterval(this.blinkId);if(this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden";setTimeout(function(){a.style.visibility="visible"},400)},1E3)}};this.getPixelPosition=function(a){if(!this.config||
!this.session)return{left:0,top:0};var c=this.session.documentToScreenPosition(this.session.selection.getCursor());return{left:Math.round(this.$padding+c.column*this.config.characterWidth),top:(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight}};this.update=function(a){this.config=a;this.pixelPos=this.getPixelPosition(!0);this.cursor.style.left=this.pixelPos.left+"px";this.cursor.style.top=this.pixelPos.top+"px";this.cursor.style.width=a.characterWidth+"px";this.cursor.style.height=a.lineHeight+
"px";a=this.session.getOverwrite();a!=this.overwrite&&((this.overwrite=a)?j.addCssClass(this.cursor,"ace_overwrite"):j.removeCssClass(this.cursor,"ace_overwrite"));this.restartTimer()};this.destroy=function(){clearInterval(this.blinkId)}}).call(c.prototype);m.Cursor=c});
define("ace/scrollbar","require,exports,module,pilot/oop,pilot/dom,pilot/event,pilot/event_emitter".split(","),function(a,m){var j=a("pilot/oop"),c=a("pilot/dom"),e=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,k=function(a){this.element=c.createElement("div");this.element.className="ace_sb";this.inner=c.createElement("div");this.element.appendChild(this.inner);a.appendChild(this.element);this.width=c.scrollbarWidth();this.element.style.width=(this.width||15)+"px";e.addListener(this.element,
"scroll",this.onScroll.bind(this))};(function(){j.implement(this,g);this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})};this.getWidth=function(){return this.width};this.setHeight=function(a){this.element.style.height=a+"px"};this.setInnerHeight=function(a){this.inner.style.height=a+"px"};this.setScrollTop=function(a){this.element.scrollTop=a}}).call(k.prototype);m.ScrollBar=k});
define("ace/renderloop",["require","exports","module","pilot/event"],function(a,m){var j=a("pilot/event"),c=function(a){this.onRender=a;this.pending=!1;this.changes=0};(function(){this.schedule=function(a){this.changes|=a;if(!this.pending){this.pending=!0;var c=this;this.setTimeoutZero(function(){c.pending=!1;var a=c.changes;c.changes=0;c.onRender(a)})}};(this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||
window.msRequestAnimationFrame)?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var c=this;j.addListener(window,"message",function(a){c.callback&&a.data==c.messageName&&(j.stopPropagation(a),c.callback())});this.attached=!0}this.callback=a;window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(c.prototype);m.RenderLoop=c});
define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,m){a("pilot/dom").importCssString(".ace-tm .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tm .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tm .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.ace-tm .ace_gutter-layer { width: 100%; text-align: right;}.ace-tm .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.ace-tm .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tm .ace_text-layer { cursor: text;}.ace-tm .ace_cursor { border-left: 2px solid black;}.ace-tm .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid black;} .ace-tm .ace_line .ace_invisible { color: rgb(191, 191, 191);}.ace-tm .ace_line .ace_keyword { color: blue;}.ace-tm .ace_line .ace_constant.ace_buildin { color: rgb(88, 72, 246);}.ace-tm .ace_line .ace_constant.ace_language { color: rgb(88, 92, 246);}.ace-tm .ace_line .ace_constant.ace_library { color: rgb(6, 150, 14);}.ace-tm .ace_line .ace_invalid { background-color: rgb(153, 0, 0); color: white;}.ace-tm .ace_line .ace_fold { background-color: #E4E4E4; border-radius: 3px;}.ace-tm .ace_line .ace_support.ace_function { color: rgb(60, 76, 114);}.ace-tm .ace_line .ace_support.ace_constant { color: rgb(6, 150, 14);}.ace-tm .ace_line .ace_support.ace_type,.ace-tm .ace_line .ace_support.ace_class { color: rgb(109, 121, 222);}.ace-tm .ace_line .ace_keyword.ace_operator { color: rgb(104, 118, 135);}.ace-tm .ace_line .ace_string { color: rgb(3, 106, 7);}.ace-tm .ace_line .ace_comment { color: rgb(76, 136, 107);}.ace-tm .ace_line .ace_comment.ace_doc { color: rgb(0, 102, 255);}.ace-tm .ace_line .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191);}.ace-tm .ace_line .ace_constant.ace_numeric { color: rgb(0, 0, 205);}.ace-tm .ace_line .ace_variable { color: rgb(49, 132, 149);}.ace-tm .ace_line .ace_xml_pe { color: rgb(104, 104, 91);}.ace-tm .ace_marker-layer .ace_selection { background: rgb(181, 213, 255);}.ace-tm .ace_marker-layer .ace_step { background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack { background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active_line { background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_marker-layer .ace_selected_word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_string.ace_regex { color: rgb(255, 0, 0)}");
m.cssClass="ace-tm"});define("pilot/environment",["require","exports","module","pilot/settings"],function(a,m){var j=a("pilot/settings").settings;m.create=function(){return{settings:j}}});define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }");
define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }");
define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}');
define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}");
define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}");
define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}");
define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}');
define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}");define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}');
define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}');
define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}');
define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }");
define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }");
define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }");
define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}");
require(["ace/ace"],function(a){window.ace=a});
define("ace/mode/json","require,exports,module,pilot/oop,ace/mode/text,ace/tokenizer,ace/mode/json_highlight_rules,ace/mode/matching_brace_outdent,ace/range,ace/mode/behaviour/cstyle".split(","),function(a,m){var j=a("pilot/oop"),c=a("ace/mode/text").Mode,e=a("ace/tokenizer").Tokenizer,g=a("ace/mode/json_highlight_rules").JsonHighlightRules,k=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent;a("ace/range");var b=a("ace/mode/behaviour/cstyle").CstyleBehaviour,f=function(){this.$tokenizer=new e((new g).getRules());
this.$outdent=new k;this.$behaviour=new b};j.inherits(f,c);(function(){this.getNextLineIndent=function(a,b,c){var e=this.$getIndent(b);this.$tokenizer.getLineTokens(b,a);a=="start"&&b.match(/^.*[\{\(\[]\s*$/)&&(e=e+c);return e};this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)};this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(f.prototype);m.Mode=f});
define("ace/mode/json_highlight_rules","require,exports,module,pilot/oop,pilot/lang,ace/mode/text_highlight_rules".split(","),function(a,m){var j=a("pilot/oop");a("pilot/lang");var c=a("ace/mode/text_highlight_rules").TextHighlightRules,e=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",
regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};j.inherits(e,c);m.JsonHighlightRules=e});
define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,m){var j=a("ace/range").Range,c=function(){};(function(){this.checkOutdent=function(a,c){return/^\s+$/.test(a)?/^\s*\}/.test(c):!1};this.autoOutdent=function(a,c){var k=a.getLine(c).match(/^(\s*\})/);if(!k)return 0;var k=k[1].length,b=a.findMatchingBracket({row:c,column:k});if(!b||b.row==c)return 0;b=this.$getIndent(a.getLine(b.row));a.replace(new j(c,0,c,k-1),b)};this.$getIndent=function(a){return(a=a.match(/^(\s+)/))?
a[1]:""}}).call(c.prototype);m.MatchingBraceOutdent=c});
define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,m){var j=a("pilot/oop"),c=a("ace/mode/behaviour").Behaviour,e=function(){this.add("braces","insertion",function(a,c,b,e,j){if("{"==j)return a=b.getSelectionRange(),e=e.doc.getTextRange(a),""!==e?{text:"{"+e+"}",selection:!1}:{text:"{}",selection:[1,1]};if("}"==j){if(b=b.getCursorPosition(),c=e.doc.getLine(b.row),j=c.substring(b.column,b.column+1),"}"==j&&null!==e.$findOpeningBracket("}",{column:b.column+
1,row:b.row}))return{text:"",selection:[1,1]}}else if("\n"==j&&(b=b.getCursorPosition(),c=e.doc.getLine(b.row),j=c.substring(b.column,b.column+1),"}"==j)){b=e.findMatchingBracket({row:b.row,column:b.column+1});if(!b)return!1;a=this.getNextLineIndent(a,c.substring(0,c.length-1),e.getTabString());e=this.$getIndent(e.doc.getLine(b.row));return{text:"\n"+a+"\n"+e,selection:[1,a.length,1,a.length]}}return!1});this.add("braces","deletion",function(a,c,b,e,j){a=e.doc.getTextRange(j);return!j.isMultiLine()&&
"{"==a&&"}"==e.doc.getLine(j.start.row).substring(j.end.column,j.end.column+1)?(j.end.column++,j):!1});this.add("parens","insertion",function(a,c,b,e,j){return"("==j?(a=b.getSelectionRange(),e=e.doc.getTextRange(a),""!==e?{text:"("+e+")",selection:!1}:{text:"()",selection:[1,1]}):")"==j&&(a=b.getCursorPosition(),")"==e.doc.getLine(a.row).substring(a.column,a.column+1)&&null!==e.$findOpeningBracket(")",{column:a.column+1,row:a.row}))?{text:"",selection:[1,1]}:!1});this.add("parens","deletion",function(a,
c,b,e,j){a=e.doc.getTextRange(j);return!j.isMultiLine()&&"("==a&&")"==e.doc.getLine(j.start.row).substring(j.start.column+1,j.start.column+2)?(j.end.column++,j):!1});this.add("string_dquotes","insertion",function(a,c,b,e,j){if('"'==j){a=b.getSelectionRange();c=e.doc.getTextRange(a);if(""!==c)return{text:'"'+c+'"',selection:!1};b=b.getCursorPosition();c=e.doc.getLine(b.row);if("\\"==c.substring(b.column-1,b.column))return!1;for(var e=e.getTokens(a.start.row,a.start.row)[0].tokens,j=0,m,u=-1,s=0;s<
e.length;s++){m=e[s];"string"==m.type?u=-1:0>u&&(u=m.value.indexOf('"'));if(m.value.length+j>a.start.column)break;j+=e[s].value.length}if(!m||0>u&&"comment"!==m.type&&("string"!==m.type||a.start.column!==m.value.length+j-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&"string"===m.type&&'"'==c.substring(b.column,b.column+1))return{text:"",selection:[1,1]}}return!1});this.add("string_dquotes","deletion",function(a,c,b,e,j){a=e.doc.getTextRange(j);return!j.isMultiLine()&&
'"'==a&&'"'==e.doc.getLine(j.start.row).substring(j.start.column+1,j.start.column+2)?(j.end.column++,j):!1})};j.inherits(e,c);m.CstyleBehaviour=e});
define("ace/theme/git-hubby",["require","exports","module"],function(a,m){a("pilot/dom").importCssString(".ace--git-hubby .ace_editor{border:2px solid rgb(159, 159, 159);}.ace--git-hubby .ace_editor.ace_focus{border:2px solid #327fbd;}.ace--git-hubby .ace_gutter{width:50px; background:#e8e8e8; color:#333; overflow :hidden;}.ace--git-hubby .ace_gutter-layer{width:100%; text-align:right;}.ace--git-hubby .ace_gutter-layer .ace_gutter-cell{padding-right:6px;}.ace--git-hubby .ace_print_margin{width:1px; background:#e8e8e8;}.ace--git-hubby .ace_scroller{background-color:#FFF;}.ace--git-hubby .ace_text-layer{cursor:text; color:#000000;}.ace--git-hubby .ace_cursor{border-left:2px solid #000000;}.ace--git-hubby .ace_cursor.ace_overwrite{border-left:0px; border-bottom:1px solid #000000;}.ace--git-hubby .ace_marker-layer .ace_selection{background:#BCD5FA;}.ace--git-hubby .ace_marker-layer .ace_step{background:rgb(198, 219, 174);}.ace--git-hubby .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px; border:1px solid #BFBFBF;}.ace--git-hubby .ace_marker-layer .ace_active_line{background:rgba(0, 0, 0, 0.071);}.ace--git-hubby .ace_invisible{color:#BFBFBF;}.ace--git-hubby .ace_keyword{color:#000000;}.ace--git-hubby .ace_constant.ace_language{color:#000000;}.ace--git-hubby .ace_constant.ace_numeric{color:#009999;}.ace--git-hubby .ace_string{color:#DD1144;}.ace--git-hubby .ace_string.ace_regexp{color:#009926;}.ace--git-hubby .ace_comment{font-style:italic; color:#999988;}.ace--git-hubby .ace_variable.ace_language{color:#108888;}.ace--git-hubby .ace_entity.ace_other.ace_attribute-name{color:#0A8585;}.ace--git-hubby .ace_markup.ace_underline{text-decoration:underline;}");m.cssClass=
"ace--git-hubby"});
function apprise(a,m,j){var c={confirm:!1,verify:!1,input:!1,animate:!1,textOk:"Ok",textCancel:"Cancel",textYes:"Yes",textNo:"No"};if(m)for(var e in c)"undefined"==typeof m[e]&&(m[e]=c[e]);c=$(document).height();e=$(document).width();$("body").append('<div class="appriseOverlay" id="aOverlay"></div>');$(".appriseOverlay").css("height",c).css("width",e).fadeIn(100);$("body").append('<div class="appriseOuter"></div>');$(".appriseOuter").append('<div class="appriseInner"></div>');$(".appriseInner").append(a);
$(".appriseOuter").css("left",($(window).width()-$(".appriseOuter").width())/2+$(window).scrollLeft()+"px");m?m.animate?(a=m.animate,isNaN(a)&&(a=400),$(".appriseOuter").css("top","-200px").show().animate({top:"100px"},a)):$(".appriseOuter").css("top","100px").fadeIn(200):$(".appriseOuter").css("top","100px").fadeIn(200);m&&m.input&&("string"==typeof m.input?$(".appriseInner").append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" value="'+m.input+'" /></div>'):$(".appriseInner").append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" /></div>'),
$(".aTextbox").focus());$(".appriseInner").append('<div class="aButtons"></div>');m?m.confirm||m.input?($(".aButtons").append('<button value="ok">'+m.textOk+"</button>"),$(".aButtons").append('<button value="cancel">'+m.textCancel+"</button>")):m.verify?($(".aButtons").append('<button value="ok">'+m.textYes+"</button>"),$(".aButtons").append('<button value="cancel">'+m.textNo+"</button>")):$(".aButtons").append('<button value="ok">'+m.textOk+"</button>"):$(".aButtons").append('<button value="ok">Ok</button>');
$(document).keydown(function(a){if($(".appriseOverlay").is(":visible")){a.keyCode==13&&$('.aButtons > button[value="ok"]').click();a.keyCode==27&&$('.aButtons > button[value="cancel"]').click()}});var g=$(".aTextbox").val();g||(g=!1);$(".aTextbox").keyup(function(){g=$(this).val()});$(".aButtons > button").click(function(){$(".appriseOverlay").remove();$(".appriseOuter").remove();if(j){var a=$(this).attr("value");a=="ok"?m?m.input?j(g):j(true):j(true):a=="cancel"&&j(false)}})}
!function(a){var m=function(a,c){this.init("tooltip",a,c)};m.prototype={constructor:m,init:function(j,c,e){this.type=j;this.$element=a(c);this.options=this.getOptions(e);this.enabled=!0;"manual"!=this.options.trigger&&(j="hover"==this.options.trigger?"mouseenter":"focus",c="hover"==this.options.trigger?"mouseleave":"blur",this.$element.on(j,this.options.selector,a.proxy(this.enter,this)),this.$element.on(c,this.options.selector,a.proxy(this.leave,this)));this.options.selector?this._options=a.extend({},
this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(j){j=a.extend({},a.fn[this.type].defaults,j,this.$element.data());j.delay&&"number"==typeof j.delay&&(j.delay={show:j.delay,hide:j.delay});return j},enter:function(j){var c=a(j.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.show?c.show():(c.hoverState="in",setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show))},leave:function(j){var c=a(j.currentTarget)[this.type](this._options).data(this.type);
!c.options.delay||!c.options.delay.hide?c.hide():(c.hoverState="out",setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide))},show:function(){var a,c,e,g,k,b,f;if(this.hasContent()&&this.enabled){a=this.tip();this.setContent();this.options.animation&&a.addClass("fade");b="function"==typeof this.options.placement?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement;c=/in/.test(b);a.remove().css({top:0,left:0,display:"block"}).appendTo(c?this.$element:document.body);
e=this.getPosition(c);g=a[0].offsetWidth;k=a[0].offsetHeight;switch(c?b.split(" ")[1]:b){case "bottom":f={top:e.top+e.height,left:e.left+e.width/2-g/2};break;case "top":f={top:e.top-k,left:e.left+e.width/2-g/2};break;case "left":f={top:e.top+e.height/2-k/2,left:e.left-g};break;case "right":f={top:e.top+e.height/2-k/2,left:e.left+e.width}}a.css(f).addClass(b).addClass("in")}},setContent:function(){var a=this.tip();a.find(".tooltip-inner").html(this.getTitle());a.removeClass("fade in top bottom left right")},
hide:function(){function j(){var e=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(e);c.remove()})}var c=this.tip();c.removeClass("in");a.support.transition&&this.$tip.hasClass("fade")?j():c.remove()},fixTitle:function(){var a=this.$element;if(a.attr("title")||"string"!=typeof a.attr("data-original-title"))a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},
getPosition:function(j){return a.extend({},j?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a;a=this.$element;var c=this.options;a=a.attr("data-original-title")||("function"==typeof c.title?c.title.call(a[0]):c.title);return a=(a||"").toString().replace(/(^\s*|\s*$)/,"")},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=
this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}};a.fn.tooltip=function(j){return this.each(function(){var c=a(this),e=c.data("tooltip"),g="object"==typeof j&&j;e||c.data("tooltip",e=new m(this,g));if("string"==typeof j)e[j]()})};a.fn.tooltip.Constructor=m;a.fn.tooltip.defaults={animation:!0,delay:0,selector:!1,placement:"top",trigger:"hover",
title:"",template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'}}(window.jQuery);
!function(a){var m=function(a,c){this.init("popover",a,c)};m.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:m,setContent:function(){var j=this.tip(),c=this.getTitle(),e=this.getContent();j.find(".popover-title")["object"==a.type(c)?"append":"html"](c);j.find(".popover-content > *")["object"==a.type(e)?"append":"html"](e);j.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a;a=this.$element;
var c=this.options;a=a.attr("data-content")||("function"==typeof c.content?c.content.call(a[0]):c.content);return a=a.toString().replace(/(^\s*|\s*$)/,"")},tip:function(){this.$tip||(this.$tip=a(this.options.template));return this.$tip}});a.fn.popover=function(j){return this.each(function(){var c=a(this),e=c.data("popover"),g="object"==typeof j&&j;e||c.data("popover",e=new m(this,g));if("string"==typeof j)e[j]()})};a.fn.popover.Constructor=m;a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,
{placement:"right",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery);
!function(a){function m(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end);j.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c);j.call(b)})}function j(){this.$element.hide().trigger("hidden");c.call(this)}function c(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var g=a.support.transition&&c;this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body);"static"!=this.options.backdrop&&
this.$backdrop.click(a.proxy(this.hide,this));g&&this.$backdrop[0].offsetWidth;this.$backdrop.addClass("in");g?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(e,this)):e.call(this)):b&&b()}function e(){this.$backdrop.remove();this.$backdrop=null}function g(){var b=this;if(this.isShown&&this.options.keyboard)a(document).on("keyup.dismiss.modal",
function(a){27==a.which&&b.hide()});else this.isShown||a(document).off("keyup.dismiss.modal")}var k=function(b,c){this.options=c;this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};k.prototype={constructor:k,toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var b=this;this.isShown||(a("body").addClass("modal-open"),this.isShown=!0,this.$element.trigger("show"),g.call(this),c.call(this,function(){var c=a.support.transition&&
b.$element.hasClass("fade");!b.$element.parent().length&&b.$element.appendTo(document.body);b.$element.show();c&&b.$element[0].offsetWidth;b.$element.addClass("in");c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")}))},hide:function(b){b&&b.preventDefault();this.isShown&&(this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.trigger("hide").removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?m.call(this):
j.call(this))}};a.fn.modal=function(b){return this.each(function(){var c=a(this),e=c.data("modal"),g=a.extend({},a.fn.modal.defaults,c.data(),"object"==typeof b&&b);e||c.data("modal",e=new k(this,g));if("string"==typeof b)e[b]();else g.show&&e.show()})};a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0};a.fn.modal.Constructor=k;a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),e,g=a(c.attr("data-target")||(e=c.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,
"")),c=g.data("modal")?"toggle":a.extend({},g.data(),c.data());b.preventDefault();g.modal(c)})})}(window.jQuery);
(function(a){function m(j){if("string"===typeof j.data){var c=j.handler,e=j.data.toLowerCase().split(" ");j.handler=function(g){if(!(this!==g.target&&(/textarea|select/i.test(g.target.nodeName)||"text"===g.target.type))){var k="keypress"!==g.type&&a.hotkeys.specialKeys[g.which],b=String.fromCharCode(g.which).toLowerCase(),f="",j={};g.altKey&&"alt"!==k&&(f+="alt+");g.ctrlKey&&"ctrl"!==k&&(f+="ctrl+");g.metaKey&&!g.ctrlKey&&"meta"!==k&&(f+="meta+");g.shiftKey&&"shift"!==k&&(f+="shift+");k?j[f+k]=!0:
(j[f+b]=!0,j[f+a.hotkeys.shiftNums[b]]=!0,"shift+"===f&&(j[a.hotkeys.shiftNums[b]]=!0));k=0;for(b=e.length;k<b;k++)if(j[e[k]])return c.apply(this,arguments)}}}}a.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",
109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};a.each(["keydown","keyup","keypress"],function(){a.event.special[this]={add:m}})})(jQuery);
jQuery.tablesorter.addParser({id:"size",is:function(a){return a.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(a){a=a.trim().split(" ");return parseFloat(a.shift())*Math.pow(1024,_.indexOf("Bytes,KB,MB,GB,TB,PB".split(","),a.shift()))},type:"numeric"});window.Genghis={Base:{},Models:{},Collections:{},Views:{},boot:function(a){a+="/"==a.charAt(a.length-1)?"":"/";window.App=new Genghis.Views.App({base_url:a});Backbone.history.start({pushState:!0,root:a})}};
Genghis.Util={route:function(a){return a.replace(Genghis.baseUrl,"").replace(/^\//,"")},parseQuery:function(a){var m={};a.length&&_.each(a.split("&"),function(a){var a=a.split("="),c=a.shift();m[c]=a.join("=")});return m},buildQuery:function(a){return _.map(a,function(a,j){return j+"="+a}).join("&")},humanizeSize:function(a){if(-0.0==a)return"n/a";var m=parseInt(Math.floor(Math.log(a)/Math.log(1024)),10);return(0===m?a/Math.pow(1024,m):(a/Math.pow(1024,m)).toFixed(1))+" "+"Bytes,KB,MB,GB,TB,PB".split(",")[m]},
humanizeCount:function(a){var m="",a=a||0;1E3<a&&(a=Math.floor(a/1E3),m=" k");1E3<a&&(a=Math.floor(a/1E3),m=" M");return 1E3<a?"...":a+m},escape:function(a){if(a)return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")},formatJSON:function(a){function m(a,c,b){return'<span class="'+c+'">'+(b?a:null!==a?a.toString().replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"):"")+"</span>"}function j(a){var k=typeof a,b=[];null===
a?b.push(m("null","null")):a&&a.constructor==Array?b.push(c(a)):"object"==k?b.push(e(a)):"number"==k?b.push(m(a,"num")):"string"==k?(k=m(a,"value"),/^https?:\/\/[^\s]+$/.test(a)&&(k='<a href="'+a+'">'+k+"</a>"),b.push(m('"'+k+'"',"string",!0))):"boolean"==k&&b.push(m(a,"bool"));return b.join("")}function c(a){a=_.map(a,function(a){return"<li>"+j(a)+"</li>"});return a.length?'[<ul class="array">'+a.join("")+"</ul>]":"[ ]"}function e(a){var c=_.detect(a,function(a,b){return _.include(["$id","_id"],
b)})&&_.detect(a,function(a,b){return"$ref"===b}),b="obj"+(c?" db-ref":""),a=_.map(a,function(a,b){return"<li"+(c&&_.include(["$ref","$id","_id","$db"],b)?' class="db-ref-'+b.substring(1)+'"':"")+">"+m(b,"prop")+j(a)+"</li>"});return a.length?'{<ul class="'+b+'">'+a.join("")+"</ul>}":"{ }"}return j(a)},attachCollapsers:function(a,m){$('<div class="collapser">-</div>').prependTo($(".document ul",a).parent("li, .document"));$(".document",a).on("click","div.collapser",function(a){function c(a){if(!("collapserSummary"in
a.data())){var b,c=$(_.detect(a.find("> li > span.prop"),function(a){return/^\s*(name|title)\s*/i.test($(a).text())})).siblings("span");0===c.length&&(c=$(_.detect(a.find("> li > span:not(.prop)"),function(a){a=$(a);return a.hasClass("num")||a.hasClass("boolean")||a.hasClass("string")&&64>a.text().length})));c.length?(b=c.siblings(".prop").text(),a.data("collapserSummary",'<span class="summary">'+(b?b+": ":"")+c.text()+"</span>")):a.data("collapserSummary","")}return a.data("collapserSummary")}var e=
$(this).parent(),g=e.children("ul"),e=e.children(".collapser");g.is(":visible")?(g.hide(),$('<span class="ellipsis"> '+c(g)+" … </span>").insertBefore(g).click(arguments.callee),e.addClass("collapsed").text("+")):(g.siblings(".ellipsis").remove(),g.show(),e.removeClass("collapsed").text("-"));a.preventDefault()});m&&$(".document > .collapser",a).click()}};
Genghis.Base.RowView=Backbone.View.extend({tagName:"tr",events:{"click a.name":"navigate","click button.destroy":"destroy"},initialize:function(){_.bindAll(this,"render","navigate","remove","destroy");this.model.bind("change",this.render);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model));$(this.el).find(".label[title]").tooltip({placement:"below"});this.$(".has-details").popover({html:!0,content:function(){return $(this).siblings(".details").html()},
title:function(){return $(this).siblings(".details").attr("title")},trigger:"manual"}).hoverIntent(function(){$(this).popover("show")},function(){$(this).popover("hide")});return this},navigate:function(a){a.preventDefault();App.Router.navigate(Genghis.Util.route($(a.target).attr("href")),!0)},remove:function(){$(this.el).remove()},destroy:function(){var a=this.model;apprise("Really? There is no undo.",{confirm:!0,textOk:"<strong>Yes</strong>, delete "+(a.has("name")?a.get("name"):"")+" forever"},
function(m){m&&a.destroy()})}});
Genghis.Base.SectionView=Backbone.View.extend({events:{"click .add-form button.show":"showAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"render","updateTitle","showAddForm","showAddFormIfVisible","submitAddForm","closeAddForm","updateOnKeyup","addModel","addModelAndUpdate","addAll");this.model&&this.model.bind("change",this.updateTitle);this.collection&&(this.collection.bind("reset",
this.render),this.collection.bind("add",this.addModelAndUpdate));$(document).bind("keyup","c",this.showAddFormIfVisible);this.render()},render:function(){$(this.el).html(this.template({}));this.addForm=this.$(".add-form");this.addButton=this.$(".add-form button.add");this.addInput=this.$(".add-form input");this.cancelButton=this.$(".add-form button.cancel");this.addAll();this.$(".help",this.addForm).tooltip();var a={};a[this.$("table thead th").length-1]={sorter:!1};this.$("table").tablesorter({headers:a,
textExtraction:function(a){return $(".value",a).text()||$(a).text()}});this.collection.size()&&this.$("table").trigger("sorton",[[[0,0]]]);return this},updateTitle:function(){this.$("> header h2").text(this.formatTitle(this.model))},showAddForm:function(){this.addForm.removeClass("inactive");this.addInput.focus()},showAddFormIfVisible:function(a){$(this.el).is(":visible")&&(a.preventDefault(),this.showAddForm())},submitAddForm:function(){this.collection.create({name:this.addInput.val()});this.closeAddForm()},
closeAddForm:function(){this.addForm.addClass("inactive");this.addInput.val("")},updateOnKeyup:function(a){13==a.keyCode&&this.submitAddForm();27==a.keyCode&&this.closeAddForm()},addModel:function(a){a=new this.rowView({model:a});this.$("table tbody").append(a.render().el)},addModelAndUpdate:function(a){this.addModel(a);this.$("table").trigger("update")},addAll:function(){this.$("table tbody").html("");this.collection.each(this.addModel);$(this.el).removeClass("spinning")}});
Genghis.Models.Alert=Backbone.Model.extend({defaults:{level:"warning",block:!1}});Genghis.Models.Collection=Backbone.Model.extend({});Genghis.Models.Database=Backbone.Model.extend({});
Genghis.Models.Document=Backbone.Model.extend({initialize:function(){_.bindAll(this,"prettyPrint","JSONish");var a=this.get("_id");a&&(this.id=a.$id||a)},parse:function(a){a._id&&(this.id=a._id.$id||a._id);return a},url:function(){var a=(!this.collection||!this.collection.url?null:_.isFunction(this.collection.url)?this.collection.url():this.collection.url)||this.urlRoot||urlError(),a=a.split("?").shift();return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},prettyPrint:function(){return Genghis.Util.formatJSON(this.toJSON())},
JSONish:function(){return JSON.stringify(this.toJSON(),null,4)}});Genghis.Models.Pagination=Backbone.Model.extend({defaults:{page:1,pages:1,limit:50,count:0,total:0},initialize:function(){_.bindAll(this,"decrementTotal")},decrementTotal:function(){this.set({total:this.get("total")-1,count:this.get("count")-1})}});
Genghis.Models.Selection=Backbone.Model.extend({defaults:{server:null,database:null,collection:null,query:null,page:null},initialize:function(){_.bindAll(this,"select","update","nextPage","previousPage");this.bind("change",this.update);this.Pagination=new Genghis.Models.Pagination;this.Servers=new Genghis.Collections.Servers;this.CurrentServer=new Genghis.Models.Server;this.Databases=new Genghis.Collections.Databases;this.CurrentDatabase=new Genghis.Models.Database;this.Collections=new Genghis.Collections.Collections;
this.CurrentCollection=new Genghis.Models.Collection;this.Documents=new Genghis.Collections.Documents;this.CurrentDocument=new Genghis.Models.Document},select:function(a,m,j,c,e,g){this.set({server:a||null,database:m||null,collection:j||null,document:c||null,query:e||null,page:g||null})},update:function(){var a=this.get("server"),m=this.get("database"),j=this.get("collection"),c=this.get("document"),e=this.get("query"),g=this.get("page"),k=Genghis.baseUrl,b={},k=k+"servers";this.Servers.url=k;this.Servers.fetch();
a?(k=k+"/"+a,this.CurrentServer.url=k,this.CurrentServer.fetch(),k+="/databases",this.Databases.url=k,this.Databases.fetch()):(this.CurrentServer.clear(),this.Databases.reset());m?(k=k+"/"+m,this.CurrentDatabase.url=k,this.CurrentDatabase.fetch(),k+="/collections",this.Collections.url=k,this.Collections.fetch()):(this.CurrentDatabase.clear(),this.Collections.reset());if(j){k=k+"/"+j;this.CurrentCollection.url=k;this.CurrentCollection.fetch();k+="/documents";a="";if(e||g)e&&(b.q=encodeURIComponent(e)),
g&&(b.page=encodeURIComponent(g)),a="?"+Genghis.Util.buildQuery(b);this.Documents.url=k+a;this.Documents.fetch()}else this.CurrentCollection.clear(),this.Documents.reset();c&&(this.CurrentDocument.id=c,this.CurrentDocument.urlRoot=k,this.CurrentDocument.fetch())},nextPage:function(){return 1+(this.get("page")||1)},previousPage:function(){return Math.max(1,(this.get("page")||1)-1)}});Genghis.Models.Server=Backbone.Model.extend({});
Genghis.Collections.Alerts=Backbone.Collection.extend({model:Genghis.Models.Alert,initialize:function(){_.bindAll(this,"handleError")},handleError:function(a){if(0!==a.readyState){try{data=JSON.parse(a.responseText)}catch(m){data={error:a.responseText}}msg=data.error||"<strong>FAIL</strong> An unexpected server error has occurred.";this.add({level:"error",msg:msg,block:!msg.search(/<(p|ul|ol|div)[ >]/)})}}});Genghis.Collections.Collections=Backbone.Collection.extend({model:Genghis.Models.Collection});
Genghis.Collections.Databases=Backbone.Collection.extend({model:Genghis.Models.Database});Genghis.Collections.Documents=Backbone.Collection.extend({model:Genghis.Models.Document,parse:function(a){Genghis.Selection.Pagination.set({page:a.page,pages:a.pages,count:a.documents.length,total:a.count});return a.documents}});Genghis.Collections.Servers=Backbone.Collection.extend({model:Genghis.Models.Server});
Genghis.Views.Alert=Backbone.View.extend({tagName:"div",template:_.template($("#alert-template").html()),events:{"click a.close":"destroy"},initialize:function(){_.bindAll(this,"render","remove","destroy");this.model.bind("change",this.render);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model.toJSON()));return this},destroy:function(){this.model.destroy()},remove:function(){$(this.el).remove()}});
Genghis.Views.Alerts=Backbone.View.extend({el:"aside#alerts",initialize:function(){_.bindAll(this,"render","addModel");this.collection.bind("reset",this.render);this.collection.bind("add",this.addModel)},render:function(){$(this.el).html("");return this},addModel:function(a){a=new Genghis.Views.Alert({model:a});$(this.el).append(a.render().el)}});
Genghis.Views.App=Backbone.View.extend({el:"section#genghis",initialize:function(){_.bindAll(this,"showSection");Genghis.baseUrl=this.options.base_url;Genghis.Selection=new Genghis.Models.Selection;Genghis.Alerts=new Genghis.Collections.Alerts;this.NavView=new Genghis.Views.Nav({model:Genghis.Selection});this.AlertsView=new Genghis.Views.Alerts({collection:Genghis.Alerts});this.KeyboardShortcutsView=new Genghis.Views.KeyboardShortcuts;this.ServersView=new Genghis.Views.Servers({collection:Genghis.Selection.Servers});
this.DatabasesView=new Genghis.Views.Databases({model:Genghis.Selection.CurrentServer,collection:Genghis.Selection.Databases});this.CollectionsView=new Genghis.Views.Collections({model:Genghis.Selection.CurrentDatabase,collection:Genghis.Selection.Collections});this.DocumentsView=new Genghis.Views.Documents({collection:Genghis.Selection.Documents});this.DocumentView=new Genghis.Views.Document({model:Genghis.Selection.CurrentDocument});this.Router=new Genghis.Router;$(".navbar a.brand").click(function(a){a.preventDefault();
App.Router.navigate("",!0)});$.getJSON(Genghis.baseUrl+"check-status").error(Genghis.Alerts.handleError).success(function(a){_.each(a.alerts,function(a){Genghis.Alerts.add(_.extend({block:!a.msg.search(/<(p|ul|ol|div)[ >]/i)},a))})});Genghis.Selection.change()},showSection:function(a){this.$("section").hide().filter("#"+(_.isArray(a)?a.join(",#"):a)).show();$(document).scrollTop(0)}});Genghis.Views.CollectionRow=Genghis.Base.RowView.extend({template:_.template($("#collection-row-template").html())});
Genghis.Views.Collections=Genghis.Base.SectionView.extend({el:"section#collections",template:_.template($("#collections-template").html()),rowView:Genghis.Views.CollectionRow,formatTitle:function(a){return a.id?a.id+" collections":"Collections"}});
Genghis.Views.DatabaseRow=Genghis.Base.RowView.extend({template:_.template($("#database-row-template").html()),destroy:function(){var a=this.model;apprise("<strong>Deleting is forever.</strong><br><br>Type <strong>DELETE</strong> to continue:",{input:!0,textOk:"Delete "+a.get("name")+" forever"},function(m){"DELETE"==m?a.destroy():apprise("<strong>Phew. That was close.</strong><br><br>"+a.get("name")+" was not deleted.")})}});
Genghis.Views.Databases=Genghis.Base.SectionView.extend({el:"section#databases",template:_.template($("#databases-template").html()),rowView:Genghis.Views.DatabaseRow,formatTitle:function(a){return a.id?a.id+" databases":"Databases"}});
Genghis.Views.Document=Backbone.View.extend({el:"section#document",template:_.template($("#document-template").html()),initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.render)},render:function(){var a=new Genghis.Views.DocumentView({model:this.model});$(this.el).removeClass("spinning").html(this.template({model:this.model}));this.$(".content").html(a.render().el);Genghis.Util.attachCollapsers(a.el);return this}});
Genghis.Views.DocumentView=Backbone.View.extend({tagName:"article",template:_.template($("#document-view-template").html()),events:{"click a.id":"navigate","click button.edit":"openEditDialog","click button.save":"saveDocument","click button.cancel":"cancelEdit","click button.destroy":"destroy","click .db-ref-ref .value":"navigateColl","click .db-ref-db .value":"navigateDb","click .db-ref-id .value":"navigateId"},initialize:function(){_.bindAll(this,"render","updateDocument","navigate","openEditDialog",
"cancelEdit","saveDocument","destroy","remove","navigateColl","navigateDb","navigateId");this.model.bind("change",this.updateDocument);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model));return this},updateDocument:function(){this.$(".document").html(this.model.prettyPrint()).show();Genghis.Util.attachCollapsers(this.el)},navigate:function(a){a.preventDefault();App.Router.navigate(Genghis.Util.route($(a.target).attr("href")),!0)},navigateDb:function(a){a=
$(a.target).parents(".db-ref").find(".db-ref-db .value").text();App.Router.redirectToDatabase(Genghis.Selection.CurrentServer.id,a)},navigateColl:function(a){var m=$(a.target).parents(".db-ref"),a=m.find(".db-ref-db .value").text()||Genghis.Selection.CurrentDatabase.id,m=m.find(".db-ref-ref .value").text();App.Router.redirectToCollection(Genghis.Selection.CurrentServer.id,a,m)},navigateId:function(a){var m=$(a.target).parents(".db-ref"),a=m.find(".db-ref-db .value").text()||Genghis.Selection.CurrentDatabase.id,
j=m.find(".db-ref-ref .value").text()||Genghis.Selection.CurrentCollection.id,m=m.find(".db-ref-id .value").text();App.Router.redirectToDocument(Genghis.Selection.CurrentServer.id,a,j,m)},openEditDialog:function(){var a=this.$(".well"),m=Math.max(180,Math.min(600,a.height()+40));$(this.el).addClass("edit");a.height(m);a=$('<div id="editor-'+this.model.id+'" class="genghis-document-editor"></div>').text(this.model.JSONish()).appendTo(a).height(m);this.$(".document").hide();this.editor=ace.edit("editor-"+
this.model.id);this.editor.setTheme("ace/theme/git-hubby");this.editor.setHighlightActiveLine(!1);this.editor.setShowPrintMargin(!1);this.editor.renderer.setShowGutter(!1);m=require("ace/mode/json").Mode;this.editor.getSession().setMode(new m);a.resize(_.throttle(this.editor.resize,100))},cancelEdit:function(){$(this.el).removeClass("edit");this.editor.destroy();this.$(".genghis-document-editor").remove();this.updateDocument();this.$(".well").height("auto")},saveDocument:function(){var a=this.model,
m=this.cancelEdit;$.ajax({type:"POST",url:Genghis.baseUrl+"convert-json",data:this.editor.getSession().getValue(),contentType:"application/json",async:!1,success:function(j){a.clear({silent:!0});a.set(j);a.save();m()},dataType:"json"})},destroy:function(){var a=this.model;apprise("Really? There is no undo.",{confirm:!0,textCancel:"Cancel",textOk:"<strong>Yes</strong>, delete document forever"},function(m){m&&(a.destroy(),Genghis.Selection.Pagination.decrementTotal())})},remove:function(){$(this.el).remove()}});
Genghis.Views.Documents=Backbone.View.extend({el:"section#documents",template:_.template($("#documents-template").html()),events:{"click button.add-document":"createDocument"},initialize:function(){_.bindAll(this,"render","addAll","addDocument","createDocument","createDocumentIfVisible");this.collection.bind("reset",this.addAll,this);this.collection.bind("add",this.addDocument,this);$(document).bind("keyup","c",this.createDocumentIfVisible);this.render()},render:function(){$(this.el).html(this.template({}));
this.HeaderView=new Genghis.Views.DocumentsHeader({model:Genghis.Selection.Pagination});this.NewDocumentView=new Genghis.Views.NewDocument({collection:Genghis.Selection.Documents});this.PaginationView=new Genghis.Views.Pagination({el:this.$(".pagination-wrapper"),model:Genghis.Selection.Pagination,collection:this.collection});this.addAll();return this},addAll:function(){this.$(".content").html("");this.collection.each(this.addDocument);$(this.el).removeClass("spinning")},addDocument:function(a){a=
(new Genghis.Views.DocumentView({model:a})).render();this.$(".content").append(a.el);Genghis.Util.attachCollapsers(a.el,3<this.collection.size())},createDocument:function(){this.NewDocumentView.show()},createDocumentIfVisible:function(a){$(this.el).is(":visible")&&(a.preventDefault(),this.createDocument())}});
Genghis.Views.DocumentsHeader=Backbone.View.extend({el:"section#documents > header h2",initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.render)},render:function(){var a,m=this.model.get("count"),j=this.model.get("page");this.model.get("pages");var c=this.model.get("limit"),e=this.model.get("total");a=""+e+" document"+(1!=e?"s":"");if(e!=m){var g=(j-1)*c+1,m=Math.min((j-1)*c+m,e);a=""+g+" - "+m+" of "+a}$(this.el).html(a);return this}});
Genghis.Views.KeyboardShortcuts=Backbone.View.extend({tagName:"div",template:_.template($("#keyboard-shortcuts-template").html()),events:{"click a.close":"hide"},initialize:function(){_.bindAll(this,"render","show","hide","toggle");$(document).bind("keyup","shift+/",this.toggle);$("footer a.keyboard-shortcuts").click(this.show);this.render()},render:function(){$(this.el).html(this.template()).modal({backdrop:!0,keyboard:!0,show:!1});return this},show:function(a){a.preventDefault();$(this.el).modal("show")},
hide:function(a){a.preventDefault();$(this.el).modal("hide")},toggle:function(){$(this.el).modal("toggle")}});
Genghis.Views.Nav=Backbone.View.extend({el:".navbar nav",template:_.template($("#nav-template").html()),events:{"keyup input#navbar-query":"findDocuments","click a":"navigate"},initialize:function(){_.bindAll(this,"render","toggleSections","updateQuery","findDocuments","navigate","navigateToServers","navigateUp","focusSearch");this.model.bind("change",this.toggleSections);this.model.bind("change",this.updateQuery);$("body").bind("click",function(){$(".dropdown-toggle, .menu").parent("li").removeClass("open")});
$(document).bind("keyup","s",this.navigateToServers);$(document).bind("keyup","u",this.navigateUp);this.render()},render:function(){$(this.el).html(this.template({query:this.model.get("query")}));this.$("form").submit(function(a){a.preventDefault()});$(document).bind("keyup","/",this.focusSearch);this.ServerNavView=new Genghis.Views.NavSection({el:$("li.server",this.el),model:this.model.CurrentServer,collection:this.model.Servers});this.DatabaseNavView=new Genghis.Views.NavSection({el:$("li.database",
this.el),model:this.model.CurrentDatabase,collection:this.model.Databases});this.CollectionNavView=new Genghis.Views.NavSection({el:$("li.collection",this.el),model:this.model.CurrentCollection,collection:this.model.Collections});return this},toggleSections:function(){$(this.ServerNavView.el).toggle(null!==this.model.get("server"));$(this.DatabaseNavView.el).toggle(null!==this.model.get("database"));$(this.CollectionNavView.el).toggle(null!==this.model.get("collection"));this.$("form").toggle(null!==
this.model.get("collection"))},updateQuery:function(){var a=(this.model.get("query")||this.model.get("document")||"").trim().replace(/^\{\s*\}$/,"").replace(/^\{\s*(['"]?)_id\1\s*:\s*\{\s*(['"]?)\$id\2\s*:\s*(["'])([a-z\d]+)\3\s*\}\s*\}$/,"$4");this.$("input#navbar-query").val(a)},findDocuments:function(a){13==a.keyCode?(a.preventDefault(),a=$(a.target).val(),a=Genghis.Util.route(this.model.CurrentCollection.url+"/documents")+(a.match(/^([a-z\d]+)$/i)?"/"+a:"?"+Genghis.Util.buildQuery({q:encodeURIComponent(a)})),
App.Router.navigate(a,!0)):27==a.keyCode&&(this.$("input#navbar-query").blur(),this.updateQuery())},navigate:function(a){a.preventDefault();App.Router.navigate(Genghis.Util.route($(a.target).attr("href")),!0)},navigateToServers:function(a){a.preventDefault();App.Router.redirectToIndex()},navigateUp:function(a){a.preventDefault();App.Router.redirectTo(this.model.has("database")&&this.model.get("server"),this.model.has("collection")&&this.model.get("database"),(this.model.has("document")||this.model.has("query"))&&
this.model.get("collection"))},focusSearch:function(a){this.$("input#navbar-query").is(":visible")&&(a.preventDefault(),this.$("input#navbar-query").focus())}});
Genghis.Views.NavSection=Backbone.View.extend({template:_.template($("#nav-section-template").html()),menuTemplate:_.template($("#nav-section-menu-template").html()),initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.updateLink,this);this.collection.bind("reset",this.renderMenu,this);this.render()},render:function(){$(this.el).html(this.template({model:this.model}));this.$(".dropdown-toggle").hoverIntent(function(a){$(a.target).parent("li").addClass("open").siblings("li").removeClass("open")},
$.noop);return this},updateLink:function(){this.$("a.dropdown-toggle").text(this.model.id?this.model.id:"").attr("href",this.model.id?this.model.url:"")},renderMenu:function(){this.$("ul.dropdown-menu").html(this.menuTemplate({model:this.model,collection:this.collection}))}});
Genghis.Views.NewDocument=Backbone.View.extend({el:"#new-document",template:_.template($("#new-document-template").html()),initialize:function(){_.bindAll(this,"render","show","resizeEditor","closeModal","cancelEdit","saveDocument");this.render()},render:function(){this.el=$(this.template()).hide().appendTo("body");this.modal=this.el.modal("hide");this.modal.bind("hide",this.cancelEdit);this.editor=ace.edit("editor-new");this.editor.setTheme("ace/theme/git-hubby");this.editor.setHighlightActiveLine(!1);
this.editor.setShowPrintMargin(!1);this.editor.renderer.setShowGutter(!1);var a=require("ace/mode/json").Mode;this.editor.getSession().setMode(new a);$(window).resize(_.throttle(this.resizeEditor,100));this.modal.bind("shown",this.resizeEditor);this.modal.find("button.cancel").bind("click",this.closeModal);this.modal.find("button.save").bind("click",this.saveDocument);return this},show:function(){this.el.find("#editor-new").height($(window).height()-250);this.editor.getSession().setValue("{\n \n}\n");
this.editor.focus();this.modal.css({marginTop:30-this.el.height()/2+"px"}).modal("show")},resizeEditor:function(){this.editor.resize()},closeModal:function(){this.modal.modal("hide")},cancelEdit:function(){this.editor.getSession().setValue("")},saveDocument:function(){var a=this.collection,m=this.closeModal;$.ajax({type:"POST",url:Genghis.baseUrl+"convert-json",data:this.editor.getSession().getValue(),contentType:"application/json",async:!1,success:function(j){a.create(j,{success:function(a){m();
App.Router.navigate(Genghis.Util.route(a.url()),!0)}})},dataType:"json"})}});
Genghis.Views.Pagination=Backbone.View.extend({template:_.template($("#pagination-template").html()),events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","urlTemplate","navigate","nextPage","prevPage");this.model.bind("change",this.render);$(document).bind("keyup","n",this.nextPage);$(document).bind("keyup","p",this.prevPage)},render:function(){if(1==this.model.get("pages"))$(this.el).hide();else{var a=Math.ceil(4.5),m=this.model.get("page"),j=this.model.get("pages"),c=m>a?
Math.max(m-(a-3),1):1,e=j-m>a?Math.min(m+(a-3),j):j,a=e==j?Math.max(j-6,1):c,c=1==c?Math.min(a+6,j):e;c>=j-2&&(c=j);3>=a&&(a=1);var g=this.urlTemplate();$(this.el).html(this.template(_.extend(this.model.toJSON(),{page:m,pages:j,start:a,end:c,prev:Math.max(1,m-1),next:Math.min(m+1,j),url:function(a){return g.replace("{{ page }}",a)}}))).show()}return this},urlTemplate:function(){var a=this.collection.url.split("?"),m=a.shift(),a=Genghis.Util.parseQuery(a.join("?"));return m+"?"+Genghis.Util.buildQuery(_.extend(a,
{page:"{{ page }}"}))},navigate:function(a){a.preventDefault();(a=$(a.target).attr("href"))&&App.Router.navigate(Genghis.Util.route(a),!0)},nextPage:function(a){$(this.el).is(":visible")&&(a.preventDefault(),this.$("li.next a[href]").click())},prevPage:function(a){$(this.el).is(":visible")&&(a.preventDefault(),this.$("li.prev a[href]").click())}});Genghis.Views.ServerRow=Genghis.Base.RowView.extend({template:_.template($("#server-row-template").html())});
Genghis.Views.Servers=Genghis.Base.SectionView.extend({el:"section#servers",template:_.template($("#servers-template").html()),rowView:Genghis.Views.ServerRow,updateTitle:function(){}});
Genghis.Router=Backbone.Router.extend({routes:{"":"index",servers:"redirectToIndex","servers/:server":"server","servers/:server/databases":"redirectToServer","servers/:server/databases/:database":"database","servers/:server/databases/:database/collections":"redirectToDatabase","servers/:server/databases/:database/collections/:collection":"collection","servers/:server/databases/:database/collections/:collection/documents":"redirectToCollection","servers/:server/databases/:database/collections/:collection/documents?*query":"collectionQuery",
"servers/:server/databases/:database/collections/:collection/documents/:documentId":"document","*path":"notFound"},index:function(){document.title="Genghis";Genghis.Selection.select();App.showSection("servers")},redirectToIndex:function(){this.navigate("",!0)},server:function(a){document.title=this.buildTitle(a);Genghis.Selection.select(a);App.showSection("databases")},redirectToServer:function(a){this.navigate("servers/"+a,!0)},database:function(a,m){document.title=this.buildTitle(a,m);Genghis.Selection.select(a,
m);App.showSection("collections")},redirectToDatabase:function(a,m){this.navigate("servers/"+a+"/databases/"+m,!0)},collection:function(a,m,j){document.title=this.buildTitle(a,m,j);Genghis.Selection.select(a,m,j);App.showSection("documents")},redirectToCollection:function(a,m,j){this.navigate("servers/"+a+"/databases/"+m+"/collections/"+j,!0)},collectionQuery:function(a,m,j,c){document.title=this.buildTitle(a,m,j,"Query results");c=Genghis.Util.parseQuery(c);Genghis.Selection.select(a,m,j,null,c.q,
c.page);App.showSection("documents")},redirectToQuery:function(a,m,j,c){this.navigate("servers/"+a+"/databases/"+m+"/collections/"+j+"/documents?"+Genghis.Util.buildQuery({q:encodeURIComponent(c)}),!0)},document:function(a,m,j,c){document.title=this.buildTitle(a,m,j,c);Genghis.Selection.select(a,m,j,c);App.showSection("document")},redirectToDocument:function(a,m,j,c){this.navigate("servers/"+a+"/databases/"+m+"/collections/"+j+"/documents/"+c,!0)},redirectTo:function(a,m,j,c,e){return!a?this.redirectToIndex():
!m?this.redirectToServer(a):!j?this.redirectToDatabase(a,m):!c&&!e?this.redirectToCollection(a,m,j):e?this.redirectToQuery(a,m,j,e):this.redirectToDocument(a,m,j,c)},notFound:function(a){if(a.replace(/\/$/,"")==Genghis.baseUrl.replace(/\/$/,""))return App.Router.navigate("",!0);document.title=this.buildTitle("404: Not Found");$("section#genghis section#error").html("<header><h2>404: Not Found</h2></header><p>If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again.</p>");
App.showSection("error")},buildTitle:function(){var a=Array.prototype.slice.call(arguments);return a.length?"Genghis \u2014 "+a.join(" \u203a "):"Genghis"}});