summaryrefslogtreecommitdiff
path: root/lib/viewers
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-05-02 11:39:45 (GMT)
committerAleksander Machniak <alec@alec.pl>2013-05-02 11:39:45 (GMT)
commit00c5f5c7fbab4c96b0eb36005560a84142e4c97b (patch)
tree4b9d9ece638971d5cb2f527b027d1a2d0f189a53 /lib/viewers
parent3c424ea7a243f3fb2b41cf7d14632e95479f52d3 (diff)
downloadkolab-chwala-00c5f5c7fbab4c96b0eb36005560a84142e4c97b.tar.gz
Implement odf viewer (webodf) and pdf viewer (pdf.js)
Diffstat (limited to 'lib/viewers')
-rw-r--r--lib/viewers/odf.php87
-rw-r--r--lib/viewers/odf/webodf.css192
-rw-r--r--lib/viewers/odf/webodf.js356
-rw-r--r--lib/viewers/pdf.php57
-rw-r--r--lib/viewers/pdf/compatibility.js440
-rw-r--r--lib/viewers/pdf/debugger.js491
-rw-r--r--lib/viewers/pdf/images/annotation-check.svg10
-rw-r--r--lib/viewers/pdf/images/annotation-comment.svg15
-rw-r--r--lib/viewers/pdf/images/annotation-help.svg25
-rw-r--r--lib/viewers/pdf/images/annotation-insert.svg9
-rw-r--r--lib/viewers/pdf/images/annotation-key.svg10
-rw-r--r--lib/viewers/pdf/images/annotation-newparagraph.svg10
-rw-r--r--lib/viewers/pdf/images/annotation-note.svg41
-rw-r--r--lib/viewers/pdf/images/annotation-paragraph.svg15
-rw-r--r--lib/viewers/pdf/images/findbarButton-next-rtl.pngbin0 -> 371 bytes
-rw-r--r--lib/viewers/pdf/images/findbarButton-next.pngbin0 -> 381 bytes
-rw-r--r--lib/viewers/pdf/images/findbarButton-previous-rtl.pngbin0 -> 381 bytes
-rw-r--r--lib/viewers/pdf/images/findbarButton-previous.pngbin0 -> 371 bytes
-rw-r--r--lib/viewers/pdf/images/loading-icon.gifbin0 -> 2545 bytes
-rw-r--r--lib/viewers/pdf/images/loading-small.pngbin0 -> 9025 bytes
-rw-r--r--lib/viewers/pdf/images/texture.pngbin0 -> 2459 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-bookmark.pngbin0 -> 244 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-download.pngbin0 -> 512 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-menuArrows.pngbin0 -> 237 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-openFile.pngbin0 -> 417 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-pageDown-rtl.pngbin0 -> 558 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-pageDown.pngbin0 -> 353 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-pageUp-rtl.pngbin0 -> 426 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-pageUp.pngbin0 -> 344 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-presentationMode.pngbin0 -> 491 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-print.pngbin0 -> 474 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-search.pngbin0 -> 503 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-sidebarToggle.pngbin0 -> 349 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-viewOutline.pngbin0 -> 300 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-viewThumbnail.pngbin0 -> 211 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-zoomIn.pngbin0 -> 228 bytes
-rw-r--r--lib/viewers/pdf/images/toolbarButton-zoomOut.pngbin0 -> 143 bytes
-rw-r--r--lib/viewers/pdf/l10n.js922
-rw-r--r--lib/viewers/pdf/locale/ar/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ar/viewer.properties108
-rw-r--r--lib/viewers/pdf/locale/ca/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/ca/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ca/viewer.properties124
-rw-r--r--lib/viewers/pdf/locale/cs/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/cs/viewer.properties58
-rw-r--r--lib/viewers/pdf/locale/da/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/da/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/da/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/de/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/de/viewer.properties120
-rw-r--r--lib/viewers/pdf/locale/en-US/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/en-US/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/en-US/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/es/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/es/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/es/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/fi/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/fi/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/fi/viewer.properties121
-rw-r--r--lib/viewers/pdf/locale/fr/chrome.properties17
-rw-r--r--lib/viewers/pdf/locale/fr/metadata.inc7
-rw-r--r--lib/viewers/pdf/locale/fr/viewer.properties122
-rw-r--r--lib/viewers/pdf/locale/he/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/he/viewer.properties59
-rw-r--r--lib/viewers/pdf/locale/it/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/it/viewer.properties44
-rw-r--r--lib/viewers/pdf/locale/ja/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/ja/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ja/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/ko/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/ko/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ko/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/locale.properties63
-rw-r--r--lib/viewers/pdf/locale/lt/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/lt/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/lt/viewer.properties121
-rw-r--r--lib/viewers/pdf/locale/nl/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/nl/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/nl/viewer.properties122
-rw-r--r--lib/viewers/pdf/locale/pl/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/pl/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/pl/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/pt-BR/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/pt-BR/viewer.properties44
-rw-r--r--lib/viewers/pdf/locale/ro/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ro/viewer.properties55
-rw-r--r--lib/viewers/pdf/locale/ru/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/ru/viewer.properties62
-rw-r--r--lib/viewers/pdf/locale/sr/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/sr/viewer.properties55
-rw-r--r--lib/viewers/pdf/locale/sv/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/sv/metadata.inc7
-rw-r--r--lib/viewers/pdf/locale/sv/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/tr/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/tr/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/tr/viewer.properties121
-rw-r--r--lib/viewers/pdf/locale/vi/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/vi/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/vi/viewer.properties123
-rw-r--r--lib/viewers/pdf/locale/zh-CN/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/zh-CN/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/zh-CN/viewer.properties121
-rw-r--r--lib/viewers/pdf/locale/zh-TW/chrome.properties18
-rw-r--r--lib/viewers/pdf/locale/zh-TW/metadata.inc8
-rw-r--r--lib/viewers/pdf/locale/zh-TW/viewer.properties113
-rw-r--r--lib/viewers/pdf/pdf.js1660
-rw-r--r--lib/viewers/pdf/viewer.css1454
-rw-r--r--lib/viewers/pdf/viewer.html191
-rw-r--r--lib/viewers/pdf/viewer.js3699
-rw-r--r--lib/viewers/pdf/viewer.patch128
110 files changed, 12914 insertions, 0 deletions
diff --git a/lib/viewers/odf.php b/lib/viewers/odf.php
new file mode 100644
index 0000000..499f26f
--- /dev/null
+++ b/lib/viewers/odf.php
@@ -0,0 +1,87 @@
+<?php
+/*
+ +--------------------------------------------------------------------------+
+ | This file is part of the Kolab File API |
+ | |
+ | Copyright (C) 2011-2013, Kolab Systems AG |
+ | |
+ | This program is free software: you can redistribute it and/or modify |
+ | it under the terms of the GNU Affero General Public License as published |
+ | by the Free Software Foundation, either version 3 of the License, or |
+ | (at your option) any later version. |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public License |
+ | along with this program. If not, see <http://www.gnu.org/licenses/> |
+ +--------------------------------------------------------------------------+
+ | Author: Aleksander Machniak <machniak@kolabsys.com> |
+ +--------------------------------------------------------------------------+
+*/
+
+class file_viewer_odf
+{
+ protected $mimetypes = array(
+ 'application/vnd.oasis.opendocument.text',
+ 'application/vnd.oasis.opendocument.spreadsheet',
+ 'application/vnd.oasis.opendocument.presentation',
+ 'application/vnd.oasis.opendocument.graphics',
+ 'application/vnd.oasis.opendocument.chart',
+// 'application/vnd.oasis.opendocument.formula',
+ 'application/vnd.oasis.opendocument.image',
+ 'application/vnd.oasis.opendocument.text-master',
+// 'application/vnd.sun.xml.base',
+// 'application/vnd.oasis.opendocument.base',
+// 'application/vnd.oasis.opendocument.database',
+ 'application/vnd.oasis.opendocument.text-template',
+ 'application/vnd.oasis.opendocument.spreadsheet-template',
+ 'application/vnd.oasis.opendocument.presentation-template',
+ 'application/vnd.oasis.opendocument.graphics-template',
+ 'application/vnd.oasis.opendocument.chart-template',
+// 'application/vnd.oasis.opendocument.formula-template',
+ 'application/vnd.oasis.opendocument.image-template',
+ );
+
+
+ /**
+ * Returns list of supported mimetype
+ *
+ * @return array List of mimetypes
+ */
+ public function supported_mimetypes()
+ {
+ // @TODO: check supported browsers
+ return $this->mimetypes;
+ }
+
+ /**
+ * Print output and exit
+ *
+ * @param string $file_uri File URL
+ */
+ public function output($file_uri)
+ {
+ echo <<<EOT
+<html>
+ <head>
+ <link rel="stylesheet" type="text/css" href="viewers/odf/webodf.css" />
+ <script type="text/javascript" src="viewers/odf/webodf.js" charset="utf-8"></script>
+ <script type="text/javascript" charset="utf-8">
+ function init() {
+ var odfelement = document.getElementById("odf"),
+ odfcanvas = new odf.OdfCanvas(odfelement);
+ odfcanvas.load("$file_uri");
+ }
+ window.setTimeout(init, 0);
+ </script>
+ </head>
+ <body>
+ <div id="odf"></div>
+ </body>
+</html>
+EOT;
+ }
+}
diff --git a/lib/viewers/odf/webodf.css b/lib/viewers/odf/webodf.css
new file mode 100644
index 0000000..19381a2
--- /dev/null
+++ b/lib/viewers/odf/webodf.css
@@ -0,0 +1,192 @@
+@namespace draw url(urn:oasis:names:tc:opendocument:xmlns:drawing:1.0);
+@namespace fo url(urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0);
+@namespace office url(urn:oasis:names:tc:opendocument:xmlns:office:1.0);
+@namespace presentation url(urn:oasis:names:tc:opendocument:xmlns:presentation:1.0);
+@namespace style url(urn:oasis:names:tc:opendocument:xmlns:style:1.0);
+@namespace svg url(urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0);
+@namespace table url(urn:oasis:names:tc:opendocument:xmlns:table:1.0);
+@namespace text url(urn:oasis:names:tc:opendocument:xmlns:text:1.0);
+@namespace runtimens url(urn:webodf); /* namespace for runtime only */
+
+office|document > *, office|document-content > * {
+ display: none;
+}
+office|body, office|document {
+ display: inline-block;
+ position: relative;
+}
+
+text|p, text|h {
+ display: block;
+ padding: 3px 3px 3px 3px;
+ margin: 5px 5px 5px 5px;
+}
+text|h {
+ font-weight: bold;
+}
+*[runtimens|containsparagraphanchor] {
+ position: relative;
+}
+text|s:before { /* this needs to be the number of spaces given by text:c */
+ content: ' ';
+}
+text|tab:before {
+ display: inline;
+ content: ' ';
+}
+text|line-break {
+ content: " ";
+ display: block;
+}
+text|tracked-changes {
+ /*Consumers that do not support change tracking, should ignore changes.*/
+ display: none;
+}
+office|binary-data {
+ display: none;
+}
+office|text {
+ display: block;
+ width: 216mm; /* default to A4 width */
+ min-height: 279mm;
+ padding-left: 32mm;
+ padding-right: 32mm;
+ padding-top: 25mm;
+ padding-bottom: 13mm;
+ margin: 2px;
+ text-align: left;
+ overflow: hidden;
+}
+office|spreadsheet {
+ display: block;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-family: sans-serif;
+ font-size: 10pt;
+ text-align: left;
+ page-break-inside: avoid;
+ overflow: hidden;
+}
+office|presentation {
+ display: inline-block;
+ text-align: left;
+}
+draw|page {
+ display: block;
+ height: 21cm;
+ width: 28cm;
+ margin: 3px;
+ position: relative;
+ overflow: hidden;
+}
+presentation|notes {
+ display: none;
+}
+@media print {
+ draw|page {
+ border: 1pt solid black;
+ page-break-inside: avoid;
+ }
+ presentation|notes {
+ /*TODO*/
+ }
+}
+office|spreadsheet text|p {
+ border: 0px;
+ padding: 1px;
+ margin: 0px;
+}
+office|spreadsheet table|table {
+ margin: 3px;
+}
+office|spreadsheet table|table:after {
+ /* show sheet name the end of the sheet */
+ /*content: attr(table|name);*/ /* gives parsing error in opera */
+}
+office|spreadsheet table|table-row {
+ counter-increment: row;
+}
+office|spreadsheet table|table-row:before {
+ width: 3em;
+ background: #cccccc;
+ border: 1px solid black;
+ text-align: center;
+ content: counter(row);
+}
+office|spreadsheet table|table-cell {
+ border: 1px solid #cccccc;
+}
+table|table {
+ display: table;
+}
+draw|frame table|table {
+ width: 100%;
+ height: 100%;
+ background: white;
+}
+table|table-row {
+ display: table-row;
+}
+table|table-column {
+ display: table-column;
+}
+table|table-cell {
+ display: table-cell;
+}
+draw|frame {
+ display: block;
+}
+draw|image {
+ display: block;
+ width: 100%;
+ height: 100%;
+ top: 0px;
+ left: 0px;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ -moz-background-size: 100% 100%;
+}
+text|list {
+ display: block;
+ padding-left: 1.5em;
+ counter-reset: list;
+}
+text|list-item {
+ display: block;
+}
+text|list-item:before {
+ display: inline-block;
+ content: '•';
+ counter-increment: list;
+ width: 0.5em;
+ margin-left: -0.5em;
+ padding: 0px;
+ border: 0px;
+}
+text|list-item > *:first-child {
+ display: inline-block;
+}
+text|a {
+ color: blue;
+ text-decoration: underline;
+}
+text|note-citation {
+ vertical-align: super;
+ font-size: smaller;
+}
+text|note-body {
+ display: none;
+}
+text|note:hover text|note-citation {
+ background: #dddddd;
+}
+text|note:hover text|note-body {
+ display: block;
+ left:1em;
+ max-width: 80%;
+ position: absolute;
+ background: #ffffaa;
+}
+svg|title, svg|desc {
+ display: none;
+}
diff --git a/lib/viewers/odf/webodf.js b/lib/viewers/odf/webodf.js
new file mode 100644
index 0000000..56d4bfd
--- /dev/null
+++ b/lib/viewers/odf/webodf.js
@@ -0,0 +1,356 @@
+// Input 0
+/*
+
+ @licstart
+ The JavaScript code in this page is free software: you can redistribute it
+ and/or modify it under the terms of the GNU Affero General Public License
+ (GNU AGPL) as published by the Free Software Foundation, either version 3 of
+ the License, or (at your option) any later version. The code is distributed
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU AGPL for more details.
+
+ As additional permission under GNU AGPL version 3 section 7, you
+ may distribute non-source (e.g., minimized or compacted) forms of
+ that code without the copy of the GNU GPL normally required by
+ section 4, provided you include this license notice and a URL
+ through which recipients can access the Corresponding Source.
+
+ As a special exception to the AGPL, any HTML file which merely makes function
+ calls to this code, and for that purpose includes it by reference shall be
+ deemed a separate work for copyright law purposes. In addition, the copyright
+ holders of this code give you permission to combine this code with free
+ software libraries that are released under the GNU LGPL. You may copy and
+ distribute such a system following the terms of the GNU AGPL for this code
+ and the LGPL for the libraries. If you modify this code, you may extend this
+ exception to your version of the code, but you are not obligated to do so.
+ If you do not wish to do so, delete this exception statement from your
+ version.
+
+ This license applies to this entire compilation.
+ @licend
+ @source: http://www.webodf.org/
+ @source: http://gitorious.org/odfkit/webodf/
+*/
+var core={},gui={},xmldom={},odf={};
+// Input 1
+function Runtime(){}Runtime.ByteArray=function(){};Runtime.ByteArray.prototype.slice=function(){};Runtime.prototype.byteArrayFromArray=function(){};Runtime.prototype.byteArrayFromString=function(){};Runtime.prototype.byteArrayToString=function(){};Runtime.prototype.concatByteArrays=function(){};Runtime.prototype.read=function(){};Runtime.prototype.readFile=function(){};Runtime.prototype.readFileSync=function(){};Runtime.prototype.loadXML=function(){};Runtime.prototype.writeFile=function(){};
+Runtime.prototype.isFile=function(){};Runtime.prototype.getFileSize=function(){};Runtime.prototype.deleteFile=function(){};Runtime.prototype.log=function(){};Runtime.prototype.setTimeout=function(){};Runtime.prototype.libraryPaths=function(){};Runtime.prototype.type=function(){};Runtime.prototype.getDOMImplementation=function(){};Runtime.prototype.getWindow=function(){};var IS_COMPILED_CODE=!0;
+Runtime.byteArrayToString=function(i,k){var j;if("utf8"===k){j="";var e,a=i.length,c,b,d;for(e=0;e<a;e+=1)c=i[e],128>c?j+=String.fromCharCode(c):(e+=1,b=i[e],224>c?j+=String.fromCharCode((c&31)<<6|b&63):(e+=1,d=i[e],j+=String.fromCharCode((c&15)<<12|(b&63)<<6|d&63)))}else{"binary"!==k&&this.log("Unsupported encoding: "+k);j="";a=i.length;for(e=0;e<a;e+=1)j+=String.fromCharCode(i[e]&255)}return j};Runtime.getFunctionName=function(i){return void 0===i.name?(i=/function\s+(\w+)/.exec(i))&&i[1]:i.name};
+function BrowserRuntime(i){function k(c,b){var d,a,f;b?f=c:b=c;i?(a=i.ownerDocument,f&&(d=a.createElement("span"),d.className=f,d.appendChild(a.createTextNode(f)),i.appendChild(d),i.appendChild(a.createTextNode(" "))),d=a.createElement("span"),d.appendChild(a.createTextNode(b)),i.appendChild(d),i.appendChild(a.createElement("br"))):console&&console.log(b)}var j=this,e={},a=window.ArrayBuffer&&window.Uint8Array;this.ByteArray=a?function(c){Uint8Array.prototype.slice=function(b,c){void 0===c&&(void 0===
+b&&(b=0),c=this.length);var a=this.subarray(b,c),f,g,c=c-b;f=new Uint8Array(new ArrayBuffer(c));for(g=0;g<c;g+=1)f[g]=a[g];return f};return new Uint8Array(new ArrayBuffer(c))}:function(c){var b=[];b.length=c;return b};this.concatByteArrays=a?function(c,b){var d,a=c.length,f=b.length,g=new this.ByteArray(a+f);for(d=0;d<a;d+=1)g[d]=c[d];for(d=0;d<f;d+=1)g[d+a]=b[d];return g}:function(c,b){return c.concat(b)};this.byteArrayFromArray=function(c){return c.slice()};this.byteArrayFromString=function(c,b){var d;
+if("utf8"===b){d=c.length;var a,f,g,h=0;for(f=0;f<d;f+=1)g=c.charCodeAt(f),h+=1+(128<g)+(2048<g);a=new j.ByteArray(h);for(f=h=0;f<d;f+=1)g=c.charCodeAt(f),128>g?(a[h]=g,h+=1):2048>g?(a[h]=192|g>>>6,a[h+1]=128|g&63,h+=2):(a[h]=224|g>>>12&15,a[h+1]=128|g>>>6&63,a[h+2]=128|g&63,h+=3)}else{"binary"!==b&&j.log("unknown encoding: "+b);d=c.length;a=new j.ByteArray(d);for(f=0;f<d;f+=1)a[f]=c.charCodeAt(f)&255}return d=a};this.byteArrayToString=Runtime.byteArrayToString;this.readFile=function(c,b,a){function o(){var g;
+4===f.readyState&&(0===f.status&&!f.responseText?a("File "+c+" is empty."):200===f.status||0===f.status?(g="binary"===b?"undefined"!==typeof VBArray?(new VBArray(f.responseBody)).toArray():j.byteArrayFromString(f.responseText,"binary"):f.responseText,e[c]=g,a(null,g)):a(f.responseText||f.statusText))}if(e.hasOwnProperty(c))a(null,e[c]);else{var f=new XMLHttpRequest;f.open("GET",c,!0);f.onreadystatechange=o;f.overrideMimeType&&("binary"!==b?f.overrideMimeType("text/plain; charset="+b):f.overrideMimeType("text/plain; charset=x-user-defined"));
+try{f.send(null)}catch(g){a(g.message)}}};this.read=function(c,b,a,o){function f(){var f;4===g.readyState&&(0===g.status&&!g.responseText?o("File "+c+" is empty."):200===g.status||0===g.status?(f="undefined"!==typeof VBArray?(new VBArray(g.responseBody)).toArray():j.byteArrayFromString(g.responseText,"binary"),e[c]=f,o(null,f.slice(b,b+a))):o(g.responseText||g.statusText))}if(e.hasOwnProperty(c))o(null,e[c].slice(b,b+a));else{var g=new XMLHttpRequest;g.open("GET",c,!0);g.onreadystatechange=f;g.overrideMimeType&&
+g.overrideMimeType("text/plain; charset=x-user-defined");try{g.send(null)}catch(h){o(h.message)}}};this.readFileSync=function(c,b){var a=new XMLHttpRequest,o;a.open("GET",c,!1);a.overrideMimeType&&("binary"!==b?a.overrideMimeType("text/plain; charset="+b):a.overrideMimeType("text/plain; charset=x-user-defined"));try{if(a.send(null),200===a.status||0===a.status)o=a.responseText}catch(f){}return o};this.writeFile=function(c,b,a){e[c]=b;var o=new XMLHttpRequest;o.open("PUT",c,!0);o.onreadystatechange=
+function(){4===o.readyState&&(0===o.status&&!o.responseText?a("File "+c+" is empty."):200<=o.status&&300>o.status||0===o.status?a(null):a("Status "+String(o.status)+": "+o.responseText||o.statusText))};b=b.buffer&&!o.sendAsBinary?b.buffer:j.byteArrayToString(b,"binary");try{o.sendAsBinary?o.sendAsBinary(b):o.send(b)}catch(f){j.log("HUH? "+f+" "+b),a(f.message)}};this.deleteFile=function(c,b){delete e[c];var a=new XMLHttpRequest;a.open("DELETE",c,!0);a.onreadystatechange=function(){4===a.readyState&&
+(200>a.status&&300<=a.status?b(a.responseText):b(null))};a.send(null)};this.loadXML=function(c,b){var a=new XMLHttpRequest;a.open("GET",c,!0);a.overrideMimeType&&a.overrideMimeType("text/xml");a.onreadystatechange=function(){4===a.readyState&&(0===a.status&&!a.responseText?b("File "+c+" is empty."):200===a.status||0===a.status?b(null,a.responseXML):b(a.responseText))};try{a.send(null)}catch(o){b(o.message)}};this.isFile=function(a,b){j.getFileSize(a,function(a){b(-1!==a)})};this.getFileSize=function(a,
+b){var d=new XMLHttpRequest;d.open("HEAD",a,!0);d.onreadystatechange=function(){if(4===d.readyState){var a=d.getResponseHeader("Content-Length");a?b(parseInt(a,10)):b(-1)}};d.send(null)};this.log=k;this.setTimeout=function(a,b){setTimeout(function(){a()},b)};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(){};this.type=function(){return"BrowserRuntime"};this.getDOMImplementation=function(){return window.document.implementation};this.exit=function(a){k("Calling exit with code "+
+String(a)+", but exit() is not implemented.")};this.getWindow=function(){return window}}
+function NodeJSRuntime(){function i(e,a,c){j&&(e=j+"/"+e);"binary"!==a?k.readFile(e,a,c):k.readFile(e,null,c)}var k=require("fs"),j="";this.ByteArray=function(e){return new Buffer(e)};this.byteArrayFromArray=function(e){var a=new Buffer(e.length),c,b=e.length;for(c=0;c<b;c+=1)a[c]=e[c];return a};this.concatByteArrays=function(e,a){var c=new Buffer(e.length+a.length);e.copy(c,0,0);a.copy(c,e.length,0);return c};this.byteArrayFromString=function(e,a){return new Buffer(e,a)};this.byteArrayToString=function(e,
+a){return e.toString(a)};this.readFile=i;this.loadXML=function(e,a){var c=new (require("xmldom").DOMParser);i(e,"utf-8",function(b,d){if(b)return a(b);var o=c.parseFromString(d,"text/xml");a(null,o)})};this.writeFile=function(e,a,c){j&&(e=j+"/"+e);k.writeFile(e,a,"binary",function(b){c(b||null)})};this.deleteFile=function(e,a){j&&(e=j+"/"+e);k.unlink(e,a)};this.read=function(e,a,c,b){j&&(e=j+"/"+e);k.open(e,"r+",666,function(d,o){if(d)b(d);else{var f=new Buffer(c);k.read(o,f,0,c,a,function(a){k.close(o);
+b(a,f)})}})};this.readFileSync=function(e,a){return!a?"":k.readFileSync(e,a)};this.isFile=function(e,a){j&&(e=j+"/"+e);k.stat(e,function(c,b){a(!c&&b.isFile())})};this.getFileSize=function(e,a){j&&(e=j+"/"+e);k.stat(e,function(c,b){c?a(-1):a(b.size)})};this.log=function(e){process.stderr.write(e+"\n")};this.setTimeout=function(e,a){setTimeout(function(){e()},a)};this.libraryPaths=function(){return[__dirname]};this.setCurrentDirectory=function(e){j=e};this.currentDirectory=function(){return j};this.type=
+function(){return"NodeJSRuntime"};this.getDOMImplementation=function(){return null};this.exit=process.exit;this.getWindow=function(){return null}}
+function RhinoRuntime(){var i=this,k=Packages.javax.xml.parsers.DocumentBuilderFactory.newInstance(),j,e,a="";k.setValidating(!1);k.setNamespaceAware(!0);k.setExpandEntityReferences(!1);k.setSchema(null);e=Packages.org.xml.sax.EntityResolver({resolveEntity:function(a,b){var d=new Packages.java.io.FileReader(b);return new Packages.org.xml.sax.InputSource(d)}});j=k.newDocumentBuilder();j.setEntityResolver(e);this.ByteArray=function(a){return[a]};this.byteArrayFromArray=function(a){return a};this.byteArrayFromString=
+function(a){var b=[],d,o=a.length;for(d=0;d<o;d+=1)b[d]=a.charCodeAt(d)&255;return b};this.byteArrayToString=Runtime.byteArrayToString;this.concatByteArrays=function(a,b){return a.concat(b)};this.loadXML=function(a,b){var d=new Packages.java.io.File(a),o;try{o=j.parse(d)}catch(f){print(f);b(f);return}b(null,o)};this.readFile=function(c,b,d){a&&(c=a+"/"+c);var o=new Packages.java.io.File(c),f="binary"===b?"latin1":b;o.isFile()?(c=readFile(c,f),"binary"===b&&(c=i.byteArrayFromString(c,"binary")),d(null,
+c)):d(c+" is not a file.")};this.writeFile=function(c,b,d){a&&(c=a+"/"+c);var c=new Packages.java.io.FileOutputStream(c),o,f=b.length;for(o=0;o<f;o+=1)c.write(b[o]);c.close();d(null)};this.deleteFile=function(c,b){a&&(c=a+"/"+c);(new Packages.java.io.File(c))["delete"]()?b(null):b("Could not delete "+c)};this.read=function(c,b,d,o){a&&(c=a+"/"+c);var f;f=c;var g="binary";(new Packages.java.io.File(f)).isFile()?("binary"===g&&(g="latin1"),f=readFile(f,g)):f=null;f?o(null,this.byteArrayFromString(f.substring(b,
+b+d),"binary")):o("Cannot read "+c)};this.readFileSync=function(a,b){return!b?"":readFile(a,b)};this.isFile=function(c,b){a&&(c=a+"/"+c);var d=new Packages.java.io.File(c);b(d.isFile())};this.getFileSize=function(c,b){a&&(c=a+"/"+c);var d=new Packages.java.io.File(c);b(d.length())};this.log=print;this.setTimeout=function(a){a()};this.libraryPaths=function(){return["lib"]};this.setCurrentDirectory=function(c){a=c};this.currentDirectory=function(){return a};this.type=function(){return"RhinoRuntime"};
+this.getDOMImplementation=function(){return j.getDOMImplementation()};this.exit=quit;this.getWindow=function(){return null}}var runtime=function(){return"undefined"!==typeof window?new BrowserRuntime(window.document.getElementById("logoutput")):"undefined"!==typeof require?new NodeJSRuntime:new RhinoRuntime}();
+(function(){function i(e){var a=e[0],c;c=eval("if (typeof "+a+" === 'undefined') {eval('"+a+" = {};');}"+a);for(a=1;a<e.length-1;a+=1)c.hasOwnProperty(e[a])||(c=c[e[a]]={});return c[e[e.length-1]]}var k={},j={};runtime.loadClass=function(e){function a(a){var a=a.replace(".","/")+".js",b=runtime.libraryPaths(),c,d,n;runtime.currentDirectory&&b.push(runtime.currentDirectory());for(c=0;c<b.length;c+=1){d=b[c];if(!j.hasOwnProperty(d))if((n=runtime.readFileSync(b[c]+"/manifest.js","utf8"))&&n.length)try{j[d]=
+eval(n)}catch(l){j[d]=null,runtime.log("Cannot load manifest for "+d+".")}else j[d]=null;if((d=j[d])&&d.indexOf&&-1!==d.indexOf(a))return b[c]+"/"+a}return null}function c(b){var c,d;d=a(b);if(!d)throw b+" is not listed in any manifest.js.";try{c=runtime.readFileSync(d,"utf8")}catch(h){throw runtime.log("Error loading "+b+" "+h),h;}if(void 0===c)throw"Cannot load class "+b;try{c=eval(b+" = eval(code);")}catch(n){throw runtime.log("Error loading "+b+" "+n),n;}return c}if(!IS_COMPILED_CODE&&!k.hasOwnProperty(e)){var b=
+e.split("."),d;d=i(b);if(!d&&(d=c(e),!d||Runtime.getFunctionName(d)!==b[b.length-1]))throw runtime.log("Loaded code is not for "+b[b.length-1]),"Loaded code is not for "+b[b.length-1];k[e]=!0}}})();
+(function(i){function k(j){if(j.length){var e=j[0];runtime.readFile(e,"utf8",function(a,c){function b(){var a;(a=eval(o))&&runtime.exit(a)}var d="";runtime.libraryPaths();var o=c;-1!==e.indexOf("/")&&(d=e.substring(0,e.indexOf("/")));runtime.setCurrentDirectory(d);a||null===o?(runtime.log(a),runtime.exit(1)):b.apply(null,j)})}}i=Array.prototype.slice.call(i);"NodeJSRuntime"===runtime.type()?k(process.argv.slice(2)):"RhinoRuntime"===runtime.type()?k(i):k(i.slice(1))})("undefined"!==typeof arguments&&
+arguments);
+// Input 2
+core.Base64=function(){function i(a){var b=[],c,f=a.length;for(c=0;c<f;c+=1)b[c]=a.charCodeAt(c)&255;return b}function k(a){var b,c="",f,p=a.length-2;for(f=0;f<p;f+=3)b=a[f]<<16|a[f+1]<<8|a[f+2],c+=m[b>>>18],c+=m[b>>>12&63],c+=m[b>>>6&63],c+=m[b&63];f===p+1?(b=a[f]<<4,c+=m[b>>>6],c+=m[b&63],c+="=="):f===p&&(b=a[f]<<10|a[f+1]<<2,c+=m[b>>>12],c+=m[b>>>6&63],c+=m[b&63],c+="=");return c}function j(a){var a=a.replace(/[^A-Za-z0-9+\/]+/g,""),b=[],c=a.length%4,f,p=a.length,d;for(f=0;f<p;f+=4)d=(A[a.charAt(f)]||
+0)<<18|(A[a.charAt(f+1)]||0)<<12|(A[a.charAt(f+2)]||0)<<6|(A[a.charAt(f+3)]||0),b.push(d>>16,d>>8&255,d&255);b.length-=[0,0,2,1][c];return b}function e(a){var b=[],c,f=a.length,d;for(c=0;c<f;c+=1)d=a[c],128>d?b.push(d):2048>d?b.push(192|d>>>6,128|d&63):b.push(224|d>>>12&15,128|d>>>6&63,128|d&63);return b}function a(a){var b=[],c,f=a.length,d,n,g;for(c=0;c<f;c+=1)d=a[c],128>d?b.push(d):(c+=1,n=a[c],224>d?b.push((d&31)<<6|n&63):(c+=1,g=a[c],b.push((d&15)<<12|(n&63)<<6|g&63)));return b}function c(a){return k(i(a))}
+function b(a){return String.fromCharCode.apply(String,j(a))}function d(b){return a(i(b))}function o(b){for(var b=a(b),c="",f=0;f<b.length;)c+=String.fromCharCode.apply(String,b.slice(f,f+45E3)),f+=45E3;return c}function f(a,b,c){var f="",d,n,g;for(g=b;g<c;g+=1)b=a.charCodeAt(g)&255,128>b?f+=String.fromCharCode(b):(g+=1,d=a.charCodeAt(g)&255,224>b?f+=String.fromCharCode((b&31)<<6|d&63):(g+=1,n=a.charCodeAt(g)&255,f+=String.fromCharCode((b&15)<<12|(d&63)<<6|n&63)));return f}function g(a,b){function c(){var n=
+g+d;n>a.length&&(n=a.length);p+=f(a,g,n);g=n;n=g===a.length;b(p,n)&&!n&&runtime.setTimeout(c,0)}var d=1E5,p="",g=0;a.length<d?b(f(a,0,a.length),!0):("string"!==typeof a&&(a=a.slice()),c())}function h(a){return e(i(a))}function n(a){return String.fromCharCode.apply(String,e(a))}function l(a){return String.fromCharCode.apply(String,e(i(a)))}var m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",w=[],x;for(x=0;26>x;x+=1)w.push(65+x);for(x=0;26>x;x+=1)w.push(97+x);for(x=0;10>x;x+=1)w.push(48+
+x);w.push(43);w.push(47);var A,w=m;x={};var v,t;v=0;for(t=w.length;v<t;v+=1)x[w.charAt(v)]=v;A=x;var z,B,C=runtime.getWindow(),y,s;C&&C.btoa?(y=function(a){return C.btoa(a)},z=function(a){return y(l(a))}):(y=c,z=function(a){return k(h(a))});C&&C.atob?(s=function(a){return C.atob(a)},B=function(a){a=s(a);return f(a,0,a.length)}):(s=b,B=function(a){return o(j(a))});return function(){this.convertByteArrayToBase64=this.convertUTF8ArrayToBase64=k;this.convertBase64ToByteArray=this.convertBase64ToUTF8Array=
+j;this.convertUTF16ArrayToByteArray=this.convertUTF16ArrayToUTF8Array=e;this.convertByteArrayToUTF16Array=this.convertUTF8ArrayToUTF16Array=a;this.convertUTF8StringToBase64=c;this.convertBase64ToUTF8String=b;this.convertUTF8StringToUTF16Array=d;this.convertByteArrayToUTF16String=this.convertUTF8ArrayToUTF16String=o;this.convertUTF8StringToUTF16String=g;this.convertUTF16StringToByteArray=this.convertUTF16StringToUTF8Array=h;this.convertUTF16ArrayToUTF8String=n;this.convertUTF16StringToUTF8String=l;
+this.convertUTF16StringToBase64=z;this.convertBase64ToUTF16String=B;this.fromBase64=b;this.toBase64=c;this.atob=s;this.btoa=y;this.utob=l;this.btou=g;this.encode=z;this.encodeURI=function(a){return z(a).replace(/[+\/]/g,function(a){return a==="+"?"-":"_"}).replace(/\\=+$/,"")};this.decode=function(a){return B(a.replace(/[\-_]/g,function(a){return a==="-"?"+":"/"}))}}}();
+// Input 3
+var webodf_css="@namespace draw url(urn:oasis:names:tc:opendocument:xmlns:drawing:1.0);\n@namespace fo url(urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0);\n@namespace office url(urn:oasis:names:tc:opendocument:xmlns:office:1.0);\n@namespace presentation url(urn:oasis:names:tc:opendocument:xmlns:presentation:1.0);\n@namespace style url(urn:oasis:names:tc:opendocument:xmlns:style:1.0);\n@namespace svg url(urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0);\n@namespace table url(urn:oasis:names:tc:opendocument:xmlns:table:1.0);\n@namespace text url(urn:oasis:names:tc:opendocument:xmlns:text:1.0);\n@namespace runtimens url(urn:webodf); /* namespace for runtime only */\n\noffice|document > *, office|document-content > * {\n display: none;\n}\noffice|body, office|document {\n display: inline-block;\n position: relative;\n}\n\ntext|p, text|h {\n display: block;\n padding: 3px 3px 3px 3px;\n margin: 5px 5px 5px 5px;\n}\ntext|h {\n font-weight: bold;\n}\n*[runtimens|containsparagraphanchor] {\n position: relative;\n}\ntext|s:before { /* this needs to be the number of spaces given by text:c */\n content: ' ';\n}\ntext|tab:before {\n display: inline;\n content: ' ';\n}\ntext|line-break {\n content: \" \";\n display: block;\n}\ntext|tracked-changes {\n /*Consumers that do not support change tracking, should ignore changes.*/\n display: none;\n}\noffice|binary-data {\n display: none;\n}\noffice|text {\n display: block;\n width: 216mm; /* default to A4 width */\n min-height: 279mm;\n padding-left: 32mm;\n padding-right: 32mm;\n padding-top: 25mm;\n padding-bottom: 13mm;\n margin: 2px;\n text-align: left;\n overflow: hidden;\n}\noffice|spreadsheet {\n display: block;\n border-collapse: collapse;\n empty-cells: show;\n font-family: sans-serif;\n font-size: 10pt;\n text-align: left;\n page-break-inside: avoid;\n overflow: hidden;\n}\noffice|presentation {\n display: inline-block;\n text-align: left;\n}\ndraw|page {\n display: block;\n height: 21cm;\n width: 28cm;\n margin: 3px;\n position: relative;\n overflow: hidden;\n}\npresentation|notes {\n display: none;\n}\n@media print {\n draw|page {\n border: 1pt solid black;\n page-break-inside: avoid;\n }\n presentation|notes {\n /*TODO*/\n }\n}\noffice|spreadsheet text|p {\n border: 0px;\n padding: 1px;\n margin: 0px;\n}\noffice|spreadsheet table|table {\n margin: 3px;\n}\noffice|spreadsheet table|table:after {\n /* show sheet name the end of the sheet */\n /*content: attr(table|name);*/ /* gives parsing error in opera */\n}\noffice|spreadsheet table|table-row {\n counter-increment: row;\n}\noffice|spreadsheet table|table-row:before {\n width: 3em;\n background: #cccccc;\n border: 1px solid black;\n text-align: center;\n content: counter(row);\n display: table-cell;\n}\noffice|spreadsheet table|table-cell {\n border: 1px solid #cccccc;\n}\ntable|table {\n display: table;\n}\ndraw|frame table|table {\n width: 100%;\n height: 100%;\n background: white;\n}\ntable|table-header-rows {\n display: table-header-group;\n}\ntable|table-row {\n display: table-row;\n}\ntable|table-column {\n display: table-column;\n}\ntable|table-cell {\n width: 0.889in;\n display: table-cell;\n}\ndraw|frame {\n display: block;\n}\ndraw|image {\n display: block;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n background-repeat: no-repeat;\n background-size: 100% 100%;\n -moz-background-size: 100% 100%;\n}\n/* only show the first image in frame */\ndraw|frame > draw|image:nth-of-type(n+2) {\n display: none;\n}\ntext|list:before {\n display: none;\n content:\"\";\n}\ntext|list {\n counter-reset: list;\n}\ntext|list-item {\n display: block;\n}\ntext|number {\n display:none;\n}\n\ntext|a {\n color: blue;\n text-decoration: underline;\n cursor: pointer;\n}\ntext|note-citation {\n vertical-align: super;\n font-size: smaller;\n}\ntext|note-body {\n display: none;\n}\ntext|note:hover text|note-citation {\n background: #dddddd;\n}\ntext|note:hover text|note-body {\n display: block;\n left:1em;\n max-width: 80%;\n position: absolute;\n background: #ffffaa;\n}\nsvg|title, svg|desc {\n display: none;\n}\nvideo {\n width:100%;\n height:100%\n}\n";
+// Input 4
+core.RawDeflate=function(){function i(){this.dl=this.fc=0}function k(){this.extra_bits=this.static_tree=this.dyn_tree=null;this.max_code=this.max_length=this.elems=this.extra_base=0}function j(a,b,c,f){this.good_length=a;this.max_lazy=b;this.nice_length=c;this.max_chain=f}function e(){this.next=null;this.len=0;this.ptr=[];this.ptr.length=a;this.off=0}var a=8192,c,b,d,o,f=null,g,h,n,l,m,w,x,A,v,t,z,B,C,y,s,I,q,u,r,p,F,P,S,G,D,M,N,Q,H,K,E,W,R,O,X,ba,U,ca,J,ia,ea,fa,Y,ja,aa,V,L,Z,da,ka,qa,ra=[0,0,0,
+0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ga=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],va=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],la;la=[new j(0,0,0,0),new j(4,4,8,4),new j(4,5,16,8),new j(4,6,32,32),new j(4,4,16,16),new j(8,16,32,32),new j(8,16,128,128),new j(8,32,128,256),new j(32,128,258,1024),new j(32,258,258,4096)];var ma=function(p){f[h+g++]=p;if(h+g===a){var n;if(0!==g){null!==c?(p=c,c=c.next):p=new e;
+p.next=null;p.len=p.off=0;null===b?b=d=p:d=d.next=p;p.len=g-h;for(n=0;n<p.len;n++)p.ptr[n]=f[h+n];g=h=0}}},na=function(b){b&=65535;h+g<a-2?(f[h+g++]=b&255,f[h+g++]=b>>>8):(ma(b&255),ma(b>>>8))},oa=function(){z=(z<<5^l[q+3-1]&255)&8191;B=x[32768+z];x[q&32767]=B;x[32768+z]=q},T=function(a,b){v>16-b?(A|=a<<v,na(A),A=a>>16-v,v+=b-16):(A|=a<<v,v+=b)},$=function(a,b){T(b[a].fc,b[a].dl)},wa=function(a,b,c){return a[b].fc<a[c].fc||a[b].fc===a[c].fc&&U[b]<=U[c]},xa=function(a,b,c){var f;for(f=0;f<c&&qa<ka.length;f++)a[b+
+f]=ka.charCodeAt(qa++)&255;return f},sa=function(){var a,b,c=65536-p-q;if(-1===c)c--;else if(65274<=q){for(a=0;32768>a;a++)l[a]=l[a+32768];u-=32768;q-=32768;t-=32768;for(a=0;8192>a;a++)b=x[32768+a],x[32768+a]=32768<=b?b-32768:0;for(a=0;32768>a;a++)b=x[a],x[a]=32768<=b?b-32768:0;c+=32768}r||(a=xa(l,q+p,c),0>=a?r=!0:p+=a)},ya=function(a){var b=F,c=q,f,d=I,p=32506<q?q-32506:0,n=q+258,g=l[c+d-1],r=l[c+d];I>=G&&(b>>=2);do if(f=a,!(l[f+d]!==r||l[f+d-1]!==g||l[f]!==l[c]||l[++f]!==l[c+1])){c+=2;f++;do++c;
+while(l[c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&l[++c]===l[++f]&&c<n);f=258-(n-c);c=n-258;if(f>d){u=a;d=f;if(258<=f)break;g=l[c+d-1];r=l[c+d]}}while((a=x[a&32767])>p&&0!==--b);return d},ha=function(a,b){w[Y++]=b;0===a?D[b].fc++:(a--,D[ca[b]+256+1].fc++,M[(256>a?J[a]:J[256+(a>>7)])&255].fc++,m[ja++]=a,V|=L);L<<=1;0===(Y&7)&&(fa[aa++]=V,V=0,L=1);if(2<S&&0===(Y&4095)){var c=8*Y,f=q-t,d;for(d=0;30>d;d++)c+=M[d].fc*(5+ga[d]);c>>=
+3;if(ja<parseInt(Y/2,10)&&c<parseInt(f/2,10))return!0}return 8191===Y||8192===ja},ta=function(a,b){for(var c=O[b],f=b<<1;f<=X;){f<X&&wa(a,O[f+1],O[f])&&f++;if(wa(a,c,O[f]))break;O[b]=O[f];b=f;f<<=1}O[b]=c},za=function(a,b){var c=0;do c|=a&1,a>>=1,c<<=1;while(0<--b);return c>>1},Aa=function(a,b){var c=[];c.length=16;var f=0,d;for(d=1;15>=d;d++)f=f+R[d-1]<<1,c[d]=f;for(f=0;f<=b;f++)d=a[f].dl,0!==d&&(a[f].fc=za(c[d]++,d))},ua=function(a){var b=a.dyn_tree,c=a.static_tree,f=a.elems,d,p=-1,n=f;X=0;ba=573;
+for(d=0;d<f;d++)0!==b[d].fc?(O[++X]=p=d,U[d]=0):b[d].dl=0;for(;2>X;)d=O[++X]=2>p?++p:0,b[d].fc=1,U[d]=0,Z--,null!==c&&(da-=c[d].dl);a.max_code=p;for(d=X>>1;1<=d;d--)ta(b,d);do d=O[1],O[1]=O[X--],ta(b,1),c=O[1],O[--ba]=d,O[--ba]=c,b[n].fc=b[d].fc+b[c].fc,U[n]=U[d]>U[c]+1?U[d]:U[c]+1,b[d].dl=b[c].dl=n,O[1]=n++,ta(b,1);while(2<=X);O[--ba]=O[1];n=a.dyn_tree;d=a.extra_bits;var f=a.extra_base,c=a.max_code,g=a.max_length,r=a.static_tree,l,h,e,o,u=0;for(h=0;15>=h;h++)R[h]=0;n[O[ba]].dl=0;for(a=ba+1;573>a;a++)if(l=
+O[a],h=n[n[l].dl].dl+1,h>g&&(h=g,u++),n[l].dl=h,!(l>c))R[h]++,e=0,l>=f&&(e=d[l-f]),o=n[l].fc,Z+=o*(h+e),null!==r&&(da+=o*(r[l].dl+e));if(0!==u){do{for(h=g-1;0===R[h];)h--;R[h]--;R[h+1]+=2;R[g]--;u-=2}while(0<u);for(h=g;0!==h;h--)for(l=R[h];0!==l;)d=O[--a],d>c||(n[d].dl!==h&&(Z+=(h-n[d].dl)*n[d].fc,n[d].fc=h),l--)}Aa(b,p)},Ba=function(a,b){var c,f=-1,d,p=a[0].dl,n=0,g=7,h=4;0===p&&(g=138,h=3);a[b+1].dl=65535;for(c=0;c<=b;c++)if(d=p,p=a[c+1].dl,!(++n<g&&d===p))(n<h?H[d].fc+=n:0!==d?(d!==f&&H[d].fc++,
+H[16].fc++):10>=n?H[17].fc++:H[18].fc++,n=0,f=d,0===p)?(g=138,h=3):d===p?(g=6,h=3):(g=7,h=4)},Ca=function(){8<v?na(A):0<v&&ma(A);v=A=0},Da=function(a,b){var c,f=0,d=0,p=0,n=0,g,h;if(0!==Y){do{0===(f&7)&&(n=fa[p++]);c=w[f++]&255;if(0===(n&1))$(c,a);else if(g=ca[c],$(g+256+1,a),h=ra[g],0!==h&&(c-=ia[g],T(c,h)),c=m[d++],g=(256>c?J[c]:J[256+(c>>7)])&255,$(g,b),h=ga[g],0!==h)c-=ea[g],T(c,h);n>>=1}while(f<Y)}$(256,a)},Ea=function(a,b){var c,f=-1,d,p=a[0].dl,n=0,g=7,h=4;0===p&&(g=138,h=3);for(c=0;c<=b;c++)if(d=
+p,p=a[c+1].dl,!(++n<g&&d===p)){if(n<h){do $(d,H);while(0!==--n)}else 0!==d?(d!==f&&($(d,H),n--),$(16,H),T(n-3,2)):10>=n?($(17,H),T(n-3,3)):($(18,H),T(n-11,7));n=0;f=d;0===p?(g=138,h=3):d===p?(g=6,h=3):(g=7,h=4)}},Fa=function(){var a;for(a=0;286>a;a++)D[a].fc=0;for(a=0;30>a;a++)M[a].fc=0;for(a=0;19>a;a++)H[a].fc=0;D[256].fc=1;V=Y=ja=aa=Z=da=0;L=1},pa=function(a){var b,c,f,d;d=q-t;fa[aa]=V;ua(K);ua(E);Ba(D,K.max_code);Ba(M,E.max_code);ua(W);for(f=18;3<=f&&0===H[va[f]].dl;f--);Z+=3*(f+1)+14;b=Z+3+7>>
+3;c=da+3+7>>3;c<=b&&(b=c);if(d+4<=b&&0<=t){T(0+a,3);Ca();na(d);na(~d);for(f=0;f<d;f++)ma(l[t+f])}else if(c===b)T(2+a,3),Da(N,Q);else{T(4+a,3);d=K.max_code+1;b=E.max_code+1;f+=1;T(d-257,5);T(b-1,5);T(f-4,4);for(c=0;c<f;c++)T(H[va[c]].dl,3);Ea(D,d-1);Ea(M,b-1);Da(D,M)}Fa();0!==a&&Ca()},Ga=function(a,d,n){var p,l,r;for(p=0;null!==b&&p<n;){l=n-p;l>b.len&&(l=b.len);for(r=0;r<l;r++)a[d+p+r]=b.ptr[b.off+r];b.off+=l;b.len-=l;p+=l;0===b.len&&(l=b,b=b.next,l.next=c,c=l)}if(p===n)return p;if(h<g){l=n-p;l>g-
+h&&(l=g-h);for(r=0;r<l;r++)a[d+p+r]=f[h+r];h+=l;p+=l;g===h&&(g=h=0)}return p},Ia=function(a,c,f){var d;if(!o){if(!r){v=A=0;var e,m;if(0===Q[0].dl){K.dyn_tree=D;K.static_tree=N;K.extra_bits=ra;K.extra_base=257;K.elems=286;K.max_length=15;K.max_code=0;E.dyn_tree=M;E.static_tree=Q;E.extra_bits=ga;E.extra_base=0;E.elems=30;E.max_length=15;E.max_code=0;W.dyn_tree=H;W.static_tree=null;W.extra_bits=Ha;W.extra_base=0;W.elems=19;W.max_length=7;for(m=e=W.max_code=0;28>m;m++){ia[m]=e;for(d=0;d<1<<ra[m];d++)ca[e++]=
+m}ca[e-1]=m;for(m=e=0;16>m;m++){ea[m]=e;for(d=0;d<1<<ga[m];d++)J[e++]=m}for(e>>=7;30>m;m++){ea[m]=e<<7;for(d=0;d<1<<ga[m]-7;d++)J[256+e++]=m}for(d=0;15>=d;d++)R[d]=0;for(d=0;143>=d;)N[d++].dl=8,R[8]++;for(;255>=d;)N[d++].dl=9,R[9]++;for(;279>=d;)N[d++].dl=7,R[7]++;for(;287>=d;)N[d++].dl=8,R[8]++;Aa(N,287);for(d=0;30>d;d++)Q[d].dl=5,Q[d].fc=za(d,5);Fa()}for(d=0;8192>d;d++)x[32768+d]=0;P=la[S].max_lazy;G=la[S].good_length;F=la[S].max_chain;t=q=0;p=xa(l,0,65536);if(0>=p)r=!0,p=0;else{for(r=!1;262>p&&
+!r;)sa();for(d=z=0;2>d;d++)z=(z<<5^l[d]&255)&8191}b=null;h=g=0;3>=S?(I=2,s=0):(s=2,y=0);n=!1}o=!0;if(0===p)return n=!0,0}if((d=Ga(a,c,f))===f)return f;if(n)return d;if(3>=S)for(;0!==p&&null===b;){oa();0!==B&&32506>=q-B&&(s=ya(B),s>p&&(s=p));if(3<=s)if(m=ha(q-u,s-3),p-=s,s<=P){s--;do q++,oa();while(0!==--s);q++}else q+=s,s=0,z=l[q]&255,z=(z<<5^l[q+1]&255)&8191;else m=ha(0,l[q]&255),p--,q++;m&&(pa(0),t=q);for(;262>p&&!r;)sa()}else for(;0!==p&&null===b;){oa();I=s;C=u;s=2;0!==B&&(I<P&&32506>=q-B)&&(s=
+ya(B),s>p&&(s=p),3===s&&4096<q-u&&s--);if(3<=I&&s<=I){m=ha(q-1-C,I-3);p-=I-1;I-=2;do q++,oa();while(0!==--I);y=0;s=2;q++;m&&(pa(0),t=q)}else 0!==y?ha(0,l[q-1]&255)&&(pa(0),t=q):y=1,q++,p--;for(;262>p&&!r;)sa()}0===p&&(0!==y&&ha(0,l[q-1]&255),pa(1),n=!0);return d+Ga(a,d+c,f-d)};this.deflate=function(p,n){var g,h;ka=p;qa=0;"undefined"===typeof n&&(n=6);(g=n)?1>g?g=1:9<g&&(g=9):g=6;S=g;r=o=!1;if(null===f){c=b=d=null;f=[];f.length=a;l=[];l.length=65536;m=[];m.length=8192;w=[];w.length=32832;x=[];x.length=
+65536;D=[];D.length=573;for(g=0;573>g;g++)D[g]=new i;M=[];M.length=61;for(g=0;61>g;g++)M[g]=new i;N=[];N.length=288;for(g=0;288>g;g++)N[g]=new i;Q=[];Q.length=30;for(g=0;30>g;g++)Q[g]=new i;H=[];H.length=39;for(g=0;39>g;g++)H[g]=new i;K=new k;E=new k;W=new k;R=[];R.length=16;O=[];O.length=573;U=[];U.length=573;ca=[];ca.length=256;J=[];J.length=512;ia=[];ia.length=29;ea=[];ea.length=30;fa=[];fa.length=1024}for(var e=Array(1024),u=[];0<(g=Ia(e,0,e.length));){var F=[];F.length=g;for(h=0;h<g;h++)F[h]=
+String.fromCharCode(e[h]);u[u.length]=F.join("")}ka=null;return u.join("")}};
+// Input 5
+core.ByteArray=function(i){this.pos=0;this.data=i;this.readUInt32LE=function(){var i=this.data,j=this.pos+=4;return i[--j]<<24|i[--j]<<16|i[--j]<<8|i[--j]};this.readUInt16LE=function(){var i=this.data,j=this.pos+=2;return i[--j]<<8|i[--j]}};
+// Input 6
+core.ByteArrayWriter=function(i){var k=this,j=new runtime.ByteArray(0);this.appendByteArrayWriter=function(e){j=runtime.concatByteArrays(j,e.getByteArray())};this.appendByteArray=function(e){j=runtime.concatByteArrays(j,e)};this.appendArray=function(e){j=runtime.concatByteArrays(j,runtime.byteArrayFromArray(e))};this.appendUInt16LE=function(e){k.appendArray([e&255,e>>8&255])};this.appendUInt32LE=function(e){k.appendArray([e&255,e>>8&255,e>>16&255,e>>24&255])};this.appendString=function(e){j=runtime.concatByteArrays(j,
+runtime.byteArrayFromString(e,i))};this.getLength=function(){return j.length};this.getByteArray=function(){return j}};
+// Input 7
+core.RawInflate=function(){var i,k,j=null,e,a,c,b,d,o,f,g,h,n,l,m,w,x,A=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],v=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],t=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],z=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],B=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],C=[16,17,18,
+0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],y=function(){this.list=this.next=null},s=function(){this.n=this.b=this.e=0;this.t=null},I=function(a,b,c,f,d,g){this.BMAX=16;this.N_MAX=288;this.status=0;this.root=null;this.m=0;var p=Array(this.BMAX+1),n,h,l,r,e,m,o,u=Array(this.BMAX+1),F,w,i,j=new s,v=Array(this.BMAX);r=Array(this.N_MAX);var x,A=Array(this.BMAX+1),k,q,P;P=this.root=null;for(e=0;e<p.length;e++)p[e]=0;for(e=0;e<u.length;e++)u[e]=0;for(e=0;e<v.length;e++)v[e]=null;for(e=0;e<r.length;e++)r[e]=
+0;for(e=0;e<A.length;e++)A[e]=0;n=256<b?a[256]:this.BMAX;F=a;w=0;e=b;do p[F[w]]++,w++;while(0<--e);if(p[0]==b)this.root=null,this.status=this.m=0;else{for(m=1;m<=this.BMAX&&0==p[m];m++);o=m;g<m&&(g=m);for(e=this.BMAX;0!=e&&0==p[e];e--);l=e;g>e&&(g=e);for(k=1<<m;m<e;m++,k<<=1)if(0>(k-=p[m])){this.status=2;this.m=g;return}if(0>(k-=p[e]))this.status=2,this.m=g;else{p[e]+=k;A[1]=m=0;F=p;w=1;for(i=2;0<--e;)A[i++]=m+=F[w++];F=a;e=w=0;do if(0!=(m=F[w++]))r[A[m]++]=e;while(++e<b);b=A[l];A[0]=e=0;F=r;w=0;
+r=-1;x=u[0]=0;i=null;for(q=0;o<=l;o++)for(a=p[o];0<a--;){for(;o>x+u[1+r];){x+=u[1+r];r++;q=(q=l-x)>g?g:q;if((h=1<<(m=o-x))>a+1){h-=a+1;for(i=o;++m<q&&!((h<<=1)<=p[++i]);)h-=p[i]}x+m>n&&x<n&&(m=n-x);q=1<<m;u[1+r]=m;i=Array(q);for(h=0;h<q;h++)i[h]=new s;P=null==P?this.root=new y:P.next=new y;P.next=null;P.list=i;v[r]=i;0<r&&(A[r]=e,j.b=u[r],j.e=16+m,j.t=i,m=(e&(1<<x)-1)>>x-u[r],v[r-1][m].e=j.e,v[r-1][m].b=j.b,v[r-1][m].n=j.n,v[r-1][m].t=j.t)}j.b=o-x;w>=b?j.e=99:F[w]<c?(j.e=256>F[w]?16:15,j.n=F[w++]):
+(j.e=d[F[w]-c],j.n=f[F[w++]-c]);h=1<<o-x;for(m=e>>x;m<q;m+=h)i[m].e=j.e,i[m].b=j.b,i[m].n=j.n,i[m].t=j.t;for(m=1<<o-1;0!=(e&m);m>>=1)e^=m;for(e^=m;(e&(1<<x)-1)!=A[r];)x-=u[r],r--}this.m=u[1];this.status=0!=k&&1!=l?1:0}}},q=function(a){for(;b<a;){var f=c,d;d=w.length==x?-1:w[x++];c=f|d<<b;b+=8}},u=function(a){return c&A[a]},r=function(a){c>>=a;b-=a},p=function(a,b,c){var p,e,o;if(0==c)return 0;for(o=0;;){q(l);e=h.list[u(l)];for(p=e.e;16<p;){if(99==p)return-1;r(e.b);p-=16;q(p);e=e.t[u(p)];p=e.e}r(e.b);
+if(16==p)k&=32767,a[b+o++]=i[k++]=e.n;else{if(15==p)break;q(p);f=e.n+u(p);r(p);q(m);e=n.list[u(m)];for(p=e.e;16<p;){if(99==p)return-1;r(e.b);p-=16;q(p);e=e.t[u(p)];p=e.e}r(e.b);q(p);g=k-e.n-u(p);for(r(p);0<f&&o<c;)f--,g&=32767,k&=32767,a[b+o++]=i[k++]=i[g++]}if(o==c)return c}d=-1;return o},F,P=function(a,b,c){var f,d,g,e,o,F,w,i=Array(316);for(f=0;f<i.length;f++)i[f]=0;q(5);F=257+u(5);r(5);q(5);w=1+u(5);r(5);q(4);f=4+u(4);r(4);if(286<F||30<w)return-1;for(d=0;d<f;d++)q(3),i[C[d]]=u(3),r(3);for(;19>
+d;d++)i[C[d]]=0;l=7;d=new I(i,19,19,null,null,l);if(0!=d.status)return-1;h=d.root;l=d.m;e=F+w;for(f=g=0;f<e;)if(q(l),o=h.list[u(l)],d=o.b,r(d),d=o.n,16>d)i[f++]=g=d;else if(16==d){q(2);d=3+u(2);r(2);if(f+d>e)return-1;for(;0<d--;)i[f++]=g}else{17==d?(q(3),d=3+u(3),r(3)):(q(7),d=11+u(7),r(7));if(f+d>e)return-1;for(;0<d--;)i[f++]=0;g=0}l=9;d=new I(i,F,257,v,t,l);0==l&&(d.status=1);if(0!=d.status)return-1;h=d.root;l=d.m;for(f=0;f<w;f++)i[f]=i[f+F];m=6;d=new I(i,w,0,z,B,m);n=d.root;m=d.m;return 0==m&&
+257<F||0!=d.status?-1:p(a,b,c)};this.inflate=function(A,G){null==i&&(i=Array(65536));b=c=k=0;d=-1;o=!1;f=g=0;h=null;w=A;x=0;var D=new runtime.ByteArray(G);a:{var s,C;for(s=0;s<G&&!(o&&-1==d);){if(0<f){if(0!=d)for(;0<f&&s<G;)f--,g&=32767,k&=32767,D[0+s++]=i[k++]=i[g++];else{for(;0<f&&s<G;)f--,k&=32767,q(8),D[0+s++]=i[k++]=u(8),r(8);0==f&&(d=-1)}if(s==G)break}if(-1==d){if(o)break;q(1);0!=u(1)&&(o=!0);r(1);q(2);d=u(2);r(2);h=null;f=0}switch(d){case 0:C=D;var Q=0+s,y=G-s,K=void 0,K=b&7;r(K);q(16);K=u(16);
+r(16);q(16);if(K!=(~c&65535))C=-1;else{r(16);f=K;for(K=0;0<f&&K<y;)f--,k&=32767,q(8),C[Q+K++]=i[k++]=u(8),r(8);0==f&&(d=-1);C=K}break;case 1:if(null!=h)C=p(D,0+s,G-s);else b:{C=D;Q=0+s;y=G-s;if(null==j){for(var E=void 0,K=Array(288),E=void 0,E=0;144>E;E++)K[E]=8;for(;256>E;E++)K[E]=9;for(;280>E;E++)K[E]=7;for(;288>E;E++)K[E]=8;a=7;E=new I(K,288,257,v,t,a);if(0!=E.status){alert("HufBuild error: "+E.status);C=-1;break b}j=E.root;a=E.m;for(E=0;30>E;E++)K[E]=5;F=5;E=new I(K,30,0,z,B,F);if(1<E.status){j=
+null;alert("HufBuild error: "+E.status);C=-1;break b}e=E.root;F=E.m}h=j;n=e;l=a;m=F;C=p(C,Q,y)}break;case 2:C=null!=h?p(D,0+s,G-s):P(D,0+s,G-s);break;default:C=-1}if(-1==C)break a;s+=C}}w=null;return D}};
+// Input 8
+core.Cursor=function(i,k){function j(a,b){for(var d=b;d&&d!==a;)d=d.parentNode;return d||b}function e(){var c,b,d;if(a.parentNode){b=0;for(c=a.parentNode.firstChild;c&&c!==a;)b+=1,c=c.nextSibling;a.previousSibling&&(3===a.previousSibling.nodeType&&a.nextSibling&&3===a.nextSibling.nodeType)&&(d=a.nextSibling,a.previousSibling.appendData(d.nodeValue));for(c=0;c<i.rangeCount;c+=1){var e=i.getRangeAt(c),f=b,g=void 0,h=void 0,g=a.parentNode,h=j(a,e.startContainer);j(a,e.endContainer);h===a?e.setStart(g,
+f):h===g&&e.startOffset>f&&e.setStart(g,e.startOffset-1);e.endContainer===a?e.setEnd(g,f):e.endContainer===g&&e.endOffset>f&&e.setEnd(g,e.endOffset-1)}if(d){for(c=0;c<i.rangeCount;c+=1){var e=i.getRangeAt(c),f=a.previousSibling,g=d,h=b,n=f.length-g.length;e.startContainer===g?e.setStart(f,n+e.startOffset):e.startContainer===f.parentNode&&e.startOffset===h&&e.setStart(f,n);e.endContainer===g?e.setEnd(f,n+e.endOffset):e.endContainer===f.parentNode&&e.endOffset===h&&e.setEnd(f,n)}d.parentNode.removeChild(d)}a.parentNode.removeChild(a)}}
+var a;a=k.createElementNS("urn:webodf:names:cursor","cursor");this.getNode=function(){return a};this.updateToSelection=function(){e();if(i.focusNode){var c=i.focusNode,b=i.focusOffset;if(3===c.nodeType){var d,o,f,g;g=c.parentNode;0===b?g.insertBefore(a,c):b===c.length?g.appendChild(a):(d=c.length,o=c.nextSibling,f=k.createTextNode(c.substringData(b,d)),c.deleteData(b,d),o?g.insertBefore(f,o):g.appendChild(f),g.insertBefore(a,f))}else if(9!==c.nodeType){for(d=c.firstChild;d&&b;)d=d.nextSibling,b-=
+1;c.insertBefore(a,d)}}};this.remove=function(){e()}};
+// Input 9
+core.UnitTest=function(){};core.UnitTest.prototype.setUp=function(){};core.UnitTest.prototype.tearDown=function(){};core.UnitTest.prototype.description=function(){};core.UnitTest.prototype.tests=function(){};core.UnitTest.prototype.asyncTests=function(){};
+core.UnitTestRunner=function(){function i(a){e+=1;runtime.log("fail",a)}function k(a,c){var b;try{if(a.length!==c.length)return!1;for(b=0;b<a.length;b+=1)if(a[b]!==c[b])return!1}catch(d){return!1}return!0}function j(a,c,b){("string"!==typeof c||"string"!==typeof b)&&runtime.log("WARN: shouldBe() expects string arguments");var d,e;try{e=eval(c)}catch(f){d=f}a=eval(b);d?i(c+" should be "+a+". Threw exception "+d):(0===a?e===a&&1/e===1/a:e===a||("number"===typeof a&&isNaN(a)?"number"===typeof e&&isNaN(e):
+Object.prototype.toString.call(a)===Object.prototype.toString.call([])&&k(e,a)))?runtime.log("pass",c+" is "+b):typeof e===typeof a?(b=0===e&&0>1/e?"-0":String(e),i(c+" should be "+a+". Was "+b+".")):i(c+" should be "+a+" (of type "+typeof a+"). Was "+e+" (of type "+typeof e+").")}var e=0;this.shouldBeNull=function(a,c){j(a,c,"null")};this.shouldBeNonNull=function(a,c){var b,d;try{d=eval(c)}catch(e){b=e}b?i(c+" should be non-null. Threw exception "+b):null!==d?runtime.log("pass",c+" is non-null."):
+i(c+" should be non-null. Was "+d)};this.shouldBe=j;this.countFailedTests=function(){return e}};
+core.UnitTester=function(){var i=0,k={};this.runTests=function(j,e){function a(b){if(0===b.length)k[c]=f,i+=d.countFailedTests(),e();else{h=b[0];var g=Runtime.getFunctionName(h);runtime.log("Running "+g);l=d.countFailedTests();o.setUp();h(function(){o.tearDown();f[g]=l===d.countFailedTests();a(b.slice(1))})}}var c=Runtime.getFunctionName(j),b,d=new core.UnitTestRunner,o=new j(d),f={},g,h,n,l;if(c.hasOwnProperty(k))runtime.log("Test "+c+" has already run.");else{runtime.log("Running "+c+": "+o.description());
+n=o.tests();for(g=0;g<n.length;g+=1)h=n[g],b=Runtime.getFunctionName(h),runtime.log("Running "+b),l=d.countFailedTests(),o.setUp(),h(),o.tearDown(),f[b]=l===d.countFailedTests();a(o.asyncTests())}};this.countFailedTests=function(){return i};this.results=function(){return k}};
+// Input 10
+core.PointWalker=function(i){function k(a){for(var c=-1;a;)a=a.previousSibling,c+=1;return c}var j=i,e=null,a=i&&i.firstChild,c=0;this.setPoint=function(b,d){j=b;c=d;if(3===j.nodeType)e=a=null;else{for(a=j.firstChild;d;)d-=1,a=a.nextSibling;e=a?a.previousSibling:j.lastChild}};this.stepForward=function(){var b;return 3===j.nodeType&&(b="number"===typeof j.nodeValue.length?j.nodeValue.length:j.nodeValue.length(),c<b)?(c+=1,!0):a?(1===a.nodeType?(j=a,e=null,a=j.firstChild,c=0):3===a.nodeType?(j=a,a=
+e=null,c=0):(e=a,a=a.nextSibling,c+=1),!0):j!==i?(e=j,a=e.nextSibling,j=j.parentNode,c=k(e)+1,!0):!1};this.stepBackward=function(){var b;return 3===j.nodeType&&0<c?(c-=1,!0):e?(1===e.nodeType?(j=e,e=j.lastChild,a=null,c=k(e)+1):3===e.nodeType?(j=e,a=e=null,c=j.nodeValue.length,"number"!==typeof c&&(b=c,c=b.call(j.nodeValue))):(a=e,e=e.previousSibling,c-=1),!0):j!==i?(a=j,e=a.previousSibling,j=j.parentNode,c=k(a),!0):!1};this.node=function(){return j};this.position=function(){return c};this.precedingSibling=
+function(){return e};this.followingSibling=function(){return a}};
+// Input 11
+core.Async=function(){this.forEach=function(i,k,j){function e(a){b!==c&&(a?(b=c,j(a)):(b+=1,b===c&&j(null)))}var a,c=i.length,b=0;for(a=0;a<c;a+=1)k(i[a],e)}};
+// Input 12
+runtime.loadClass("core.RawInflate");runtime.loadClass("core.ByteArray");runtime.loadClass("core.ByteArrayWriter");runtime.loadClass("core.Base64");
+core.Zip=function(i,k){function j(a){var b=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,
+853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,
+4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,
+225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,
+2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,
+2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],c,d,f=a.length,e=0,e=0;c=-1;for(d=0;d<f;d+=1)e=(c^a[d])&255,e=b[e],c=c>>>8^e;return c^-1}function e(a){var b=a.getFullYear();return 1980>b?0:b-1980<<25|a.getMonth()+1<<21|a.getDate()<<16|a.getHours()<<11|a.getMinutes()<<5|a.getSeconds()>>1}function a(a,
+b){var c,d,f,e,g,n,m,i=this;this.load=function(b){if(void 0!==i.data)b(null,i.data);else{var c=g+34+d+f+256;c+m>h&&(c=h-m);runtime.read(a,m,c,function(c,d){if(c||null===d)b(c,d);else a:{var f=d,h=new core.ByteArray(f),m=h.readUInt32LE(),u;if(67324752!==m)b("File entry signature is wrong."+m.toString()+" "+f.length.toString(),null);else{h.pos+=22;m=h.readUInt16LE();u=h.readUInt16LE();h.pos+=m+u;if(e){f=f.slice(h.pos,h.pos+g);if(g!==f.length){b("The amount of compressed bytes read was "+f.length.toString()+
+" instead of "+g.toString()+" for "+i.filename+" in "+a+".",null);break a}f=l(f,n)}else f=f.slice(h.pos,h.pos+n);n!==f.length?b("The amount of bytes read was "+f.length.toString()+" instead of "+n.toString()+" for "+i.filename+" in "+a+".",null):(i.data=f,b(null,f))}}})}};this.set=function(a,b,c,f){i.filename=a;i.data=b;i.compressed=c;i.date=f};this.error=null;b&&(c=b.readUInt32LE(),33639248!==c?this.error="Central directory entry has wrong signature at position "+(b.pos-4).toString()+' for file "'+
+a+'": '+b.data.length.toString():(b.pos+=6,e=b.readUInt16LE(),c=b.readUInt32LE(),this.date=new Date((c>>25&127)+1980,(c>>21&15)-1,c>>16&31,c>>11&15,c>>5&63,(c&31)<<1),b.readUInt32LE(),g=b.readUInt32LE(),n=b.readUInt32LE(),d=b.readUInt16LE(),f=b.readUInt16LE(),c=b.readUInt16LE(),b.pos+=8,m=b.readUInt32LE(),this.filename=runtime.byteArrayToString(b.data.slice(b.pos,b.pos+d),"utf8"),b.pos+=d+f+c))}function c(a,b){var c=null,f,d;for(d=0;d<g.length;d+=1)if(f=g[d],f.filename===a){c=f;break}c?c.data?b(null,
+c.data):c.load(b):b(a+" not found.",null)}function b(a){var b=new core.ByteArrayWriter("utf8"),c=0;b.appendArray([80,75,3,4,20,0,0,0,0,0]);a.data&&(c=a.data.length);b.appendUInt32LE(e(a.date));b.appendUInt32LE(j(a.data));b.appendUInt32LE(c);b.appendUInt32LE(c);b.appendUInt16LE(a.filename.length);b.appendUInt16LE(0);b.appendString(a.filename);a.data&&b.appendByteArray(a.data);return b}function d(a,b){var c=new core.ByteArrayWriter("utf8"),f=0;c.appendArray([80,75,1,2,20,0,20,0,0,0,0,0]);a.data&&(f=
+a.data.length);c.appendUInt32LE(e(a.date));c.appendUInt32LE(j(a.data));c.appendUInt32LE(f);c.appendUInt32LE(f);c.appendUInt16LE(a.filename.length);c.appendArray([0,0,0,0,0,0,0,0,0,0,0,0]);c.appendUInt32LE(b);c.appendString(a.filename);return c}function o(a,b){if(a===g.length)b(null);else{var c=g[a];void 0!==c.data?o(a+1,b):c.load(function(c){c?b(c):o(a+1,b)})}}function f(a,c){o(0,function(f){if(f)c(f);else{var f=new core.ByteArrayWriter("utf8"),e,n,h,m=[0];for(e=0;e<g.length;e+=1)f.appendByteArrayWriter(b(g[e])),
+m.push(f.getLength());h=f.getLength();for(e=0;e<g.length;e+=1)n=g[e],f.appendByteArrayWriter(d(n,m[e]));e=f.getLength()-h;f.appendArray([80,75,5,6,0,0,0,0]);f.appendUInt16LE(g.length);f.appendUInt16LE(g.length);f.appendUInt32LE(e);f.appendUInt32LE(h);f.appendArray([0,0]);runtime.writeFile(a,f.getByteArray(),c)}})}var g,h,n,l=(new core.RawInflate).inflate,m=this,w=new core.Base64;this.load=c;this.save=function(b,c,f,d){var e,n;for(e=0;e<g.length;e+=1)if(n=g[e],n.filename===b){n.set(b,c,f,d);return}n=
+new a(i);n.set(b,c,f,d);g.push(n)};this.write=function(a){f(i,a)};this.writeAs=f;this.loadContentXmlAsFragments=function(a,b){m.loadAsString(a,function(a,c){if(a)return b.rootElementReady(a);b.rootElementReady(null,c,!0)})};this.loadAsString=function(a,b){c(a,function(a,c){if(a||null===c)return b(a,null);var f=runtime.byteArrayToString(c,"utf8");b(null,f)})};this.loadAsDOM=function(a,b){m.loadAsString(a,function(a,c){if(a||null===c)b(a,null);else{var f=(new DOMParser).parseFromString(c,"text/xml");
+b(null,f)}})};this.loadAsDataURL=function(a,b,f){c(a,function(a,c){if(a)return f(a,null);var d=0,e;b||(b=80===c[1]&&78===c[2]&&71===c[3]?"image/png":255===c[0]&&216===c[1]&&255===c[2]?"image/jpeg":71===c[0]&&73===c[1]&&70===c[2]?"image/gif":"");for(e="data:"+b+";base64,";d<c.length;)e+=w.convertUTF8ArrayToBase64(c.slice(d,Math.min(d+45E3,c.length))),d+=45E3;f(null,e)})};this.getEntries=function(){return g.slice()};h=-1;null===k?g=[]:runtime.getFileSize(i,function(b){h=b;0>h?k("File '"+i+"' cannot be read.",
+m):runtime.read(i,h-22,22,function(b,c){if(b||null===k||null===c)k(b,m);else if(22!==c.length)k("Central directory length should be 22.",m);else{var f=new core.ByteArray(c),d;d=f.readUInt32LE();101010256!==d?k("Central directory signature is wrong: "+d.toString(),m):(d=f.readUInt16LE(),0!==d?k("Zip files with non-zero disk numbers are not supported.",m):(d=f.readUInt16LE(),0!==d?k("Zip files with non-zero disk numbers are not supported.",m):(d=f.readUInt16LE(),n=f.readUInt16LE(),d!==n?k("Number of entries is inconsistent.",
+m):(d=f.readUInt32LE(),f=f.readUInt16LE(),f=h-22-d,runtime.read(i,f,h-f,function(b,c){if(b||null===c)k(b,m);else a:{var f=new core.ByteArray(c),d,e;g=[];for(d=0;d<n;d+=1){e=new a(i,f);if(e.error){k(e.error,m);break a}g[g.length]=e}k(null,m)}})))))}})})};
+// Input 13
+xmldom.LSSerializerFilter=function(){};
+// Input 14
+"function"!==typeof Object.create&&(Object.create=function(i){var k=function(){};k.prototype=i;return new k});
+xmldom.LSSerializer=function(){function i(j,e){var a="",c=Object.create(j),b=k.filter?k.filter.acceptNode(e):1,d;if(1===b){d="";var o=e.attributes,f,g,h,n="",l;if(o){c[e.namespaceURI]!==e.prefix&&(c[e.namespaceURI]=e.prefix);d+="<"+e.nodeName;f=o.length;for(g=0;g<f;g+=1)if(h=o.item(g),"http://www.w3.org/2000/xmlns/"!==h.namespaceURI&&(l=k.filter?k.filter.acceptNode(h):1,1===l)){if(h.namespaceURI){l=h.prefix;var m=h.namespaceURI;c.hasOwnProperty(m)?l=c[m]+":":(c[m]!==l&&(c[m]=l),l+=":")}else l="";
+n+=" "+(l+h.localName+'="'+h.nodeValue+'"')}for(g in c)c.hasOwnProperty(g)&&((l=c[g])?"xmlns"!==l&&(d+=" xmlns:"+c[g]+'="'+g+'"'):d+=' xmlns="'+g+'"');d+=n+">"}a+=d}if(1===b||3===b){for(d=e.firstChild;d;)a+=i(c,d),d=d.nextSibling;e.nodeValue&&(a+=e.nodeValue)}1===b&&(c="",1===e.nodeType&&(c+="</"+e.nodeName+">"),a+=c);return a}var k=this;this.filter=null;this.writeToString=function(j,e){if(!j)return"";var a;if(e){a=e;var c={},b;for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);a=c}else a={};return i(a,
+j)}};
+// Input 15
+xmldom.RelaxNGParser=function(){function i(a,b){this.message=function(){b&&(a+=1===b.nodeType?" Element ":" Node ",a+=b.nodeName,b.nodeValue&&(a+=" with value '"+b.nodeValue+"'"),a+=".");return a}}function k(a){if(2>=a.e.length)return a;var b={name:a.name,e:a.e.slice(0,2)};return k({name:a.name,e:[b].concat(a.e.slice(2))})}function j(a){var a=a.split(":",2),b="",c;1===a.length?a=["",a[0]]:b=a[0];for(c in d)d[c]===b&&(a[0]=c);return a}function e(a,b){for(var c=0,d,l,m=a.name;a.e&&c<a.e.length;)if(d=
+a.e[c],"ref"===d.name){l=b[d.a.name];if(!l)throw d.a.name+" was not defined.";d=a.e.slice(c+1);a.e=a.e.slice(0,c);a.e=a.e.concat(l.e);a.e=a.e.concat(d)}else c+=1,e(d,b);d=a.e;if("choice"===m&&(!d||!d[1]||"empty"===d[1].name))!d||!d[0]||"empty"===d[0].name?(delete a.e,a.name="empty"):(d[1]=d[0],d[0]={name:"empty"});if("group"===m||"interleave"===m)"empty"===d[0].name?"empty"===d[1].name?(delete a.e,a.name="empty"):(m=a.name=d[1].name,a.names=d[1].names,d=a.e=d[1].e):"empty"===d[1].name&&(m=a.name=
+d[0].name,a.names=d[0].names,d=a.e=d[0].e);"oneOrMore"===m&&"empty"===d[0].name&&(delete a.e,a.name="empty");if("attribute"===m){l=a.names?a.names.length:0;for(var i,o=a.localnames=[l],k=a.namespaces=[l],c=0;c<l;c+=1)i=j(a.names[c]),k[c]=i[0],o[c]=i[1]}"interleave"===m&&("interleave"===d[0].name?a.e="interleave"===d[1].name?d[0].e.concat(d[1].e):[d[1]].concat(d[0].e):"interleave"===d[1].name&&(a.e=[d[0]].concat(d[1].e)))}function a(c,b){for(var d=0,e;c.e&&d<c.e.length;)e=c.e[d],"elementref"===e.name?
+(e.id=e.id||0,c.e[d]=b[e.id]):"element"!==e.name&&a(e,b),d+=1}var c=this,b,d={"http://www.w3.org/XML/1998/namespace":"xml"},o;o=function(a,c,b){var e=[],l,m,i=a.localName,x=[];l=a.attributes;var A=i,v=x,t={},z,B;for(z=0;z<l.length;z+=1)if(B=l.item(z),B.namespaceURI)"http://www.w3.org/2000/xmlns/"===B.namespaceURI&&(d[B.value]=B.localName);else{"name"===B.localName&&("element"===A||"attribute"===A)&&v.push(B.value);if("name"===B.localName||"combine"===B.localName||"type"===B.localName){var C=B,y;y=
+B.value;y=y.replace(/^\s\s*/,"");for(var s=/\s/,I=y.length-1;s.test(y.charAt(I));)I-=1;y=y.slice(0,I+1);C.value=y}t[B.localName]=B.value}l=t;l.combine=l.combine||void 0;a=a.firstChild;A=e;v=x;for(t="";a;){if(1===a.nodeType&&"http://relaxng.org/ns/structure/1.0"===a.namespaceURI){if(z=o(a,c,A))"name"===z.name?v.push(d[z.a.ns]+":"+z.text):"choice"===z.name&&(z.names&&z.names.length)&&(v=v.concat(z.names),delete z.names),A.push(z)}else 3===a.nodeType&&(t+=a.nodeValue);a=a.nextSibling}a=t;"value"!==i&&
+"param"!==i&&(a=/^\s*([\s\S]*\S)?\s*$/.exec(a)[1]);"value"===i&&void 0===l.type&&(l.type="token",l.datatypeLibrary="");if(("attribute"===i||"element"===i)&&void 0!==l.name)m=j(l.name),e=[{name:"name",text:m[1],a:{ns:m[0]}}].concat(e),delete l.name;"name"===i||"nsName"===i||"value"===i?void 0===l.ns&&(l.ns=""):delete l.ns;"name"===i&&(m=j(a),l.ns=m[0],a=m[1]);if(1<e.length&&("define"===i||"oneOrMore"===i||"zeroOrMore"===i||"optional"===i||"list"===i||"mixed"===i))e=[{name:"group",e:k({name:"group",
+e:e}).e}];2<e.length&&"element"===i&&(e=[e[0]].concat({name:"group",e:k({name:"group",e:e.slice(1)}).e}));1===e.length&&"attribute"===i&&e.push({name:"text",text:a});if(1===e.length&&("choice"===i||"group"===i||"interleave"===i))i=e[0].name,x=e[0].names,l=e[0].a,a=e[0].text,e=e[0].e;else if(2<e.length&&("choice"===i||"group"===i||"interleave"===i))e=k({name:i,e:e}).e;"mixed"===i&&(i="interleave",e=[e[0],{name:"text"}]);"optional"===i&&(i="choice",e=[e[0],{name:"empty"}]);"zeroOrMore"===i&&(i="choice",
+e=[{name:"oneOrMore",e:[e[0]]},{name:"empty"}]);if("define"===i&&l.combine){a:{A=l.combine;v=l.name;t=e;for(z=0;b&&z<b.length;z+=1)if(B=b[z],"define"===B.name&&B.a&&B.a.name===v){B.e=[{name:A,e:B.e.concat(t)}];b=B;break a}b=null}if(b)return}b={name:i};e&&0<e.length&&(b.e=e);for(m in l)if(l.hasOwnProperty(m)){b.a=l;break}void 0!==a&&(b.text=a);x&&0<x.length&&(b.names=x);"element"===i&&(b.id=c.length,c.push(b),b={name:"elementref",id:b.id});return b};this.parseRelaxNGDOM=function(f,g){var h=[],n=o(f&&
+f.documentElement,h,void 0),l,m,j={};for(l=0;l<n.e.length;l+=1)m=n.e[l],"define"===m.name?j[m.a.name]=m:"start"===m.name&&(b=m);if(!b)return[new i("No Relax NG start element was found.")];e(b,j);for(l in j)j.hasOwnProperty(l)&&e(j[l],j);for(l=0;l<h.length;l+=1)e(h[l],j);g&&(c.rootPattern=g(b.e[0],h));a(b,h);for(l=0;l<h.length;l+=1)a(h[l],h);c.start=b;c.elements=h;c.nsmap=d;return null}};
+// Input 16
+runtime.loadClass("xmldom.RelaxNGParser");
+xmldom.RelaxNG=function(){function i(a){var b;return function(){void 0===b&&(b=a());return b}}function k(a,b){var c={},d=0;return function(f){var e=f.hash||f.toString(),g;g=c[e];if(void 0!==g)return g;c[e]=g=b(f);g.hash=a+d.toString();d+=1;return g}}function j(a){var b={};return function(c){var d,f;f=b[c.localName];if(void 0===f)b[c.localName]=f={};else if(d=f[c.namespaceURI],void 0!==d)return d;return f[c.namespaceURI]=d=a(c)}}function e(a,b,c){var d={},f=0;return function(e,g){var m=b&&b(e,g),l,
+h;if(void 0!==m)return m;m=e.hash||e.toString();l=g.hash||g.toString();h=d[m];if(void 0===h)d[m]=h={};else if(m=h[l],void 0!==m)return m;h[l]=m=c(e,g);m.hash=a+f.toString();f+=1;return m}}function a(b,c){"choice"===c.p1.type?a(b,c.p1):b[c.p1.hash]=c.p1;"choice"===c.p2.type?a(b,c.p2):b[c.p2.hash]=c.p2}function c(a,b,f,e){if(b===v)return v;if(e>=f.length)return b;0===e&&(e=0);for(var g=f.item(e);g.namespaceURI===d;){e+=1;if(e>=f.length)return b;g=f.item(e)}return g=c(a,b.attDeriv(a,f.item(e)),f,e+1)}
+function b(a,c,d){d.e[0].a?(a.push(d.e[0].text),c.push(d.e[0].a.ns)):b(a,c,d.e[0]);d.e[1].a?(a.push(d.e[1].text),c.push(d.e[1].a.ns)):b(a,c,d.e[1])}var d="http://www.w3.org/2000/xmlns/",o,f,g,h,n,l,m,w,x,A,v={type:"notAllowed",nullable:!1,hash:"notAllowed",textDeriv:function(){return v},startTagOpenDeriv:function(){return v},attDeriv:function(){return v},startTagCloseDeriv:function(){return v},endTagDeriv:function(){return v}},t={type:"empty",nullable:!0,hash:"empty",textDeriv:function(){return v},
+startTagOpenDeriv:function(){return v},attDeriv:function(){return v},startTagCloseDeriv:function(){return t},endTagDeriv:function(){return v}},z={type:"text",nullable:!0,hash:"text",textDeriv:function(){return z},startTagOpenDeriv:function(){return v},attDeriv:function(){return v},startTagCloseDeriv:function(){return z},endTagDeriv:function(){return v}},B,C,y;o=e("choice",function(a,b){if(a===v)return b;if(b===v||a===b)return a},function(b,c){var d={},f;a(d,{p1:b,p2:c});c=b=void 0;for(f in d)d.hasOwnProperty(f)&&
+(void 0===b?b=d[f]:c=void 0===c?d[f]:o(c,d[f]));var e=b,g=c;return{type:"choice",p1:e,p2:g,nullable:e.nullable||g.nullable,textDeriv:function(a,b){return o(e.textDeriv(a,b),g.textDeriv(a,b))},startTagOpenDeriv:j(function(a){return o(e.startTagOpenDeriv(a),g.startTagOpenDeriv(a))}),attDeriv:function(a,b){return o(e.attDeriv(a,b),g.attDeriv(a,b))},startTagCloseDeriv:i(function(){return o(e.startTagCloseDeriv(),g.startTagCloseDeriv())}),endTagDeriv:i(function(){return o(e.endTagDeriv(),g.endTagDeriv())})}});
+var s=function(a,b){if(a===v||b===v)return v;if(a===t)return b;if(b===t)return a},I={},q=0;f=function(a,b){var c=s&&s(a,b),d,e;if(void 0!==c)return c;c=a.hash||a.toString();d=b.hash||b.toString();c<d&&(e=c,c=d,d=e,e=a,a=b,b=e);e=I[c];if(void 0===e)I[c]=e={};else if(c=e[d],void 0!==c)return c;var g=a,m=b,c={type:"interleave",p1:g,p2:m,nullable:g.nullable&&m.nullable,textDeriv:function(a,b){return o(f(g.textDeriv(a,b),m),f(g,m.textDeriv(a,b)))},startTagOpenDeriv:j(function(a){return o(B(function(a){return f(a,
+m)},g.startTagOpenDeriv(a)),B(function(a){return f(g,a)},m.startTagOpenDeriv(a)))}),attDeriv:function(a,b){return o(f(g.attDeriv(a,b),m),f(g,m.attDeriv(a,b)))},startTagCloseDeriv:i(function(){return f(g.startTagCloseDeriv(),m.startTagCloseDeriv())})};e[d]=c;c.hash="interleave"+q.toString();q+=1;return c};g=e("group",function(a,b){if(a===v||b===v)return v;if(a===t)return b;if(b===t)return a},function(a,b){return{type:"group",p1:a,p2:b,nullable:a.nullable&&b.nullable,textDeriv:function(c,d){var f=g(a.textDeriv(c,
+d),b);return a.nullable?o(f,b.textDeriv(c,d)):f},startTagOpenDeriv:function(c){var d=B(function(a){return g(a,b)},a.startTagOpenDeriv(c));return a.nullable?o(d,b.startTagOpenDeriv(c)):d},attDeriv:function(c,d){return o(g(a.attDeriv(c,d),b),g(a,b.attDeriv(c,d)))},startTagCloseDeriv:i(function(){return g(a.startTagCloseDeriv(),b.startTagCloseDeriv())})}});h=e("after",function(a,b){if(a===v||b===v)return v},function(a,b){return{type:"after",p1:a,p2:b,nullable:!1,textDeriv:function(c,d){return h(a.textDeriv(c,
+d),b)},startTagOpenDeriv:j(function(c){return B(function(a){return h(a,b)},a.startTagOpenDeriv(c))}),attDeriv:function(c,d){return h(a.attDeriv(c,d),b)},startTagCloseDeriv:i(function(){return h(a.startTagCloseDeriv(),b)}),endTagDeriv:i(function(){return a.nullable?b:v})}});n=k("oneormore",function(a){return a===v?v:{type:"oneOrMore",p:a,nullable:a.nullable,textDeriv:function(b,c){return g(a.textDeriv(b,c),o(this,t))},startTagOpenDeriv:function(b){var c=this;return B(function(a){return g(a,o(c,t))},
+a.startTagOpenDeriv(b))},attDeriv:function(b,c){return g(a.attDeriv(b,c),o(this,t))},startTagCloseDeriv:i(function(){return n(a.startTagCloseDeriv())})}});m=e("attribute",void 0,function(a,b){return{type:"attribute",nullable:!1,nc:a,p:b,attDeriv:function(c,d){return a.contains(d)&&(b.nullable&&/^\s+$/.test(d.nodeValue)||b.textDeriv(c,d.nodeValue).nullable)?t:v},startTagCloseDeriv:function(){return v}}});l=k("value",function(a){return{type:"value",nullable:!1,value:a,textDeriv:function(b,c){return c===
+a?t:v},attDeriv:function(){return v},startTagCloseDeriv:function(){return this}}});x=k("data",function(a){return{type:"data",nullable:!1,dataType:a,textDeriv:function(){return t},attDeriv:function(){return v},startTagCloseDeriv:function(){return this}}});B=function r(a,b){return"after"===b.type?h(b.p1,a(b.p2)):"choice"===b.type?o(r(a,b.p1),r(a,b.p2)):b};C=function(a,b,d){for(var f=d.currentNode,b=b.startTagOpenDeriv(f),b=c(a,b,f.attributes,0),e=b=b.startTagCloseDeriv(),f=d.currentNode,b=d.firstChild(),
+g=[],m;b;)1===b.nodeType?g.push(b):3===b.nodeType&&!/^\s*$/.test(b.nodeValue)&&g.push(b.nodeValue),b=d.nextSibling();0===g.length&&(g=[""]);m=e;for(e=0;m!==v&&e<g.length;e+=1)b=g[e],"string"===typeof b?m=/^\s*$/.test(b)?o(m,m.textDeriv(a,b)):m.textDeriv(a,b):(d.currentNode=b,m=C(a,m,d));d.currentNode=f;return b=m.endTagDeriv()};w=function(a){var c,d,f;if("name"===a.name)c=a.text,d=a.a.ns,a={name:c,ns:d,hash:"{"+d+"}"+c,contains:function(a){return a.namespaceURI===d&&a.localName===c}};else if("choice"===
+a.name){c=[];d=[];b(c,d,a);a="";for(f=0;f<c.length;f+=1)a+="{"+d[f]+"}"+c[f]+",";a={hash:a,contains:function(a){var b;for(b=0;b<c.length;b+=1)if(c[b]===a.localName&&d[b]===a.namespaceURI)return!0;return!1}}}else a={hash:"anyName",contains:function(){return!0}};return a};A=function p(a,b){var c,d;if("elementref"===a.name){c=a.id||0;a=b[c];if(void 0!==a.name){var e=a;c=b[e.id]={hash:"element"+e.id.toString()};var i=w(e.e[0]),j=A(e.e[1],b),e={type:"element",nc:i,nullable:!1,textDeriv:function(){return v},
+startTagOpenDeriv:function(a){return i.contains(a)?h(j,t):v},attDeriv:function(){return v},startTagCloseDeriv:function(){return this}};for(d in e)e.hasOwnProperty(d)&&(c[d]=e[d]);return c}return a}switch(a.name){case "empty":return t;case "notAllowed":return v;case "text":return z;case "choice":return o(p(a.e[0],b),p(a.e[1],b));case "interleave":c=p(a.e[0],b);for(d=1;d<a.e.length;d+=1)c=f(c,p(a.e[d],b));return c;case "group":return g(p(a.e[0],b),p(a.e[1],b));case "oneOrMore":return n(p(a.e[0],b));
+case "attribute":return m(w(a.e[0]),p(a.e[1],b));case "value":return l(a.text);case "data":return c=a.a&&a.a.type,void 0===c&&(c=""),x(c);case "list":return{type:"list",nullable:!1,hash:"list",textDeriv:function(){return t}}}throw"No support for "+a.name;};this.makePattern=function(a,b){var c={},d;for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return d=A(a,c)};this.validate=function(a,b){var c;a.currentNode=a.root;c=C(null,y,a);c.nullable?b(null):(runtime.log("Error in Relax NG validation: "+c),b(["Error in Relax NG validation: "+
+c]))};this.init=function(a){y=a}};
+// Input 17
+runtime.loadClass("xmldom.RelaxNGParser");
+xmldom.RelaxNG2=function(){function i(a,c){this.message=function(){c&&(a+=1===c.nodeType?" Element ":" Node ",a+=c.nodeName,c.nodeValue&&(a+=" with value '"+c.nodeValue+"'"),a+=".");return a}}function k(b,c,e,f){return"empty"===b.name?null:a(b,c,e,f)}function j(a,d){if(2!==a.e.length)throw"Element with wrong # of elements: "+a.e.length;for(var e=d.currentNode,f=e?e.nodeType:0,g=null;1<f;){if(8!==f&&(3!==f||!/^\s+$/.test(d.currentNode.nodeValue)))return[new i("Not allowed node of type "+f+".")];f=
+(e=d.nextSibling())?e.nodeType:0}if(!e)return[new i("Missing element "+a.names)];if(a.names&&-1===a.names.indexOf(c[e.namespaceURI]+":"+e.localName))return[new i("Found "+e.nodeName+" instead of "+a.names+".",e)];if(d.firstChild()){for(g=k(a.e[1],d,e);d.nextSibling();)if(f=d.currentNode.nodeType,(!d.currentNode||!(3===d.currentNode.nodeType&&/^\s+$/.test(d.currentNode.nodeValue)))&&8!==f)return[new i("Spurious content.",d.currentNode)];if(d.parentNode()!==e)return[new i("Implementation error.")]}else g=
+k(a.e[1],d,e);d.nextSibling();return g}var e,a,c;a=function(b,c,e,f){var g=b.name,h=null;if("text"===g)a:{for(var n=(b=c.currentNode)?b.nodeType:0;b!==e&&3!==n;){if(1===n){h=[new i("Element not allowed here.",b)];break a}n=(b=c.nextSibling())?b.nodeType:0}c.nextSibling();h=null}else if("data"===g)h=null;else if("value"===g)f!==b.text&&(h=[new i("Wrong value, should be '"+b.text+"', not '"+f+"'",e)]);else if("list"===g)h=null;else if("attribute"===g)a:{if(2!==b.e.length)throw"Attribute with wrong # of elements: "+
+b.e.length;g=b.localnames.length;for(h=0;h<g;h+=1){f=e.getAttributeNS(b.namespaces[h],b.localnames[h]);""===f&&!e.hasAttributeNS(b.namespaces[h],b.localnames[h])&&(f=void 0);if(void 0!==n&&void 0!==f){h=[new i("Attribute defined too often.",e)];break a}n=f}h=void 0===n?[new i("Attribute not found: "+b.names,e)]:k(b.e[1],c,e,n)}else if("element"===g)h=j(b,c,e);else if("oneOrMore"===g){f=0;do n=c.currentNode,g=a(b.e[0],c,e),f+=1;while(!g&&n!==c.currentNode);1<f?(c.currentNode=n,h=null):h=g}else if("choice"===
+g){if(2!==b.e.length)throw"Choice with wrong # of options: "+b.e.length;n=c.currentNode;if("empty"===b.e[0].name){if(g=a(b.e[1],c,e,f))c.currentNode=n;h=null}else{if(g=k(b.e[0],c,e,f))c.currentNode=n,g=a(b.e[1],c,e,f);h=g}}else if("group"===g){if(2!==b.e.length)throw"Group with wrong # of members: "+b.e.length;h=a(b.e[0],c,e)||a(b.e[1],c,e)}else if("interleave"===g)a:{for(var n=b.e.length,f=[n],l=n,m,w,x,A;0<l;){m=0;w=c.currentNode;for(h=0;h<n;h+=1)x=c.currentNode,!0!==f[h]&&f[h]!==x&&(A=b.e[h],(g=
+a(A,c,e))?(c.currentNode=x,void 0===f[h]&&(f[h]=!1)):x===c.currentNode||"oneOrMore"===A.name||"choice"===A.name&&("oneOrMore"===A.e[0].name||"oneOrMore"===A.e[1].name)?(m+=1,f[h]=x):(m+=1,f[h]=!0));if(w===c.currentNode&&m===l){h=null;break a}if(0===m){for(h=0;h<n;h+=1)if(!1===f[h]){h=[new i("Interleave does not match.",e)];break a}h=null;break a}for(h=l=0;h<n;h+=1)!0!==f[h]&&(l+=1)}h=null}else throw g+" not allowed in nonEmptyPattern.";return h};this.validate=function(a,c){a.currentNode=a.root;var i=
+k(e.e[0],a,a.root);c(i)};this.init=function(a,d){e=a;c=d}};
+// Input 18
+xmldom.OperationalTransformInterface=function(){};xmldom.OperationalTransformInterface.prototype.retain=function(){};xmldom.OperationalTransformInterface.prototype.insertCharacters=function(){};xmldom.OperationalTransformInterface.prototype.insertElementStart=function(){};xmldom.OperationalTransformInterface.prototype.insertElementEnd=function(){};xmldom.OperationalTransformInterface.prototype.deleteCharacters=function(){};xmldom.OperationalTransformInterface.prototype.deleteElementStart=function(){};
+xmldom.OperationalTransformInterface.prototype.deleteElementEnd=function(){};xmldom.OperationalTransformInterface.prototype.replaceAttributes=function(){};xmldom.OperationalTransformInterface.prototype.updateAttributes=function(){};
+// Input 19
+xmldom.OperationalTransformDOM=function(){this.retain=function(){};this.insertCharacters=function(){};this.insertElementStart=function(){};this.insertElementEnd=function(){};this.deleteCharacters=function(){};this.deleteElementStart=function(){};this.deleteElementEnd=function(){};this.replaceAttributes=function(){};this.updateAttributes=function(){};this.atEnd=function(){return!0}};
+// Input 20
+xmldom.XPath=function(){function i(a,c,b){return-1!==a&&(a<c||-1===c)&&(a<b||-1===b)}function k(a){for(var c=[],b=0,d=a.length,e;b<d;){var f=a,g=d,j=c,o="",k=[],C=f.indexOf("[",b),y=f.indexOf("/",b),s=f.indexOf("=",b);i(y,C,s)?(o=f.substring(b,y),b=y+1):i(C,y,s)?(o=f.substring(b,C),b=h(f,C,k)):i(s,y,C)?(o=f.substring(b,s),b=s):(o=f.substring(b,g),b=g);j.push({location:o,predicates:k});if(b<d&&"="===a[b]){e=a.substring(b+1,d);if(2<e.length&&("'"===e[0]||'"'===e[0]))e=e.slice(1,e.length-1);else try{e=
+parseInt(e,10)}catch(I){}b=d}}return{steps:c,value:e}}function j(){}function e(){var a,b=!1;this.setNode=function(b){a=b};this.reset=function(){b=!1};this.next=function(){var c=b?null:a;b=!0;return c}}function a(a,b,c){this.reset=function(){a.reset()};this.next=function(){for(var d=a.next();d&&!(d=d.getAttributeNodeNS(b,c));)d=a.next();return d}}function c(a,b){var c=a.next(),d=null;this.reset=function(){a.reset();c=a.next();d=null};this.next=function(){for(;c;){if(d)if(b&&d.firstChild)d=d.firstChild;
+else{for(;!d.nextSibling&&d!==c;)d=d.parentNode;d===c?c=a.next():d=d.nextSibling}else{do(d=c.firstChild)||(c=a.next());while(c&&!d)}if(d&&1===d.nodeType)return d}return null}}function b(a,b){this.reset=function(){a.reset()};this.next=function(){for(var c=a.next();c&&!b(c);)c=a.next();return c}}function d(a,c,d){var c=c.split(":",2),e=d(c[0]),f=c[1];return new b(a,function(a){return a.localName===f&&a.namespaceURI===e})}function o(a,c,d){var f=new e,h=g(f,c,d),i=c.value;return void 0===i?new b(a,function(a){f.setNode(a);
+h.reset();return h.next()}):new b(a,function(a){f.setNode(a);h.reset();return(a=h.next())&&a.nodeValue===i})}function f(a,c,b){var d=a.ownerDocument,f=[],f=new e;f.setNode(a);a=k(c);f=g(f,a,b);a=[];for(b=f.next();b;)a.push(b),b=f.next();return f=a}var g,h;h=function(a,c,b){for(var d=c,e=a.length,f=0;d<e;)"]"===a[d]?(f-=1,0>=f&&b.push(k(a.substring(c,d)))):"["===a[d]&&(0>=f&&(c=d+1),f+=1),d+=1;return d};j.prototype.next=function(){};j.prototype.reset=function(){};g=function(b,e,f){var g,h,i,j;for(g=
+0;g<e.steps.length;g+=1){i=e.steps[g];h=i.location;""===h?b=new c(b,!1):"@"===h[0]?(j=h.slice(1).split(":",2),b=new a(b,f(j[0]),j[1])):"."!==h&&(b=new c(b,!1),-1!==h.indexOf(":")&&(b=d(b,h,f)));for(h=0;h<i.predicates.length;h+=1)j=i.predicates[h],b=o(b,j,f)}return b};xmldom.XPath=function(){this.getODFElementsWithXPath=f};return xmldom.XPath}();
+// Input 21
+odf.StyleInfo=function(){function i(a,b){for(var c=k[a.localName],d=c&&c[a.namespaceURI],e=d?d.length:0,f,j,o,c=0;c<e;c+=1)if(f=a.getAttributeNS(d[c].ns,d[c].localname))j=d[c].keygroup,(o=b[j])||(o=b[j]={}),o[f]=1;for(c=a.firstChild;c;)1===c.nodeType&&(d=c,i(d,b)),c=c.nextSibling}var k;this.UsedKeysList=function(a){var c={};this.uses=function(a){var b=a.localName,d=a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","name")||a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+"name"),a="style"===b?a.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:style:1.0","family"):"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"===a.namespaceURI?"data":b;return(a=c[a])?0<a[d]:!1};i(a,c)};this.canElementHaveStyle=function(a,c){var b=k[c.localName];return(b=b&&b[c.namespaceURI])&&0<b.length};var j={text:[{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"tab-stop",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"leader-text-style"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+en:"drop-cap",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"citation-body-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"citation-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"a",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"linenumbering-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"list-level-style-number",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"ruby-text",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"span",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"a",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"visited-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"text-properties",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"text-line-through-text-style"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index-source",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"main-entry-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-bibliography",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-chapter",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"index-entry-link-end",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-link-start",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-page-number",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-span",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-tab-stop",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-entry-text",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-title-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"list-level-style-bullet",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"outline-level-style",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"}],paragraph:[{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"caption",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"circle",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"connector",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"control",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"custom-shape",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+en:"ellipse",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"frame",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"line",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"measure",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"path",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"polyline",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+en:"rect",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"regular-polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",en:"annotation",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:form:1.0",en:"column",ans:"urn:oasis:names:tc:opendocument:xmlns:form:1.0",
+a:"text-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"next-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"body",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"even-columns",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+en:"even-rows",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"first-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"first-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"last-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"last-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"odd-columns",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"odd-rows",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"paragraph-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"notes-configuration",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"default-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"bibliography-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"h",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"illustration-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"index-source-style",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"object-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"p",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-of-content-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-index-entry-template",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"page-layout-properties",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"register-truth-ref-style-name"}],chart:[{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"axis",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
+en:"chart",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"data-label",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"data-point",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"equation",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"error-indicator",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"floor",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"footer",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"grid",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"legend",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"mean-value",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"plot-area",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"regression-curve",
+ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"series",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"stock-gain-marker",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"stock-loss-marker",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"stock-range-line",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"subtitle",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"title",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",en:"wall",ans:"urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
+a:"style-name"}],section:[{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"alphabetical-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"bibliography",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"illustration-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"index-title",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"object-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"section",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-of-content",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-index",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"}],ruby:[{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"ruby",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"}],table:[{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",en:"query",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",en:"table-representation",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"background",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"table",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"}],"table-column":[{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",
+en:"column",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"table-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"}],"table-row":[{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",en:"query",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",a:"default-row-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",en:"table-representation",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",
+a:"default-row-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"table-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"}],"table-cell":[{ens:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",en:"column",ans:"urn:oasis:names:tc:opendocument:xmlns:database:1.0",a:"default-cell-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"table-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"default-cell-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+en:"table-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"default-cell-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"body",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"covered-table-cell",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"even-columns",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"covered-table-cell",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"even-columns",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"even-rows",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+en:"first-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"first-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"last-column",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"last-row",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"odd-columns",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"odd-rows",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",en:"table-cell",ans:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",a:"style-name"}],graphic:[{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"cube",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"extrude",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"rotate",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"scene",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"sphere",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"caption",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"circle",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"connector",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"control",
+ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"custom-shape",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"ellipse",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"frame",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},
+{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"g",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"line",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"measure",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"page-thumbnail",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"path",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"polyline",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"rect",
+ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"regular-polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",en:"annotation",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"}],presentation:[{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"cube",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"extrude",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"rotate",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"scene",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",en:"sphere",
+ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"caption",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"circle",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"connector",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"control",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"custom-shape",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"ellipse",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+en:"frame",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"g",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"line",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"measure",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"page-thumbnail",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"path",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+en:"polyline",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"rect",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"regular-polygon",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",en:"annotation",ans:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+a:"style-name"}],"drawing-page":[{ens:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",en:"page",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",en:"notes",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"handout-master",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+en:"master-page",ans:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",a:"style-name"}],"list-style":[{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"list",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"numbered-paragraph",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",a:"style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"list-item",ans:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+a:"style-override"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"list-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"percentage-data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+en:"date-time-decl",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"creation-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"creation-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"database-display",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"editing-duration",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"expression",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"meta-field",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"modification-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"modification-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"print-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"print-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-formula",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"user-defined",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-field-get",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-field-input",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-get",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-input",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-set",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"}],data:[{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+en:"style",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"percentage-data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",en:"date-time-decl",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"creation-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"creation-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"database-display",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"editing-duration",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"expression",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"meta-field",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"modification-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"modification-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"print-date",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"print-time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"table-formula",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+en:"time",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-defined",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-field-get",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"user-field-input",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-get",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-input",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:text:1.0",en:"variable-set",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"data-style-name"}],"page-layout":[{ens:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+en:"notes",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"handout-master",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"},{ens:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",en:"master-page",ans:"urn:oasis:names:tc:opendocument:xmlns:style:1.0",a:"page-layout-name"}]},e,a,c,b,d,o={},f;for(e in j)if(j.hasOwnProperty(e)){c=j[e];d=c.length;for(a=0;a<d;a+=1)b=c[a],f=o[b.en]=o[b.en]||
+{},f=f[b.ens]=f[b.ens]||[],f.push({ns:b.ans,localname:b.a,keygroup:e})}k=o};
+// Input 22
+odf.Style2CSS=function(){function i(a,c){var b={},d,e,f;if(!c)return b;for(d=c.firstChild;d;){d.namespaceURI===h&&"style"===d.localName?f=d.getAttributeNS(h,"family"):d.namespaceURI===n&&"list-style"===d.localName&&(f="list");if(e=f&&d.getAttributeNS&&d.getAttributeNS(h,"name"))b[f]||(b[f]={}),b[f][e]=d;d=d.nextSibling}return b}function k(a,c){if(!c||!a)return null;if(a[c])return a[c];var b,d;for(b in a)if(a.hasOwnProperty(b)&&(d=k(a[b].derivedStyles,c)))return d;return null}function j(a,c,b){var d=
+c[a],f,e;d&&((f=d.getAttributeNS(h,"parent-style-name"),e=null,f&&(e=k(b,f),!e&&c[f]&&(j(f,c,b),e=c[f],c[f]=null)),e)?(e.derivedStyles||(e.derivedStyles={}),e.derivedStyles[a]=d):b[a]=d)}function e(a,c){for(var b in a)a.hasOwnProperty(b)&&(j(b,a,c),a[b]=null)}function a(a,c){var b=m[a],d;d="";if(null===b)return null;d="["+b+'|style-name="'+c+'"]';"presentation"===b&&(b="draw",d='[presentation|style-name="'+c+'"]');return d=b+"|"+w[a].join(d+","+b+"|")+d}function c(b,d,f){var e=[],g,h;e.push(a(b,d));
+for(g in f.derivedStyles)if(f.derivedStyles.hasOwnProperty(g))for(h in d=c(b,g,f.derivedStyles[g]),d)d.hasOwnProperty(h)&&e.push(d[h]);return e}function b(a,b,c){if(!a)return null;for(a=a.firstChild;a;){if(a.namespaceURI===b&&a.localName===c)return b=a;a=a.nextSibling}return null}function d(a,b){var c="",d,f;for(d in b)b.hasOwnProperty(d)&&(d=b[d],(f=a.getAttributeNS(d[0],d[1]))&&(c+=d[2]+":"+f+";"));return c}function o(a,b,c,d){var b='text|list[text|style-name="'+b+'"]',f=c.getAttributeNS(n,"level"),
+c=c.firstChild.firstChild,e,g,h="";c&&(e=c.attributes,g=e["fo:text-indent"].value,e=e["fo:margin-left"].value);g||(g="-0.6cm");c="-"===g.charAt(0)?g.substring(1):"-"+g;for(f=f&&parseInt(f,10);1<f;)b+=" > text|list-item > text|list",f-=1;h=b+" > text|list-item > *:not(text|list):first-child:before{"+d+";counter-increment:list;"+("margin-left:"+g+";")+("width:"+c+";")+"display:inline-block}";try{a.insertRule(b+" > text|list-item > *:not(text|list):first-child{margin-left:"+e+";}",a.cssRules.length),
+a.insertRule(h,a.cssRules.length)}catch(i){throw i;}}function f(a,e,i,m){if("list"===e)for(var l=m.firstChild,j,k;l;){if(l.namespaceURI===n)if(j=l,"list-level-style-number"===l.localName){k=j;var w=k.getAttributeNS(h,"num-format"),G=k.getAttributeNS(h,"num-suffix"),D="",D={1:"decimal",a:"lower-latin",A:"upper-latin",i:"lower-roman",I:"upper-roman"},M="",M=k.getAttributeNS(h,"num-prefix")||"",M=D.hasOwnProperty(w)?M+(" counter(list, "+D[w]+")"):w?M+("'"+w+"';"):M+" ''";G&&(M+=" '"+G+"'");k=D="content: "+
+M+";";o(a,i,j,k)}else"list-level-style-image"===l.localName?(k="content: none;",o(a,i,j,k)):"list-level-style-bullet"===l.localName&&(k="content: '"+j.getAttributeNS(n,"bullet-char")+"';",o(a,i,j,k));l=l.nextSibling}else{i=c(e,i,m).join(",");j="";if(l=b(m,h,"text-properties")){k=""+d(l,x);w=l.getAttributeNS(h,"text-underline-style");"solid"===w&&(k+="text-decoration: underline;");if(w=l.getAttributeNS(h,"font-name"))(w=s[w])&&(k+="font-family: "+w+";");j+=k}if(l=b(m,h,"paragraph-properties")){k=l;
+l=""+d(k,v);k=k.getElementsByTagNameNS(h,"background-image");if(0<k.length&&(w=k.item(0).getAttributeNS(g,"href")))l+="background-image: url('odfkit:"+w+"');",k=k.item(0),l+=d(k,A);j+=l}if(l=b(m,h,"graphic-properties"))l=""+d(l,t),j+=l;if(l=b(m,h,"table-cell-properties"))l=""+d(l,z),j+=l;if(l=b(m,h,"table-row-properties"))l=""+d(l,C),j+=l;if(l=b(m,h,"table-column-properties"))l=""+d(l,B),j+=l;if(l=b(m,h,"table-properties"))l=""+d(l,y),j+=l;"table"===e&&runtime.log(j);if(0!==j.length)try{a.insertRule(i+
+"{"+j+"}",a.cssRules.length)}catch(N){throw N;}}for(var Q in m.derivedStyles)m.derivedStyles.hasOwnProperty(Q)&&f(a,e,Q,m.derivedStyles[Q])}var g="http://www.w3.org/1999/xlink",h="urn:oasis:names:tc:opendocument:xmlns:style:1.0",n="urn:oasis:names:tc:opendocument:xmlns:text:1.0",l={draw:"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",fo:"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",office:"urn:oasis:names:tc:opendocument:xmlns:office:1.0",presentation:"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+style:h,svg:"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",table:"urn:oasis:names:tc:opendocument:xmlns:table:1.0",text:n,xlink:g,xml:"http://www.w3.org/XML/1998/namespace"},m={graphic:"draw",paragraph:"text",presentation:"presentation",ruby:"text",section:"text",table:"table","table-cell":"table","table-column":"table","table-row":"table",text:"text",list:"text"},w={graphic:"circle connected control custom-shape ellipse frame g line measure page page-thumbnail path polygon polyline rect regular-polygon".split(" "),
+paragraph:"alphabetical-index-entry-template h illustration-index-entry-template index-source-style object-index-entry-template p table-index-entry-template table-of-content-entry-template user-index-entry-template".split(" "),presentation:"caption circle connector control custom-shape ellipse frame g line measure page-thumbnail path polygon polyline rect regular-polygon".split(" "),ruby:["ruby","ruby-text"],section:"alphabetical-index bibliography illustration-index index-title object-index section table-of-content table-index user-index".split(" "),
+table:["background","table"],"table-cell":"body covered-table-cell even-columns even-rows first-column first-row last-column last-row odd-columns odd-rows table-cell".split(" "),"table-column":["table-column"],"table-row":["table-row"],text:"a index-entry-chapter index-entry-link-end index-entry-link-start index-entry-page-number index-entry-span index-entry-tab-stop index-entry-text index-title-template linenumbering-configuration list-level-style-number list-level-style-bullet outline-level-style span".split(" "),
+list:["list-item"]},x=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","color","color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-weight","font-weight"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-style","font-style"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","font-size","font-size"]],A=[[h,"repeat","background-repeat"]],
+v=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","text-align","text-align"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-left","padding-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-right","padding-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","padding-top","padding-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+"padding-bottom","padding-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-left","border-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-right","border-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-top","border-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-bottom","border-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-left","margin-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+"margin-right","margin-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-top","margin-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-bottom","margin-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border","border"]],t=[["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","fill-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","fill","background"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+"min-height","min-height"],["urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","stroke","border"],["urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","stroke-color","border-color"]],z=[["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","background-color","background-color"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-left","border-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-right","border-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+"border-top","border-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border-bottom","border-bottom"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","border","border"]],B=[[h,"column-width","width"]],C=[[h,"row-height","height"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","keep-together",null]],y=[[h,"width","width"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-left","margin-left"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+"margin-right","margin-right"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-top","margin-top"],["urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","margin-bottom","margin-bottom"]],s={};this.namespaces=l;this.namespaceResolver=function(a){return l[a]||null};this.namespaceResolver.lookupNamespaceURI=this.namespaceResolver;this.style2css=function(a,b,c,d){for(var g,j,k,o,n;a.cssRules.length;)a.deleteRule(a.cssRules.length-1);g=null;c&&(g=c.ownerDocument);d&&(g=d.ownerDocument);
+if(g){for(j in l)if(l.hasOwnProperty(j)){o="@namespace "+j+" url("+l[j]+");";try{a.insertRule(o,a.cssRules.length)}catch(w){}}j={};var v;if(b){for(b=b.firstChild;b;){if(1===b.nodeType&&(o=(v=b.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","font-family"))&&b.getAttributeNS(h,"name")))j[o]||(j[o]={}),j[o]=v;b=b.nextSibling}s=j}else s=b;c=i(g,c);j=i(g,d);d={};for(n in m)if(m.hasOwnProperty(n))for(k in g=d[n]={},e(c[n],g),e(j[n],g),g)g.hasOwnProperty(k)&&f(a,n,k,g[k])}}};
+// Input 23
+runtime.loadClass("core.Base64");runtime.loadClass("xmldom.XPath");runtime.loadClass("odf.Style2CSS");
+odf.FontLoader=function(){function i(a,c,b,d,j){var f,g=0,h;for(h in a)a.hasOwnProperty(h)&&(g===b&&(f=h),g+=1);if(!f)return j();c.load(a[f].href,function(g,h){if(g)runtime.log(g);else{var m=d,m=document.styleSheets[0],k="@font-face { font-family: "+a[f].family+"; src: url(data:application/x-font-ttf;charset=binary;base64,"+e.convertUTF8ArrayToBase64(h)+') format("truetype"); }';try{m.insertRule(k,m.cssRules.length)}catch(x){runtime.log("Problem inserting rule in CSS: "+k)}}return i(a,c,b+1,d,j)})}
+var k=new odf.Style2CSS,j=new xmldom.XPath,e=new core.Base64;odf.FontLoader=function(){this.loadFonts=function(a,c,b){var d={},e,f,g,h;if(a){a=j.getODFElementsWithXPath(a,"style:font-face[svg:font-face-src]",k.namespaceResolver);for(e=0;e<a.length;e+=1)f=a[e],g=f.getAttributeNS(k.namespaces.style,"name"),h=f.getAttributeNS(k.namespaces.svg,"font-family"),f=j.getODFElementsWithXPath(f,"svg:font-face-src/svg:font-face-uri",k.namespaceResolver),0<f.length&&(f=f[0].getAttributeNS(k.namespaces.xlink,"href"),
+d[g]={href:f,family:h})}i(d,c,0,b,function(){})}};return odf.FontLoader}();
+// Input 24
+runtime.loadClass("core.Base64");runtime.loadClass("core.Zip");runtime.loadClass("xmldom.LSSerializer");runtime.loadClass("odf.StyleInfo");runtime.loadClass("odf.Style2CSS");runtime.loadClass("odf.FontLoader");
+odf.OdfContainer=function(){function i(a,b,c){for(a=a?a.firstChild:null;a;){if(a.localName===c&&a.namespaceURI===b)return a;a=a.nextSibling}return null}function k(a){var b,c=g.length;for(b=0;b<c;b+=1)if(a.namespaceURI===f&&a.localName===g[b])return b;return-1}function j(a,b){var c=a.automaticStyles,e;b&&(e=new d.UsedKeysList(b));this.acceptNode=function(a){return"http://www.w3.org/1999/xhtml"===a.namespaceURI?3:e&&a.parentNode===c&&1===a.nodeType?e.uses(a)?1:2:1}}function e(a,b){if(b){var c=k(b),
+d,e=a.firstChild;if(-1!==c){for(;e;){d=k(e);if(-1!==d&&d>c)break;e=e.nextSibling}a.insertBefore(b,e)}}}function a(a){this.OdfContainer=a}function c(a,b,c){var d=this;this.size=0;this.type=null;this.name=a;this.container=b;this.onchange=this.onreadystatechange=this.document=this.mimetype=this.url=null;this.EMPTY=0;this.LOADING=1;this.DONE=2;this.state=this.EMPTY;this.load=function(){if(null!==c){var b=l[a];this.mimetype=b;c.loadAsDataURL(a,b,function(a,b){d.url=b;if(d.onchange)d.onchange(d);if(d.onstatereadychange)d.onstatereadychange(d)})}};
+this.abort=function(){}}function b(){this.length=0;this.item=function(){}}var d=new odf.StyleInfo,o=new odf.Style2CSS,f="urn:oasis:names:tc:opendocument:xmlns:office:1.0",g="meta settings scripts font-face-decls styles automatic-styles master-styles body".split(" "),h=new core.Base64,n=new odf.FontLoader,l={};a.prototype=new function(){};a.prototype.constructor=a;a.namespaceURI=f;a.localName="document";c.prototype.load=function(){};c.prototype.getUrl=function(){return this.data?"data:;base64,"+h.toBase64(this.data):
+null};odf.OdfContainer=function w(d,g){function h(a){for(var b=a.firstChild,c;b;)c=b.nextSibling,1===b.nodeType?h(b):7===b.nodeType&&a.removeChild(b),b=c}function k(a){var b=u.rootElement.ownerDocument,c;if(a){h(a.documentElement);try{c=b.importNode(a.documentElement,!0)}catch(d){}}return c}function z(a){u.state=a;if(u.onchange)u.onchange(u);if(u.onstatereadychange)u.onstatereadychange(u)}function B(a,b){var c="",d;for(d in b)b.hasOwnProperty(d)&&(c+=" xmlns:"+d+'="'+b[d]+'"');return'<?xml version="1.0" encoding="UTF-8"?><office:'+
+a+" "+c+' office:version="1.2">'}function C(){var a=o.namespaces,b=new xmldom.LSSerializer,c=B("document-meta",a);b.filter=new j(u.rootElement);c+=b.writeToString(u.rootElement.meta,a);return c+"</office:document-meta>"}function y(){var a=o.namespaces,b=new xmldom.LSSerializer,c=B("document-settings",a);b.filter=new j(u.rootElement);c+=b.writeToString(u.rootElement.settings,a);return c+"</office:document-settings>"}function s(){var a=o.namespaces,b=new xmldom.LSSerializer,c=B("document-styles",a);
+b.filter=new j(u.rootElement,u.rootElement.masterStyles);c+=b.writeToString(u.rootElement.fontFaceDecls,a);c+=b.writeToString(u.rootElement.styles,a);c+=b.writeToString(u.rootElement.automaticStyles,a);c+=b.writeToString(u.rootElement.masterStyles,a);return c+"</office:document-styles>"}function I(){var a=o.namespaces,b=new xmldom.LSSerializer,c=B("document-content",a);b.filter=new j(u.rootElement,u.rootElement.body);c+=b.writeToString(u.rootElement.automaticStyles,a);c+=b.writeToString(u.rootElement.body,
+a);return c+"</office:document-content>"}function q(a,b){var c;c=runtime.byteArrayFromString(y(),"utf8");r.save("settings.xml",c,!0,new Date);c=runtime.byteArrayFromString(C(),"utf8");r.save("meta.xml",c,!0,new Date);c=runtime.byteArrayFromString(s(),"utf8");r.save("styles.xml",c,!0,new Date);c=runtime.byteArrayFromString(I(),"utf8");r.save("content.xml",c,!0,new Date);r.writeAs(a,function(a){b(a)})}var u=this,r=null;this.onstatereadychange=g;this.parts=this.rootElement=this.state=this.onchange=null;
+this.getPart=function(a){return new c(a,u,r)};this.saveAs=q;this.save=function(a){q(d,a)};this.state=w.LOADING;var p=document.createElementNS(a.namespaceURI,a.localName),F,P=new a;for(F in P)P.hasOwnProperty(F)&&(p[F]=P[F]);this.rootElement=p;this.parts=new b(this);r=new core.Zip(d,function(a,b){r=b;a?runtime.loadXML(d,function(b,c){if(b)a&&(r.error=a+"\n"+b,z(w.INVALID));else{var d=k(c);!d||"document"!==d.localName||d.namespaceURI!==f?z(w.INVALID):(u.rootElement=d,d.fontFaceDecls=i(d,f,"font-face-decls"),
+d.styles=i(d,f,"styles"),d.automaticStyles=i(d,f,"automatic-styles"),d.masterStyles=i(d,f,"master-styles"),d.body=i(d,f,"body"),d.meta=i(d,f,"meta"),z(w.DONE))}}):r.loadAsDOM("styles.xml",function(a,b){var c=k(b),d=u.rootElement;!c||"document-styles"!==c.localName||c.namespaceURI!==f?z(w.INVALID):(d.fontFaceDecls=i(c,f,"font-face-decls"),e(d,d.fontFaceDecls),d.styles=i(c,f,"styles"),e(d,d.styles),d.automaticStyles=i(c,f,"automatic-styles"),e(d,d.automaticStyles),d.masterStyles=i(c,f,"master-styles"),
+e(d,d.masterStyles),n.loadFonts(d.fontFaceDecls,r,null));u.state!==w.INVALID&&r.loadAsDOM("content.xml",function(a,b){var c=k(b),d,g,h;if(!c||c.localName!=="document-content"||c.namespaceURI!==f)z(w.INVALID);else{d=u.rootElement;g=i(c,f,"font-face-decls");if(d.fontFaceDecls&&g)for(h=g.firstChild;h;){d.fontFaceDecls.appendChild(h);h=g.firstChild}else if(g){d.fontFaceDecls=g;e(d,g)}g=i(c,f,"automatic-styles");if(d.automaticStyles&&g)for(h=g.firstChild;h;){d.automaticStyles.appendChild(h);h=g.firstChild}else if(g){d.automaticStyles=
+g;e(d,g)}d.body=i(c,f,"body");e(d,d.body)}u.state!==w.INVALID&&r.loadAsDOM("meta.xml",function(a,c){var b=k(c),d;if(b&&!(b.localName!=="document-meta"||b.namespaceURI!==f)){d=u.rootElement;d.meta=i(b,f,"meta");e(d,d.meta)}u.state!==w.INVALID&&r.loadAsDOM("settings.xml",function(a,b){if(b){var c=k(b),d;if(c&&!(c.localName!=="document-settings"||c.namespaceURI!==f)){d=u.rootElement;d.settings=i(c,f,"settings");e(d,d.settings)}}r.loadAsDOM("META-INF/manifest.xml",function(a,b){if(b){var c=k(b),d;if(c&&
+!(c.localName!=="manifest"||c.namespaceURI!=="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")){d=u.rootElement;d.manifest=c;for(c=d.manifest.firstChild;c;){c.nodeType===1&&(c.localName==="file-entry"&&c.namespaceURI==="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")&&(l[c.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","full-path")]=c.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0","media-type"));c=c.nextSibling}}}u.state!==w.INVALID&&z(w.DONE)})})})})})})};
+odf.OdfContainer.EMPTY=0;odf.OdfContainer.LOADING=1;odf.OdfContainer.DONE=2;odf.OdfContainer.INVALID=3;odf.OdfContainer.SAVING=4;odf.OdfContainer.MODIFIED=5;odf.OdfContainer.getContainer=function(a){return new odf.OdfContainer(a,null)};return odf.OdfContainer}();
+// Input 25
+odf.Formatting=function(){function i(i){function e(a,b){for(var d=a&&a.firstChild;d&&b;)d=d.nextSibling,b-=1;return d}var a=e(i.startContainer,i.startOffset);e(i.endContainer,i.endOffset);this.next=function(){return null===a?a:null}}var k=new odf.StyleInfo;this.setOdfContainer=function(){};this.isCompletelyBold=function(){return!1};this.getAlignment=function(i){this.getParagraphStyles(i)};this.getParagraphStyles=function(j){var e,a,c,b=[];for(e=0;e<j.length;e+=0){a=void 0;c=[];for(a=(new i(j[e])).next();a;)k.canElementHaveStyle("paragraph",
+a)&&c.push(a);for(a=0;a<c.length;a+=1)-1===b.indexOf(c[a])&&b.push(c[a])}return b};this.getTextStyles=function(){return[]}};
+// Input 26
+runtime.loadClass("odf.OdfContainer");runtime.loadClass("odf.Formatting");runtime.loadClass("xmldom.XPath");
+odf.OdfCanvas=function(){function i(a){function c(){for(;0<b.cssRules.length;)b.deleteRule(0);b.insertRule("office|presentation draw|page {display:none;}",0);b.insertRule("office|presentation draw|page:nth-child("+d+") {display:block;}",1)}var b=a.sheet,d=1;this.showNextPage=function(){d+=1;c()};this.showPreviousPage=function(){1<d&&(d-=1,c())};this.css=a}function k(a,c,b){a.addEventListener?a.addEventListener(c,b,!1):a.attachEvent?a.attachEvent("on"+c,b):a["on"+c]=b}function j(a){function c(a,b){for(;b;){if(b===
+a)return!0;b=b.parentNode}return!1}function b(){var f=[],g=runtime.getWindow().getSelection(),h,i;for(h=0;h<g.rangeCount;h+=1)i=g.getRangeAt(h),null!==i&&(c(a,i.startContainer)&&c(a,i.endContainer))&&f.push(i);if(f.length===d.length){for(g=0;g<f.length&&!(h=f[g],i=d[g],h=h===i?!1:null===h||null===i?!0:h.startContainer!==i.startContainer||h.startOffset!==i.startOffset||h.endContainer!==i.endContainer||h.endOffset!==i.endOffset,h);g+=1);if(g===f.length)return}d=f;var g=[f.length],l,j=a.ownerDocument;
+for(h=0;h<f.length;h+=1)i=f[h],l=j.createRange(),l.setStart(i.startContainer,i.startOffset),l.setEnd(i.endContainer,i.endOffset),g[h]=l;d=g;g=e.length;for(f=0;f<g;f+=1)e[f](a,d)}var d=[],e=[];this.addListener=function(a,b){var c,d=e.length;for(c=0;c<d;c+=1)if(e[c]===b)return;e.push(b)};k(a,"mouseup",b);k(a,"keyup",b);k(a,"keydown",b)}function e(a){for(a=a.firstChild;a;){if(a.namespaceURI===f&&"binary-data"===a.localName)return"data:image/png;base64,"+a.textContent;a=a.nextSibling}return""}function a(a){var c=
+a.getElementsByTagName("head")[0],d=a.createElementNS(c.namespaceURI,"style"),e="",f;d.setAttribute("type","text/css");d.setAttribute("media","screen, print, handheld, projection");for(f in b)b.hasOwnProperty(f)&&f&&(e+="@namespace "+f+" url("+b[f]+");\n");d.appendChild(a.createTextNode(e));c.appendChild(d);return d}var c=new odf.Style2CSS,b=c.namespaces,d=b.draw,o=b.fo,f=b.office,g=b.style,h=b.svg,n=b.table,l=b.text,m=b.xlink,w=b.xml,x=runtime.getWindow(),A=new xmldom.XPath,v={},t,z=new function(){function a(d){b=
+!0;runtime.setTimeout(function(){try{d()}catch(e){runtime.log(e)}b=!1;0<c.length&&a(c.pop())},10)}var c=[],b=!1;this.clearQueue=function(){c.length=0};this.addToQueue=function(d){if(0===c.length&&!b)return a(d);c.push(d)}};odf.OdfCanvas=function(b){function f(){var a=b.firstChild.firstChild;a&&(b.style.WebkitTransform="scale("+G+")",b.style.WebkitTransformOrigin="left top",b.style.width=Math.round(G*a.offsetWidth)+"px",b.style.height=Math.round(G*a.offsetHeight)+"px")}function y(a){function i(){for(var j=
+b;j.firstChild;)j.removeChild(j.firstChild);b.style.display="inline-block";var k=a.rootElement;b.ownerDocument.importNode(k,!0);u.setOdfContainer(a);j=F;(new odf.Style2CSS).style2css(j.sheet,k.fontFaceDecls,k.styles,k.automaticStyles);var p=a,j=P.sheet,r;r=k.body;var q,s,t;s=[];for(q=r.firstChild;q&&q!==r;)if(q.namespaceURI===d&&(s[s.length]=q),q.firstChild)q=q.firstChild;else{for(;q&&q!==r&&!q.nextSibling;)q=q.parentNode;q&&q.nextSibling&&(q=q.nextSibling)}for(t=0;t<s.length;t+=1){q=s[t];var H="frame"+
+String(t),y=j;q.setAttribute("styleid",H);var J=void 0,G=q.getAttributeNS(l,"anchor-type"),D=q.getAttributeNS(h,"x"),M=q.getAttributeNS(h,"y"),N=q.getAttributeNS(h,"width"),S=q.getAttributeNS(h,"height"),aa=q.getAttributeNS(o,"min-height"),V=q.getAttributeNS(o,"min-width");if("as-char"===G)J="display: inline-block;";else if(G||D||M)J="position: absolute;";else if(N||S||aa||V)J="display: block;";D&&(J+="left: "+D+";");M&&(J+="top: "+M+";");N&&(J+="width: "+N+";");S&&(J+="height: "+S+";");aa&&(J+="min-height: "+
+aa+";");V&&(J+="min-width: "+V+";");J&&(J="draw|"+q.localName+'[styleid="'+H+'"] {'+J+"}",y.insertRule(J,y.cssRules.length))}t=A.getODFElementsWithXPath(r,".//*[*[@text:anchor-type='paragraph']]",c.namespaceResolver);for(s=0;s<t.length;s+=1)r=t[s],r.setAttributeNS&&r.setAttributeNS("urn:webodf","containsparagraphanchor",!0);j.insertRule("draw|page { background-color:#fff; }",j.cssRules.length);for(r=b;r.firstChild;)r.removeChild(r.firstChild);r=I.createElementNS(b.namespaceURI,"div");r.style.display=
+"inline-block";r.style.background="white";r.appendChild(k);b.appendChild(r);s=k.body.getElementsByTagNameNS(n,"table-cell");for(r=0;r<s.length;r+=1)t=s.item(r),t.hasAttributeNS(n,"number-columns-spanned")&&t.setAttribute("colspan",t.getAttributeNS(n,"number-columns-spanned")),t.hasAttributeNS(n,"number-rows-spanned")&&t.setAttribute("rowspan",t.getAttributeNS(n,"number-rows-spanned"));r=function(a,b){b.hasAttributeNS(m,"href")&&(b.onclick=function(){x.open(b.getAttributeNS(m,"href"))})};t=k.body.getElementsByTagNameNS(l,
+"a");for(s=0;s<t.length;s+=1)H=t.item(s),r(p,H,j);r=function(a,b,c,d){z.addToQueue(function(){var f=function(b){b='draw|image[styleid="'+a+'"] {'+("background-image: url("+b+");")+"}";d.insertRule(b,d.cssRules.length)};c.setAttribute("styleid",a);var g=c.getAttributeNS(m,"href"),h;if(g)try{b.getPartUrl?(g=b.getPartUrl(g),f(g)):(h=b.getPart(g),h.onchange=function(a){f(a.url)},h.load())}catch(i){runtime.log("slight problem: "+i)}else g=e(c),f(g)})};t=k.body.getElementsByTagNameNS(d,"image");for(s=0;s<
+t.length;s+=1)H=t.item(s),r("image"+String(s),p,H,j);r=function(a,b,c){z.addToQueue(function(){var a=function(a,b){var e=h.documentElement.namespaceURI;"video/"===b.substr(0,6)?(d=h.createElementNS(e,"video"),d.setAttribute("controls","controls"),f=h.createElementNS(e,"source"),f.setAttribute("src",a),f.setAttribute("type",b),d.appendChild(f),c.parentNode.appendChild(d)):c.innerHtml="Unrecognised Plugin"},d,f,g,h=c.ownerDocument,i;if(g=c.getAttributeNS(m,"href"))try{b.getPartUrl?(g=b.getPartUrl(g),
+a(g,"video/mp4")):(i=b.getPart(g),i.onchange=function(b){a(b.url,b.mimetype)},i.load())}catch(j){runtime.log("slight problem: "+j)}else runtime.log("using MP4 data fallback"),g=e(c),a(g,"video/mp4")})};t=k.body.getElementsByTagNameNS(d,"plugin");for(s=0;s<t.length;s+=1)H=t.item(s),r("video"+String(s),p,H,j);s=k.body;p={};r={};var L;t=x.document.getElementsByTagNameNS(l,"list-style");for(k=0;k<t.length;k+=1)y=t.item(k),(J=y.getAttributeNS(g,"name"))&&(r[J]=y);s=s.getElementsByTagNameNS(l,"list");for(k=
+0;k<s.length;k+=1)if(y=s.item(k),t=y.getAttributeNS(w,"id")){H=y.getAttributeNS(l,"continue-list");y.setAttribute("id",t);q="text|list#"+t+" > text|list-item > *:first-child:before {";if(J=y.getAttributeNS(l,"style-name"))y=r[J],L=y.firstChild,y=void 0,"list-level-style-number"===L.localName?(y=L.getAttributeNS(g,"num-format"),J=L.getAttributeNS(g,"num-suffix"),G="",G={1:"decimal",a:"lower-latin",A:"upper-latin",i:"lower-roman",I:"upper-roman"},D=void 0,D=L.getAttributeNS(g,"num-prefix")||"",D=G.hasOwnProperty(y)?
+D+(" counter(list, "+G[y]+")"):y?D+("'"+y+"';"):D+" ''",J&&(D+=" '"+J+"'"),y=G="content: "+D+";"):"list-level-style-image"===L.localName?y="content: none;":"list-level-style-bullet"===L.localName&&(y="content: '"+L.getAttributeNS(l,"bullet-char")+"';"),L=y;if(H){for(y=p[H];y;)H=y,y=p[H];q+="counter-increment:"+H+";";L?(L=L.replace("list",H),q+=L):q+="content:counter("+H+");"}else H="",L?(L=L.replace("list",t),q+=L):q+="content: counter("+t+");",q+="counter-increment:"+t+";",j.insertRule("text|list#"+
+t+" {counter-reset:"+t+"}",j.cssRules.length);q+="}";p[t]=H;q&&j.insertRule(q,j.cssRules.length)}f();if(v.hasOwnProperty("statereadychange")){j=v.statereadychange;for(L=0;L<j.length;L+=1)j[L](void 0)}}q===a&&(q.state===odf.OdfContainer.DONE?i():q.onchange=i)}function s(){if(t){for(var a=t.ownerDocument.createDocumentFragment();t.firstChild;)a.insertBefore(t.firstChild,null);t.parentNode.replaceChild(a,t)}}var I=b.ownerDocument,q,u=new odf.Formatting,r=new j(b),p,F,P,S=!1,G=1,D=I,M=D.getElementsByTagName("head")[0],
+N;"undefined"!==typeof webodf_css?(N=D.createElementNS(M.namespaceURI,"style"),N.setAttribute("media","screen, print, handheld, projection"),N.appendChild(D.createTextNode(webodf_css))):(N=D.createElementNS(M.namespaceURI,"link"),N.setAttribute("href","webodf.css"),N.setAttribute("rel","stylesheet"));N.setAttribute("type","text/css");M.appendChild(N);p=new i(a(I));F=a(I);P=a(I);this.odfContainer=function(){return q};this.slidevisibilitycss=function(){return p.css};this.load=this.load=function(a){z.clearQueue();
+b.innerHTML="loading "+a;q=new odf.OdfContainer(a,function(a){q=a;y(a)});q.onstatereadychange=y};this.save=function(a){s();q.save(a)};this.setEditable=function(a){(S=a)||s()};this.addListener=function(a,b){if(a==="selectionchange")r.addListener(a,b);else{var c=v[a];c===void 0&&(c=v[a]=[]);b&&c.indexOf(b)===-1&&c.push(b)}};this.getFormatting=function(){return u};this.setZoomLevel=function(a){G=a;f()};this.getZoomLevel=function(){return G};this.fitToContainingElement=function(a,c){var d=b.offsetHeight/
+G;G=a/(b.offsetWidth/G);c/d<G&&(G=c/d);f()};this.fitToWidth=function(a){G=a/(b.offsetWidth/G);f()};this.fitToHeight=function(a){G=a/(b.offsetHeight/G);f()};this.showNextPage=function(){p.showNextPage()};this.showPreviousPage=function(){p.showPreviousPage()};this.showAllPages=function(){};k(b,"click",function(a){for(var a=a||x.event,b=a.target,c=x.getSelection(),d=c.rangeCount>0?c.getRangeAt(0):null,f=d&&d.startContainer,e=d&&d.startOffset,g=d&&d.endContainer,h=d&&d.endOffset,i,j;b&&!((b.localName===
+"p"||b.localName==="h")&&b.namespaceURI===l);)b=b.parentNode;if(S&&b&&b.parentNode!==t){i=b.ownerDocument;j=i.documentElement.namespaceURI;if(t)t.parentNode&&s();else{t=i.createElementNS(j,"p");t.style.margin="0px";t.style.padding="0px";t.style.border="0px";t.setAttribute("contenteditable",true)}b.parentNode.replaceChild(t,b);t.appendChild(b);t.focus();if(d){c.removeAllRanges();d=b.ownerDocument.createRange();d.setStart(f,e);d.setEnd(g,h);c.addRange(d)}if(a.preventDefault){a.preventDefault();a.stopPropagation()}else{a.returnValue=
+false;a.cancelBubble=true}}})};return odf.OdfCanvas}();
+// Input 27
+runtime.loadClass("odf.OdfCanvas");
+odf.CommandLineTools=function(){this.roundTrip=function(i,k,j){new odf.OdfContainer(i,function(e){if(e.state===odf.OdfContainer.INVALID)return j("Document "+i+" is invalid.");e.state===odf.OdfContainer.DONE?e.saveAs(k,function(a){j(a)}):j("Document was not completely loaded.")})};this.render=function(i,k,j){for(k=k.getElementsByTagName("body")[0];k.firstChild;)k.removeChild(k.firstChild);k=new odf.OdfCanvas(k);k.addListener("statereadychange",function(e){j(e)});k.load(i)}};
+// Input 28
+runtime.loadClass("xmldom.XPath");runtime.loadClass("odf.Style2CSS");
+gui.PresenterUI=function(){var i=new odf.Style2CSS,k=new xmldom.XPath,j=i.namespaceResolver;return function(e){var a=this;a.setInitialSlideMode=function(){a.startSlideMode("single")};a.keyDownHandler=function(c){if(!c.target.isContentEditable&&"input"!==c.target.nodeName)switch(c.keyCode){case 84:a.toggleToolbar();break;case 37:case 8:a.prevSlide();break;case 39:case 32:a.nextSlide();break;case 36:a.firstSlide();break;case 35:a.lastSlide()}};a.root=function(){return a.odf_canvas.odfContainer().rootElement};
+a.firstSlide=function(){a.slideChange(function(){return 0})};a.lastSlide=function(){a.slideChange(function(a,b){return b-1})};a.nextSlide=function(){a.slideChange(function(a,b){return a+1<b?a+1:-1})};a.prevSlide=function(){a.slideChange(function(a){return 1>a?-1:a-1})};a.slideChange=function(c){var b=a.getPages(a.odf_canvas.odfContainer().rootElement),d=-1,e=0;b.forEach(function(a){a=a[1];a.hasAttribute("slide_current")&&(d=e,a.removeAttribute("slide_current"));e+=1});c=c(d,b.length);-1===c&&(c=d);
+b[c][1].setAttribute("slide_current","1");document.getElementById("pagelist").selectedIndex=c;"cont"===a.slide_mode&&window.scrollBy(0,b[c][1].getBoundingClientRect().top-30)};a.selectSlide=function(c){a.slideChange(function(a,d){return c>=d||0>c?-1:c})};a.scrollIntoContView=function(c){var b=a.getPages(a.odf_canvas.odfContainer().rootElement);0!==b.length&&window.scrollBy(0,b[c][1].getBoundingClientRect().top-30)};a.getPages=function(a){var a=a.getElementsByTagNameNS(j("draw"),"page"),b=[],d;for(d=
+0;d<a.length;d+=1)b.push([a[d].getAttribute("draw:name"),a[d]]);return b};a.fillPageList=function(c,b){for(var d=a.getPages(c),e,f,g;b.firstChild;)b.removeChild(b.firstChild);for(e=0;e<d.length;e+=1)f=document.createElement("option"),g=k.getODFElementsWithXPath(d[e][1],'./draw:frame[@presentation:class="title"]//draw:text-box/text:p',xmldom.XPath),g=0<g.length?g[0].textContent:d[e][0],f.textContent=e+1+": "+g,b.appendChild(f)};a.startSlideMode=function(c){var b=document.getElementById("pagelist"),
+d=a.odf_canvas.slidevisibilitycss().sheet;for(a.slide_mode=c;0<d.cssRules.length;)d.deleteRule(0);a.selectSlide(0);"single"===a.slide_mode?(d.insertRule("draw|page { position:fixed; left:0px;top:30px; z-index:1; }",0),d.insertRule("draw|page[slide_current] { z-index:2;}",1),d.insertRule("draw|page { -webkit-transform: scale(1);}",2),a.fitToWindow(),window.addEventListener("resize",a.fitToWindow,!1)):"cont"===a.slide_mode&&window.removeEventListener("resize",a.fitToWindow,!1);a.fillPageList(a.odf_canvas.odfContainer().rootElement,
+b)};a.toggleToolbar=function(){var c,b,d;c=a.odf_canvas.slidevisibilitycss().sheet;b=-1;for(d=0;d<c.cssRules.length;d+=1)if(".toolbar"===c.cssRules[d].cssText.substring(0,8)){b=d;break}-1<b?c.deleteRule(b):c.insertRule(".toolbar { position:fixed; left:0px;top:-200px; z-index:0; }",0)};a.fitToWindow=function(){var c=a.getPages(a.root()),b=(window.innerHeight-40)/c[0][1].clientHeight,c=(window.innerWidth-10)/c[0][1].clientWidth,b=b<c?b:c,c=a.odf_canvas.slidevisibilitycss().sheet;c.deleteRule(2);c.insertRule("draw|page { \n-moz-transform: scale("+
+b+"); \n-moz-transform-origin: 0% 0%; -webkit-transform-origin: 0% 0%; -webkit-transform: scale("+b+"); -o-transform-origin: 0% 0%; -o-transform: scale("+b+"); -ms-transform-origin: 0% 0%; -ms-transform: scale("+b+"); }",2)};a.load=function(c){a.odf_canvas.load(c)};a.odf_element=e;a.odf_canvas=new odf.OdfCanvas(a.odf_element);a.odf_canvas.addListener("statereadychange",a.setInitialSlideMode);a.slide_mode="undefined";document.addEventListener("keydown",a.keyDownHandler,!1)}}();
+// Input 29
+gui.Caret=function(i,k){k.ownerDocument.createElementNS("urn:webodf:names:cursor","cursor");this.updateToSelection=function(){1===i.rangeCount&&i.getRangeAt(0)}};
+// Input 30
+runtime.loadClass("core.Cursor");
+gui.SelectionMover=function(i,k){function j(a,c){if(0!==i.rangeCount){var e=i.getRangeAt(0),f;if(e.startContainer&&1===e.startContainer.nodeType){f=e.startContainer;k.setPoint(f,e.startOffset);c();e=k.node();k.position();f=[];var g;for(g=0;g<i.rangeCount;g+=1)f[g]=i.getRangeAt(g);i.removeAllRanges();0===f.length&&(f[0]=e.ownerDocument.createRange());f[f.length-1].setStart(k.node(),k.position());for(g=0;g<f.length;g+=1)i.addRange(f[g])}}}function e(){c.updateToSelection();for(var a=c.getNode().getBoundingClientRect(),
+d=a.left,e=a.top,a=!1;!a;){c.remove();a=void 0;if(i.focusNode&&1===i.focusNode.nodeType){a=i.focusNode;k.setPoint(a,i.focusOffset);k.stepForward();var a=k.node(),f=k.position();i.collapse(a,f);c.updateToSelection()}a=c.getNode().getBoundingClientRect();a=a.top!==e&&a.left>d}}var a=k.node().ownerDocument,c=new core.Cursor(i,a);this.movePointForward=function(a){j(a,k.stepForward)};this.movePointBackward=function(a){j(a,k.stepBackward)};this.moveLineForward=function(a){i.modify?i.modify(a?"extend":"move",
+"forward","line"):j(a,e)};this.moveLineBackward=function(a){i.modify?i.modify(a?"extend":"move","backward","line"):j(a,function(){})};return this};
+// Input 31
+runtime.loadClass("core.PointWalker");runtime.loadClass("core.Cursor");
+gui.XMLEdit=function(i,k){function j(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}function e(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function a(){var a=i.ownerDocument.defaultView.getSelection();a&&(!(0>=a.rangeCount)&&n)&&(a=a.getRangeAt(0),n.setPoint(a.startContainer,a.startOffset))}function c(){var a=i.ownerDocument.defaultView.getSelection(),b,c;a.removeAllRanges();n&&n.node()&&(b=n.node(),c=b.ownerDocument.createRange(),
+c.setStart(b,n.position()),c.collapse(!0),a.addRange(c))}function b(a){for(var c=a.firstChild;c&&c!==a;)1===c.nodeType&&b(c),c=c.nextSibling||c.parentNode;var d,e,f,c=a.attributes;d="";for(f=c.length-1;0<=f;f-=1)e=c.item(f),d=d+" "+e.nodeName+'="'+e.nodeValue+'"';a.setAttribute("customns_name",a.nodeName);a.setAttribute("customns_atts",d);c=a.firstChild;for(e=/^\s*$/;c&&c!==a;)d=c,c=c.nextSibling||c.parentNode,3===d.nodeType&&e.test(d.nodeValue)&&d.parentNode.removeChild(d)}function d(a,c){for(var b=
+a.firstChild,e,f,g;b&&b!==a;){if(1===b.nodeType){d(b,c);e=b.attributes;for(g=e.length-1;0<=g;g-=1)f=e.item(g),"http://www.w3.org/2000/xmlns/"===f.namespaceURI&&!c[f.nodeValue]&&(c[f.nodeValue]=f.localName)}b=b.nextSibling||b.parentNode}}function o(){var a=i.ownerDocument.createElement("style"),b;b={};d(i,b);var c={},e,g,h=0;for(e in b)if(b.hasOwnProperty(e)&&e){g=b[e];if(!g||c.hasOwnProperty(g)||"xmlns"===g){do g="ns"+h,h+=1;while(c.hasOwnProperty(g));b[e]=g}c[g]=!0}a.type="text/css";b="@namespace customns url(customns);\n"+
+f;a.appendChild(i.ownerDocument.createTextNode(b));k=k.parentNode.replaceChild(a,k)}var f,g,h,n=null;i.id||(i.id="xml"+String(Math.random()).substring(2));g="#"+i.id+" ";f=g+"*,"+g+":visited, "+g+":link {display:block; margin: 0px; margin-left: 10px; font-size: medium; color: black; background: white; font-variant: normal; font-weight: normal; font-style: normal; font-family: sans-serif; text-decoration: none; white-space: pre-wrap; height: auto; width: auto}\n"+g+":before {color: blue; content: '<' attr(customns_name) attr(customns_atts) '>';}\n"+
+g+":after {color: blue; content: '</' attr(customns_name) '>';}\n"+g+"{overflow: auto;}\n";g=i;j(g,"click",function(a){i.ownerDocument.defaultView.getSelection().getRangeAt(0);e(a)});j(g,"keydown",function(b){var d=b.charCode||b.keyCode;if((n=null)&&d===39){a();n.stepForward();c()}else if(n&&d===37){a();n.stepBackward();c()}else if(d>=16&&d<=20||d>=33&&d<=40)return;e(b)});j(g,"keypress",function(){});j(g,"drop",e);j(g,"dragend",e);j(g,"beforepaste",e);j(g,"paste",e);this.updateCSS=o;this.setXML=function(a){a=
+a.documentElement||a;h=a=i.ownerDocument.importNode(a,true);for(b(a);i.lastChild;)i.removeChild(i.lastChild);i.appendChild(a);o();n=new core.PointWalker(a)};this.getXML=function(){return h}};
+// Input 32
+(function(){return"core/Async.js core/Base64.js core/ByteArray.js core/ByteArrayWriter.js core/Cursor.js core/JSLint.js core/PointWalker.js core/RawDeflate.js core/RawInflate.js core/UnitTester.js core/Zip.js gui/Caret.js gui/PresenterUI.js gui/SelectionMover.js gui/XMLEdit.js odf/CommandLineTools.js odf/FontLoader.js odf/Formatting.js odf/OdfCanvas.js odf/OdfContainer.js odf/Style2CSS.js odf/StyleInfo.js xmldom/LSSerializer.js xmldom/LSSerializerFilter.js xmldom/OperationalTransformDOM.js xmldom/OperationalTransformInterface.js xmldom/RelaxNG.js xmldom/RelaxNG2.js xmldom/RelaxNGParser.js xmldom/XPath.js".split(" ")})();
diff --git a/lib/viewers/pdf.php b/lib/viewers/pdf.php
new file mode 100644
index 0000000..2d31357
--- /dev/null
+++ b/lib/viewers/pdf.php
@@ -0,0 +1,57 @@
+<?php
+/*
+ +--------------------------------------------------------------------------+
+ | This file is part of the Kolab File API |
+ | |
+ | Copyright (C) 2011-2013, Kolab Systems AG |
+ | |
+ | This program is free software: you can redistribute it and/or modify |
+ | it under the terms of the GNU Affero General Public License as published |
+ | by the Free Software Foundation, either version 3 of the License, or |
+ | (at your option) any later version. |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public License |
+ | along with this program. If not, see <http://www.gnu.org/licenses/> |
+ +--------------------------------------------------------------------------+
+ | Author: Aleksander Machniak <machniak@kolabsys.com> |
+ +--------------------------------------------------------------------------+
+*/
+
+class file_viewer_pdf
+{
+ protected $mimetypes = array(
+ 'application/pdf',
+ 'application/x-pdf',
+ 'application/acrobat',
+ 'applications/vnd.pdf',
+ 'text/pdf',
+ 'text/x-pdf',
+ );
+
+
+ /**
+ * Returns list of supported mimetype
+ *
+ * @return array List of mimetypes
+ */
+ public function supported_mimetypes()
+ {
+ return $this->mimetypes;
+ }
+
+ /**
+ * Print output and exit
+ *
+ * @param string $file_uri File URL
+ */
+ public function output($file_uri)
+ {
+ header('Location: viewers/pdf/viewer.html?file=' . urlencode($file_uri));
+ exit;
+ }
+}
diff --git a/lib/viewers/pdf/compatibility.js b/lib/viewers/pdf/compatibility.js
new file mode 100644
index 0000000..0230dc5
--- /dev/null
+++ b/lib/viewers/pdf/compatibility.js
@@ -0,0 +1,440 @@
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* globals VBArray */
+
+'use strict';
+
+// Checking if the typed arrays are supported
+(function checkTypedArrayCompatibility() {
+ if (typeof Uint8Array !== 'undefined') {
+ // some mobile versions do not support subarray (e.g. safari 5 / iOS)
+ if (typeof Uint8Array.prototype.subarray === 'undefined') {
+ Uint8Array.prototype.subarray = function subarray(start, end) {
+ return new Uint8Array(this.slice(start, end));
+ };
+ Float32Array.prototype.subarray = function subarray(start, end) {
+ return new Float32Array(this.slice(start, end));
+ };
+ }
+
+ // some mobile version might not support Float64Array
+ if (typeof Float64Array === 'undefined')
+ window.Float64Array = Float32Array;
+
+ return;
+ }
+
+ function subarray(start, end) {
+ return new TypedArray(this.slice(start, end));
+ }
+
+ function setArrayOffset(array, offset) {
+ if (arguments.length < 2)
+ offset = 0;
+ for (var i = 0, n = array.length; i < n; ++i, ++offset)
+ this[offset] = array[i] & 0xFF;
+ }
+
+ function TypedArray(arg1) {
+ var result;
+ if (typeof arg1 === 'number') {
+ result = [];
+ for (var i = 0; i < arg1; ++i)
+ result[i] = 0;
+ } else if ('slice' in arg1) {
+ result = arg1.slice(0);
+ } else {
+ result = [];
+ for (var i = 0, n = arg1.length; i < n; ++i) {
+ result[i] = arg1[i];
+ }
+ }
+
+ result.subarray = subarray;
+ result.buffer = result;
+ result.byteLength = result.length;
+ result.set = setArrayOffset;
+
+ if (typeof arg1 === 'object' && arg1.buffer)
+ result.buffer = arg1.buffer;
+
+ return result;
+ }
+
+ window.Uint8Array = TypedArray;
+
+ // we don't need support for set, byteLength for 32-bit array
+ // so we can use the TypedArray as well
+ window.Uint32Array = TypedArray;
+ window.Int32Array = TypedArray;
+ window.Uint16Array = TypedArray;
+ window.Float32Array = TypedArray;
+ window.Float64Array = TypedArray;
+})();
+
+// Object.create() ?
+(function checkObjectCreateCompatibility() {
+ if (typeof Object.create !== 'undefined')
+ return;
+
+ Object.create = function objectCreate(proto) {
+ function Constructor() {}
+ Constructor.prototype = proto;
+ return new Constructor();
+ };
+})();
+
+// Object.defineProperty() ?
+(function checkObjectDefinePropertyCompatibility() {
+ if (typeof Object.defineProperty !== 'undefined') {
+ var definePropertyPossible = true;
+ try {
+ // some browsers (e.g. safari) cannot use defineProperty() on DOM objects
+ // and thus the native version is not sufficient
+ Object.defineProperty(new Image(), 'id', { value: 'test' });
+ // ... another test for android gb browser for non-DOM objects
+ var Test = function Test() {};
+ Test.prototype = { get id() { } };
+ Object.defineProperty(new Test(), 'id',
+ { value: '', configurable: true, enumerable: true, writable: false });
+ } catch (e) {
+ definePropertyPossible = false;
+ }
+ if (definePropertyPossible) return;
+ }
+
+ Object.defineProperty = function objectDefineProperty(obj, name, def) {
+ delete obj[name];
+ if ('get' in def)
+ obj.__defineGetter__(name, def['get']);
+ if ('set' in def)
+ obj.__defineSetter__(name, def['set']);
+ if ('value' in def) {
+ obj.__defineSetter__(name, function objectDefinePropertySetter(value) {
+ this.__defineGetter__(name, function objectDefinePropertyGetter() {
+ return value;
+ });
+ return value;
+ });
+ obj[name] = def.value;
+ }
+ };
+})();
+
+// Object.keys() ?
+(function checkObjectKeysCompatibility() {
+ if (typeof Object.keys !== 'undefined')
+ return;
+
+ Object.keys = function objectKeys(obj) {
+ var result = [];
+ for (var i in obj) {
+ if (obj.hasOwnProperty(i))
+ result.push(i);
+ }
+ return result;
+ };
+})();
+
+// No readAsArrayBuffer ?
+(function checkFileReaderReadAsArrayBuffer() {
+ if (typeof FileReader === 'undefined')
+ return; // FileReader is not implemented
+ var frPrototype = FileReader.prototype;
+ // Older versions of Firefox might not have readAsArrayBuffer
+ if ('readAsArrayBuffer' in frPrototype)
+ return; // readAsArrayBuffer is implemented
+ Object.defineProperty(frPrototype, 'readAsArrayBuffer', {
+ value: function fileReaderReadAsArrayBuffer(blob) {
+ var fileReader = new FileReader();
+ var originalReader = this;
+ fileReader.onload = function fileReaderOnload(evt) {
+ var data = evt.target.result;
+ var buffer = new ArrayBuffer(data.length);
+ var uint8Array = new Uint8Array(buffer);
+
+ for (var i = 0, ii = data.length; i < ii; i++)
+ uint8Array[i] = data.charCodeAt(i);
+
+ Object.defineProperty(originalReader, 'result', {
+ value: buffer,
+ enumerable: true,
+ writable: false,
+ configurable: true
+ });
+
+ var event = document.createEvent('HTMLEvents');
+ event.initEvent('load', false, false);
+ originalReader.dispatchEvent(event);
+ };
+ fileReader.readAsBinaryString(blob);
+ }
+ });
+})();
+
+// No XMLHttpRequest.response ?
+(function checkXMLHttpRequestResponseCompatibility() {
+ var xhrPrototype = XMLHttpRequest.prototype;
+ if (!('overrideMimeType' in xhrPrototype)) {
+ // IE10 might have response, but not overrideMimeType
+ Object.defineProperty(xhrPrototype, 'overrideMimeType', {
+ value: function xmlHttpRequestOverrideMimeType(mimeType) {}
+ });
+ }
+ if ('response' in xhrPrototype ||
+ 'mozResponseArrayBuffer' in xhrPrototype ||
+ 'mozResponse' in xhrPrototype ||
+ 'responseArrayBuffer' in xhrPrototype)
+ return;
+ // IE9 ?
+ if (typeof VBArray !== 'undefined') {
+ Object.defineProperty(xhrPrototype, 'response', {
+ get: function xmlHttpRequestResponseGet() {
+ return new Uint8Array(new VBArray(this.responseBody).toArray());
+ }
+ });
+ return;
+ }
+
+ // other browsers
+ function responseTypeSetter() {
+ // will be only called to set "arraybuffer"
+ this.overrideMimeType('text/plain; charset=x-user-defined');
+ }
+ if (typeof xhrPrototype.overrideMimeType === 'function') {
+ Object.defineProperty(xhrPrototype, 'responseType',
+ { set: responseTypeSetter });
+ }
+ function responseGetter() {
+ var text = this.responseText;
+ var i, n = text.length;
+ var result = new Uint8Array(n);
+ for (i = 0; i < n; ++i)
+ result[i] = text.charCodeAt(i) & 0xFF;
+ return result;
+ }
+ Object.defineProperty(xhrPrototype, 'response', { get: responseGetter });
+})();
+
+// window.btoa (base64 encode function) ?
+(function checkWindowBtoaCompatibility() {
+ if ('btoa' in window)
+ return;
+
+ var digits =
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+
+ window.btoa = function windowBtoa(chars) {
+ var buffer = '';
+ var i, n;
+ for (i = 0, n = chars.length; i < n; i += 3) {
+ var b1 = chars.charCodeAt(i) & 0xFF;
+ var b2 = chars.charCodeAt(i + 1) & 0xFF;
+ var b3 = chars.charCodeAt(i + 2) & 0xFF;
+ var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
+ var d3 = i + 1 < n ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
+ var d4 = i + 2 < n ? (b3 & 0x3F) : 64;
+ buffer += (digits.charAt(d1) + digits.charAt(d2) +
+ digits.charAt(d3) + digits.charAt(d4));
+ }
+ return buffer;
+ };
+})();
+
+// Function.prototype.bind ?
+(function checkFunctionPrototypeBindCompatibility() {
+ if (typeof Function.prototype.bind !== 'undefined')
+ return;
+
+ Function.prototype.bind = function functionPrototypeBind(obj) {
+ var fn = this, headArgs = Array.prototype.slice.call(arguments, 1);
+ var bound = function functionPrototypeBindBound() {
+ var args = Array.prototype.concat.apply(headArgs, arguments);
+ return fn.apply(obj, args);
+ };
+ return bound;
+ };
+})();
+
+// IE9/10 text/html data URI
+(function checkDataURICompatibility() {
+ if (!('documentMode' in document) ||
+ document.documentMode !== 9 && document.documentMode !== 10)
+ return;
+ // overriding the src property
+ var originalSrcDescriptor = Object.getOwnPropertyDescriptor(
+ HTMLIFrameElement.prototype, 'src');
+ Object.defineProperty(HTMLIFrameElement.prototype, 'src', {
+ get: function htmlIFrameElementPrototypeSrcGet() { return this.$src; },
+ set: function htmlIFrameElementPrototypeSrcSet(src) {
+ this.$src = src;
+ if (src.substr(0, 14) != 'data:text/html') {
+ originalSrcDescriptor.set.call(this, src);
+ return;
+ }
+ // for text/html, using blank document and then
+ // document's open, write, and close operations
+ originalSrcDescriptor.set.call(this, 'about:blank');
+ setTimeout((function htmlIFrameElementPrototypeSrcOpenWriteClose() {
+ var doc = this.contentDocument;
+ doc.open('text/html');
+ doc.write(src.substr(src.indexOf(',') + 1));
+ doc.close();
+ }).bind(this), 0);
+ },
+ enumerable: true
+ });
+})();
+
+// HTMLElement dataset property
+(function checkDatasetProperty() {
+ var div = document.createElement('div');
+ if ('dataset' in div)
+ return; // dataset property exists
+
+ Object.defineProperty(HTMLElement.prototype, 'dataset', {
+ get: function() {
+ if (this._dataset)
+ return this._dataset;
+
+ var dataset = {};
+ for (var j = 0, jj = this.attributes.length; j < jj; j++) {
+ var attribute = this.attributes[j];
+ if (attribute.name.substring(0, 5) != 'data-')
+ continue;
+ var key = attribute.name.substring(5).replace(/\-([a-z])/g,
+ function(all, ch) { return ch.toUpperCase(); });
+ dataset[key] = attribute.value;
+ }
+
+ Object.defineProperty(this, '_dataset', {
+ value: dataset,
+ writable: false,
+ enumerable: false
+ });
+ return dataset;
+ },
+ enumerable: true
+ });
+})();
+
+// HTMLElement classList property
+(function checkClassListProperty() {
+ var div = document.createElement('div');
+ if ('classList' in div)
+ return; // classList property exists
+
+ function changeList(element, itemName, add, remove) {
+ var s = element.className || '';
+ var list = s.split(/\s+/g);
+ if (list[0] === '') list.shift();
+ var index = list.indexOf(itemName);
+ if (index < 0 && add)
+ list.push(itemName);
+ if (index >= 0 && remove)
+ list.splice(index, 1);
+ element.className = list.join(' ');
+ }
+
+ var classListPrototype = {
+ add: function(name) {
+ changeList(this.element, name, true, false);
+ },
+ remove: function(name) {
+ changeList(this.element, name, false, true);
+ },
+ toggle: function(name) {
+ changeList(this.element, name, true, true);
+ }
+ };
+
+ Object.defineProperty(HTMLElement.prototype, 'classList', {
+ get: function() {
+ if (this._classList)
+ return this._classList;
+
+ var classList = Object.create(classListPrototype, {
+ element: {
+ value: this,
+ writable: false,
+ enumerable: true
+ }
+ });
+ Object.defineProperty(this, '_classList', {
+ value: classList,
+ writable: false,
+ enumerable: false
+ });
+ return classList;
+ },
+ enumerable: true
+ });
+})();
+
+// Check console compatability
+(function checkConsoleCompatibility() {
+ if (!('console' in window)) {
+ window.console = {
+ log: function() {},
+ error: function() {},
+ warn: function() {}
+ };
+ } else if (!('bind' in console.log)) {
+ // native functions in IE9 might not have bind
+ console.log = (function(fn) {
+ return function(msg) { return fn(msg); };
+ })(console.log);
+ console.error = (function(fn) {
+ return function(msg) { return fn(msg); };
+ })(console.error);
+ console.warn = (function(fn) {
+ return function(msg) { return fn(msg); };
+ })(console.warn);
+ }
+})();
+
+// Check onclick compatibility in Opera
+(function checkOnClickCompatibility() {
+ // workaround for reported Opera bug DSK-354448:
+ // onclick fires on disabled buttons with opaque content
+ function ignoreIfTargetDisabled(event) {
+ if (isDisabled(event.target)) {
+ event.stopPropagation();
+ }
+ }
+ function isDisabled(node) {
+ return node.disabled || (node.parentNode && isDisabled(node.parentNode));
+ }
+ if (navigator.userAgent.indexOf('Opera') != -1) {
+ // use browser detection since we cannot feature-check this bug
+ document.addEventListener('click', ignoreIfTargetDisabled, true);
+ }
+})();
+
+// Checks if navigator.language is supported
+(function checkNavigatorLanguage() {
+ if ('language' in navigator)
+ return;
+ Object.defineProperty(navigator, 'language', {
+ get: function navigatorLanguage() {
+ var language = navigator.userLanguage || 'en-US';
+ return language.substring(0, 2).toLowerCase() +
+ language.substring(2).toUpperCase();
+ },
+ enumerable: true
+ });
+})();
diff --git a/lib/viewers/pdf/debugger.js b/lib/viewers/pdf/debugger.js
new file mode 100644
index 0000000..2305bb7
--- /dev/null
+++ b/lib/viewers/pdf/debugger.js
@@ -0,0 +1,491 @@
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+/* Copyright 2012 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* globals PDFJS */
+
+'use strict';
+
+var FontInspector = (function FontInspectorClosure() {
+ var fonts;
+ var panelWidth = 300;
+ var active = false;
+ var fontAttribute = 'data-font-name';
+ function removeSelection() {
+ var divs = document.querySelectorAll('div[' + fontAttribute + ']');
+ for (var i = 0, ii = divs.length; i < ii; ++i) {
+ var div = divs[i];
+ div.className = '';
+ }
+ }
+ function resetSelection() {
+ var divs = document.querySelectorAll('div[' + fontAttribute + ']');
+ for (var i = 0, ii = divs.length; i < ii; ++i) {
+ var div = divs[i];
+ div.className = 'debuggerHideText';
+ }
+ }
+ function selectFont(fontName, show) {
+ var divs = document.querySelectorAll('div[' + fontAttribute + '=' +
+ fontName + ']');
+ for (var i = 0, ii = divs.length; i < ii; ++i) {
+ var div = divs[i];
+ div.className = show ? 'debuggerShowText' : 'debuggerHideText';
+ }
+ }
+ function textLayerClick(e) {
+ if (!e.target.dataset.fontName || e.target.tagName.toUpperCase() !== 'DIV')
+ return;
+ var fontName = e.target.dataset.fontName;
+ var selects = document.getElementsByTagName('input');
+ for (var i = 0; i < selects.length; ++i) {
+ var select = selects[i];
+ if (select.dataset.fontName != fontName) continue;
+ select.checked = !select.checked;
+ selectFont(fontName, select.checked);
+ select.scrollIntoView();
+ }
+ }
+ return {
+ // Properties/functions needed by PDFBug.
+ id: 'FontInspector',
+ name: 'Font Inspector',
+ panel: null,
+ manager: null,
+ init: function init() {
+ var panel = this.panel;
+ panel.setAttribute('style', 'padding: 5px;');
+ var tmp = document.createElement('button');
+ tmp.addEventListener('click', resetSelection);
+ tmp.textContent = 'Refresh';
+ panel.appendChild(tmp);
+
+ fonts = document.createElement('div');
+ panel.appendChild(fonts);
+ },
+ enabled: false,
+ get active() {
+ return active;
+ },
+ set active(value) {
+ active = value;
+ if (active) {
+ document.body.addEventListener('click', textLayerClick, true);
+ resetSelection();
+ } else {
+ document.body.removeEventListener('click', textLayerClick, true);
+ removeSelection();
+ }
+ },
+ // FontInspector specific functions.
+ fontAdded: function fontAdded(fontObj, url) {
+ function properties(obj, list) {
+ var moreInfo = document.createElement('table');
+ for (var i = 0; i < list.length; i++) {
+ var tr = document.createElement('tr');
+ var td1 = document.createElement('td');
+ td1.textContent = list[i];
+ tr.appendChild(td1);
+ var td2 = document.createElement('td');
+ td2.textContent = obj[list[i]].toString();
+ tr.appendChild(td2);
+ moreInfo.appendChild(tr);
+ }
+ return moreInfo;
+ }
+ var moreInfo = properties(fontObj, ['name', 'type']);
+ var m = /url\(['"]?([^\)"']+)/.exec(url);
+ var fontName = fontObj.loadedName;
+ var font = document.createElement('div');
+ var name = document.createElement('span');
+ name.textContent = fontName;
+ var download = document.createElement('a');
+ download.href = m[1];
+ download.textContent = 'Download';
+ var logIt = document.createElement('a');
+ logIt.href = '';
+ logIt.textContent = 'Log';
+ logIt.addEventListener('click', function(event) {
+ event.preventDefault();
+ console.log(fontObj);
+ });
+ var select = document.createElement('input');
+ select.setAttribute('type', 'checkbox');
+ select.dataset.fontName = fontName;
+ select.addEventListener('click', (function(select, fontName) {
+ return (function() {
+ selectFont(fontName, select.checked);
+ });
+ })(select, fontName));
+ font.appendChild(select);
+ font.appendChild(name);
+ font.appendChild(document.createTextNode(' '));
+ font.appendChild(download);
+ font.appendChild(document.createTextNode(' '));
+ font.appendChild(logIt);
+ font.appendChild(moreInfo);
+ fonts.appendChild(font);
+ // Somewhat of a hack, should probably add a hook for when the text layer
+ // is done rendering.
+ setTimeout(function() {
+ if (this.active)
+ resetSelection();
+ }.bind(this), 2000);
+ }
+ };
+})();
+
+// Manages all the page steppers.
+var StepperManager = (function StepperManagerClosure() {
+ var steppers = [];
+ var stepperDiv = null;
+ var stepperControls = null;
+ var stepperChooser = null;
+ var breakPoints = {};
+ return {
+ // Properties/functions needed by PDFBug.
+ id: 'Stepper',
+ name: 'Stepper',
+ panel: null,
+ manager: null,
+ init: function init() {
+ var self = this;
+ this.panel.setAttribute('style', 'padding: 5px;');
+ stepperControls = document.createElement('div');
+ stepperChooser = document.createElement('select');
+ stepperChooser.addEventListener('change', function(event) {
+ self.selectStepper(this.value);
+ });
+ stepperControls.appendChild(stepperChooser);
+ stepperDiv = document.createElement('div');
+ this.panel.appendChild(stepperControls);
+ this.panel.appendChild(stepperDiv);
+ if (sessionStorage.getItem('pdfjsBreakPoints'))
+ breakPoints = JSON.parse(sessionStorage.getItem('pdfjsBreakPoints'));
+ },
+ enabled: false,
+ active: false,
+ // Stepper specific functions.
+ create: function create(pageIndex) {
+ var debug = document.createElement('div');
+ debug.id = 'stepper' + pageIndex;
+ debug.setAttribute('hidden', true);
+ debug.className = 'stepper';
+ stepperDiv.appendChild(debug);
+ var b = document.createElement('option');
+ b.textContent = 'Page ' + (pageIndex + 1);
+ b.value = pageIndex;
+ stepperChooser.appendChild(b);
+ var initBreakPoints = breakPoints[pageIndex] || [];
+ var stepper = new Stepper(debug, pageIndex, initBreakPoints);
+ steppers.push(stepper);
+ if (steppers.length === 1)
+ this.selectStepper(pageIndex, false);
+ return stepper;
+ },
+ selectStepper: function selectStepper(pageIndex, selectPanel) {
+ if (selectPanel)
+ this.manager.selectPanel(1);
+ for (var i = 0; i < steppers.length; ++i) {
+ var stepper = steppers[i];
+ if (stepper.pageIndex == pageIndex)
+ stepper.panel.removeAttribute('hidden');
+ else
+ stepper.panel.setAttribute('hidden', true);
+ }
+ var options = stepperChooser.options;
+ for (var i = 0; i < options.length; ++i) {
+ var option = options[i];
+ option.selected = option.value == pageIndex;
+ }
+ },
+ saveBreakPoints: function saveBreakPoints(pageIndex, bps) {
+ breakPoints[pageIndex] = bps;
+ sessionStorage.setItem('pdfjsBreakPoints', JSON.stringify(breakPoints));
+ }
+ };
+})();
+
+// The stepper for each page's IRQueue.
+var Stepper = (function StepperClosure() {
+ function Stepper(panel, pageIndex, initialBreakPoints) {
+ this.panel = panel;
+ this.len = 0;
+ this.breakPoint = 0;
+ this.nextBreakPoint = null;
+ this.pageIndex = pageIndex;
+ this.breakPoints = initialBreakPoints;
+ this.currentIdx = -1;
+ }
+ Stepper.prototype = {
+ init: function init(IRQueue) {
+ // Shorter way to create element and optionally set textContent.
+ function c(tag, textContent) {
+ var d = document.createElement(tag);
+ if (textContent)
+ d.textContent = textContent;
+ return d;
+ }
+ var panel = this.panel;
+ this.len = IRQueue.fnArray.length;
+ var content = c('div', 'c=continue, s=step');
+ var table = c('table');
+ content.appendChild(table);
+ table.cellSpacing = 0;
+ var headerRow = c('tr');
+ table.appendChild(headerRow);
+ headerRow.appendChild(c('th', 'Break'));
+ headerRow.appendChild(c('th', 'Idx'));
+ headerRow.appendChild(c('th', 'fn'));
+ headerRow.appendChild(c('th', 'args'));
+
+ var self = this;
+ for (var i = 0; i < IRQueue.fnArray.length; i++) {
+ var line = c('tr');
+ line.className = 'line';
+ line.dataset.idx = i;
+ table.appendChild(line);
+ var checked = this.breakPoints.indexOf(i) != -1;
+ var args = IRQueue.argsArray[i] ? IRQueue.argsArray[i] : [];
+
+ var breakCell = c('td');
+ var cbox = c('input');
+ cbox.type = 'checkbox';
+ cbox.className = 'points';
+ cbox.checked = checked;
+ cbox.onclick = (function(x) {
+ return function() {
+ if (this.checked)
+ self.breakPoints.push(x);
+ else
+ self.breakPoints.splice(self.breakPoints.indexOf(x), 1);
+ StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints);
+ };
+ })(i);
+
+ breakCell.appendChild(cbox);
+ line.appendChild(breakCell);
+ line.appendChild(c('td', i.toString()));
+ line.appendChild(c('td', IRQueue.fnArray[i]));
+ line.appendChild(c('td', args.join(', ')));
+ }
+ panel.appendChild(content);
+ var self = this;
+ },
+ getNextBreakPoint: function getNextBreakPoint() {
+ this.breakPoints.sort(function(a, b) { return a - b; });
+ for (var i = 0; i < this.breakPoints.length; i++) {
+ if (this.breakPoints[i] > this.currentIdx)
+ return this.breakPoints[i];
+ }
+ return null;
+ },
+ breakIt: function breakIt(idx, callback) {
+ StepperManager.selectStepper(this.pageIndex, true);
+ var self = this;
+ var dom = document;
+ self.currentIdx = idx;
+ var listener = function(e) {
+ switch (e.keyCode) {
+ case 83: // step
+ dom.removeEventListener('keydown', listener, false);
+ self.nextBreakPoint = self.currentIdx + 1;
+ self.goTo(-1);
+ callback();
+ break;
+ case 67: // continue
+ dom.removeEventListener('keydown', listener, false);
+ var breakPoint = self.getNextBreakPoint();
+ self.nextBreakPoint = breakPoint;
+ self.goTo(-1);
+ callback();
+ break;
+ }
+ };
+ dom.addEventListener('keydown', listener, false);
+ self.goTo(idx);
+ },
+ goTo: function goTo(idx) {
+ var allRows = this.panel.getElementsByClassName('line');
+ for (var x = 0, xx = allRows.length; x < xx; ++x) {
+ var row = allRows[x];
+ if (row.dataset.idx == idx) {
+ row.style.backgroundColor = 'rgb(251,250,207)';
+ row.scrollIntoView();
+ } else {
+ row.style.backgroundColor = null;
+ }
+ }
+ }
+ };
+ return Stepper;
+})();
+
+var Stats = (function Stats() {
+ var stats = [];
+ function clear(node) {
+ while (node.hasChildNodes())
+ node.removeChild(node.lastChild);
+ }
+ function getStatIndex(pageNumber) {
+ for (var i = 0, ii = stats.length; i < ii; ++i)
+ if (stats[i].pageNumber === pageNumber)
+ return i;
+ return false;
+ }
+ return {
+ // Properties/functions needed by PDFBug.
+ id: 'Stats',
+ name: 'Stats',
+ panel: null,
+ manager: null,
+ init: function init() {
+ this.panel.setAttribute('style', 'padding: 5px;');
+ PDFJS.enableStats = true;
+ },
+ enabled: false,
+ active: false,
+ // Stats specific functions.
+ add: function(pageNumber, stat) {
+ if (!stat)
+ return;
+ var statsIndex = getStatIndex(pageNumber);
+ if (statsIndex !== false) {
+ var b = stats[statsIndex];
+ this.panel.removeChild(b.div);
+ stats.splice(statsIndex, 1);
+ }
+ var wrapper = document.createElement('div');
+ wrapper.className = 'stats';
+ var title = document.createElement('div');
+ title.className = 'title';
+ title.textContent = 'Page: ' + pageNumber;
+ var statsDiv = document.createElement('div');
+ statsDiv.textContent = stat.toString();
+ wrapper.appendChild(title);
+ wrapper.appendChild(statsDiv);
+ stats.push({ pageNumber: pageNumber, div: wrapper });
+ stats.sort(function(a, b) { return a.pageNumber - b.pageNumber; });
+ clear(this.panel);
+ for (var i = 0, ii = stats.length; i < ii; ++i)
+ this.panel.appendChild(stats[i].div);
+ }
+ };
+})();
+
+// Manages all the debugging tools.
+var PDFBug = (function PDFBugClosure() {
+ var panelWidth = 300;
+ var buttons = [];
+ var activePanel = null;
+
+ return {
+ tools: [
+ FontInspector,
+ StepperManager,
+ Stats
+ ],
+ enable: function(ids) {
+ var all = false, tools = this.tools;
+ if (ids.length === 1 && ids[0] === 'all')
+ all = true;
+ for (var i = 0; i < tools.length; ++i) {
+ var tool = tools[i];
+ if (all || ids.indexOf(tool.id) !== -1)
+ tool.enabled = true;
+ }
+ if (!all) {
+ // Sort the tools by the order they are enabled.
+ tools.sort(function(a, b) {
+ var indexA = ids.indexOf(a.id);
+ indexA = indexA < 0 ? tools.length : indexA;
+ var indexB = ids.indexOf(b.id);
+ indexB = indexB < 0 ? tools.length : indexB;
+ return indexA - indexB;
+ });
+ }
+ },
+ init: function init() {
+ /*
+ * Basic Layout:
+ * PDFBug
+ * Controls
+ * Panels
+ * Panel
+ * Panel
+ * ...
+ */
+ var ui = document.createElement('div');
+ ui.id = 'PDFBug';
+
+ var controls = document.createElement('div');
+ controls.setAttribute('class', 'controls');
+ ui.appendChild(controls);
+
+ var panels = document.createElement('div');
+ panels.setAttribute('class', 'panels');
+ ui.appendChild(panels);
+
+ var container = document.getElementById('viewerContainer');
+ container.appendChild(ui);
+ container.style.right = panelWidth + 'px';
+
+ // Initialize all the debugging tools.
+ var tools = this.tools;
+ var self = this;
+ for (var i = 0; i < tools.length; ++i) {
+ var tool = tools[i];
+ var panel = document.createElement('div');
+ var panelButton = document.createElement('button');
+ panelButton.textContent = tool.name;
+ panelButton.addEventListener('click', (function(selected) {
+ return function(event) {
+ event.preventDefault();
+ self.selectPanel(selected);
+ };
+ })(i));
+ controls.appendChild(panelButton);
+ panels.appendChild(panel);
+ tool.panel = panel;
+ tool.manager = this;
+ if (tool.enabled)
+ tool.init();
+ else
+ panel.textContent = tool.name + ' is disabled. To enable add ' +
+ ' "' + tool.id + '" to the pdfBug parameter ' +
+ 'and refresh (seperate multiple by commas).';
+ buttons.push(panelButton);
+ }
+ this.selectPanel(0);
+ },
+ selectPanel: function selectPanel(index) {
+ if (index === activePanel)
+ return;
+ activePanel = index;
+ var tools = this.tools;
+ for (var j = 0; j < tools.length; ++j) {
+ if (j == index) {
+ buttons[j].setAttribute('class', 'active');
+ tools[j].active = true;
+ tools[j].panel.removeAttribute('hidden');
+ } else {
+ buttons[j].setAttribute('class', '');
+ tools[j].active = false;
+ tools[j].panel.setAttribute('hidden', 'true');
+ }
+ }
+ }
+ };
+})();
diff --git a/lib/viewers/pdf/images/annotation-check.svg b/lib/viewers/pdf/images/annotation-check.svg
new file mode 100644
index 0000000..f28f0e8
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-check.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="40"
+ height="40">
+ <path
+ d="M 1.5006714,23.536225 6.8925879,18.994244 14.585721,26.037937 34.019683,4.5410479 38.499329,9.2235032 14.585721,35.458952 z"
+ id="path4"
+ style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:1.25402856;stroke-opacity:1" />
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-comment.svg b/lib/viewers/pdf/images/annotation-comment.svg
new file mode 100644
index 0000000..b2aee63
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-comment.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ height="40"
+ width="40">
+ <rect
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ width="33.76017"
+ height="33.76017"
+ x="3.119915"
+ y="3.119915" />
+ <path
+ d="m 20.677967,8.54499 c -7.342801,0 -13.295293,4.954293 -13.295293,11.065751 0,2.088793 0.3647173,3.484376 1.575539,5.150563 L 6.0267418,31.45501 13.560595,29.011117 c 2.221262,1.387962 4.125932,1.665377 7.117372,1.665377 7.3428,0 13.295291,-4.954295 13.295291,-11.065753 0,-6.111458 -5.952491,-11.065751 -13.295291,-11.065751 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.93031836;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"/>
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-help.svg b/lib/viewers/pdf/images/annotation-help.svg
new file mode 100644
index 0000000..349112e
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-help.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="40"
+ height="40">
+ <g
+ transform="translate(0,-60)"
+ id="layer1">
+ <rect
+ width="36.460953"
+ height="34.805603"
+ x="1.7695236"
+ y="62.597198"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.30826771;stroke-opacity:1" />
+ <g
+ transform="matrix(0.88763677,0,0,0.88763677,2.2472646,8.9890584)">
+ <path
+ d="M 20,64.526342 C 11.454135,64.526342 4.5263421,71.454135 4.5263421,80 4.5263421,88.545865 11.454135,95.473658 20,95.473658 28.545865,95.473658 35.473658,88.545865 35.473658,80 35.473658,71.454135 28.545865,64.526342 20,64.526342 z m -0.408738,9.488564 c 3.527079,0 6.393832,2.84061 6.393832,6.335441 0,3.494831 -2.866753,6.335441 -6.393832,6.335441 -3.527079,0 -6.393832,-2.84061 -6.393832,-6.335441 0,-3.494831 2.866753,-6.335441 6.393832,-6.335441 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.02768445;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 7.2335209,71.819938 4.9702591,4.161823 c -1.679956,2.581606 -1.443939,6.069592 0.159325,8.677725 l -5.1263071,3.424463 c 0.67516,1.231452 3.0166401,3.547686 4.2331971,4.194757 l 3.907728,-4.567277 c 2.541952,1.45975 5.730694,1.392161 8.438683,-0.12614 l 3.469517,6.108336 c 1.129779,-0.44367 4.742234,-3.449633 5.416358,-5.003859 l -5.46204,-4.415541 c 1.44319,-2.424098 1.651175,-5.267515 0.557303,-7.748623 l 5.903195,-3.833951 C 33.14257,71.704996 30.616217,69.018606 29.02952,67.99296 l -4.118813,4.981678 C 22.411934,71.205099 18.900853,70.937534 16.041319,72.32916 l -3.595408,-5.322091 c -1.345962,0.579488 -4.1293881,2.921233 -5.2123901,4.812869 z m 8.1010311,3.426672 c 2.75284,-2.446266 6.769149,-2.144694 9.048998,0.420874 2.279848,2.56557 2.113919,6.596919 -0.638924,9.043185 -2.752841,2.446267 -6.775754,2.13726 -9.055604,-0.428308 -2.279851,-2.565568 -2.107313,-6.589485 0.64553,-9.035751 z"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-insert.svg b/lib/viewers/pdf/images/annotation-insert.svg
new file mode 100644
index 0000000..60fbf95
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-insert.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="64"
+ height="64">
+ <path
+ d="M 32.003143,1.4044602 57.432701,62.632577 6.5672991,62.627924 z"
+ style="fill:#ffff00;fill-opacity:0.94117647;fill-rule:nonzero;stroke:#000000;stroke-width:1.00493038;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-key.svg b/lib/viewers/pdf/images/annotation-key.svg
new file mode 100644
index 0000000..c0bbb09
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-key.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="64"
+ height="64">
+ <path
+ d="M 25.470843,9.4933766 C 25.30219,12.141818 30.139101,14.445969 34.704831,13.529144 40.62635,12.541995 41.398833,7.3856498 35.97505,5.777863 31.400921,4.1549155 25.157674,6.5445892 25.470843,9.4933766 z M 4.5246282,17.652051 C 4.068249,11.832873 9.2742983,5.9270407 18.437379,3.0977088 29.751911,-0.87185184 45.495663,1.4008022 53.603953,7.1104009 c 9.275765,6.1889221 7.158128,16.2079421 -3.171076,21.5939521 -1.784316,1.635815 -6.380222,1.21421 -7.068351,3.186186 -1.04003,0.972427 -1.288046,2.050158 -1.232864,3.168203 1.015111,2.000108 -3.831548,1.633216 -3.270553,3.759574 0.589477,5.264544 -0.179276,10.53738 -0.362842,15.806257 -0.492006,2.184998 1.163456,4.574232 -0.734888,6.610642 -2.482919,2.325184 -7.30604,2.189143 -9.193497,-0.274767 -2.733688,-1.740626 -8.254447,-3.615254 -6.104247,-6.339626 3.468112,-1.708686 -2.116197,-3.449897 0.431242,-5.080274 5.058402,-1.39256 -2.393215,-2.304318 -0.146889,-4.334645 3.069198,-0.977415 2.056986,-2.518352 -0.219121,-3.540397 1.876567,-1.807151 1.484149,-4.868919 -2.565455,-5.942205 0.150866,-1.805474 2.905737,-4.136876 -1.679967,-5.20493 C 10.260902,27.882167 4.6872697,22.95045 4.5245945,17.652051 z"
+ id="path604"
+ style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:1.72665179;stroke-opacity:1" />
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-newparagraph.svg b/lib/viewers/pdf/images/annotation-newparagraph.svg
new file mode 100644
index 0000000..6c179fd
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-newparagraph.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="64"
+ height="64">
+ <path
+ d="M 32.003143,10.913072 57.432701,53.086929 6.567299,53.083723 z"
+ id="path2985"
+ style="fill:#ffff00;fill-opacity:0.94117647;fill-rule:nonzero;stroke:#000000;stroke-width:0.83403099;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-note.svg b/lib/viewers/pdf/images/annotation-note.svg
new file mode 100644
index 0000000..ed16943
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-note.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="40"
+ height="40">
+ <rect
+ width="36.075428"
+ height="31.096582"
+ x="1.962286"
+ y="4.4517088"
+ id="rect4"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.23004246;stroke-opacity:1" />
+ <rect
+ width="27.96859"
+ height="1.5012145"
+ x="6.0157046"
+ y="10.285"
+ id="rect6"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ <rect
+ width="27.96859"
+ height="0.85783684"
+ x="6.0157056"
+ y="23.21689"
+ id="rect8"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ <rect
+ width="27.96859"
+ height="0.85783684"
+ x="5.8130345"
+ y="28.964394"
+ id="rect10"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+ <rect
+ width="27.96859"
+ height="0.85783684"
+ x="6.0157046"
+ y="17.426493"
+ id="rect12"
+ style="fill:#000000;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/lib/viewers/pdf/images/annotation-paragraph.svg b/lib/viewers/pdf/images/annotation-paragraph.svg
new file mode 100644
index 0000000..6fd90c1
--- /dev/null
+++ b/lib/viewers/pdf/images/annotation-paragraph.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ width="40"
+ height="40">
+ <rect
+ width="33.76017"
+ height="33.76017"
+ x="3.119915"
+ y="3.119915"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ d="m 17.692678,34.50206 0,-16.182224 c -1.930515,-0.103225 -3.455824,-0.730383 -4.57593,-1.881473 -1.12011,-1.151067 -1.680164,-2.619596 -1.680164,-4.405591 0,-1.992435 0.621995,-3.5796849 1.865988,-4.7617553 1.243989,-1.1820288 3.06352,-1.7730536 5.458598,-1.7730764 l 9.802246,0 0,2.6789711 -2.229895,0 0,26.3251486 -2.632515,0 0,-26.3251486 -3.45324,0 0,26.3251486 z"
+ style="font-size:29.42051125px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.07795751;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial" />
+</svg>
diff --git a/lib/viewers/pdf/images/findbarButton-next-rtl.png b/lib/viewers/pdf/images/findbarButton-next-rtl.png
new file mode 100644
index 0000000..08a2c25
--- /dev/null
+++ b/lib/viewers/pdf/images/findbarButton-next-rtl.png
Binary files differ
diff --git a/lib/viewers/pdf/images/findbarButton-next.png b/lib/viewers/pdf/images/findbarButton-next.png
new file mode 100644
index 0000000..beef8cc
--- /dev/null
+++ b/lib/viewers/pdf/images/findbarButton-next.png
Binary files differ
diff --git a/lib/viewers/pdf/images/findbarButton-previous-rtl.png b/lib/viewers/pdf/images/findbarButton-previous-rtl.png
new file mode 100644
index 0000000..beef8cc
--- /dev/null
+++ b/lib/viewers/pdf/images/findbarButton-previous-rtl.png
Binary files differ
diff --git a/lib/viewers/pdf/images/findbarButton-previous.png b/lib/viewers/pdf/images/findbarButton-previous.png
new file mode 100644
index 0000000..08a2c25
--- /dev/null
+++ b/lib/viewers/pdf/images/findbarButton-previous.png
Binary files differ
diff --git a/lib/viewers/pdf/images/loading-icon.gif b/lib/viewers/pdf/images/loading-icon.gif
new file mode 100644
index 0000000..1c72ebb
--- /dev/null
+++ b/lib/viewers/pdf/images/loading-icon.gif
Binary files differ
diff --git a/lib/viewers/pdf/images/loading-small.png b/lib/viewers/pdf/images/loading-small.png
new file mode 100644
index 0000000..1b2df80
--- /dev/null
+++ b/lib/viewers/pdf/images/loading-small.png
Binary files differ
diff --git a/lib/viewers/pdf/images/texture.png b/lib/viewers/pdf/images/texture.png
new file mode 100644
index 0000000..df00864
--- /dev/null
+++ b/lib/viewers/pdf/images/texture.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-bookmark.png b/lib/viewers/pdf/images/toolbarButton-bookmark.png
new file mode 100644
index 0000000..1e5259a
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-bookmark.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-download.png b/lib/viewers/pdf/images/toolbarButton-download.png
new file mode 100644
index 0000000..8676d8e
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-download.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-menuArrows.png b/lib/viewers/pdf/images/toolbarButton-menuArrows.png
new file mode 100644
index 0000000..31b06b5
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-menuArrows.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-openFile.png b/lib/viewers/pdf/images/toolbarButton-openFile.png
new file mode 100644
index 0000000..fc7023f
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-openFile.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-pageDown-rtl.png b/lib/viewers/pdf/images/toolbarButton-pageDown-rtl.png
new file mode 100644
index 0000000..c0051f8
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-pageDown-rtl.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-pageDown.png b/lib/viewers/pdf/images/toolbarButton-pageDown.png
new file mode 100644
index 0000000..762ac43
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-pageDown.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-pageUp-rtl.png b/lib/viewers/pdf/images/toolbarButton-pageUp-rtl.png
new file mode 100644
index 0000000..0d49d8e
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-pageUp-rtl.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-pageUp.png b/lib/viewers/pdf/images/toolbarButton-pageUp.png
new file mode 100644
index 0000000..3155b8b
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-pageUp.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-presentationMode.png b/lib/viewers/pdf/images/toolbarButton-presentationMode.png
new file mode 100644
index 0000000..fa73095
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-presentationMode.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-print.png b/lib/viewers/pdf/images/toolbarButton-print.png
new file mode 100644
index 0000000..fef84dd
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-print.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-search.png b/lib/viewers/pdf/images/toolbarButton-search.png
new file mode 100644
index 0000000..604e652
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-search.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-sidebarToggle.png b/lib/viewers/pdf/images/toolbarButton-sidebarToggle.png
new file mode 100644
index 0000000..5a937c7
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-sidebarToggle.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-viewOutline.png b/lib/viewers/pdf/images/toolbarButton-viewOutline.png
new file mode 100644
index 0000000..cb3967b
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-viewOutline.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-viewThumbnail.png b/lib/viewers/pdf/images/toolbarButton-viewThumbnail.png
new file mode 100644
index 0000000..3a27f04
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-viewThumbnail.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-zoomIn.png b/lib/viewers/pdf/images/toolbarButton-zoomIn.png
new file mode 100644
index 0000000..670acd9
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-zoomIn.png
Binary files differ
diff --git a/lib/viewers/pdf/images/toolbarButton-zoomOut.png b/lib/viewers/pdf/images/toolbarButton-zoomOut.png
new file mode 100644
index 0000000..810fbf9
--- /dev/null
+++ b/lib/viewers/pdf/images/toolbarButton-zoomOut.png
Binary files differ
diff --git a/lib/viewers/pdf/l10n.js b/lib/viewers/pdf/l10n.js
new file mode 100644
index 0000000..5435631
--- /dev/null
+++ b/lib/viewers/pdf/l10n.js
@@ -0,0 +1,922 @@
+/** Copyright (c) 2011-2012 Fabien Cazenave, Mozilla.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+/*
+ Additional modifications for PDF.js project:
+ - Disables language initialization on page loading;
+ - Adds fallback argument to the getL10nData;
+ - Removes consoleLog and simplifies consoleWarn;
+ - Removes window._ assignment.
+*/
+/*jshint browser: true, devel: true, es5: true, globalstrict: true */
+'use strict';
+
+document.webL10n = (function(window, document, undefined) {
+ var gL10nData = {};
+ var gTextData = '';
+ var gTextProp = 'textContent';
+ var gLanguage = '';
+ var gMacros = {};
+ var gReadyState = 'loading';
+
+ // read-only setting -- we recommend to load l10n resources synchronously
+ var gAsyncResourceLoading = true;
+
+ // debug helpers
+ function consoleWarn(message) {
+ console.log('[l10n] ' + message);
+ };
+
+ /**
+ * DOM helpers for the so-called "HTML API".
+ *
+ * These functions are written for modern browsers. For old versions of IE,
+ * they're overridden in the 'startup' section at the end of this file.
+ */
+
+ function getL10nResourceLinks() {
+ return document.querySelectorAll('link[type="application/l10n"]');
+ }
+
+ function getTranslatableChildren(element) {
+ return element ? element.querySelectorAll('*[data-l10n-id]') : [];
+ }
+
+ function getL10nAttributes(element) {
+ if (!element)
+ return {};
+
+ var l10nId = element.getAttribute('data-l10n-id');
+ var l10nArgs = element.getAttribute('data-l10n-args');
+ var args = {};
+ if (l10nArgs) {
+ try {
+ args = JSON.parse(l10nArgs);
+ } catch (e) {
+ consoleWarn('could not parse arguments for #' + l10nId);
+ }
+ }
+ return { id: l10nId, args: args };
+ }
+
+ function fireL10nReadyEvent(lang) {
+ var evtObject = document.createEvent('Event');
+ evtObject.initEvent('localized', false, false);
+ evtObject.language = lang;
+ window.dispatchEvent(evtObject);
+ }
+
+
+ /**
+ * l10n resource parser:
+ * - reads (async XHR) the l10n resource matching `lang';
+ * - imports linked resources (synchronously) when specified;
+ * - parses the text data (fills `gL10nData' and `gTextData');
+ * - triggers success/failure callbacks when done.
+ *
+ * @param {string} href
+ * URL of the l10n resource to parse.
+ *
+ * @param {string} lang
+ * locale (language) to parse.
+ *
+ * @param {Function} successCallback
+ * triggered when the l10n resource has been successully parsed.
+ *
+ * @param {Function} failureCallback
+ * triggered when the an error has occured.
+ *
+ * @return {void}
+ * uses the following global variables: gL10nData, gTextData, gTextProp.
+ */
+
+ function parseResource(href, lang, successCallback, failureCallback) {
+ var baseURL = href.replace(/\/[^\/]*$/, '/');
+
+ // handle escaped characters (backslashes) in a string
+ function evalString(text) {
+ if (text.lastIndexOf('\\') < 0)
+ return text;
+ return text.replace(/\\\\/g, '\\')
+ .replace(/\\n/g, '\n')
+ .replace(/\\r/g, '\r')
+ .replace(/\\t/g, '\t')
+ .replace(/\\b/g, '\b')
+ .replace(/\\f/g, '\f')
+ .replace(/\\{/g, '{')
+ .replace(/\\}/g, '}')
+ .replace(/\\"/g, '"')
+ .replace(/\\'/g, "'");
+ }
+
+ // parse *.properties text data into an l10n dictionary
+ function parseProperties(text) {
+ var dictionary = [];
+
+ // token expressions
+ var reBlank = /^\s*|\s*$/;
+ var reComment = /^\s*#|^\s*$/;
+ var reSection = /^\s*\[(.*)\]\s*$/;
+ var reImport = /^\s*@import\s+url\((.*)\)\s*$/i;
+ var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; // TODO: escape EOLs with '\'
+
+ // parse the *.properties file into an associative array
+ function parseRawLines(rawText, extendedSyntax) {
+ var entries = rawText.replace(reBlank, '').split(/[\r\n]+/);
+ var currentLang = '*';
+ var genericLang = lang.replace(/-[a-z]+$/i, '');
+ var skipLang = false;
+ var match = '';
+
+ for (var i = 0; i < entries.length; i++) {
+ var line = entries[i];
+
+ // comment or blank line?
+ if (reComment.test(line))
+ continue;
+
+ // the extended syntax supports [lang] sections and @import rules
+ if (extendedSyntax) {
+ if (reSection.test(line)) { // section start?
+ match = reSection.exec(line);
+ currentLang = match[1];
+ skipLang = (currentLang !== '*') &&
+ (currentLang !== lang) && (currentLang !== genericLang);
+ continue;
+ } else if (skipLang) {
+ continue;
+ }
+ if (reImport.test(line)) { // @import rule?
+ match = reImport.exec(line);
+ loadImport(baseURL + match[1]); // load the resource synchronously
+ }
+ }
+
+ // key-value pair
+ var tmp = line.match(reSplit);
+ if (tmp && tmp.length == 3)
+ dictionary[tmp[1]] = evalString(tmp[2]);
+ }
+ }
+
+ // import another *.properties file
+ function loadImport(url) {
+ loadResource(url, function(content) {
+ parseRawLines(content, false); // don't allow recursive imports
+ }, false, false); // load synchronously
+ }
+
+ // fill the dictionary
+ parseRawLines(text, true);
+ return dictionary;
+ }
+
+ // load the specified resource file
+ function loadResource(url, onSuccess, onFailure, asynchronous) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, asynchronous);
+ if (xhr.overrideMimeType) {
+ xhr.overrideMimeType('text/plain; charset=utf-8');
+ }
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState == 4) {
+ if (xhr.status == 200 || xhr.status === 0) {
+ if (onSuccess)
+ onSuccess(xhr.responseText);
+ } else {
+ if (onFailure)
+ onFailure();
+ }
+ }
+ };
+ xhr.send(null);
+ }
+
+ // load and parse l10n data (warning: global variables are used here)
+ loadResource(href, function(response) {
+ gTextData += response; // mostly for debug
+
+ // parse *.properties text data into an l10n dictionary
+ var data = parseProperties(response);
+
+ // find attribute descriptions, if any
+ for (var key in data) {
+ var id, prop, index = key.lastIndexOf('.');
+ if (index > 0) { // an attribute has been specified
+ id = key.substring(0, index);
+ prop = key.substr(index + 1);
+ } else { // no attribute: assuming text content by default
+ id = key;
+ prop = gTextProp;
+ }
+ if (!gL10nData[id]) {
+ gL10nData[id] = {};
+ }
+ gL10nData[id][prop] = data[key];
+ }
+
+ // trigger callback
+ if (successCallback)
+ successCallback();
+ }, failureCallback, gAsyncResourceLoading);
+ };
+
+ // load and parse all resources for the specified locale
+ function loadLocale(lang, callback) {
+ clear();
+ gLanguage = lang;
+
+ // check all <link type="application/l10n" href="..." /> nodes
+ // and load the resource files
+ var langLinks = getL10nResourceLinks();
+ var langCount = langLinks.length;
+ if (langCount == 0) {
+ consoleWarn('no resource to load, early way out');
+ fireL10nReadyEvent(lang);
+ gReadyState = 'complete';
+ return;
+ }
+
+ // start the callback when all resources are loaded
+ var onResourceLoaded = null;
+ var gResourceCount = 0;
+ onResourceLoaded = function() {
+ gResourceCount++;
+ if (gResourceCount >= langCount) {
+ if (callback) // execute the [optional] callback
+ callback();
+ fireL10nReadyEvent(lang);
+ gReadyState = 'complete';
+ }
+ };
+
+ // load all resource files
+ function l10nResourceLink(link) {
+ var href = link.href;
+ var type = link.type;
+ this.load = function(lang, callback) {
+ var applied = lang;
+ parseResource(href, lang, callback, function() {
+ consoleWarn(href + ' not found.');
+ applied = '';
+ });
+ return applied; // return lang if found, an empty string if not found
+ };
+ }
+
+ for (var i = 0; i < langCount; i++) {
+ var resource = new l10nResourceLink(langLinks[i]);
+ var rv = resource.load(lang, onResourceLoaded);
+ if (rv != lang) { // lang not found, used default resource instead
+ consoleWarn('"' + lang + '" resource not found');
+ gLanguage = '';
+ }
+ }
+ }
+
+ // clear all l10n data
+ function clear() {
+ gL10nData = {};
+ gTextData = '';
+ gLanguage = '';
+ // TODO: clear all non predefined macros.
+ // There's no such macro /yet/ but we're planning to have some...
+ }
+
+
+ /**
+ * Get rules for plural forms (shared with JetPack), see:
+ * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
+ * https://github.com/mozilla/addon-sdk/blob/master/python-lib/plural-rules-generator.p
+ *
+ * @param {string} lang
+ * locale (language) used.
+ *
+ * @return {Function}
+ * returns a function that gives the plural form name for a given integer:
+ * var fun = getPluralRules('en');
+ * fun(1) -> 'one'
+ * fun(0) -> 'other'
+ * fun(1000) -> 'other'.
+ */
+
+ function getPluralRules(lang) {
+ var locales2rules = {
+ 'af': 3,
+ 'ak': 4,
+ 'am': 4,
+ 'ar': 1,
+ 'asa': 3,
+ 'az': 0,
+ 'be': 11,
+ 'bem': 3,
+ 'bez': 3,
+ 'bg': 3,
+ 'bh': 4,
+ 'bm': 0,
+ 'bn': 3,
+ 'bo': 0,
+ 'br': 20,
+ 'brx': 3,
+ 'bs': 11,
+ 'ca': 3,
+ 'cgg': 3,
+ 'chr': 3,
+ 'cs': 12,
+ 'cy': 17,
+ 'da': 3,
+ 'de': 3,
+ 'dv': 3,
+ 'dz': 0,
+ 'ee': 3,
+ 'el': 3,
+ 'en': 3,
+ 'eo': 3,
+ 'es': 3,
+ 'et': 3,
+ 'eu': 3,
+ 'fa': 0,
+ 'ff': 5,
+ 'fi': 3,
+ 'fil': 4,
+ 'fo': 3,
+ 'fr': 5,
+ 'fur': 3,
+ 'fy': 3,
+ 'ga': 8,
+ 'gd': 24,
+ 'gl': 3,
+ 'gsw': 3,
+ 'gu': 3,
+ 'guw': 4,
+ 'gv': 23,
+ 'ha': 3,
+ 'haw': 3,
+ 'he': 2,
+ 'hi': 4,
+ 'hr': 11,
+ 'hu': 0,
+ 'id': 0,
+ 'ig': 0,
+ 'ii': 0,
+ 'is': 3,
+ 'it': 3,
+ 'iu': 7,
+ 'ja': 0,
+ 'jmc': 3,
+ 'jv': 0,
+ 'ka': 0,
+ 'kab': 5,
+ 'kaj': 3,
+ 'kcg': 3,
+ 'kde': 0,
+ 'kea': 0,
+ 'kk': 3,
+ 'kl': 3,
+ 'km': 0,
+ 'kn': 0,
+ 'ko': 0,
+ 'ksb': 3,
+ 'ksh': 21,
+ 'ku': 3,
+ 'kw': 7,
+ 'lag': 18,
+ 'lb': 3,
+ 'lg': 3,
+ 'ln': 4,
+ 'lo': 0,
+ 'lt': 10,
+ 'lv': 6,
+ 'mas': 3,
+ 'mg': 4,
+ 'mk': 16,
+ 'ml': 3,
+ 'mn': 3,
+ 'mo': 9,
+ 'mr': 3,
+ 'ms': 0,
+ 'mt': 15,
+ 'my': 0,
+ 'nah': 3,
+ 'naq': 7,
+ 'nb': 3,
+ 'nd': 3,
+ 'ne': 3,
+ 'nl': 3,
+ 'nn': 3,
+ 'no': 3,
+ 'nr': 3,
+ 'nso': 4,
+ 'ny': 3,
+ 'nyn': 3,
+ 'om': 3,
+ 'or': 3,
+ 'pa': 3,
+ 'pap': 3,
+ 'pl': 13,
+ 'ps': 3,
+ 'pt': 3,
+ 'rm': 3,
+ 'ro': 9,
+ 'rof': 3,
+ 'ru': 11,
+ 'rwk': 3,
+ 'sah': 0,
+ 'saq': 3,
+ 'se': 7,
+ 'seh': 3,
+ 'ses': 0,
+ 'sg': 0,
+ 'sh': 11,
+ 'shi': 19,
+ 'sk': 12,
+ 'sl': 14,
+ 'sma': 7,
+ 'smi': 7,
+ 'smj': 7,
+ 'smn': 7,
+ 'sms': 7,
+ 'sn': 3,
+ 'so': 3,
+ 'sq': 3,
+ 'sr': 11,
+ 'ss': 3,
+ 'ssy': 3,
+ 'st': 3,
+ 'sv': 3,
+ 'sw': 3,
+ 'syr': 3,
+ 'ta': 3,
+ 'te': 3,
+ 'teo': 3,
+ 'th': 0,
+ 'ti': 4,
+ 'tig': 3,
+ 'tk': 3,
+ 'tl': 4,
+ 'tn': 3,
+ 'to': 0,
+ 'tr': 0,
+ 'ts': 3,
+ 'tzm': 22,
+ 'uk': 11,
+ 'ur': 3,
+ 've': 3,
+ 'vi': 0,
+ 'vun': 3,
+ 'wa': 4,
+ 'wae': 3,
+ 'wo': 0,
+ 'xh': 3,
+ 'xog': 3,
+ 'yo': 0,
+ 'zh': 0,
+ 'zu': 3
+ };
+
+ // utility functions for plural rules methods
+ function isIn(n, list) {
+ return list.indexOf(n) !== -1;
+ }
+ function isBetween(n, start, end) {
+ return start <= n && n <= end;
+ }
+
+ // list of all plural rules methods:
+ // map an integer to the plural form name to use
+ var pluralRules = {
+ '0': function(n) {
+ return 'other';
+ },
+ '1': function(n) {
+ if ((isBetween((n % 100), 3, 10)))
+ return 'few';
+ if (n === 0)
+ return 'zero';
+ if ((isBetween((n % 100), 11, 99)))
+ return 'many';
+ if (n == 2)
+ return 'two';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '2': function(n) {
+ if (n !== 0 && (n % 10) === 0)
+ return 'many';
+ if (n == 2)
+ return 'two';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '3': function(n) {
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '4': function(n) {
+ if ((isBetween(n, 0, 1)))
+ return 'one';
+ return 'other';
+ },
+ '5': function(n) {
+ if ((isBetween(n, 0, 2)) && n != 2)
+ return 'one';
+ return 'other';
+ },
+ '6': function(n) {
+ if (n === 0)
+ return 'zero';
+ if ((n % 10) == 1 && (n % 100) != 11)
+ return 'one';
+ return 'other';
+ },
+ '7': function(n) {
+ if (n == 2)
+ return 'two';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '8': function(n) {
+ if ((isBetween(n, 3, 6)))
+ return 'few';
+ if ((isBetween(n, 7, 10)))
+ return 'many';
+ if (n == 2)
+ return 'two';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '9': function(n) {
+ if (n === 0 || n != 1 && (isBetween((n % 100), 1, 19)))
+ return 'few';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '10': function(n) {
+ if ((isBetween((n % 10), 2, 9)) && !(isBetween((n % 100), 11, 19)))
+ return 'few';
+ if ((n % 10) == 1 && !(isBetween((n % 100), 11, 19)))
+ return 'one';
+ return 'other';
+ },
+ '11': function(n) {
+ if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
+ return 'few';
+ if ((n % 10) === 0 ||
+ (isBetween((n % 10), 5, 9)) ||
+ (isBetween((n % 100), 11, 14)))
+ return 'many';
+ if ((n % 10) == 1 && (n % 100) != 11)
+ return 'one';
+ return 'other';
+ },
+ '12': function(n) {
+ if ((isBetween(n, 2, 4)))
+ return 'few';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '13': function(n) {
+ if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14)))
+ return 'few';
+ if (n != 1 && (isBetween((n % 10), 0, 1)) ||
+ (isBetween((n % 10), 5, 9)) ||
+ (isBetween((n % 100), 12, 14)))
+ return 'many';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '14': function(n) {
+ if ((isBetween((n % 100), 3, 4)))
+ return 'few';
+ if ((n % 100) == 2)
+ return 'two';
+ if ((n % 100) == 1)
+ return 'one';
+ return 'other';
+ },
+ '15': function(n) {
+ if (n === 0 || (isBetween((n % 100), 2, 10)))
+ return 'few';
+ if ((isBetween((n % 100), 11, 19)))
+ return 'many';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '16': function(n) {
+ if ((n % 10) == 1 && n != 11)
+ return 'one';
+ return 'other';
+ },
+ '17': function(n) {
+ if (n == 3)
+ return 'few';
+ if (n === 0)
+ return 'zero';
+ if (n == 6)
+ return 'many';
+ if (n == 2)
+ return 'two';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '18': function(n) {
+ if (n === 0)
+ return 'zero';
+ if ((isBetween(n, 0, 2)) && n !== 0 && n != 2)
+ return 'one';
+ return 'other';
+ },
+ '19': function(n) {
+ if ((isBetween(n, 2, 10)))
+ return 'few';
+ if ((isBetween(n, 0, 1)))
+ return 'one';
+ return 'other';
+ },
+ '20': function(n) {
+ if ((isBetween((n % 10), 3, 4) || ((n % 10) == 9)) && !(
+ isBetween((n % 100), 10, 19) ||
+ isBetween((n % 100), 70, 79) ||
+ isBetween((n % 100), 90, 99)
+ ))
+ return 'few';
+ if ((n % 1000000) === 0 && n !== 0)
+ return 'many';
+ if ((n % 10) == 2 && !isIn((n % 100), [12, 72, 92]))
+ return 'two';
+ if ((n % 10) == 1 && !isIn((n % 100), [11, 71, 91]))
+ return 'one';
+ return 'other';
+ },
+ '21': function(n) {
+ if (n === 0)
+ return 'zero';
+ if (n == 1)
+ return 'one';
+ return 'other';
+ },
+ '22': function(n) {
+ if ((isBetween(n, 0, 1)) || (isBetween(n, 11, 99)))
+ return 'one';
+ return 'other';
+ },
+ '23': function(n) {
+ if ((isBetween((n % 10), 1, 2)) || (n % 20) === 0)
+ return 'one';
+ return 'other';
+ },
+ '24': function(n) {
+ if ((isBetween(n, 3, 10) || isBetween(n, 13, 19)))
+ return 'few';
+ if (isIn(n, [2, 12]))
+ return 'two';
+ if (isIn(n, [1, 11]))
+ return 'one';
+ return 'other';
+ }
+ };
+
+ // return a function that gives the plural form name for a given integer
+ var index = locales2rules[lang.replace(/-.*$/, '')];
+ if (!(index in pluralRules)) {
+ consoleWarn('plural form unknown for [' + lang + ']');
+ return function() { return 'other'; };
+ }
+ return pluralRules[index];
+ }
+
+ // pre-defined 'plural' macro
+ gMacros.plural = function(str, param, key, prop) {
+ var n = parseFloat(param);
+ if (isNaN(n))
+ return str;
+
+ // TODO: support other properties (l20n still doesn't...)
+ if (prop != gTextProp)
+ return str;
+
+ // initialize _pluralRules
+ if (!gMacros._pluralRules)
+ gMacros._pluralRules = getPluralRules(gLanguage);
+ var index = '[' + gMacros._pluralRules(n) + ']';
+
+ // try to find a [zero|one|two] key if it's defined
+ if (n === 0 && (key + '[zero]') in gL10nData) {
+ str = gL10nData[key + '[zero]'][prop];
+ } else if (n == 1 && (key + '[one]') in gL10nData) {
+ str = gL10nData[key + '[one]'][prop];
+ } else if (n == 2 && (key + '[two]') in gL10nData) {
+ str = gL10nData[key + '[two]'][prop];
+ } else if ((key + index) in gL10nData) {
+ str = gL10nData[key + index][prop];
+ }
+
+ return str;
+ };
+
+
+ /**
+ * l10n dictionary functions
+ */
+
+ // fetch an l10n object, warn if not found, apply `args' if possible
+ function getL10nData(key, args, fallback) {
+ var data = gL10nData[key];
+ if (!data) {
+ consoleWarn('#' + key + ' missing for [' + gLanguage + ']');
+ if (!fallback) {
+ return null;
+ }
+ data = fallback;
+ }
+
+ /** This is where l10n expressions should be processed.
+ * The plan is to support C-style expressions from the l20n project;
+ * until then, only two kinds of simple expressions are supported:
+ * {[ index ]} and {{ arguments }}.
+ */
+ var rv = {};
+ for (var prop in data) {
+ var str = data[prop];
+ str = substIndexes(str, args, key, prop);
+ str = substArguments(str, args);
+ rv[prop] = str;
+ }
+ return rv;
+ }
+
+ // replace {[macros]} with their values
+ function substIndexes(str, args, key, prop) {
+ var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/;
+ var reMatch = reIndex.exec(str);
+ if (!reMatch || !reMatch.length)
+ return str;
+
+ // an index/macro has been found
+ // Note: at the moment, only one parameter is supported
+ var macroName = reMatch[1];
+ var paramName = reMatch[2];
+ var param;
+ if (args && paramName in args) {
+ param = args[paramName];
+ } else if (paramName in gL10nData) {
+ param = gL10nData[paramName];
+ }
+
+ // there's no macro parser yet: it has to be defined in gMacros
+ if (macroName in gMacros) {
+ var macro = gMacros[macroName];
+ str = macro(str, param, key, prop);
+ }
+ return str;
+ }
+
+ // replace {{arguments}} with their values
+ function substArguments(str, args) {
+ var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/;
+ var match = reArgs.exec(str);
+ while (match) {
+ if (!match || match.length < 2)
+ return str; // argument key not found
+
+ var arg = match[1];
+ var sub = '';
+ if (arg in args) {
+ sub = args[arg];
+ } else if (arg in gL10nData) {
+ sub = gL10nData[arg][gTextProp];
+ } else {
+ consoleWarn('could not find argument {{' + arg + '}}');
+ return str;
+ }
+
+ str = str.substring(0, match.index) + sub +
+ str.substr(match.index + match[0].length);
+ match = reArgs.exec(str);
+ }
+ return str;
+ }
+
+ // translate an HTML element
+ function translateElement(element) {
+ var l10n = getL10nAttributes(element);
+ if (!l10n.id)
+ return;
+
+ // get the related l10n object
+ var data = getL10nData(l10n.id, l10n.args);
+ if (!data) {
+ consoleWarn('#' + l10n.id + ' missing for [' + gLanguage + ']');
+ return;
+ }
+
+ // translate element (TODO: security checks?)
+ // for the node content, replace the content of the first child textNode
+ // and clear other child textNodes
+ if (data[gTextProp]) { // XXX
+ if (element.children.length === 0) {
+ element[gTextProp] = data[gTextProp];
+ } else {
+ var children = element.childNodes,
+ found = false;
+ for (var i = 0, l = children.length; i < l; i++) {
+ if (children[i].nodeType === 3 &&
+ /\S/.test(children[i].textContent)) { // XXX
+ // using nodeValue seems cross-browser
+ if (found) {
+ children[i].nodeValue = '';
+ } else {
+ children[i].nodeValue = data[gTextProp];
+ found = true;
+ }
+ }
+ }
+ if (!found) {
+ consoleWarn('unexpected error, could not translate element content');
+ }
+ }
+ delete data[gTextProp];
+ }
+
+ for (var k in data) {
+ element[k] = data[k];
+ }
+ }
+
+ // translate an HTML subtree
+ function translateFragment(element) {
+ element = element || document.documentElement;
+
+ // check all translatable children (= w/ a `data-l10n-id' attribute)
+ var children = getTranslatableChildren(element);
+ var elementCount = children.length;
+ for (var i = 0; i < elementCount; i++) {
+ translateElement(children[i]);
+ }
+
+ // translate element itself if necessary
+ translateElement(element);
+ }
+
+ // cross-browser API (sorry, oldIE doesn't support getters & setters)
+ return {
+ // get a localized string
+ get: function(key, args, fallback) {
+ var data = getL10nData(key, args, {textContent: fallback});
+ if (data) { // XXX double-check this
+ return 'textContent' in data ? data.textContent : '';
+ }
+ return '{{' + key + '}}';
+ },
+
+ // debug
+ getData: function() { return gL10nData; },
+ getText: function() { return gTextData; },
+
+ // get|set the document language
+ getLanguage: function() { return gLanguage; },
+ setLanguage: function(lang) { loadLocale(lang, translateFragment); },
+
+ // get the direction (ltr|rtl) of the current language
+ getDirection: function() {
+ // http://www.w3.org/International/questions/qa-scripts
+ // Arabic, Hebrew, Farsi, Pashto, Urdu
+ var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];
+ return (rtlList.indexOf(gLanguage) >= 0) ? 'rtl' : 'ltr';
+ },
+
+ // translate an element or document fragment
+ translate: translateFragment,
+
+ // this can be used to prevent race conditions
+ getReadyState: function() { return gReadyState; }
+ };
+
+}) (window, document);
diff --git a/lib/viewers/pdf/locale/ar/metadata.inc b/lib/viewers/pdf/locale/ar/metadata.inc
new file mode 100644
index 0000000..f1a7106
--- /dev/null
+++ b/lib/viewers/pdf/locale/ar/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ar</em:locale>
+ <em:name>عارض PDF</em:name>
+ <em:description>يستخدم HTML5 لعرض ملفات PDF مباشره من خلال Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ar/viewer.properties b/lib/viewers/pdf/locale/ar/viewer.properties
new file mode 100644
index 0000000..988abec
--- /dev/null
+++ b/lib/viewers/pdf/locale/ar/viewer.properties
@@ -0,0 +1,108 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=الصفحة السابقة
+previous_label=السابق
+next.title=الصفحة التاليه
+next_label=التالي
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=الصفحة:
+page_of=من {{pageCount}}
+
+zoom_out.title=تصغير
+zoom_out_label=تصغير
+zoom_in.title=تكبير
+zoom_in_label=تكبير
+zoom.title=التكبير
+print.title=طباعة
+print_label=طباعة
+fullscreen.title=ملء الشاشة
+fullscreen_label=ملء الشاشة
+open_file.title=فتح الملف
+open_file_label=فتح
+download.title=تحميل
+download_label=تحميل
+bookmark.title=المشهد الحالي (نسخ أو فتح في نافذة جديدة)
+bookmark_label=المشهد الحالي
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_slider.title=تبديل الزلاق
+toggle_slider_label=تبديل الزلاق
+outline.title=إظهار ملخص المستند
+outline_label=ملخص المستند
+thumbs.title=إظهار الصور المصغرة
+thumbs_label=الصور المصغرة
+findbar.title=البحث في المستند
+findbar_label=بحث
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=الصفحة {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=صورة مصغرة من الصفحة {{page}}
+
+# Context menu
+page_rotate_cw.label=تدوير مع عقارب الساعة
+page_rotate_ccw.label=تدوير عكس عقارب الساعة
+
+# Find panel button title and messages
+find=بحث
+find_terms_not_found=(لا يوجد)
+
+# Error panel labels
+error_more_info=مزيد من المعلومات
+error_less_info=معلومات أقل
+error_close=إغلاق
+# LOCALIZATION NOTE (error_build): "{{build}}" will be replaced by the PDF.JS
+# build ID.
+error_build=بناء PDF.JS: {{build}}
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=رسالة: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=المكدس: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=الملف: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=السطر: {{line}}
+rendering_error=حدث خطأ اثناء رسم الصفحة.
+
+# Predefined zoom values
+page_scale_width=عرض الصفحة
+page_scale_fit=تناسب الصفحة
+page_scale_auto=تقريب تلقائي
+page_scale_actual=الحجم الحقيقي
+
+# Loading indicator messages
+loading_error_indicator=خطأ
+loading_error=حدث خطأ أثناء تحميل وثيقه الـPDF
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[ملاحظة {{type}}]
+request_password=الـPDF محمي بكلمة مرور:
+
+printing_not_supported=تحذير: الطباعة ليست مدعومة كليًا في هذا المتصفح.
diff --git a/lib/viewers/pdf/locale/ca/chrome.properties b/lib/viewers/pdf/locale/ca/chrome.properties
new file mode 100644
index 0000000..2fb6413
--- /dev/null
+++ b/lib/viewers/pdf/locale/ca/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=No es pot visualitzar el docuement.
+open_with_different_viewer=Obri-ho amb un altre visor.
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/ca/metadata.inc b/lib/viewers/pdf/locale/ca/metadata.inc
new file mode 100644
index 0000000..30ca643
--- /dev/null
+++ b/lib/viewers/pdf/locale/ca/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ca</em:locale>
+ <em:name>Visor d'arxius PDF</em:name>
+ <em:description>HTML5 per veure documents</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ca/viewer.properties b/lib/viewers/pdf/locale/ca/viewer.properties
new file mode 100644
index 0000000..84b515d
--- /dev/null
+++ b/lib/viewers/pdf/locale/ca/viewer.properties
@@ -0,0 +1,124 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Pàgina anterior
+previous_label=Anterior
+next.title=Pàgina següent
+next_label=Següent
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Pàgina:
+page_of=de {{pageCount}}
+
+zoom_out.title=Reduir
+zoom_out_label=Reduir
+zoom_in.title=Ampliar
+zoom_in_label=Ampliar
+zoom.title=Ampliació
+print.title=Imprimir
+print_label=Imprimir
+fullscreen.title=Pantalla completa
+fullscreen_label=Pantalla completa
+presentation_mode.title=Canviar a mode de Presentació
+presentation_mode_label=Mode de Presentació
+open_file.title=Obrir arxiu
+open_file_label=Obrir
+download.title=Descarregar
+download_label=Descarregar
+bookmark.title=Vista actual (copiï o obri en una finestra nova)
+bookmark_label=Vista actual
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_slider.title=Alternar lliscador
+toggle_slider_label=Alternar lliscador
+outline.title=Mostrar esquema del document
+outline_label=Esquema del document
+thumbs.title=Mostrar miniatures
+thumbs_label=Miniatures
+findbar.title=Cercar en el document
+findbar_label=Cercar
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pàgina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura de la pàgina {{page}}
+
+# Find panel button title and messages
+find=Cercar
+find_terms_not_found=(No trobat)
+# Context menu
+first_page.label=Primera pàgina
+last_page.label=Darrera pàgina
+page_rotate_cw.label=Rotar sentit horari
+page_rotate_ccw.label=Rotar sentit anti-horari
+
+# Find panel button title and messages
+find_label=Cerca:
+find_previous.title=Trobar ocurrència anterior
+find_previous_label=Previ
+find_next.title=Trobar ocurrència posterior
+find_next_label=Següent
+find_highlight=Contrastar tot
+find_match_case_label=Majúscules i minúscules
+find_wrapped_to_bottom=Part superior assolida, continu a la part inferior
+find_wrapped_to_top=Final de pàgina finalitzada, continu a la part superior
+find_not_found=Frase no trobada
+
+# Error panel labels
+error_more_info=Més informació
+error_less_info=Menys informació
+error_close=Tancar
+# LOCALIZATION NOTE (error_build): "{{build}}" will be replaced by the PDF.JS
+# build ID.
+error_build=Compilació de PDF.JS: {{build}}
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Missatge: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Pila: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Arxiu: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Línia: {{line}}
+rendering_error=Ha ocurregut un error mentre es renderitzava la pàgina.
+
+# Predefined zoom values
+page_scale_width=Ample de pàgina
+page_scale_fit=Ajustar a la pàgina
+page_scale_auto=Ampliació automàtica
+page_scale_actual=Tamany real
+
+# Loading indicator messages
+loading_error_indicator=Error
+loading_error=Ha ocorregut un error mentres es carregava el PDF.
+invalid_file_error=Invàlid o fitxer PDF corrupte.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[Anotació {{type}}]
+request_password=El PDF està protegit amb una contrasenya:
+
+printing_not_supported=Avís: La impressió no és compatible totalment en aquest navegador.
diff --git a/lib/viewers/pdf/locale/cs/metadata.inc b/lib/viewers/pdf/locale/cs/metadata.inc
new file mode 100644
index 0000000..ed5c2a1
--- /dev/null
+++ b/lib/viewers/pdf/locale/cs/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>cs</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Používá HTML5 pro zobrazení PDF souborů přímo ve Firefoxu.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/cs/viewer.properties b/lib/viewers/pdf/locale/cs/viewer.properties
new file mode 100644
index 0000000..83f12b2
--- /dev/null
+++ b/lib/viewers/pdf/locale/cs/viewer.properties
@@ -0,0 +1,58 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Aktuální zobrazení (zkopírovat nebo otevřít v novém okně)
+previous.title=Předchozí stránka
+next.title=Další stránka
+print.title=Tisk
+download.title=Stáhnout
+zoom_out.title=Zmenšit
+zoom_in.title=Zvětšit
+error_more_info=Více informací
+error_less_info=Méně informací
+error_close=Zavřít
+error_build=PDF.JS Build: {{build}}
+error_message=Zpráva:{{message}}
+error_stack=Stack:{{stack}}
+error_file=Soubor:{{file}}
+error_line=Řádek:{{line}}
+page_scale_width=Šířka stránky
+page_scale_fit=Stránka
+page_scale_auto=Automatické přibližení
+page_scale_actual=Skutečná velikost
+toggle_slider.title=Přepnout posuvník
+thumbs.title=Zobrazit náhledy
+outline.title=Zobrazit osnovu dokumentu
+loading=Načítám... {{percent}}%
+loading_error_indicator=Chyba
+loading_error=Došlo k chybě při načítání PDF.
+rendering_error=Došlo k chybě při vykreslování stránky.
+page_label=Stránka:
+page_of=z{{pageCount}}
+open_file.title=Otevřít soubor
+text_annotation_type=[{{type}}Anotace]
+toggle_slider_label=Přepnout posuvník
+thumbs_label=Náhledy
+outline_label=Přehled dokumentu
+bookmark_label=Aktuální zobrazení
+previous_label=Předchozí
+next_label=Další
+print_label=Tisk
+download_label=Stáhnout
+zoom_out_label=Zmenšit
+zoom_in_label=Přiblížit
+zoom.title=Zvětšit
+thumb_page_title=Stránka{{page}}
+thumb_page_canvas=Náhled stránky {{page}}
+request_password=PDF je chráněn heslem:
diff --git a/lib/viewers/pdf/locale/da/chrome.properties b/lib/viewers/pdf/locale/da/chrome.properties
new file mode 100644
index 0000000..24c943b
--- /dev/null
+++ b/lib/viewers/pdf/locale/da/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notifikationsbar beskeder og knapper
+unsupported_feature=Denne PDF bliver måske ikke vist korrekt
+open_with_different_viewer=Åbn med en anden PDF-fremviser
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/da/metadata.inc b/lib/viewers/pdf/locale/da/metadata.inc
new file mode 100644
index 0000000..58b76b6
--- /dev/null
+++ b/lib/viewers/pdf/locale/da/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>da</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Benytter HTML5 til at vise PDF-filer direkte i Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/da/viewer.properties b/lib/viewers/pdf/locale/da/viewer.properties
new file mode 100644
index 0000000..376affe
--- /dev/null
+++ b/lib/viewers/pdf/locale/da/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Værktøjslinje knapper (tooltups og billedtekster)
+previous.title=Forrige
+previous_label=Forrige
+next.title=Næste
+next_label=Næste
+
+# Oversættelsesnote:
+# Disse tekststrenge bliver sammensat i formen "Side: X af Y"
+# Oversæt ikke "{{pageCount}}", det er en variabel og vil blive erstattet
+# med det egentlig antal sider i PDF filen
+page_label=Side:
+page_of=af {{pageCount}}
+
+zoom_out.title=Zoom ud
+zoom_out_label=Zoom ud
+zoom_in.title=Zoom ind
+zoom_in_label=Zoom ind
+zoom.title=Zoom
+print_label=Udskriv
+print.title=Udskriv
+fullscreen.title=Fuldskærm
+fullscreen_label=Fuldskærm
+open_file.title=Åbn fil
+open_file_label=Åbn
+download.title=Hent
+download_label=Hent
+bookmark.title=Aktuel visning (kopier eller åbn i et nyt vindue)
+bookmark_label=Aktuel visning
+
+# Tooltips of alternativ billedtekst til sidepanelet
+# (_label strengene er den alternative billedtekst, mens .title
+# strengene er tooltips
+toggle_slider.title=Skift slider
+toggle_slider_label=Skift slider
+outline.title=Vis dokumentoversigt
+outline_label=Dokumentoversigt
+thumbs.title=Vis thumbnails
+thumbs_label=Thumbnails
+findbar.title=Søg i dokumentet
+findbar_label=Søg
+
+# Thumbnails panelet (tooltips og alt. billedtekst)
+# Oversættelsesnote: "{{page}}" vil blive erstattet af det
+# egentlige sidetal
+thumb_page_title=Side {{page}}
+# Oversættelsesnote: "{{page}}" vil blive erstattet af det
+# egentlige sidetal
+thumb_page_canvas=Thumbnail af side {{page}}
+
+# Popup menu
+first_page.label=Gå til første side
+last_page.label=Gå til sidste side
+page_rotate_cw.label=Rotér med uret
+page_rotate_ccw.label=Roéer mod uret
+
+# Søgepanelet samt knapper og beskeder
+find_label=Find:
+find_previous.title=Find den forrige forekomst
+find_previous_label=Forrige
+find_next.title=Find den næste forekomst
+find_next_label=Næste
+find_highlight=Fremhæv alle forekomster
+find_match_case_label=Forskel på store og små bogstaver
+find_reached_top=Toppen af siden blev nået, fortsatte fra bunden
+find_reached_bottom=Bunden af siden blev nået, fortsatte fra toppen
+find_not_found=Der blev ikke fundet noget
+
+# Fejlpanel
+error_more_info=Mere information
+error_less_info=Mindre information
+error_close=Luk
+# Oversættelsesnote: "{{version}}" og "{{build}}" vil blive erstattet af
+# PDF.JS versionen og build ID
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# Oversættelsesnote: "{{message}}" vil blive erstattet af
+# en (engelsk) fejlbesked
+error_message=Besked: {{message}}
+# Oversættelsesnote: "{{stack}}" vil blive erstattet af et stack trace
+#
+error_stack=Stak: {{stack}}
+# Oversættelsesnote: "{{file}}" vil blive erstattet af et filnavn
+error_file=Fil: {{file}}
+# Oversættelsesnote: "{{line}}" vil blive erstattet af et linjetal
+error_line=Linje: {{line}}
+rendering_error=Der skete en fejl under gengivelsen af PDF-filen
+
+# Prædefinerede zoom værdier
+page_scale_width=Sidebredde
+page_scale_fit=Helside
+page_scale_auto=Automatisk zoom
+page_scale_actual=Faktisk størrelse
+
+# Indlæsningsindikator (load ikon)
+loading_error_indicator=Fejl
+loading_error=Der skete en fejl under indlæsningen af PDF-filen
+invalid_file_error=Ugyldig eller beskadiget PDF-fil
+missing_file_error=Manglende PDF-fil
+
+# Oversættelsesnote: Dette vil blive brugt som et tooltip
+# "{{type}}" vil blive ersattet af en kommentar type fra en liste
+# defineret i PDF specifikationen (32000-1:2008 Table 169 – Annotation types).
+# Nogle almindelige typer er f.eks.: "Check", "Text", "Comment" og "Note"
+text_annotation_type=[{{type}} Kommentar]
+request_password=PDF filen er beskyttet med et kodeord:
+
+printing_not_supported=Advarsel: Denne browser er ikke fuldt understøttet ved udskrift.
+printing_not_ready=Advarsel: PDF-filen er ikke helt klar til udskrivning.
+web_fonts_disabled=Web skrifttyper er slået fra: kan ikke benytte de indlejrede skrifttyper.
+web_colors_disabled=Web farver are slået fra.
diff --git a/lib/viewers/pdf/locale/de/metadata.inc b/lib/viewers/pdf/locale/de/metadata.inc
new file mode 100644
index 0000000..d934291
--- /dev/null
+++ b/lib/viewers/pdf/locale/de/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>de</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Nutzt HTML5 um PDFs direkt in Firefox anzuzeigen.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/de/viewer.properties b/lib/viewers/pdf/locale/de/viewer.properties
new file mode 100644
index 0000000..d1be81f
--- /dev/null
+++ b/lib/viewers/pdf/locale/de/viewer.properties
@@ -0,0 +1,120 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Eine Seite zurück
+previous_label=Zurück
+next.title=Eine Seite vor
+next_label=Vor
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Seite:
+page_of=von {{pageCount}}
+
+zoom_out.title=Verkleinern
+zoom_out_label=Verkleinern
+zoom_in.title=Vergrößern
+zoom_in_label=Vergrößern
+zoom.title=Zoom
+print.title=Drucken
+print_label=Drucken
+presentation_mode.title=Zum Präsentationsmodus wechseln
+presentation_mode_label=Bildschirmpräsentation
+open_file.title=Datei öffnen
+open_file_label=Öffnen
+download.title=Herunterladen
+download_label=Herunterladen
+bookmark.title=Aktuelle Ansicht (Kopieren oder in einem neuen Fenster öffnen)
+bookmark_label=Aktuelle Ansicht
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_slider.title=Seitenleiste anzeigen
+toggle_slider_label=Seitenleiste
+outline.title=Zeige Inhaltsverzeichnis
+outline_label=Inhaltsverzeichnis
+thumbs.title=Zeige Vorschaubilder
+thumbs_label=Vorschaubilder
+findbar.title=Im Dokument suchen
+findbar_label=Suchen
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Seite {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Vorschau von Seite {{page}}
+
+# Context menu
+first_page.label=Erste Seite
+last_page.label=Letzte Seite
+page_rotate_cw.label=Im Uhrzeigersinn drehen
+page_rotate_ccw.label=Entgegen dem Uhrzeigersinn drehen
+
+# Find panel button title and messages
+find_label=Suchen:
+find_previous.title=Das vorherige Auftreten des Ausdrucks suchen
+find_previous_label=Aufwärts
+find_next.title=Das nächste Auftreten des Ausdrucks suchen
+find_next_label=Abwärts
+find_highlight=Hervorheben
+find_match_case_label=Groß-/Kleinschreibung
+find_reached_top=Der Anfang des Dokuments wurde erreicht, Suche am Ende des Dokuments fortgesetzt
+find_reached_bottom=Das Ende des Dokuments wurde erreicht, Suche am Anfang des Dokuments fortgesetzt
+find_not_found=Ausdruck nicht gefunden
+
+# Error panel labels
+error_more_info=Mehr Info
+error_less_info=Weniger Info
+error_close=Schließen
+# LOCALIZATION NOTE (error_build): "{{build}}" will be replaced by the PDF.JS
+# build ID.
+error_build=PDF.JS Build: {{build}}
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Nachricht: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stack: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Datei: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Zeile: {{line}}
+rendering_error=Das PDF konnte nicht angezeigt werden.
+
+# Predefined zoom values
+page_scale_width=Seitenbreite
+page_scale_fit=Ganze Seite
+page_scale_auto=Automatisch
+page_scale_actual=Originalgröße
+
+# Loading indicator messages
+loading_error_indicator=Fehler
+loading_error=Das PDF konnte nicht geladen werden.
+invalid_file_error=Ungültige oder beschädigte PDF-Datei.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Annotation]
+request_password=Das PDF ist passwortgeschützt:
+
+printing_not_supported=Warnung: Drucken wird durch diesen Browser nicht vollständig unterstützt.
+web_fonts_disabled=Webfonts sind deaktiviert: Eingebundene PDF-Schriftarten können nicht verwendet werden.
diff --git a/lib/viewers/pdf/locale/en-US/chrome.properties b/lib/viewers/pdf/locale/en-US/chrome.properties
new file mode 100644
index 0000000..0b46919
--- /dev/null
+++ b/lib/viewers/pdf/locale/en-US/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=This PDF document might not be displayed correctly.
+open_with_different_viewer=Open With Different Viewer
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/en-US/metadata.inc b/lib/viewers/pdf/locale/en-US/metadata.inc
new file mode 100644
index 0000000..8d9d94b
--- /dev/null
+++ b/lib/viewers/pdf/locale/en-US/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>en-US</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Uses HTML5 to display PDF files directly in Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/en-US/viewer.properties b/lib/viewers/pdf/locale/en-US/viewer.properties
new file mode 100644
index 0000000..e0d25ac
--- /dev/null
+++ b/lib/viewers/pdf/locale/en-US/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Previous Page
+previous_label=Previous
+next.title=Next Page
+next_label=Next
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Page:
+page_of=of {{pageCount}}
+
+zoom_out.title=Zoom Out
+zoom_out_label=Zoom Out
+zoom_in.title=Zoom In
+zoom_in_label=Zoom In
+zoom.title=Zoom
+print.title=Print
+print_label=Print
+presentation_mode.title=Switch to Presentation Mode
+presentation_mode_label=Presentation Mode
+open_file.title=Open File
+open_file_label=Open
+download.title=Download
+download_label=Download
+bookmark.title=Current view (copy or open in new window)
+bookmark_label=Current View
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Toggle Sidebar
+toggle_sidebar_label=Toggle Sidebar
+outline.title=Show Document Outline
+outline_label=Document Outline
+thumbs.title=Show Thumbnails
+thumbs_label=Thumbnails
+findbar.title=Find in Document
+findbar_label=Find
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Thumbnail of Page {{page}}
+
+# Context menu
+first_page.label=Go to First Page
+last_page.label=Go to Last Page
+page_rotate_cw.label=Rotate Clockwise
+page_rotate_ccw.label=Rotate Counterclockwise
+
+# Find panel button title and messages
+find_label=Find:
+find_previous.title=Find the previous occurrence of the phrase
+find_previous_label=Previous
+find_next.title=Find the next occurrence of the phrase
+find_next_label=Next
+find_highlight=Highlight all
+find_match_case_label=Match case
+find_reached_top=Reached top of document, continued from bottom
+find_reached_bottom=Reached end of document, continued from top
+find_not_found=Phrase not found
+
+# Error panel labels
+error_more_info=More Information
+error_less_info=Less Information
+error_close=Close
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Message: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stack: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=File: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Line: {{line}}
+rendering_error=An error occurred while rendering the page.
+
+# Predefined zoom values
+page_scale_width=Page Width
+page_scale_fit=Page Fit
+page_scale_auto=Automatic Zoom
+page_scale_actual=Actual Size
+
+# Loading indicator messages
+loading_error_indicator=Error
+loading_error=An error occurred while loading the PDF.
+invalid_file_error=Invalid or corrupted PDF file.
+missing_file_error=Missing PDF file.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Annotation]
+request_password=PDF is protected by a password:
+
+printing_not_supported=Warning: Printing is not fully supported by this browser.
+printing_not_ready=Warning: The PDF is not fully loaded for printing.
+web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
+web_colors_disabled=Web colors are disabled.
diff --git a/lib/viewers/pdf/locale/es/chrome.properties b/lib/viewers/pdf/locale/es/chrome.properties
new file mode 100644
index 0000000..31c3618
--- /dev/null
+++ b/lib/viewers/pdf/locale/es/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Es posible que este documento PDF no se muestre correctamente.
+open_with_different_viewer=Abrir con un visor diferente
+open_with_different_viewer.accessKey=a
diff --git a/lib/viewers/pdf/locale/es/metadata.inc b/lib/viewers/pdf/locale/es/metadata.inc
new file mode 100644
index 0000000..9cc5ed6
--- /dev/null
+++ b/lib/viewers/pdf/locale/es/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>es</em:locale>
+ <em:name>Visor de PDF</em:name>
+ <em:description>Usa HTML5 para mostrar archivos PDF directamente en Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/es/viewer.properties b/lib/viewers/pdf/locale/es/viewer.properties
new file mode 100644
index 0000000..059eed6
--- /dev/null
+++ b/lib/viewers/pdf/locale/es/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Página anterior
+previous_label=Anterior
+next.title=Página siguiente
+next_label=Siguiente
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Página:
+page_of=de {{pageCount}}
+
+zoom_out.title=Reducir
+zoom_out_label=Reducir
+zoom_in.title=Aumentar
+zoom_in_label=Aumentar
+zoom.title=Ampliación
+print.title=Imprimir
+print_label=Imprimir
+presentation_mode.title=Cambiar al modo de presentación
+presentation_mode_label=Modo de presentación
+open_file.title=Abrir un archivo
+open_file_label=Abrir
+download.title=Descargar
+download_label=Descargar
+bookmark.title=Vista actual (copie o abra en una ventana nueva)
+bookmark_label=Vista actual
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Mostrar u ocultar la barra lateral
+toggle_sidebar_label=Conmutar la barra lateral
+outline.title=Mostrar el esquema del documento
+outline_label=Esquema del documento
+thumbs.title=Mostrar las miniaturas
+thumbs_label=Miniaturas
+findbar.title=Buscar en el documento
+findbar_label=Buscar
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Página {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura de la página {{page}}
+
+# Context menu
+first_page.label=Ir a la primera página
+last_page.label=Ir a la última página
+page_rotate_cw.label=Girar a la derecha
+page_rotate_ccw.label=Girar a la izquierda
+
+# Find panel button title and messages
+find_label=Buscar:
+find_previous.title=Ir a la frase encontrada anterior
+find_previous_label=Anterior
+find_next.title=Ir a la frase encontrada siguiente
+find_next_label=Siguiente
+find_highlight=Resaltar todo
+find_match_case_label=Coincidir mayúsculas y minúsculas
+find_reached_top=Se alcanzó el inicio del documento, se continúa desde el final
+find_reached_bottom=Se alcanzó el final del documento, se continúa desde el inicio
+find_not_found=No se encontró la frase
+
+# Error panel labels
+error_more_info=Más información
+error_less_info=Menos información
+error_close=Cerrar
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (compilación: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Mensaje: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Pila: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Archivo: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Línea: {{line}}
+rendering_error=Ocurrió un error al renderizar la página.
+
+# Predefined zoom values
+page_scale_width=Anchura de la página
+page_scale_fit=Ajustar a la página
+page_scale_auto=Ampliación automática
+page_scale_actual=Tamaño real
+
+# Loading indicator messages
+loading_error_indicator=Error
+loading_error=Ocurrió un error al cargar el PDF.
+invalid_file_error=El archivo PDF no es válido o está dañado.
+missing_file_error=Falta el archivo PDF.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[Anotación {{type}}]
+request_password=El archivo PDF está protegido por una contraseña:
+
+printing_not_supported=Aviso: Este navegador no es compatible completamente con la impresión.
+printing_not_ready=Aviso: El PDF no se ha cargado completamente para su impresión.
+web_fonts_disabled=Se han desactivado los tipos de letra web: no se pueden usar los tipos de letra incrustados en el PDF.
+web_colors_disabled=Se han desactivado los colores web.
diff --git a/lib/viewers/pdf/locale/fi/chrome.properties b/lib/viewers/pdf/locale/fi/chrome.properties
new file mode 100644
index 0000000..529da81
--- /dev/null
+++ b/lib/viewers/pdf/locale/fi/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Tämä PDF-asiakirja ei ehkä näy oikeanlaisena.
+open_with_different_viewer=Avaa toisella ohjelmalla
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/fi/metadata.inc b/lib/viewers/pdf/locale/fi/metadata.inc
new file mode 100644
index 0000000..1b8d8b6
--- /dev/null
+++ b/lib/viewers/pdf/locale/fi/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>fi</em:locale>
+ <em:name>PDF Lukuohjelma</em:name>
+ <em:description>Näyttää PDF tiedostot suoraan Firefox:ssa HTML5:n avulla.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/fi/viewer.properties b/lib/viewers/pdf/locale/fi/viewer.properties
new file mode 100644
index 0000000..f8cb93f
--- /dev/null
+++ b/lib/viewers/pdf/locale/fi/viewer.properties
@@ -0,0 +1,121 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Edellinen sivu
+previous_label=Edellinen
+next.title=Seuraava sivu
+next_label=Seuraava
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Sivu:
+page_of=/ {{pageCount}}
+
+zoom_out.title=Suurenna
+zoom_out_label=Suurenna
+zoom_in.title=Pienennä
+zoom_in_label=Pienennä
+zoom.title=Sivun suurennus
+print.title=Tulosta
+print_label=Tulosta
+presentation_mode.title=Esitystila
+presentation_mode_label=Esitystila
+open_file.title=Avaa tiedosto
+open_file_label=Avaa
+download.title=Lataa
+download_label=Lataa
+bookmark.title=Nykyinen näkymä (kopioi tai avaa uuteen ikkunaan)
+bookmark_label=Nykyinen näkymä
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Vaihda sivunäkymä
+toggle_sidebar_label=Vaihda sivunäkymä
+outline.title=Näytä asiakirjan jäsennys
+outline_label=Asiakirjan jäsennys
+thumbs.title=Näytä esikatselukuvat
+thumbs_label=Esikatselukuvat
+findbar.title=Etsi asiakirjasta
+findbar_label=Etsi
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Sivu {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Sivun {{page}} esikatselukuva
+
+# Context menu
+first_page.label=Ensimmäinen sivu
+last_page.label=Viimeinen sivu
+page_rotate_cw.label=Kierrä myötäpäivään
+page_rotate_ccw.label=Kierrä vastapäivään
+
+# Find panel button title and messages
+find_label=Etsi
+find_previous.title=Etsi edellinen
+find_previous_label=Edellinen
+find_next.title=Etsi seuraava
+find_next_label=Seuraava
+find_highlight=Korosta kaikki hakutulokset
+find_match_case_label=Hae täysin samanlaisia
+find_reached_top=Asiakirjan alku saavutettiin, jatkettiin lopusta
+find_reached_bottom=Asiakirjan loppu saavutettiin, jatkettiin alusta
+find_not_found=Ei löytynyt
+
+# Error panel labels
+error_more_info=Enemmän tietoa
+error_less_info=Vähemmän tietoa
+error_close=Sulje
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (rakennus: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Viesti: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Kutsupino: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Tiedosto: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Rivi: {{line}}
+rendering_error=Virhe on tapahtunut sivua mallintaessa.
+
+# Predefined zoom values
+page_scale_width=Sivun leveys
+page_scale_fit=Sivun sovitus
+page_scale_auto=Automaatinen sivun suurennus
+page_scale_actual=Todellinen koko
+
+# Loading indicator messages
+loading_error_indicator=Virhe
+loading_error=Virhe on tapahtunut PDF:ää ladattaessa.
+invalid_file_error=Virheellinen tai vioittunut PDF tiedosto.
+missing_file_error=PDF tiedostoa ei löytynyt.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Selite]
+request_password=PDF on salasanasuojattu:
+
+printing_not_supported=Varoitus: Tämä selain ei täysin tue tulostusta.
+web_fonts_disabled=Web fontit ovat poissa käytöstä: upotettuja PDF fontteja ei voida käyttää.
diff --git a/lib/viewers/pdf/locale/fr/chrome.properties b/lib/viewers/pdf/locale/fr/chrome.properties
new file mode 100644
index 0000000..2e354ff
--- /dev/null
+++ b/lib/viewers/pdf/locale/fr/chrome.properties
@@ -0,0 +1,17 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+unsupported_feature=Il est possible que ce document PDF ne s'affiche pas correctement.
+open_with_different_viewer=Ouvrir avec un autre lecteur PDF
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/fr/metadata.inc b/lib/viewers/pdf/locale/fr/metadata.inc
new file mode 100644
index 0000000..874e93a
--- /dev/null
+++ b/lib/viewers/pdf/locale/fr/metadata.inc
@@ -0,0 +1,7 @@
+ <em:localized>
+ <Description>
+ <em:locale>fr</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Utilise HTML5 pour afficher les documents PDF directement dans Firefox.</em:description>
+ </Description>
+ </em:localized>
diff --git a/lib/viewers/pdf/locale/fr/viewer.properties b/lib/viewers/pdf/locale/fr/viewer.properties
new file mode 100644
index 0000000..cdd1989
--- /dev/null
+++ b/lib/viewers/pdf/locale/fr/viewer.properties
@@ -0,0 +1,122 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Page précédente
+previous_label=Précédent
+next.title=Page suivante
+next_label=Suivant
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Page :
+page_of=sur {{pageCount}}
+
+zoom_out.title=Zoom arrière
+zoom_out_label=Zoom arrière
+zoom_in.title=Zoom avant
+zoom_in_label=Zoom avant
+zoom.title=Zoom
+print.title=Imprimer
+print_label=Imprimer
+presentation_mode.title=Basculer en mode présentation
+presentation_mode_label=Mode présentation
+open_file.title=Ouvrir le fichier
+open_file_label=Ouvrir
+download.title=Télécharger
+download_label=Télécharger
+bookmark.title=Affichage courant (copier ou ouvrir dans une nouvelle fenêtre)
+bookmark_label=Affichage actuel
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Afficher/Masquer le panneau latéral
+toggle_sidebar_label=Afficher/Masquer le panneau latéral
+outline.title=Afficher les signets
+outline_label=Signets du document
+thumbs.title=Afficher les vignettes
+thumbs_label=Vignettes
+findbar.title=Rechercher dans le document
+findbar_label=Rechercher
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Vignette de la page {{page}}
+
+# Context menu
+first_page.label=Aller à la première page
+last_page.label=Aller à la dernière page
+page_rotate_cw.label=Rotation horaire
+page_rotate_ccw.label=Rotation anti-horaire
+
+# Find panel button title and messages
+find_label=Rechercher :
+find_previous.title=Trouver l'occurrence précédente de la phrase
+find_previous_label=Précédent
+find_next.title=Trouver la prochaine occurrence de la phrase
+find_next_label=Suivant
+find_highlight=Tout surligner
+find_match_case_label=Respecter la casse
+find_reached_top=Haut de la page atteint, poursuite depuis la fin
+find_reached_bottom=Bas de la page atteint, poursuite au début
+find_not_found=Phrase introuvable
+
+# Error panel labels
+error_more_info=Plus d'informations
+error_less_info=Moins d'informations
+error_close=Fermer
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (identifiant de compilation : {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Message : {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Pile : {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Fichier : {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Ligne : {{line}}
+rendering_error=Une erreur s'est produite lors de l'affichage de la page.
+
+# Predefined zoom values
+page_scale_width=Pleine largeur
+page_scale_fit=Page entière
+page_scale_auto=Zoom automatique
+page_scale_actual=Taille réelle
+
+# Loading indicator messages
+loading_error_indicator=Erreur
+loading_error=Une erreur s'est produite lors du chargement du fichier PDF.
+invalid_file_error=Fichier PDF invalide ou corrompu.
+missing_file_error=Fichier PDF manquant.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[Annotation {{type}}]
+request_password=Le PDF est protégé par un mot de passe :
+
+printing_not_supported=Attention : l'impression n'est pas totalement prise en charge par ce navigateur.
+printing_not_ready=Attention : le PDF n'est pas entièrement chargé pour pouvoir l'imprimer.
+web_fonts_disabled=Les polices web sont désactivées : impossible d'utiliser les polices intégrées au PDF.
diff --git a/lib/viewers/pdf/locale/he/metadata.inc b/lib/viewers/pdf/locale/he/metadata.inc
new file mode 100644
index 0000000..3493c0b
--- /dev/null
+++ b/lib/viewers/pdf/locale/he/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>he</em:locale>
+ <em:name>קורא PDF</em:name>
+ <em:description>הצגת קבצי PDF ישירות ב־Firefox באמצעות HTML5.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/he/viewer.properties b/lib/viewers/pdf/locale/he/viewer.properties
new file mode 100644
index 0000000..ca3741c
--- /dev/null
+++ b/lib/viewers/pdf/locale/he/viewer.properties
@@ -0,0 +1,59 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=דף נוכחי (העתקה או פתיחה בחלון חדש)
+previous.title=דף קודם
+next.title=דף הבא
+print.title=הדפסה
+download.title=הורדה
+zoom_out.title=התרחקות
+zoom_in.title=התקרבות
+error_more_info=יותר מידע
+error_less_info=פחות מידע
+error_close=סגירה
+error_build=בניית PDF.JS‏: {{build}}
+error_message=הודעה: {{message}}
+error_stack=מחסנית: {{stack}}
+error_file=קובץ: {{file}}
+error_line=שורה: {{line}}
+page_scale_width=רוחב דף
+page_scale_fit=גודל דף
+page_scale_auto=התקרבות אוטומטית
+page_scale_actual=גודל אמיתי
+toggle_slider.title=מתג החלקה
+thumbs.title=הצגת תמונות ממוזערות
+outline.title=הצגת מתאר מסמך
+loading=בטעינה... {{percent}}%
+loading_error_indicator=שגיאה
+loading_error=אירעה שגיאה בעת טעינת קובץ PDF.
+rendering_error=אירעה שגיאה בעת עיבוד הדף.
+page_label=דף:
+page_of=מתוך {{pageCount}}
+open_file.title=פתיחת קובץ
+text_annotation_type=[{{type}} Annotation]
+toggle_slider_label=מתג החלקה
+thumbs_label=תמונות ממוזערות
+outline_label=מתאר מסמך
+bookmark_label=תצוגה נוכחית
+previous_label=קודם
+next_label=הבא
+print_label=הדפסה
+download_label=הורדה
+zoom_out_label=התרחקות
+zoom_in_label=התקרבות
+zoom.title=מרחק מתצוגה
+thumb_page_title=דף {{page}}
+thumb_page_canvas=תמונה ממוזערת של דף {{page}}
+request_password=קובץ PDF מוגן בססמה:
+open_file_label=פתיחה
diff --git a/lib/viewers/pdf/locale/it/metadata.inc b/lib/viewers/pdf/locale/it/metadata.inc
new file mode 100644
index 0000000..e09d807
--- /dev/null
+++ b/lib/viewers/pdf/locale/it/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>it</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Usa HTML5 per visualizzare i file PDF direttamente in Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/it/viewer.properties b/lib/viewers/pdf/locale/it/viewer.properties
new file mode 100644
index 0000000..9622264
--- /dev/null
+++ b/lib/viewers/pdf/locale/it/viewer.properties
@@ -0,0 +1,44 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Visualizzazione corrente (copia o apri in una nuova finestra)
+previous.title=Precedente
+next.title=Successiva
+print.title=Stampa
+download.title=Download
+zoom_out.title=Riduci Zoom
+zoom_in.title=Aumenta Zoom
+error_more_info=Pi Informazioni
+error_less_info=Meno Informazioni
+error_close=Chiudi
+error_build=PDF.JS Build: {{build}}
+error_message=Messaggio: {{message}}
+error_stack=Stack: {{stack}}
+error_file=File: {{file}}
+error_line=Linea: {{line}}
+page_scale_width=Adatta alla Larghezza
+page_scale_fit=Adatta alla Pagina
+page_scale_auto=Zoom Automatico
+page_scale_actual=Dimensione Attuale
+toggle_slider.title=Visualizza Riquadro Laterale
+thumbs.title=Mostra Miniature
+outline.title=Mostra Indice Documento
+loading=Caricamento... {{percent}}%
+loading_error_indicator=Errore
+loading_error= accaduto un errore durante il caricamento del PDF.
+rendering_error= accaduto un errore durante il rendering della pagina.
+page_label=Pagina:
+page_of=di {{pageCount}}
+open_file.title=Apri File
+text_annotation_type=[{{type}} Annotazione]
diff --git a/lib/viewers/pdf/locale/ja/chrome.properties b/lib/viewers/pdf/locale/ja/chrome.properties
new file mode 100644
index 0000000..e9b4a5a
--- /dev/null
+++ b/lib/viewers/pdf/locale/ja/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=この PDF 文書はサポートされていないため正しく表示できない可能性があります。
+open_with_different_viewer=ほかのビューアで開く
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/ja/metadata.inc b/lib/viewers/pdf/locale/ja/metadata.inc
new file mode 100644
index 0000000..7ca4746
--- /dev/null
+++ b/lib/viewers/pdf/locale/ja/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ja</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>HTML5を使用して、Firefoxで直接PDFファイルを表示します。</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ja/viewer.properties b/lib/viewers/pdf/locale/ja/viewer.properties
new file mode 100644
index 0000000..3a43dee
--- /dev/null
+++ b/lib/viewers/pdf/locale/ja/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=前のページ
+previous_label=前へ
+next.title=次のページ
+next_label=次へ
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=ページ:
+page_of=of {{pageCount}}
+
+zoom_out.title=縮小
+zoom_out_label=縮小
+zoom_in.title=拡大
+zoom_in_label=拡大
+zoom.title=ズーム
+print.title=印刷
+print_label=印刷
+presentation_mode.title=プレゼンテーションモードに切り替えます
+presentation_mode_label=プレゼンテーションモード
+open_file.title=ファイルを開く
+open_file_label=開く
+download.title=ダウンロード
+download_label=ダウンロード
+bookmark.title=現在のビューをブックマーク
+bookmark_label=現在のビューをブックマーク
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=サイドバーの切り替え
+toggle_sidebar_label=サイドバーの切り替え
+outline.title=文書の目次
+outline_label=文書の目次
+thumbs.title=縮小版
+thumbs_label=縮小版
+findbar.title=検索
+findbar_label=検索
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title={{page}} ページ
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=ページの縮小版 {{page}}
+
+# Context menu
+first_page.label=最初のページへ移動
+last_page.label=最後のページへ移動
+page_rotate_cw.label=右回転
+page_rotate_ccw.label=左回転
+
+# Find panel button title and messages
+find_label=検索:
+find_previous.title=指定文字列に一致する 1 つ前の部分を検索します
+find_previous_label=前へ
+find_next.title=指定文字列に一致する次の部分を検索します
+find_next_label=次へ
+find_highlight=すべて強調表示
+find_match_case_label=大文字/小文字を区別
+find_reached_top=文書先頭まで検索したので末尾に戻って検索しました。
+find_reached_bottom=文書末尾まで検索したので先頭に戻って検索しました。
+find_not_found=見つかりませんでした。
+
+# Error panel labels
+error_more_info=詳細情報
+error_less_info=詳細情報の非表示
+error_close=閉じる
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (ビルド: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=メッセージ: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=スタック: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=ファイル: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=ライン: {{line}}
+rendering_error=ページのレンダリング中にエラーが発生しました
+
+# Predefined zoom values
+page_scale_width=幅に合わせる
+page_scale_fit=ページのサイズに合わせる
+page_scale_auto=自動ズーム
+page_scale_actual=実際のサイズ
+
+# Loading indicator messages
+loading_error_indicator=エラー
+loading_error=PDF の読み込み中にエラーが発生しました
+invalid_file_error=無効または破損した PDF ファイル
+missing_file_error=PDF ファイルが見つかりません。
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} 注釈]
+request_password=PDF はパスワードによって保護されています
+
+printing_not_supported=警告:このブラウザでは印刷が完全にサポートされていません
+printing_not_ready=警告:PDF を印刷するための読み込みが終了していません
+web_fonts_disabled=Web フォントが無効になっています: 埋め込まれた PDF のフォントを使用することができません
+web_colors_disabled=Web カラーが無効になっています
diff --git a/lib/viewers/pdf/locale/ko/chrome.properties b/lib/viewers/pdf/locale/ko/chrome.properties
new file mode 100644
index 0000000..fcd2f8f
--- /dev/null
+++ b/lib/viewers/pdf/locale/ko/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=이 PDF 문서는 제대로 표시되지 않을 수 있습니다.
+open_with_different_viewer=다른 뷰어로 열기
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/ko/metadata.inc b/lib/viewers/pdf/locale/ko/metadata.inc
new file mode 100644
index 0000000..04a8f07
--- /dev/null
+++ b/lib/viewers/pdf/locale/ko/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ko</em:locale>
+ <em:name>PDF 뷰어</em:name>
+ <em:description>Firefox가 PDF 파일을 HTML5를 이용하여 직접 보여줍니다.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ko/viewer.properties b/lib/viewers/pdf/locale/ko/viewer.properties
new file mode 100644
index 0000000..240a151
--- /dev/null
+++ b/lib/viewers/pdf/locale/ko/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=이전 쪽
+previous_label=이전
+next.title=다음 쪽
+next_label=다음
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=쪽:
+page_of=/ {{pageCount}}
+
+zoom_out.title=축소
+zoom_out_label=축소
+zoom_in.title=확대
+zoom_in_label=확대
+zoom.title=확대 비율
+print.title=출력
+print_label=출력
+presentation_mode.title=프레젠테이션 모드로 전환
+presentation_mode_label=프레젠테이션 모드
+open_file.title=파일 열기
+open_file_label=열기
+download.title=내려받기
+download_label=내려받기
+bookmark.title=현 화면 (복사하거나 새 창에서 열기)
+bookmark_label=현 화면
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=사이드바 보이기/숨기기
+toggle_sidebar_label=사이드바 보이기/숨기기
+outline.title=문서 개요 보이기
+outline_label=문서 개요
+thumbs.title=쪽 작게 보기
+thumbs_label=쪽 작게 보기
+findbar.title=문서 내에서 찾기
+findbar_label=찾기
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title={{page}} 쪽
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas={{page}}쪽의 썸네일
+
+# Context menu
+first_page.label=첫 쪽으로
+last_page.label=끝 쪽으로
+page_rotate_cw.label=시계방향 회전
+page_rotate_ccw.label=반시계방향 회전
+
+# Find panel button title and messages
+find_label=찾기:
+find_previous.title=이전 구절 찾기
+find_previous_label=이전
+find_next.title=다음 구절 찾기
+find_next_label=다음
+find_highlight=모두 강조
+find_match_case_label=대/소문자까지 정확히
+find_reached_top=문서의 처음, 끝에서부터 계속
+find_reached_bottom=문서의 끝, 처음에서부터 계속
+find_not_found=구절을 찾을 수 없습니다
+
+# Error panel labels
+error_more_info=더 보기
+error_less_info=간략히
+error_close=닫기
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=메시지: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=스택: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=파일: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=행: {{line}}
+rendering_error=쪽 렌더링 중 오류가 발생했습니다.
+
+# Predefined zoom values
+page_scale_width=너비 맞춤
+page_scale_fit=쪽 맞춤
+page_scale_auto=자동 맞춤
+page_scale_actual=실제 크기
+
+# Loading indicator messages
+loading_error_indicator=오류
+loading_error=PDF를 불러오던 중 오류가 발생했습니다.
+invalid_file_error=PDF 파일이 아니거나 깨진 파일입니다.
+missing_file_error=PDF 파일이 없습니다.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Annotation]
+request_password=암호로 보호되는 PDF파일입니다:
+
+printing_not_supported=경고: 이 브라우져는 출력을 완전히는 지원하지 않습니다.
+printing_not_ready=경고: 이 PDF 파일은 완전히 적재되지 않았습니다.
+web_fonts_disabled=웹 폰트 사용이 비활성되었습니다: 내장 PDF 폰트를 사용할 수 없습니다.
+web_colors_disabled=웹 컬러가 비활성되었습니다.
diff --git a/lib/viewers/pdf/locale/locale.properties b/lib/viewers/pdf/locale/locale.properties
new file mode 100644
index 0000000..1e50dab
--- /dev/null
+++ b/lib/viewers/pdf/locale/locale.properties
@@ -0,0 +1,63 @@
+[ar]
+@import url(ar/viewer.properties)
+
+[ca]
+@import url(ca/viewer.properties)
+
+[cs]
+@import url(cs/viewer.properties)
+
+[da]
+@import url(da/viewer.properties)
+
+[de]
+@import url(de/viewer.properties)
+
+[en-US]
+@import url(en-US/viewer.properties)
+
+[es]
+@import url(es/viewer.properties)
+
+[fi]
+@import url(fi/viewer.properties)
+
+[fr]
+@import url(fr/viewer.properties)
+
+[he]
+@import url(he/viewer.properties)
+
+[it]
+@import url(it/viewer.properties)
+
+[ja]
+@import url(ja/viewer.properties)
+
+[nl]
+@import url(nl/viewer.properties)
+
+[pl]
+@import url(pl/viewer.properties)
+
+[pt-BR]
+@import url(pt-BR/viewer.properties)
+
+[ro]
+@import url(ro/viewer.properties)
+
+[ru]
+@import url(ru/viewer.properties)
+
+[sr]
+@import url(sr/viewer.properties)
+
+[sv]
+@import url(sv/viewer.properties)
+
+[zh-CN]
+@import url(zh-CN/viewer.properties)
+
+[zh-TW]
+@import url(zh-TW/viewer.properties)
+
diff --git a/lib/viewers/pdf/locale/lt/chrome.properties b/lib/viewers/pdf/locale/lt/chrome.properties
new file mode 100644
index 0000000..228012b
--- /dev/null
+++ b/lib/viewers/pdf/locale/lt/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=PDF dokumentas gali būti atvaizduojamas neteisingai.
+open_with_different_viewer=Atidaryti su kita programa
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/lt/metadata.inc b/lib/viewers/pdf/locale/lt/metadata.inc
new file mode 100644
index 0000000..e084157
--- /dev/null
+++ b/lib/viewers/pdf/locale/lt/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>lt</em:locale>
+ <em:name>PDF peržiūros programa</em:name>
+ <em:description>PDF bylos vaizduojamos tiesiogiai, naudojant HTML5 Firefox naršyklėje.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/lt/viewer.properties b/lib/viewers/pdf/locale/lt/viewer.properties
new file mode 100644
index 0000000..2ad6406
--- /dev/null
+++ b/lib/viewers/pdf/locale/lt/viewer.properties
@@ -0,0 +1,121 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Ankstesnis puslapis
+previous_label=Ankstesnis
+next.title=Sekantis puslapis
+next_label=Sekantis
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Puslapis:
+page_of=iš {{pageCount}}
+
+zoom_out.title=Mažinti
+zoom_out_label=Mažinti
+zoom_in.title=Didinti
+zoom_in_label=Didinti
+zoom.title=Mastelis
+print.title=Spausdinti
+print_label=Spausdinti
+presentation_mode.title=Įjungti pateikimo būseną
+presentation_mode_label=Pateikimo būsena
+open_file.title=Atverti bylą
+open_file_label=Atverti
+download.title=Atsiųsti
+download_label=Atsiųsti
+bookmark.title=Dabartinis rodymas (kopijuoti arba atidaryti naudojame lange)
+bookmark_label=Dabartinis rodymas
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Perjungti šoninę juostą
+toggle_sidebar_label=Perjungti šoninę juostą
+outline.title=Rodyti dokumento turinį
+outline_label=Dokumento turinys
+thumbs.title=Rodyti miniatiūras
+thumbs_label=Miniatiūros
+findbar.title=Paieška dokumente
+findbar_label=Paieška
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Puslapis {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatūra iš {{page}} puslapio
+
+# Context menu
+first_page.label=Nukreipimas į pirmą puslapį
+last_page.label=Nukreipimas į paskutinį puslapį
+page_rotate_cw.label=Sukimas pagal laikrodžio rodyklę
+page_rotate_ccw.label=Sukimas prieš laikrodžio rodyklę
+
+# Find panel button title and messages
+find_label=Paieška:
+find_previous.title=Ankstesnis paieškos atitikmuo
+find_previous_label=Ankstesnis
+find_next.title=Sekantis paieškos atitikmuo
+find_next_label=Sekantis
+find_highlight=Pažymėti visus
+find_match_case_label=Skirti didžiąsias ir mažąsias raides
+find_reached_top=Pasiektas dokumento viršus, pradėti nuo apačios
+find_reached_bottom=Pasiekta dokumento apačia, pradėti nuo viršaus
+find_not_found=Paieškos rezultatų nėra
+
+# Error panel labels
+error_more_info=Daugiau informacijos
+error_less_info=Mažiau informacijos
+error_close=Uždaryti
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Žinutė: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Dėklas: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Byla: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Eilutė: {{line}}
+rendering_error=Įvyko klaida atvaizduojant puslapį.
+
+# Predefined zoom values
+page_scale_width=Puslapio plotis
+page_scale_fit=Puslapio priderinimas
+page_scale_auto=Automatinis mastelis
+page_scale_actual=Numatytas dydis
+
+# Loading indicator messages
+loading_error_indicator=Klaida
+loading_error=PDF bylos įkelimo metu įvyko klaida.
+invalid_file_error=Neteisinga arba pažeista PDF byla.
+missing_file_error=Trūksta PDF bylos.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Pastaba]
+request_password=PDF byla yra apsaugota slaptažodžiu:
+
+printing_not_supported=Dėmesio: Naršyklė pilnai nepalaiko spausdinimo.
+web_fonts_disabled=Yra išjungti žiniatinklio šriftai: naudoti įterpus PDF šriftus nėra galima.
diff --git a/lib/viewers/pdf/locale/nl/chrome.properties b/lib/viewers/pdf/locale/nl/chrome.properties
new file mode 100644
index 0000000..7906619
--- /dev/null
+++ b/lib/viewers/pdf/locale/nl/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Dit PDF-document wordt mogelijk niet juist weergegeven.
+open_with_different_viewer=Openen met andere PDF-lezer
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/nl/metadata.inc b/lib/viewers/pdf/locale/nl/metadata.inc
new file mode 100644
index 0000000..8f00155
--- /dev/null
+++ b/lib/viewers/pdf/locale/nl/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>nl</em:locale>
+ <em:name>PDF-viewer</em:name>
+ <em:description>Gebruikt HTML5 om PDF-bestanden direct in Firefox te openen.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/nl/viewer.properties b/lib/viewers/pdf/locale/nl/viewer.properties
new file mode 100644
index 0000000..73aafa8
--- /dev/null
+++ b/lib/viewers/pdf/locale/nl/viewer.properties
@@ -0,0 +1,122 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Vorige pagina
+previous_label=Vorige
+next.title=Volgende pagina
+next_label=Volgende
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Pagina:
+page_of=van {{pageCount}}
+
+zoom_out.title=Uitzoomen
+zoom_out_label=Uitzoomen
+zoom_in.title=Inzoomen
+zoom_in_label=Inzoomen
+zoom.title=Zoomen
+print.title=Afdrukken
+print_label=Afdrukken
+presentation_mode.title=Omschakelen naar presentatiemodus
+presentation_mode_label=Presentatiemodus
+open_file.title=Bestand openen
+open_file_label=Openen
+download.title=Downloaden
+download_label=Downloaden
+bookmark.title=Huidige weergave (kopiëren of openen in nieuw venster)
+bookmark_label=Huidige weergave
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Zijbalk tonen/verbergen
+toggle_sidebar_label=Zijbalk tonen/verbergen
+outline.title=Documentstructuur tonen
+outline_label=Documentstructuur
+thumbs.title=Miniaturen tonen
+thumbs_label=Miniaturen
+findbar.title=Zoeken in document
+findbar_label=Zoeken
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Pagina {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatuur van pagina {{page}}
+
+# Context menu
+first_page.label=Naar de eerste pagina gaan
+last_page.label=Naar de laatste pagina gaan
+page_rotate_cw.label=Met de klok mee roteren
+page_rotate_ccw.label=Tegen de klok in roteren
+
+# Find panel button title and messages
+find_label=Zoeken:
+find_previous.title=Het vorige voorkomen van de tekst zoeken
+find_previous_label=Vorige
+find_next.title=Het volgende voorkomen van de tekst zoeken
+find_next_label=Volgende
+find_highlight=Alles markeren
+find_match_case_label=Hoofdlettergevoelig
+find_reached_top=Bovenkant van de pagina bereikt, doorgegaan vanaf de onderkant
+find_reached_bottom=Onderkant van de pagina bereikt, doorgegaan vanaf de bovenkant
+find_not_found=Tekst niet gevonden
+
+# Error panel labels
+error_more_info=Meer informatie
+error_less_info=Minder informatie
+error_close=Sluiten
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js versie {{version}} (build {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Bericht: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stack: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Bestand: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Regel: {{line}}
+rendering_error=Er is een probleem opgetreden bij het renderen van de pagina.
+
+# Predefined zoom values
+page_scale_width=Paginabreed maken
+page_scale_fit=Passend maken
+page_scale_auto=Automatisch zoomen
+page_scale_actual=Werkelijke grootte
+
+# Loading indicator messages
+loading_error_indicator=Fout
+loading_error=Er is een fout opgetreden bij het laden van het PDF-bestand.
+invalid_file_error=Ongeldig of corrupt PDF-bestand.
+missing_file_error=Ontbrekend PDF-bestand.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}}-aantekening]
+request_password=Dit PDF-bestand is beveiligd met een wachtwoord:
+
+printing_not_supported=Waarschuwing: afdrukken wordt niet volledig ondersteund door deze browser.
+printing_not_ready=Waarschuwing: het PDF-bestand is niet volledig geladen en kan daarom nog niet afgedrukt worden.
+web_fonts_disabled=Weblettertypen zijn uitgeschakeld: kan geen ingebakken PDF-lettertypen gebruiken.
diff --git a/lib/viewers/pdf/locale/pl/chrome.properties b/lib/viewers/pdf/locale/pl/chrome.properties
new file mode 100644
index 0000000..3bafa77
--- /dev/null
+++ b/lib/viewers/pdf/locale/pl/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Ten plik PDF może nie być poprawnie wyświetlony.
+open_with_different_viewer=Otwórz w innym programie.
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/pl/metadata.inc b/lib/viewers/pdf/locale/pl/metadata.inc
new file mode 100644
index 0000000..0cc701d
--- /dev/null
+++ b/lib/viewers/pdf/locale/pl/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>pl</em:locale>
+ <em:name>Przeglądarka PDF</em:name>
+ <em:description>Używa HTML5 do wyświetlania plików PDF bezpośrednio w Firefoksie.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/pl/viewer.properties b/lib/viewers/pdf/locale/pl/viewer.properties
new file mode 100644
index 0000000..159d4e0
--- /dev/null
+++ b/lib/viewers/pdf/locale/pl/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Poprzednia strona
+previous_label=Wstecz
+next.title=Następna strona
+next_label=Dalej
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Strona:
+page_of=z {{pageCount}}
+
+zoom_out.title=Pomniejsz
+zoom_out_label=Pomniejsz
+zoom_in.title=Powiększ
+zoom_in_label=Powiększ
+zoom.title=Powiększenie
+print.title=Drukuj
+print_label=Drukuj
+presentation_mode.title=Przełącz do trybu prezentacji
+presentation_mode_label=Tryb prezentacji
+open_file.title=Otwórz plik
+open_file_label=Otwórz
+download.title=Pobierz
+download_label=Pobierz
+bookmark.title=Aktualny widok (kopiuj lub otwórz w nowym oknie)
+bookmark_label=Aktualny widok
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Pokaż/Ukryj panel boczny
+toggle_sidebar_label=Pokaż/Ukryj panel
+outline.title=Wyświetl konspekt dokumentu
+outline_label=Konspekt dokumentu
+thumbs.title=Wyświetl miniatury
+thumbs_label=Miniatury
+findbar.title=Szukaj w tekście
+findbar_label=Znajdź
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Strona {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatura strony {{page}}
+
+# Context menu
+first_page.label=Idź do pierwszej strony
+last_page.label=Idź do ostatniej strony
+page_rotate_cw.label=Obróć w prawo
+page_rotate_ccw.label=Obróć w lewo
+
+# Find panel button title and messages
+find_label=Znajdź:
+find_previous.title=Znajdź poprzednie wystąpienie ostatnio szukanej frazy
+find_previous_label=Poprzednie
+find_next.title=Znajdź następne wystąpienie ostatnio szukanej frazy
+find_next_label=Następne
+find_highlight=Podświetl
+find_match_case_label=Rozróżniaj wielkość liter
+find_reached_top=Początek strony. Wyszukiwanie od końca.
+find_reached_bottom=Koniec strony. Wyszukiwanie od początku.
+find_not_found=Szukany tekst nie został odnaleziony.
+
+# Error panel labels
+error_more_info=Więcej informacji
+error_less_info=Mniej informacji
+error_close=Zamknij
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=Wersja PDF.js: {{version}} (kompilacja: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Wiadomość: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stos: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Plik: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Linia: {{line}}
+rendering_error=Wystąpił błąd podczas wyświetlania strony.
+
+# Predefined zoom values
+page_scale_width=Szerokość strony
+page_scale_fit=Cała strona
+page_scale_auto=Automatyczne dopasowanie
+page_scale_actual=Rzeczywisty rozmiar
+
+# Loading indicator messages
+loading_error_indicator=Błąd
+loading_error=Wystąpił błąd podczas wczytywania pliku PDF.
+invalid_file_error=Błędny lub uszkodzony plik PDF.
+missing_file_error=Nie znaleziono pliku PDF.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 - Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[Komentarz {{type}}]
+request_password=Plik PDF jest chroniony przez hasło:
+
+printing_not_supported=Ostrzeżenie: Drukowanie nie jest w pełni obsługiwane przez tę przeglądarkę.
+printing_not_ready=Ostrzeżenie: Plik PDF nie jest całkowicie wczytany do drukowania.
+web_fonts_disabled=Web fonty są nieaktywne. Nie można korzystać z osadzonych czcionek w plikach PDF.
+web_colors_disabled=Kolory WWW są nieaktywne.
diff --git a/lib/viewers/pdf/locale/pt-BR/metadata.inc b/lib/viewers/pdf/locale/pt-BR/metadata.inc
new file mode 100644
index 0000000..179af8b
--- /dev/null
+++ b/lib/viewers/pdf/locale/pt-BR/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>pt-BR</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Aprensenta PDFs no browser usando a tecnologia HTML5.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/pt-BR/viewer.properties b/lib/viewers/pdf/locale/pt-BR/viewer.properties
new file mode 100644
index 0000000..9f47b9c
--- /dev/null
+++ b/lib/viewers/pdf/locale/pt-BR/viewer.properties
@@ -0,0 +1,44 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Marcar posição atual (bookmark)
+previous.title=Página anterior
+next.title=Próxima página
+print.title=Imprimir
+download.title=Baixar arquivo
+zoom_out.title=Diminuir Zoom
+zoom_in.title=Aumentar Zoom
+error_more_info=Mais informações
+error_less_info=Menos informações
+error_close=Fechar
+error_build=PDF.JS Versão: {{build}}
+error_message=Mensagem: {{message}}
+error_stack=Pilha: {{stack}}
+error_file=Arquivo: {{file}}
+error_line=Linha: {{line}}
+page_scale_width=Largura da página
+page_scale_fit=Página inteira
+page_scale_auto=Zoom automático
+page_scale_actual=Tamanho original
+toggle_slider.title=Abrir/fechar aba lateral
+thumbs.title=Mostrar miniaturas
+outline.title=Mostrar índice
+loading=Carregando... {{percent}}%
+loading_error_indicator=Erro
+loading_error=Um erro ocorreu ao carregar o arquivo.
+rendering_error=Um erro ocorreu ao apresentar a página.
+page_label=Página:
+page_of=de {{pageCount}}
+open_file.title=Abrir arquivo
+text_annotation_type=[{{type}} Anotações]
diff --git a/lib/viewers/pdf/locale/ro/metadata.inc b/lib/viewers/pdf/locale/ro/metadata.inc
new file mode 100644
index 0000000..e2c72ec
--- /dev/null
+++ b/lib/viewers/pdf/locale/ro/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ro</em:locale>
+ <em:name>Cititor PDF</em:name>
+ <em:description>Afișează fișierele PDF direct în Firefox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ro/viewer.properties b/lib/viewers/pdf/locale/ro/viewer.properties
new file mode 100644
index 0000000..985be8d
--- /dev/null
+++ b/lib/viewers/pdf/locale/ro/viewer.properties
@@ -0,0 +1,55 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Vederea curentă (copiază sau deschide în fereastră nouă)
+previous.title=Pagina precedentă
+next.title=Pagina următoare
+print.title=Tipărește
+download.title=Descarcă
+zoom_out.title=Micșorează
+zoom_in.title=Mărește
+error_more_info=Detaliat
+error_less_info=Sumarizat
+error_close=Închide
+error_build=PDF.JS Build: {{build}}
+error_message=Message: {{message}}
+error_stack=Stack: {{stack}}
+error_file=File: {{file}}
+error_line=Line: {{line}}
+page_scale_width=După lățime
+page_scale_fit=Toată pagina
+page_scale_auto=Mărime automată
+page_scale_actual=Mărime originală
+toggle_slider.title=Vedere de ansamblu
+thumbs.title=Miniaturi
+outline.title=Cuprins
+loading=Încărcare... {{percent}}%
+loading_error_indicator=Eroare
+loading_error=S-a produs o eroare în timpul încărcării documentului.
+rendering_error=S-a produs o eroare în timpul procesării paginii.
+page_label=Pagina:
+page_of=din {{pageCount}}
+open_file.title=Deschide fișier
+text_annotation_type=[Adnotare {{type}}]
+toggle_slider_label=Vedere de ansamblu
+thumbs_label=Miniaturi
+outline_label=Cuprins
+bookmark_label=Vederea curentă
+previous_label=Înapoi
+next_label=Înainte
+print_label=Tipărește
+download_label=Descarcă
+zoom_out_label=Micșorează
+zoom_in_label=Mărește
+zoom.title=Mărime
diff --git a/lib/viewers/pdf/locale/ru/metadata.inc b/lib/viewers/pdf/locale/ru/metadata.inc
new file mode 100644
index 0000000..410814c
--- /dev/null
+++ b/lib/viewers/pdf/locale/ru/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>ru</em:locale>
+ <em:name>PDF Viewer</em:name>
+ <em:description>Показывает файлы PDF непосредственно в Firefox используя HTML5.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/ru/viewer.properties b/lib/viewers/pdf/locale/ru/viewer.properties
new file mode 100644
index 0000000..0465fd8
--- /dev/null
+++ b/lib/viewers/pdf/locale/ru/viewer.properties
@@ -0,0 +1,62 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Ссылка на текущий вид (скопировать или открыть в новом окне)
+previous.title=Предыдущая страница
+next.title=Следующая страница
+print.title=Печать
+download.title=Загрузить
+zoom_out.title=Уменьшить
+zoom_in.title=Увеличить
+error_more_info=Детали
+error_less_info=Скрыть детали
+error_close=Закрыть
+error_build=PDF.JS компиляция: {{build}}
+error_message=Сообщение: {{message}}
+error_stack=Стeк: {{stack}}
+error_file=Файл: {{file}}
+error_line=Строка: {{line}}
+page_scale_width=По ширине страницы
+page_scale_fit=Во всю страницу
+page_scale_auto=Авто
+page_scale_actual=Настоящий размер
+toggle_slider.title=Открыть/закрыть вспомогательную панель
+thumbs.title=Показать уменьшенные изображения
+outline.title=Показать содержание документа
+loading=Загрузка... {{percent}}%
+loading_error_indicator=Ошибка
+loading_error=Произошла ошибка во время загрузки PDF.
+rendering_error=Произошла ошибка во время создания страницы.
+page_label=Страница:
+page_of=из {{pageCount}}
+open_file.title=Открыть файл
+text_annotation_type=[Аннотация {{type}}]
+toggle_slider_label=Вспомогательная панель
+thumbs_label=Уменьшенные изображения
+outline_label=Содержание документа
+bookmark_label=Текущий вид
+previous_label=Предыдущая
+next_label=Следующая
+print_label=Печать
+download_label=Загрузить
+zoom_out_label=Уменьшить
+zoom_in_label=Увеличить
+zoom.title=Масштаб
+thumb_page_title=Страница {{page}}
+thumb_page_canvas=Уменьшенное изображение страницы {{page}}
+request_password=PDF защищён паролем:
+fullscreen.title=Полный экран
+fullscreen_label=Полный экран
+page_rotate_cw.label=Повернуть по часовой стрелке
+page_rotate_ccw.label=Повернуть против часовой стрелки
diff --git a/lib/viewers/pdf/locale/sr/metadata.inc b/lib/viewers/pdf/locale/sr/metadata.inc
new file mode 100644
index 0000000..c8ab2d8
--- /dev/null
+++ b/lib/viewers/pdf/locale/sr/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>sr</em:locale>
+ <em:name>ПДФ читач</em:name>
+ <em:description>Користи ХТМЛ5 да би приказао ПДФ датотеке директно у Фајерфоксу.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/sr/viewer.properties b/lib/viewers/pdf/locale/sr/viewer.properties
new file mode 100644
index 0000000..7ec9bfd
--- /dev/null
+++ b/lib/viewers/pdf/locale/sr/viewer.properties
@@ -0,0 +1,55 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+bookmark.title=Тренутни приказ (Умножити или отворити у новом прозору)
+previous.title=Предходна страна
+next.title=Следећа страна
+print.title=Штампај
+download.title=Преузми
+zoom_out.title=Умањи
+zoom_in.title=Увећај
+error_more_info=Више информација
+error_less_info=Мање информација
+error_close=Затвори
+error_build=PDF.JS Build: {{build}}
+error_message=Message: {{message}}
+error_stack=Stack: {{stack}}
+error_file=File: {{file}}
+error_line=Line: {{line}}
+page_scale_width=Ширина странице
+page_scale_fit=Уклопи
+page_scale_auto=Увећај аутоматски
+page_scale_actual=Стварна величина
+toggle_slider.title=Клизач
+thumbs.title=Прикажи у сличицама
+outline.title=Прикажи у линијама
+loading=Учитавање... {{percent}}%
+loading_error_indicator=Грешка
+loading_error=Дошло је до грешке током учитавања ПДФ-а.
+rendering_error=Дошло је до грешке приликом приказивања стране.
+page_label=Страна:
+page_of=од {{pageCount}}
+open_file.title=Отвори датотеку
+text_annotation_type=[{{type}} Annotation]
+toggle_slider_label=Клизач
+thumbs_label=Сличице
+outline_label=Документи у линијама
+bookmark_label=Тренутни приказ
+previous_label=Предходна
+next_label=Следећа
+print_label=Штампај
+download_label=Преузми
+zoom_out_label=Умањи
+zoom_in_label=Увећај
+zoom.title=Скала
diff --git a/lib/viewers/pdf/locale/sv/chrome.properties b/lib/viewers/pdf/locale/sv/chrome.properties
new file mode 100644
index 0000000..fe6415d
--- /dev/null
+++ b/lib/viewers/pdf/locale/sv/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Detta PDF-dokument kanske inte visas korrekt.
+open_with_different_viewer=Öppna med ett annat program
+open_with_different_viewer.accessKey=ö
diff --git a/lib/viewers/pdf/locale/sv/metadata.inc b/lib/viewers/pdf/locale/sv/metadata.inc
new file mode 100644
index 0000000..ec82bc1
--- /dev/null
+++ b/lib/viewers/pdf/locale/sv/metadata.inc
@@ -0,0 +1,7 @@
+ <em:localized>
+ <Description>
+ <em:locale>sv</em:locale>
+ <em:name>PDF-läsare</em:name>
+ <em:description>Använder HTML5 för att visa PDF-filer direkt i Firefox.</em:description>
+ </Description>
+ </em:localized>
diff --git a/lib/viewers/pdf/locale/sv/viewer.properties b/lib/viewers/pdf/locale/sv/viewer.properties
new file mode 100644
index 0000000..c019111
--- /dev/null
+++ b/lib/viewers/pdf/locale/sv/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Föregående sida
+previous_label=Föregående
+next.title=Nästa sida
+next_label=Nästa
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Sida:
+page_of=av {{pageCount}}
+
+zoom_out.title=Zooma ut
+zoom_out_label=Zooma ut
+zoom_in.title=Zooma in
+zoom_in_label=Zooma in
+zoom.title=Zooma
+print.title=Skriv ut
+print_label=Skriv ut
+presentation_mode.title=Presentationsläge
+presentation_mode_label=Presentationsläge
+open_file.title=Öppna fil
+open_file_label=Öppna
+download.title=Ladda ner
+download_label=Ladda ner
+bookmark.title=Aktuell vy (kopiera eller öppna i nytt fönster)
+bookmark_label=Aktuell vy
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Visa/Dölj sidopanel
+toggle_sidebar_label=Visa/Dölj sidopanel
+outline.title=Visa bokmärken
+outline_label=Bokmärken
+thumbs.title=Visa sidminiatyrer
+thumbs_label=Sidminiatyrer
+findbar.title=Sök i dokumentet
+findbar_label=Sök
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Sida {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Miniatyr av sida {{page}}
+
+# Context menu
+first_page.label=Gå till första sidan
+last_page.label=Gå till sista sidan
+page_rotate_cw.label=Rotera medurs
+page_rotate_ccw.label=Rotera moturs
+
+# Find panel button title and messages
+find_label=Sök:
+find_previous.title=Hitta föregående förekomst av frasen
+find_previous_label=Föregående
+find_next.title=Hitta nästa förekomst av frasen
+find_next_label=Nästa
+find_highlight=Markera alla
+find_match_case_label=Matcha VERSALER/gemener
+find_reached_top=Kommit till början av dokumentet, börjat om
+find_reached_bottom=Kommit till slutet av dokumentet, börjat om
+find_not_found=Frasen hittades inte
+
+# Error panel labels
+error_more_info=Mer information
+error_less_info=Mindre information
+error_close=Stäng
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (bygge: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Meddelande: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stack: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Fil: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Rad: {{line}}
+rendering_error=Ett fel inträffade när sidan renderades.
+
+# Predefined zoom values
+page_scale_width=Sidbredd
+page_scale_fit=Helsida
+page_scale_auto=Automatisk zoom
+page_scale_actual=Faktisk storlek
+
+# Loading indicator messages
+loading_error_indicator=Fel
+loading_error=Ett fel inträffade när PDF-filen laddades.
+invalid_file_error=Ogiltig eller korrupt PDF-fil.
+missing_file_error=PDF-filen saknas.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}}-anteckning]
+request_password=PDF-filen är lösenordsskyddad:
+
+printing_not_supported=Varning: Utskrifter stöds inte fullt ut av denna webbläsare.
+printing_not_ready=Varning: Hela PDF-filen måste laddas innan utskrift kan ske.
+web_fonts_disabled=Webbtypsnitt är inaktiverade: Typsnitt inbäddade i PDF-filer kan ej användas.
+web_colors_disabled=Webbfärger är inaktiverade.
diff --git a/lib/viewers/pdf/locale/tr/chrome.properties b/lib/viewers/pdf/locale/tr/chrome.properties
new file mode 100644
index 0000000..0d4f10d
--- /dev/null
+++ b/lib/viewers/pdf/locale/tr/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Bu PDF Dosyası düzgün görüntülenemeyebilir.
+open_with_different_viewer=Lütfen başka bir gösterici deneyin
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/tr/metadata.inc b/lib/viewers/pdf/locale/tr/metadata.inc
new file mode 100644
index 0000000..13bc253
--- /dev/null
+++ b/lib/viewers/pdf/locale/tr/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>tr</em:locale>
+ <em:name>PDF Gösterici</em:name>
+ <em:description>Firefox içerisinde PDFleri göstermek için HTML5 kullanır.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/tr/viewer.properties b/lib/viewers/pdf/locale/tr/viewer.properties
new file mode 100644
index 0000000..a9d69dd
--- /dev/null
+++ b/lib/viewers/pdf/locale/tr/viewer.properties
@@ -0,0 +1,121 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Önceki Sayfa
+previous_label=Önceki
+next.title=Sonraki Sayfa
+next_label=Sonraki
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Sayfa:
+page_of=- {{pageCount}}
+
+zoom_out.title=Uzaklaş
+zoom_out_label=Uzaklaş
+zoom_in.title=Yakınlaş
+zoom_in_label=Yakınlaş
+zoom.title=Yakınlaştır
+print.title=Yazdır
+print_label=Yazdır
+presentation_mode.title=Sunum moduna geçiş yap
+presentation_mode_label=Sunum Modu
+open_file.title=Dosya Aç
+open_file_label=Aç
+download.title=İndir
+download_label=İndir
+bookmark.title=Mevcut görünüm (kopyala yada yeni sayfada aç)
+bookmark_label=Mevcut Görünüm
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Yan Menü Aç/Kapa
+toggle_sidebar_label=Yan Menü
+outline.title=Sayfa kenarlıklarını döster
+outline_label=Sayfa Kenarlıkları
+thumbs.title=Önizleme resimlerini göster
+thumbs_label=Önizleme
+findbar.title=Döküman içerisinde bul
+findbar_label=Bul
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Sayfa {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas={{page}} sayfasının ön izlemesi
+
+# Context menu
+first_page.label=İlk Sayfaya Git
+last_page.label=Son Sayfaya Git
+page_rotate_cw.label=Sağa Çevir
+page_rotate_ccw.label=Sola Çevir
+
+# Find panel button title and messages
+find_label=Bul:
+find_previous.title=Önceki cümleyi bul
+find_previous_label=Önceki
+find_next.title=Sonraki cümleyi bul
+find_next_label=Sonraki
+find_highlight=Hepsini belirt
+find_match_case_label=harf eşleme
+find_reached_top=Dosyanın en üstüne varıldı. Sonundan devam ediliyor
+find_reached_bottom=Dosyanın sonuna varıldı. Başından devam ediliyor
+find_not_found=Aramanızla eşleşen sonuç yok
+
+# Error panel labels
+error_more_info=Daha falza bilgi
+error_less_info=daha az bilgi
+error_close=Kapat
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Mesaj: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Yığın: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Dosya: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Satır: {{line}}
+rendering_error=Sayfa oluşturulurken bir hata meydana geldi.
+
+# Predefined zoom values
+page_scale_width=Sayfa Genişliği
+page_scale_fit=Sayfayı Sığdır
+page_scale_auto=Otomatik Yakınlaşma
+page_scale_actual=Gerçek boyut
+
+# Loading indicator messages
+loading_error_indicator=Hata
+loading_error=PDF yüklenirken hata.
+invalid_file_error=Geçersiz yada bozuk dosya.
+missing_file_error=PDF dosyası bulunamadı.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Not]
+request_password=PDF Şifre ile korunmakta:
+
+printing_not_supported=Uyarı: Yazdırma işlemi bu tarayıcı ile tam desteklenmiyor.
+web_fonts_disabled=Web Fontları devre dışı. Web fontlar yüklenemiyor.
diff --git a/lib/viewers/pdf/locale/vi/chrome.properties b/lib/viewers/pdf/locale/vi/chrome.properties
new file mode 100644
index 0000000..0770f7a
--- /dev/null
+++ b/lib/viewers/pdf/locale/vi/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Tài liệu PDF có thể hiện thị không chính xác.
+open_with_different_viewer=Mở với chương trình xem khác
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/vi/metadata.inc b/lib/viewers/pdf/locale/vi/metadata.inc
new file mode 100644
index 0000000..0c8653c
--- /dev/null
+++ b/lib/viewers/pdf/locale/vi/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>vi-VN</em:locale>
+ <em:name>Trình Xem PDF</em:name>
+ <em:description>Dùng HTML5 để hiện trị PDF trực giao trên FireFox.</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/vi/viewer.properties b/lib/viewers/pdf/locale/vi/viewer.properties
new file mode 100644
index 0000000..fa47323
--- /dev/null
+++ b/lib/viewers/pdf/locale/vi/viewer.properties
@@ -0,0 +1,123 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Trang Trước
+previous_label=Trước
+next.title=Trang Tiếp
+next_label=Tiếp
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=Trang:
+page_of=trên {{pageCount}}
+
+zoom_out.title=Phóng to
+zoom_out_label=Phóng to
+zoom_in.title=Thu nhỏ
+zoom_in_label=Thu nhỏ
+zoom.title=Thu phóng
+print.title=In
+print_label=In
+presentation_mode.title=Chuyển sang chế độ thuyết trình
+presentation_mode_label=Chế độ Thuyết trình
+open_file.title=Mở Tệp
+open_file_label=Tệp
+download.title=Tải xuống
+download_label=Tải xuống
+bookmark.title=Đánh dấu (sao chép hoặc mở cửa sổ mới)
+bookmark_label=Đánh dấu
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Đóng bật thanh lề
+toggle_sidebar_label=Bật tắt thanh lề
+outline.title=Hiện thị giản lược tài liệu
+outline_label=Giản lược
+thumbs.title=hiện tài liệu ở dạng ảnh thu nhỏ
+thumbs_label=Ảnh thu nhỏ
+findbar.title=Tìm trong văn bản
+findbar_label=Tìm kiếm
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Page {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Thumbnail of Page {{page}}
+
+# Context menu
+first_page.label=Đến trang đầu tiên
+last_page.label=Đến trang cuối cùng
+page_rotate_cw.label=Quay sang phải
+page_rotate_ccw.label=Quay sang trái
+
+# Find panel button title and messages
+find_label=Tìm:
+find_previous.title=Tìm kiếm câu xuất hiện phía trước
+find_previous_label=Về trước
+find_next.title=Tìm kiếm câu xuất hiện phía sau
+find_next_label=Tiếp theo
+find_highlight=Tô sáng toàn bộ
+find_match_case_label=Giống chữ
+find_reached_top=Đến cuối đầu tài liệu, tiếp tục từ cuối
+find_reached_bottom=Đến cuối tài liệu, tiếp tục từ đầu
+find_not_found=Không tìm thấy
+
+# Error panel labels
+error_more_info=Thông tim thêm
+error_less_info=Thông tin giản lược
+error_close=Đóng
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (dịch: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Thông báo: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Ngăn xếp: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Tệp: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Dòng: {{line}}
+rendering_error=An error occurred while rendering the page.
+
+# Predefined zoom values
+page_scale_width=Ngang
+page_scale_fit=Xem Toàn Trang
+page_scale_auto=Tự Động
+page_scale_actual=Kích thước thực
+
+# Loading indicator messages
+loading_error_indicator=Lỗi
+loading_error=Lỗi khi mở tệp PDF.
+invalid_file_error=Tệp PDF bị hỏng hoặc lỗi.
+missing_file_error=Thiếu tệp tin PDF.
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} Đánh dấu]
+request_password=PDF được bảo vệ bởi mật mã:
+
+printing_not_supported=Chú ý: Công việc in ẩn không được hỗ trợ bởi trình duyệt.
+printing_not_ready=Chú ý: Tệp PDF không sẵn sàng cho in ấn.
+web_fonts_disabled=Phồng chữ cho Web bị vô tác dụng: không thể dùng phông chữ kèm theo tệp PDF.
+web_colors_disabled=Màu cho Wev bị vô tác dụng.
diff --git a/lib/viewers/pdf/locale/zh-CN/chrome.properties b/lib/viewers/pdf/locale/zh-CN/chrome.properties
new file mode 100644
index 0000000..fac9eda
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-CN/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=该 PDF 文档可能无法被正确显示
+open_with_different_viewer=使用另一个 PDF 查看器打开
+open_with_different_viewer.accessKey=o
diff --git a/lib/viewers/pdf/locale/zh-CN/metadata.inc b/lib/viewers/pdf/locale/zh-CN/metadata.inc
new file mode 100644
index 0000000..04be27c
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-CN/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>zh-CN</em:locale>
+ <em:name>PDF 查看器</em:name>
+ <em:description>使用 HTML5 来支持在 Firefox 中直接显示 PDF 文件。</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/zh-CN/viewer.properties b/lib/viewers/pdf/locale/zh-CN/viewer.properties
new file mode 100644
index 0000000..5b045b2
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-CN/viewer.properties
@@ -0,0 +1,121 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=上一页
+previous_label=向上
+next.title=下一页
+next_label=向下
+
+# LOCALIZATION NOTE (page_label, page_of):
+# These strings are concatenated to form the "Page: X of Y" string.
+# Do not translate "{{pageCount}}", it will be substituted with a number
+# representing the total number of pages.
+page_label=页码:
+page_of=/ {{pageCount}}
+
+zoom_out.title=缩小
+zoom_out_label=缩小
+zoom_in.title=放大
+zoom_in_label=放大
+zoom.title=缩放
+print.title=打印
+print_label=打印
+presentation_mode.title=切换至幻灯模式
+presentation_mode_label=幻灯模式
+open_file.title=打开文件
+open_file_label=打开
+download.title=下载
+download_label=下载
+bookmark.title=当前视图(复制或在新窗口中打开)
+bookmark_label=当前视图
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=切换侧栏
+toggle_sidebar_label=切换侧栏
+outline.title=显示文档大纲
+outline_label=文档大纲
+thumbs.title=显示缩略图
+thumbs_label=缩略图
+findbar.title=在该文档内查找
+findbar_label=查找
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=页码 {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=页面 {{page}} 的缩略图
+
+# Context menu
+first_page.label=转到第一页
+last_page.label=转到结尾页
+page_rotate_cw.label=顺时针旋转
+page_rotate_ccw.label=逆时针旋转
+
+# Find panel button title and messages
+find_label=查找:
+find_previous.title=查找该短语上一次出现的位置
+find_previous_label=上一个
+find_next.title=查找该短语下一次出现的位置
+find_next_label=下一个
+find_highlight=全部高亮
+find_match_case_label=区分大小写
+find_reached_top=已查找至文档的开始位置,将从文档末尾继续查找
+find_reached_bottom=已查找至文档的末尾位置,将从文档的开始位置继续查找
+find_not_found=找不到
+
+# Error panel labels
+error_more_info=更多信息
+error_less_info=简略信息
+error_close=关闭
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (构建版本: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=错误信息: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=堆栈: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=文件: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=行数: {{line}}
+rendering_error=渲染页面时出错。
+
+# Predefined zoom values
+page_scale_width=符合页宽
+page_scale_fit=符合页面
+page_scale_auto=自动缩放
+page_scale_actual=实际大小
+
+# Loading indicator messages
+loading_error_indicator=错误
+loading_error=加载 PDF 文件时出错。
+invalid_file_error=PDF 文件无效或已损坏。
+missing_file_error=缺失 PDF 文件。
+
+# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type=[{{type}} 注解]
+request_password=该 PDF 文档受密码保护:
+
+printing_not_supported=警告:该浏览器不能完全支持打印。
+web_fonts_disabled=Web 页面字体已被禁用,无法使用嵌入到 PDF 中的字体。
diff --git a/lib/viewers/pdf/locale/zh-TW/chrome.properties b/lib/viewers/pdf/locale/zh-TW/chrome.properties
new file mode 100644
index 0000000..e5db21c
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-TW/chrome.properties
@@ -0,0 +1,18 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome 通知欄的訊息及按鍵
+unsupported_feature=本 PDF 文件可能無法正常顯示。
+open_with_different_viewer=使用其他檢視器打開文件
+open_with_different_viewer.accessKey=o \ No newline at end of file
diff --git a/lib/viewers/pdf/locale/zh-TW/metadata.inc b/lib/viewers/pdf/locale/zh-TW/metadata.inc
new file mode 100644
index 0000000..6ef722b
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-TW/metadata.inc
@@ -0,0 +1,8 @@
+ <em:localized>
+ <Description>
+ <em:locale>zh-TW</em:locale>
+ <em:name>PDF 瀏覽器</em:name>
+ <em:description>利用 HTML5 技術在 Firefox 中直接顯示 PDF 格式檔案。</em:description>
+ </Description>
+ </em:localized>
+
diff --git a/lib/viewers/pdf/locale/zh-TW/viewer.properties b/lib/viewers/pdf/locale/zh-TW/viewer.properties
new file mode 100644
index 0000000..95a886e
--- /dev/null
+++ b/lib/viewers/pdf/locale/zh-TW/viewer.properties
@@ -0,0 +1,113 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 主工具列按鍵 (工具提示和圖像的替代文字)
+previous.title=上一頁
+previous_label=上一頁
+next.title=下一頁
+next_label=下一頁
+
+# 本地化提示 (page_label, page_of):
+# 這些字符串會連接成 "Page: X of Y" 的表示方式。
+# 不要翻譯 "{{pageCount}}" , 因為它用來表示總頁數。
+page_label=第
+page_of=頁,共 {{pageCount}} 頁
+
+zoom_out.title=縮小
+zoom_out_label=縮小
+zoom_in.title=放大
+zoom_in_label=放大
+zoom.title=縮放
+print.title=列印
+print_label=列印
+presentation_mode.title=切換到簡報模式
+presentation_mode_label=簡報模式
+open_file.title=開啟檔案
+open_file_label=開啟
+download.title=下載
+download_label=下載
+bookmark.title=目前檢視(複製或在新視窗中開啟)
+bookmark_label=目前檢視
+
+# 側邊欄工具列按鍵 (工具提示和圖像的替代文字)
+# (_label 字符串是按鍵的替代文字, .title 字符串是工具提示)
+toggle_sidebar.title=切換側邊欄
+toggle_sidebar_label=切換側邊欄
+outline.title=顯示文件綱要
+outline_label=文件綱要
+thumbs.title=顯示縮圖
+thumbs_label=縮圖
+findbar.title=在文件中搜尋
+findbar_label=搜索
+
+# 縮圖面板項目 (工具提示和圖像的替代文字)
+# 本地化提示 (thumb_page_title): "{{page}}" 會被頁數取代。
+thumb_page_title=第 {{page}} 頁
+# 本地化提示 (thumb_page_canvas): "{{page}}" 會被頁數取代。
+thumb_page_canvas=第 {{page}} 頁的縮圖
+
+# 右鍵菜單
+page_rotate_cw.label=順時針旋轉
+page_rotate_ccw.label=逆時針旋轉
+
+# 搜尋面板按鍵文字及訊息
+find_label=搜尋:
+find_previous.title=尋找上一個出現的詞組
+find_previous_label=上一個
+find_next.title=尋找下一個出現的詞組
+find_next_label=下一個
+find_highlight=全部以高亮顯示
+find_match_case_label=區分大小寫
+find_reached_top=到達文件頂端,由末端繼續搜尋
+find_reached_bottom=到達文件末端,由頂端繼續搜尋
+find_not_found=找不到詞組
+
+# 錯誤面板標籤
+error_more_info=更多資訊
+error_less_info=更少資訊
+error_close=關閉
+# 本地化提示 (error_version_info): "{{version}}" and "{{build}}" 會被PDF.JS版本編號及組建編號取代。
+error_version_info=PDF.js v{{version}} (組建: {{build}})
+# 本地化提示 (error_message): "{{message}}" 會被英文的錯誤描述取代。
+error_message=錯誤信息:{{message}}
+# 本地化提示 (error_stack): "{{stack}}" 會被錯誤堆疊取代。
+error_stack=堆疊:{{stack}}
+# 本地化提示 (error_file): "{{file}}" 會被檔案名稱取代。
+error_file=檔案:{{file}}
+# 本地化提示 (error_line): "{{line}}" 會被行數取代。
+error_line=行數:{{line}}
+rendering_error=渲染頁面時發生錯誤。
+
+# 預設的縮放值
+page_scale_width=符合頁寬
+page_scale_fit=符合頁面
+page_scale_auto=自動縮放
+page_scale_actual=實際大小
+
+# 載入指示訊息
+loading_error_indicator=錯誤
+loading_error=載入PDF檔案時發生錯誤。
+invalid_file_error=無效或受損的PDF檔案。
+missing_file_error=遺失PDF檔案。
+
+# 其他標籤和訊息
+# "{{type}}" 用來表示PDF格式規範 (32000-1:2008 Table 169 – Annotation types) 入面所定義的註解種類。
+# 一些常見的類型有: "Check"、 "Text"、 "Comment"、 "Note"
+text_annotation_type=[{{type}} 註解]
+request_password=PDF檔案受密碼保護:
+
+printing_not_supported=警告:這個瀏覽器不完全支援列印。
+printing_not_ready=警告:PDF檔案未完全加載以進行打印。
+web_fonts_disabled=禁止使用網路字型:無法使用嵌入PDF檔案的字型。
+web_colors_disabled=網絡顏色已被停用。
diff --git a/lib/viewers/pdf/pdf.js b/lib/viewers/pdf/pdf.js
new file mode 100644
index 0000000..aee23e5
--- /dev/null
+++ b/lib/viewers/pdf/pdf.js
@@ -0,0 +1,1660 @@
+var PDFJS={version:"0.8.120",build:"d1cea4a"};
+(function(){var pb,qb;function da(d){bc>=Zc&&(Ia("Info: "+d),PDFJS.LogManager.notify("info",d))}function Y(d){bc>=Ib&&(Ia("Warning: "+d),PDFJS.LogManager.notify("warn",d))}function w(d){if(1<arguments.length){var a=["Error:"];a.push.apply(a,arguments);Ia.apply(null,a);d=[].join.call(arguments," ")}else Ia("Error: "+d);var a=Ia,b;try{throw Error();}catch(c){b=c.stack?c.stack.split("\n").slice(2).join("\n"):""}a(b);PDFJS.LogManager.notify("error",d);throw Error(d);}function oa(d){Y("TODO: "+d)}function $c(d,
+a){if(!a)return d;if(0<=a.indexOf(":"))return a;if("/"==a.charAt(0)){var b=d.indexOf("://"),b=d.indexOf("/",b+3);return d.substring(0,b)+a}var c=d.length,b=d.lastIndexOf("#"),c=0<=b?b:c,b=d.lastIndexOf("?",c),b=d.lastIndexOf("/",0<=b?b:c);return d.substring(0,b+1)+a}function la(d,a){d||w(a)}function fa(d,a,b){Object.defineProperty(d,a,{value:b,enumerable:!0,configurable:!0,writable:!1});return b}function ib(d){for(var a="",b=d.length,c=0;c<b;++c)a+=String.fromCharCode(d[c]);return a}function va(d){for(var a=
+d.length,b=new Uint8Array(a),c=0;c<a;++c)b[c]=d.charCodeAt(c)&255;return b}function Ja(d){var a,b=d.length,c="";if("\u00fe"===d[0]&&"\u00ff"===d[1])for(a=2;a<b;a+=2)c+=String.fromCharCode(d.charCodeAt(a)<<8|d.charCodeAt(a+1));else for(a=0;a<b;++a)var e=ad[d.charCodeAt(a)],c=c+(e?String.fromCharCode(e):d.charAt(a));return c}function zb(d){for(var a in d)return!1;return!0}function Ka(d){return"boolean"==typeof d}function N(d){return"number"==typeof d&&(d|0)==d}function La(d){return"number"==typeof d}
+function za(d){return"string"==typeof d}function V(d){return d instanceof Wa}function ea(d,a){return d instanceof Aa&&(!a||d.cmd==a)}function W(d,a){if(!(d instanceof Ma))return!1;if(!a)return!0;var b=d.get("Type");return V(b)&&b.name==a}function U(d){return d instanceof Array}function ra(d){return"object"==typeof d&&null!==d&&void 0!==d&&"getChar"in d}function Jb(d){return"object"==typeof d&&null!==d&&void 0!==d&&"byteLength"in d}function Ea(d){return d instanceof Kb}function cc(d){if("object"!=
+typeof d)return!1;if(!W(d))if(ra(d))d=d.dict;else return!1;return d.has("FunctionType")}function Ba(d,a){var b=document.createElement("canvas");b.width=d;b.height=a;return b}function Lb(d){d.mozCurrentTransform||(d._scaleX=d._scaleX||1,d._scaleY=d._scaleY||1,d._originalSave=d.save,d._originalRestore=d.restore,d._originalRotate=d.rotate,d._originalScale=d.scale,d._originalTranslate=d.translate,d._originalTransform=d.transform,d._originalSetTransform=d.setTransform,d._transformMatrix=[d._scaleX,0,0,
+d._scaleY,0,0],d._transformStack=[],Object.defineProperty(d,"mozCurrentTransform",{get:function(){return this._transformMatrix}}),Object.defineProperty(d,"mozCurrentTransformInverse",{get:function(){var a=this._transformMatrix,b=a[0],c=a[1],e=a[2],f=a[3],g=a[4],a=a[5],h=b*f-c*e,l=c*e-b*f;return[f/h,c/l,e/l,b/h,(f*g-e*a)/l,(c*g-b*a)/h]}}),d.save=function(){var a=this._transformMatrix;this._transformStack.push(a);this._transformMatrix=a.slice(0,6);this._originalSave()},d.restore=function(){var a=this._transformStack.pop();
+a&&(this._transformMatrix=a,this._originalRestore())},d.translate=function(a,b){var c=this._transformMatrix;c[4]=c[0]*a+c[2]*b+c[4];c[5]=c[1]*a+c[3]*b+c[5];this._originalTranslate(a,b)},d.scale=function(a,b){var c=this._transformMatrix;c[0]*=a;c[1]*=a;c[2]*=b;c[3]*=b;this._originalScale(a,b)},d.transform=function(a,b,c,e,f,g){var h=this._transformMatrix;this._transformMatrix=[h[0]*a+h[2]*b,h[1]*a+h[3]*b,h[0]*c+h[2]*e,h[1]*c+h[3]*e,h[0]*f+h[2]*g+h[4],h[1]*f+h[3]*g+h[5]];d._originalTransform(a,b,c,
+e,f,g)},d.setTransform=function(a,b,c,e,f,g){this._transformMatrix=[a,b,c,e,f,g];d._originalSetTransform(a,b,c,e,f,g)},d.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),e=this._transformMatrix;this._transformMatrix=[e[0]*b+e[2]*c,e[1]*b+e[3]*c,e[0]*-c+e[2]*b,e[1]*-c+e[3]*b,e[4],e[5]];this._originalRotate(a)})}function Mb(d){d=va(d);for(var a=d.length,b=0;b<a;++b)d[b]|=128;return Fa(d,"euc-jp")}function Nb(d){return Fa(va(d),"euc-jp")}function Ab(d){return Fa(va(d),"shift_jis")}function Ob(d){return Fa(va(d),
+"big5")}function Pb(d){return 31>=d||127<=d&&d<Bb||d>=Xa&&d<Xa+Bb}function Cb(d,a){for(var b=a.charsToGlyphs(d),c="",e=0,f=b.length;e<f;e++){var g=b[e];if(g){g=g.unicode;g in Qb&&(g=Qb[g]);var h=g.length,l;if(!(l=1>=h)){l=g.charCodeAt(0);var p=rb[13];l>=p.begin&&l<p.end?l=!0:(p=rb[11],l=l>=p.begin&&l<p.end?!0:!1);l=!l}if(!l){l="";for(h-=1;0<=h;h--)l+=g[h];g=l}c+=g}}return c}function bd(d,a,b){var c=new Image;c.onload=function(){b.resolve(d,c)};c.src="data:image/jpeg;base64,"+window.btoa(a)}function jb(d,
+a){this.name=d;this.comObj=a;this.callbackIndex=1;var b=this.callbacks={},c=this.actionHandler={};c.console_log=[function(a){Ia.apply(null,a)}];c.console_error="console"in ma?[function(a){ma.console.error.apply(null,a)}]:[function(a){Ia.apply(null,a)}];c._warn=[function(a){Y(a)}];a.onmessage=function(e){var f=e.data;if(f.isReply)if(e=f.callbackId,f.callbackId in b){var g=b[e];delete b[e];g(f.data)}else w("Cannot resolve callback "+e);else f.action in c?(e=c[f.action],f.callbackId?(g=new E,g.then(function(c){a.postMessage({isReply:!0,
+callbackId:f.callbackId,data:c})}),e[0].call(e[1],f.data,g)):e[0].call(e[1],f.data)):w("Unkown action from worker: "+f.action)}}var Rb=function(){function d(a,b){this.url=a;b=b||{};this.httpHeaders=b.httpHeaders||{};this.getXhr=b.getXhr||function(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests={};this.loadedRequests={}}d.prototype={requestRange:function(a,b,c){a={begin:a,end:b};for(var e in c)a[e]=c[e];return this.request(a)},requestFull:function(a){return this.request(a)},request:function(a){var b=
+this.getXhr(),c=this.currXhrId++,e=this.pendingRequests[c]={xhr:b};b.open("GET",this.url);for(var f in this.httpHeaders){var g=this.httpHeaders[f];"undefined"!==typeof g&&b.setRequestHeader(f,g)}"begin"in a&&"end"in a?(b.setRequestHeader("Range","bytes="+(a.begin+"-"+(a.end-1))),e.expectedStatus=206):e.expectedStatus=200;b.mozResponseType=b.responseType="arraybuffer";a.onProgress&&(b.onprogress=a.onProgress);a.onError&&(b.onerror=function(c){a.onError(b.status)});b.onreadystatechange=this.onStateChange.bind(this,
+c);e.onHeadersReceived=a.onHeadersReceived;e.onDone=a.onDone;e.onError=a.onError;b.send(null);return c},onStateChange:function(a,b){var c=this.pendingRequests[a];if(c){var e=c.xhr;2<=e.readyState&&c.onHeadersReceived&&(c.onHeadersReceived(),delete c.onHeadersReceived);if(4===e.readyState&&a in this.pendingRequests)if(delete this.pendingRequests[a],0===e.status){if(c.onError)c.onError(e.status)}else if(!(200===e.status&&206===c.expectedStatus)&&e.status!==c.expectedStatus){if(c.onError)c.onError(e.status)}else{this.loadedRequests[a]=
+!0;var f;f=e.mozResponseArrayBuffer||e.mozResponse||e.responseArrayBuffer||e.response;if("string"===typeof f){for(var g=f.length,h=new Uint8Array(g),l=0;l<g;l++)h[l]=f.charCodeAt(l)&255;f=h}if(206===e.status)e=e.getResponseHeader("Content-Range"),e=/bytes (\d+)-(\d+)\/(\d+)/.exec(e),e=parseInt(e[1],10),c.onDone({begin:e,chunk:f});else c.onDone({begin:0,chunk:f})}}},hasPendingRequests:function(){for(var a in this.pendingRequests)return!0;return!1},getRequestXhr:function(a){return this.pendingRequests[a].xhr},
+isPendingRequest:function(a){return a in this.pendingRequests},isLoadedRequest:function(a){return a in this.loadedRequests},abortAllRequests:function(){for(var a in this.pendingRequests)this.abortRequest(a|0)},abortRequest:function(a){var b=this.pendingRequests[a].xhr;delete this.pendingRequests[a];b.abort()}};return d}(),cd=function(){function d(a,b){this.bytes=new Uint8Array(a);this.pos=this.start=0;this.end=a;this.chunkSize=b;this.loadedChunks=[];this.numChunksLoaded=0;this.numChunks=Math.ceil(a/
+b)}d.prototype={getMissingChunks:function(){for(var a=[],b=0,c=this.numChunks;b<c;++b)b in this.loadedChunks||a.push(b);return a},allChunksLoaded:function(){return this.numChunksLoaded===this.numChunks},onReceiveData:function(a,b){var c=a+b.byteLength;0===a%this.chunkSize||w("Bad begin offset: "+a);var e=this.bytes.length;0===c%this.chunkSize||c===e||w("Bad end offset: "+c);this.bytes.set(new Uint8Array(b),a);e=this.chunkSize;c=Math.floor((c-1)/e)+1;for(b=Math.floor(a/e);b<c;++b)b in this.loadedChunks||
+(this.loadedChunks[b]=!0,++this.numChunksLoaded)},ensureRange:function(a,b){if(!(a>=b))for(var c=this.chunkSize,e=Math.floor((b-1)/c)+1,c=Math.floor(a/c);c<e;++c)if(!(c in this.loadedChunks))throw new Na(a,b);},nextEmptyChunk:function(a){for(var b=a,c=this.numChunks;b<c;++b)if(!(b in this.loadedChunks))return b;for(b=0;b<a;++b)if(!(b in this.loadedChunks))return b;return null},hasChunk:function(a){return a in this.loadedChunks},get length(){return this.end-this.start},getByte:function(){var a=this.pos;
+if(a>=this.end)return null;this.ensureRange(a,a+1);return this.bytes[this.pos++]},getBytes:function(a){var b=this.bytes,c=this.pos,e=this.end;if(!a)return this.ensureRange(c,e),b.subarray(c,e);a=c+a;a>e&&(a=e);this.ensureRange(c,a);this.pos=a;return b.subarray(c,a)},getByteRange:function(a,b){this.ensureRange(a,b);return this.bytes.subarray(a,b)},lookChar:function(){var a=this.pos;if(a>=this.end)return null;this.ensureRange(a,a+1);return String.fromCharCode(this.bytes[a])},getChar:function(){var a=
+this.pos;if(a>=this.end)return null;this.ensureRange(a,a+1);return String.fromCharCode(this.bytes[this.pos++])},skip:function(a){a||(a=1);this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(a,b,c){function e(){}e.prototype=Object.create(this);var f=new e;f.pos=f.start=a;f.end=a+b||this.end;f.dict=c;return f},isStream:!0};return d}(),dd=function(){function d(a,b,c,e){this.stream=new cd(a,b);this.length=a;this.chunkSize=b;this.url=c;this.disableAutoFetch=
+e.disableAutoFetch;var f=this.msgHandler=e.msgHandler;e.chunkedViewerLoading?(f.on("OnDataRange",this.onReceiveData.bind(this)),this.sendRequest=function(a,c){f.send("RequestDataRange",{begin:a,end:c})}):(this.networkManager=new Rb(this.url,{getXhr:function(){return new XMLHttpRequest},httpHeaders:e.httpHeaders}),this.sendRequest=function(a,c){this.networkManager.requestRange(a,c,{onDone:this.onReceiveData.bind(this)})});this.currRequestId=0;this.chunksNeededByRequest={};this.requestsByChunk={};this.callbacksByRequest=
+{};this.loadedStream=new E}d.prototype={onLoadedStream:function(){return this.loadedStream},requestAllChunks:function(){for(var a=this.stream.getMissingChunks(),b=[],c=0,e=a.length;c<e;++c){var f=a[c];f in this.requestsByChunk||(this.requestsByChunk[f]=[],b.push(f))}a=this.groupChunks(b);c=0;for(e=a.length;c<e;++c)f=a[c],b=f.beginChunk*this.chunkSize,f=Math.min(f.endChunk*this.chunkSize,this.length),this.sendRequest(b,f);return this.loadedStream},getStream:function(){return this.stream},requestRange:function(a,
+b,c){b=Math.min(b,this.length);var e=this.getBeginChunk(a),f=this.getEndChunk(b);a=this.currRequestId++;for(this.chunksNeededByRequest[a]=b={};e<f;++e)this.stream.hasChunk(e)||(b[e]=!0);if(zb(b))c();else{this.callbacksByRequest[a]=c;c=[];for(e in b)e|=0,e in this.requestsByChunk||(this.requestsByChunk[e]=[],c.push(e)),this.requestsByChunk[e].push(a);if(c.length){c=this.groupChunks(c);for(e=0;e<c.length;++e)b=c[e],a=b.beginChunk*this.chunkSize,b=Math.min(b.endChunk*this.chunkSize,this.length),this.sendRequest(a,
+b)}}},groupChunks:function(a){for(var b=[],c,e,f=0;f<a.length;++f){var g=a[f];c||(c=g);e&&e+1!==g&&(b.push({beginChunk:c,endChunk:e+1}),c=g);f+1===a.length&&b.push({beginChunk:c,endChunk:g+1});e=g}return b},onReceiveData:function(a){var b=a.chunk;a=a.begin;var c=a+b.byteLength,e=this.getBeginChunk(a),c=this.getEndChunk(c);this.stream.onReceiveData(a,b);this.stream.allChunksLoaded()&&this.loadedStream.resolve(this.stream);a=[];for(b=e;b<c;++b){var f=this.requestsByChunk[b]||[];delete this.requestsByChunk[b];
+for(e=0;e<f.length;++e){var g=f[e],h=this.chunksNeededByRequest[g];b in h&&delete h[b];zb(h)&&a.push(g)}}if(!this.disableAutoFetch&&zb(this.requestsByChunk)){var l;1===this.stream.numChunksLoaded?(b=this.stream.numChunks-1,this.stream.hasChunk(b)||(l=b)):l=this.stream.nextEmptyChunk(c);N(l)&&(l*=this.chunkSize,this.requestRange(l,l+this.chunkSize,function(){}))}for(e=0;e<a.length;++e)g=a[e],l=this.callbacksByRequest[g],delete this.callbacksByRequest[g],l();this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*
+this.chunkSize,total:this.length})},getBeginChunk:function(a){return Math.floor(a/this.chunkSize)},getEndChunk:function(a){return 0===a%this.chunkSize?a/this.chunkSize:Math.floor((a-1)/this.chunkSize)+1}};return d}(),dc=function(){function d(){throw Error("Cannot initialize BaseManagerManager");}d.prototype={onLoadedStream:function(){throw new sb;},ensureModel:function(a,b){return this.ensure(this.pdfModel,a,b)},ensureXRef:function(a,b){return this.ensure(this.pdfModel.xref,a,b)},ensureCatalog:function(a,
+b){return this.ensure(this.pdfModel.catalog,a,b)},getPage:function(a){return this.pdfModel.getPage(a)},ensure:function(a,b,c){return new sb},requestRange:function(a,b){return new sb},requestLoadedStream:function(){return new sb}};return d}(),uc=function(){function d(a,b){var c=new wa(a);this.pdfModel=new Sb(this,c,b);this.loadedStream=new E;this.loadedStream.resolve(c)}d.prototype=Object.create(dc.prototype);d.prototype.constructor=d;d.prototype.ensure=function(a,b,c){var e=new E;try{var f=a[b],g;
+g="function"===typeof f?f.apply(a,c):f;e.resolve(g)}catch(h){console.log(h.stack),e.reject(h)}return e};d.prototype.requestRange=function(a,b){var c=new E;c.resolve();return c};d.prototype.requestLoadedStream=function(){};d.prototype.onLoadedStream=function(){return this.loadedStream};return d}(),vc=function(){function d(b,c){this.msgHandler=c;this.streamManager=new dd(b.length,a,b.url,{msgHandler:c,httpHeaders:b.httpHeaders,chunkedViewerLoading:b.chunkedViewerLoading,disableAutoFetch:b.disableAutoFetch});
+this.pdfModel=new Sb(this,this.streamManager.getStream(),b.password)}var a=65536;d.prototype=Object.create(dc.prototype);d.prototype.constructor=d;d.prototype.ensure=function(a,c,e){var f=new E;this.ensureHelper(f,a,c,e);return f};d.prototype.ensureHelper=function(a,c,e,f){try{var g,h=c[e];g="function"===typeof h?h.apply(c,f):h;a.resolve(g)}catch(l){l instanceof Na?this.streamManager.requestRange(l.begin,l.end,function(){this.ensureHelper(a,c,e,f)}.bind(this)):(console.log(l.stack),a.reject(l))}};
+d.prototype.requestRange=function(a,c){var e=new E;this.streamManager.requestRange(a,c,function(){e.resolve()});return e};d.prototype.requestLoadedStream=function(){this.streamManager.requestAllChunks()};d.prototype.onLoadedStream=function(){return this.streamManager.onLoadedStream()};return d}(),ma="undefined"===typeof window?this:window,wc="undefined"==typeof window,Ib=1,Zc=5,bc=Ib;ma.PDFJS||(ma.PDFJS={});ma.PDFJS.pdfBug=!1;var fd=function(){function d(a){var c=a.get("AP");if(W(c)){var e,c=c.get("N");
+W(c)?(a=a.get("AS"))&&c.has(a.name)&&(e=c.get(a.name)):e=c;return e}}function a(a,c,e,f,g){this.pdfManager=a;this.pageIndex=e;this.pageDict=f;this.xref=c;this.ref=g;this.idCounters={font:0,obj:0}}a.prototype={getPageProp:function(a){return this.pageDict.get(a)},inheritPageProp:function(a){for(var c=this.pageDict,e=c.get(a);void 0===e;){c=c.get("Parent");if(!c)break;e=c.get(a)}return e},get content(){return this.getPageProp("Contents")},get resources(){return fa(this,"resources",this.inheritPageProp("Resources"))},
+get mediaBox(){var a=this.inheritPageProp("MediaBox");if(!U(a)||4!==a.length)a=[0,0,612,792];return fa(this,"mediaBox",a)},get view(){var a=this.mediaBox,c=this.inheritPageProp("CropBox");if(!U(c)||4!==c.length)return fa(this,"view",a);c=M.intersect(c,a);return!c?fa(this,"view",a):fa(this,"view",c)},get annotations(){return fa(this,"annotations",this.inheritPageProp("Annots"))},get rotate(){var a=this.inheritPageProp("Rotate")||0;0!==a%90?a=0:360<=a?a%=360:0>a&&(a=(a%360+360)%360);return fa(this,
+"rotate",a)},getContentStream:function(){var a=this.content;if(U(a)){var c=this.xref,e,f=a.length,g=[];for(e=0;e<f;++e)g.push(c.fetchIfRef(a[e]));a=new ed(g)}else a=ra(a)?a:new xc;return a},getOperatorList:function(a){var c=new E,e=new E,f=new E,g=this.pdfManager,h=g.ensure(this,"getContentStream",[]),l=g.ensure(this,"resources"),p=new Tb(g,this.xref,a,this.pageIndex,"p"+this.pageIndex+"_",this.idCounters);E.all([h,l]).then(function(a){g.ensure(p,"getOperatorList",[a[0],a[1]]).then(function(a){a.then(function(a){e.resolve(a)})})});
+g.ensure(this,"getAnnotationsForDraw",[]).then(function(a){g.ensure(p,"getAnnotationsOperatorList",[a]).then(function(a){a.then(function(a){f.resolve(a)})})});E.all([e,f]).then(function(a){var b=a[0],e=b.queue;a=a[1];var h=a.queue;M.concatenateToArray(e.fnArray,h.fnArray);M.concatenateToArray(e.argsArray,h.argsArray);Tb.optimizeQueue(e);M.extendObj(b.dependencies,a.dependencies);c.resolve(b)});return c},extractTextContent:function(){var a={on:function(){},send:function(){}},c=this,e=new E,f=this.pdfManager,
+g=f.ensure(this,"getContentStream",[]),h=new E;f.ensure(this,"resources").then(function(a){f.ensure(c.xref,"fetchIfRef",[a]).then(function(a){h.resolve(a)})});E.all([g,h]).then(function(h){var g=h[0];h=h[1];(new Tb(f,c.xref,a,c.pageIndex,"p"+c.pageIndex+"_",c.idCounters)).getTextContent(g,h).then(function(a){e.resolve({bidiTexts:a})})});return e},getLinks:function(){var a=[],c=this.getAnnotations(),e,f=c.length;for(e=0;e<f;++e)"Link"==c[e].type&&a.push(c[e]);return a},getAnnotations:function(){for(var a=
+this.getAnnotationsBase(),c=[],e=0,f=a.length;e<f;++e)c.push(a[e].item);return c},getAnnotationsForDraw:function(){for(var a=this.getAnnotationsBase(),c=[],e=0,f=a.length;e<f;++e){var g=a[e].item,h=a[e].dict;g.annotationFlags=h.get("F");var l=d(h);l&&"Text"!==g.type&&(g.appearance=l,l=l.dict,g.resources=l.get("Resources"),g.bbox=l.get("BBox")||[0,0,1,1],g.matrix=l.get("Matrix")||[1,0,0,1,0,0]);l=h.get("BS");if(W(l)&&!g.appearance){var p=l.has("W")?l.get("W"):1;0!==p&&(g.border={width:p,type:l.get("S")||
+"S",rgb:h.get("C")||[0,0,1]})}c.push(g)}return c},getAnnotationsBase:function(){function a(c,b){for(var e=c;e&&!e.has(b);)e=e.get("Parent");return!e?null:e.get(b)}function c(a){if(!a)return!1;var c=a.indexOf(":");if(0>c)return!1;switch(a.substr(0,c)){case "http":case "https":case "ftp":case "mailto":return!0;default:return!1}}var e=this.xref,f=this.annotations||[],g,h=f.length,l=[];for(g=0;g<h;++g){var p=f[g],k=e.fetchIfRef(p);if(W(k)){var m=k.get("Subtype");if(V(m)){var r={};r.type=m.name;var n=
+k.get("Rect");r.rect=M.normalizeRect(n);n=!0;switch(m.name){case "Link":if(m=k.get("A"))switch(m.get("S").name){case "URI":p=m.get("URI");c(p)||(p="");r.url=p;break;case "GoTo":r.dest=m.get("D");break;case "GoToR":p=m.get("F");W(p)&&(p=p.get("F")||"");c(p)||(p="");r.url=p;r.dest=m.get("D");break;default:oa("unrecognized link type: "+m.get("S").name)}else k.has("Dest")&&(m=k.get("Dest"),r.dest=V(m)?m.name:m);break;case "Widget":m=a(k,"FT");if(!V(m))break;if("Sig"===m.name){n=!1;break}r.fieldType=m.name;
+for(var m=[],q=k;q;){var t=q.get("Parent"),s=q.getRaw("Parent");if(q=q.get("T"))m.unshift(Ja(q));else{var q=t.get("Kids"),u,v;u=0;for(v=q.length;u<v;u++){var A=q[u];if(A.num==p.num&&A.gen==p.gen)break}m.unshift("`"+u)}q=t;p=s}r.fullName=m.join(".");m=Ja(k.get("TU")||"");r.alternativeText=m;m=a(k,"DA")||"";if(m=/([\d\.]+)\sTf/.exec(m))r.fontSize=parseFloat(m[1]);r.textAlignment=a(k,"Q");r.flags=a(k,"Ff")||0;break;case "Text":m=k.get("Contents");p=k.get("T");r.content=Ja(m||"");r.title=Ja(p||"");r.name=
+!k.has("Name")?"Note":k.get("Name").name;break;default:d(k)||oa("unimplemented annotation type: "+m.name)}n&&l.push({item:r,dict:k})}}}return l}};return a}(),Sb=function(){function d(c,b,g){ra(b)?a.call(this,c,b,g):Jb(b)?a.call(this,c,new wa(b),g):w("PDFDocument: Unknown argument type")}function a(a,c,b){la(0<c.length,"stream must have data");this.pdfManager=a;this.stream=c;this.xref=new gd(this.stream,b)}function b(a,c,b,h){var l=a.pos,p=a.end,k="";l+b>p&&(b=p-l);for(p=0;p<b;++p)k+=a.getChar();a.pos=
+l;c=h?k.lastIndexOf(c):k.indexOf(c);if(-1==c)return!1;a.pos+=c;return!0}var c={get entries(){return fa(this,"entries",{Title:za,Author:za,Subject:za,Keywords:za,Creator:za,Producer:za,CreationDate:za,ModDate:za,Trapped:V})}};d.prototype={parse:function(a){this.setup(a);this.acroForm=this.catalog.catDict.get("AcroForm")},get linearization(){var a=this.stream.length,c=!1;if(a)try{c=new hd(this.stream),c.length!=a&&(c=!1)}catch(b){if(b instanceof Na)throw b;Y("The linearization data is not available or unreadable pdf data is found");
+c=!1}return fa(this,"linearization",c)},get startXRef(){var a=this.stream,c=0;if(this.linearization)a.reset(),b(a,"endobj",1024)&&(c=a.pos+6);else{for(var g=!1,h=a.end;!g&&0<h;)h-=1015,0>h&&(h=0),a.pos=h,g=b(a,"startxref",1024,!0);if(g){a.skip(9);do c=a.getChar();while(Ca.isSpace(c));for(g="";9>=c-0;)g+=c,c=a.getChar();c=parseInt(g,10);isNaN(c)&&(c=0)}}return fa(this,"startXRef",c)},get mainXRefEntriesOffset(){var a=0,c=this.linearization;c&&(a=c.mainXRefEntriesOffset);return fa(this,"mainXRefEntriesOffset",
+a)},checkHeader:function(){var a=this.stream;a.reset();if(b(a,"%PDF-",1024)){a.moveStart();for(var c="",g;" "<(g=a.getChar())&&!(12<=c.length);)c+=g;this.pdfFormatVersion=c.substring(5)}},parseStartXRef:function(){this.xref.setStartXRef(this.startXRef)},setup:function(a){this.xref.parse(a);this.catalog=new id(this.pdfManager,this.xref)},get numPages(){var a=this.linearization;return fa(this,"numPages",a?a.numPages:this.catalog.numPages)},get documentInfo(){var a={PDFFormatVersion:this.pdfFormatVersion,
+IsAcroFormPresent:!!this.acroForm};if(this.xref.trailer.has("Info")){var b=this.xref.trailer.get("Info"),g=c.entries,h;for(h in g)if(b.has(h)){var l=b.get(h);g[h](l)?a[h]="string"!==typeof l?l:Ja(l):da('Bad value in document info for "'+h+'"')}}return fa(this,"documentInfo",a)},get fingerprint(){var a=this.xref,c;if(a.trailer.has("ID"))c="",a.trailer.get("ID")[0].split("").forEach(function(a){c+=Number(a.charCodeAt(0)).toString(16)});else{a=this.stream.bytes.subarray(0,100);a=Ya(a,0,a.length);c="";
+for(var b=0,h=a.length;b<h;b++)c+=Number(a[b]).toString(16)}return fa(this,"fingerprint",c)},traversePages:function(){this.catalog.traversePages()},getPage:function(a){return this.catalog.getPage(a)}};return d}(),Ia=function(){return"console"in ma&&"log"in ma.console?ma.console.log.bind(ma.console):function(){}}();PDFJS.LogManager=function(){var d=[];return{addLogger:function(a){d.push(a)},notify:function(a,b){for(var c=0,e=d.length;c<e;c++){var f=d[c];if(f[a])f[a](b)}}}}();var Ub=function(){function d(a,
+b){this.name="PasswordException";this.message=a;this.code=b}d.prototype=Error();return d.constructor=d}(),jd=function(){function d(a,b){this.name="UnknownErrorException";this.message=a;this.details=b}d.prototype=Error();return d.constructor=d}(),yc=function(){function d(a){this.name="InvalidPDFException";this.message=a}d.prototype=Error();return d.constructor=d}(),zc=function(){function d(a){this.name="MissingPDFException";this.message=a}d.prototype=Error();return d.constructor=d}(),sb=function(){function d(a){this.message=
+a}d.prototype=Error();d.prototype.name="NotImplementedException";return d.constructor=d}(),Na=function(){function d(a,b){this.begin=a;this.end=b;this.message="Missing data [begin, end)"}d.prototype=Error();d.prototype.name="MissingDataException";return d.constructor=d}(),Ac=function(){function d(a){this.message=a}d.prototype=Error();d.prototype.name="XRefParseException";return d.constructor=d}(),Vb=[1,0,0,1,0,0],M=PDFJS.Util=function(){function d(){}d.makeCssRgb=function(a){return"rgb("+a[0]+","+
+a[1]+","+a[2]+")"};d.makeCssCmyk=function(a){var b=new eb;d.makeCssCmyk=function(a){a=b.getRgb(a,0);return d.makeCssRgb(a)};return d.makeCssCmyk(a)};d.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]};d.applyTransform=function(a,b){return[a[0]*b[0]+a[1]*b[2]+b[4],a[0]*b[1]+a[1]*b[3]+b[5]]};d.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2];return[(a[0]*b[3]-a[1]*b[2]+b[2]*
+b[5]-b[4]*b[3])/c,(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c]};d.getAxialAlignedBoundingBox=function(a,b){var c=d.applyTransform(a,b),e=d.applyTransform(a.slice(2,4),b),f=d.applyTransform([a[0],a[3]],b),g=d.applyTransform([a[2],a[1]],b);return[Math.min(c[0],e[0],f[0],g[0]),Math.min(c[1],e[1],f[1],g[1]),Math.max(c[0],e[0],f[0],g[0]),Math.max(c[1],e[1],f[1],g[1])]};d.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*
+a[0])/b]};d.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]};d.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],e=a[2]*b[1]+a[3]*b[3],f=(c+e)/2;a=Math.sqrt((c+e)*(c+e)-4*(c*e-(a[2]*b[0]+a[3]*b[2])*(a[0]*b[1]+a[1]*b[3])))/2;b=f-a||1;return[Math.sqrt(f+a||1),Math.sqrt(b)]};d.normalizeRect=function(a){var b=a.slice(0);a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]);a[1]>a[3]&&(b[1]=a[3],b[3]=
+a[1]);return b};d.intersect=function(a,b){function c(a,c){return a-c}var e=[a[0],a[2],b[0],b[2]].sort(c),f=[a[1],a[3],b[1],b[3]].sort(c),g=[];a=d.normalizeRect(a);b=d.normalizeRect(b);if(e[0]===a[0]&&e[1]===b[0]||e[0]===b[0]&&e[1]===a[0])g[0]=e[1],g[2]=e[2];else return!1;if(f[0]===a[1]&&f[1]===b[1]||f[0]===b[1]&&f[1]===a[1])g[1]=f[1],g[3]=f[2];else return!1;return g};d.sign=function(a){return 0>a?-1:1};d.concatenateToArray=function(a,b){Array.prototype.push.apply(a,b)};d.prependToArray=function(a,
+b){Array.prototype.unshift.apply(a,b)};d.extendObj=function(a,b){for(var c in b)a[c]=b[c]};return d}();PDFJS.PageViewport=function(){function d(a,b,c,e,f){this.viewBox=a;this.scale=b;this.rotation=c;this.offsetX=e;this.offsetY=f;var g=(a[2]+a[0])/2,h=(a[3]+a[1])/2,l,p,k;switch(c%360){case -180:case 180:c=-1;p=l=0;k=1;break;case -270:case 90:c=0;p=l=1;k=0;break;case -90:case 270:c=0;p=l=-1;k=0;break;default:c=1,p=l=0,k=-1}var d;0===c?(e=Math.abs(h-a[1])*b+e,f=Math.abs(g-a[0])*b+f,d=Math.abs(a[3]-a[1])*
+b,a=Math.abs(a[2]-a[0])*b):(e=Math.abs(g-a[0])*b+e,f=Math.abs(h-a[1])*b+f,d=Math.abs(a[2]-a[0])*b,a=Math.abs(a[3]-a[1])*b);this.transform=[c*b,l*b,p*b,k*b,e-c*b*g-p*b*h,f-l*b*g-k*b*h];this.width=d;this.height=a;this.fontScale=b}d.prototype={clone:function(a){a=a||{};var b="scale"in a?a.scale:this.scale;a="rotation"in a?a.rotation:this.rotation;return new d(this.viewBox.slice(),b,a,this.offsetX,this.offsetY)},convertToViewportPoint:function(a,b){return M.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=
+M.applyTransform([a[0],a[1]],this.transform);a=M.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],a[0],a[1]]},convertToPdfPoint:function(a,b){return M.applyInverseTransform([a,b],this.transform)}};return d}();var ad=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,
+8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364],E=PDFJS.Promise=function(){function d(b,c){this.name=b;this.isRejected=!1;this.exception=this.error=null;null!==c&&void 0!==c?(this.isResolved=!0,this._data=c,this.hasData=!0):(this.isResolved=!1,this._data=a);this.callbacks=[];this.errbacks=[];this.progressbacks=[]}var a={};d.all=function(a){var c=new d,e=a.length,f=[];if(0===e)return c.resolve(f),c;
+for(var g=0,h=a.length;g<h;++g)a[g].then(function(a){return function(b){f[a]=b;e--;0===e&&c.resolve(f)}}(g));return c};d.prototype={hasData:!1,set data(b){if(void 0!==b&&(this._data!==a&&w("Promise "+this.name+": Cannot set the data of a promise twice"),this._data=b,this.hasData=!0,this.onDataCallback))this.onDataCallback(b)},get data(){this._data===a&&w("Promise "+this.name+": Cannot get data that isn't set");return this._data},onData:function(b){this._data!==a?b(this._data):this.onDataCallback=
+b},resolve:function(a){this.isResolved&&w("A Promise can be resolved only once "+this.name);this.isRejected&&w("The Promise was already rejected "+this.name);this.isResolved=!0;this.data="undefined"!==typeof a?a:null;for(var c=this.callbacks,e=0,f=c.length;e<f;e++)c[e].call(null,a)},progress:function(a){for(var c=this.progressbacks,e=0,f=c.length;e<f;e++)c[e].call(null,a)},reject:function(a,c){this.isRejected&&w("A Promise can be rejected only once "+this.name);this.isResolved&&w("The Promise was already resolved "+
+this.name);this.isRejected=!0;this.error=a||null;this.exception=c||null;for(var e=this.errbacks,f=0,g=e.length;f<g;f++)e[f].call(null,a,c)},then:function(a,c,e){a||f("Requiring callback"+this.name);if(this.isResolved)a.call(null,this.data);else if(this.isRejected&&c){var f=this.error;c.call(null,f,this.exception)}else this.callbacks.push(a),c&&this.errbacks.push(c);e&&this.progressbacks.push(e)}};return d}(),kd=function(){function d(){this.started={};this.times=[];this.enabled=!0}d.prototype={time:function(a){if(this.enabled){if(a in
+this.started)throw"Timer is already running for "+a;this.started[a]=Date.now()}},timeEnd:function(a){if(this.enabled){if(!(a in this.started))throw"Timer has not been started for "+a;this.times.push({name:a,start:this.started[a],end:Date.now()});delete this.started[a]}},toString:function(){for(var a=this.times,b="",c=0,e=0,f=a.length;e<f;++e){var g=a[e].name;g.length>c&&(c=g.length)}e=0;for(f=a.length;e<f;++e){for(var h=a[e],g=h.end-h.start,h=h.name;h.length<c;)h+=" ";b+=h+" "+g+"ms\n"}return b}};
+return d}();PDFJS.createBlob=function(d,a){if("function"===typeof Blob)return new Blob([d],{type:a});var b=new MozBlobBuilder;b.append(d);return b.getBlob(a)};PDFJS.getDocument=function(d,a){var b,c,e;"string"===typeof d?d={url:d}:Jb(d)?d={data:d}:"object"!==typeof d&&w("Invalid parameter in getDocument, need either Uint8Array, string or a parameter object");!d.url&&!d.data&&w("Invalid parameter array, need either .data or .url");var f={};for(b in d)f[b]="url"===b&&"undefined"!==typeof window?$c(window.location.href,
+d[b]):d[b];b=new PDFJS.Promise;c=new PDFJS.Promise;e=new ld(b,c,a);b.then(function(){e.fetchDocument(f)});return c};var md=function(){function d(a,b){this.pdfInfo=a;this.transport=b}d.prototype={get numPages(){return this.pdfInfo.numPages},get fingerprint(){return this.pdfInfo.fingerprint},get embeddedFontsUsed(){return this.transport.embeddedFontsUsed},getPage:function(a){return this.transport.getPage(a)},getDestinations:function(){return this.transport.getDestinations()},getJavaScript:function(){var a=
+new PDFJS.Promise;a.resolve(this.pdfInfo.javaScript);return a},getOutline:function(){var a=new PDFJS.Promise;a.resolve(this.pdfInfo.outline);return a},getMetadata:function(){var a=new PDFJS.Promise,b=this.pdfInfo.metadata;a.resolve({info:this.pdfInfo.info,metadata:b?new PDFJS.Metadata(b):null});return a},isEncrypted:function(){var a=new PDFJS.Promise;a.resolve(this.pdfInfo.encrypted);return a},getData:function(){var a=new PDFJS.Promise;this.transport.getData(a);return a},dataLoaded:function(){return this.transport.dataLoaded()},
+destroy:function(){this.transport.destroy()}};return d}(),nd=function(){function d(a,b){this.pageInfo=a;this.transport=b;this.stats=new kd;this.stats.enabled=!!ma.PDFJS.enableStats;this.commonObjs=b.commonObjs;this.objs=new Bc;this.cleanupAfterRender=this.renderInProgress=!1}d.prototype={get pageNumber(){return this.pageInfo.pageIndex+1},get rotate(){return this.pageInfo.rotate},get ref(){return this.pageInfo.ref},get view(){return this.pageInfo.view},getViewport:function(a,b){2>arguments.length&&
+(b=this.rotate);return new PDFJS.PageViewport(this.view,a,b,0,0)},getAnnotations:function(){if(this.annotationsPromise)return this.annotationsPromise;var a=new PDFJS.Promise;this.annotationsPromise=a;this.transport.getAnnotations(this.pageInfo.pageIndex);return a},render:function(a){function b(a){e.renderInProgress=!1;if(e.destroyed||e.cleanupAfterRender)delete e.displayReadyPromise,delete e.operatorList,e.objs.clear();a?c.reject(a):c.resolve()}this.renderInProgress=!0;var c=new E;this.stats.time("Overall");
+this.displayReadyPromise||(this.displayReadyPromise=new E,this.destroyed=!1,this.stats.time("Page Request"),this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageNumber-1}));var e=this,f=a.continueCallback;this.displayReadyPromise.then(function(){if(e.destroyed)b();else{var c=new Cc(a.canvasContext,this.commonObjs,this.objs,a.textLayer,a.imageLayer);try{this.display(c,a.viewport,b,f)}catch(h){b(h)}}}.bind(this),function(a){b(a)});return c},startRenderingFromOperatorList:function(a,
+b){var c=this;this.operatorList=a;var e=function(){setTimeout(function(){c.displayReadyPromise.resolve()})};this.ensureFonts(b,function(){e()})},ensureFonts:function(a,b){this.stats.time("Font Loading");for(var c=[],e=0,f=a.length;e<f;e++){var g=this.commonObjs.getData(a[e]);g.error?Y("Error during font loading: "+g.error):(g.coded||(this.transport.embeddedFontsUsed=!0),c.push(g))}kb.bind(c,function(a){this.stats.timeEnd("Font Loading");b.call(this)}.bind(this))},display:function(a,b,c,e){function f(){l=
+a.executeOperatorList(h,l,d,k);l==p&&(a.endDrawing(),g.timeEnd("Rendering"),g.timeEnd("Overall"),c&&c())}var g=this.stats;g.time("Rendering");var h=this.operatorList;a.beginDrawing(b,h.transparency);var l=0,p=h.fnArray.length,k=null;PDFJS.pdfBug&&("StepperManager"in ma&&ma.StepperManager.enabled)&&(k=ma.StepperManager.create(this.pageNumber-1),k.init(h),k.nextBreakPoint=k.getNextBreakPoint());var d;d=e?function(){e(f)}:f;d()},getTextContent:function(){var a=new PDFJS.Promise;this.transport.messageHandler.send("GetTextContent",
+{pageIndex:this.pageNumber-1},function(b){a.resolve(b)});return a},getOperationList:function(){var a=new PDFJS.Promise;a.resolve({dependencyFontsID:null,operatorList:null});return a},destroy:function(){this.destroyed=!0;this.renderInProgress||(delete this.operatorList,delete this.displayReadyPromise,this.objs.clear())}};return d}(),ld=function(){function d(a,b,c){this.pdfDataRangeTransport=c;this.workerReadyPromise=b;this.commonObjs=new Bc;this.pageCache=[];this.pagePromises=[];this.embeddedFontsUsed=
+!1;if(!ma.PDFJS.disableWorker&&"undefined"!==typeof Worker){b=PDFJS.workerSrc;"undefined"===typeof b&&w("No PDFJS.workerSrc specified");try{var e=new Worker(b),f=new jb("main",e);this.messageHandler=f;f.on("test",function(c){c?(this.worker=e,this.setupMessageHandler(f)):(ma.PDFJS.disableWorker=!0,this.setupFakeWorker());a.resolve()}.bind(this));var g=new Uint8Array(1);f.send("test",g);return}catch(h){da("The worker has been disabled.")}}ma.PDFJS.disableWorker=!0;this.setupFakeWorker();a.resolve()}
+d.prototype={destroy:function(){this.pageCache=[];this.pagePromises=[];var a=this;this.messageHandler.send("Terminate",null,function(){a.worker&&a.worker.terminate()})},setupFakeWorker:function(){Y("Setting up fake worker.");var a={postMessage:function(c){a.onmessage({data:c})},terminate:function(){}},b=new jb("main",a);this.setupMessageHandler(b);Dc.setup(b)},setupMessageHandler:function(a){this.messageHandler=a;var b=this.pdfDataRangeTransport;b&&(b.addListener(function(c,b){a.send("OnDataRange",
+{begin:c,chunk:b})}),a.on("RequestDataRange",function(a){b.requestDataRange(a.begin,a.end)},this));a.on("GetDoc",function(a){this.pdfDocument=a=new md(a.pdfInfo,this);this.workerReadyPromise.resolve(a)},this);a.on("NeedPassword",function(a){this.workerReadyPromise.reject(a.exception.message,a.exception)},this);a.on("IncorrectPassword",function(a){this.workerReadyPromise.reject(a.exception.message,a.exception)},this);a.on("InvalidPDF",function(a){this.workerReadyPromise.reject(a.exception.name,a.exception)},
+this);a.on("MissingPDF",function(a){this.workerReadyPromise.reject(a.exception.message,a.exception)},this);a.on("UnknownError",function(a){this.workerReadyPromise.reject(a.exception.message,a.exception)},this);a.on("GetPage",function(a){a=a.pageInfo;var b=new nd(a,this);this.pageCache[a.pageIndex]=b;this.pagePromises[a.pageIndex].resolve(b)},this);a.on("GetAnnotations",function(a){this.pageCache[a.pageIndex].annotationsPromise.resolve(a.annotations)},this);a.on("RenderPage",function(a){var b=this.pageCache[a.pageIndex],
+f=a.depFonts;b.stats.timeEnd("Page Request");b.startRenderingFromOperatorList(a.operatorList,f)},this);a.on("commonobj",function(a){var b=a[0],f=a[1];if(!this.commonObjs.hasData(b))switch(f){case "Font":a=a[2];a="error"in a?new Db(a.error):new Wb(a);this.commonObjs.resolve(b,a);break;default:w("Got unknown common object type "+f)}},this);a.on("obj",function(a){var b=a[0],f=a[2],g=this.pageCache[a[1]];if(!g.objs.hasData(b))switch(f){case "JpegStream":a=a[3];bd(b,a,g.objs);break;case "Image":a=a[3];
+g.objs.resolve(b,a);"data"in a&&8E6<a.data.length&&(g.cleanupAfterRender=!0);break;default:w("Got unknown object type "+f)}},this);a.on("DocProgress",function(a){this.workerReadyPromise.progress({loaded:a.loaded,total:a.total})},this);a.on("DocError",function(a){this.workerReadyPromise.reject(a)},this);a.on("PageError",function(a){var b=this.pageCache[a.pageNum-1];b.displayReadyPromise?b.displayReadyPromise.reject(a.error):w(a.error)},this);a.on("JpegDecode",function(a,b){var f=a[0],g=a[1];3!=g&&
+1!=g&&w("Only 3 component or 1 component can be returned");var h=new Image;h.onload=function(){var a=h.width,c=h.height,f=a*c,d=4*f,f=new Uint8Array(f*g),r=Ba(a,c).getContext("2d");r.drawImage(h,0,0);r=r.getImageData(0,0,a,c).data;if(3==g)for(var n=0,q=0;n<d;n+=4,q+=3)f[q]=r[n],f[q+1]=r[n+1],f[q+2]=r[n+2];else if(1==g)for(q=n=0;n<d;n+=4,q++)f[q]=r[n];b.resolve({data:f,width:a,height:c})}.bind(this);f="data:image/jpeg;base64,"+window.btoa(f);h.src=f})},fetchDocument:function(a){a.disableAutoFetch=
+PDFJS.disableAutoFetch;a.chunkedViewerLoading=!!this.pdfDataRangeTransport;this.messageHandler.send("GetDocRequest",{source:a,disableRange:PDFJS.disableRange})},getData:function(a){this.messageHandler.send("GetData",null,function(b){a.resolve(b)})},dataLoaded:function(){var a=new PDFJS.Promise;this.messageHandler.send("DataLoaded",null,function(b){a.resolve(b)});return a},getPage:function(a,b){var c=a-1;if(c in this.pagePromises)return this.pagePromises[c];b=new PDFJS.Promise("Page "+a);this.pagePromises[c]=
+b;this.messageHandler.send("GetPageRequest",{pageIndex:c});return b},getAnnotations:function(a){this.messageHandler.send("GetAnnotationsRequest",{pageIndex:a})},getDestinations:function(){var a=new PDFJS.Promise;this.messageHandler.send("GetDestinations",null,function(b){a.resolve(b)});return a}};return d}();qb=0;var od=function(){function d(a){this.alphaIsShape=!1;this.fontSize=0;this.fontSizeScale=1;this.textMatrix=Vb;this.fontMatrix=xa;this.wordSpacing=this.charSpacing=this.lineY=this.lineX=this.y=
+this.x=this.leading=0;this.textHScale=1;this.textRenderingMode=qb;this.textRise=0;this.fillColorSpace=new Za;this.fillColorSpaceObj=null;this.strokeColorSpace=new Za;this.strokeColorObj=this.fillColorObj=this.strokeColorSpaceObj=null;this.strokeColor=this.fillColor="#000000";this.lineWidth=this.strokeAlpha=this.fillAlpha=1;this.paintFormXObjectDepth=0;this.old=a}d.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a;this.y=b}};return d}(),Cc=function(){function d(a,
+c,b,e,f){this.ctx=a;this.current=new od;this.stateStack=[];this.xobjs=this.res=this.pendingClip=null;this.commonObjs=c;this.objs=b;this.textLayer=e;this.imageLayer=f;this.groupStack=[];a&&Lb(a)}function a(a,c,b,e,f){var g=0,d,q,t,s,u=3;for(d=0;d<b;d++)for(q=t=0;q<c;q++)t||(s=a[g++],t=128),!(s&t)===e&&(f[u]=0),u+=4,t>>=1}function b(a,c,b,e){b="createImageData"in a?a.createImageData(b,e):a.getImageData(0,0,b,e);e=b.data;if("set"in e)e.set(c);else for(var f=0,g=e.length;f<g;f++)e[f]=c[f];a.putImageData(b,
+0,0)}var c=["butt","round","square"],e=["miter","round","bevel"],f={},g={};d.prototype={slowCommands:{stroke:!0,closeStroke:!0,fill:!0,eoFill:!0,fillStroke:!0,eoFillStroke:!0,closeFillStroke:!0,closeEOFillStroke:!0,showText:!0,showSpacedText:!0,setStrokeColorSpace:!0,setFillColorSpace:!0,setStrokeColor:!0,setStrokeColorN:!0,setFillColor:!0,setFillColorN:!0,setStrokeGray:!0,setFillGray:!0,setStrokeRGBColor:!0,setFillRGBColor:!0,setStrokeCMYKColor:!0,setFillCMYKColor:!0,paintJpegXObject:!0,paintImageXObject:!0,
+paintInlineImageXObject:!0,paintInlineImageXObjectGroup:!0,paintImageMaskXObject:!0,paintImageMaskXObjectGroup:!0,shadingFill:!0},beginDrawing:function(a,c){var b=this.ctx.canvas.width,e=this.ctx.canvas.height;c?this.ctx.clearRect(0,0,b,e):(this.ctx.mozOpaque=!0,this.ctx.save(),this.ctx.fillStyle="rgb(255, 255, 255)",this.ctx.fillRect(0,0,b,e),this.ctx.restore());b=a.transform;this.ctx.save();this.ctx.transform.apply(this.ctx,b);this.textLayer&&this.textLayer.beginLayout();this.imageLayer&&this.imageLayer.beginLayout()},
+executeOperatorList:function(a,c,b,e){var f=a.argsArray;a=a.fnArray;c=c||0;var g=f.length;if(g==c)return c;for(var d=Date.now()+15,q=this.commonObjs,t=this.objs,s,u=this.slowCommands;;){if(e&&c===e.nextBreakPoint)return e.breakIt(c,b),c;s=a[c];if("dependency"!==s)this[s].apply(this,f[c]);else for(var v=f[c],A=0,T=v.length;A<T;A++){var Z=v[A],$="g_"==Z.substring(0,2);if(!$&&!t.isResolved(Z))return t.get(Z,b),c;if($&&!q.isResolved(Z))return q.get(Z,b),c}c++;if(c==g)return c;if(b&&u[s]&&Date.now()>d)return setTimeout(b,
+0),c}},endDrawing:function(){this.ctx.restore();this.textLayer&&this.textLayer.endLayout();this.imageLayer&&this.imageLayer.endLayout()},setLineWidth:function(a){this.current.lineWidth=a;this.ctx.lineWidth=a},setLineCap:function(a){this.ctx.lineCap=c[a]},setLineJoin:function(a){this.ctx.lineJoin=e[a]},setMiterLimit:function(a){this.ctx.miterLimit=a},setDash:function(a,c){var b=this.ctx;"setLineDash"in b?(b.setLineDash(a),b.lineDashOffset=c):(b.mozDash=a,b.mozDashOffset=c)},setRenderingIntent:function(a){},
+setFlatness:function(a){},setGState:function(a){for(var c=0,b=a.length;c<b;c++){var e=a[c],f=e[1];switch(e[0]){case "LW":this.setLineWidth(f);break;case "LC":this.setLineCap(f);break;case "LJ":this.setLineJoin(f);break;case "ML":this.setMiterLimit(f);break;case "D":this.setDash(f[0],f[1]);break;case "RI":this.setRenderingIntent(f);break;case "FL":this.setFlatness(f);break;case "Font":this.setFont(e[1],e[2]);break;case "CA":this.current.strokeAlpha=e[1];break;case "ca":this.current.fillAlpha=e[1];
+this.ctx.globalAlpha=e[1];break;case "BM":f&&f.name&&"Normal"!==f.name?(e=f.name.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}).substring(1),this.ctx.globalCompositeOperation=e,this.ctx.globalCompositeOperation!==e&&Y('globalCompositeOperation "'+e+'" is not supported')):this.ctx.globalCompositeOperation="source-over"}}},save:function(){this.ctx.save();var a=this.current;this.stateStack.push(a);this.current=a.clone()},restore:function(){"textClipLayers"in this&&this.completeTextClipping();
+var a=this.stateStack.pop();a&&(this.current=a,this.ctx.restore())},transform:function(a,c,b,e,f,g){this.ctx.transform(a,c,b,e,f,g)},moveTo:function(a,c){this.ctx.moveTo(a,c);this.current.setCurrentPoint(a,c)},lineTo:function(a,c){this.ctx.lineTo(a,c);this.current.setCurrentPoint(a,c)},curveTo:function(a,c,b,e,f,g){this.ctx.bezierCurveTo(a,c,b,e,f,g);this.current.setCurrentPoint(f,g)},curveTo2:function(a,c,b,e){var f=this.current;this.ctx.bezierCurveTo(f.x,f.y,a,c,b,e);f.setCurrentPoint(b,e)},curveTo3:function(a,
+c,b,e){this.curveTo(a,c,b,e,b,e);this.current.setCurrentPoint(b,e)},closePath:function(){this.ctx.closePath()},rectangle:function(a,c,b,e){this.ctx.rect(a,c,b,e)},stroke:function(a){a="undefined"!==typeof a?a:!0;var c=this.ctx,b=this.current.strokeColor;0===this.current.lineWidth&&(c.lineWidth=this.getSinglePixelWidth());c.globalAlpha=this.current.strokeAlpha;b&&b.hasOwnProperty("type")&&"Pattern"===b.type?(c.save(),c.strokeStyle=b.getPattern(c),c.stroke(),c.restore()):c.stroke();a&&this.consumePath();
+c.globalAlpha=this.current.fillAlpha},closeStroke:function(){this.closePath();this.stroke()},fill:function(a){a="undefined"!==typeof a?a:!0;var c=this.ctx,b=this.current.fillColor;b&&b.hasOwnProperty("type")&&"Pattern"===b.type?(c.save(),c.fillStyle=b.getPattern(c),c.fill(),c.restore()):c.fill();a&&this.consumePath()},eoFill:function(){var a=this.setEOFillRule();this.fill();this.restoreFillRule(a)},fillStroke:function(){this.fill(!1);this.stroke(!1);this.consumePath()},eoFillStroke:function(){var a=
+this.setEOFillRule();this.fillStroke();this.restoreFillRule(a)},closeFillStroke:function(){this.closePath();this.fillStroke()},closeEOFillStroke:function(){var a=this.setEOFillRule();this.closePath();this.fillStroke();this.restoreFillRule(a)},endPath:function(){this.consumePath()},clip:function(){this.pendingClip=f},eoClip:function(){this.pendingClip=g},beginText:function(){this.current.textMatrix=Vb;this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0},endText:function(){"textClipLayers"in
+this&&this.swapImageForTextClipping()},getCurrentTextClipping:function(){var a=this.ctx,c=a.mozCurrentTransform;if("textClipLayers"in this){var b=this.textClipLayers.maskCtx;b.setTransform.apply(b,c);b.font=a.font;return b}var e=Ba(a.canvas.width,a.canvas.height),b=e.getContext("2d");b.setTransform.apply(b,c);b.font=a.font;this.textClipLayers={maskCanvas:e,maskCtx:b};return b},swapImageForTextClipping:function(){var a=this.ctx,c=a.canvas.width,b=a.canvas.height;a.save();a.setTransform(1,0,0,1,0,0);
+var e=a.getImageData(0,0,c,b);this.textClipLayers.imageData=e;a.clearRect(0,0,c,b);a.restore()},completeTextClipping:function(){var a=this.ctx,c=this.textClipLayers.maskCtx;c.setTransform(1,0,0,1,0,0);c.globalCompositeOperation="source-in";c.drawImage(a.canvas,0,0);a.save();a.setTransform(1,0,0,1,0,0);a.putImageData(this.textClipLayers.imageData,0,0);a.drawImage(this.textClipLayers.maskCanvas,0,0);a.restore();delete this.textClipLayers},setCharSpacing:function(a){this.current.charSpacing=a},setWordSpacing:function(a){this.current.wordSpacing=
+a},setHScale:function(a){this.current.textHScale=a/100},setLeading:function(a){this.current.leading=-a},setFont:function(a,c){var b=this.commonObjs.get(a),e=this.current;b||w("Can't find font for "+a);e.fontMatrix=b.fontMatrix?b.fontMatrix:xa;(0===e.fontMatrix[0]||0===e.fontMatrix[3])&&Y("Invalid font matrix for font "+a);0>c?(c=-c,e.fontDirection=-1):e.fontDirection=1;this.current.font=b;this.current.fontSize=c;if(!b.coded){var e=b.black?b.bold?"bolder":"bold":b.bold?"bold":"normal",f=b.italic?"italic":
+"normal",b='"'+(b.loadedName||"sans-serif")+'", '+b.fallbackName,g=16<=c?c:16;this.current.fontSizeScale=16!=g?1:c/16;this.ctx.font=f+" "+e+" "+g+"px "+b}},setTextRenderingMode:function(a){this.current.textRenderingMode=a},setTextRise:function(a){this.current.textRise=a},moveText:function(a,c){this.current.x=this.current.lineX+=a;this.current.y=this.current.lineY+=c},setLeadingMoveText:function(a,c){this.setLeading(-c);this.moveText(a,c)},setTextMatrix:function(a,c,b,e,f,g){this.current.textMatrix=
+[a,c,b,e,f,g];this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0},nextLine:function(){this.moveText(0,this.current.leading)},applyTextTransforms:function(){var a=this.ctx,c=this.current;a.transform.apply(a,c.textMatrix);a.translate(c.x,c.y+c.textRise);0<c.fontDirection?a.scale(c.textHScale,-1):a.scale(-c.textHScale,1)},createTextGeometry:function(){var a={},c=this.current.font,b=this.ctx.mozCurrentTransform;if(b){var e=M.applyTransform([0,0],b),b=M.applyTransform([1,1],b);a.x=
+e[0];a.y=e[1];a.hScale=b[0]-e[0];a.vScale=b[1]-e[1]}a.spaceWidth=c.spaceWidth;a.fontName=c.loadedName;a.fontFamily=c.fallbackName;a.fontSize=this.current.fontSize;return a},showText:function(a,c){var b=this.ctx,e=this.current,f=e.font,g=f.charsToGlyphs(a),d=e.fontSize,q=e.fontSizeScale,t=e.charSpacing,s=e.wordSpacing,u=e.textHScale*e.fontDirection,v=e.fontMatrix||xa,A=g.length,T,Z=this.textLayer&&!c?!0:!1,$=e.textRenderingMode,B=0,L=f.vertical,ia=f.defaultVMetrics;if(f.coded){b.save();b.transform.apply(b,
+e.textMatrix);b.translate(e.x,e.y);b.scale(u,1);Z&&(this.save(),b.scale(1,-1),T=this.createTextGeometry(),this.restore());for(var X=0;X<A;++X){var y=g[X];if(null===y)this.ctx.translate(s,0),e.x+=s*u;else{this.save();b.scale(d,d);b.transform.apply(b,v);this.executeOperatorList(y.operatorList);this.restore();var H=(M.applyTransform([y.width,0],v)[0]*d+t)*e.fontDirection;b.translate(H,0);e.x+=H*u;B+=H}}}else{b.save();this.applyTextTransforms();var X=e.lineWidth,v=e.textMatrix[0],ja=e.textMatrix[1],v=
+Math.sqrt(v*v+ja*ja),X=0===v||0===X?this.getSinglePixelWidth():X/v;Z&&(T=this.createTextGeometry());1!=q&&(b.scale(q,q),X/=q);b.lineWidth=X;for(X=v=0;X<A;++X)if(y=g[X],null===y)v+=e.fontDirection*s;else{ja=y.fontChar;H=y.vmetric||ia;if(L)var x=y.vmetric?H[1]:0.5*y.width,x=-x*d*e.fontMatrix[0],z=H[2]*d*e.fontMatrix[0];var H=H?-H[0]:y.width,H=H*d*e.fontMatrix[0]+t*e.fontDirection,w=y.accent,J,G,K;if(!y.disabled){L?(y=x/q,J=(v+z)/q):(y=v/q,J=0);w&&(G=y+w.offset.x/q,K=J-w.offset.y/q);switch($){default:case qb:case 4:b.fillText(ja,
+y,J);w&&b.fillText(w.fontChar,G,K);break;case 1:case 5:b.strokeText(ja,y,J);w&&b.strokeText(w.fontChar,G,K);break;case 2:case 6:b.fillText(ja,y,J),b.strokeText(ja,y,J),w&&(b.fillText(w.fontChar,G,K),b.strokeText(w.fontChar,G,K));case 3:case 7:}if($&4){var Q=this.getCurrentTextClipping();Q.fillText(ja,y,J);w&&Q.fillText(w.fontChar,G,K)}}v+=H;B+=H}L?e.y-=v*u:e.x+=v*u}b.restore();Z&&(T.canvasWidth=B,L&&(H=f.defaultVMetrics,T.x+=H[1]*d*e.fontMatrix[0]/q*T.hScale,T.y+=H[2]*d*e.fontMatrix[0]/q*T.vScale),
+this.textLayer.appendText(T));return B},showSpacedText:function(a){var c=this.ctx,b=this.current,e=b.font,f=b.fontSize,g=0.001*b.textHScale*b.fontDirection,d=a.length,q,t=0,s=this.textLayer?!0:!1,u=e.vertical,v=0;s&&(c.save(),this.applyTextTransforms(),q=this.createTextGeometry(),c.restore());for(c=0;c<d;++c){var A=a[c];La(A)?(A=-A*f*g,u?b.y+=A:b.x+=A,s&&(v+=A)):za(A)?(A=this.showText(A,!0),s&&(t+=v+A,v=0)):w("TJ array element "+A+" is not string or num")}s&&(q.canvasWidth=t,u&&(a=b.fontSizeScale,
+e=e.defaultVMetrics,q.x+=e[1]*f*b.fontMatrix[0]/a*q.hScale,q.y+=e[2]*f*b.fontMatrix[0]/a*q.vScale),this.textLayer.appendText(q))},nextLineShowText:function(a){this.nextLine();this.showText(a)},nextLineSetSpacingShowText:function(a,c,b){this.setWordSpacing(a);this.setCharSpacing(c);this.nextLineShowText(b)},setCharWidth:function(a,c){},setCharWidthAndBounds:function(a,c,b,e,f,g){this.rectangle(b,e,f-b,g-e);this.clip();this.endPath()},setStrokeColorSpace:function(a){this.current.strokeColorSpace=ha.fromIR(a)},
+setFillColorSpace:function(a){this.current.fillColorSpace=ha.fromIR(a)},setStrokeColor:function(){var a=this.current.strokeColorSpace.getRgb(arguments,0),a=M.makeCssRgb(a);this.ctx.strokeStyle=a;this.current.strokeColor=a},getColorN_Pattern:function(a,c){if("TilingPattern"==a[0]){var b=a[1],e=c.base,f;e&&(f=e.getRgb(b,0));b=new Ec(a,f,this.ctx,this.objs,this.commonObjs)}else"RadialAxial"==a[0]||"Dummy"==a[0]?b=Eb.shadingFromIR(a):w("Unkown IR type "+a[0]);return b},setStrokeColorN:function(){var a=
+this.current.strokeColorSpace;"Pattern"==a.name?this.current.strokeColor=this.getColorN_Pattern(arguments,a):this.setStrokeColor.apply(this,arguments)},setFillColor:function(){var a=this.current.fillColorSpace.getRgb(arguments,0),a=M.makeCssRgb(a);this.ctx.fillStyle=a;this.current.fillColor=a},setFillColorN:function(){var a=this.current.fillColorSpace;"Pattern"==a.name?this.current.fillColor=this.getColorN_Pattern(arguments,a):this.setFillColor.apply(this,arguments)},setStrokeGray:function(a){this.current.strokeColorSpace instanceof
+Za||(this.current.strokeColorSpace=new Za);var c=this.current.strokeColorSpace.getRgb(arguments,0),c=M.makeCssRgb(c);this.ctx.strokeStyle=c;this.current.strokeColor=c},setFillGray:function(a){this.current.fillColorSpace instanceof Za||(this.current.fillColorSpace=new Za);var c=this.current.fillColorSpace.getRgb(arguments,0),c=M.makeCssRgb(c);this.ctx.fillStyle=c;this.current.fillColor=c},setStrokeRGBColor:function(a,c,b){this.current.strokeColorSpace instanceof Qa||(this.current.strokeColorSpace=
+new Qa);var e=this.current.strokeColorSpace.getRgb(arguments,0),e=M.makeCssRgb(e);this.ctx.strokeStyle=e;this.current.strokeColor=e},setFillRGBColor:function(a,c,b){this.current.fillColorSpace instanceof Qa||(this.current.fillColorSpace=new Qa);var e=this.current.fillColorSpace.getRgb(arguments,0),e=M.makeCssRgb(e);this.ctx.fillStyle=e;this.current.fillColor=e},setStrokeCMYKColor:function(a,c,b,e){this.current.strokeColorSpace instanceof eb||(this.current.strokeColorSpace=new eb);var f=M.makeCssCmyk(arguments);
+this.ctx.strokeStyle=f;this.current.strokeColor=f},setFillCMYKColor:function(a,c,b,e){this.current.fillColorSpace instanceof eb||(this.current.fillColorSpace=new eb);var f=M.makeCssCmyk(arguments);this.ctx.fillStyle=f;this.current.fillColor=f},shadingFill:function(a){var c=this.ctx;this.save();a=Eb.shadingFromIR(a);c.fillStyle=a.getPattern(c);var b=c.mozCurrentTransformInverse;if(b){var c=c.canvas,e=c.width,f=c.height,c=M.applyTransform([0,0],b);a=M.applyTransform([0,f],b);var g=M.applyTransform([e,
+0],b),d=M.applyTransform([e,f],b),b=Math.min(c[0],a[0],g[0],d[0]),e=Math.min(c[1],a[1],g[1],d[1]),f=Math.max(c[0],a[0],g[0],d[0]),c=Math.max(c[1],a[1],g[1],d[1]);this.ctx.fillRect(b,e,f-b,c-e)}else this.ctx.fillRect(-1E10,-1E10,2E10,2E10);this.restore()},beginInlineImage:function(){w("Should not call beginInlineImage")},beginImageData:function(){w("Should not call beginImageData")},paintFormXObjectBegin:function(a,c){this.save();this.current.paintFormXObjectDepth++;a&&(U(a)&&6==a.length)&&this.transform.apply(this,
+a);c&&(U(c)&&4==c.length)&&(this.rectangle(c[0],c[1],c[2]-c[0],c[3]-c[1]),this.clip(),this.endPath())},paintFormXObjectEnd:function(){var a=this.current.paintFormXObjectDepth;do this.restore();while(this.current.paintFormXObjectDepth>=a)},beginGroup:function(a){this.save();var c=this.ctx;a.isolated||da("TODO: Support non-isolated groups.");a.knockout&&oa("Support knockout groups.");var b=c.mozCurrentTransform;a.matrix&&c.transform.apply(c,a.matrix);a.bbox||w("Bounding box is required.");var e=M.getAxialAlignedBoundingBox(a.bbox,
+c.mozCurrentTransform);a=Math.max(Math.ceil(e[2]-e[0]),1);var f=Math.max(Math.ceil(e[3]-e[1]),1);a=Ba(a,f).getContext("2d");Lb(a);f=e[0];e=e[1];a.translate(-f,-e);a.transform.apply(a,b);c.setTransform(1,0,0,1,0,0);c.translate(f,e);b="strokeStyle fillStyle fillRule globalAlpha lineWidth lineCap lineJoin miterLimit globalCompositeOperation font".split(" ");e=0;for(f=b.length;e<f;e++){var g=b[e];g in c&&(a[g]=c[g])}"setLineDash"in c?(a.setLineDash(c.getLineDash()),a.lineDashOffset=c.lineDashOffset):
+"mozDash"in c&&(a.mozDash=c.mozDash,a.mozDashOffset=c.mozDashOffset);this.ctx=a;this.setGState([["SMask","None"],["BM","Normal"],["ca",1],["CA",1]]);this.groupStack.push(c)},endGroup:function(a){a=this.ctx;this.ctx=this.groupStack.pop();"imageSmoothingEnabled"in this.ctx?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1;this.ctx.drawImage(a.canvas,0,0);this.restore()},beginAnnotation:function(a,c,b,e){this.save();if(a&&U(a)&&4==a.length){var f=a[2]-a[0],g=a[3]-a[1];if(e){this.save();
+var d=e.rgb;this.setStrokeRGBColor(d[0],d[1],d[2]);this.setLineWidth(e.width);this.rectangle(a[0],a[1],f,g);this.stroke();this.restore()}this.rectangle(a[0],a[1],f,g);this.clip();this.endPath()}this.transform.apply(this,c);this.transform.apply(this,b)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,b){var e=this.objs.get(a);e||w("Dependent image isn't ready yet");this.save();var f=this.ctx;f.scale(1/c,-1/b);f.drawImage(e,0,0,e.width,e.height,0,-b,c,b);this.imageLayer&&(e=f.mozCurrentTransformInverse,
+f=this.getCanvasPosition(0,0),this.imageLayer.appendImage({objId:a,left:f[0],top:f[1],width:c/e[0],height:b/e[3]}));this.restore()},paintImageMaskXObject:function(c,b,e,f){var g=Ba(e,f).getContext("2d"),d=this.current.fillColor;g.fillStyle=d&&d.hasOwnProperty("type")&&"Pattern"===d.type?d.getPattern(g):d;g.fillRect(0,0,e,f);g=g.getImageData(0,0,e,f);a(c,e,f,b,g.data);this.paintInlineImageXObject(g)},paintImageMaskXObjectGroup:function(c){for(var b=this.ctx,e=0,f=0,g,d,n=0,q=c.length;n<q;n++){var t=
+c[n],s=t.width,u=t.height;if(s>e||u>f){e=Math.max(s,e);f=Math.max(u,f);g=Ba(e,f);d=g.getContext("2d");var v=this.current.fillColor;d.fillStyle=v&&v.hasOwnProperty("type")&&"Pattern"===v.type?v.getPattern(d):v}d.fillRect(0,0,s,u);v=d.getImageData(0,0,s,u);a(t.data,s,u,t.inverseDecode,v.data);d.putImageData(v,0,0);b.save();b.transform.apply(b,t.transform);b.scale(1,-1);b.drawImage(g,0,0,s,u,0,-1,1,1);b.restore()}},paintImageXObject:function(a){(a=this.objs.get(a))||w("Dependent image isn't ready yet");
+this.paintInlineImageXObject(a)},paintInlineImageXObject:function(a){var c=a.width,e=a.height,f=this.ctx;this.save();f.scale(1/c,-1/e);var g=f.mozCurrentTransformInverse,d=Math.max(Math.abs(g[0]),1),n=Math.max(Math.abs(g[3]),1),q=Ba(c,e),t=q.getContext("2d");if(2<d||2<n){for(var q=a.data,t=c,s=e,q=new Uint8Array(q);2<d||2<n;){if(2<n){for(var u=4*t,v=0,A=0,T=0;T<s-1;T+=2){for(var Z=0;Z<t;Z++){var $=q[v+3],B=q[v+3+u];if($===B)q[A]=q[v]+q[v+u]>>1,q[A+1]=q[v+1]+q[v+1+u]>>1,q[A+2]=q[v+2]+q[v+2+u]>>1,q[A+
+3]=$;else if($<B){var L=256-B+$;q[A]=q[v]*L+(q[v+u]<<8)>>9;q[A+1]=q[v+1]*L+(q[v+1+u]<<8)>>9;q[A+2]=q[v+2]*L+(q[v+2+u]<<8)>>9;q[A+3]=B}else L=256-$+B,q[A]=(q[v]<<8)+q[v+u]*L>>9,q[A+1]=(q[v+1]<<8)+q[v+1+u]*L>>9,q[A+2]=(q[v+2]<<8)+q[v+2+u]*L>>9,q[A+3]=$;v+=4;A+=4}v+=u}if(s&1)for(T=0;T<u;T++)q[A++]=q[v++];s=s+1>>1;n/=2}if(2<d){for(T=A=v=0;T<s;T++){for(Z=0;Z<t-1;Z+=2)$=q[v+3],B=q[v+7],$===B?(q[A]=q[v]+q[v+4]>>1,q[A+1]=q[v+1]+q[v+5]>>1,q[A+2]=q[v+2]+q[v+6]>>1,q[A+3]=$):$<B?(L=256-B+$,q[A]=q[v]*L+(q[v+4]<<
+8)>>9,q[A+1]=q[v+1]*L+(q[v+5]<<8)>>9,q[A+2]=q[v+2]*L+(q[v+6]<<8)>>9,q[A+3]=B):(L=256-$+B,q[A]=(q[v]<<8)+q[v+4]*L>>9,q[A+1]=(q[v+1]<<8)+q[v+5]*L>>9,q[A+2]=(q[v+2]<<8)+q[v+6]*L>>9,q[A+3]=$),v+=8,A+=4;t&1&&(q[A++]=q[v++],q[A++]=q[v++],q[A++]=q[v++],q[A++]=q[v++])}t=t+1>>1;d/=2}}d=Ba(t,s);n=d.getContext("2d");b(n,q.subarray(0,4*t*s),t,s);q=d;f.drawImage(q,0,0,q.width,q.height,0,-e,c,e)}else"undefined"!==typeof ImageData&&a instanceof ImageData?t.putImageData(a,0,0):b(t,a.data,c,e),f.drawImage(q,0,-e);
+this.imageLayer&&(f=this.getCanvasPosition(0,-e),this.imageLayer.appendImage({imgData:a,left:f[0],top:f[1],width:c/g[0],height:e/g[3]}));this.restore()},paintInlineImageXObjectGroup:function(a,c){var e=this.ctx,f=a.width,g=a.height,d=Ba(f,g),n=d.getContext("2d");b(n,a.data,f,g);for(var n=0,q=c.length;n<q;n++){var t=c[n];e.save();e.transform.apply(e,t.transform);e.scale(1,-1);e.drawImage(d,t.x,t.y,t.w,t.h,0,-1,1,1);this.imageLayer&&(t=this.getCanvasPosition(t.x,t.y),this.imageLayer.appendImage({imgData:a,
+left:t[0],top:t[1],width:f,height:g}));e.restore()}},markPoint:function(a){},markPointProps:function(a,c){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,c){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){if(this.pendingClip){var a=null;this.pendingClip==g&&(a=this.setEOFillRule());this.ctx.clip();this.pendingClip=null;null!==a&&this.restoreFillRule(a)}this.ctx.beginPath()},setEOFillRule:function(){var a=this.ctx.mozFillRule;
+this.ctx.mozFillRule="evenodd";return a},restoreFillRule:function(a){this.ctx.mozFillRule=a},getSinglePixelWidth:function(a){a=this.ctx.mozCurrentTransformInverse;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1],a[2]*a[2]+a[3]*a[3]))},getCanvasPosition:function(a,c){var b=this.ctx.mozCurrentTransform;return[b[0]*a+b[2]*c+b[4],b[1]*a+b[3]*c+b[5]]}};return d}(),Wa=function(){function d(a){this.name=a}d.prototype={};return d}(),Aa=function(){function d(a){this.cmd=a}d.prototype={};var a={};d.get=function(b){var c=
+a[b];return c?c:a[b]=new d(b)};return d}(),Ma=function(){function d(b){this.map=Object.create(null);this.xref=b;this.__nonSerializable__=a}var a=function(){return a};d.prototype={assignXref:function(a){this.xref=a},get:function(a,c,e){var f,g=this.xref;if("undefined"!=typeof(f=this.map[a])||a in this.map||"undefined"==typeof c||"undefined"!=typeof(f=this.map[c])||c in this.map||"undefined"==typeof e)return g?g.fetchIfRef(f):f;f=this.map[e]||null;return g?g.fetchIfRef(f):f},getRaw:function(a){return this.map[a]},
+getAll:function(){var a={},c;for(c in this.map){var e=this.get(c);a[c]=e instanceof d?e.getAll():e}return a},set:function(a,c){this.map[a]=c},has:function(a){return a in this.map},forEach:function(a){for(var c in this.map)a(c,this.get(c))}};return d}(),Kb=function(){function d(a,b){this.num=a;this.gen=b}d.prototype={};return d}(),Fc=function(){function d(){this.dict={}}d.prototype={has:function(a){return!!this.dict["R"+a.num+"."+a.gen]},put:function(a){this.dict["R"+a.num+"."+a.gen]=a}};return d}(),
+id=function(){function d(a,b){this.pdfManager=a;this.xref=b;this.catDict=b.getCatalogObj();la(W(this.catDict),"catalog object is not a dictionary");this.traversePagesQueue=[{pagesDict:this.toplevelPagesDict,posInKids:0}];this.pagePromises=[];this.currPageIndex=0}d.prototype={get metadata(){var a=this.catDict.getRaw("Metadata");if(!Ea(a))return fa(this,"metadata",null);var a=this.xref.fetch(a,!(!this.xref.encrypt?0:this.xref.encrypt.encryptMetadata)),b;if(a&&W(a.dict)){var c=a.dict.get("Type"),e=a.dict.get("Subtype");
+if(V(c)&&V(e)&&"Metadata"===c.name&&"XML"===e.name)try{var f=ib(a.getBytes());b=decodeURIComponent(escape(f))}catch(g){da("Skipping invalid metadata.")}}return fa(this,"metadata",b)},get toplevelPagesDict(){var a=this.catDict.get("Pages");la(W(a),"invalid top-level pages dictionary");return fa(this,"toplevelPagesDict",a)},get documentOutline(){var a=this.xref,b=this.catDict.get("Outlines"),c={items:[]};if(W(b)){var b=b.getRaw("First"),e=new Fc;if(Ea(b)){var f=[{obj:b,parent:c}];for(e.put(b);0<f.length;){var g=
+f.shift(),h=a.fetchIfRef(g.obj);if(null!==h){h.has("Title")||w("Invalid outline item");(b=h.get("A"))?b=b.get("D"):h.has("Dest")&&(b=h.getRaw("Dest"),V(b)&&(b=b.name));var l=h.get("Title"),l={dest:b,title:Ja(l),color:h.get("C")||[0,0,0],count:h.get("Count"),bold:!!(h.get("F")&2),italic:!!(h.get("F")&1),items:[]};g.parent.items.push(l);b=h.getRaw("First");Ea(b)&&!e.has(b)&&(f.push({obj:b,parent:l}),e.put(b));b=h.getRaw("Next");Ea(b)&&!e.has(b)&&(f.push({obj:b,parent:g.parent}),e.put(b))}}}}b=0<c.items.length?
+c.items:null;return fa(this,"documentOutline",b)},get numPages(){var a=this.toplevelPagesDict.get("Count");la(N(a),"page count in top level pages object is not an integer");return fa(this,"num",a)},get destinations(){var a=this.xref,b={},c,e,f=this.catDict.get("Names");f?c=f.getRaw("Dests"):this.catDict.has("Dests")&&(e=this.catDict.get("Dests"));e&&e.forEach(function(a,c){c&&(b[a]=W(c)?c.get("D"):c)});if(c){var a=(new Gc(c,a)).getAll(),g;for(g in a)a.hasOwnProperty(g)&&(b[g]=W(a[g])?a[g].get("D"):
+a[g])}return fa(this,"destinations",b)},get javaScript(){var a=this.xref,b=this.catDict.get("Names"),c=[];if(b&&b.has("JavaScript")){var a=(new Gc(b.getRaw("JavaScript"),a)).getAll(),e;for(e in a)if(a.hasOwnProperty(e)&&(b=a[e],W(b))){var f=b.get("S");if(V(f)&&"JavaScript"===f.name&&(b=b.get("JS"),za(b)||ra(b)))ra(b)&&(b=ib(b.getBytes())),c.push(Ja(b))}}return fa(this,"javaScript",c)},getPage:function(a){a in this.pagePromises||(this.pagePromises[a]=new E);return this.pagePromises[a]},traversePages:function(){for(var a=
+this.traversePagesQueue;a.length;){var b=a[a.length-1],c=b.pagesDict.get("Kids");U(c)||w("page dictionary kids object is not an array");if(b.posInKids>=c.length)a.pop();else{var e=c[b.posInKids];Ea(e)||w("page dictionary kid is not a reference");var f=this.xref.fetch(e);W(f,"Page")||W(f)&&!f.has("Kids")?(c=this.currPageIndex++,e=new fd(this.pdfManager,this.xref,c,f,e),c in this.pagePromises||(this.pagePromises[c]=new E),this.pagePromises[c].resolve(e)):(W(f)||w("page dictionary kid reference points to wrong type of object"),
+a.push({pagesDict:f,posInKids:0}));++b.posInKids}}}};return d}(),gd=function(){function d(a,b){this.stream=a;this.entries=[];this.xrefstms={};this.cache=[];this.password=b}d.prototype={setStartXRef:function(a){this.startXRefQueue=[a]},parse:function(a){a?(Y("Indexing all PDF objects"),a=this.indexObjects()):a=this.readXRef();a.assignXref(this);this.trailer=a;var b=a.get("Encrypt");if(b){var c=a.get("ID");this.encrypt=new pd(b,c&&c.length?c[0]:"",this.password)}(this.root=a.get("Root"))||w("Invalid root reference")},
+processXRefTable:function(a){"tableState"in this||(this.tableState={entryNum:0,streamPos:a.lexer.stream.pos,parserBuf1:a.buf1,parserBuf2:a.buf2});var b=this.readXRefTable(a);ea(b,"trailer")||w("Invalid XRef table: could not find trailer dictionary");a=a.getObj();W(a)||w("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return a},readXRefTable:function(a){var b=a.lexer.stream,c=this.tableState;b.pos=c.streamPos;a.buf1=c.parserBuf1;a.buf2=c.parserBuf2;for(var e;;){if(!("firstEntryNum"in
+c)||!("entryCount"in c)){if(ea(e=a.getObj(),"trailer"))break;c.firstEntryNum=e;c.entryCount=a.getObj()}var f=c.firstEntryNum,g=c.entryCount;(!N(f)||!N(g))&&w("Invalid XRef table: wrong types in subsection header");for(var h=c.entryNum;h<g;h++){c.streamPos=b.pos;c.entryNum=h;c.parserBuf1=a.buf1;c.parserBuf2=a.buf2;var l={};l.offset=a.getObj();l.gen=a.getObj();var d=a.getObj();ea(d,"f")?l.free=!0:ea(d,"n")&&(l.uncompressed=!0);if(!N(l.offset)||!N(l.gen)||!l.free&&!l.uncompressed)console.log(l.offset,
+l.gen,l.free,l.uncompressed),w("Invalid entry in XRef subsection: "+f+", "+g);this.entries[h+f]||(this.entries[h+f]=l)}c.entryNum=0;c.streamPos=b.pos;c.parserBuf1=a.buf1;c.parserBuf2=a.buf2;delete c.firstEntryNum;delete c.entryCount}this.entries[0]&&!this.entries[0].free&&w("Invalid XRef table: unexpected first object");return e},processXRefStream:function(a){if(!("streamState"in this)){var b=a.parameters,c=b.get("W"),e=b.get("Index");e||(e=[0,b.get("Size")]);this.streamState={entryRanges:e,byteWidths:c,
+entryNum:0,streamPos:a.pos}}this.readXRefStream(a);delete this.streamState;return a.parameters},readXRefStream:function(a){var b,c,e=this.streamState;a.pos=e.streamPos;b=e.byteWidths;for(var f=b[0],g=b[1],h=b[2],l=e.entryRanges;0<l.length;){var d=l[0],k=l[1];(!N(d)||!N(k))&&w("Invalid XRef range fields: "+d+", "+k);(!N(f)||!N(g)||!N(h))&&w("Invalid XRef entry fields length: "+d+", "+k);for(b=e.entryNum;b<k;++b){e.entryNum=b;e.streamPos=a.pos;var m=0,r=0,n=0;for(c=0;c<f;++c)m=m<<8|a.getByte();0===
+f&&(m=1);for(c=0;c<g;++c)r=r<<8|a.getByte();for(c=0;c<h;++c)n=n<<8|a.getByte();c={};c.offset=r;c.gen=n;switch(m){case 0:c.free=!0;break;case 1:c.uncompressed=!0;break;case 2:break;default:w("Invalid XRef entry type: "+m)}this.entries[d+b]||(this.entries[d+b]=c)}e.entryNum=0;e.streamPos=a.pos;l.splice(0,2)}},indexObjects:function(){function a(a,c){for(var b="",e=a[c];13!==e&&10!==e&&!(++c>=a.length);)b+=String.fromCharCode(e),e=a[c];return b}function b(a,c,b){for(var e=b.length,f=a.length,g=0;c<f;){for(var h=
+0;h<e&&a[c+h]==b[h];)++h;if(h>=e)break;c++;g++}return g}var c=new Uint8Array([116,114,97,105,108,101,114]),e=new Uint8Array([115,116,97,114,116,120,114,101,102]),f=new Uint8Array([101,110,100,111,98,106]),g=new Uint8Array([47,88,82,101,102]),h=this.stream;h.pos=0;for(var l=h.getBytes(),d=h.start,k=l.length,m=[],r=[];d<k;){var n=l[d];if(32===n||9===n||13===n||10===n)++d;else if(37===n){do++d,n=l[d];while(13!==n&&10!==n)}else{var n=a(l,d),q;if("xref"===n)d+=b(l,d,c),m.push(d),d+=b(l,d,e);else if(q=
+/^(\d+)\s+(\d+)\s+obj\b/.exec(n)){this.entries[q[1]]={offset:d,gen:q[2]|0,uncompressed:!0};n=b(l,d,f)+7;q=l.subarray(d,d+n);var t=b(q,0,g);t<n&&64>q[t+5]&&(r.push(d),this.xrefstms[d]=1);d+=n}else d+=n.length+1}}c=0;for(e=r.length;c<e;++c)this.startXRefQueue.push(r[c]),this.readXRef(!0);for(var s,c=0,e=m.length;c<e;++c)if(h.pos=m[c],r=new $a(new Ca(h),!0,null),f=r.getObj(),ea(f,"trailer")&&W(s=r.getObj())&&s.has("ID"))return s;if(s)return s;throw new yc("Invalid PDF structure");},readXRef:function(a){var b=
+this.stream;try{for(;this.startXRefQueue.length;){b.pos=this.startXRefQueue[0];var c=new $a(new Ca(b),!0,null),e=c.getObj(),f;if(ea(e,"xref")){if(f=this.processXRefTable(c),this.topDict||(this.topDict=f),e=f.get("XRefStm"),N(e)){var g=e;g in this.xrefstms||(this.xrefstms[g]=1,this.startXRefQueue.push(g))}}else N(e)&&((!N(c.getObj())||!ea(c.getObj(),"obj")||!ra(e=c.getObj()))&&w("Invalid XRef stream"),f=this.processXRefStream(e),this.topDict||(this.topDict=f),f||w("Failed to read XRef stream"));e=
+f.get("Prev");N(e)?this.startXRefQueue.push(e):Ea(e)&&this.startXRefQueue.push(e.num);this.startXRefQueue.shift()}return this.topDict}catch(h){if(h instanceof Na)throw h;Ia("(while reading XRef): "+h)}if(!a)throw new Ac;},getEntry:function(a){a=this.entries[a];return null===a?null:a.free||!a.offset?null:a},fetchIfRef:function(a){return!Ea(a)?a:this.fetch(a)},fetch:function(a,b){la(Ea(a),"ref object is not a reference");var c=a.num,e;if(c in this.cache)return e=this.cache[c],e instanceof wa?e.makeSubStream(e.start,
+e.length,e.dict):e;e=this.getEntry(c);if(null===e)return this.cache[c]=e;var f=a.gen,g;if(e.uncompressed){e.gen!=f&&w("inconsistent generation in XRef");g=this.stream.makeSubStream(e.offset);g=new $a(new Ca(g),!0,this);var h=g.getObj(),l=g.getObj(),d=g.getObj();(!N(h)||h!=c||!N(l)||l!=f||!ea(d))&&w("bad XRef entry");if(!ea(d,"obj")){if(0===d.cmd.indexOf("obj")&&(c=parseInt(d.cmd.substring(3),10),!isNaN(c)))return c;w("bad XRef entry")}if(this.encrypt&&!b)try{e=g.getObj(this.encrypt.createCipherTransform(c,
+f))}catch(k){return this.fetch(a,!0)}else e=g.getObj();!ra(e)||e instanceof tb?this.cache[c]=e:e instanceof wa?(e=e.makeSubStream(e.start,e.length,e.dict),this.cache[c]=e):"readBlock"in e&&(e.getBytes(),e=e.makeSubStream(0,e.bufferLength,e.dict),this.cache[c]=e);return e}f=e.offset;g=this.fetch(new Kb(f,0));ra(g)||w("bad ObjStm stream");c=g.parameters.get("First");h=g.parameters.get("N");(!N(c)||!N(h))&&w("invalid first and n parameters for ObjStm stream");g=new $a(new Ca(g),!1,this);g.allowStreams=
+!0;for(var d=[],m=[],l=0;l<h;++l)c=g.getObj(),N(c)||w("invalid object number in the ObjStm stream: "+c),m.push(c),c=g.getObj(),N(c)||w("invalid object offset in the ObjStm stream: "+c);for(l=0;l<h;++l){d.push(g.getObj());var c=m[l],r=this.entries[c];r&&(r.offset===f&&r.gen===l)&&(this.cache[c]=d[l])}(e=d[e.gen])||w("bad XRef entry for compressed object");return e},getCatalogObj:function(){return this.root}};return d}(),Gc=function(){function d(a,b){this.root=a;this.xref=b}d.prototype={getAll:function(){var a=
+{};if(!this.root)return a;var b=this.xref,c=new Fc;c.put(this.root);for(var e=[this.root];0<e.length;){var f,g;f=b.fetchIfRef(e.shift());if(W(f))if(f.has("Kids")){var h=f.get("Kids");f=0;for(g=h.length;f<g;f++){var l=h[f];c.has(l)&&w("invalid destinations");e.push(l);c.put(l)}}else if(h=f.get("Names")){f=0;for(g=h.length;f<g;f+=2)a[h[f]]=b.fetchIfRef(h[f+1])}}return a}};return d}(),Bc=function(){function d(){this.objs={}}d.prototype={ensureObj:function(a,b){return this.objs[a]?this.objs[a]:this.objs[a]=
+new E(a,b)},get:function(a,b){if(b)return this.ensureObj(a).then(b),null;var c=this.objs[a];(!c||!c.isResolved)&&w("Requesting object that isn't resolved yet "+a);return c.data},resolve:function(a,b){var c=this.objs;c[a]?c[a].resolve(b):this.ensureObj(a,b)},onData:function(a,b){this.ensureObj(a).onData(b)},isResolved:function(a){var b=this.objs;return b[a]?b[a].isResolved:!1},hasData:function(a){var b=this.objs;return b[a]?b[a].hasData:!1},getData:function(a){var b=this.objs;return!b[a]||!b[a].hasData?
+null:b[a].data},setData:function(a,b){this.ensureObj(a).data=b},clear:function(){this.objs={}}};return d}(),ab=function(){return{getSampleArray:function(d,a,b,c){for(var e=1,f=0,g=d.length;f<g;f++)e*=d[f];e*=a;d=[];var g=a=0,h=1/(Math.pow(2,b)-1);c=c.getBytes((e*b+7)/8);for(var l=0,f=0;f<e;f++){for(;a<b;)g<<=8,g|=c[l++],a+=8;a-=b;d.push((g>>a)*h);g&=(1<<a)-1}return d},getIR:function(d,a){var b=a.dict;b||(b=a);var c=[this.constructSampled,null,this.constructInterpolated,this.constructStiched,this.constructPostScript],
+e=b.get("FunctionType");(c=c[e])||w("Unknown type of function");return c.call(this,a,b,d)},fromIR:function(d){switch(d[0]){case 0:return this.constructSampledFromIR(d);case 2:return this.constructInterpolatedFromIR(d);case 3:return this.constructStichedFromIR(d);default:return this.constructPostScriptFromIR(d)}},parse:function(d,a){var b=this.getIR(d,a);return this.fromIR(b)},constructSampled:function(d,a){function b(a){for(var c=a.length,b=[],e=0,f=0;f<c;f+=2)b[e]=[a[f],a[f+1]],++e;return b}var c=
+a.get("Domain"),e=a.get("Range");(!c||!e)&&w("No domain or range");var f=c.length/2,g=e.length/2,c=b(c),e=b(e),h=a.get("Size"),l=a.get("BitsPerSample"),p=a.get("Order")||1;1!==p&&oa("No support for cubic spline interpolation: "+p);p=a.get("Encode");if(!p)for(var p=[],k=0;k<f;++k)p.push(0),p.push(h[k]-1);var p=b(p),k=(k=a.get("Decode"))?b(k):e,m=this.getSampleArray(h,g,l,d);return[0,f,c,p,k,m,h,g,Math.pow(2,l)-1,e]},constructSampledFromIR:function(d){return function(a){var b=d[1],c=d[2],e=d[3],f=d[4],
+g=d[5],h=d[6],l=d[7],p=d[9];b!=a.length&&w("Incorrect number of arguments: "+b+" != "+a.length);for(var k=1<<b,m=new Float64Array(k),r=new Uint32Array(k),n=0;n<k;n++)m[n]=1;for(var q=l,t=1,s=0;s<b;++s){for(var n=c[s][0],u=c[s][1],v=Math.min(Math.max(a[s],n),u),A=e[s][0]+(v-n)*((e[s][1]-e[s][0])/(u-n)),u=h[s],A=Math.min(Math.max(A,0),u-1),n=A<u-1?Math.floor(A):A-1,v=n+1-A,A=A-n,T=n*q,Z=T+q,n=0;n<k;n++)n&t?(m[n]*=A,r[n]+=Z):(m[n]*=v,r[n]+=T);q*=u;t<<=1}a=new Float64Array(l);for(n=0;n<l;++n){for(s=b=
+0;s<k;s++)b+=g[r[s]+n]*m[s];b=f[n][0]+(b-0)*((f[n][1]-f[n][0])/1);a[n]=Math.min(Math.max(b,p[n][0]),p[n][1])}return a}},constructInterpolated:function(d,a){var b=a.get("C0")||[0],c=a.get("C1")||[1],e=a.get("N");(!U(b)||!U(c))&&w("Illegal dictionary for interpolated function");for(var f=b.length,g=[],h=0;h<f;++h)g.push(c[h]-b[h]);return[2,b,g,e]},constructInterpolatedFromIR:function(d){var a=d[1],b=d[2],c=d[3],e=b.length;return function(f){f=1==c?f[0]:Math.pow(f[0],c);for(var g=[],h=0;h<e;++h)g.push(a[h]+
+f*b[h]);return g}},constructStiched:function(d,a,b){(d=a.get("Domain"))||w("No domain");1!=d.length/2&&w("Bad domain for stiched function");for(var c=a.get("Functions"),e=[],f=0,g=c.length;f<g;++f)e.push(ab.getIR(b,b.fetchIfRef(c[f])));b=a.get("Bounds");a=a.get("Encode");return[3,d,b,a,e]},constructStichedFromIR:function(d){var a=d[1],b=d[2],c=d[3];d=d[4];for(var e=[],f=0,g=d.length;f<g;f++)e.push(ab.fromIR(d[f]));return function(f){f=f[0];var g=a[0],d=a[1];f>d?f=d:f<g&&(f=g);g=0;for(d=b.length;g<
+d&&!(f<b[g]);++g);d=a[0];0<g&&(d=b[g-1]);var k=a[1];g<b.length&&(k=b[g]);var m=c[2*g];return e[g]([m+(f-d)*(c[2*g+1]-m)/(k-d)])}},constructPostScript:function(d,a,b){b=a.get("Domain");a=a.get("Range");b||w("No domain.");a||w("No range.");d=new qd(d);d=(new rd(d)).parse();return[4,b,a,d]},constructPostScriptFromIR:function(d){var a=d[1],b=d[2],c=b.length/2,e=new sd(d[3]),f=new td;return function(g){for(var h=[],d=0,p=a.length/2;d<p;++d)h.push(g[d]);g=h.join("_");if(f.has(g))return f.get(g);h=e.execute(h);
+p=[];for(d=c-1;0<=d;--d){var k=h.pop(),m=2*d;k<b[m]?k=b[m]:k>b[m+1]&&(k=b[m+1]);p[d]=k}f.set(g,p);return p}}}}(),td=function(){function d(){this.cache={};this.total=0}d.prototype={has:function(a){return a in this.cache},get:function(a){return this.cache[a]},set:function(a,b){1024>this.total&&(this.cache[a]=b,this.total++)}};return d}(),ud=function(){function d(a){this.stack=a||[]}d.prototype={push:function(a){100<=this.stack.length&&w("PostScript function stack overflow.");this.stack.push(a)},pop:function(){0>=
+this.stack.length&&w("PostScript function stack underflow.");return this.stack.pop()},copy:function(a){100<=this.stack.length+a&&w("PostScript function stack overflow.");var b=this.stack,c=b.length-a;for(a-=1;0<=a;a--,c++)b.push(b[c])},index:function(a){this.push(this.stack[this.stack.length-a-1])},roll:function(a,b){var c=this.stack,e=c.length-a,f=c.length-1,g=e+(b-Math.floor(b/a)*a),h,d,p;h=e;for(d=f;h<d;h++,d--)p=c[h],c[h]=c[d],c[d]=p;h=e;for(d=g-1;h<d;h++,d--)p=c[h],c[h]=c[d],c[d]=p;h=g;for(d=
+f;h<d;h++,d--)p=c[h],c[h]=c[d],c[d]=p}};return d}(),sd=function(){function d(a,b){this.operators=a;this.operands=b}d.prototype={execute:function(a){a=new ud(a);for(var b=0,c=this.operators,e=c.length,f,g;b<e;)if(f=c[b++],"number"==typeof f)a.push(f);else switch(f){case "jz":g=a.pop();(f=a.pop())||(b=g);break;case "j":b=f=a.pop();break;case "abs":f=a.pop();a.push(Math.abs(f));break;case "add":g=a.pop();f=a.pop();a.push(f+g);break;case "and":g=a.pop();f=a.pop();Ka(f)&&Ka(g)?a.push(f&&g):a.push(f&g);
+break;case "atan":f=a.pop();a.push(Math.atan(f));break;case "bitshift":g=a.pop();f=a.pop();0<f?a.push(f<<g):a.push(f>>g);break;case "ceiling":f=a.pop();a.push(Math.ceil(f));break;case "copy":f=a.pop();a.copy(f);break;case "cos":f=a.pop();a.push(Math.cos(f));break;case "cvi":f=a.pop()|0;a.push(f);break;case "cvr":break;case "div":g=a.pop();f=a.pop();a.push(f/g);break;case "dup":a.copy(1);break;case "eq":g=a.pop();f=a.pop();a.push(f==g);break;case "exch":a.roll(2,1);break;case "exp":g=a.pop();f=a.pop();
+a.push(Math.pow(f,g));break;case "false":a.push(!1);break;case "floor":f=a.pop();a.push(Math.floor(f));break;case "ge":g=a.pop();f=a.pop();a.push(f>=g);break;case "gt":g=a.pop();f=a.pop();a.push(f>g);break;case "idiv":g=a.pop();f=a.pop();a.push(f/g|0);break;case "index":f=a.pop();a.index(f);break;case "le":g=a.pop();f=a.pop();a.push(f<=g);break;case "ln":f=a.pop();a.push(Math.log(f));break;case "log":f=a.pop();a.push(Math.log(f)/Math.LN10);break;case "lt":g=a.pop();f=a.pop();a.push(f<g);break;case "mod":g=
+a.pop();f=a.pop();a.push(f%g);break;case "mul":g=a.pop();f=a.pop();a.push(f*g);break;case "ne":g=a.pop();f=a.pop();a.push(f!=g);break;case "neg":a.pop();a.push(-g);break;case "not":f=a.pop();Ka(f)&&Ka(g)?a.push(f&&g):a.push(f&g);break;case "or":g=a.pop();f=a.pop();Ka(f)&&Ka(g)?a.push(f||g):a.push(f|g);break;case "pop":a.pop();break;case "roll":g=a.pop();f=a.pop();a.roll(f,g);break;case "round":f=a.pop();a.push(Math.round(f));break;case "sin":f=a.pop();a.push(Math.sin(f));break;case "sqrt":f=a.pop();
+a.push(Math.sqrt(f));break;case "sub":g=a.pop();f=a.pop();a.push(f-g);break;case "true":a.push(!0);break;case "truncate":f=a.pop();f=0>f?Math.ceil(f):Math.floor(f);a.push(f);break;case "xor":g=a.pop();f=a.pop();Ka(f)&&Ka(g)?a.push(f!=g):a.push(f^g);break;default:w("Unknown operator "+f)}return a.stack}};return d}(),rd=function(){function d(a){this.lexer=a;this.operators=[];this.prev=this.token=null}d.prototype={nextToken:function(){this.prev=this.token;this.token=this.lexer.getToken()},accept:function(a){return this.token.type==
+a?(this.nextToken(),!0):!1},expect:function(a){if(this.accept(a))return!0;w("Unexpected symbol: found "+this.token.type+" expected "+a+".")},parse:function(){this.nextToken();this.expect(ba.LBRACE);this.parseBlock();this.expect(ba.RBRACE);return this.operators},parseBlock:function(){for(;;)if(this.accept(ba.NUMBER))this.operators.push(this.prev.value);else if(this.accept(ba.OPERATOR))this.operators.push(this.prev.value);else if(this.accept(ba.LBRACE))this.parseCondition();else break},parseCondition:function(){var a=
+this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(ba.RBRACE);if(this.accept(ba.IF))this.operators[a]=this.operators.length,this.operators[a+1]="jz";else if(this.accept(ba.LBRACE)){var b=this.operators.length;this.operators.push(null,null);var c=this.operators.length;this.parseBlock();this.expect(ba.RBRACE);this.expect(ba.IFELSE);this.operators[b]=this.operators.length;this.operators[b+1]="j";this.operators[a]=c;this.operators[a+1]="jz"}else w("PS Function: error parsing conditional.")}};
+return d}(),ba={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},lb=function(){function d(a,c){this.type=a;this.value=c}var a={};d.getOperator=function(b){var c=a[b];return c?c:a[b]=new d(ba.OPERATOR,b)};d.LBRACE=new d(ba.LBRACE,"{");d.RBRACE=new d(ba.RBRACE,"}");d.IF=new d(ba.IF,"IF");d.IFELSE=new d(ba.IFELSE,"IFELSE");return d}(),qd=function(){function d(a){this.stream=a}d.prototype={getToken:function(){for(var a,b=!1,c=this.stream;;){if(!(a=c.getChar()))return ka;if(b){if("\n"==a||"\r"==a)b=
+!1}else if("%"==a)b=!0;else if(!Ca.isSpace(a))break}switch(a){case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":case "+":case "-":case ".":return new lb(ba.NUMBER,this.getNumber(a));case "{":return lb.LBRACE;case "}":return lb.RBRACE}for(b=a.toLowerCase();;){a=c.lookChar();if(null===a)break;a=a.toLowerCase();if("a"<=a&&"z">=a)b+=a;else break;c.skip()}switch(b){case "if":return lb.IF;case "ifelse":return lb.IFELSE;default:return lb.getOperator(b)}},getNumber:function(a){for(var b=
+a,c=this.stream;;){a=c.lookChar();if("0"<=a&&"9">=a||"-"==a||"."==a)b+=a;else break;c.skip()}a=parseFloat(b);isNaN(a)&&w("Invalid floating point number: "+a);return a}};return d}(),vd=".notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde exclamdown cent sterling fraction yen florin section currency quotesingle quotedblleft guillemotleft guilsinglleft guilsinglright fi fl endash dagger daggerdbl periodcentered paragraph bullet quotesinglbase quotedblbase quotedblright guillemotright ellipsis perthousand questiondown grave acute circumflex tilde macron breve dotaccent dieresis ring cedilla hungarumlaut ogonek caron emdash AE ordfeminine Lslash Oslash OE ordmasculine ae dotlessi lslash oslash oe germandbls onesuperior logicalnot mu trademark Eth onehalf plusminus Thorn onequarter divide brokenbar degree thorn threequarters twosuperior registered minus eth multiply threesuperior copyright Aacute Acircumflex Adieresis Agrave Aring Atilde Ccedilla Eacute Ecircumflex Edieresis Egrave Iacute Icircumflex Idieresis Igrave Ntilde Oacute Ocircumflex Odieresis Ograve Otilde Scaron Uacute Ucircumflex Udieresis Ugrave Yacute Ydieresis Zcaron aacute acircumflex adieresis agrave aring atilde ccedilla eacute ecircumflex edieresis egrave iacute icircumflex idieresis igrave ntilde oacute ocircumflex odieresis ograve otilde scaron uacute ucircumflex udieresis ugrave yacute ydieresis zcaron".split(" "),
+wd=".notdef space exclamsmall Hungarumlautsmall dollaroldstyle dollarsuperior ampersandsmall Acutesmall parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon commasuperior threequartersemdash periodsuperior questionsmall asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff fi fl ffi ffl parenleftinferior parenrightinferior Circumflexsmall hyphensuperior Gravesmall Asmall Bsmall Csmall Dsmall Esmall Fsmall Gsmall Hsmall Ismall Jsmall Ksmall Lsmall Msmall Nsmall Osmall Psmall Qsmall Rsmall Ssmall Tsmall Usmall Vsmall Wsmall Xsmall Ysmall Zsmall colonmonetary onefitted rupiah Tildesmall exclamdownsmall centoldstyle Lslashsmall Scaronsmall Zcaronsmall Dieresissmall Brevesmall Caronsmall Dotaccentsmall Macronsmall figuredash hypheninferior Ogoneksmall Ringsmall Cedillasmall onequarter onehalf threequarters questiondownsmall oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior Agravesmall Aacutesmall Acircumflexsmall Atildesmall Adieresissmall Aringsmall AEsmall Ccedillasmall Egravesmall Eacutesmall Ecircumflexsmall Edieresissmall Igravesmall Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oacutesmall Ocircumflexsmall Otildesmall Odieresissmall OEsmall Oslashsmall Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall".split(" "),
+xd=".notdef space dollaroldstyle dollarsuperior parenleftsuperior parenrightsuperior twodotenleader onedotenleader comma hyphen period fraction zerooldstyle oneoldstyle twooldstyle threeoldstyle fouroldstyle fiveoldstyle sixoldstyle sevenoldstyle eightoldstyle nineoldstyle colon semicolon commasuperior threequartersemdash periodsuperior asuperior bsuperior centsuperior dsuperior esuperior isuperior lsuperior msuperior nsuperior osuperior rsuperior ssuperior tsuperior ff fi fl ffi ffl parenleftinferior parenrightinferior hyphensuperior colonmonetary onefitted rupiah centoldstyle figuredash hypheninferior onequarter onehalf threequarters oneeighth threeeighths fiveeighths seveneighths onethird twothirds zerosuperior onesuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferior centinferior dollarinferior periodinferior commainferior".split(" "),
+yd={"Adobe-Japan1":[[32,160],{f:12,c:33},[45,8209],{f:46,c:46},165,{f:2,c:93},[95,818],[96,768],{f:27,c:97},166,125,[732,771],[700,8217],92,[699,8216],124,[126,8764],{f:3,c:161},8260,402,0,164,8220,171,{f:2,c:8249},{f:2,c:64257},[8210,8211],0,0,[183,8729],0,8226,8218,8222,8221,187,0,0,191,{f:2,c:769},[175,772],{f:3,c:774},778,[184,807],779,808,780,[822,8212],198,170,321,216,338,186,230,305,322,248,339,223,173,169,172,174,0,0,{f:2,c:178},181,185,{f:3,c:188},{f:6,c:192},{f:16,c:199},0,{f:6,c:217},{f:6,
+c:224},{f:16,c:231},0,{f:7,c:249},352,376,381,[773,8254],353,8482,382,0,8194,{f:59,c:33},165,{f:31,c:93},65512,{f:2,c:125},0,{f:63,c:65377},{s:243},[8195,12288],{f:2,c:12289},65292,65294,12539,{f:2,c:65306},65311,65281,{f:2,c:12443},180,65344,168,65342,65507,65343,{f:2,c:12541},{f:2,c:12445},12291,20189,{f:3,c:12293},12540,8213,8208,65295,65340,[12316,65374],8214,65372,8230,8229,{s:4},{f:2,c:65288},{f:2,c:12308},65339,65341,65371,65373,{f:10,c:12296},65291,[8722,65293],177,215,247,65309,8800,65308,
+65310,{f:2,c:8806},8734,8756,9794,9792,176,{f:2,c:8242},8451,65509,65284,{f:2,c:65504},65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,{f:2,c:8592},8595,12307,8712,8715,{f:2,c:8838},{f:2,c:8834},8746,8745,{f:2,c:8743},65506,8658,8660,8704,8707,8736,8869,8978,8706,8711,8801,8786,{f:2,c:8810},8730,8765,8733,8757,{f:2,c:8747},8491,8240,9839,9837,9834,{f:2,c:8224},182,9711,{f:10,c:65296},{f:26,c:65313},{f:26,c:65345},{f:83,c:12353},{f:86,
+c:12449},{f:17,c:913},{f:7,c:931},{f:17,c:945},{f:7,c:963},{f:6,c:1040},1025,{f:32,c:1046},1105,{f:26,c:1078},20124,21782,23043,38463,21696,24859,25384,23030,36898,33909,33564,31312,24746,25569,28197,26093,33894,33446,39925,26771,22311,26017,25201,23451,22992,34427,39156,32098,32190,39822,25110,31903,34999,23433,24245,25353,26263,26696,38343,38797,26447,20197,20234,20301,20381,20553,22258,22839,22996,23041,23561,24799,24847,24944,26131,26885,28858,30031,30064,31227,32173,32239,32963,33806,[12176,
+34915],35586,36949,36986,21307,20117,20133,22495,32946,37057,30959,[12032,19968],22769,28322,36920,31282,33576,33419,39983,20801,21360,21693,21729,22240,23035,24341,39154,28139,32996,34093,38498,38512,38560,38907,21515,21491,23431,28879,[12155,32701],36802,[12204,38632],21359,40284,31418,19985,30867,[12165,33276],28198,22040,21764,27421,34074,39995,23013,21417,28006,[12128,29916],38287,22082,20113,36939,38642,33615,39180,21473,21942,23344,24433,26144,26355,26628,27704,27891,27945,29787,30408,31310,
+38964,33521,34907,35424,37613,28082,30123,30410,39365,24742,35585,36234,38322,27022,21421,20870,22290,22576,22852,23476,24310,24616,25513,25588,27839,28436,28814,28948,29017,29141,29503,32257,33398,33489,34199,36960,37467,40219,22633,26044,27738,29989,20985,22830,22885,24448,24540,25276,26106,27178,27431,27572,29579,32705,35158,40236,40206,[12009,40644],23713,27798,33659,20740,23627,25014,33222,26742,29281,[12036,20057],20474,21368,24681,28201,31311,[12211,38899],19979,21270,20206,20309,20285,20385,
+20339,21152,21487,22025,22799,23233,23478,23521,31185,26247,26524,26550,27468,27827,[12117,28779],29634,31117,[12146,31166],31292,31623,33457,33499,33540,33655,33775,33747,34662,35506,22057,36008,36838,36942,38686,34442,20420,23784,25105,[12123,29273],30011,33253,33469,34558,36032,38597,39187,39381,20171,20250,35299,22238,22602,22730,24315,24555,24618,24724,24674,25040,25106,25296,25913,39745,26214,26800,28023,28784,30028,30342,32117,33445,34809,38283,38542,[12185,35997],20977,21182,22806,21683,23475,
+23830,24936,27010,28079,30861,33995,34903,35442,37799,39608,28012,39336,34521,22435,26623,34510,37390,21123,22151,21508,24275,25313,25785,26684,26680,27579,29554,30906,31339,35226,[12179,35282],36203,36611,37101,38307,38548,[12208,38761],23398,23731,27005,{f:2,c:38989},25499,31520,27179,27263,26806,39949,28511,21106,21917,24688,25324,27963,28167,28369,33883,35088,36676,19988,39993,21494,26907,27194,38788,26666,20828,31427,33970,37340,37772,22107,40232,26658,33541,33841,31909,21E3,33477,[12129,29926],
+20094,20355,20896,23506,21002,21208,21223,24059,21914,22570,23014,23436,23448,23515,[12082,24178],24185,24739,24863,24931,25022,25563,25954,26577,26707,26874,27454,27475,27735,28450,28567,28485,29872,[12130,29976],30435,30475,31487,31649,31777,32233,[12152,32566],32752,32925,33382,33694,35251,35532,36011,36996,37969,38291,38289,38306,38501,38867,39208,33304,20024,21547,23736,24012,29609,30284,30524,23721,32747,36107,38593,38929,38996,39E3,20225,20238,21361,21916,22120,22522,22855,23305,23492,23696,
+24076,24190,24524,25582,26426,26071,26082,26399,26827,26820,27231,24112,27589,27671,27773,30079,31048,23395,31232,32E3,24509,35215,35352,36020,36215,36556,36637,39138,39438,[12004,12225,39740],[12018,20096],20605,20736,22931,23452,25135,25216,25836,27450,29344,30097,31047,32681,34811,35516,35696,25516,33738,38816,21513,21507,21931,26708,27224,35440,30759,26485,[12233,40653],21364,23458,33050,34384,36870,19992,20037,20167,20241,21450,21560,23470,[12088,24339],24613,25937,26429,27714,27762,27875,28792,
+29699,31350,31406,31496,32026,31998,32102,26087,[12124,29275],21435,23621,24040,25298,25312,25369,28192,34394,35377,36317,37624,28417,31142,[12226,39770],20136,{f:2,c:20139},20379,20384,20689,20807,31478,20849,20982,21332,21281,21375,21483,21932,22659,23777,24375,24394,24623,24656,24685,25375,25945,27211,27841,29378,29421,30703,33016,33029,33288,34126,37111,37857,38911,39255,39514,20208,20957,23597,26241,26989,23616,26354,26997,[12127,29577],26704,31873,20677,21220,22343,[12081,24062],37670,[12100,
+26020],27427,27453,29748,31105,31165,31563,32202,33465,33740,34943,35167,35641,36817,[12198,37329],21535,37504,20061,20534,21477,21306,29399,29590,30697,33510,36527,39366,39368,39378,20855,24858,34398,21936,31354,20598,23507,36935,38533,20018,27355,37351,23633,23624,25496,31391,27795,38772,36705,31402,29066,38536,31874,26647,32368,26705,37740,21234,21531,34219,35347,32676,36557,37089,21350,34952,31041,20418,20670,21009,20804,21843,22317,29674,22411,22865,24418,24452,24693,24950,24935,25001,25522,
+25658,25964,26223,26690,28179,30054,31293,31995,32076,32153,32331,32619,33550,33610,34509,35336,35427,35686,36605,38938,40335,33464,36814,39912,21127,25119,25731,28608,38553,26689,20625,[12107,27424],27770,28500,[12147,31348],32080,[12174,34880],35363,[12105,26376],20214,20537,20518,20581,20860,21048,21091,21927,22287,22533,23244,24314,25010,25080,25331,25458,26908,27177,29309,[12125,29356],29486,30740,30831,32121,30476,32937,[12178,35211],35609,36066,36562,36963,37749,38522,38997,39443,40568,20803,
+21407,21427,24187,24358,28187,28304,[12126,29572],29694,32067,33335,[12180,35328],35578,38480,20046,20491,21476,21628,22266,22993,23396,[12080,24049],24235,24359,[12094,25144],25925,26543,28246,29392,31946,34996,32929,32993,33776,[11969,34382],35463,36328,37431,38599,39015,[12238,40723],20116,20114,20237,21320,21577,21566,23087,24460,24481,24735,26791,27278,29786,30849,35486,35492,35703,37264,20062,39881,20132,20348,20399,20505,20502,20809,20844,21151,21177,21246,21402,[12061,21475],21521,21518,21897,
+22353,22434,22909,23380,23389,23439,[12079,24037],24039,24055,24184,24195,24218,24247,24344,24658,24908,25239,25304,25511,25915,26114,26179,26356,26477,26657,26775,27083,27743,27946,28009,28207,28317,30002,30343,30828,31295,31968,32005,32024,32094,32177,32789,32771,32943,32945,33108,33167,33322,33618,[12175,34892],34913,35611,36002,36092,37066,37237,37489,30783,37628,38308,38477,38917,[12217,39321],[12220,39640],40251,21083,21163,21495,21512,22741,25335,28640,35946,36703,40633,20811,21051,21578,22269,
+31296,37239,40288,[12234,40658],29508,28425,33136,29969,24573,24794,[12219,39592],29403,36796,27492,38915,20170,22256,22372,22718,23130,24680,25031,26127,26118,26681,26801,28151,30165,32058,[12169,33390],39746,20123,20304,21449,21766,23919,24038,24046,26619,27801,29811,30722,35408,37782,35039,22352,24231,25387,20661,20652,20877,26368,21705,22622,22971,23472,24425,25165,25505,26685,27507,28168,28797,37319,29312,30741,30758,31085,25998,32048,33756,35009,36617,38555,21092,22312,26448,32618,36001,20916,
+22338,38442,22586,27018,32948,21682,23822,22524,30869,40442,20316,21066,21643,25662,26152,26388,26613,31364,31574,32034,37679,26716,39853,31545,21273,20874,21047,23519,25334,25774,25830,26413,27578,34217,38609,30352,39894,25420,37638,39851,[12139,30399],26194,19977,20632,21442,[12077,23665],24808,25746,25955,26719,29158,29642,29987,31639,32386,34453,35715,36059,37240,39184,26028,26283,27531,20181,20180,20282,20351,21050,21496,21490,21987,22235,[12064,22763],22987,22985,23039,[12070,23376],23629,24066,
+24107,24535,24605,25351,[12096,25903],23388,26031,26045,26088,26525,[12108,27490],27515,[12114,27663],29509,31049,31169,[12151,31992],32025,32043,32930,33026,[12164,33267],35222,35422,35433,35430,35468,35566,36039,36060,38604,39164,[12013,27503],20107,20284,20365,20816,23383,23546,24904,25345,26178,27425,28363,27835,29246,29885,30164,30913,[12144,31034],[12157,32780],[12159,32819],[12163,33258],33940,36766,27728,[12229,40575],24335,35672,40235,31482,36600,23437,38635,19971,21489,22519,22833,23241,
+23460,24713,28287,28422,30142,36074,23455,34048,31712,20594,26612,33437,23649,34122,32286,33294,20889,23556,25448,36198,26012,29038,31038,32023,32773,35613,[12190,36554],36974,34503,37034,20511,21242,23610,26451,28796,29237,37196,37320,37675,33509,23490,24369,24825,20027,21462,23432,[12095,25163],26417,27530,29417,29664,31278,33131,36259,37202,[12216,39318],20754,21463,21610,23551,25480,27193,32172,38656,22234,21454,21608,23447,23601,24030,20462,24833,25342,27954,31168,31179,32066,32333,32722,33261,
+[12168,33311],33936,34886,35186,35728,36468,36655,36913,37195,37228,38598,37276,20160,20303,20805,[12055,21313],24467,25102,26580,27713,28171,29539,32294,37325,37507,21460,22809,23487,28113,31069,32302,31899,22654,29087,20986,34899,36848,20426,23803,26149,30636,31459,33308,39423,20934,24490,26092,26991,27529,28147,28310,28516,30462,32020,24033,36981,37255,38918,20966,21021,25152,26257,26329,28186,24246,32210,32626,26360,34223,34295,35576,21161,21465,[12069,22899],24207,24464,24661,37604,38500,20663,
+20767,21213,21280,21319,21484,21736,21830,21809,22039,22888,22974,23100,23477,23558,[12073,23567],23569,23578,24196,24202,24288,24432,25215,25220,25307,25484,25463,26119,26124,26157,26230,26494,26786,27167,27189,27836,28040,28169,28248,28988,28966,29031,30151,30465,30813,30977,31077,31216,31456,31505,31911,32057,32918,33750,33931,34121,34909,35059,35359,35388,35412,35443,35937,36062,37284,37478,37758,37912,38556,38808,19978,19976,19998,20055,20887,21104,22478,22580,22732,23330,24120,24773,25854,26465,
+26454,27972,29366,30067,31331,33976,35698,37304,37664,22065,22516,39166,25325,26893,27542,29165,32340,32887,[12170,33394],35302,[12215,39135],34645,36785,23611,20280,20449,20405,21767,23072,23517,23529,[12092,24515],24910,25391,26032,26187,26862,27035,28024,28145,30003,30137,30495,31070,31206,32051,[12162,33251],33455,34218,35242,35386,[12189,36523],[12191,36763],36914,37341,38663,[12040,20154],20161,20995,22645,22764,23563,29978,23613,33102,35338,36805,38499,38765,31525,35535,38920,37218,22259,21416,
+36887,21561,22402,24101,25512,[12116,27700],28810,30561,31883,32736,34928,36930,37204,37648,37656,38543,29790,39620,23815,23913,25968,26530,36264,38619,25454,26441,26905,33733,38935,38592,35070,28548,25722,[12072,23544],19990,28716,30045,26159,20932,21046,21218,22995,24449,24615,25104,25919,25972,26143,26228,26866,26646,27491,28165,29298,[12131,29983],30427,31934,32854,22768,35069,[11972,35199],35488,35475,35531,36893,37266,[11992,38738],38745,[12011,25993],31246,33030,38587,24109,24796,25114,26021,
+26132,26512,[12143,30707],31309,31821,32318,33034,36012,[12186,36196],36321,36447,30889,20999,25305,25509,25666,25240,35373,31363,31680,35500,38634,32118,[12166,33292],34633,20185,20808,21315,21344,23459,23554,23574,24029,25126,25159,25776,26643,26676,27849,27973,27927,26579,28508,29006,29053,26059,31359,31661,32218,32330,32680,33146,[12167,33307],33337,34214,35438,36046,36341,36984,36983,37549,37521,38275,39854,21069,21892,28472,28982,20840,31109,32341,33203,31950,22092,22609,23720,25514,26366,26365,
+26970,29401,30095,30094,30990,31062,31199,31895,32032,32068,34311,35380,38459,36961,[12239,40736],20711,21109,21452,21474,20489,21930,22766,22863,29245,23435,23652,21277,24803,24819,25436,25475,25407,25531,25805,26089,26361,24035,27085,27133,28437,29157,20105,30185,30456,31379,31967,32207,32156,32865,33609,33624,33900,33980,34299,35013,[12187,36208],36865,36973,37783,38684,39442,20687,22679,24974,33235,34101,36104,36896,20419,20596,21063,21363,24687,25417,26463,28204,[12188,36275],36895,20439,23646,
+36042,26063,32154,21330,34966,20854,25539,23384,23403,23562,25613,26449,36956,20182,22810,22826,27760,35409,21822,22549,22949,24816,25171,26561,33333,26965,38464,39364,39464,20307,22534,23550,32784,23729,24111,24453,24608,24907,25140,26367,27888,28382,32974,33151,33492,34955,36024,36864,36910,38538,40667,39899,20195,21488,[12068,22823],31532,37261,38988,40441,28381,28711,21331,21828,23429,25176,25246,25299,27810,28655,29730,35351,37944,28609,35582,33592,20967,34552,21482,21481,20294,36948,[12192,
+36784],22890,33073,24061,31466,36799,26842,[12181,35895],29432,40008,27197,35504,20025,21336,22022,22374,25285,25506,26086,27470,28129,28251,28845,30701,31471,31658,32187,32829,32966,34507,35477,37723,22243,22727,24382,26029,26262,27264,27573,30007,35527,20516,30693,22320,24347,24677,26234,27744,30196,31258,32622,33268,34584,36933,39347,31689,30044,[12149,31481],31569,33988,36880,31209,31378,33590,23265,30528,20013,20210,23449,24544,25277,26172,26609,27880,[12173,34411],34935,35387,37198,37619,39376,
+27159,28710,29482,33511,33879,36015,19969,20806,20939,21899,23541,24086,24115,24193,24340,24373,24427,24500,25074,25361,26274,26397,28526,29266,30010,30522,32884,33081,33144,34678,35519,35548,36229,36339,37530,[11985,12199,38263],38914,[12227,40165],21189,25431,30452,26389,27784,29645,36035,37806,38515,27941,22684,26894,27084,36861,37786,30171,36890,22618,26626,25524,27131,20291,28460,26584,36795,34086,32180,37716,26943,28528,22378,22775,23340,32044,[12118,29226],21514,37347,40372,20141,20302,20572,
+20597,21059,35998,21576,22564,23450,24093,24213,24237,24311,24351,24716,25269,25402,25552,26799,27712,30855,31118,31243,32224,33351,35330,35558,36420,36883,37048,37165,37336,[12237,40718],27877,25688,25826,25973,28404,30340,31515,36969,37841,28346,21746,24505,25764,36685,36845,37444,20856,22635,22825,23637,24215,28155,32399,29980,36028,36578,39003,28857,20253,27583,28593,[12133,3E4],38651,20814,21520,22581,22615,22956,23648,24466,[12099,26007],26460,28193,30331,33759,36077,36884,37117,37709,30757,
+30778,21162,24230,[12063,22303],22900,24594,20498,20826,20908,20941,[12049,20992],21776,22612,22616,22871,23445,23798,23947,24764,25237,25645,26481,26691,26812,26847,30423,28120,28271,28059,28783,29128,24403,30168,31095,31561,31572,31570,31958,32113,21040,33891,34153,34276,35342,35588,[12182,35910],36367,36867,36879,37913,38518,38957,39472,38360,20685,21205,21516,22530,23566,24999,25758,27934,30643,31461,33012,33796,36947,37509,23776,40199,21311,24471,24499,28060,29305,30563,31167,31716,27602,29420,
+35501,26627,27233,20984,31361,26932,23626,40182,33515,23493,[12195,37193],28702,22136,23663,24775,25958,27788,35930,36929,38931,21585,26311,37389,22856,37027,20869,20045,20970,34201,35598,28760,25466,37707,26978,39348,32260,30071,21335,26976,36575,38627,27741,[12038,20108],23612,24336,36841,21250,36049,[12161,32905],34425,24319,[12103,26085],20083,[12042,20837],22914,23615,38894,20219,22922,24525,35469,28641,31152,31074,23527,33905,29483,29105,24180,24565,25467,25754,29123,31896,20035,24316,20043,
+22492,22178,24745,28611,32013,33021,33075,33215,36786,35223,34468,24052,25226,25773,35207,26487,27874,27966,29750,30772,23110,32629,33453,[12218,39340],20467,24259,25309,25490,25943,26479,30403,29260,32972,32954,36649,37197,20493,22521,23186,26757,26995,29028,29437,36023,22770,36064,38506,36889,34687,31204,30695,33833,20271,21093,21338,25293,26575,27850,[12137,30333],31636,31893,33334,34180,36843,26333,28448,29190,32283,33707,39361,[12008,40614],20989,31665,30834,31672,32903,31560,27368,24161,32908,
+30033,30048,[12043,20843],37474,28300,30330,37271,39658,20240,32624,25244,31567,38309,40169,22138,22617,34532,38588,20276,21028,21322,21453,21467,24070,25644,26001,26495,27710,27726,29256,29359,29677,30036,32321,33324,34281,36009,31684,[12196,37318],29033,38930,39151,25405,26217,30058,30436,30928,34115,34542,21290,21329,21542,22915,24199,24444,24754,25161,25209,25259,26E3,[12112,27604],27852,30130,[12138,30382],30865,31192,32203,32631,32933,34987,35513,36027,36991,[12206,38750],[12214,39131],27147,
+31800,20633,23614,24494,26503,27608,29749,30473,32654,[12240,40763],26570,31255,21305,[12134,30091],39661,24422,33181,33777,32920,24380,24517,30050,31558,36924,26727,23019,23195,32016,30334,35628,20469,24426,27161,27703,28418,29922,31080,34920,35413,35961,24287,25551,30149,31186,33495,37672,37618,33948,34541,39981,21697,24428,25996,27996,28693,36007,36051,38971,25935,29942,19981,20184,22496,22827,23142,23500,20904,24067,24220,24598,25206,25975,26023,26222,28014,[12119,29238],31526,33104,33178,33433,
+35676,36E3,36070,36212,[12201,38428],38468,20398,25771,27494,33310,33889,34154,37096,23553,26963,[12213,39080],33914,34135,20239,21103,24489,24133,26381,31119,33145,35079,35206,28149,24343,25173,27832,20175,29289,39826,20998,21563,22132,22707,24996,25198,28954,22894,31881,31966,32027,38640,[12098,25991],32862,19993,20341,20853,22592,24163,24179,24330,26564,20006,34109,38281,38491,[12150,31859],[12212,38913],20731,22721,30294,30887,21029,30629,34065,31622,20559,22793,[12122,29255],31687,32232,36794,
+36820,36941,20415,21193,23081,24321,38829,20445,33303,37610,22275,25429,27497,29995,35036,36628,31298,21215,22675,24917,25098,26286,[11935,27597],31807,33769,20515,20472,21253,21574,22577,22857,23453,23792,23791,23849,24214,25265,25447,25918,[12101,26041],26379,27861,27873,28921,30770,32299,32990,33459,33804,34028,34562,35090,35370,35914,37030,37586,39165,40179,40300,20047,20129,20621,21078,22346,22952,24125,{f:2,c:24536},25151,26292,26395,26576,26834,20882,32033,32938,33192,35584,35980,36031,37502,
+38450,21536,38956,21271,20693,[12056,21340],22696,25778,26420,29287,30566,31302,37350,21187,27809,27526,22528,24140,22868,26412,32763,20961,30406,25705,30952,39764,[12231,40635],22475,22969,26151,26522,27598,21737,27097,24149,33180,26517,39850,26622,40018,26717,20134,20451,[12060,21448],25273,26411,27819,36804,20397,32365,40639,19975,24930,28288,28459,34067,21619,26410,39749,[11922,24051],31637,23724,23494,34588,28234,34001,31252,33032,22937,31885,[11936,27665],30496,21209,22818,28961,29279,[12141,
+30683],38695,40289,26891,23167,23064,20901,21517,21629,26126,30431,36855,37528,40180,23018,29277,28357,20813,26825,32191,32236,[12207,38754],40634,25720,27169,33538,22916,23391,[12113,27611],29467,30450,32178,32791,33945,20786,[12106,26408],40665,[12140,30446],26466,21247,39173,23588,25147,31870,36016,21839,24758,32011,[12200,38272],21249,20063,20918,22812,29242,32822,37326,24357,[12142,30690],21380,24441,32004,34220,35379,36493,38742,26611,34222,37971,24841,24840,27833,30290,35565,36664,21807,20305,
+20778,21191,21451,23461,24189,24736,24962,25558,26377,26586,28263,28044,{f:2,c:29494},30001,31056,35029,35480,36938,[12194,37009],37109,38596,34701,[12067,22805],20104,20313,19982,35465,36671,38928,20653,24188,22934,23481,24248,25562,25594,25793,26332,26954,27096,27915,28342,29076,[12132,29992],31407,[12154,32650],32768,33865,33993,35201,35617,36362,36965,38525,39178,24958,25233,27442,27779,28020,32716,32764,28096,32645,34746,35064,26469,33713,38972,38647,27931,32097,33853,37226,20081,21365,23888,
+27396,28651,34253,34349,35239,21033,21519,23653,26446,26792,29702,29827,30178,35023,35041,[12197,37324],38626,38520,24459,29575,[12148,31435],33870,25504,30053,21129,27969,28316,29705,30041,30827,31890,38534,[12015,31452],[12243,40845],20406,24942,26053,34396,20102,20142,20698,20001,20940,23534,26009,26753,28092,29471,30274,30637,31260,31975,33391,35538,36988,37327,38517,38936,[12050,21147],32209,20523,21400,26519,28107,29136,29747,33256,36650,38563,40023,40607,29792,22593,28057,32047,39006,20196,
+20278,20363,20919,21169,23994,24604,29618,31036,33491,37428,38583,38646,38666,40599,40802,26278,27508,21015,21155,28872,35010,24265,24651,24976,28451,29001,31806,32244,32879,34030,36899,37676,21570,39791,27347,28809,36034,36335,38706,21172,23105,24266,24324,26391,27004,27028,28010,28431,29282,29436,31725,[12156,32769],32894,34635,37070,20845,40595,31108,32907,37682,35542,20525,21644,35441,27498,36036,33031,24785,26528,40434,20121,20120,39952,35435,34241,34152,26880,28286,30871,33109,24332,19984,19989,
+20010,20017,[12034,20022],20028,[12035,20031],20034,20054,20056,20098,[12037,20101],35947,20106,33298,24333,20110,{f:2,c:20126},[12039,20128],20130,20144,20147,20150,20174,20173,20164,20166,20162,20183,20190,20205,20191,20215,20233,20314,20272,20315,20317,20311,20295,20342,20360,20367,20376,20347,20329,20336,20369,20335,20358,20374,20760,20436,20447,20430,20440,20443,20433,20442,20432,{f:2,c:20452},20506,20520,20500,20522,20517,20485,20252,20470,20513,20521,20524,20478,20463,20497,20486,20547,20551,
+26371,20565,20560,20552,20570,20566,20588,20600,20608,20634,20613,20660,20658,{f:2,c:20681},20659,20674,20694,20702,20709,20717,20707,20718,20729,20725,20745,{f:2,c:20737},20758,20757,20756,20762,20769,20794,20791,20796,20795,[12041,20799],[11918,20800],20818,20812,20820,20834,31480,{f:2,c:20841},20846,20864,[12044,20866],22232,20876,20873,20879,20881,20883,20885,[12045,20886],20900,20902,20898,{f:2,c:20905},[12046,20907],20915,{f:2,c:20913},20912,20917,20925,20933,20937,20955,[12047,20960],34389,
+20969,20973,20976,[12048,20981],20990,20996,21003,21012,21006,21031,21034,21038,21043,21049,21071,21060,{f:2,c:21067},21086,21076,21098,21108,21097,21107,21119,21117,21133,21140,21138,21105,21128,21137,36776,36775,{f:2,c:21164},21180,21173,21185,21197,21207,21214,21219,21222,39149,21216,21235,21237,21240,[12051,21241],21254,21256,30008,21261,21264,21263,[12052,21269],[12053,21274],21283,21295,21297,21299,[12054,21304],21312,21318,21317,19991,21321,21325,20950,21342,[12057,21353],21358,22808,21371,
+21367,[12058,21378],21398,21408,21414,21413,21422,21424,[12059,21430],21443,31762,38617,21471,26364,29166,21486,21480,21485,21498,21505,21565,21568,{f:2,c:21548},21564,21550,21558,21545,21533,21582,21647,21621,21646,21599,21617,21623,21616,21650,21627,21632,21622,21636,21648,21638,21703,21666,21688,21669,21676,21700,21704,21672,21675,21698,21668,21694,21692,21720,{f:2,c:21733},21775,21780,21757,21742,21741,21754,21730,21817,21824,21859,21836,21806,21852,21829,{f:2,c:21846},21816,21811,21853,21913,
+21888,21679,21898,21919,21883,21886,21912,21918,21934,21884,21891,21929,21895,21928,21978,21957,21983,21956,21980,21988,21972,22036,22007,22038,22014,22013,22043,22009,22094,22096,29151,22068,22070,22066,22072,22123,22116,22063,22124,22122,22150,22144,22154,22176,22164,22159,22181,22190,22198,22196,22210,22204,22209,22211,22208,22216,22222,22225,22227,[12062,22231],22254,22265,22272,22271,22276,22281,22280,22283,22285,22291,22296,22294,21959,22300,22310,{f:2,c:22327},22350,22331,22336,22351,22377,
+22464,22408,22369,22399,22409,22419,22432,22451,22436,22442,22448,22467,22470,22484,{f:2,c:22482},22538,22486,22499,22539,22553,22557,22642,22561,22626,22603,22640,27584,22610,22589,22649,22661,22713,22687,22699,22714,22750,22715,22712,22702,22725,22739,22737,22743,22745,22744,22757,22748,22756,22751,22767,22778,22777,{f:3,c:22779},[12065,22786],[12066,22794],22800,22811,26790,22821,{f:2,c:22828},22834,22840,22846,31442,22869,22864,22862,22874,22872,22882,22880,22887,22892,22889,22904,22913,22941,
+20318,20395,22947,22962,22982,23016,23004,22925,{f:2,c:23001},23077,23071,23057,23068,23049,23066,23104,23148,23113,{f:2,c:23093},23138,23146,23194,23228,23230,23243,23234,23229,23267,23255,23270,23273,23254,{f:2,c:23290},23308,23307,23318,23346,23248,23338,23350,23358,23363,23365,23360,23377,23381,{f:2,c:23386},23397,23401,23408,23411,23413,23416,25992,23418,[12071,23424],23427,23462,23480,23491,23495,23497,23508,23504,23524,23526,23522,23518,23525,23531,23536,23542,23539,23557,{f:2,c:23559},23565,
+23571,23584,[11920,12074,23586],23592,[12075,23608],23609,23617,23622,23630,23635,23632,23631,23409,23660,[12076,23662],20066,23670,23673,23692,23697,23700,22939,23723,23739,23734,23740,23735,23749,23742,23751,23769,23785,23805,23802,23789,23948,23786,23819,23829,23831,23900,23839,23835,23825,23828,23842,23834,23833,23832,23884,23890,23886,23883,23916,23923,23926,23943,23940,23938,23970,23965,23980,23982,23997,23952,23991,23996,24009,24013,24019,24018,24022,[12078,24027],24043,24050,24053,24075,24090,
+24089,24081,24091,{f:2,c:24118},24132,24131,24128,24142,24151,24148,24159,24162,24164,24135,{f:2,c:24181},[11923,12083,24186],40636,[12084,24191],24224,{f:2,c:24257},24264,24272,24271,24278,24291,24285,{f:2,c:24282},24290,24289,{f:2,c:24296},24300,24305,24307,24304,[12085,24308],24312,[12086,24318],24323,24329,24413,24412,[12087,24331],24337,24342,24361,24365,24376,24385,24392,24396,24398,24367,[11924,24401],{f:2,c:24406},24409,[12090,24417],24429,[12091,24435],24439,24451,24450,24447,24458,24456,
+24465,24455,24478,24473,24472,24480,24488,24493,24508,24534,24571,24548,24568,24561,24541,24755,24575,24609,24672,24601,24592,24617,24590,24625,24603,24597,24619,24614,24591,24634,24666,24641,24682,24695,24671,24650,24646,24653,24675,24643,24676,24642,24684,24683,24665,24705,24717,24807,24707,24730,24708,24731,{f:2,c:24726},24722,24743,24715,24801,24760,24800,24787,24756,24560,24765,24774,24757,24792,24909,24853,24838,{f:2,c:24822},24832,24820,24826,24835,24865,24827,24817,{f:2,c:24845},24903,24894,
+24872,24871,24906,24895,24892,24876,24884,24893,24898,24900,24947,24951,{f:3,c:24920},24939,24948,24943,24933,24945,24927,24925,24915,24949,24985,24982,24967,25004,24980,24986,24970,24977,25003,25006,25036,25034,25033,25079,25032,25027,25030,25018,25035,32633,25037,25062,25059,25078,25082,25076,25087,25085,25084,25086,25088,[12093,25096],25097,25101,25100,25108,25115,25118,25121,25130,25134,25136,{f:2,c:25138},25153,25166,25182,25187,25179,25184,25192,25212,25218,25225,25214,{f:2,c:25234},25238,25300,
+25219,25236,25303,25297,25275,25295,25343,25286,25812,25288,25308,25292,25290,25282,25287,25243,25289,25356,25326,25329,25383,25346,25352,25327,25333,25424,25406,25421,25628,25423,25494,25486,25472,25515,25462,25507,25487,25481,25503,25525,25451,25449,25534,25577,25536,25542,25571,25545,25554,25590,25540,25622,25652,25606,25619,25638,25654,25885,25623,25640,25615,25703,25711,25718,25678,25898,25749,25747,25765,25769,25736,25788,25818,25810,25797,25799,25787,25816,25794,25841,25831,33289,{f:2,c:25824},
+25260,25827,25839,25900,25846,25844,25842,25850,25856,25853,25880,25884,25861,25892,25891,25899,[12097,25908],[11929,25909],25911,25910,25912,30027,25928,25942,25941,25933,25944,25950,25949,25970,25976,{f:2,c:25986},35722,26011,26015,26027,26039,26051,26054,26049,26052,26060,26066,26075,26073,[12102,26080],[11931,26081],26097,26482,26122,26115,26107,26483,{f:2,c:26165},26164,26140,26191,26180,26185,26177,26206,26205,26212,{f:2,c:26215},26207,26210,26224,26243,26248,26254,26249,26244,26264,26269,26305,
+26297,26313,26302,26300,26308,26296,26326,26330,26336,26175,26342,26345,[12104,26352],26357,26359,26383,26390,26398,{f:2,c:26406},38712,26414,26431,26422,26433,26424,26423,26438,26462,26464,26457,{f:2,c:26467},26505,26480,26537,26492,26474,26508,26507,26534,26529,26501,26551,26607,26548,26604,26547,26601,26552,26596,26590,26589,26594,26606,26553,26574,26566,26599,27292,26654,26694,26665,26688,26701,26674,26702,26803,26667,26713,26723,26743,26751,26783,26767,26797,26772,26781,26779,26755,27310,26809,
+26740,26805,26784,26810,26895,26765,26750,26881,26826,26888,26840,26914,26918,26849,26892,26829,26836,26855,26837,26934,26898,26884,26839,26851,26917,26873,26848,26863,26920,26922,26906,26915,26913,26822,27001,26999,26972,27E3,26987,26964,27006,26990,26937,26996,26941,26969,26928,26977,26974,26973,27009,26986,27058,27054,27088,27071,27073,27091,27070,27086,23528,27082,27101,27067,27075,27047,27182,27025,27040,27036,27029,27060,27102,27112,27138,27163,27135,27402,27129,27122,27111,27141,27057,27166,
+27117,27156,27115,27146,27154,27329,27171,27155,27204,27148,27250,27190,27256,27207,27234,27225,27238,27208,27192,27170,27280,27277,27296,27268,{f:2,c:27298},27287,34327,27323,27331,27330,27320,27315,27308,27358,27345,27359,27306,27354,27370,27387,27397,34326,27386,27410,27414,39729,27423,27448,27447,30428,27449,39150,27463,27459,27465,27472,27481,27476,27483,27487,27489,27512,[12109,27513],{f:2,c:27519},27524,27523,27533,27544,27541,27550,27556,{f:2,c:27562},27567,27570,27569,[12110,27571],27575,
+27580,27590,[12111,27595],27603,27615,27628,27627,27635,27631,40638,27656,27667,[12115,27668],27675,27684,27683,27742,27733,27746,27754,27778,27789,27802,27777,27803,27774,27752,27763,27794,27792,27844,27889,27859,27837,27863,27845,27869,27822,27825,27838,27834,27867,27887,27865,27882,27935,34893,27958,27947,27965,27960,27929,27957,27955,27922,27916,28003,28051,28004,27994,28025,27993,28046,28053,28644,28037,28153,28181,28170,28085,28103,28134,28088,28102,28140,28126,28108,28136,28114,28101,28154,
+28121,28132,28117,28138,28142,28205,28270,28206,28185,28274,28255,28222,28195,28267,28203,28278,28237,28191,28227,28218,28238,28196,28415,28189,28216,28290,28330,28312,28361,28343,28371,28349,28335,28356,28338,{f:2,c:28372},28303,28325,28354,28319,28481,28433,28748,28396,28408,28414,28479,28402,28465,28399,28466,28364,28478,28435,28407,28550,28538,28536,28545,28544,28527,28507,28659,28525,28546,28540,28504,28558,28561,28610,28518,28595,28579,28577,28580,28601,28614,28586,28639,28629,28652,28628,28632,
+28657,28654,28635,28681,28683,28666,28689,28673,28687,28670,28699,28698,28532,28701,28696,28703,28720,28734,28722,28753,28771,28825,28818,28847,28913,28844,28856,28851,28846,28895,28875,28893,28889,28937,28925,28956,28953,29029,29013,29064,29030,29026,29004,29014,29036,29071,29179,29060,29077,29096,29100,29143,29113,29118,29138,29129,29140,29134,29152,29164,29159,29173,29180,29177,29183,29197,29200,29211,29224,29229,29228,29232,29234,[12120,29243],29244,[12121,29247],29248,29254,29259,29272,29300,
+29310,29314,29313,29319,29330,29334,29346,29351,29369,29362,29379,29382,29380,29390,29394,29410,{f:2,c:29408},29433,29431,20495,29463,29450,29468,29462,29469,29492,29487,29481,29477,29502,{f:2,c:29518},40664,29527,29546,29544,29552,29560,29557,29563,29562,29640,29619,29646,29627,29632,29669,29678,29662,29858,29701,29807,29733,29688,29746,29754,29781,29759,29791,29785,29761,29788,29801,29808,29795,29802,29814,29822,29835,29854,29863,29898,29903,29908,29681,29920,29923,29927,29929,29934,29938,{f:2,
+c:29936},29944,29943,29956,29955,29957,29964,29966,29965,29973,29971,29982,29990,29996,30012,30020,30029,30026,30025,30043,30022,30042,30057,30052,30055,30059,30061,30072,30070,{f:2,c:30086},30068,30090,30089,30082,30100,30106,30109,30117,30115,30146,30131,30147,30133,30141,30136,30140,30129,30157,30154,30162,30169,30179,30174,{f:2,c:30206},30204,30209,30192,30202,{f:2,c:30194},30219,30221,30217,30239,30247,{f:3,c:30240},30244,30260,30256,30267,{f:2,c:30279},30278,30300,30296,{f:2,c:30305},{f:3,c:30312},
+30311,30316,30320,30322,[12136,30326],30328,30332,30336,30339,30344,30347,30350,30358,30355,{f:2,c:30361},30384,30388,{f:3,c:30392},30402,30413,30422,30418,30430,30433,30437,30439,30442,34351,30459,30472,30471,30468,30505,30500,30494,{f:2,c:30501},30491,{f:2,c:30519},30535,30554,30568,30571,30555,30565,30591,30590,30585,30606,30603,30609,30624,30622,30640,30646,30649,30655,{f:2,c:30652},30651,30663,30669,30679,30682,30684,30691,30702,30716,30732,30738,31014,30752,31018,30789,30862,30836,30854,30844,
+30874,30860,30883,30901,30890,30895,30929,30918,30923,30932,30910,30908,30917,30922,30956,30951,30938,30973,30964,30983,30994,30993,31001,31020,31019,31040,31072,31063,31071,31066,31061,31059,31098,31103,31114,31133,31143,40779,31146,31150,31155,{f:2,c:31161},31177,31189,31207,31212,31201,31203,31240,31245,{f:2,c:31256},31264,31263,31104,31281,31291,31294,31287,31299,31319,31305,{f:2,c:31329},31337,40861,31344,31353,31357,31368,31383,31381,31384,31382,31401,31432,31408,31414,31429,31428,31423,36995,
+31431,31434,31437,31439,31445,31443,{f:2,c:31449},31453,{f:2,c:31457},31462,31469,31472,31490,31503,31498,31494,31539,{f:2,c:31512},31518,31541,31528,31542,31568,31610,31492,31565,31499,31564,31557,31605,31589,31604,31591,{f:2,c:31600},31596,31598,31645,31640,31647,31629,31644,31642,31627,31634,31631,31581,31641,31691,31681,31692,31695,31668,31686,31709,31721,31761,31764,31718,31717,31840,31744,31751,31763,31731,31735,31767,31757,31734,31779,31783,31786,31775,31799,31787,31805,31820,31811,31828,31823,
+31808,31824,31832,31839,31844,31830,31845,31852,31861,31875,31888,31908,31917,31906,31915,31905,31912,31923,31922,31921,31918,31929,31933,31936,31941,31938,31960,31954,31964,31970,39739,31983,31986,31988,31990,31994,32006,32002,32028,32021,32010,32069,32075,32046,32050,32063,32053,32070,32115,32086,32078,32114,32104,32110,32079,32099,32147,32137,32091,32143,32125,32155,32186,32174,32163,32181,32199,32189,32171,32317,32162,32175,32220,32184,32159,32176,32216,32221,32228,32222,32251,32242,32225,32261,
+32266,32291,32289,32274,32305,32287,32265,32267,32290,32326,32358,32315,32309,32313,32323,32311,32306,32314,32359,32349,32342,32350,{f:2,c:32345},32377,32362,32361,32380,32379,32387,32213,32381,36782,32383,{f:2,c:32392},32396,32402,32400,{f:2,c:32403},32406,32398,{f:2,c:32411},32568,32570,32581,{f:3,c:32588},32592,[12153,32593],32597,32596,32600,{f:2,c:32607},{f:2,c:32616},32615,32632,32642,32646,32643,32648,32647,32652,32660,32670,32669,32666,32675,32687,32690,32697,32686,32694,32696,35697,{f:2,
+c:32709},32714,32725,32724,32737,32742,32745,32755,32761,39132,32774,32772,32779,[12158,32786],{f:2,c:32792},32796,32801,32808,32831,32827,32842,32838,32850,32856,32858,32863,32866,32872,32883,32882,32880,32886,32889,32893,[12160,32895],32900,32902,32901,32923,32915,32922,32941,20880,32940,32987,32997,32985,32989,32964,32986,32982,33033,33007,33009,33051,33065,33059,33071,33099,38539,33094,33086,33107,33105,33020,33137,33134,{f:2,c:33125},33140,33155,33160,33162,33152,33154,33184,33173,33188,33187,
+33119,33171,33193,33200,33205,33214,33208,33213,33216,33218,33210,33225,33229,33233,33241,33240,33224,33242,{f:2,c:33247},33255,{f:2,c:33274},33278,{f:2,c:33281},33285,33287,33290,33293,33296,33302,33321,33323,33336,33331,33344,33369,33368,33373,33370,33375,33380,33378,33384,{f:2,c:33386},33326,33393,33399,[12171,33400],33406,33421,33426,33451,33439,33467,33452,33505,33507,33503,33490,33524,33523,33530,33683,33539,33531,33529,33502,33542,33500,33545,33497,33589,33588,33558,33586,33585,33600,33593,
+33616,33605,33583,33579,{f:2,c:33559},33669,33690,33706,33695,33698,33686,33571,33678,33671,33674,33660,33717,33651,33653,33696,33673,33704,33780,33811,33771,33742,33789,33795,33752,33803,33729,33783,33799,33760,33778,33805,33826,33824,33725,33848,34054,33787,33901,33834,33852,34138,33924,33911,33899,33965,33902,33922,33897,33862,33836,33903,33913,33845,33994,33890,33977,33983,33951,34009,33997,33979,34010,34E3,33985,33990,34006,33953,34081,34047,34036,{f:2,c:34071},34092,34079,34069,34068,34044,
+34112,34147,34136,34120,34113,34306,34123,34133,34176,34212,34184,34193,34186,34216,34157,34196,34203,34282,34183,34204,34167,34174,34192,34249,34234,34255,34233,34256,34261,34269,34277,34268,34297,34314,34323,34315,34302,34298,34310,34338,34330,34352,34367,[12172,34381],20053,34388,34399,34407,34417,34451,34467,{f:2,c:34473},{f:2,c:34443},34486,34479,34500,34502,34480,34505,34851,34475,34516,34526,34537,34540,34527,34523,34543,34578,34566,34568,34560,34563,34555,34577,34569,34573,34553,34570,34612,
+34623,34615,34619,34597,34601,34586,34656,34655,34680,34636,34638,34676,34647,34664,34670,34649,34643,34659,34666,34821,34722,34719,34690,34735,34763,34749,34752,34768,38614,34731,34756,34739,34759,34758,34747,34799,34802,34784,34831,34829,34814,{f:2,c:34806},34830,34770,34833,34838,34837,34850,34849,34865,34870,34873,34855,34875,34884,34882,34898,34905,34910,34914,34923,34945,34942,34974,34933,34941,34997,34930,34946,34967,34962,34990,34969,34978,34957,34980,34992,35007,34993,{f:2,c:35011},35028,
+{f:2,c:35032},35037,35065,35074,35068,35060,35048,35058,35076,35084,35082,35091,35139,35102,35109,{f:2,c:35114},35137,35140,35131,35126,35128,35148,35101,35168,35166,35174,35172,35181,35178,35183,35188,35191,[12177,35198],35203,35208,35210,35219,35224,35233,35241,35238,35244,35247,35250,35258,35261,{f:2,c:35263},35290,{f:2,c:35292},35303,35316,35320,35331,35350,35344,35340,35355,35357,35365,35382,35393,35419,35410,35398,35400,35452,35437,35436,35426,35461,35458,35460,35496,35489,35473,{f:2,c:35493},
+35482,35491,35524,35533,35522,35546,35563,35571,35559,35556,35569,35604,35552,35554,35575,35550,35547,35596,35591,35610,35553,35606,35600,35607,35616,35635,38827,35622,35627,35646,35624,35649,35660,35663,35662,35657,35670,35675,35674,35691,35679,35692,35695,35700,35709,35712,35724,35726,{f:2,c:35730},35734,{f:2,c:35737},35898,35905,35903,35912,35916,35918,35920,[12183,35925],35938,35948,[12184,35960],35962,35970,35977,35973,35978,{f:2,c:35981},35988,35964,35992,25117,36013,36010,36029,{f:2,c:36018},
+36014,36022,36040,36033,36068,36067,36058,36093,{f:2,c:36090},{f:2,c:36100},36106,36103,36111,36109,36112,40782,36115,36045,36116,36118,36199,36205,36209,36211,36225,36249,36290,36286,36282,36303,36314,36310,36300,36315,36299,{f:2,c:36330},36319,36323,36348,{f:2,c:36360},36351,{f:2,c:36381},36368,36383,36418,36405,36400,36404,36426,36423,36425,36428,36432,36424,36441,36452,36448,36394,36451,36437,36470,36466,36476,36481,36487,36485,36484,36491,36490,36499,36497,36500,36505,36522,36513,36524,36528,
+36550,36529,36542,36549,36552,36555,36571,36579,36604,36603,36587,36606,36618,36613,36629,36626,36633,36627,36636,36639,36635,36620,36646,36659,36667,36665,36677,36674,36670,36684,36681,36678,36686,36695,36700,{f:3,c:36706},36764,36767,36771,36781,36783,36791,36826,36837,36834,36842,36847,36999,36852,36869,{f:2,c:36857},36881,36885,36897,36877,36894,36886,36875,36903,36918,36917,36921,36856,{f:4,c:36943},36878,36937,36926,36950,36952,36958,36968,36975,36982,38568,36978,36994,36989,36993,36992,37002,
+37001,37007,37032,37039,37041,37045,37090,37092,25160,37083,37122,37138,37145,37170,37168,37194,37206,37208,37219,37221,37225,37235,37234,37259,37257,37250,37282,37291,37295,37290,37301,37300,37306,{f:2,c:37312},37321,37323,37328,37334,37343,37345,37339,37372,{f:2,c:37365},37406,37375,37396,37420,37397,37393,37470,37463,37445,37449,37476,37448,37525,37439,37451,37456,37532,37526,37523,37531,37466,37583,37561,37559,37609,37647,37626,37700,37678,37657,37666,37658,37667,37690,37685,37691,37724,37728,
+37756,37742,37718,37808,{f:2,c:37804},37780,37817,{f:2,c:37846},37864,37861,37848,37827,37853,37840,37832,37860,37914,37908,37907,37891,37895,37904,37942,37931,37941,37921,37946,37953,37970,37956,37979,37984,37986,37982,37994,37417,38E3,38005,38007,38013,37978,38012,38014,38017,38015,38274,38279,38282,38292,38294,{f:2,c:38296},38304,38312,38311,38317,38332,38331,38329,38334,38346,28662,38339,38349,38348,38357,38356,38358,38364,38369,38373,38370,38433,38440,{f:2,c:38446},38466,38476,38479,38475,38519,
+38492,38494,38493,38495,38502,38514,38508,38541,38552,38549,38551,38570,38567,{f:2,c:38577},38576,38580,[12202,38582],38584,[12203,38585],38606,38603,38601,38605,35149,38620,38669,38613,38649,38660,38662,38664,38675,38670,38673,38671,38678,38681,38692,38698,38704,38713,{f:2,c:38717},38724,38726,38728,38722,38729,38748,38752,38756,38758,38760,21202,38763,38769,38777,38789,38780,38785,38778,38790,38795,{f:2,c:38799},38812,38824,38822,38819,{f:2,c:38835},38851,38854,38856,[12209,38859],38876,[12210,
+38893],40783,38898,31455,38902,38901,38927,38924,38968,38948,38945,38967,38973,38982,38991,38987,39019,{f:3,c:39023},39028,39027,39082,39087,39089,39094,39108,39107,39110,39145,39147,39171,39177,39186,39188,39192,39201,{f:2,c:39197},39204,39200,39212,39214,{f:2,c:39229},39234,39241,39237,39248,39243,{f:2,c:39249},39244,39253,{f:2,c:39319},39333,{f:2,c:39341},39356,39391,39387,39389,39384,39377,{f:2,c:39405},{f:2,c:39409},39419,39416,39425,39439,39429,39394,39449,39467,39479,39493,39490,39488,39491,
+39486,39509,39501,39515,39511,39519,39522,39525,39524,39529,39531,39530,39597,39600,39612,39616,39631,39633,{f:2,c:39635},39646,[12221,39647],{f:2,c:39650},39654,39663,39659,39662,39668,39665,39671,39675,39686,39704,39706,39711,{f:2,c:39714},[12222,39717],{f:4,c:39719},39726,[12223,39727],[12224,39730],39748,39747,39759,{f:2,c:39757},39761,39768,39796,39827,39811,39825,{f:2,c:39830},{f:2,c:39839},39848,39860,39872,39882,39865,39878,39887,{f:2,c:39889},39907,39906,39908,39892,39905,39994,39922,39921,
+39920,39957,39956,39945,39955,39948,39942,39944,39954,39946,39940,39982,39963,39973,39972,39969,39984,40007,39986,40006,39998,40026,40032,40039,40054,40056,40167,40172,40176,40201,40200,40171,40195,40198,40234,40230,40367,40227,40223,40260,40213,40210,40257,40255,40254,40262,40264,{f:2,c:40285},40292,40273,40272,40281,40306,40329,40327,40363,40303,40314,40346,40356,40361,40370,40388,40385,40379,40376,40378,40390,40399,40386,40409,40403,40440,40422,40429,40431,40445,{f:2,c:40474},40478,[12228,40565],
+40569,40573,40577,40584,{f:2,c:40587},40594,40597,40593,40605,[12230,40613],40617,40632,40618,40621,38753,40652,{f:3,c:40654},40660,40668,40670,40669,40672,40677,40680,40687,40692,{f:2,c:40694},[12235,40697],{f:2,c:40699},[12236,40701],{f:2,c:40711},30391,40725,40737,40748,40766,[12241,40778],[12242,40786],40788,40803,{f:3,c:40799},{f:2,c:40806},40812,40810,40823,40818,40822,40853,[12244,40860],[12245,40864],22575,27079,36953,29796,0,{f:76,c:9472},{f:20,c:9312},{f:10,c:8544},13129,13076,0,13133,0,
+13095,0,13110,13137,0,13069,13094,0,13099,13130,0,{f:3,c:13212},{f:2,c:13198},13252,13217,12317,12319,8470,13261,0,{f:5,c:12964},{f:2,c:12849},12857,13182,13181,13180,8750,8721,{s:3},8735,8895,0,0,21854,{s:7},167133,0,0,28976,0,40407,{s:4},64054,0,0,22169,15694,{s:4},20448,0,0,36544,0,194797,{s:4},153716,32363,33606,167670,{s:3},40572,0,0,26171,0,40628,{s:4},26629,{s:5},23650,0,194780,0,32353,0,0,64070,{s:5},34083,37292,{s:7},34796,{s:8},25620,0,0,39506,{s:4},64074,0,194692,{s:4},31774,{s:6},64016,
+25681,0,0,63980,22625,39002,0,194679,{s:3},31153,0,28678,{s:9},22218,{s:3},21085,0,28497,37297,{s:10},64106,{s:6},38960,0,40629,{s:9},33802,63939,{f:2,c:63890},63897,0,34847,194575,0,194771,194584,{s:7},137754,23643,{s:4},25890,0,0,26618,0,26766,0,148432,194848,{s:21},34110,{s:15},30562,{s:12},65075,0,{f:2,c:65073},{s:4},65072,{f:2,c:65077},{f:2,c:65081},0,0,{f:2,c:65079},{f:2,c:65087},{f:2,c:65085},{f:4,c:65089},{f:2,c:65083},{s:41},{f:3,c:12436},0,0,22099,{s:41},65508,65287,65282,0,9665,9655,8681,
+8679,8678,8680,9634,9831,9825,9828,9826,13216,13218,{f:2,c:13220},13207,8467,13208,13235,13234,13233,13232,{f:3,c:13189},13259,13200,13268,13206,13090,13078,13080,13077,13059,13091,13143,13122,13113,13115,13056,13105,13127,13086,13098,0,13183,8481,9742,12342,12320,{s:3},{f:9,c:9352},{f:20,c:9332},12881,{f:10,c:8560},{f:10,c:12882},{f:26,c:9372},12867,12861,12863,12852,12856,12851,12860,12866,12862,12854,12853,12859,12864,12858,12976,12973,12969,12975,12948,12970,12952,12971,12946,12945,12947,12972,
+12974,12950,{s:8},{f:3,c:9131},0,{f:3,c:9127},0,13260,13061,0,0,13215,13219,13222,0,0,12958,{f:2,c:13192},13256,8749,0,12848,{f:6,c:12842},12855,12865,10145,{s:3},9673,9824,9829,9827,9830,{f:4,c:9728},9758,{f:2,c:9756},9759,12953,9450,{f:2,c:8554},{s:3},{f:8,c:9601},9615,9614,9613,9612,9611,9610,9609,{f:2,c:9620},{f:2,c:9581},9584,9583,9552,9566,9578,9569,{f:2,c:9698},9701,9700,0,0,{f:3,c:9585},{s:20},20956,29081,{f:9,c:10102},{s:3},{f:2,c:8570},{s:3},8575,8458,8457,0,0,12292,8646,{f:2,c:8644},0,
+{f:4,c:12535},0,0,12957,{s:3},13179,{s:3},13107,13134,{s:30},32394,35100,37704,37512,34012,20425,28859,26161,26824,37625,26363,24389,[12033,20008],20193,20220,20224,20227,20281,20310,20370,20362,20378,20372,20429,20544,20514,20479,20510,20550,20592,20546,20628,20724,20696,20810,20836,20893,20926,20972,21013,21148,21158,21184,21211,21248,0,21284,21362,21395,21426,21469,64014,21660,21642,21673,21759,21894,22361,22373,22444,22472,22471,64015,0,22686,22706,22795,22867,22875,22877,22883,22948,22970,23382,
+23488,29999,23512,0,23582,23718,23738,23797,23847,23891,0,23874,23917,{f:2,c:23992},24016,24353,24372,24423,24503,24542,24669,24709,24714,24798,24789,24864,24818,24849,24887,24880,24984,25107,25254,25589,25696,25757,25806,25934,26112,26133,26121,26158,0,26148,26213,26199,26201,64018,26227,26265,26272,26290,26303,26362,26382,0,26470,26555,26706,26560,0,26692,26831,64019,26984,64020,27032,27106,27184,27243,27206,27251,27262,27362,27364,27606,27711,27740,27782,27759,27866,27908,28039,28015,28054,28076,
+28111,28152,28146,28156,28217,28252,28199,28220,28351,28552,28597,28661,28677,28679,28712,28805,28843,28943,28932,29020,{f:2,c:28998},0,29121,29182,29361,29374,29476,64022,29559,29629,29641,29654,29667,29650,29703,29685,29734,29738,29737,29742,0,29833,29855,29953,30063,30338,30364,30366,30363,30374,64023,30534,21167,30753,30798,30820,30842,31024,{f:3,c:64024},31124,64027,31131,31441,31463,64028,31467,31646,64029,32072,0,32183,32160,32214,32338,32583,32673,64030,33537,33634,33663,33735,33782,33864,
+33972,34131,34137,34155,64031,34224,{f:2,c:64032},34823,35061,35346,35383,35449,35495,35518,35551,64034,35574,35667,35711,36080,36084,36114,36214,64035,36559,0,64037,36967,37086,64038,37141,37159,37338,37335,37342,{f:2,c:37357},{f:2,c:37348},37382,37392,37386,37434,37440,37436,37454,37465,37457,37433,37479,37543,{f:2,c:37495},37607,37591,37593,37584,64039,37589,37600,37587,37669,37665,37627,64040,37662,37631,37661,37634,37744,37719,37796,37830,37854,37880,37937,37957,37960,38290,0,64041,38557,38575,
+38707,38715,38723,38733,38735,[12205,38737],0,38999,39013,{f:2,c:64042},39207,64044,39326,39502,39641,39644,39797,39794,39823,39857,39867,39936,40304,40299,64045,40473,40657,0,92,{s:634},8364,8486,0,0,64256,{f:2,c:64259},257,299,363,275,333,256,298,362,274,332,{f:4,c:8539},{f:2,c:8531},8304,{f:6,c:8308},{f:10,c:8320},461,282,0,7868,463,0,296,465,0,467,366,360,462,283,0,7869,464,0,297,466,0,468,367,361,593,8049,8048,509,0,596,0,0,601,0,0,602,0,0,603,8051,8050,0,331,629,652,0,0,658,643,720,{s:682},
+{f:10,c:12832},{s:108},{f:4,c:12892},{f:15,c:12977},{s:50},{f:26,c:9424},{f:26,c:9398},{s:48},{f:47,c:13008},0,{f:10,c:12928},12944,{f:6,c:12938},0,12959,{s:6},{f:2,c:12960},12955,12954,12963,12962,12951,0,12956,12949,{s:6},9676,{s:11},10111,{f:10,c:9451},{s:510},8414,{s:815},13274,{s:3},8448,13250,0,0,8453,0,13169,0,0,13197,13211,{s:3},{f:2,c:13271},{s:3},{f:2,c:13057},13060,13062,0,13064,0,13063,13066,0,13065,0,13067,0,13068,{f:6,c:13070},0,13079,0,13081,0,{f:4,c:13082},{f:3,c:13087},13092,0,13093,
+0,0,{f:2,c:13096},0,13101,0,0,{f:3,c:13102},13106,0,0,{f:2,c:13108},13116,{s:3},13111,0,13112,13114,13117,13121,{f:3,c:13118},{f:4,c:13123},13128,{f:2,c:13131},{f:2,c:13135},0,0,13138,13140,0,0,13139,{f:2,c:13141},{s:132},8501,976,8714,8463,0,981,987,977,0,{f:2,c:9832},9836,{s:5},12347,0,{f:3,c:12339},8252,8265,{s:5},8723,0,8771,{f:2,c:8818},{s:6},{f:2,c:12312},{f:2,c:65375},{s:10},9115,{f:2,c:9117},9120,{s:4},9121,{f:2,c:9123},9126,{s:12},[9116,9119,9122,9125,9130],{s:8},9986,0,0,12349,0,12447,0,
+0,8709,8864,8854,8856,8853,8855,{s:4},9664,9654,{s:4},8656,8596,{f:2,c:8600},{f:2,c:8598},8652,8651,{s:10},12336,8967,{s:8},10048,10047,{s:7},9643,0,9642,0,10010,{s:12},9702,{s:4},10070,{s:379},{f:2,c:65093},{s:679},64103,64098,32227,[12232,40643],28331,64082,64061,64069,64062,27114,28212,64096,64071,64056,64066,64078,34395,64105,64052,64099,25581,25802,30799,64084,63856,64077,64097,64072,64076,{f:2,c:64091},64081,64067,64090,28041,29376,0,194885,64086,64080,64049,64059,24034,64063,64101,21373,64055,
+64095,24501,64064,0,64083,0,64085,64104,64068,64089,26202,64053,64075,64100,64065,64048,0,64057,64051,27493,64058,27599,64050,25150,64079,63773,63964,63798,28122,63952,26310,27511,64087,37706,0,37636,{s:120},133390,{s:120},35999,11991,[11965,158033],{s:5},37555,38321,0,0,194812,{s:13},194965,{s:8},194794,0,26478,11974,0,194594,{s:13},13314,0,0,26083,{s:4},134071,{s:10},171339,0,194611,24378,{s:8},11945,0,20465,{s:7},63753,{s:7},11964,0,0,194732,26435,{s:3},133732,35329,25142,0,0,21555,23067,{s:3},
+25221,0,0,194819,{s:6},21567,{s:9},27506,{s:4},29986,19256,0,0,24063,{s:6},194827,29626,134047,{s:3},194600,0,194849,{s:5},194623,{s:16},194675,{f:2,c:11916},23577,{s:3},131083,23426,194642,{s:5},11997,[11999,39136],[11998,169599],14221,0,[11927,14586],0,194887,0,[11909,20155],131490,{s:7},13599,0,194738,0,0,[11971,35200],{s:4},31237,{s:4},35498,0,32085,0,28568,{s:7},25591,30246,{s:4},[11978,163767],{s:5},146686,{s:5},13351,0,0,33067,0,0,194842,{s:5},11950,{s:5},194714,{s:3},194831,{s:19},22305,135741,
+194586,0,64003,{s:7},21534,15240,20839,{s:4},63839,{s:9},20023,{s:13},[11946,150804],24421,23020,194658,0,24217,{s:46},13416,{s:8},21200,{s:9},26625,0,195024,195039,{s:5},153215,0,0,11959,{s:4},36534,63775,{s:3},63875,{s:5},31867,63906,0,63898,0,[11961,32770],157360,{s:4},[11911,132648],0,0,131210,194604,[11915,13630],{s:4},21589,0,22841,0,0,23414,194669,23572,14306,23782,0,20040,0,0,194742,{s:4},158105,25371,0,0,26211,0,194779,0,0,27126,27014,{s:3},27596,0,28183,0,0,27818,{s:3},[11942,20012],0,0,
+29935,30069,30188,30286,16305,30570,30633,{s:6},31571,0,0,16996,{s:3},194924,0,0,32328,{s:5},11955,{s:4},33089,17491,0,[11966,33401],[11967,64094],[11968,64093],0,20857,33626,{s:3},17701,0,34292,131248,{s:4},34429,0,13358,35014,{s:6},18406,{s:8},36808,{s:19},166279,0,0,167447,0,0,38969,{s:6},39432,{s:4},39903,{s:10},148206,{s:5},21385,0,64017,194785,0,146622,132625,0,{f:2,c:19972},19999,20011,{f:2,c:20015},{f:2,c:20032},20036,[11907,20058],20095,20109,20118,20153,20176,20192,20221,20223,20235,20245,
+20320,20283,20297,20308,20346,{f:2,c:20349},20375,20414,20431,20477,{f:2,c:20480},20496,20507,20519,20526,20567,20582,20586,20539,20623,20630,20636,20684,20710,20713,20719,20744,20747,20752,20763,20766,20831,20897,20924,0,20974,20980,20993,[11913,20994],21011,21065,21089,21094,21139,21192,21232,{f:2,c:21258},21310,21324,21323,21345,21356,21419,21466,21478,21493,21543,21581,21606,21611,21620,21645,21654,21665,21677,21689,21695,21702,21709,21774,21803,21813,21834,21856,0,21896,21902,22024,{f:2,c:22030},
+22071,22079,22089,22091,22095,22118,22121,22127,{f:2,c:22129},22165,22170,{f:2,c:22188},22193,22217,22237,22244,22282,22293,22307,22319,{f:2,c:22323},22348,22384,22412,22428,22456,22502,22509,{f:2,c:22517},22527,22537,22560,22578,22652,22656,22697,22734,22736,22740,22746,22761,22796,22820,22831,22881,22893,22986,22994,23005,{f:2,c:23011},23044,23052,23075,23111,23125,23139,23149,23166,23198,23207,23212,23219,23264,23296,23321,23333,23341,23361,23420,{f:2,c:23422},23434,[11919,23587],23595,23600,23651,
+23657,23676,23755,23762,23796,23844,23846,23875,23878,23882,23954,23956,23961,23968,24024,24032,24056,24064,24082,{f:2,c:24084},24088,24110,24152,{f:2,c:24171},24232,24234,{f:2,c:24254},0,24274,24327,24334,{f:2,c:24348},24354,24360,24374,24379,24384,[12089,24400],24408,24420,24457,24476,24487,24484,24495,24504,[11926,24516],24521,24545,24553,24557,24572,24599,24602,24627,24673,24703,24734,24740,24752,24779,24795,24824,{f:3,c:24850},24860,24956,24973,24991,25E3,25026,25055,25109,25129,25155,25158,
+[11928,25164],25169,25174,25284,25340,25354,25357,25368,25401,{f:2,c:25410},25445,25460,25469,25476,25479,25488,25502,25553,25564,25609,25616,25634,25684,25691,25709,25723,{f:2,c:25790},25829,25847,25851,25860,25878,25881,25927,25959,25985,25989,26050,26096,26098,26156,26188,{f:2,c:26203},26209,26219,0,26276,26312,26348,26373,26387,26419,26440,26444,26486,26491,26544,26546,26617,26583,26585,26608,26668,{f:2,c:26672},26715,26738,26741,26746,26756,26789,26802,26832,26838,26856,26861,{f:2,c:26864},26876,
+26897,26899,26933,26939,26967,26979,26994,{f:2,c:27007},27046,27053,27063,{f:2,c:27094},27137,27151,27157,27176,27188,27198,27205,{f:2,c:27216},27222,27227,27267,27273,27281,{f:3,c:27293},27356,27367,27372,27422,27428,27445,27462,27478,27488,27522,27582,27617,27633,27664,27699,[11937,27701],11938,27737,27766,27771,27781,27797,27804,27856,27860,27862,27872,{f:2,c:27883},27886,27914,27918,27921,27950,27991,27998,28005,28034,28095,28100,28106,28118,28137,28194,28241,28359,28362,28366,28413,28442,28458,
+28463,28467,28506,28510,28514,28541,28555,28557,28562,28564,28570,{f:2,c:28583},28598,28634,28638,0,28729,28732,0,28756,{f:2,c:28765},28772,[11939,28780],28798,28801,28821,28855,{f:2,c:28883},28888,28892,28935,28960,28977,29002,29010,29024,29049,29074,0,29131,29139,29142,29184,29213,29227,29240,29249,29267,{f:2,c:29269},29276,29325,[11944,29357],29364,29383,29435,{f:2,c:29444},29480,29489,29507,29548,29564,29571,{f:2,c:29573},29589,{f:3,c:29598},29606,29611,29621,29623,29628,29647,29657,29673,29684,
+29693,29700,29706,{f:2,c:29722},29732,29736,29740,{f:3,c:29743},29753,29764,29767,29771,29773,29777,29783,29798,29803,29809,29824,{f:3,c:29829},29840,29848,29852,29856,29859,29864,29867,29877,29887,29896,29914,29918,30030,30073,30081,30096,[12135,30098],30099,30132,30180,30201,30208,30218,{f:2,c:30229},30233,30238,30253,30261,30275,30283,30309,30317,30319,30321,30324,{f:2,c:30372},30405,30412,30444,30460,30516,30518,30556,{f:2,c:30559},30578,30589,30613,30634,30694,30704,30708,30726,30754,{f:2,c:30765},
+30768,30773,30824,30878,30920,30924,30926,30948,{f:2,c:30944},30962,30967,30971,31025,0,[11949,31035],31037,31045,{f:2,c:31067},31115,31126,31128,[12145,31160],31163,31178,31194,31235,31241,31249,31262,31277,31289,31301,31308,31325,0,31341,31352,31392,31395,31411,{f:2,c:31419},31430,31495,31508,31527,31537,31559,31566,31584,31593,31597,31602,31633,31663,31703,31705,31755,31759,31776,31782,31793,31798,31825,31833,31847,31854,31856,31932,31935,{f:2,c:31944},31959,31961,31965,31979,{f:3,c:32007},32019,
+32029,32035,32065,32083,32089,32093,32122,32134,{f:2,c:32139},32204,32235,32241,32249,32264,32273,32277,32288,32327,32354,32366,32371,32397,32401,32408,32580,32591,[11947,11954,32594],[11953,32595],32609,32657,32703,32718,32735,32741,32748,{f:2,c:32750},32762,32782,32785,32788,32804,32806,32826,32828,32864,32881,32885,32926,32934,32939,{f:2,c:32983},33046,33048,33082,33098,33100,33153,33156,33204,33231,33273,33283,33313,33330,33332,33350,33355,33359,33422,33454,33463,33470,33478,33534,33603,33617,
+33621,33670,33677,33682,33688,33705,{f:2,c:33727},33770,33807,33809,33866,33910,33960,33967,33984,33986,34032,34045,34060,34100,34142,34191,34231,34254,34221,34322,34345,34386,34403,34412,34415,34426,34445,34449,34456,{f:2,c:34471},34554,34557,34571,34579,34585,34590,34600,34622,34673,34696,34713,{f:2,c:34732},34741,34774,34795,34797,34817,0,34822,34827,34836,34844,34902,34911,[11970,34916],34968,34986,{f:2,c:35005},35018,35026,35035,{f:2,c:35056},35078,{f:3,c:35096},35111,35120,35134,35195,35284,
+35286,35301,35313,35335,35343,35349,35362,35406,35455,35572,35615,35639,{f:2,c:35651},35668,35740,35742,35911,35924,35955,36004,36057,36065,36088,36094,36123,36201,36204,36228,36237,36245,36262,36294,36302,36324,36332,36384,36427,36460,36464,36474,36498,36526,36531,36561,36564,36601,36631,36662,36774,[12193,36789],[11981,36790],0,36832,36836,36854,36866,36908,36932,37E3,37013,37017,37019,37026,37044,37079,37085,37108,37143,37148,37169,37178,37181,37192,37211,37217,37220,37262,37278,37288,{f:2,c:37293},
+37298,37308,37360,37367,37371,37383,37416,37427,37432,37443,37447,37455,37472,37570,{f:2,c:37579},37599,37645,37653,37663,37671,37703,37714,0,37738,37741,37787,37818,37801,37825,37834,37858,37882,37885,37903,37940,37951,37973,37995,38002,[11986,38264],38310,38313,0,38324,38333,38362,[11983,11990,38429],38465,38488,38532,38564,38569,38610,195060,38622,38633,38641,38658,38665,38746,38755,38766,38771,38810,38818,{f:2,c:38837},38873,38878,38900,38922,38926,38942,38947,38955,38974,{f:2,c:38994},39001,
+39020,39096,39098,39103,39112,39141,{f:2,c:39218},39232,39245,39260,39263,39345,{f:2,c:39353},39369,39426,39446,39460,39463,{f:2,c:39469},39478,39480,39498,39510,{f:2,c:39605},39673,39683,39712,{f:2,c:39731},39795,39801,39847,39873,39879,39895,39911,39915,39927,39930,39933,39947,39975,39978,39990,40001,40019,40035,40048,40055,40194,40258,40263,40291,40297,40316,40318,40333,40369,40387,40391,40406,40415,40427,40436,40469,40477,40612,40616,40620,40679,40686,40720,40722,40727,40729,40751,40759,40761,
+40769,40773,40791,40808,40817,40821,40848,40852,40866,0,13317,194564,22048,24267,11925,0,144954,0,28665,28390,29107,[11940,64073],{s:4},[11980,64102],0,23986,0,20435,20697,20720,20931,22134,27220,27905,28112,28226,28377,29668,29729,30060,30801,34805,144382,29608,15091,13531,17420,16010,0,0,19432,0,16090,15138,0,17786,16531,0,18021,16643,17043,18094,13448,140809,{f:3,c:63584},63610,63615,{s:23},{f:2,c:8836},{f:2,c:8842},8713,0,{f:2,c:8965},{s:9},{f:2,c:8741},{s:14},8802,0,8773,8776,{f:2,c:8822},{s:4},
+8487,{s:209},{f:2,c:8922},8533,8984,{f:2,c:7742},{f:2,c:504},470,472,474,476,260,728,317,346,350,356,377,379,261,731,318,347,711,351,357,378,733,380,340,258,313,262,268,280,270,323,327,336,344,368,354,341,259,314,263,269,281,271,273,324,328,337,345,369,355,729,264,284,292,308,348,364,265,285,293,309,349,365,625,651,638,620,622,633,648,598,627,637,642,656,635,621,607,626,669,654,609,624,641,295,661,660,614,664,450,595,599,644,608,403,616,649,600,604,606,592,623,650,612,594,653,613,674,673,597,657,
+634,615,865,712,716,721,8255,783,{f:5,c:741},0,0,805,812,825,796,{f:2,c:799},829,809,815,734,804,816,828,820,{f:2,c:797},{f:2,c:792},810,{f:2,c:826},794,{s:3},{f:2,c:610},618,628,630,632,640,655,665,668,671,688,690,695,704,{f:2,c:736},{s:6},8862,{s:287},12348,12543,0,{f:2,c:12310},9838,9835,{f:2,c:10548},10687,0,12448,0,{f:2,c:10746},{s:13},962,{f:10,c:9461},{f:2,c:9750},9649,{f:10,c:12784},0,{f:6,c:12794},{f:15,c:9150},0,0,10003,0,9251,9166,{f:4,c:9680},{f:2,c:8263},0,8273,8258,{f:16,c:12688},{s:13},
+{f:2,c:9136},{f:12,c:9842},{f:2,c:12441},8413,{s:450},20296,20319,20330,20332,20494,20504,20545,20722,20688,20742,20739,20789,20821,20823,13493,20938,20962,21079,21196,21206,21243,21276,21347,21405,21522,21631,21640,21840,21889,21933,21966,22075,22174,22185,22195,22391,22396,135963,22479,22500,22628,22665,136302,22738,22752,34369,22923,22930,22979,23059,23143,23159,23172,23236,137405,23421,23443,23570,64060,136884,23674,23695,23711,23715,23722,23760,138804,23821,23879,23937,23972,23975,24011,24158,
+24313,24320,24322,24355,24381,24404,24445,24589,24596,24600,24629,24647,24733,24788,24797,24875,25020,25017,25122,25178,25199,25302,25468,25573,25721,25796,25808,25897,26013,26170,26146,26155,26160,26163,26184,143812,{f:2,c:26231},26253,26299,26331,26344,26439,26497,26515,26520,26523,26620,26653,26787,26890,26953,144836,26946,26980,27045,27087,15286,15299,27113,27125,145215,27195,145251,27284,27301,15375,27419,27436,27495,27561,27565,27607,27647,27653,27764,27800,27899,27846,27953,27961,27967,27992,
+28052,28074,28123,28125,28228,28254,28337,28353,28432,28505,28513,28542,28556,28576,28604,28615,28618,28656,28750,28789,28836,28900,28971,28958,28974,29009,29032,29061,29063,29114,29124,29205,15935,29339,149489,29479,29520,29542,29602,29739,29766,29794,29805,29862,29865,29897,29951,29975,16242,30158,30210,30216,30308,30337,30365,30378,30390,30414,30420,30438,30449,30474,30489,{f:2,c:30541},30586,30592,30612,30688,152718,30787,30830,30896,152846,30893,30976,31004,31022,31028,31046,31097,31176,153457,
+31188,31198,31211,31213,31365,154052,31438,31485,31506,31533,31547,31599,31745,31795,155041,31853,31865,31887,31892,31904,31957,32049,32092,32131,32166,32194,32296,32663,32731,32821,32823,32970,32992,33011,33120,{f:2,c:33127},33133,33211,33226,33239,17499,33376,33396,158463,33441,{f:2,c:33443},33449,33471,33493,33533,33536,33570,33581,33594,33607,33661,33703,33743,33745,33761,33793,33798,33887,33904,33907,33925,33950,33978,159296,34098,34078,34095,34148,34170,34188,34210,34251,34285,34303,{f:2,c:34308},
+34320,159988,34328,34360,34391,34402,17821,34421,34488,34556,34695,17898,34826,34832,35022,161412,35122,35129,35136,35220,35318,35399,35421,35425,35445,35536,35654,35673,35689,35741,35913,35944,36271,36305,36311,36387,36413,36475,164471,18500,36602,36638,36653,36692,164813,36840,36846,36872,36909,37015,37043,37054,{f:2,c:37060},37063,37103,37140,37142,{f:2,c:37154},37167,37172,37251,37361,37705,{f:2,c:37732},37795,37855,37892,37939,37962,37987,38001,38286,38303,38316,38326,38347,38352,38355,18864,
+38366,38565,38639,38734,38805,38830,38842,38849,38857,38875,38998,39143,39256,39427,39617,39619,39630,39638,39682,39688,19479,39725,39774,39782,39812,39818,39838,39886,39909,39928,39971,{f:2,c:40015},40037,{f:2,c:40221},40259,40274,40330,40342,40384,40364,40380,172432,40423,40455,40606,40623,40855,131209,19970,19983,19986,20009,20014,20039,131234,20049,13318,131236,20073,20125,13356,20156,20163,20168,20203,20186,20209,20213,20246,20324,20279,20286,20312,131603,{f:2,c:20343},20354,20357,20454,20402,
+20421,20427,20434,13418,20466,20499,20508,20558,20563,20579,20643,20616,{f:2,c:20626},20629,20650,131883,20657,{f:2,c:20666},20676,20679,20723,131969,20686,131953,20692,20705,13458,132089,20759,132170,20832,132361,20851,20867,20875,13500,20888,20899,20909,13511,132566,20979,21010,21014,132943,21077,21084,21100,21111,21124,21122,133127,21144,133178,21156,{f:2,c:21178},21194,21201,133305,21239,21301,21314,133500,133533,21351,21370,21412,21428,133843,21431,21440,133917,{f:2,c:13661},21461,13667,21492,
+21540,21544,13678,21571,21602,21612,21653,21664,21670,21678,21687,21690,21699,134469,21740,21743,21745,21747,{f:2,c:21760},21769,21820,21825,13734,21831,13736,21860,134625,21885,21890,21905,13765,21970,134805,134765,21951,21961,21964,21969,21981,13786,21986,134756,21993,22056,135007,22023,22032,22064,13812,22077,22080,22087,22110,22112,22125,13829,22152,22156,22173,22184,22194,22213,22221,22239,22248,{f:2,c:22262},135681,135765,22313,135803,{f:2,c:22341},22349,135796,22376,22383,{f:3,c:22387},22395,
+135908,135895,22426,{f:2,c:22429},22440,22487,135933,22476,135990,136004,22494,22512,13898,22520,22523,22525,22532,22558,22567,22585,136132,22601,22604,22631,{f:2,c:22666},22669,{f:2,c:22671},22676,22685,22698,22705,136301,22723,22733,22754,{f:2,c:22771},{f:2,c:22789},22797,22804,136663,13969,22845,13977,22854,13974,158761,22879,136775,{f:2,c:22901},22908,22943,22958,22972,22984,22989,23006,23015,23022,136966,137026,14031,23053,23063,23079,23085,23141,23162,23179,23196,{f:2,c:23199},23202,23217,23221,
+23226,23231,23258,23260,23269,23280,23278,23285,23304,23319,23348,23372,23378,23400,23407,23425,23428,137667,23446,23468,{f:2,c:14177},23502,23510,14188,14187,23537,23549,14197,23555,23593,138326,23647,{f:2,c:23655},23664,138541,138565,138616,138594,23688,23690,14273,138657,138652,23712,23714,23719,138642,23725,23733,138679,23753,138720,138803,23814,23824,23851,23837,23840,23857,23865,14312,23905,23914,14324,23920,139038,14333,23944,14336,23959,23984,23988,139126,24017,24023,139258,24036,24041,14383,
+14390,14400,24095,24126,24137,14428,24150,14433,{f:2,c:24173},139643,24229,24236,24249,24262,24281,140062,24317,24328,140205,24350,24391,24419,24434,24446,24463,24482,24519,24523,{f:3,c:24530},24546,{f:2,c:24558},24563,14615,24610,24612,14618,24652,24725,24744,141043,24753,24766,24776,24793,24814,24821,24848,24857,24862,24890,14703,24897,24902,24928,141403,{f:2,c:24978},24983,24997,25005,141483,25045,25053,25077,141711,25123,25170,25185,25188,25211,25197,25203,25241,25301,142008,25341,25347,25360,
+{f:2,c:142159},25394,25397,{f:2,c:25403},25409,25412,25422,142150,25433,142365,142246,25452,25497,142372,25492,25533,{f:2,c:25556},25568,{f:2,c:25579},25586,25630,25637,25641,25647,25690,25693,25715,25725,25735,25745,25759,{f:2,c:25803},25813,25815,142817,25828,25855,14958,25871,25876,14963,25886,25906,25924,25940,25963,25978,25988,25994,26034,26037,26040,26047,26057,26068,15062,26105,26108,26116,26120,26145,26154,26181,26193,26190,15082,143811,143861,143798,26218,{f:2,c:26220},26235,26240,26256,
+26258,15118,26285,26289,26293,15130,15132,15063,26369,26386,144242,26393,144339,144338,26445,26452,26461,144336,144356,144341,26484,144346,26514,144351,33635,26640,26563,26568,26578,26587,26615,144458,144465,144459,26648,26655,26669,144485,26675,26683,26686,26693,26697,26700,26709,26711,15223,26731,26734,26748,26754,26768,26774,15213,{f:3,c:26776},26780,{f:2,c:26794},26804,26811,26875,144612,144730,26819,26821,26828,26841,{f:2,c:26852},26860,26871,26883,26887,15239,144788,15245,26950,26985,26988,
+27002,27026,15268,27030,27056,27066,27068,27072,27089,144953,144967,144952,27107,{f:2,c:27118},27123,15309,27124,27134,27153,27162,27165,145180,{f:2,c:27186},27199,27209,27258,27214,27218,27236,145164,27275,15344,27297,145252,27307,27325,27334,27348,27344,27357,145407,145383,{f:3,c:27377},27389,145444,27403,{f:3,c:27407},145469,27415,15398,27439,27466,27480,27500,27509,[11934,27514],27521,27547,27566,146072,27581,{f:3,c:27591},27610,{f:2,c:27622},27630,27650,27658,27662,27702,146559,27725,27739,27757,
+27780,27785,15555,27796,27799,27821,27842,15570,27868,27881,27885,146688,27904,27940,{f:2,c:27942},27751,27951,27964,27995,28E3,28016,{f:2,c:28032},28042,28045,28049,28056,146752,146938,146937,146899,28075,28078,28084,28098,27956,28104,28110,28127,28150,28214,28190,15633,28210,{f:2,c:28232},{f:2,c:28235},28239,{f:2,c:28243},28247,28259,15646,28307,28327,28340,28355,28469,28395,28409,28411,28426,28428,28440,28453,28470,28476,147326,28498,28503,28512,28520,28560,28566,28606,28575,28581,28591,15716,
+{f:2,c:28616},28649,147606,28668,28672,28682,28707,147715,28730,28739,28743,28747,15770,28773,28777,28782,28790,28806,28823,147910,28831,28849,147966,28908,28874,28881,28931,28934,28936,28940,15808,28975,29008,29011,29022,15828,29078,29056,29083,29088,29090,{f:2,c:29102},148412,29145,29148,29191,15877,29236,29241,29250,29271,29283,149033,{f:2,c:29294},29304,29311,29326,149157,29358,29360,29377,15968,29388,15974,15976,29427,29434,29447,29458,{f:2,c:29464},16003,29497,29484,29491,29501,29522,16020,
+29547,149654,{f:2,c:29550},29553,29569,29578,29588,29592,29596,29605,29625,29631,29637,29643,29665,29671,29689,29715,29690,29697,29779,29760,29763,29778,29789,29825,29832,150093,29842,29847,29849,29857,29861,29866,29881,29883,29882,29910,29912,29931,150358,29946,150383,29984,29988,29994,16215,150550,{f:2,c:30013},30016,30024,30032,30034,30066,30065,30074,{f:2,c:30077},30092,16245,30114,16247,30128,30135,{f:2,c:30143},30150,30159,30163,30173,{f:2,c:30175},30183,30190,30193,30211,30232,30215,30223,
+16302,151054,30227,{f:2,c:30235},151095,30245,30248,30268,30259,151146,16329,30273,151179,30281,30293,16343,30318,30357,30369,30368,{f:2,c:30375},30383,151626,30409,151637,30440,151842,30487,30490,30509,30517,151977,16441,152037,152013,30552,152094,30588,152140,16472,30618,30623,30626,30628,{f:2,c:30686},30692,30698,30700,30715,152622,30725,30729,30733,30745,30764,30791,30826,152793,30858,30868,30884,30877,30879,30907,30933,30950,{f:2,c:30969},30974,152999,30992,31003,31013,31050,31064,16645,31079,
+31090,31125,31137,31145,31156,31170,31175,{f:2,c:31180},31190,16712,153513,153524,16719,31242,31253,31259,16739,31288,31303,31318,31321,31324,31327,31335,31338,31349,31362,31370,31376,31404,154068,16820,31417,31422,16831,31436,31464,31476,154340,154339,154353,31549,31530,{f:2,c:31534},16870,16883,31615,31553,16878,31573,31609,31588,31590,31603,154546,16903,31632,31643,16910,31669,31676,31685,31690,154699,154724,31700,31702,31706,31722,31728,31747,31758,31813,31818,31831,31838,31841,31849,31855,155182,
+155222,155237,31910,155234,{f:2,c:31926},155352,31940,155330,31949,155368,155427,31974,155484,31989,32003,17094,32018,32030,155616,155604,{f:2,c:32061},32064,32071,155660,155643,17110,32090,32106,32112,17117,32127,155671,32136,32151,155744,32157,32167,32170,32182,32192,32215,32217,32230,17154,155885,64088,32272,32279,32285,32295,32300,32325,32373,32382,{f:2,c:32390},17195,32410,17219,32572,32571,32574,32579,13505,156272,156294,{f:2,c:32611},32621,{f:2,c:32637},32656,20859,146702,32662,32668,32685,
+156674,32707,32719,32739,32754,32778,32776,32790,32812,32816,32835,32870,32891,32921,32924,32932,32935,32952,157310,32965,32981,32998,33037,33013,33019,17390,33077,33054,17392,33060,33063,33068,157469,33085,17416,33129,17431,17436,33157,17442,33176,33202,33217,33219,33238,33243,157917,33252,157930,33260,33277,33279,158063,33284,158173,33305,33314,158238,33340,33353,33349,158296,17526,17530,33367,158348,33372,33379,158391,17553,33405,33407,33411,33418,33427,{f:2,c:33447},33458,33460,33466,33468,33506,
+33512,33527,{f:2,c:33543},33548,33620,33563,33565,33584,33596,33604,33623,17598,17620,17587,{f:2,c:33684},33691,33693,33737,33744,33748,33757,33765,33785,33813,158835,33815,33849,33871,{f:2,c:33873},{f:2,c:33881},33884,158941,33893,33912,33916,33921,17677,33943,33958,33982,17672,{f:2,c:33998},34003,159333,34023,34026,34031,34033,34042,34075,{f:2,c:34084},34091,34127,34159,17731,34129,{f:2,c:34145},159636,34171,34173,34175,34177,34182,34195,34205,34207,159736,{f:2,c:159734},34236,34247,34250,{f:2,
+c:34264},34271,34273,34278,34294,34304,34321,34334,34337,34340,34343,160013,34361,34364,160057,34368,34387,34390,34423,34439,34441,{f:2,c:34460},34481,34483,34497,34499,34513,34517,34519,34531,34534,17848,34565,34567,34574,34576,34591,34593,34595,34609,34618,34624,34627,34641,34648,{f:2,c:34660},34674,34684,160731,160730,34727,34697,34699,34707,34720,160766,17893,34750,160784,34753,34766,34783,160841,34787,{f:2,c:34789},34794,34835,34856,34862,34866,34876,17935,34890,34904,161301,161300,34921,161329,
+34927,34976,35004,35008,161427,35025,35027,17985,35073,161550,35127,161571,35138,35141,35145,161618,35170,35209,35216,35231,35248,35255,35288,35307,18081,35315,35325,35327,18095,35345,35348,162181,35361,35381,35390,35397,35405,35416,35502,35472,35511,35543,35580,162436,35594,35589,35597,35612,35629,18188,35665,35678,35702,35713,35723,{f:2,c:35732},35897,162739,35901,162750,162759,35909,35919,35927,35945,35949,163E3,35987,35986,35993,18276,35995,36054,36053,163232,36081,163344,36105,36110,36296,36313,
+36364,18429,36349,36358,163978,36372,36374,{f:2,c:36385},36391,164027,18454,36406,36409,36436,36450,36461,36463,36504,36510,36533,36539,164482,18510,164595,36608,36616,36651,36672,36682,36696,164876,36772,36788,164949,36801,36806,64036,36810,36813,36819,36821,36849,36853,36859,36876,36919,165227,36931,36957,{f:2,c:165320},36997,37004,37008,37025,18613,37040,37046,37059,37064,165591,37084,37087,165626,37110,37106,37120,37099,{f:2,c:37118},37124,37126,37144,37150,37175,37177,{f:2,c:37190},37207,37209,
+37236,37241,37253,37299,37302,{f:2,c:37315},166217,166214,37356,37377,{f:2,c:37398},166251,37442,37450,37462,37473,37477,37480,166280,{f:2,c:37500},37503,37513,37517,37527,37529,37535,37547,{f:2,c:166330},37554,{f:2,c:37567},37574,37582,37605,37649,166430,166441,37623,37673,166513,166467,37713,37722,37739,37745,37747,37793,166553,166605,37768,37771,37775,37790,37877,166628,166621,37873,37831,37852,37863,37897,{f:2,c:37910},37883,37938,37947,166849,166895,37997,37999,38265,38278,{f:2,c:38284},167184,
+167281,38344,167419,167455,38444,{f:2,c:38451},167478,38460,38497,167561,38530,167659,38554,167730,18919,38579,38586,38589,18938,167928,38616,38618,38621,18948,38676,38691,18985,38710,38721,38727,38743,38747,38762,168608,168625,38806,38814,{f:2,c:38833},38846,38860,38865,38868,38872,38881,38897,38916,38925,38932,38934,19132,169104,{f:2,c:38962},38949,38983,39014,39083,39085,39088,169423,39095,{f:2,c:39099},39106,39111,39115,39137,39139,39146,{f:2,c:39152},39155,39176,19259,169712,{f:2,c:39190},169753,
+{f:3,c:39194},169808,39217,{f:3,c:39226},39233,39238,39246,39264,39331,39334,39357,39359,39363,39380,39385,39390,170182,39408,39417,39420,39434,39441,39450,39456,39473,39492,39500,39512,19394,39599,19402,39607,19410,39609,170610,39622,39632,39634,39637,39648,39653,39657,39692,39696,39698,39702,39708,39723,39741,19488,39755,39779,39781,{f:2,c:39787},{f:2,c:39798},39846,39852,171483,39858,39864,39870,39923,39896,39901,39914,39919,39918,171541,171658,171593,39958,{f:3,c:39960},39965,39970,39977,171716,
+39985,39991,40005,40028,171753,{f:2,c:40009},171739,40020,40024,40027,40029,40031,{f:3,c:40041},{f:2,c:40045},40050,40053,40058,40166,40178,40203,[171982,171991],40209,{f:2,c:40215},172079,19652,172058,40242,19665,40266,40287,40290,172281,172162,40307,{f:2,c:40310},40324,40345,40353,40383,40373,40377,40381,40393,40410,40416,40419,19719,40458,40450,40461,40476,40571,139800,40576,40581,40603,172940,40637,173111,40671,40703,40706,19831,40707,40762,40765,40774,40787,40789,40792,173553,40797,173570,40809,
+40813,40816,173746,11948,13844,14509,15820,16348,17854,17936,19326,19512,19681,19980,{f:2,c:20003},20089,20211,20236,20249,20267,20270,20273,20356,20382,20407,20484,20492,20556,20575,20578,20599,20622,20638,20642,20675,20712,20721,20734,20743,{f:3,c:20748},20787,20792,20852,20868,20920,20922,20936,20943,20945,{f:2,c:20947},20952,20959,20997,21030,21032,21035,{f:2,c:21041},21045,21052,21082,21088,21102,{f:2,c:21112},21130,21132,21217,21225,21233,21251,21265,21279,21293,21298,21309,21349,21357,21369,
+21374,21396,21401,21418,21423,21434,21441,{f:2,c:21444},21472,21523,21546,21553,{f:2,c:21556},21580,21671,21674,21681,21691,21710,21738,21756,21765,21768,21781,21799,21802,21814,21841,21862,21903,21906,21908,21924,21938,21955,21958,21971,21979,21996,21998,22001,22006,22008,22021,22029,{f:2,c:22033},22060,22069,22073,22093,22100,22149,22175,22182,22199,22220,22223,22233,22241,22251,22253,22257,22279,22284,{f:2,c:22298},22301,22316,22318,{f:2,c:22333},22367,22379,22381,22394,22403,22423,22446,22485,
+22503,22541,22566,22605,22607,22623,22637,22655,22657,22680,22716,22815,22819,22873,22905,22935,22959,22963,23007,23025,23032,23218,23224,23274,23286,23323,23325,23329,23352,23479,23511,23520,23583,23594,23596,23606,23641,23644,23661,23773,23809,23860,23869,23897,23934,23939,24007,24057,24104,24114,24117,24155,24168,24170,24183,24192,24203,24243,24253,24273,{f:2,c:24276},24397,24492,24554,24583,24649,24660,24679,24763,24772,24829,24842,24854,24874,24886,24926,24932,24955,24957,24959,24989,25016,25052,
+25058,25061,25064,25092,25095,25137,25145,25149,25210,25232,25256,25306,25332,25366,25386,25398,25414,25419,25427,25457,25461,25471,25474,25482,{f:2,c:25518},25578,{f:2,c:25592},25618,25624,25632,25636,25642,25653,25661,25663,25682,25695,25716,25744,{f:2,c:25752},25772,25779,25837,25840,25883,25887,25902,25929,25952,26002,26005,26036,26046,26056,26062,26064,26079,26238,{f:2,c:26251},26291,26304,26319,26405,26421,26453,26496,26511,26513,26532,26545,26549,26558,26664,26758,26859,26869,26903,26931,26936,
+26971,26981,27048,27051,27055,27109,27121,27210,27221,27239,27249,27311,{f:2,c:27336},27395,27451,27455,{f:2,c:27517},27568,27639,27641,27652,27657,27661,27692,27722,27730,27732,27769,27820,27828,27858,28001,28028,28089,28144,28229,28275,28283,28285,28297,28348,{f:2,c:28378},28454,28457,28464,28551,28573,28590,28599,28685,28704,28745,28824,28848,{f:2,c:28885},28997,29106,29172,29207,29215,29251,{f:2,c:29263},29274,29280,29288,29303,29316,29385,29413,29428,29442,29451,29470,29474,{f:2,c:29498},29517,
+29528,29543,29810,29871,29919,29924,29940,29947,29974,29985,30015,30046,30105,30116,30145,30148,30156,30167,30172,30177,30191,30212,30220,30237,30258,30264,30277,30282,30303,30381,30397,30425,30443,30448,30457,30464,30478,30498,30504,30511,30521,30526,30533,30538,30543,30558,30564,30567,30572,30596,{f:2,c:30604},30614,30631,30639,30647,30654,30665,30673,30681,30705,30775,30812,30846,30872,30881,30897,30899,30921,30931,30988,31007,{f:2,c:31015},31039,31042,31060,31083,31100,31147,31172,31210,31234,
+31244,31280,31290,31300,31360,31366,31380,31413,31421,31486,31531,31607,31648,31660,31664,31720,31730,31736,31740,31742,31753,31784,31791,31810,{f:2,c:31826},{f:3,c:31835},31858,31869,31879,31902,31930,31943,31955,31962,32060,32077,32130,32133,32141,32145,32158,32179,32185,32208,32229,{f:2,c:32245},32303,32310,32324,32367,32376,32385,32573,32603,32605,32613,32625,{f:2,c:32639},32651,32674,{f:3,c:32765},32775,32781,32798,32825,32904,32910,32975,32980,33005,33008,33015,33018,33022,33027,33047,33072,
+33111,33135,33139,33163,33168,33179,33182,33227,33237,{f:2,c:33245},33249,33263,33270,33280,33291,{f:2,c:33299},33306,33338,33348,33389,33412,33417,33425,33450,33456,33488,33514,33519,33526,33622,33656,33784,33788,33880,33939,33969,33981,34043,34118,34134,34141,34181,34200,34370,34374,34496,34580,34594,34606,34617,34653,34683,34700,34702,{f:2,c:34711},34718,34723,34734,34751,34761,34778,34840,34843,34861,34874,34885,34891,34894,34901,34906,34926,{f:3,c:34970},35021,35040,35055,{f:2,c:35086},35110,
+35125,35162,35164,35179,35184,35196,35237,35253,35260,35285,35401,35415,35431,35454,35462,35478,35510,35529,35537,35549,35564,35573,35590,35599,35601,35653,35666,35693,35704,35708,35710,35717,35743,35915,35923,35963,36026,36037,36041,36050,36076,36085,36087,36097,36099,36119,36124,36206,36241,36255,36267,36274,36309,36327,{f:2,c:36337},36340,36353,36363,36390,36401,{f:2,c:36416},36429,36431,36444,36449,36457,36465,36469,36471,36489,36496,36501,36506,36519,36521,36525,36584,36592,36615,36632,36645,
+36647,36652,36661,36666,36675,36679,36689,36693,{f:3,c:36768},36773,36868,36891,36911,36940,36955,36976,36980,36985,37003,37016,37024,37042,37053,37065,37104,37125,37157,37210,37223,37242,37258,37265,37269,37296,37307,37309,37314,37317,37376,37385,37411,37494,37518,37551,{f:2,c:37563},37569,37571,37573,37576,37652,37683,37686,37720,37759,37762,37770,37819,37836,37862,37881,37890,{f:2,c:37901},37934,37964,38280,38305,38335,38342,38345,{f:2,c:38353},38368,38372,38374,38436,38449,38456,38461,38484,38516,
+38523,38527,38529,38531,38537,38550,38574,38659,38683,{f:2,c:38689},38696,38705,38759,38774,38781,38783,38809,38815,38828,38841,38861,38880,38895,38919,38950,38958,{f:2,c:39010},39092,39109,39170,39185,39189,39221,39240,39252,39262,39393,39436,39440,39459,39489,39505,{f:2,c:39613},39681,39689,39691,{f:2,c:39693},39705,39733,39752,39765,39784,39808,39814,39824,39837,39856,39871,39880,39935,39938,39964,39989,40004,40022,40033,40040,40240,40253,40298,40315,40421,40425,40435,40570,{f:3,c:40578},40624,
+40676,40688,40690,40713,40719,40724,40731,40738,40742,{f:2,c:40746},40756,40794,40815,40862,40869,131317,151044,151538,163187,194581,194630,194713,194726,194789,195038,13790,{s:4},172722,0,0,131416,{s:4},132529,0,0,132844,{s:6},134488,{s:21},154060,{s:9},14756,14776,142914,0,0,14940,0,0,143339,0,0,162228,0,15044,15051,{s:5},14981,{s:8},15347,27384,{s:5},15665,{s:9},147531,0,15936,14497,{s:34},158878,{s:12},18207,162876,{s:4},18462,{s:71},39709,39724,20482,20958,21255,23532,63784,26142,63785,28746,
+64021,21857,27706,31328,156492,34819,38315,38741,171581,173594],"Adobe-Korea1":[{f:95,c:32},8361,8208,169,0,0,[12288,12644],{f:2,c:12289},12539,8229,[8230,8943],168,12291,{f:2,c:8211},8214,65340,65374,{f:2,c:8216},{f:2,c:8220},{f:2,c:12308},{f:10,c:12296},177,215,247,8800,{f:2,c:8804},8734,8756,176,{f:2,c:8242},8451,8491,{f:2,c:65504},65509,9794,9792,8736,8869,8978,8706,8711,8801,8786,167,8251,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8594,{f:2,c:8592},{f:2,c:8595},12307,171,
+187,8730,8765,8733,8757,{f:2,c:8747},8712,8715,{f:2,c:8838},{f:2,c:8834},8746,8745,{f:2,c:8743},65506,8658,8660,8704,8707,180,732,711,728,733,730,729,184,731,161,191,8758,8750,8721,8719,164,8457,8240,9665,9664,9655,9654,9828,{f:2,c:9824},9829,9831,9827,9673,9672,9635,{f:2,c:9680},9618,{f:2,c:9636},9640,9639,9638,9641,9832,9743,9742,9756,9758,182,{f:2,c:8224},8597,8599,8601,8598,8600,9837,{f:2,c:9833},9836,12927,12828,8470,13255,8482,13250,13272,8481,{f:59,c:65281},65510,{f:33,c:65341},65507,{f:51,
+c:12593},{f:42,c:12645},{f:10,c:8560},{f:10,c:8544},{f:17,c:913},{f:7,c:931},{f:17,c:945},{f:7,c:963},9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,9490,9489,9498,9497,9494,9493,9486,9485,{f:2,c:9502},{f:2,c:9505},{f:2,c:9510},{f:2,c:9513},{f:2,c:9517},{f:2,c:9521},{f:2,c:9525},{f:2,c:9529},{f:2,c:9533},{f:2,c:9536},{f:8,c:9539},{f:3,c:13205},8467,13208,13252,{f:4,c:13219},{f:10,c:13209},
+13258,{f:3,c:13197},13263,{f:2,c:13192},13256,{f:2,c:13223},{f:10,c:13232},{f:5,c:13184},{f:6,c:13242},{f:5,c:13200},8486,{f:2,c:13248},{f:3,c:13194},13270,13253,{f:3,c:13229},13275,{f:4,c:13225},13277,13264,13267,13251,13257,13276,13254,198,208,170,294,306,319,321,216,338,186,222,358,330,{f:28,c:12896},{f:26,c:9424},{f:15,c:9312},189,{f:2,c:8531},188,190,{f:4,c:8539},230,273,240,295,305,307,312,320,322,248,339,223,254,359,331,329,{f:28,c:12800},{f:26,c:9372},{f:15,c:9332},185,{f:2,c:178},8308,8319,
+{f:4,c:8321},{f:83,c:12353},{f:86,c:12449},{f:6,c:1040},1025,{f:32,c:1046},1105,{f:26,c:1078},{f:2,c:44032},44036,{f:4,c:44039},{f:8,c:44048},{f:5,c:44057},44064,44068,{f:2,c:44076},{f:3,c:44079},{f:2,c:44088},44092,44096,44107,44109,44116,44120,44124,{f:2,c:44144},44148,{f:2,c:44151},44154,{f:2,c:44160},{f:4,c:44163},{f:4,c:44169},44176,44180,{f:2,c:44188},{f:3,c:44191},{f:3,c:44200},44204,{f:2,c:44207},{f:2,c:44216},{f:3,c:44219},44225,44228,44232,44236,44245,44247,{f:2,c:44256},44260,{f:2,c:44263},
+44266,44268,{f:3,c:44271},44275,{f:2,c:44277},{f:2,c:44284},44288,44292,44294,{f:2,c:44300},44303,44305,44312,44316,44320,44329,{f:2,c:44332},{f:2,c:44340},44344,44348,{f:2,c:44356},44359,44361,44368,44372,44376,44385,44387,{f:2,c:44396},44400,{f:4,c:44403},{f:3,c:44411},44415,{f:2,c:44417},{f:2,c:44424},44428,44432,{f:2,c:44444},44452,44471,{f:2,c:44480},44484,44488,{f:2,c:44496},44499,44508,44512,44516,{f:2,c:44536},44540,{f:3,c:44543},{f:2,c:44552},44555,44557,44564,{f:2,c:44592},44596,{f:2,c:44599},
+44602,{f:2,c:44608},44611,{f:2,c:44613},44618,{f:3,c:44620},44624,44628,44630,{f:2,c:44636},{f:3,c:44639},44645,{f:2,c:44648},44652,44656,{f:2,c:44664},{f:3,c:44667},{f:2,c:44676},44684,{f:3,c:44732},44736,44740,{f:2,c:44748},{f:3,c:44751},{f:2,c:44760},44764,44776,44779,44781,44788,44792,44796,{f:2,c:44807},44813,44816,{f:2,c:44844},44848,44850,44852,{f:2,c:44860},44863,{f:3,c:44865},{f:2,c:44872},44880,{f:2,c:44892},{f:2,c:44900},44921,44928,44932,44936,{f:2,c:44944},44949,44956,{f:2,c:44984},44988,
+44992,{f:3,c:44999},45003,{f:2,c:45005},45012,45020,{f:2,c:45032},{f:2,c:45040},45044,45048,{f:2,c:45056},45060,45068,45072,45076,{f:2,c:45084},45096,{f:2,c:45124},45128,45130,45132,45134,{f:3,c:45139},45143,45145,45149,{f:2,c:45180},45184,45188,{f:2,c:45196},45199,45201,{f:3,c:45208},45212,{f:4,c:45215},{f:2,c:45224},{f:5,c:45227},45233,{f:3,c:45235},45240,45244,{f:2,c:45252},{f:3,c:45255},{f:2,c:45264},45268,45272,45280,45285,{f:2,c:45320},{f:2,c:45323},45328,{f:2,c:45330},{f:2,c:45336},{f:3,c:45339},
+{f:3,c:45347},45352,45356,{f:2,c:45364},{f:3,c:45367},{f:2,c:45376},45380,45384,{f:2,c:45392},{f:2,c:45396},45400,45404,45408,{f:2,c:45432},45436,45440,45442,{f:2,c:45448},45451,45453,{f:3,c:45458},45464,45468,45480,45516,45520,45524,{f:2,c:45532},45535,{f:2,c:45544},45548,45552,45561,45563,45565,{f:2,c:45572},45576,{f:2,c:45579},{f:2,c:45588},45591,45593,45600,45620,45628,45656,45660,45664,{f:2,c:45672},{f:2,c:45684},45692,{f:2,c:45700},45705,{f:2,c:45712},45716,{f:3,c:45720},{f:2,c:45728},45731,
+{f:2,c:45733},45738,45740,45744,45748,{f:2,c:45768},45772,45776,45778,{f:2,c:45784},45787,45789,45794,{f:3,c:45796},45800,{f:5,c:45803},{f:3,c:45811},{f:5,c:45815},{f:3,c:45823},45828,45832,{f:2,c:45840},{f:3,c:45843},45852,{f:3,c:45908},45912,{f:2,c:45915},{f:2,c:45918},{f:2,c:45924},45927,45929,45931,45934,{f:2,c:45936},45940,45944,{f:2,c:45952},{f:3,c:45955},45964,45968,45972,{f:2,c:45984},45992,45996,{f:2,c:46020},46024,{f:2,c:46027},46030,46032,{f:2,c:46036},46039,46041,46043,46045,46048,46052,
+46056,46076,46096,46104,46108,46112,{f:2,c:46120},46123,46132,{f:2,c:46160},46164,46168,{f:2,c:46176},46179,46181,46188,46208,46216,46237,46244,46248,46252,46261,46263,46265,46272,46276,46280,46288,46293,{f:2,c:46300},46304,{f:2,c:46307},46310,{f:2,c:46316},46319,46321,46328,{f:2,c:46356},46360,{f:2,c:46363},{f:2,c:46372},{f:4,c:46375},{f:2,c:46384},46388,46392,{f:2,c:46400},{f:3,c:46403},{f:3,c:46411},46416,46420,{f:2,c:46428},{f:3,c:46431},{f:2,c:46496},46500,46504,{f:2,c:46506},{f:2,c:46512},{f:3,
+c:46515},{f:3,c:46523},46528,46532,{f:2,c:46540},{f:3,c:46543},46552,46572,{f:2,c:46608},46612,46616,46629,46636,46644,46664,46692,46696,{f:2,c:46748},46752,46756,{f:2,c:46763},46769,46804,46832,46836,46840,{f:2,c:46848},46853,{f:2,c:46888},46892,{f:2,c:46895},{f:2,c:46904},46907,46916,46920,46924,{f:2,c:46932},46944,46948,46952,{f:2,c:46960},46963,46965,{f:2,c:46972},46976,46980,{f:2,c:46988},{f:4,c:46991},{f:4,c:46998},47004,47008,{f:2,c:47016},{f:3,c:47019},{f:2,c:47028},47032,47047,47049,{f:2,
+c:47084},47088,47092,{f:2,c:47100},{f:3,c:47103},{f:3,c:47111},47116,47120,{f:2,c:47128},47131,47133,{f:2,c:47140},47144,47148,{f:2,c:47156},{f:3,c:47159},47168,47172,47185,47187,{f:2,c:47196},47200,47204,{f:2,c:47212},47215,47217,47224,47228,47245,47272,47280,47284,47288,{f:2,c:47296},47299,47301,47308,47312,47316,47325,47327,47329,{f:2,c:47336},47340,47344,{f:2,c:47352},47355,47357,47364,47384,47392,{f:2,c:47420},47424,47428,47436,47439,47441,{f:2,c:47448},47452,47456,{f:2,c:47464},47467,47469,
+{f:2,c:47476},47480,47484,{f:2,c:47492},47495,{f:2,c:47497},{f:2,c:47501},{f:2,c:47532},47536,47540,{f:2,c:47548},47551,47553,{f:2,c:47560},47564,{f:5,c:47566},{f:2,c:47576},47579,{f:2,c:47581},47585,{f:3,c:47587},47592,47596,{f:2,c:47604},{f:4,c:47607},{f:2,c:47616},47624,47637,{f:2,c:47672},47676,47680,47682,{f:2,c:47688},47691,{f:2,c:47693},{f:3,c:47699},47704,47708,{f:2,c:47716},{f:3,c:47719},{f:2,c:47728},47732,47736,{f:3,c:47747},47751,47756,{f:2,c:47784},{f:2,c:47787},47792,47794,{f:2,c:47800},
+47803,47805,47812,47816,{f:2,c:47832},47868,47872,47876,47885,47887,47889,47896,47900,47904,47913,47915,{f:3,c:47924},47928,{f:4,c:47931},{f:2,c:47940},47943,47945,47949,{f:2,c:47951},47956,47960,47969,47971,47980,48008,48012,48016,48036,48040,48044,48052,48055,48064,48068,48072,48080,48083,{f:2,c:48120},48124,{f:2,c:48127},48130,{f:2,c:48136},{f:3,c:48139},48143,48145,{f:5,c:48148},{f:5,c:48155},{f:2,c:48164},48167,48169,48173,{f:2,c:48176},48180,48184,{f:2,c:48192},{f:3,c:48195},48201,{f:2,c:48204},
+48208,48221,{f:2,c:48260},48264,{f:2,c:48267},48270,{f:2,c:48276},48279,{f:2,c:48281},{f:2,c:48288},48292,{f:2,c:48295},{f:2,c:48304},{f:3,c:48307},{f:2,c:48316},48320,48324,48333,{f:3,c:48335},48341,48344,48348,{f:3,c:48372},48376,48380,{f:2,c:48388},48391,48393,48400,48404,48420,48428,48448,{f:2,c:48456},48460,48464,{f:2,c:48472},48484,48488,{f:2,c:48512},48516,{f:4,c:48519},{f:2,c:48528},48531,48533,{f:2,c:48537},48540,48548,48560,48568,{f:2,c:48596},48600,48604,48617,48624,48628,48632,48640,48643,
+48645,{f:2,c:48652},48656,48660,{f:2,c:48668},48671,{f:2,c:48708},48712,48716,48718,{f:2,c:48724},48727,{f:3,c:48729},{f:2,c:48736},48740,48744,48746,{f:2,c:48752},{f:3,c:48755},{f:3,c:48763},48768,48772,{f:2,c:48780},{f:3,c:48783},{f:2,c:48792},48808,{f:2,c:48848},48852,{f:2,c:48855},48864,{f:3,c:48867},48876,48897,{f:2,c:48904},{f:2,c:48920},{f:3,c:48923},{f:2,c:48960},48964,48968,{f:2,c:48976},48981,49044,49072,49093,{f:2,c:49100},49104,49108,49116,49119,49121,49212,49233,49240,49244,49248,{f:2,
+c:49256},{f:2,c:49296},49300,49304,{f:2,c:49312},49315,49317,{f:2,c:49324},{f:2,c:49327},{f:4,c:49331},{f:2,c:49340},{f:3,c:49343},49349,{f:2,c:49352},49356,49360,{f:2,c:49368},{f:3,c:49371},{f:2,c:49380},49384,49388,{f:2,c:49396},49399,49401,49408,49412,49416,49424,49429,{f:5,c:49436},{f:2,c:49443},{f:2,c:49446},{f:2,c:49452},{f:3,c:49455},49462,{f:2,c:49464},49468,49472,{f:2,c:49480},{f:3,c:49483},{f:2,c:49492},49496,49500,{f:2,c:49508},{f:3,c:49511},49520,49524,49528,49541,{f:3,c:49548},49552,
+49556,49558,{f:2,c:49564},49567,49569,49573,{f:2,c:49576},49580,49584,49597,49604,49608,49612,49620,{f:2,c:49623},49632,49636,49640,{f:2,c:49648},49651,{f:2,c:49660},49664,49668,{f:2,c:49676},49679,49681,{f:2,c:49688},49692,{f:2,c:49695},{f:2,c:49704},49707,49709,49711,{f:2,c:49713},49716,49736,{f:2,c:49744},49748,49752,49760,49765,{f:2,c:49772},49776,49780,{f:2,c:49788},49791,49793,{f:2,c:49800},49808,49816,49819,49821,{f:2,c:49828},49832,{f:2,c:49836},{f:2,c:49844},49847,49849,{f:2,c:49884},49888,
+{f:2,c:49891},{f:3,c:49899},49903,49905,49910,{f:2,c:49912},{f:2,c:49915},49920,{f:2,c:49928},{f:2,c:49932},{f:3,c:49939},49944,49948,{f:2,c:49956},{f:2,c:49960},49989,{f:2,c:50024},50028,50032,50034,{f:2,c:50040},{f:2,c:50044},50052,50056,50060,50112,{f:2,c:50136},50140,{f:2,c:50143},50146,{f:2,c:50152},50157,{f:2,c:50164},50168,50184,50192,50212,50220,50224,50228,{f:2,c:50236},50248,{f:2,c:50276},50280,50284,{f:2,c:50292},50297,50304,50324,50332,50360,50364,50409,{f:2,c:50416},50420,50424,50426,
+{f:3,c:50431},50444,50448,50452,50460,{f:2,c:50472},50476,50480,{f:2,c:50488},50491,50493,{f:2,c:50500},{f:3,c:50504},{f:3,c:50508},{f:3,c:50515},{f:3,c:50519},{f:2,c:50525},{f:2,c:50528},50532,50536,{f:2,c:50544},{f:3,c:50547},{f:2,c:50556},50560,50564,50567,{f:2,c:50572},50575,50577,50581,{f:2,c:50583},50588,50592,50601,{f:2,c:50612},{f:2,c:50616},{f:4,c:50619},{f:7,c:50628},50636,50638,{f:2,c:50640},50644,50648,{f:2,c:50656},50659,50661,{f:3,c:50668},50672,50676,{f:2,c:50678},{f:6,c:50684},{f:4,
+c:50693},50700,50704,{f:2,c:50712},{f:2,c:50715},{f:2,c:50724},50728,{f:3,c:50732},50736,{f:3,c:50739},50743,50745,50747,{f:2,c:50752},50756,50760,{f:2,c:50768},{f:3,c:50771},{f:2,c:50780},50784,50796,50799,50801,{f:2,c:50808},50812,50816,{f:2,c:50824},50827,50829,{f:2,c:50836},50840,50844,{f:2,c:50852},50855,50857,{f:2,c:50864},50868,{f:3,c:50872},{f:2,c:50880},50883,50885,{f:2,c:50892},50896,50900,{f:2,c:50908},{f:2,c:50912},{f:2,c:50920},50924,50928,{f:2,c:50936},50941,{f:2,c:50948},50952,50956,
+{f:2,c:50964},50967,50969,{f:2,c:50976},50980,50984,{f:2,c:50992},50995,50997,50999,{f:2,c:51004},51008,51012,51018,{f:2,c:51020},51023,{f:8,c:51025},51036,51040,51048,51051,{f:2,c:51060},51064,{f:3,c:51068},{f:3,c:51075},{f:4,c:51079},51086,{f:2,c:51088},51092,{f:3,c:51094},51098,{f:2,c:51104},{f:4,c:51107},{f:2,c:51116},51120,51124,{f:2,c:51132},{f:3,c:51135},{f:2,c:51144},51148,51150,51152,51160,51165,51172,51176,51180,{f:2,c:51200},51204,51208,51210,{f:2,c:51216},51219,{f:2,c:51221},{f:2,c:51228},
+51232,51236,{f:2,c:51244},51247,51249,51256,51260,51264,{f:2,c:51272},{f:2,c:51276},51284,{f:2,c:51312},51316,51320,51322,{f:2,c:51328},51331,{f:3,c:51333},{f:3,c:51339},51348,51357,51359,51361,51368,{f:2,c:51388},51396,51400,51404,{f:2,c:51412},51415,51417,{f:2,c:51424},51428,51445,{f:2,c:51452},51456,{f:3,c:51460},{f:2,c:51468},51471,51473,51480,51500,51508,{f:2,c:51536},51540,51544,{f:2,c:51552},51555,51564,51568,51572,51580,{f:2,c:51592},51596,51600,{f:2,c:51608},51611,51613,{f:2,c:51648},51652,
+{f:2,c:51655},51658,{f:2,c:51664},51667,{f:2,c:51669},{f:2,c:51673},{f:2,c:51676},51680,51682,51684,51687,{f:2,c:51692},{f:3,c:51695},{f:2,c:51704},51708,51712,{f:2,c:51720},{f:3,c:51723},51732,51736,51753,{f:2,c:51788},51792,51796,{f:2,c:51804},{f:3,c:51807},51816,51837,51844,51864,{f:2,c:51900},51904,51908,{f:2,c:51916},51919,51921,51923,{f:2,c:51928},51936,51948,51956,51976,51984,51988,51992,{f:2,c:52E3},52033,{f:2,c:52040},52044,52048,{f:2,c:52056},52061,52068,{f:2,c:52088},52124,52152,52180,
+52196,52199,52201,{f:2,c:52236},52240,52244,{f:2,c:52252},{f:2,c:52257},{f:3,c:52263},52268,52270,52272,{f:2,c:52280},{f:4,c:52283},{f:2,c:52292},52296,52300,{f:2,c:52308},{f:3,c:52311},52320,52324,52326,52328,52336,52341,{f:2,c:52376},52380,52384,{f:2,c:52392},{f:3,c:52395},{f:2,c:52404},52408,52412,{f:2,c:52420},52423,52425,52432,52436,52452,52460,52464,52481,{f:2,c:52488},52492,52496,{f:2,c:52504},52507,52509,52516,52520,52524,52537,52572,52576,52580,{f:2,c:52588},52591,52593,52600,52616,{f:2,
+c:52628},52632,52636,{f:2,c:52644},52647,52649,52656,52676,52684,52688,52712,52716,52720,{f:2,c:52728},52731,52733,52740,52744,52748,52756,52761,{f:2,c:52768},52772,52776,{f:2,c:52784},52787,52789,{f:2,c:52824},52828,{f:3,c:52831},{f:2,c:52840},52843,52845,{f:2,c:52852},52856,52860,{f:2,c:52868},52871,52873,{f:2,c:52880},52884,52888,{f:2,c:52896},{f:3,c:52899},{f:2,c:52908},52929,{f:2,c:52964},52968,{f:2,c:52971},{f:2,c:52980},{f:3,c:52983},{f:2,c:52992},52996,53E3,{f:2,c:53008},53011,53013,53020,
+53024,53028,{f:2,c:53036},{f:3,c:53039},53048,{f:2,c:53076},53080,53084,{f:2,c:53092},53095,53097,{f:2,c:53104},53108,53112,53120,53125,53132,53153,53160,53168,53188,{f:2,c:53216},53220,53224,{f:2,c:53232},53235,53237,53244,53248,53252,53265,53272,53293,{f:2,c:53300},53304,53308,{f:2,c:53316},53319,53321,53328,53332,53336,53344,{f:2,c:53356},53360,53364,{f:2,c:53372},53377,{f:2,c:53412},53416,53420,{f:2,c:53428},53431,53433,{f:2,c:53440},53444,{f:2,c:53448},{f:2,c:53456},{f:3,c:53459},{f:2,c:53468},
+53472,53476,{f:2,c:53484},{f:3,c:53487},53496,53517,{f:2,c:53552},53556,53560,53562,{f:2,c:53568},{f:3,c:53571},{f:2,c:53580},53584,53588,{f:2,c:53596},53599,53601,53608,53612,53628,53636,53640,{f:2,c:53664},53668,53672,{f:2,c:53680},53683,53685,53690,53692,53696,53720,53748,53752,53767,53769,53776,{f:2,c:53804},53808,53812,{f:2,c:53820},53823,53825,53832,53852,53860,{f:2,c:53888},53892,53896,{f:2,c:53904},53909,53916,53920,53924,53932,53937,{f:2,c:53944},53948,{f:2,c:53951},53954,{f:2,c:53960},53963,
+53972,53976,53980,{f:2,c:53988},{f:2,c:54E3},54004,54008,{f:2,c:54016},54019,54021,{f:3,c:54028},54032,54036,54038,{f:2,c:54044},{f:3,c:54047},54053,{f:2,c:54056},54060,54064,{f:2,c:54072},{f:3,c:54075},{f:2,c:54084},{f:2,c:54140},54144,54148,{f:2,c:54156},{f:3,c:54159},{f:2,c:54168},54172,54176,{f:2,c:54184},54187,54189,54196,54200,54204,{f:2,c:54212},{f:2,c:54216},54224,54232,54241,54243,{f:2,c:54252},54256,54260,{f:2,c:54268},54271,54273,54280,54301,54336,54340,54364,54368,54372,54381,54383,{f:2,
+c:54392},54396,{f:2,c:54399},54402,{f:2,c:54408},54411,54413,54420,54441,54476,54480,54484,54492,54495,54504,54508,54512,54520,54523,54525,54532,54536,54540,{f:2,c:54548},54551,{f:2,c:54588},54592,54596,{f:2,c:54604},54607,54609,{f:2,c:54616},54620,54624,54629,{f:2,c:54632},54635,54637,{f:2,c:54644},54648,54652,{f:2,c:54660},{f:3,c:54663},54672,54693,{f:2,c:54728},54732,54736,54738,{f:2,c:54744},54747,54749,{f:2,c:54756},54760,54764,{f:2,c:54772},54775,54777,{f:2,c:54784},54788,54792,{f:2,c:54800},
+{f:3,c:54803},54812,54816,54820,54829,{f:2,c:54840},54844,54848,54853,{f:2,c:54856},54859,54861,54865,{f:2,c:54868},54872,54876,54887,54889,{f:2,c:54896},54900,54915,54917,{f:2,c:54924},54928,54932,54941,54943,54945,54952,54956,54960,54969,54971,{f:2,c:54980},54984,54988,54993,54996,54999,55001,55008,55012,55016,55024,55029,{f:2,c:55036},55040,55044,55057,{f:2,c:55064},55068,55072,{f:2,c:55080},55083,55085,{f:2,c:55092},55096,55100,55108,55111,55113,{f:2,c:55120},55124,{f:4,c:55126},{f:2,c:55136},
+55139,55141,55145,55148,55152,55156,{f:2,c:55164},55169,{f:2,c:55176},55180,55184,{f:2,c:55192},55195,55197,20285,20339,20551,20729,21152,21487,21621,21733,22025,23233,23478,26247,{f:2,c:26550},26607,27468,29634,30146,31292,33499,33540,34903,34952,35382,[36040,63747],36303,36603,36838,39381,21051,21364,21508,24682,24932,27580,29647,33050,35258,[12179,35282],38307,20355,21002,22718,22904,23014,[12082,24178],24185,25031,25536,26438,26604,26751,28567,30286,30475,30965,31240,31487,31777,32925,[12169,
+33390],33393,35563,38291,20075,21917,26359,28212,30883,31469,33883,35088,34638,38824,21208,22350,22570,23884,24863,25022,25121,25954,26577,27204,28187,[12130,29976],30131,30435,30640,32058,37039,{f:2,c:37969},40853,21283,23724,30002,32987,37440,38296,21083,22536,23004,23713,23831,24247,24378,24394,24951,27743,30074,30086,31968,32115,32177,32652,33108,33313,34193,35137,35611,37628,[38477,64009],40007,20171,20215,20491,20977,22607,24887,24894,24936,25913,27114,28433,30117,30342,30422,31623,33445,33995,
+37799,38283,21888,23458,22353,31923,32697,37301,20520,21435,23621,24040,25298,25454,25818,25831,28192,28844,31067,36317,36382,36989,37445,37624,20094,20214,20581,[12081,24062],24314,24838,26967,33137,34388,36423,37749,39467,20062,20625,26480,26688,20745,21133,21138,27298,30652,37392,40660,21163,24623,36850,20552,25001,25581,25802,26684,27268,28608,33160,35233,38548,22533,29309,[12125,29356],29956,32121,32365,32937,[12178,35211,64010],35700,36963,40273,25225,27770,28500,32080,32570,35363,20860,24906,
+31645,35609,37463,37772,20140,20435,20510,20670,20742,21185,21197,21375,22384,22659,24218,24465,24950,25004,25806,25964,26223,26299,[26356,63745],26775,28039,28805,28913,29855,29861,29898,30169,30828,30956,31455,31478,32069,32147,32789,32831,33051,33686,35686,36629,36885,37857,38915,38968,39514,39912,20418,21843,22586,[22865,63753],23395,23622,24760,25106,26690,26800,26856,28330,30028,30328,30926,31293,31995,32363,32380,35336,35489,35903,38542,40388,21476,21481,21578,21617,22266,22993,23396,23611,
+24235,25335,25911,25925,25970,26272,26543,27073,27837,30204,30352,30590,31295,32660,32771,32929,33167,33510,33533,33776,34241,34865,34996,35493,36764,37678,38599,39015,[12220,39640],[12238,40723],21741,26011,26354,26767,31296,[12181,35895],40288,22256,22372,23825,26118,26801,26829,28414,29736,34974,39908,27752,[12219,39592],20379,20844,20849,21151,23380,[12079,24037],24656,24685,25329,25511,25915,29657,31354,34467,36002,38799,[20018,63749],23521,[12093,25096],26524,[12128,29916],31185,33747,35463,
+35506,36328,36942,37707,38982,[24275,64011],27112,34303,37101,20896,23448,23532,24931,26874,27454,28748,29743,29912,31649,32592,33733,35264,36011,38364,39208,21038,24669,25324,36866,20362,20809,21281,22745,24291,26336,27960,28826,29378,29654,31568,33009,37979,21350,25499,32619,20054,20608,22602,22750,24618,24871,25296,27088,39745,23439,32024,32945,36703,20132,20689,21676,21932,23308,23968,24039,25898,25934,26657,27211,29409,30350,30703,32094,32761,33184,34126,34527,36611,36686,37066,39171,39509,39851,
+19992,20037,20061,20167,20465,20855,21246,21312,[12061,21475],[21477,63750],21646,22036,22389,22434,23495,23943,24272,25084,25304,25937,26552,26601,27083,27472,27590,27628,27714,28317,28792,29399,29590,29699,30655,30697,31350,32127,32777,[12165,33276],33285,33290,33503,34914,35635,36092,36544,36881,37041,37476,37558,39378,39493,40169,40407,[12244,40860,63751,63752],22283,23616,33738,38816,38827,40628,21531,31384,32676,35033,36557,37089,22528,23624,25496,31391,23470,[12088,24339],31353,31406,33422,
+36524,20518,21048,21240,21367,22280,25331,25458,27402,28099,30519,21413,29527,34152,36470,38357,26426,27331,28528,35437,36556,39243,26231,27512,36020,[12225,39740],21483,22317,22862,25542,27131,29674,30789,31418,31429,31998,33909,35215,36211,36917,38312,21243,22343,30023,31584,33740,37406,27224,20811,21067,21127,25119,26840,26997,38553,20677,21156,21220,25027,[12100,26020],26681,27135,29822,31563,33465,33771,35250,35641,36817,39241,20170,22935,25810,26129,27278,29748,31105,31165,33449,{f:2,c:34942},
+35167,37670,20235,21450,24613,25201,27762,32026,32102,20120,20834,30684,32943,20225,20238,20854,20864,21980,22120,22331,22522,22524,22804,22855,22931,23492,23696,23822,[12080,24049],24190,24524,25216,26071,26083,{f:2,c:26398},26462,26827,26820,27231,27450,27683,27773,27778,28103,29592,29734,29738,29826,29859,30072,30079,30849,30959,31041,{f:2,c:31047},31098,31637,32E3,32186,32648,32774,32813,32908,35352,35663,[35912,63744],36215,37665,37668,39138,39249,{f:2,c:39438},39525,40594,32202,20342,21513,
+25326,26708,[12198,37329,63754],21931,20794,23068,25062,[25295,63835],25343,37027,[35582,63837],26262,29014,38627,25423,25466,21335,26511,26976,28275,30007,32013,34930,22218,23064,20035,20839,[22856,63756],26608,32784,[12069,22899,63873],[24180,63886],[25754,63889],[31178,63893],[24565,63907],24684,25288,[25467,63908],[23527,63839,63914],23511,21162,22900,24361,[24594,63840],29785,39377,28611,33215,36786,24817,33126,[23615,63933],23273,35365,[26491,63944],[32016,63951],33021,23612,[27877,63971],[21311,
+63979],[28346,63980],22810,[33590,63998],[20025,63838],20150,20294,21934,22296,22727,24406,26039,26086,27264,27573,28237,30701,31471,31774,32222,34507,34962,37170,37723,25787,28606,29562,30136,36948,21846,22349,25018,25812,26311,28129,28251,28525,28601,30192,32835,33213,34113,35203,35527,35674,37663,27795,30035,31572,36367,36957,21776,22530,22616,24162,25095,25758,26848,30070,[31958,64003],34739,40680,20195,22408,22382,[12068,22823],23565,23729,24118,24453,25140,25825,29619,33274,34955,36024,38538,
+40667,[23429,64004],24503,24755,20498,[12049,20992],21040,22294,22581,22615,23566,23648,23798,23947,[24230,64001],24466,24764,25361,25481,25623,26691,26873,27330,28120,28193,28372,28644,29182,30428,30585,31153,31291,33796,35241,36077,36339,36424,36867,36884,36947,37117,37709,38518,38876,27602,28678,29272,29346,29544,30563,31167,31716,32411,[35712,63834],22697,24775,25958,26109,26302,27788,28958,29129,35930,38931,20077,31361,20189,20908,20941,21205,21516,24999,26481,26704,26847,[27934,64005],28540,
+30140,30643,31461,33012,33891,37509,20828,[12099,26007],26460,26515,30168,31431,33651,[12182,35910],36887,38957,23663,33216,33434,36929,36975,37389,24471,23965,27225,29128,30331,31561,34276,35588,37159,39472,[21895,63755],[25078,63757],[30313,63758],[32645,63759],[34367,63760],[34746,63761],[35064,63762],[37007,63763],[27931,63765],[28889,63766],[29662,63767],32097,[33853,63768],[37226,63769],[39409,63770],[20098,63771],[21365,63772],[27396,63773],27410,28734,[29211,63774],[34349,63775],[40478,63776],
+21068,36771,[23888,63777],25829,25900,27414,[28651,63778],31811,32412,[34253,63779],[35172,63780],35261,[25289,63781],[33240,63782],[34847,63783],[24266,63784],[26391,63785],[28010,63786],[29436,63787],29701,29807,34690,[37086,63788],[20358,63789],23821,24480,33802,[20919,63790],[25504,63861],[30053,63862],[20142,63863],20486,[20841,63864],[20937,63865],[26753,63866],27153,31918,31921,[31975,63867],[33391,63868],[35538,63869],36635,[37327,63870],20406,20791,[21237,63871],[21570,63872],[24300,63874],
+24942,25150,[26053,63875],27354,[28670,63876],[31018,63877],34268,34851,[38317,63878],39522,[39530,63879],[40599,63880],[40654,63881],[12050,21147,63882],[26310,63883],[27511,63884],28701,31019,[36706,63885],38722,[24976,63887],[25088,63888],25891,[28451,63890],[29001,63891],[29833,63892],[32244,63894],[32879,63895],[34030,63897],[36646,63896],[36899,63898],[37706,63899],20925,[21015,63900],[21155,63901],27916,[28872,63903],[35010,63904],[24265,63906],25986,[27566,63909],28610,[31806,63910],[29557,
+63911],[20196,63912],20278,[22265,63913],23738,[23994,63915],[24604,63916],[29618,63917],31533,[32666,63919],32718,[32838,63920],36894,[37428,63921],[38646,63922],[38728,63923],[38936,63924],40801,[20363,63925],28583,[31150,63926],[37300,63927],[38583,63928],[21214,63791],25736,[25796,63792],[27347,63793],28510,28696,[29200,63794],[30439,63795],[12156,32769,63796],[34310,63797],[34396,63798],[36335,63799],36613,[38706,63800],[39791,63801],[40442,63802],[12228,40565],[30860,63803],[31103,63804],[32160,
+63805],[33737,63806],[37636,63807],[12229,40575,63808],40595,[35542,63809],[22751,63810],[24324,63811],26407,28711,29903,[31840,63812],[32894,63813],20769,28712,[29282,63814],[30922,63815],[36034,63816],36058,36084,[38647,63817],[20102,63930],[20698,63931],[23534,63932],24278,[26009,63934],[29134,63936],[30274,63937],30637,32842,[34044,63938],[36988,63939],39719,[12243,40845,63940],[22744,63818],23105,[23650,63819],[27155,63820],[28122,63821],[28431,63822],30267,[32047,63823],[32311,63824],34078,
+35128,37860,[38475,63825],[21129,63943],26066,[26611,63945],27060,[27969,63946],[28316,63947],28687,[29705,63948],29792,[30041,63949],30244,[30827,63950],35628,[39006,63952],[20845,63953],[25134,63954],[38520,63955],20374,[20523,63956],[23833,63957],[28138,63958],32184,[36650,63959],[24459,63960],[24900,63961],[26647,63962],[38534,63964],[21202,63826],[32907,63827],[20956,63828],[20940,63829],26974,[31260,63830],[32190,63831],[33777,63832],[38517,63833],20442,[21033,63965],21400,[21519,63966],21774,
+[23653,63967],24743,[26446,63969],[26792,63970],28012,29313,29432,[29702,63972],29827,[30178,63973],31852,[32633,63974],32696,33673,[35023,63975],[35041,63976],[12197,37324,63977],37328,[38626,63978],39881,[21533,63981],28542,[29136,63982],[29848,63983],[34298,63984],36522,[38563,63985],[40023,63986],[40607,63987],[26519,63988],[28107,63989],29747,[33256,63990],38678,30764,[12148,31435,63991],[31520,63992],[31890,63993],25705,29802,30194,30908,30952,[12218,39340],39764,[12231,40635],23518,24149,28448,
+33180,33707,37E3,19975,21325,23081,24018,24398,24930,25405,26217,26364,28415,28459,28771,30622,33836,34067,34875,36627,39237,39995,21788,25273,26411,27819,33545,35178,38778,20129,22916,{f:2,c:24536},26395,32178,32596,33426,33579,33725,36638,37017,22475,22969,23186,23504,26151,26522,26757,27599,29028,32629,36023,36067,36993,39749,33032,35978,38476,39488,[12230,40613],23391,27667,29467,30450,30431,33804,20906,35219,20813,20885,21193,26825,27796,30468,30496,32191,32236,[12207,38754],40629,28357,34065,
+20901,21517,21629,26126,26269,26919,28319,[12139,30399],30609,33559,33986,34719,37225,37528,40180,34946,20398,20882,21215,22982,24125,24917,{f:2,c:25720},26286,26576,27169,27597,[12113,27611],29279,29281,29761,30520,[12141,30683],32791,33468,33541,35584,35624,35980,[12106,26408],27792,29287,[12140,30446],30566,31302,40361,27519,27794,22818,26406,33945,21359,22675,22937,24287,25551,26164,26483,28218,29483,31447,33495,37672,21209,24043,25006,25035,25098,25287,25771,[12102,26080],26969,27494,[12111,
+27595],28961,29687,30045,32326,33310,33538,34154,35491,36031,38695,40289,22696,40664,20497,21006,21563,21839,[12098,25991],27766,{f:2,c:32010},32862,34442,[12200,38272],38639,21247,27797,29289,21619,23194,23614,23883,24396,24494,26410,26806,26979,28220,28228,30473,[12150,31859],32654,34183,35598,36855,38753,40692,23735,24758,24845,25003,25935,{f:2,c:26107},27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,
+34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,30436,30460,30928,[30971,63844],31020,32070,33324,34784,36820,38930,39151,21187,25300,25765,28196,28497,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,[12101,26041],26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,{f:2,
+c:35060},35097,36064,36649,37197,38506,20271,20336,24091,26575,26658,[12137,30333],30334,39748,24161,27146,29033,29140,30058,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,29863,30294,30887,34327,38370,38713,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,
+27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,[12056,21340],23443,[24489,63846],26381,31119,33145,33583,34068,35079,35206,36665,[36667,64007],39333,39954,26412,20086,20472,22857,23553,{f:2,c:23791},25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,[19981,63847],20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,23386,23413,23500,24220,25206,25975,26023,28014,28325,[12119,29238],31526,31807,[12152,32566],{f:2,c:33104},33178,33344,33433,33705,
+35331,36E3,36070,36091,36212,36282,37096,37340,[12201,38428],38468,39385,40167,[21271,63843],20998,21545,22132,22707,22868,22894,24575,24996,25198,26128,27774,28954,30406,31881,31966,32027,33452,36033,38640,20315,24343,24447,25282,23849,26379,26842,30844,32323,40300,19989,20633,[12052,21269],21290,21329,22915,23138,24199,24754,24970,25161,25209,26E3,26503,27047,[12112,27604],{f:3,c:27606},27832,29749,30202,30738,30865,31189,31192,31875,32203,32737,32933,33086,33218,33778,34586,35048,35513,35692,36027,
+37145,[12206,38750],[12214,39131],[12240,40763],22188,23338,24428,25996,27315,27567,27996,28657,28693,29277,29613,36007,36051,38971,24977,27703,32856,39425,20045,20107,20123,20181,20282,20284,20351,20447,20735,21490,21496,21766,21987,22235,[12064,22763],22882,23057,23531,23546,23556,24051,24107,24473,24605,25448,26012,26031,26614,26619,26797,27515,27801,27863,28195,28681,29509,30722,31038,31040,31072,31169,31721,32023,32114,32902,33293,33678,34001,34503,35039,35408,35422,35613,36060,36198,36781,37034,
+39164,39391,40605,21066,26388,20632,21034,[12077,23665],25955,27733,29642,29987,30109,31639,33948,37240,38704,20087,25746,[27578,63856],29022,34217,19977,26441,26862,28183,33439,34072,34923,25591,28545,37394,39087,19978,20663,20687,20767,21830,21930,22039,23360,23577,23776,24120,24202,24224,24258,24819,26705,27233,28248,29245,29248,[29376,63994],30456,31077,31665,32724,35059,35316,35443,35937,36062,38684,[22622,63852],29885,36093,21959,31329,[32034,63850],[12170,33394],29298,[12131,29983],29989,31513,
+22661,22779,23996,24207,24246,24464,24661,25234,25471,25933,26257,26329,26360,26646,26866,29312,29790,31598,32110,32214,32626,32997,33298,34223,35199,35475,36893,37604,[12233,40653],[12239,40736],[12067,22805],22893,24109,24796,26132,26227,26512,27728,28101,28511,[12143,30707],30889,33990,37323,37675,20185,20682,20808,21892,23307,23459,25159,25982,26059,28210,29053,29697,29764,29831,29887,30316,31146,32218,32341,32680,33146,33203,33337,34330,34796,35445,36323,36984,37521,37925,39245,39854,21352,23633,
+26964,27844,27945,28203,[12166,33292],34203,35131,35373,[35498,63855,63905],38634,40807,21089,26297,27570,32406,34814,36109,38275,38493,25885,28041,29166,22478,22995,23468,24615,24826,25104,26143,26207,29481,29689,30427,[30465,63853],31596,32854,32882,33125,35488,37266,19990,21218,27506,27927,31237,31545,32048,36016,21484,22063,22609,23477,[12073,23567],23569,24034,25152,25475,25620,26157,26803,27836,28040,28335,28703,28836,29138,29990,30095,30094,30233,31505,31712,31787,32032,32057,34092,34157,34311,
+35380,36877,36961,37045,37559,38902,39479,20439,23660,26463,28049,31903,32396,35606,36118,36895,23403,24061,25613,33984,36956,39137,[29575,63841,63963],23435,24730,26494,28126,35359,35494,36865,38924,21047,28753,30862,37782,34928,37335,20462,21463,22013,22234,22402,22781,23234,23432,23723,23744,24101,24833,25101,[12095,25163],25480,25628,25910,[25976,63849],27193,27530,[12116,27700],27929,28465,29159,29417,29560,29703,29874,30246,30561,31168,31319,31466,31929,32143,32172,32353,32670,33065,33585,33936,
+34010,34282,34966,35504,35728,36664,36930,36995,37228,37526,37561,38539,{f:2,c:38567},38614,38656,38920,[12216,39318],39635,39706,21460,22654,22809,23408,23487,28113,28506,29087,29729,29881,32901,33789,24033,24455,24490,24642,26092,26642,26991,27219,27529,27957,28147,29667,30462,30636,31565,32020,33059,33308,33600,34036,34147,35426,35524,37255,37662,38918,39348,25100,34899,36848,37477,23815,23847,23913,29791,33181,34664,28629,[25342,63859],32722,35126,35186,19998,20056,20711,21213,21319,25215,26119,
+32361,34821,38494,20365,21273,22070,22987,23204,[12075,23608],23630,23629,24066,24337,24643,26045,26159,26178,26558,26612,29468,[12142,30690],[12144,31034],32709,33940,33997,35222,35430,35433,35553,[12183,35925],35962,22516,23508,24335,24687,25325,26893,27542,28252,29060,31698,34645,[35672,63996],36606,[12215,39135],39166,20280,20353,20449,21627,23072,23480,24892,26032,26216,29180,30003,31070,32051,33102,[12162,33251],33688,34218,34254,34563,35338,[12189,36523],[12191,36763],36805,22833,23460,23526,
+24713,23529,23563,[12092,24515],27777,28145,28683,29978,33455,35574,[20160,63997],[12055,21313],38617,[12114,27663],20126,20420,20818,21854,23077,23784,25105,[12123,29273],33469,33706,34558,34905,35357,38463,38597,39187,40201,40285,22538,23731,23997,24132,[24801,63929],24853,25569,[27138,63764,63836,63935],28197,37122,37716,38990,39952,40823,23433,23736,25353,26191,26696,30524,38593,38797,38996,39839,26017,35585,36555,38332,21813,23721,24022,24245,26263,30284,33780,38343,22739,25276,29390,40232,20208,
+22830,24591,26171,27523,31207,40230,21395,21696,22467,23830,24859,26326,28079,30861,33406,38552,38724,21380,25212,25494,28082,32266,33099,38989,27387,32588,40367,40474,20063,20539,20918,22812,24825,25590,26928,29242,32822,37326,24369,32004,[33509,63860],33903,33979,34277,36493,20335,22756,23363,24665,25562,25880,25965,26264,26954,27171,27915,28673,29036,30162,30221,31155,31344,[12154,32650],35140,35731,37312,38525,39178,22276,24481,26044,28417,30208,31142,35486,39341,[12226,39770],40812,20740,25014,
+25233,27277,33222,20547,22576,24422,28937,[12180,35328],35578,23420,34326,20474,20796,22196,22852,25513,28153,23978,26989,20870,20104,20313,22914,27487,27741,29877,30998,33287,33349,33593,36671,36701,39192,20134,22495,24441,[26131,63968],30123,32377,35695,36870,39515,22181,22567,23032,23071,23476,24310,25424,25403,26941,27783,27839,28046,28051,28149,28436,28895,28982,29017,29123,29141,30799,30831,31605,32227,32303,34893,36575,37467,40182,24709,28037,29105,38321,21421,26579,28814,28976,29744,33398,
+33490,38331,39653,40573,26308,29121,[33865,63854],22603,23992,24433,26144,26254,27001,27054,27704,27891,28214,28481,28634,28699,28719,29008,29151,29552,29787,29908,30408,31310,32403,33521,35424,36814,37704,38681,20034,20522,21E3,21473,26355,27757,28618,29450,30591,31330,33454,34269,34306,35028,35427,35709,35947,37555,38675,38928,20116,20237,20425,20658,21320,21566,21555,21978,22626,22714,22887,23067,23524,24735,25034,25942,26111,26212,26791,27738,28595,28879,29100,29522,31613,34568,35492,39986,40711,
+23627,27779,29508,[12127,29577],37434,28331,29797,30239,31337,32277,34314,20800,22725,25793,29934,29973,30320,32705,37013,38605,39252,28198,[12129,29926],{f:2,c:31401},33253,34521,34680,35355,23113,23436,23451,26785,26880,28003,29609,29715,29740,30871,32233,32747,33048,33109,33694,35916,[38446,63942],38929,[12104,26352],24448,26106,26505,27754,29579,20525,23043,27498,30702,22806,23916,24013,29477,30031,20709,20985,22575,22829,22934,23002,23525,23970,25303,25622,25747,25854,26332,27208,29183,29796,
+31368,31407,32327,32350,32768,33136,34799,35201,35616,36953,36992,39250,24958,27442,28020,32287,35109,36785,20433,20653,20887,21191,22471,22665,23481,24248,24898,27029,28044,28263,28342,29076,29794,[12132,29992],29996,32883,33592,33993,36362,37780,37854,20110,20305,20598,20778,[12060,21448],21451,21491,23431,23507,23588,24858,24962,26100,[12124,29275],29591,29760,30402,31056,31121,31161,32006,[12155,32701],33419,34261,34398,36802,36935,37109,37354,38533,[12204,38632],38633,21206,24423,26093,26161,
+26671,29020,31286,37057,38922,20113,27218,27550,28560,29065,32792,33464,34131,36939,38549,38642,38907,34074,39729,20112,29066,38596,20803,21407,21729,22291,22290,22435,23195,23236,23491,24616,24895,25588,27781,27961,28274,28304,29232,29503,29783,33489,34945,36677,36960,38498,39E3,40219,[12105,26376],36234,37470,20301,20553,20702,21361,22285,22996,23041,23561,24944,26256,28205,29234,29771,32239,32963,33806,33894,34111,34655,34907,35096,35586,36949,[12209,38859],39759,20083,20369,20754,20842,21807,
+21929,23418,23461,{f:2,c:24188},24254,24736,24799,{f:2,c:24840},25540,25912,26377,26580,26586,{f:2,c:26977},27833,27943,28216,28641,{f:2,c:29494},29788,30001,30290,32173,33278,33848,35029,35480,35547,35565,36400,36418,36938,36926,36986,[12195,37193],37321,37742,22537,27603,[12161,32905],32946,20801,22891,23609,28516,29607,32996,36103,37399,38287,[12160,32895],25102,28700,32104,34701,22432,24681,24903,27575,35518,37504,38577,[12036,20057],21535,28139,34093,38512,[12211,38899],39150,25558,27875,[12194,
+37009],20957,25033,33210,40441,20381,20506,20736,23452,24847,25087,25836,26885,27589,30097,30691,32681,33380,34191,34811,[12176,34915],35516,35696,37291,[12038,20108],20197,20234,22839,23016,24050,24347,24411,24609,29246,29669,[30064,63842],30157,31227,[12157,32780],[12159,32819],32900,33505,33617,36029,36019,36999,39156,39180,28727,30410,32714,32716,32764,35610,[12040,20154],20161,20995,21360,[21693,63902],22240,23035,23493,24341,24525,28270,32106,33589,34451,35469,38765,38775,[12032,19968],20314,
+20350,22777,[12103,26085],28322,36920,37808,39353,20219,22764,22922,23001,24641,31252,33615,36035,[12042,20837],21316,20173,21097,23381,33471,20180,[21050,63999],21672,22985,23039,[12070,23376],23383,23388,24675,24904,28363,[28825,63995],29038,29574,29943,30133,30913,32043,32773,[12163,33258],33576,34071,34249,35566,36039,38604,20316,21242,22204,26027,26152,28796,28856,29237,32189,33421,37196,38592,40306,23409,26855,27544,28538,30430,23697,26283,28507,31668,31786,34870,38620,19976,20183,21280,22580,
+22715,22767,22892,23559,24115,24196,24373,25484,26290,26454,27167,27299,27404,28479,29254,29520,29835,31456,31911,33144,33247,33255,33674,33900,34083,34196,34255,35037,36115,37292,[12199,38263],38556,20877,21705,22312,23472,25165,26448,26685,26771,28221,28371,28797,32289,35009,36001,36617,40779,40782,29229,31631,35533,37658,20295,20302,20786,21632,22992,24213,25269,26485,26990,27159,27822,28186,29401,29482,30141,31672,32053,33511,33785,33879,34295,35419,36015,36487,36889,37048,38606,40799,21219,21514,
+23265,23490,25688,25973,28404,29380,30340,31309,31515,31821,32318,32735,33659,35627,36042,[12186,36196],36321,36447,36842,36857,36969,37841,20291,20346,20659,20840,20856,21069,21098,22625,22652,22880,23560,23637,24283,24731,25136,26643,27583,27656,28593,29006,29728,[12133,3E4],30008,30033,30322,31564,31627,31661,31686,32399,35438,36670,36681,37439,37523,37666,37931,38651,39002,39019,39198,[20999,64E3],25130,25240,27993,30308,31434,31680,32118,21344,23742,24215,28472,28857,31896,38673,39822,40670,
+25509,25722,34678,19969,20117,20141,20572,20597,21576,22979,23450,24128,24237,24311,24449,24773,25402,25919,25972,26060,26230,26232,26622,26984,27273,27491,27712,28096,28136,28191,28254,28702,28833,29582,29693,30010,30555,30855,31118,31243,31357,31934,32142,33351,35330,35562,35998,37165,37194,37336,37478,37580,37664,38662,38742,38748,38914,[12237,40718],21046,21137,21884,22564,24093,24351,24716,25552,26799,28639,31085,31532,33229,34234,35069,35576,36420,37261,38500,38555,38717,38988,[12241,40778],
+20430,20806,20939,21161,22066,24340,24427,25514,25805,26089,26177,26362,26361,26397,26781,26839,27133,28437,28526,29031,29157,[12118,29226],29866,30522,31062,31066,31199,31264,31381,31895,31967,32068,32368,32903,34299,34468,35412,35519,36249,36481,36896,36973,37347,38459,38613,[12227,40165],26063,31751,[12188,36275],37827,23384,23562,21330,25305,29469,20519,23447,24478,24752,24939,26837,28121,29742,31278,32066,32156,32305,33131,36394,36405,37758,37912,20304,22352,24038,24231,25387,32618,20027,20303,
+20367,20570,23005,32964,21610,21608,22014,22863,23449,24030,24282,26205,26417,26609,26666,27880,27954,28234,28557,28855,29664,30087,31820,32002,32044,32162,[12168,33311],34523,35387,35461,[12187,36208],36490,36659,36913,37198,37202,37956,39376,[12149,31481],31909,20426,20737,20934,22472,23535,23803,26201,27197,27994,28310,28652,28940,30063,31459,34850,36897,36981,38603,39423,33537,20013,20210,34886,37325,21373,27355,26987,27713,33914,22686,24974,26366,25327,28893,29969,30151,32338,33976,35657,36104,
+20043,21482,21675,22320,22336,24535,25345,25351,25711,[12096,25903],26088,26234,26525,26547,[12108,27490],27744,27802,28460,30693,30757,31049,31063,32025,32930,33026,[12164,33267],33437,33463,34584,35468,36100,36286,36978,30452,31257,31287,32340,32887,21767,21972,22645,25391,25634,26185,26187,26733,27035,27524,27941,28337,29645,29800,29857,30043,30137,30433,30494,30603,31206,32265,32285,33275,34095,34967,35386,36049,36587,[12192,36784,63857],36914,37805,38499,38515,38663,20356,21489,23018,23241,24089,
+26702,29894,30142,31209,31378,33187,34541,36074,36300,36845,26015,26389,22519,28503,32221,36655,37878,38598,24501,25074,28548,19988,20376,20511,21449,21983,23919,24046,27425,27492,30923,31642,36425,[12190,36554,63746],36974,25417,25662,30528,31364,37679,38015,40810,25776,28591,29158,29864,29914,31428,31762,32386,31922,32408,35738,36106,38013,39184,39244,21049,23519,25830,26413,32046,20717,[21443,63851],22649,{f:2,c:24920},25082,26028,31449,35730,35734,20489,20513,21109,21809,23100,24288,24432,24884,
+25950,26124,26166,26274,27085,28356,28466,29462,30241,31379,33081,33369,33750,33980,20661,22512,23488,23528,24425,25505,30758,32181,33756,34081,37319,37365,20874,26613,31574,36012,20932,22971,24765,34389,20508,21076,23610,24957,25114,[25299,64002],25842,26021,28364,30240,33034,36448,38495,38587,20191,21315,21912,22825,24029,25797,27849,28154,29588,31359,[12167,33307],34214,36068,36368,36983,37351,38369,38433,38854,20984,21746,21894,24505,25764,28552,32180,36639,36685,37941,20681,23574,27838,28155,
+29979,30651,31805,31844,35449,35522,22558,22974,24086,25463,29266,30090,30571,35548,36028,36626,24307,26228,28152,32893,33729,35531,[12205,38737],39894,21059,26367,28053,28399,32224,35558,36910,36958,39636,21021,21119,21736,24980,25220,25307,26786,26898,26970,27189,28818,28966,30813,30977,30990,31186,31245,32918,[12171,33400],33493,33609,34121,35970,36229,37218,37259,37294,20419,22225,29165,30679,34560,35320,[12072,23544],24534,26449,37032,21474,22618,23541,24740,24961,25696,32317,32880,34085,37507,
+25774,20652,23828,26368,22684,25277,25512,26894,27E3,27166,28267,30394,31179,33467,33833,35535,36264,36861,37138,37195,37276,37648,37656,37786,38619,39478,39949,19985,30044,31069,31482,31569,31689,32302,33988,36441,36468,36600,36880,26149,26943,29763,20986,26414,40668,20805,24544,27798,34802,34909,34935,24756,33205,33795,36101,21462,21561,22068,23094,23601,28810,32736,32858,33030,33261,36259,37257,39519,40434,20596,20164,21408,24827,28204,23652,20360,20516,21988,23769,24159,24677,26772,27835,28100,
+29118,30164,30196,30305,31258,31305,32199,32251,32622,33268,34473,36636,38601,39347,[12242,40786],21063,21189,39149,35242,19971,26578,28422,20405,23522,26517,[27784,63858],28024,29723,30759,37341,37756,34756,31204,31281,24555,20182,21668,21822,22702,22949,24816,25171,25302,26422,26965,33333,38464,39345,39389,20524,21331,21828,22396,25176,25826,26219,26589,28609,28655,29730,29752,35351,37944,21585,22022,22374,24392,24986,27470,28760,28845,32187,35477,22890,33067,25506,30472,32829,36010,22612,25645,
+27067,23445,24081,28271,34153,20812,21488,22826,24608,24907,27526,27760,27888,31518,32974,33492,36294,37040,39089,25799,28580,25745,25860,20814,21520,[12063,22303],35342,24927,26742,30171,31570,32113,36890,22534,27084,33151,35114,36864,38969,20600,22871,22956,25237,36879,39722,24925,29305,38358,22369,23110,24052,25226,25773,25850,26487,27874,27966,29228,29750,30772,32631,33453,36315,38935,21028,22338,26495,29256,29923,36009,36774,37393,38442,[12043,20843],21485,25420,20329,21764,24726,25943,27803,
+28031,29260,29437,31255,35207,[12185,35997],24429,28558,28921,33192,24846,[20415,63845],20559,25153,[12122,29255],31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,[26292,64006],26333,28689,29190,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,
+35961,39111,39108,39491,21697,31263,26963,35575,35914,[12213,39080],39342,24444,25259,30130,[12138,30382],34987,36991,38466,21305,24380,24517,[27852,63848],29644,30050,[12134,30091],31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,{f:2,c:38289},38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,
+21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,[12175,34892,64008],20139,21521,22190,29670,37141,38911,39177,39255,[12217,39321],22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,[12208,38761],20436,23796,24358,25080,26203,27883,28843,[12126,29572],
+29625,29694,30505,30541,32067,32098,32291,33335,34898,36066,37449,39023,23377,[12147,31348],[12174,34880],[12212,38913],23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,24418,27842,28366,28677,28752,28847,29074,29673,[29801,63918],33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,[12094,25142],25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,
+28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,[12117,28779],30069,31117,[12146,31166],33457,33775,35441,35649,36008,38772,25844,25899,{f:2,c:30906},31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,
+[28369,63748],29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,{f:2,c:26179},27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,[12232,40643],21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,[12120,29243],32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,
+21235,22628,22734,28932,29071,29179,34224,35347,[26248,63941],34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,[12234,40657],26133,27427,28824,30165,21507,23673,32007,35350,[12107,27424],27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,{f:2,c:29113},29351,31143,31232,32690,35440,{s:163},{f:4,c:12310},
+{s:14},8223,8219,{f:2,c:8314},{s:7},8316,0,{f:2,c:8317},{s:23},700,{s:44},8942,8759,{s:20},{f:10,c:10122},{s:36},{f:26,c:9398},{s:61},{f:2,c:8826},{f:2,c:8910},{f:2,c:8832},{f:4,c:8816},0,8842,0,8843,{f:2,c:8822},8825,{f:2,c:8922},{s:5},8773,8771,8776,0,8868,{s:78},8244,{s:11},9839,{s:4},8258,{s:4},10045,0,0,8226,{s:4},{f:2,c:8249},{s:16},10010,10006,0,9711,{s:3},10070,0,9676,{s:24},9775,{s:6},12320,0,{f:10,c:10102},{s:17},12306,12342,{s:13},8710,0,8735,0,{f:2,c:8741},0,8787,8785,{f:2,c:8806},8723,
+{f:3,c:8853},0,8980,0,0,8802,0,9649,0,8738,8784,0,0,8867,0,0,{f:2,c:8814},8837,8836,8713,8716,{f:2,c:8891},8794,8966,{s:6},12958,0,8252,{s:11},9702,{s:3},9663,9653,9657,9667,{s:4},9674,12849,12857,13259,{f:5,c:9327},{s:18},8656,8655,8653,{s:37},8657,8659,{s:8},8626,8625,0,8628,8624,8627,{s:14},8636,8640,{s:10},{f:2,c:8644},{s:144},{f:5,c:9347},{s:33},12948,{s:15},12965,{s:93},8672,8674,8673,8675,{s:4},8678,8680,8679,8681,{s:20},9757,9759,{s:76},12944,{f:6,c:12938},{s:15},{f:2,c:12318},8246,0,8245,
+{s:3},12540,0,0,{f:2,c:44034},{f:2,c:44037},{f:5,c:44043},44056,{f:2,c:44062},{f:3,c:44065},{f:7,c:44069},44078,{f:6,c:44082},{f:2,c:44090},{f:3,c:44093},{f:10,c:44097},44108,{f:6,c:44110},{f:3,c:44117},{f:3,c:44121},{f:19,c:44125},{f:2,c:44146},{f:2,c:44149},44153,{f:5,c:44155},44162,{f:2,c:44167},{f:3,c:44173},{f:3,c:44177},{f:7,c:44181},44190,{f:6,c:44194},44203,{f:2,c:44205},{f:7,c:44209},44218,{f:3,c:44222},{f:2,c:44226},{f:3,c:44229},{f:3,c:44233},{f:8,c:44237},44246,{f:8,c:44248},{f:2,c:44258},
+{f:2,c:44261},44265,44267,{f:2,c:44269},44274,44276,{f:5,c:44279},{f:2,c:44286},{f:3,c:44289},44293,{f:5,c:44295},44302,44304,{f:6,c:44306},{f:3,c:44313},{f:3,c:44317},{f:8,c:44321},{f:2,c:44330},{f:6,c:44334},{f:2,c:44342},{f:3,c:44345},{f:7,c:44349},44358,44360,{f:6,c:44362},{f:3,c:44369},{f:3,c:44373},{f:8,c:44377},44386,{f:8,c:44388},{f:2,c:44398},{f:2,c:44401},{f:4,c:44407},44414,44416,{f:5,c:44419},{f:2,c:44426},{f:3,c:44429},{f:11,c:44433},{f:6,c:44446},{f:18,c:44453},{f:8,c:44472},{f:2,c:44482},
+{f:3,c:44485},{f:7,c:44489},44498,{f:8,c:44500},{f:3,c:44509},{f:3,c:44513},{f:19,c:44517},{f:2,c:44538},{f:2,c:44541},{f:6,c:44546},44554,44556,{f:6,c:44558},{f:27,c:44565},{f:2,c:44594},{f:2,c:44597},44601,{f:5,c:44603},44610,44612,{f:3,c:44615},44619,44623,{f:3,c:44625},44629,{f:5,c:44631},44638,{f:3,c:44642},{f:2,c:44646},{f:2,c:44650},{f:3,c:44653},{f:7,c:44657},44666,{f:6,c:44670},{f:6,c:44678},{f:47,c:44685},44735,{f:3,c:44737},{f:7,c:44741},44750,{f:6,c:44754},{f:2,c:44762},{f:11,c:44765},
+{f:2,c:44777},44780,{f:6,c:44782},{f:3,c:44789},{f:3,c:44793},{f:10,c:44797},{f:4,c:44809},{f:2,c:44814},{f:27,c:44817},{f:2,c:44846},44849,44851,{f:7,c:44853},44862,44864,{f:4,c:44868},{f:6,c:44874},{f:11,c:44881},{f:6,c:44894},{f:19,c:44902},{f:6,c:44922},{f:3,c:44929},{f:3,c:44933},{f:7,c:44937},{f:3,c:44946},{f:6,c:44950},{f:27,c:44957},{f:2,c:44986},{f:3,c:44989},{f:6,c:44993},45002,45004,{f:5,c:45007},{f:7,c:45013},{f:11,c:45021},{f:6,c:45034},{f:2,c:45042},{f:3,c:45045},{f:7,c:45049},{f:2,
+c:45058},{f:7,c:45061},{f:3,c:45069},{f:3,c:45073},{f:7,c:45077},{f:10,c:45086},{f:27,c:45097},{f:2,c:45126},45129,45131,45133,{f:4,c:45135},45142,45144,{f:3,c:45146},{f:30,c:45150},{f:2,c:45182},{f:3,c:45185},{f:7,c:45189},45198,45200,{f:6,c:45202},45211,{f:2,c:45213},{f:5,c:45219},45226,45232,45234,{f:2,c:45238},{f:3,c:45241},{f:7,c:45245},45254,{f:6,c:45258},{f:2,c:45266},{f:3,c:45269},{f:7,c:45273},{f:4,c:45281},{f:34,c:45286},45322,{f:3,c:45325},45329,{f:4,c:45332},45338,{f:5,c:45342},{f:2,c:45350},
+{f:3,c:45353},{f:7,c:45357},45366,{f:6,c:45370},{f:2,c:45378},{f:3,c:45381},{f:7,c:45385},{f:2,c:45394},{f:2,c:45398},{f:3,c:45401},{f:3,c:45405},{f:23,c:45409},{f:2,c:45434},{f:3,c:45437},45441,{f:5,c:45443},45450,45452,{f:4,c:45454},{f:3,c:45461},{f:3,c:45465},{f:11,c:45469},{f:35,c:45481},{f:3,c:45517},{f:3,c:45521},{f:7,c:45525},45534,{f:8,c:45536},{f:2,c:45546},{f:3,c:45549},{f:8,c:45553},45562,45564,{f:6,c:45566},{f:2,c:45574},{f:2,c:45577},{f:7,c:45581},45590,45592,{f:6,c:45594},{f:19,c:45601},
+{f:7,c:45621},{f:27,c:45629},{f:3,c:45657},{f:3,c:45661},{f:7,c:45665},{f:10,c:45674},{f:6,c:45686},{f:7,c:45693},{f:3,c:45702},{f:6,c:45706},{f:2,c:45714},{f:3,c:45717},{f:5,c:45723},45730,45732,{f:3,c:45735},45739,{f:3,c:45741},{f:3,c:45745},{f:19,c:45749},{f:2,c:45770},{f:3,c:45773},45777,{f:5,c:45779},45786,45788,{f:4,c:45790},45795,45799,{f:2,c:45801},{f:3,c:45808},45814,{f:3,c:45820},{f:2,c:45826},{f:3,c:45829},{f:7,c:45833},45842,{f:6,c:45846},{f:55,c:45853},45911,{f:2,c:45913},45917,{f:4,
+c:45920},45926,45928,45930,{f:2,c:45932},45935,{f:2,c:45938},{f:3,c:45941},{f:7,c:45945},45954,{f:6,c:45958},{f:3,c:45965},{f:3,c:45969},{f:11,c:45973},{f:6,c:45986},{f:3,c:45993},{f:23,c:45997},{f:2,c:46022},{f:2,c:46025},46029,46031,{f:3,c:46033},46038,46040,46042,46044,{f:2,c:46046},{f:3,c:46049},{f:3,c:46053},{f:19,c:46057},{f:19,c:46077},{f:7,c:46097},{f:3,c:46105},{f:3,c:46109},{f:7,c:46113},46122,{f:8,c:46124},{f:27,c:46133},{f:2,c:46162},{f:3,c:46165},{f:7,c:46169},46178,46180,{f:6,c:46182},
+{f:19,c:46189},{f:7,c:46209},{f:20,c:46217},{f:6,c:46238},{f:3,c:46245},{f:3,c:46249},{f:8,c:46253},46262,46264,{f:6,c:46266},{f:3,c:46273},{f:3,c:46277},{f:7,c:46281},{f:4,c:46289},{f:6,c:46294},{f:2,c:46302},{f:2,c:46305},46309,{f:5,c:46311},46318,46320,{f:6,c:46322},{f:27,c:46329},{f:2,c:46358},{f:2,c:46361},{f:7,c:46365},46374,{f:5,c:46379},{f:2,c:46386},{f:3,c:46389},{f:7,c:46393},46402,{f:5,c:46406},{f:2,c:46414},{f:3,c:46417},{f:7,c:46421},46430,{f:62,c:46434},{f:2,c:46498},{f:3,c:46501},46505,
+{f:4,c:46508},46514,{f:5,c:46518},{f:2,c:46526},{f:3,c:46529},{f:7,c:46533},46542,{f:6,c:46546},{f:19,c:46553},{f:35,c:46573},{f:2,c:46610},{f:3,c:46613},{f:12,c:46617},{f:6,c:46630},{f:7,c:46637},{f:19,c:46645},{f:27,c:46665},{f:3,c:46693},{f:51,c:46697},{f:2,c:46750},{f:3,c:46753},{f:6,c:46757},{f:4,c:46765},{f:34,c:46770},{f:27,c:46805},{f:3,c:46833},{f:3,c:46837},{f:7,c:46841},{f:3,c:46850},{f:34,c:46854},{f:2,c:46890},{f:2,c:46893},{f:7,c:46897},46906,{f:8,c:46908},{f:3,c:46917},{f:3,c:46921},
+{f:7,c:46925},{f:10,c:46934},{f:3,c:46945},{f:3,c:46949},{f:7,c:46953},46962,46964,{f:6,c:46966},{f:2,c:46974},{f:3,c:46977},{f:7,c:46981},46990,{f:3,c:46995},{f:2,c:47002},{f:3,c:47005},{f:7,c:47009},47018,{f:6,c:47022},{f:2,c:47030},{f:14,c:47033},47048,{f:34,c:47050},{f:2,c:47086},{f:3,c:47089},{f:7,c:47093},47102,{f:5,c:47106},{f:2,c:47114},{f:3,c:47117},{f:7,c:47121},47130,47132,{f:6,c:47134},{f:2,c:47142},{f:3,c:47145},{f:7,c:47149},47158,{f:6,c:47162},{f:3,c:47169},{f:12,c:47173},47186,{f:8,
+c:47188},{f:2,c:47198},{f:3,c:47201},{f:7,c:47205},47214,47216,{f:6,c:47218},{f:3,c:47225},{f:16,c:47229},{f:26,c:47246},{f:7,c:47273},{f:3,c:47281},{f:3,c:47285},{f:7,c:47289},47298,47300,{f:6,c:47302},{f:3,c:47309},{f:3,c:47313},{f:8,c:47317},47326,47328,{f:6,c:47330},{f:2,c:47338},{f:3,c:47341},{f:7,c:47345},47354,47356,{f:6,c:47358},{f:19,c:47365},{f:7,c:47385},{f:27,c:47393},{f:2,c:47422},{f:3,c:47425},{f:7,c:47429},{f:2,c:47437},47440,{f:6,c:47442},{f:2,c:47450},{f:3,c:47453},{f:7,c:47457},
+47466,47468,{f:6,c:47470},{f:2,c:47478},{f:3,c:47481},{f:7,c:47485},47494,47496,{f:2,c:47499},{f:29,c:47503},{f:2,c:47534},{f:3,c:47537},{f:7,c:47541},47550,47552,{f:6,c:47554},{f:2,c:47562},47565,{f:5,c:47571},47578,47580,{f:2,c:47583},47586,{f:2,c:47590},{f:3,c:47593},{f:7,c:47597},47606,{f:5,c:47611},{f:6,c:47618},{f:12,c:47625},{f:34,c:47638},{f:2,c:47674},{f:3,c:47677},47681,{f:5,c:47683},47690,47692,{f:4,c:47695},{f:2,c:47702},{f:3,c:47705},{f:7,c:47709},47718,{f:6,c:47722},{f:2,c:47730},{f:3,
+c:47733},{f:10,c:47737},47750,{f:4,c:47752},{f:27,c:47757},47786,{f:3,c:47789},47793,{f:5,c:47795},47802,47804,{f:6,c:47806},{f:3,c:47813},{f:15,c:47817},{f:34,c:47834},{f:3,c:47869},{f:3,c:47873},{f:8,c:47877},47886,47888,{f:6,c:47890},{f:3,c:47897},{f:3,c:47901},{f:8,c:47905},47914,{f:8,c:47916},47927,{f:2,c:47929},{f:5,c:47935},47942,47944,{f:3,c:47946},47950,{f:3,c:47953},{f:3,c:47957},{f:8,c:47961},47970,{f:8,c:47972},{f:27,c:47981},{f:3,c:48009},{f:3,c:48013},{f:19,c:48017},{f:3,c:48037},{f:3,
+c:48041},{f:7,c:48045},{f:2,c:48053},{f:8,c:48056},{f:3,c:48065},{f:3,c:48069},{f:7,c:48073},{f:2,c:48081},{f:36,c:48084},{f:2,c:48122},{f:2,c:48125},48129,{f:5,c:48131},48138,48142,48144,{f:2,c:48146},{f:2,c:48153},{f:4,c:48160},48166,48168,{f:3,c:48170},{f:2,c:48174},{f:2,c:48178},{f:3,c:48181},{f:7,c:48185},48194,{f:3,c:48198},{f:2,c:48202},{f:2,c:48206},{f:12,c:48209},{f:38,c:48222},{f:2,c:48262},{f:2,c:48265},48269,{f:5,c:48271},48278,48280,{f:5,c:48283},{f:2,c:48290},{f:2,c:48293},{f:7,c:48297},
+48306,{f:6,c:48310},{f:2,c:48318},{f:3,c:48321},{f:8,c:48325},48334,{f:3,c:48338},{f:2,c:48342},{f:3,c:48345},{f:23,c:48349},48375,{f:3,c:48377},{f:7,c:48381},48390,48392,{f:6,c:48394},{f:3,c:48401},{f:15,c:48405},{f:7,c:48421},{f:19,c:48429},{f:7,c:48449},{f:2,c:48458},{f:3,c:48461},{f:7,c:48465},{f:10,c:48474},{f:3,c:48485},{f:23,c:48489},{f:2,c:48514},{f:2,c:48517},{f:5,c:48523},48530,48532,{f:3,c:48534},48539,{f:7,c:48541},{f:11,c:48549},{f:7,c:48561},{f:27,c:48569},{f:2,c:48598},{f:3,c:48601},
+{f:12,c:48605},{f:6,c:48618},{f:3,c:48625},{f:3,c:48629},{f:7,c:48633},{f:2,c:48641},48644,{f:6,c:48646},{f:2,c:48654},{f:3,c:48657},{f:7,c:48661},48670,{f:36,c:48672},{f:2,c:48710},{f:3,c:48713},48717,{f:5,c:48719},48726,48728,{f:4,c:48732},{f:2,c:48738},{f:3,c:48741},48745,{f:5,c:48747},48754,{f:5,c:48758},{f:2,c:48766},{f:3,c:48769},{f:7,c:48773},48782,{f:6,c:48786},{f:14,c:48794},{f:39,c:48809},{f:2,c:48850},{f:2,c:48853},{f:7,c:48857},{f:2,c:48865},{f:6,c:48870},{f:20,c:48877},{f:6,c:48898},
+{f:14,c:48906},48922,{f:34,c:48926},{f:2,c:48962},{f:3,c:48965},{f:7,c:48969},{f:3,c:48978},{f:62,c:48982},{f:27,c:49045},{f:20,c:49073},{f:6,c:49094},{f:2,c:49102},{f:3,c:49105},{f:7,c:49109},{f:2,c:49117},49120,{f:90,c:49122},{f:20,c:49213},{f:6,c:49234},{f:3,c:49241},{f:3,c:49245},{f:7,c:49249},{f:38,c:49258},{f:2,c:49298},{f:3,c:49301},{f:7,c:49305},49314,49316,{f:6,c:49318},49326,{f:2,c:49329},{f:5,c:49335},49342,{f:3,c:49346},{f:2,c:49350},{f:2,c:49354},{f:3,c:49357},{f:7,c:49361},49370,{f:6,
+c:49374},{f:2,c:49382},{f:3,c:49385},{f:7,c:49389},49398,49400,{f:6,c:49402},{f:3,c:49409},{f:3,c:49413},{f:7,c:49417},{f:4,c:49425},{f:6,c:49430},{f:2,c:49441},49445,{f:4,c:49448},49454,{f:4,c:49458},49463,{f:2,c:49466},{f:3,c:49469},{f:7,c:49473},49482,{f:6,c:49486},{f:2,c:49494},{f:3,c:49497},{f:7,c:49501},49510,{f:6,c:49514},{f:3,c:49521},{f:3,c:49525},{f:12,c:49529},{f:6,c:49542},49551,{f:3,c:49553},49557,{f:5,c:49559},49566,49568,{f:3,c:49570},{f:2,c:49574},{f:2,c:49578},{f:3,c:49581},{f:12,
+c:49585},{f:6,c:49598},{f:3,c:49605},{f:3,c:49609},{f:7,c:49613},{f:2,c:49621},{f:7,c:49625},{f:3,c:49633},{f:3,c:49637},{f:7,c:49641},49650,{f:8,c:49652},{f:2,c:49662},{f:3,c:49665},{f:7,c:49669},49678,49680,{f:6,c:49682},{f:2,c:49690},{f:2,c:49693},{f:7,c:49697},49706,49708,49710,49712,49715,{f:19,c:49717},{f:7,c:49737},{f:2,c:49746},{f:3,c:49749},{f:7,c:49753},{f:4,c:49761},{f:6,c:49766},{f:2,c:49774},{f:3,c:49777},{f:7,c:49781},49790,49792,{f:6,c:49794},{f:6,c:49802},{f:7,c:49809},{f:2,c:49817},
+49820,{f:6,c:49822},{f:2,c:49830},{f:3,c:49833},{f:6,c:49838},49846,49848,{f:34,c:49850},{f:2,c:49886},{f:2,c:49889},{f:6,c:49893},49902,49904,{f:4,c:49906},49911,49914,{f:3,c:49917},{f:7,c:49921},{f:2,c:49930},{f:5,c:49934},{f:2,c:49942},{f:3,c:49945},{f:7,c:49949},{f:2,c:49958},{f:27,c:49962},{f:34,c:49990},{f:2,c:50026},{f:3,c:50029},50033,{f:5,c:50035},{f:2,c:50042},{f:6,c:50046},{f:3,c:50053},{f:3,c:50057},{f:51,c:50061},{f:23,c:50113},{f:2,c:50138},{f:2,c:50141},50145,{f:5,c:50147},{f:3,c:50154},
+{f:6,c:50158},{f:2,c:50166},{f:15,c:50169},{f:7,c:50185},{f:19,c:50193},{f:7,c:50213},{f:3,c:50221},{f:3,c:50225},{f:7,c:50229},{f:10,c:50238},{f:27,c:50249},{f:2,c:50278},{f:3,c:50281},{f:7,c:50285},{f:3,c:50294},{f:6,c:50298},{f:19,c:50305},{f:7,c:50325},{f:27,c:50333},{f:3,c:50361},{f:44,c:50365},{f:6,c:50410},{f:2,c:50418},{f:3,c:50421},50425,{f:4,c:50427},{f:10,c:50434},{f:3,c:50445},{f:3,c:50449},{f:7,c:50453},{f:11,c:50461},{f:2,c:50474},{f:3,c:50477},{f:7,c:50481},50490,50492,{f:6,c:50494},
+{f:2,c:50502},50507,{f:4,c:50511},50518,{f:3,c:50522},50527,{f:2,c:50530},{f:3,c:50533},{f:7,c:50537},50546,{f:6,c:50550},{f:2,c:50558},{f:3,c:50561},{f:2,c:50565},{f:4,c:50568},50574,50576,{f:3,c:50578},50582,{f:3,c:50585},{f:3,c:50589},{f:8,c:50593},{f:10,c:50602},{f:2,c:50614},50618,{f:5,c:50623},50635,50637,50639,{f:2,c:50642},{f:3,c:50645},{f:7,c:50649},50658,50660,{f:6,c:50662},50671,{f:3,c:50673},50677,{f:4,c:50680},{f:3,c:50690},{f:3,c:50697},{f:3,c:50701},{f:7,c:50705},50714,{f:7,c:50717},
+{f:2,c:50726},{f:3,c:50729},50735,{f:2,c:50737},50742,50744,50746,{f:4,c:50748},{f:2,c:50754},{f:3,c:50757},{f:7,c:50761},50770,{f:6,c:50774},{f:2,c:50782},{f:11,c:50785},{f:2,c:50797},50800,{f:6,c:50802},{f:2,c:50810},{f:3,c:50813},{f:7,c:50817},50826,50828,{f:6,c:50830},{f:2,c:50838},{f:3,c:50841},{f:7,c:50845},50854,50856,{f:6,c:50858},{f:2,c:50866},{f:3,c:50869},{f:5,c:50875},50882,50884,{f:6,c:50886},{f:2,c:50894},{f:3,c:50897},{f:7,c:50901},{f:2,c:50910},{f:6,c:50914},{f:2,c:50922},{f:3,c:50925},
+{f:7,c:50929},{f:3,c:50938},{f:6,c:50942},{f:2,c:50950},{f:3,c:50953},{f:7,c:50957},50966,50968,{f:6,c:50970},{f:2,c:50978},{f:3,c:50981},{f:7,c:50985},50994,50996,50998,{f:4,c:51E3},{f:2,c:51006},{f:3,c:51009},{f:5,c:51013},51019,51022,51024,{f:3,c:51033},{f:3,c:51037},{f:7,c:51041},{f:2,c:51049},{f:8,c:51052},{f:2,c:51062},{f:3,c:51065},{f:4,c:51071},51078,{f:3,c:51083},51087,{f:2,c:51090},51093,51097,{f:5,c:51099},51106,{f:5,c:51111},{f:2,c:51118},{f:3,c:51121},{f:7,c:51125},51134,{f:6,c:51138},
+{f:2,c:51146},51149,51151,{f:7,c:51153},{f:4,c:51161},{f:6,c:51166},{f:3,c:51173},{f:3,c:51177},{f:19,c:51181},{f:2,c:51202},{f:3,c:51205},51209,{f:5,c:51211},51218,51220,{f:5,c:51223},{f:2,c:51230},{f:3,c:51233},{f:7,c:51237},51246,51248,{f:6,c:51250},{f:3,c:51257},{f:3,c:51261},{f:7,c:51265},{f:2,c:51274},{f:6,c:51278},{f:27,c:51285},{f:2,c:51314},{f:3,c:51317},51321,{f:5,c:51323},51330,51332,{f:3,c:51336},{f:6,c:51342},{f:8,c:51349},51358,51360,{f:6,c:51362},{f:19,c:51369},{f:6,c:51390},{f:3,c:51397},
+{f:3,c:51401},{f:7,c:51405},51414,51416,{f:6,c:51418},{f:2,c:51426},{f:16,c:51429},{f:6,c:51446},{f:2,c:51454},{f:3,c:51457},{f:5,c:51463},51470,51472,{f:6,c:51474},{f:19,c:51481},{f:7,c:51501},{f:27,c:51509},{f:2,c:51538},{f:3,c:51541},{f:7,c:51545},51554,{f:8,c:51556},{f:3,c:51565},{f:3,c:51569},{f:7,c:51573},{f:11,c:51581},{f:2,c:51594},{f:3,c:51597},{f:7,c:51601},51610,51612,{f:34,c:51614},{f:2,c:51650},{f:2,c:51653},51657,{f:5,c:51659},51666,51668,{f:2,c:51671},51675,{f:2,c:51678},51681,51683,
+{f:2,c:51685},{f:4,c:51688},51694,{f:6,c:51698},{f:2,c:51706},{f:3,c:51709},{f:7,c:51713},51722,{f:6,c:51726},{f:3,c:51733},{f:16,c:51737},{f:34,c:51754},{f:2,c:51790},{f:3,c:51793},{f:7,c:51797},51806,{f:6,c:51810},{f:20,c:51817},{f:6,c:51838},{f:19,c:51845},{f:35,c:51865},{f:2,c:51902},{f:3,c:51905},{f:7,c:51909},51918,51920,51922,{f:4,c:51924},{f:6,c:51930},{f:11,c:51937},{f:7,c:51949},{f:19,c:51957},{f:7,c:51977},{f:3,c:51985},{f:3,c:51989},{f:7,c:51993},{f:31,c:52002},{f:6,c:52034},{f:2,c:52042},
+{f:3,c:52045},{f:7,c:52049},{f:3,c:52058},{f:6,c:52062},{f:19,c:52069},{f:34,c:52090},{f:27,c:52125},{f:27,c:52153},{f:15,c:52181},{f:2,c:52197},52200,{f:34,c:52202},{f:2,c:52238},{f:3,c:52241},{f:7,c:52245},{f:3,c:52254},{f:4,c:52259},{f:2,c:52266},52269,52271,{f:7,c:52273},52282,{f:5,c:52287},{f:2,c:52294},{f:3,c:52297},{f:7,c:52301},52310,{f:6,c:52314},{f:3,c:52321},52325,52327,{f:7,c:52329},{f:4,c:52337},{f:34,c:52342},{f:2,c:52378},{f:3,c:52381},{f:7,c:52385},52394,{f:6,c:52398},{f:2,c:52406},
+{f:3,c:52409},{f:7,c:52413},52422,52424,{f:6,c:52426},{f:3,c:52433},{f:15,c:52437},{f:7,c:52453},{f:3,c:52461},{f:16,c:52465},{f:6,c:52482},{f:2,c:52490},{f:3,c:52493},{f:7,c:52497},52506,52508,{f:6,c:52510},{f:3,c:52517},{f:3,c:52521},{f:12,c:52525},{f:34,c:52538},{f:3,c:52573},{f:3,c:52577},{f:7,c:52581},52590,52592,{f:6,c:52594},{f:15,c:52601},{f:11,c:52617},{f:2,c:52630},{f:3,c:52633},{f:7,c:52637},52646,52648,{f:6,c:52650},{f:19,c:52657},{f:7,c:52677},{f:3,c:52685},{f:23,c:52689},{f:3,c:52713},
+{f:3,c:52717},{f:7,c:52721},52730,52732,{f:6,c:52734},{f:3,c:52741},{f:3,c:52745},{f:7,c:52749},{f:4,c:52757},{f:6,c:52762},{f:2,c:52770},{f:3,c:52773},{f:7,c:52777},52786,52788,{f:34,c:52790},{f:2,c:52826},{f:2,c:52829},{f:6,c:52834},52842,52844,{f:6,c:52846},{f:2,c:52854},{f:3,c:52857},{f:7,c:52861},52870,52872,{f:6,c:52874},{f:2,c:52882},{f:3,c:52885},{f:7,c:52889},52898,{f:6,c:52902},{f:19,c:52910},{f:34,c:52930},{f:2,c:52966},{f:2,c:52969},{f:7,c:52973},52982,{f:6,c:52986},{f:2,c:52994},{f:3,
+c:52997},{f:7,c:53001},53010,53012,{f:6,c:53014},{f:3,c:53021},{f:3,c:53025},{f:7,c:53029},53038,{f:6,c:53042},{f:27,c:53049},{f:2,c:53078},{f:3,c:53081},{f:7,c:53085},53094,53096,{f:6,c:53098},{f:2,c:53106},{f:3,c:53109},{f:7,c:53113},{f:4,c:53121},{f:6,c:53126},{f:20,c:53133},{f:6,c:53154},{f:7,c:53161},{f:19,c:53169},{f:27,c:53189},{f:2,c:53218},{f:3,c:53221},{f:7,c:53225},53234,53236,{f:6,c:53238},{f:3,c:53245},{f:3,c:53249},{f:12,c:53253},{f:6,c:53266},{f:20,c:53273},{f:6,c:53294},{f:2,c:53302},
+{f:3,c:53305},{f:7,c:53309},53318,53320,{f:6,c:53322},{f:3,c:53329},{f:3,c:53333},{f:7,c:53337},{f:11,c:53345},{f:2,c:53358},{f:3,c:53361},{f:7,c:53365},{f:3,c:53374},{f:34,c:53378},{f:2,c:53414},{f:3,c:53417},{f:7,c:53421},53430,53432,{f:6,c:53434},{f:2,c:53442},{f:3,c:53445},{f:6,c:53450},53458,{f:6,c:53462},{f:2,c:53470},{f:3,c:53473},{f:7,c:53477},53486,{f:6,c:53490},{f:20,c:53497},{f:34,c:53518},{f:2,c:53554},{f:3,c:53557},53561,{f:5,c:53563},53570,{f:6,c:53574},{f:2,c:53582},{f:3,c:53585},{f:7,
+c:53589},53598,53600,{f:6,c:53602},{f:3,c:53609},{f:15,c:53613},{f:7,c:53629},{f:3,c:53637},{f:23,c:53641},{f:2,c:53666},{f:3,c:53669},{f:7,c:53673},53682,53684,{f:4,c:53686},53691,{f:3,c:53693},{f:23,c:53697},{f:27,c:53721},{f:3,c:53749},{f:14,c:53753},53768,{f:6,c:53770},{f:27,c:53777},{f:2,c:53806},{f:3,c:53809},{f:7,c:53813},53822,53824,{f:6,c:53826},{f:19,c:53833},{f:7,c:53853},{f:27,c:53861},{f:2,c:53890},{f:3,c:53893},{f:7,c:53897},{f:3,c:53906},{f:6,c:53910},{f:3,c:53917},{f:3,c:53921},{f:7,
+c:53925},{f:4,c:53933},{f:6,c:53938},{f:2,c:53946},{f:2,c:53949},53953,{f:5,c:53955},53962,{f:8,c:53964},{f:3,c:53973},{f:3,c:53977},{f:7,c:53981},{f:10,c:53990},{f:2,c:54002},{f:3,c:54005},{f:7,c:54009},54018,54020,{f:6,c:54022},54031,{f:3,c:54033},54037,{f:5,c:54039},54046,{f:3,c:54050},{f:2,c:54054},{f:2,c:54058},{f:3,c:54061},{f:7,c:54065},54074,{f:6,c:54078},{f:54,c:54086},{f:2,c:54142},{f:3,c:54145},{f:7,c:54149},54158,{f:6,c:54162},{f:2,c:54170},{f:3,c:54173},{f:7,c:54177},54186,54188,{f:6,
+c:54190},{f:3,c:54197},{f:3,c:54201},{f:7,c:54205},{f:2,c:54214},{f:6,c:54218},{f:7,c:54225},{f:8,c:54233},54242,{f:8,c:54244},{f:2,c:54254},{f:3,c:54257},{f:7,c:54261},54270,54272,{f:6,c:54274},{f:20,c:54281},{f:34,c:54302},{f:3,c:54337},{f:23,c:54341},{f:3,c:54365},{f:3,c:54369},{f:8,c:54373},54382,{f:8,c:54384},{f:2,c:54394},{f:2,c:54397},54401,{f:5,c:54403},54410,54412,{f:6,c:54414},{f:20,c:54421},{f:34,c:54442},{f:3,c:54477},{f:3,c:54481},{f:7,c:54485},{f:2,c:54493},{f:8,c:54496},{f:3,c:54505},
+{f:3,c:54509},{f:7,c:54513},{f:2,c:54521},54524,{f:6,c:54526},{f:3,c:54533},{f:3,c:54537},{f:7,c:54541},54550,{f:36,c:54552},{f:2,c:54590},{f:3,c:54593},{f:7,c:54597},54606,54608,{f:6,c:54610},{f:2,c:54618},{f:3,c:54621},{f:4,c:54625},{f:2,c:54630},54634,54636,{f:6,c:54638},{f:2,c:54646},{f:3,c:54649},{f:7,c:54653},54662,{f:6,c:54666},{f:20,c:54673},{f:34,c:54694},{f:2,c:54730},{f:3,c:54733},54737,{f:5,c:54739},54746,54748,{f:6,c:54750},{f:2,c:54758},{f:3,c:54761},{f:7,c:54765},54774,54776,{f:6,c:54778},
+{f:2,c:54786},{f:3,c:54789},{f:7,c:54793},54802,{f:6,c:54806},{f:3,c:54813},{f:3,c:54817},{f:8,c:54821},{f:10,c:54830},{f:2,c:54842},{f:3,c:54845},{f:4,c:54849},{f:2,c:54854},54858,54860,{f:3,c:54862},{f:2,c:54866},{f:2,c:54870},{f:3,c:54873},{f:10,c:54877},54888,{f:6,c:54890},{f:2,c:54898},{f:14,c:54901},54916,{f:6,c:54918},{f:2,c:54926},{f:3,c:54929},{f:8,c:54933},54942,54944,{f:6,c:54946},{f:3,c:54953},{f:3,c:54957},{f:8,c:54961},54970,{f:8,c:54972},{f:2,c:54982},{f:3,c:54985},{f:4,c:54989},{f:2,
+c:54994},{f:2,c:54997},55E3,{f:6,c:55002},{f:3,c:55009},{f:3,c:55013},{f:7,c:55017},{f:4,c:55025},{f:6,c:55030},{f:2,c:55038},{f:3,c:55041},{f:12,c:55045},{f:6,c:55058},{f:2,c:55066},{f:3,c:55069},{f:7,c:55073},55082,55084,{f:6,c:55086},{f:2,c:55094},{f:3,c:55097},{f:7,c:55101},{f:2,c:55109},55112,{f:6,c:55114},{f:2,c:55122},55125,{f:6,c:55130},55138,55140,{f:3,c:55142},{f:2,c:55146},{f:3,c:55149},{f:3,c:55153},{f:7,c:55157},{f:3,c:55166},{f:6,c:55170},{f:2,c:55178},{f:3,c:55181},{f:7,c:55185},55194,
+55196,{f:6,c:55198}],"Adobe-CNS1":[{f:95,c:32},{s:3},12288,65292,{f:2,c:12289},65294,8226,65307,65306,65311,65281,65072,8230,8229,65104,65380,65106,183,{f:4,c:65108},65372,8211,65073,8212,{s:4},{f:2,c:65288},{f:2,c:65077},65371,65373,{f:2,c:65079},{f:2,c:12308},{f:2,c:65081},{f:2,c:12304},{f:2,c:65083},{f:2,c:12298},{f:2,c:65085},{f:2,c:12296},{f:2,c:65087},{f:2,c:12300},{f:2,c:65089},{f:2,c:12302},{f:2,c:65091},{f:6,c:65113},{f:2,c:8216},{f:2,c:8220},{f:2,c:12317},8245,8242,65283,65286,65290,8251,
+167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,8254,0,65343,0,{f:2,c:65097},{f:2,c:65101},{f:2,c:65099},{f:3,c:65119},65291,65293,215,247,177,8730,65308,65310,65309,{f:2,c:8806},8800,8734,8786,8801,{f:5,c:65122},8764,{f:2,c:8745},8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,9793,9737,8593,8595,8594,8592,{f:2,c:8598},8601,8600,8741,8739,0,0,65295,65340,65284,165,12306,{f:2,c:162},65285,65312,8451,8457,{f:3,c:65129},13269,{f:3,c:13212},13262,13217,
+{f:2,c:13198},13252,176,[20825,58834],[20827,58835],[20830,58837],[20829,58836],20833,20835,21991,[29929,58044],[31950,58191],{f:8,c:9601},9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,{f:2,c:9581},9584,9583,9552,9566,9578,9569,{f:2,c:9698},9701,9700,{f:3,c:9585},{f:10,c:65296},{f:10,c:8544},{f:9,c:12321},0,[21316,57443],0,{f:26,c:65313},{f:26,c:65345},{f:17,c:913},{f:7,c:931},{f:17,c:945},{f:7,c:963},{f:37,c:12549},729,714,711,715,[9312,63153],
+[9313,63154],[9314,63155],[9315,63156],[9316,63157],[9317,63158],[9318,63159],[9319,63160],[9320,63161],[9321,63162],[9332,63163],[9333,63164],[9334,63165],[9335,63166],[9336,63167],[9337,63168],[9338,63169],[9339,63170],[9340,63171],[9341,63172],[8560,63173],[8561,63174],[8562,63175],[8563,63176],[8564,63177],[8565,63178],[8566,63179],[8567,63180],[8568,63181],[8569,63182],[12033,20008],[12034,20022,63183],[12035,20031,63184],[12037,20101,63185],[12039,20128,63186],[12044,20866,63187],[12045,20886,
+63188],[12046,20907,63189],[12051,21241,63190],[12054,21304,63191],[12057,21353,63192],[12059,21430,63193],[12065,12066,22786,22794,63194],[12071,23424,63195],[12078,24027,63196],[12083,24186,63197],[12084,24191,63198],[12085,24308],[12089,24400,63200],[12090,24417,63201],[12097,25908,63202],[12102,26080],[12135,30098,63204],[12136,30326],[12193,36789,63206],[12202,38582],{f:32,c:9216},9249,[12032,19968],[12036,20057],19969,19971,20035,20061,20102,[12038,20108],[12040,20154],[12041,20799],[12042,
+20837],[12043,20843],[12047,20960],[12049,20992],20993,[12050,21147],[12052,21269],[12055,21313],[12056,21340],[12060,21448],19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,[20800,64012],20995,21242,21315,21449,[12061,21475],[12063,22303],[12064,22763],[12067,22805],[12068,22823],[12069,22899],[12070,23376],23377,23379,[12072,23544],[12073,23567],[12074,23586],[12075,23608],[12077,23665],24029,[12079,24037],[12080,24049],{f:2,c:24050},[12081,24062],[12082,24178],[12086,
+24318],[12087,24331],[12088,24339],25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,{f:2,c:20166},20173,{f:2,c:20170},20164,20803,20801,20839,{f:2,c:20845},20844,20887,20982,{f:3,c:20998},21243,{f:2,c:21246},21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,{f:2,c:24340},[12092,24515],[12093,25096],[12094,25142],[12095,25163],25166,[12096,25903],[12098,
+25991],[12099,26007],[12100,26020],[12101,26041],[12103,26085],[12104,26352],[12105,26376],[12106,26408],[12107,27424],[12108,27490],[12109,27513],[12111,27595],[12112,27604],[12113,27611],[12114,27663],[12116,27700],[12117,28779],[12118,29226],[12119,29238],[12120,29243],[12122,29255],[12123,29273],[12124,29275],[12125,29356],29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,{f:4,c:20180},{f:2,c:20195},20185,20190,20805,20804,{f:2,c:20873},20908,{f:2,c:20985},20984,21002,21152,
+21151,[21253,57435],21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,{f:2,c:24066},24179,24188,24321,24344,24343,24517,25098,{f:2,c:25171},25170,25169,26021,26086,26414,26412,{f:2,c:26410},26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,[12126,29572],[12127,29577],[12128,29916],[12129,
+29926],[12130,29976],[12131,29983],[12132,29992],29993,[12133,3E4],{f:3,c:30001},[12134,30091],[12137,30333],[12138,30382],[12139,30399],[12140,30446],[12141,30683],[12142,30690],[12143,30707],[12144,31034],[12146,31166],[12147,31348],[12148,31435],{f:2,c:19998},{f:2,c:20050},20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,{f:2,c:20240},20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,{f:2,c:21009},21006,21014,21155,21256,
+21281,21280,{f:2,c:21360},21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,{f:2,c:22809},{f:2,c:22839},22916,22904,22915,22909,22905,22914,22913,{f:2,c:23383},{f:2,c:23431},23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,{f:2,c:25100},25104,25187,25179,25176,25910,26089,26088,{f:2,c:26092},{f:2,c:26354},26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,
+27735,27737,{f:2,c:27743},27728,27733,27745,27739,{f:2,c:27725},28784,29279,29277,30334,[12149,31481],[12150,31859],[12151,31992],[12152,32566],[12154,32650],[12155,32701],[12156,32769],32771,[12157,32780],[12158,32786],[12159,32819],[12160,32895],[12161,32905],{f:2,c:32907},[12162,33251],[12163,33258],[12164,33267],[12165,33276],[12166,33292],[12167,33307],[12168,33311],[12169,33390],[12170,33394],33406,[12173,34411],[12174,34880],[12175,34892],[12176,34915],35199,38433,20018,20136,20301,20303,20295,
+20311,20318,20276,20315,20309,20272,{f:2,c:20304},20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,{f:2,c:20918},21029,21028,{f:2,c:21033},21032,21163,{f:2,c:21161},21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,{f:2,c:21557},21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,
+22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,{f:2,c:23386},23436,23435,23439,23596,{f:2,c:23616},23615,23614,{f:2,c:23696},23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,{f:4,c:26446},
+26460,26454,[26462,57801],26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,{f:2,c:27784},27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,{f:2,c:28796},28792,29282,29281,29280,29380,29378,29590,29996,29995,{f:2,c:30007},30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,[12178,35211],[12179,35282],[12180,35328],[12181,35895],[12182,
+35910],[12183,35925],[12185,35997],[12186,36196],[12187,36208],[12188,36275],[12189,36523],[12190,36554],[12191,36763],[12192,36784],36802,36806,36805,36804,24033,[12194,37009],37026,37034,37030,37027,[12195,37193],[12196,37318],[12197,37324],38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,{f:2,c:20139},20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,
+21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,{f:3,c:21367},21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,{f:2,c:22855},22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,
+{f:2,c:23621},23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,{f:2,c:24213},24310,{f:2,c:24358},24361,{f:2,c:24448},24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,{f:2,c:25299},25291,25288,25256,25277,25276,[25296,60582],25305,25287,25293,25269,25306,25265,25304,{f:2,c:25302},25286,25260,[25294,
+61010],25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,{f:2,c:26479},26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,{f:2,c:27494},27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,{f:2,c:27837},27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,
+{f:2,c:29228},29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,{f:2,c:30105},30340,30402,30450,30452,30693,30717,31038,{f:2,c:31040},31177,31176,31354,31353,31482,31998,32596,32652,32651,[32773,58236],32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,[12198,
+37329],[12199,38263],[12200,38272],[12201,38428],38464,38463,38459,38468,38466,[12203,38585],[12204,38632],38738,[12206,38750],20127,{f:2,c:20141},20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,
+21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23E3,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,{f:2,c:23630},23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,{f:2,c:24458},24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,[24674,60712],24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,
+25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,{f:2,c:27965},27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,
+27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,{f:2,c:29408},29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,{f:2,c:30116},{f:2,c:30114},30328,{f:3,c:30342},30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,{f:2,c:30732},31046,31049,31048,31047,{f:2,c:31161},{f:2,c:31185},31179,31359,31361,31487,31485,31869,32002,32005,32E3,32009,32007,32004,32006,32568,32654,32703,32784,32781,32785,
+32822,32982,32997,32986,{f:2,c:32963},32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,{f:2,c:35330},35998,36E3,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,{f:3,c:38475},[12207,38754],[12208,38761],[12209,38859],[12210,
+38893],[12211,38899],[12212,38913],[12213,39080],[12214,39131],[12215,39135],[12216,39318],[12217,39321],20056,20147,{f:2,c:20492},20515,20463,20518,20517,20472,[20521,57375],20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,{f:2,c:20900},20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,[21375,57459],21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,
+21729,21769,21742,21738,21734,21799,21767,21757,21775,{f:2,c:22275},22466,22484,22475,22467,22537,22799,{f:2,c:22871},22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,
+25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,{f:2,c:25386},25384,25421,25420,{f:2,c:25928},26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,{f:2,c:26388},26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,{f:2,c:27687},27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,
+28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,{f:2,c:30130},30141,30140,30137,30146,30136,30347,30384,30410,{f:2,c:30413},30505,{f:2,c:30495},30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,[31203,60418],31207,31199,31206,31209,31192,31364,31368,31449,
+31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32772,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,{f:2,c:33322},33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,{f:2,c:34945},
+34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,{f:2,c:36001},[36215,58442],36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,{f:2,c:38498},38497,38491,38493,38500,38488,38494,38587,39138,[12218,39340],[12219,39592],[12220,39640],[12222,39717],[12224,39730],[12225,39740],20094,20602,[20605,57382],20572,20551,20547,20556,20570,20553,20581,
+20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,{f:2,c:21311},21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,
+23560,23559,23648,{f:2,c:23644},23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,{f:2,c:24247},24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,{f:2,c:25114},25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,
+25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,{f:2,c:26059},26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,{f:2,c:27627},27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,
+28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,{f:2,c:28937},28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,{f:2,c:29942},29980,29986,{f:2,c:30053},30050,30064,30095,{f:2,c:30164},30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,
+31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,{f:2,c:33659},33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,
+35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,[37117,58488],37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,{f:2,c:38518},38508,38592,38634,38633,31456,31455,{f:2,c:38914},[12226,39770],[12227,40165],[12228,40565],[12229,40575],[12230,40613],[12231,40635],20642,20621,20613,20633,20625,20608,20630,20632,20634,
+26368,20977,21106,{f:2,c:21108},21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,{f:2,c:22576},22561,22557,22560,{f:2,c:22777},22880,[23159,57587],23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,{f:2,c:23562},23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,{f:2,c:24257},24260,24380,
+24429,{f:2,c:24489},24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,{f:2,c:25581},25462,25588,25578,25563,25682,25562,25593,25950,25958,{f:2,c:25954},26001,26E3,26031,26222,26224,[26228,57786],26230,26223,26257,26234,26238,26231,{f:2,c:26366},26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,
+26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,{f:2,c:27694},27692,[28207,57904],28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,[28189,57901],28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,{f:2,c:28953},28966,28976,28961,28982,[29038,57958],28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,{f:2,c:29749},29748,29743,29723,
+29734,29736,{f:2,c:29989},30059,30058,30178,30171,30179,30169,30168,30174,30176,{f:2,c:30331},30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,[31569,60510],31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,{f:2,c:32724},32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,
+33733,33803,[33729,58309],33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,{f:2,c:35009},34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,
+36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,{f:2,c:37396},37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,{f:2,c:38533},38541,38514,38532,38593,38597,38596,{f:2,c:38598},38639,38642,38860,{f:2,c:38917},38920,39143,39146,39151,39145,39154,39149,39342,39341,[12232,40643],[12233,40653],[12234,40657],20098,20653,20661,{f:2,c:20658},20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,{f:2,c:21218},21295,
+21983,21992,21971,21990,21966,21980,21959,21969,{f:2,c:21987},21999,21978,21985,{f:2,c:21957},21989,21961,{f:2,c:22290},22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,{f:2,c:25121},25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,
+25613,25654,{f:2,c:25622},25606,25964,26015,26032,26263,26249,{f:2,c:26247},26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,
+29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,[29788,58019],30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,{f:2,c:30430},30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,{f:2,c:30871},30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,{f:2,c:31391},31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,{f:2,c:32617},32626,32681,32680,
+32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,{f:2,c:33145},33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,{f:2,c:34562},34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,{f:2,c:35442},35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,
+35977,36042,{f:2,c:36039},36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,{f:2,c:38548},38605,38603,{f:2,c:38601},38647,38651,38649,38646,38742,38772,38774,{f:2,c:38928},38931,38922,38930,
+38924,39164,39156,{f:2,c:39165},39347,39345,39348,39649,40169,40578,[12237,40718],[12238,40723],[12239,40736],20711,20718,20709,20694,[20717,60903],20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,{f:2,c:22029},22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,{f:2,c:23525},23528,
+23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,{f:2,c:24930},24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,
+28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,{f:2,c:31118},31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,[31672,58170],31623,31620,31929,{f:2,c:31933},32187,32176,32156,{f:2,c:32189},32160,32202,32180,32178,
+32177,32186,32162,32191,32181,32184,32173,[32210,58202],32199,32172,32624,{f:2,c:32736},32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,
+35980,36051,{f:2,c:36049},36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37548,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,{f:2,c:38312},38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,{f:2,c:38935},39087,39089,39171,39173,39180,39177,39361,{f:2,c:39599},39654,{f:2,c:39745},40180,40182,40179,40636,[12240,40763],[12241,40778],20740,20736,20731,20725,
+20729,20738,{f:2,c:20744},20741,20956,{f:3,c:21127},21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,{f:2,c:22063},22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,{f:2,c:23652},23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,
+25711,25721,25758,25778,25736,[25744,57745],25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,{f:2,c:25975},26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,{f:2,c:27589},28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,
+30240,30249,30239,30244,30246,{f:2,c:30241},30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,{f:2,c:31686},31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,{f:3,c:33179},33184,33178,33176,34071,34109,34074,34030,{f:2,c:34092},34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,
+34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,{f:2,c:35090},35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,{f:2,c:36076},{f:2,c:36066},36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,
+37251,37573,37563,37559,37610,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,{f:2,c:38662},38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,{f:2,c:39662},39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,[12242,40786],20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,
+22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,{f:2,c:25787},25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,[28598,60318],28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,
+{f:2,c:29123},29544,29852,29859,29848,29855,29854,29922,{f:2,c:29964},30260,30264,30266,30439,30437,30624,{f:2,c:30622},30629,30952,30938,30956,30951,31142,{f:2,c:31309},31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,{f:2,c:31957},32266,32273,32264,32283,32291,32286,[32285,58211],32265,32272,32633,32690,{f:2,c:32752},32750,[32808,58239],33203,33193,33192,33275,33288,{f:2,c:33368},34122,34137,34120,{f:2,c:34152},34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,
+35114,35122,35109,35115,35105,35242,[35238,58391],35558,35578,35563,35569,35584,35548,35559,35566,35582,{f:2,c:35585},35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,{f:2,c:38567},38570,38613,38670,38673,38678,38669,38675,38671,38747,[38748,58565],38758,38808,38960,38968,38971,
+38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,[12243,40845],[12244,40860],20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,{f:2,c:25986},26329,26326,27264,27284,27268,
+27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,{f:2,c:28639},28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,[29151,60361],29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,
+32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,{f:2,c:32881},32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34214,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,
+36670,36674,36677,36671,36991,36989,36996,{f:2,c:36993},36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,{f:3,c:38346},38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,{f:2,c:40668},40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,{f:2,c:25850},25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,
+{f:2,c:27310},27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,{f:2,c:29179},29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,{f:2,c:30651},30990,31150,{f:2,c:31329},31328,{f:2,c:31428},31787,31783,31786,31774,31779,31777,31975,{f:2,c:32340},32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,
+36447,36437,36544,36681,36685,36999,36995,37E3,{f:2,c:37291},37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,{f:2,c:39230},39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22184,{f:2,c:22750},22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,
+27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,{f:2,c:31806},31800,31805,31799,31808,32363,32365,32377,{f:2,c:32361},32371,32645,32694,32697,32696,33240,34281,34269,34282,34261,{f:2,c:34276},34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,{f:2,c:35662},35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,{f:2,
+c:37002},37297,37294,37857,37841,37855,37827,37832,{f:2,c:37852},37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39E3,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,
+{f:2,c:31983},36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,{f:2,c:34836},35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,{f:2,c:20791},22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,
+30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,{f:2,c:38712},38706,[38911,58586],39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,{f:2,c:40806},20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,
+32894,32893,33247,35186,35183,35324,35712,{f:2,c:36118},36497,36499,36705,37192,37956,{f:2,c:37969},{f:2,c:38717},38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,{f:2,c:39514},39511,{f:2,c:39635},39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,{f:2,
+c:30321},[30679,60226],32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,{f:2,c:40441},{f:2,c:40572},40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38E3,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,{f:2,c:38013},38012,{f:2,c:40055},40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,20034,20060,[12048,20981],[12053,21274],[12058,21378],
+19975,19980,20039,20109,[12062,22231],[12076,23662],[12091,24435],19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,[23568,60417],24063,26081,[12110,27571],27596,[12115,27668],[12121,29247],20017,20028,20200,20188,20201,20193,20189,20186,21004,21001,21276,21324,{f:2,c:22306},22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,[12145,31160],32906,38430,20238,20248,20268,20213,20244,
+20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,{f:2,c:23674},23678,24031,[24181,57646],24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,25911,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,[27722,60796],27732,{f:2,c:27723},28785,
+29278,{f:2,c:29364},29582,29994,30335,31349,[12153,32593],[12171,33400],33404,33408,33405,33407,[12172,34381],[12177,35198],37017,[37015,59347],37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,{f:2,c:21165},21257,21347,21362,{f:2,c:21390},21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,
+22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,{f:2,c:25230},25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,
+26458,26443,27600,{f:2,c:27673},27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,[27804,57900],27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,{f:2,c:29587},29586,30010,30009,{f:2,c:30100},30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,{f:2,c:33411},[12184,35960],36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,
+20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,{f:2,c:21042},21062,21041,21180,{f:2,c:21258},21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,{f:2,c:22387},22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,
+22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,{f:3,c:24354},24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,
+26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,{f:2,c:26488},26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,
+28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,{f:2,c:30015},30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,{f:2,c:34413},35926,36818,
+36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,[20411,60346],20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,{f:2,c:21701},21664,21616,21692,21666,21694,21618,21726,21680,22453,{f:2,c:22430},22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,
+22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,{f:2,c:23763},23759,23752,23750,23758,23775,23800,24057,{f:3,c:24097},24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,{f:2,c:25154},25295,25357,
+25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,{f:2,c:25363},25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,{f:2,c:26383},26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,{f:2,c:26569},26563,26602,26571,27432,27522,27524,27574,27606,27608,
+27616,{f:2,c:27680},27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,{f:2,c:28852},28841,29249,{f:2,c:29257},29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,{f:2,c:30023},30119,30122,30329,
+30404,30472,{f:3,c:30467},30474,30455,30459,30458,{f:2,c:30695},30726,{f:2,c:30737},30725,30736,30735,30734,[30729,58095],30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,{f:2,c:31488},31866,{f:2,c:31864},{f:3,c:31871},32003,32008,32001,32600,32657,32653,32702,32775,{f:2,c:32782},32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,
+33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,[37332,60294],37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,{f:2,c:20470},20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,{f:2,c:20932},20936,20942,
+21089,21082,21074,{f:2,c:21086},21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,{f:2,c:21751},21728,21774,21763,21771,{f:2,c:22273},22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,{f:2,c:23085},23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,
+24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,{f:2,c:25412},25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,{f:2,c:26051},26050,26186,26207,26183,26193,{f:2,c:26386},26655,26650,26697,{f:2,c:26674},26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,
+26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,{f:2,c:28003},28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,[28007,59078],28E3,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,{f:3,c:28869},28890,28878,28897,29250,29304,29303,29302,29440,29434,
+29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,{f:2,c:29655},29672,{f:2,c:29918},{f:2,c:29940},29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,{f:2,c:30489},30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,{f:2,c:31211},31200,31214,31213,31210,31196,31198,31197,31366,
+31369,31365,{f:2,c:31371},31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,
+33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,{f:2,c:34883},34925,{f:2,c:34933},34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,{f:2,c:37081},37091,37087,37093,37080,37083,37079,37084,37092,37200,{f:2,c:37198},
+37333,37346,37338,38492,38495,38588,39139,[12221,39647],[12223,39727],20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,{f:2,c:20579},20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,{f:2,c:21877},21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,
+22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,[23143,60437],23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,
+24249,{f:2,c:24242},24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,{f:2,c:24787},24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,{f:2,c:26733},26798,26795,26966,26735,26787,26796,26793,26741,
+26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,{f:2,c:27447},27537,27535,{f:2,c:27533},27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,{f:2,c:28124},28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,
+28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,{f:2,c:29307},29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,{f:2,c:30155},30161,30160,30351,30345,30419,30521,30511,30509,{f:2,c:30513},30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,{f:2,c:31081},31075,31083,31073,31163,31226,31224,{f:2,
+c:31222},31375,31380,31376,31541,31547,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,{f:2,c:32062},32074,32059,32040,32611,32661,{f:2,c:32668},32667,{f:2,c:32714},32717,{f:2,c:32720},32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,
+33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,{f:2,c:34491},34499,{f:2,c:34493},34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,{f:2,
+c:35932},35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,{f:2,c:36576},36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,{f:2,c:37106},37076,{f:2,c:37099},37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,{f:2,c:37354},37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,
+21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,
+23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,[24408,57673],24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,
+25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,{f:2,c:26013},26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,{f:2,c:26845},26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,
+27581,27632,{f:2,c:27634},27696,28156,{f:2,c:28230},28191,28233,28296,{f:2,c:28220},28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,{f:2,c:28213},28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,{f:2,c:29320},29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,
+29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,{f:2,c:30534},30532,30541,30533,30538,30542,{f:2,c:30539},30686,30700,30816,{f:2,c:30820},30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31559,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,
+31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,{f:2,c:32574},{f:2,c:32613},32674,{f:2,c:32672},32727,32849,{f:2,c:32847},33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,{f:3,c:33271},33284,{f:2,c:33340},33343,33397,33595,[33743,60382],33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,[33807,58332],33758,
+33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33690,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35E3,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,{f:2,c:35290},35406,35405,35385,35417,35392,{f:2,c:35415},{f:2,c:35396},35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,
+36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,{f:2,c:36583},36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,[37124,60367],37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,{f:2,c:38536},38531,38528,
+38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,[12235,40697],{f:2,c:20099},20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,{f:2,c:21115},21955,21979,21964,21968,21963,21962,21981,[21952,64013],21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,
+23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,{f:2,c:23512},23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,{f:2,c:24905},24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,{f:2,c:25634},25612,
+25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,{f:2,c:26952},26933,26988,26931,26941,26981,26864,27E3,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,{f:2,c:27643},
+27641,{f:2,c:27639},28315,28374,28360,28303,28352,28319,{f:2,c:28307},28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,[29026,61080],29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,{f:2,c:29770},
+29778,29777,29783,29760,{f:2,c:29775},29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,[30201,60782],30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,{f:2,c:30559},30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,{f:2,c:30853},30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,{f:2,c:31256},31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,
+31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,{f:2,c:32615},32620,32678,32677,32679,{f:2,c:32731},32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,
+33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,{f:2,c:35021},35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,
+35444,35450,35900,35915,35914,35941,35940,35942,35974,{f:2,c:35972},36044,{f:2,c:36200},36241,36236,{f:2,c:36238},36237,{f:2,c:36243},36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,{f:2,c:36615},36610,[36619,60507],36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,{f:2,c:37230},37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,
+37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,{f:2,c:38546},38545,38551,38606,38650,38653,38648,38645,38771,{f:2,c:38775},38770,38927,{f:2,c:38925},39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,[12236,40701],20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,{f:2,c:21120},21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,
+22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,{f:2,c:24152},24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,{f:2,c:24914},
+24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,{f:2,c:25714},25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,
+27074,27061,27045,27078,27466,27469,27467,{f:3,c:27550},{f:2,c:27587},27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,{f:2,c:28441},28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,
+29952,{f:2,c:29954},30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,{f:2,c:31114},31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,{f:2,c:31403},31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,
+32197,32157,32206,32196,32198,{f:2,c:32203},32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,{f:2,c:32738},32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34E3,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,[33960,58327],34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,
+34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,{f:2,c:34598},34616,34596,34586,34608,34577,35063,35047,{f:2,c:35057},35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,{f:2,c:35944},36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,{f:2,c:36624},36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,
+37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,{f:2,c:39085},39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,{f:2,c:39742},{f:2,c:39776},39775,{f:2,c:40177},40181,40615,
+20735,20739,20784,20728,{f:2,c:20742},20726,20734,{f:2,c:20747},20733,20746,{f:2,c:21131},21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,
+24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,{f:2,c:26034},26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,
+27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,{f:3,c:29534},29533,29531,29537,29530,29529,29538,29831,{f:2,c:29833},29830,29825,
+29821,29829,29832,29820,[29817,58868],29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,{f:3,c:30364},30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,{f:2,c:30915},30921,31130,31137,31136,31132,31138,[31131,59175],27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,
+32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,{f:2,c:34023},34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,{f:2,c:34659},34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,
+34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,{f:3,c:35095},35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,{f:2,c:35540},35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,{f:2,c:36390},36372,36370,36376,36371,
+36380,36375,36378,36652,36644,36632,36634,36640,36643,{f:2,c:36630},36979,36976,36975,36967,36971,37167,37163,{f:2,c:37161},37170,37158,37166,{f:2,c:37253},37258,{f:2,c:37249},37252,37248,37584,{f:2,c:37571},37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37669,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,
+38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,{f:2,c:39190},39189,39388,39373,39375,{f:2,c:39379},39374,39369,[39382,60270],39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,{f:2,c:40719},20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,
+22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,[23336,59539],23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,{f:2,c:24167},24166,24175,24297,24295,24294,24296,24293,24395,24508,24507,24989,25E3,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,{f:2,c:26314},26319,26301,26299,26298,26316,
+26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,{f:2,c:27213},27206,27477,27476,27478,27559,{f:2,c:27562},27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,{f:2,c:29120},29131,29140,29130,
+29127,29135,29117,29144,29116,29126,{f:2,c:29146},{f:2,c:29341},29545,{f:2,c:29542},29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,{f:2,c:30626},30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,{f:2,c:30945},30957,{f:2,c:30943},31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,
+31704,31711,31954,31956,31959,{f:2,c:31952},32274,32289,32279,32268,{f:2,c:32287},32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,{f:2,c:32635},32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,{f:3,c:33365},34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,
+34404,34724,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,{f:2,c:34704},34717,34692,34708,34716,34714,34697,35102,35110,35120,{f:2,c:35117},35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,{f:2,c:35572},35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,{f:2,c:35985},35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,{f:2,c:36412},36417,36400,36415,36541,[36662,60329],36654,36661,
+36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,{f:2,c:37173},37267,{f:2,c:37264},37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,{f:2,c:38329},38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,
+39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,{f:2,c:40582},40622,40621,{f:2,c:40661},40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,{f:2,c:22156},22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,
+23342,23419,{f:2,c:23537},23991,24172,24170,24510,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,{f:2,c:29550},29847,29874,29867,29840,29866,
+29869,29873,29861,29871,{f:3,c:29968},29967,30084,30275,{f:2,c:30280},30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,{f:2,c:30971},30975,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,{f:2,c:31424},31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,[31750,58176],{f:2,c:31728},31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,
+32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,
+35132,35134,35137,35154,35127,35138,35245,35247,35246,{f:2,c:35314},35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,{f:2,c:37712},37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,
+37726,37731,37735,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,{f:2,c:39211},39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,{f:2,c:39421},39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,{f:2,c:40238},40241,
+40248,40240,40261,{f:2,c:40258},40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,[12245,40864],20785,{f:2,c:20781},22168,22172,22167,22170,22173,22169,22896,23356,{f:2,c:23657},24E3,{f:2,c:24173},25048,25055,{f:2,c:25069},25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,{f:2,c:26330},26328,27333,27321,27325,27361,27334,27322,{f:2,c:27318},27335,27316,27309,27486,27593,27659,28679,{f:2,c:28684},28673,
+28677,28692,28686,{f:2,c:28671},28667,28710,28668,28663,28682,[29185,60224],29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30988,{f:2,c:30995},30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,{f:2,c:32759},32885,{f:2,c:33233},33232,33375,33374,
+34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,{f:2,c:35152},35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,
+36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,{f:3,c:36678},36683,37160,{f:2,c:37178},37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37760,37773,37809,37777,37810,37796,37800,37812,37795,{f:2,c:38354},38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,{f:3,c:38992},39096,39233,39228,39226,39439,39435,
+39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,{f:2,c:39684},39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,[40726,58693],40741,40747,40746,40745,40744,40780,40789,{f:2,c:20788},21142,21239,21428,22187,22189,{f:2,c:22182},22186,22188,22746,22749,22747,22802,{f:3,c:23357},24003,24176,24511,25083,25863,25872,
+25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,{f:3,c:28705},28713,28695,28708,28700,29196,29194,29191,29186,29189,{f:2,c:29349},29348,29347,29345,29899,29893,29879,29891,29974,30304,{f:2,c:30665},30660,30705,31005,31003,31009,31004,30999,31006,31152,{f:2,c:31335},31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,
+32643,32646,32695,{f:2,c:32765},32888,33239,33237,33291,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,{f:2,c:34806},34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,{f:2,c:35162},35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,{f:2,c:36102},36105,36268,36266,36269,
+36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,{f:2,c:36687},36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37797,37863,38269,{f:2,c:38362},38625,38697,{f:2,c:38699},38696,38694,38835,38839,38838,{f:3,c:38877},39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,{f:2,c:39334},39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,
+39691,39690,39694,39692,39735,{f:2,c:39914},39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,{f:2,c:40331},40317,40299,{f:2,c:40308},40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,{f:2,c:40768},40781,{f:3,c:40790},21303,22194,22197,22195,22755,23365,{f:2,c:24006},{f:2,c:24302},{f:2,c:24512},25081,25879,25878,25877,25875,26079,26344,{f:2,c:26339},27379,27376,
+27370,27368,27385,27377,{f:2,c:27374},28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28714,28736,28731,28723,28737,{f:2,c:29203},29352,29565,29564,29882,30379,30378,30398,30445,30668,{f:2,c:30670},30669,30706,31013,31011,{f:2,c:31015},31012,31017,31154,31342,{f:2,c:31340},31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,{f:2,c:33384},34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,{f:2,c:34832},34839,34835,
+34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,{f:2,c:36694},36693,36696,36698,37005,37187,37185,37303,37301,{f:2,c:37298},37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37948,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,{f:2,c:38702},38841,38843,{f:2,c:38909},39008,{f:2,c:39010},39007,{f:2,c:39105},39248,39246,39257,39244,39243,39251,39474,
+39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,4E4,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,{f:2,c:40358},40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,{f:2,c:22205},23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,
+27384,27392,{f:2,c:28739},28746,{f:2,c:28744},{f:2,c:28741},29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,[32391,60229],32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,{f:2,c:35706},36112,36116,36271,36494,36492,36702,36699,36701,37190,{f:2,c:37188},37305,37951,37947,37942,37929,37949,
+37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,{f:2,c:39703},39702,39738,39762,39979,39965,39964,39980,39971,{f:2,c:39976},39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,{f:2,c:40377},40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,
+22219,22897,{f:2,c:23371},24021,24017,24306,25889,25888,25894,25890,27403,{f:2,c:27400},27661,{f:3,c:28757},28754,{f:2,c:29214},29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,{f:2,c:31344},31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,{f:2,c:34356},34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,{f:2,c:36502},36704,36706,37191,37964,37968,{f:2,c:37962},37967,
+37959,37957,{f:2,c:37960},37958,38719,38883,39018,39017,39115,39252,39259,39502,{f:2,c:39507},39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,{f:2,c:25091},25897,25893,26006,26347,{f:2,
+c:27409},27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,{f:2,c:38852},38912,39510,39513,{f:3,c:39710},40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,[40432,60370],40418,40428,40436,40435,40424,40429,
+40642,40656,{f:2,c:40690},40710,40732,40760,40759,40758,40771,40783,40817,40816,{f:2,c:40814},22227,22221,23374,23661,25901,{f:2,c:26349},27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,{f:2,c:35732},{f:3,c:36510},36509,37310,37309,37314,37995,{f:2,c:37992},38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,{f:2,c:40448},40457,40447,40445,40452,40608,
+40734,40774,{f:3,c:40820},22228,25902,26040,{f:2,c:27416},27415,27418,28770,29222,29354,{f:2,c:30680},31033,31849,31851,31990,32410,32408,32411,32409,{f:2,c:33248},{f:3,c:34374},{f:2,c:35193},35196,35195,35327,{f:2,c:35736},36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,[39726,60830],40052,40051,40049,40053,
+40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,{f:2,c:39027},39116,39265,39339,39524,{f:2,c:39526},39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,{f:2,c:38016},39529,39528,40473,34379,35743,38019,40057,40631,30325,39531,40058,40477,{f:2,c:28777},29225,40612,40830,40777,40856,{s:97},65075,0,65076,65103,[168,776,63208],[710,63209,65342],[12541,63210],[12542,63211],[12445,63212],[12446,63213],0,[12293,63216],[12294,63217],[12295,63218],
+[12540,63219],[63220,65339],[63221,65341],[10045,63222],[12353,63223],[12354,63224],[12355,63225],[12356,63226],[12357,63227],[12358,63228],[12359,63229],[12360,63230],[12361,63231],[12362,63232],[12363,63233],[12364,63234],[12365,63235],[12366,63236],[12367,63237],[12368,63238],[12369,63239],[12370,63240],[12371,63241],[12372,63242],[12373,63243],[12374,63244],[12375,63245],[12376,63246],[12377,63247],[12378,63248],[12379,63249],[12380,63250],[12381,63251],[12382,63252],[12383,63253],[12384,63254],
+[12385,63255],[12386,63256],[12387,63257],[12388,63258],[12389,63259],[12390,63260],[12391,63261],[12392,63262],[12393,63263],[12394,63264],[12395,63265],[12396,63266],[12397,63267],[12398,63268],[12399,63269],[12400,63270],[12401,63271],[12402,63272],[12403,63273],[12404,63274],[12405,63275],[12406,63276],[12407,63277],[12408,63278],[12409,63279],[12410,63280],[12411,63281],[12412,63282],[12413,63283],[12414,63284],[12415,63285],[12416,63286],[12417,63287],[12418,63288],[12419,63289],[12420,63290],
+[12421,63291],[12422,63292],[12423,63293],[12424,63294],[12425,63295],[12426,63296],[12427,63297],[12428,63298],[12429,63299],[12430,63300],[12431,63301],[12432,63302],[12433,63303],[12434,63304],[12435,63305],[12449,63306],[12450,63307],[12451,63308],[12452,63309],[12453,63310],[12454,63311],[12455,63312],[12456,63313],[12457,63314],[12458,63315],[12459,63316],[12460,63317],[12461,63318],[12462,63319],[12463,63320],[12464,63321],[12465,63322],[12466,63323],[12467,63324],[12468,63325],[12469,63326],
+[12470,63327],[12471,63328],[12472,63329],[12473,63330],[12474,63331],[12475,63332],[12476,63333],[12477,63334],[12478,63335],[12479,63336],[12480,63337],[12481,63338],[12482,63339],[12483,63340],[12484,63341],[12485,63342],[12486,63343],[12487,63344],[12488,63345],[12489,63346],[12490,63347],[12491,63348],[12492,63349],[12493,63350],[12494,63351],[12495,63352],[12496,63353],[12497,63354],[12498,63355],[12499,63356],[12500,63357],[12501,63358],[12502,63359],[12503,63360],[12504,63361],[12505,63362],
+[12506,63363],[12507,63364],[12508,63365],[12509,63366],[12510,63367],[12511,63368],[12512,63369],[12513,63370],[12514,63371],[12515,63372],[12516,63373],[12517,63374],[12518,63375],[12519,63376],[12520,63377],[12521,63378],[12522,63379],[12523,63380],[12524,63381],[12525,63382],[12526,63383],[12527,63384],[12528,63385],[12529,63386],[12530,63387],[12531,63388],[12532,63389],[12533,63390],[12534,63391],[1040,63392],[1041,63393],[1042,63394],[1043,63395],[1044,63396],[1045,63397],[1025,63398],[1046,
+63399],[1047,63400],[1048,63401],[1049,63402],[1050,63403],[1051,63404],[1052,63405],[1053,63406],[1054,63407],[1055,63408],[1056,63409],[1057,63410],[1058,63411],[1059,63412],[1060,63413],[1061,63414],[1062,63415],[1063,63416],[1064,63417],[1065,63418],[1066,63419],[1067,63420],[1068,63421],[1069,63422],[1070,63423],[1071,63424],[1072,63425],[1073,63426],[1074,63427],[1075,63428],[1076,63429],[1077,63430],[1105,63431],[1078,63432],[1079,63433],[1080,63434],[1081,63435],[1082,63436],[1083,63437],
+[1084,63438],[1085,63439],[1086,63440],[1087,63441],[1088,63442],[1089,63443],[1090,63444],[1091,63445],[1092,63446],[1093,63447],[1094,63448],[1095,63449],[1096,63450],[1097,63451],[1098,63452],[1099,63453],[1100,63454],[1101,63455],[1102,63456],[1103,63457],[8679,63458],[8632,63459],[8633,63460],[20033,63461],[63462,131276],[20058,63463],[63464,131210],[20994,63465],[17553,63466],63467,[20872,63468],[13853,63469],[63470,161287],{s:40},[172,63511,65506],[63512,65508],[63513,65287],[63514,65282],
+[12849,63515],[8470,63516],[8481,63517],30849,[37561,58501],35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,{s:3},9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,{s:5},9619,{s:26},[58129,147159],[22462,58130],[58131,159443],[28990,58132],[58133,153568],[27042,58135],[58136,166889],[23412,58137],[31305,58138],[58139,153825],[58140,169177],[31333,58141],[31357,58142],[58143,154028],[31419,58144],[31408,58145],[31426,58146],[31427,58147],[29137,
+58148],[58149,156813],[16842,58150],[31450,58151],[31453,58152],[31466,58153],[16879,58154],[21682,58155],[58156,154625],[31499,58157],[31573,58158],[31529,58159],[58160,152334],[58161,154878],[31650,58162],[31599,58163],[33692,58164],[58165,154548],[58166,158847],[31696,58167],[33825,58168],[31634,58169],0,[58171,154912],0,[33938,58174],[31738,58175],0,[31797,58177],[58178,154817],[31812,58179],[31875,58180],[58181,149634],[31910,58182],[58184,148856],[31945,58185],[31943,58186],[31974,58187],0,
+[31987,58189],[31989,58190],[32359,58192],[17693,58193],[58194,159300],[32093,58195],[58196,159446],[32137,58198],[32171,58199],[28981,58200],[32179,58201],32214,[58203,147543],[58204,155689],[32228,58205],[15635,58206],[32245,58207],[58208,137209],[32229,58209],[58210,164717],0,[58212,155937],[58213,155994],[32366,58214],0,[17195,58216],[37996,58217],[32295,58218],[32576,58219],[32577,58220],[32583,58221],[31030,58222],[58223,156368],[39393,58224],[32663,58225],[58226,156497],[32675,58227],[58228,
+136801],[58229,131176],[17756,58230],[58231,145254],[58233,164666],[32762,58234],[58235,156809],0,[32776,58237],[32797,58238],0,[32815,58240],[58241,172167],[58242,158915],[32827,58243],[32828,58244],[32865,58245],[58246,141076],[18825,58247],[58248,157222],[58249,146915],[58250,157416],[26405,58251],[32935,58252],[58253,166472],[33031,58254],[33050,58255],[22704,58256],[58257,141046],[27775,58258],[58259,156824],[25831,58261],[58262,136330],[33304,58263],[58264,137310],[27219,58265],[58266,150117],
+[58267,150165],[17530,58268],[33321,58269],[58271,158290],[58272,146814],[20473,58273],[58274,136445],[34018,58275],[33634,58276],0,[58278,149927],[58279,144688],[58280,137075],[58281,146936],[33450,58282],[26907,58283],[58284,194964],[16859,58285],[34123,58286],[33488,58287],[33562,58288],[58289,134678],[58290,137140],[14017,58291],[58292,143741],[58293,144730],[33403,58294],[33506,58295],[33560,58296],[58297,147083],[58298,159139],[58299,158469],[58300,158615],[58301,144846],[15807,58302],[33565,
+58303],[21996,58304],[33669,58305],[17675,58306],[58307,159141],[33708,58308],0,[33747,58310],[58312,159444],[27223,58313],[34138,58314],[13462,58315],[58316,159298],[33880,58318],[58319,154596],[33905,58320],[15827,58321],[17636,58322],[27303,58323],[33866,58324],[31064,58326],0,[58328,158614],[58329,159351],[58330,159299],[34014,58331],0,[33681,58333],[17568,58334],[33939,58335],[34020,58336],[58337,154769],[16960,58338],[58339,154816],[17731,58340],[34100,58341],[23282,58342],0,[17703,58344],[34163,
+58345],[17686,58346],[26559,58347],[34326,58348],[58349,165413],[58350,165435],[34241,58351],[58352,159880],[34306,58353],[58354,136578],[58355,159949],[58356,194994],[17770,58357],[34344,58358],[13896,58359],[58360,137378],[21495,58361],[58362,160666],[34430,58363],0,[58365,172280],[34798,58366],[58367,142375],[34737,58368],[34778,58369],[34831,58370,60990],[22113,58371],[34412,58372],[26710,58373],[17935,58374],[34885,58375],[34886,58376],[58377,161248],[58378,146873],[58379,161252],[34910,58380],
+[34972,58381],[18011,58382],[34996,58383],[34997,58384],[35013,58386],[58388,161551],[35207,58389],{s:3},[35239,58393],[35260,58394],[58395,166437],[35303,58396],[58397,162084],[58398,162493],[35484,58399],[30611,58400],[37374,58401],[35472,58402],[58403,162393],[31465,58404],[58405,162618],[18195,58407],[58408,162616],[29052,58409],[35596,58410],[35615,58411],[58412,152624],[58413,152933],[35647,58414],0,[35661,58416],[35497,58417],[58418,150138],[35728,58419],[35739,58420],[35503,58421],[58422,
+136927],[17941,58423],[34895,58424],[35995,58425],[58426,163156],[58427,163215],[58428,195028],[14117,58429],[58430,163155],[36054,58431],[58432,163224],[58433,163261],[36114,58434],[36099,58435],[58436,137488],[36059,58437],[28764,58438],[36113,58439],[16080,58441],0,[36265,58443],[58444,163842],[58445,135188],[58446,149898],[15228,58447],[58448,164284],[58449,160012],[31463,58450],[36525,58451],[36534,58452],[36547,58453],[37588,58454],[36633,58455],[36653,58456],[58457,164709],[58458,164882],[36773,
+58459],[37635,58460],[58461,172703],[58462,133712],[36787,58463],0,[58465,166366],[58466,165181],[58467,146875],[24312,58468],[58469,143970],[36857,58470],0,[58474,140069],[14720,58475],[58476,159447],[36919,58477],[58478,165180],[58479,162494],[36961,58480],[58481,165228],[58482,165387],[37032,58483],[58484,165651],[37060,58485],[58486,165606],[37038,58487],0,[37223,58489],[37289,58491],[37316,58492],[31916,58493],[58494,166195],[58495,138889],[37390,58496],[27807,58497],[37441,58498],[37474,58499],
+[58500,153017],[58502,166598],[58503,146587],[58504,166668],[58505,153051],[58506,134449],[37676,58507],[37739,58508],[58509,166625],[58510,166891],[23235,58512],[58513,166626],[58514,166629],[18789,58515],[37444,58516],[58517,166892],[58518,166969],[58519,166911],[37747,58520],[37979,58521],[36540,58522],[38277,58523],[38310,58524],[37926,58525],[38304,58526],[28662,58527],[17081,58528],[58530,165592],[58531,135804],[58532,146990],[18911,58533],[27676,58534],[38523,58535],[38550,58536],[16748,58537],
+[38563,58538],[58539,159445],[25050,58540],58541,[30965,58542],[58543,166624],[38589,58544],[21452,58545],[18849,58546],[58547,158904],[58548,131700],[58549,156688],[58550,168111],[58551,168165],[58552,150225],[58553,137493],[58554,144138],[38705,58555],[34370,58556],[38710,58557],[18959,58558],[17725,58559],[17797,58560],[58561,150249],[28789,58562],[23361,58563],[38683,58564],0,[58566,168405],[38743,58567],[23370,58568],[58569,168427],[38751,58570],[37925,58571],[20688,58572],[58573,143543],[58574,
+143548],[38793,58575],[38815,58576],[38833,58577],[38846,58578],[38848,58579],[38866,58580],[38880,58581],[58582,152684],[38894,58583],[29724,58584],[58585,169011],0,[38901,58587],[58588,168989],[58589,162170],[19153,58590],[38964,58591],[38963,58592],[38987,58593],[39014,58594],[15118,58595],[58596,160117],[15697,58597],[58598,132656],[58599,147804],[58600,153350],[39114,58601],[39095,58602],[39112,58603],[39111,58604],[19199,58605],[58606,159015],[58607,136915],[21936,58608],[39137,58609],[39142,
+58610],[39148,58611],[37752,58612],[39225,58613],[58614,150057],[19314,58615],[58616,170071],[58617,170245],[39413,58618],[39436,58619],[39483,58620],[39440,58621],[39512,58622],[58623,153381],[14020,58624],[58625,168113],[58626,170965],[39648,58627],[39650,58628],[58629,170757],[39668,58630],[19470,58631],[39700,58632],[39725,58633],[58634,165376],[20532,58635],[39732,58636],[14531,58638],[58639,143485],[39760,58640],[39744,58641],[58642,171326],[23109,58643],[58644,137315],[39822,58645],[39938,
+58647],[39935,58648],[39948,58649],[58650,171624],[40404,58651],[58652,171959],[58653,172434],[58654,172459],[58655,172257],[58656,172323],[58657,172511],[40318,58658],[40323,58659],[58660,172340],[40462,58661],[40388,58663],[58665,172435],[58666,172576],[58667,137531],[58668,172595],[40249,58669],[58670,172217],[58671,172724],[40592,58672],[40597,58673],[40606,58674],[40610,58675],[19764,58676],[40618,58677],[40623,58678],[58679,148324],[40641,58680],[15200,58681],[14821,58682],[15645,58683],[20274,
+58684],[14270,58685],[58686,166955],[40706,58687],[40712,58688],[19350,58689],[37924,58690],[58691,159138],[40727,58692,60836],0,[40761,58694],[22175,58695],[22154,58696],[40773,58697],[39352,58698],[58699,168075],[38898,58700],[33919,58701],0,[40809,58703],[31452,58704],[40846,58705],[29206,58706],[19390,58707],[58708,149877],[58709,149947],[29047,58710],[58711,150008],[58712,148296],[58713,150097],[29598,58714],[58715,166874],[58716,137466],[31135,58717],[58718,166270],[58719,167478],[37737,58720],
+[37875,58721],[58722,166468],[37612,58723],[37761,58724],[37835,58725],[58726,166252],[58727,148665],[29207,58728],[16107,58729],[30578,58730],[31299,58731],[28880,58732],[58733,148595],[58734,148472],[29054,58735],[58736,137199],[28835,58737],[58738,137406],[58739,144793],[16071,58740],[58741,137349],[58742,152623],[58743,137208],[14114,58744],[58745,136955],[58746,137273],[14049,58747],[58748,137076],[58749,137425],[58750,155467],[14115,58751],[58752,136896],[22363,58753],[58754,150053],[58755,
+136190],[58756,135848],[58757,136134],[58758,136374],[34051,58759,58761],[58760,145062],0,[33877,58762],[58763,149908],[58764,160101],[58765,146993],[58766,152924],[58767,147195],[58768,159826],[17652,58769],[58770,145134],[58771,170397],[58772,159526],[26617,58773],[14131,58774],[15381,58775],[15847,58776],[22636,58777],[58778,137506],[26640,58779],[16471,58780],[58781,145215],[58782,147681],[58783,147595],[58784,147727],[58785,158753],[21707,58786],[22174,58787],[58788,157361],[22162,58789],[58790,
+135135],[58791,134056],[58792,134669],0,[58794,166675],[37788,58795],[20216,58796],[20779,58797],[14361,58798],[58799,148534],[20156,58800],[58801,132197],0,[20299,58803],[20362,58804],[58805,153169],[23144,58806],[58807,131499],[58808,132043],[14745,58809],[58810,131850],[58811,132116],[13365,58812],[20265,58813],[58814,131776],[58815,167603],[58816,131701],[35546,58817],[58818,131596],[20120,58819],[20685,58820],[20749,58821],[20386,58822],[20227,58823],[58824,150030],[58825,147082],[20290,58826],
+[20526,58827],[20588,58828],[20609,58829],[20428,58830],[20453,58831],[20568,58832],[20732,58833],[28278,58838],[58839,144789],[58840,147001],[58841,147135],[28018,58842],[58843,137348],[58844,147081],[20904,58845],[20931,58846],[58847,132576],[17629,58848],[58849,132259],[58850,132242],[58851,132241],[36218,58852],[58853,166556],[58854,132878],[21081,58855],[21156,58856],[58857,133235],[21217,58858],0,[18042,58860],[29068,58861],[58862,148364],[58863,134176],[58864,149932],[58865,135396],[27089,
+58866],[58867,134685],0,[16094,58869],[29849,58870],[29716,58871],[29782,58872],[29592,58873],[19342,58874],[58875,150204],[58876,147597],[21456,58877],[13700,58878],[29199,58879],[58880,147657],[21940,58881],[58882,131909],[21709,58883],[58884,134086],[22301,58885],[37469,58886],[38644,58887],[22493,58889],[22413,58890],[22399,58891],[13886,58892],[22731,58893],[23193,58894],[58895,166470],[58896,136954],[58897,137071],[58898,136976],[23084,58899],[22968,58900],[23166,58902],[23247,58903],[23058,
+58904],[58905,153926],[58906,137715],[58907,137313],[58908,148117],[14069,58909],[27909,58910],[29763,58911],[23073,58912],[58913,155267],[23169,58914],[58915,166871],[58916,132115],[37856,58917],[29836,58918],[58919,135939],[28933,58920],[18802,58921],[37896,58922],[58923,166395],[37821,58924],[14240,58925],[23582,58926],[23710,58927],[24158,58928],[24136,58929],[58930,137622],[58931,137596],[58932,146158],[24269,58933],[23375,58934],[58935,137475],[58936,137476],[14081,58937],[58938,137376],[14045,
+58939],[58940,136958],[14035,58941],[33066,58942],[58943,166471],[58944,138682],[58945,144498],[58946,166312],[24332,58947,60916],[24334,58948],[58949,137511],[58950,137131],[23147,58951],[58952,137019],[23364,58953],[58955,161277],[34912,58956],[24702,58957],[58958,141408],[58959,140843],[24539,58960],[16056,58961],[58962,140719],[58963,140734],[58964,168072],[58965,159603],[25024,58966],[58967,131134],[58968,131142],[58969,140827],[24985,58970],[24984,58971],[24693,58972],[58973,142491],[58974,
+142599],[58975,149204],[58976,168269],[25713,58977],[58978,149093],[58979,142186],[14889,58980],[58981,142114],[58982,144464],[58983,170218],[58984,142968],[25399,58985],[25782,58987],[25393,58988],[25553,58989],[58990,149987],[58991,142695],[25252,58992],[58993,142497],[25659,58994],[25963,58995],[26994,58996],[15348,58997],[58998,143502],[58999,144045],[59E3,149897],[59001,144043],[21773,59002],[59003,144096],[59004,137433],[59005,169023],[26318,59006],[59007,144009],[59008,143795],[15072,59009],
+[59011,152964],[59012,166690],[59013,152975],[59014,136956],[59015,152923],[59016,152613],[30958,59017],[59018,143619],[59019,137258],[59020,143924],[13412,59021],[59022,143887],[59023,143746],[59024,148169],[26254,59025],[59026,159012],[26219,59027],[19347,59028],[26160,59029],[59030,161904],[59031,138731],[26211,59032],[59033,144082],[59034,144097],[26142,59035],[59036,153714],[14545,59037],[59038,145466],[59039,145340],[15257,59040],[59041,145314],[59042,144382],[29904,59043],[15254,59044],[59046,
+149034],[26806,59047],0,[15300,59049],[27326,59050],[59052,145365],[59053,148615],[27187,59054],[27218,59055],[27337,59056],[27397,59057],[59058,137490],[25873,59059],[26776,59060],[27212,59061],[15319,59062],[27258,59063],[27479,59064],[59065,147392],[59066,146586],[37792,59067],[37618,59068],[59069,166890],[59070,166603],[37513,59071],[59072,163870],[59073,166364],[37991,59074],[28069,59075],[28427,59076],0,[59079,147327],[15759,59080],[28164,59081],[59082,147516],[23101,59083],[28170,59084],[22599,
+59085],[27940,59086],[30786,59087],[28987,59088],[59089,148250],[59090,148086],[28913,59091],[29264,59092,61085],[29319,59093],[29332,59094],[59095,149391],[59096,149285],[20857,59097],[59098,150180],[59099,132587],[29818,59100],[59101,147192],[59102,144991],[59103,150090],[59104,149783],[59105,155617],[16134,59106],[16049,59107],[59108,150239],[59109,166947],[59110,147253],[24743,59111],[16115,59112],[29900,59113],[29756,59114],[37767,59115],[29751,59116],[17567,59117],[59118,159210],[17745,59119],
+[30083,59120],[16227,59121],[59122,150745],[59123,150790],[16216,59124],[30037,59125],[30323,59126],[59127,173510],0,[29800,59129,61070],[59130,166604],[59131,149931],[59132,149902],[15099,59133],[15821,59134],[59135,150094],[16127,59136],[59137,149957],[59138,149747],[37370,59139],[22322,59140],[37698,59141],[59142,166627],[59143,137316],[20703,59144],[59145,152097],[59146,152039],[30584,59147],[59148,143922],[30478,59149],[30479,59150],[30587,59151],[59152,149143],[59153,145281],[14942,59154],[59155,
+149744],[29752,59156],[29851,59157],[16063,59158],[59159,150202],[59160,150215],[16584,59161],[59162,150166],[59163,156078],[37639,59164],[59165,152961],[30750,59166],[30861,59167],[30856,59168],[30930,59169],[29648,59170],[31065,59171],[59172,161601],[59173,153315],[16654,59174],0,0,[31141,59177],[27181,59178],[59179,147194],[31290,59180],[31220,59181],[16750,59182],[59183,136934],[16690,59184],[37429,59185],[31217,59186],[59187,134476],[59188,149900],[59189,131737],[59190,146874],[59191,137070],
+[13719,59192],[21867,59193],[13680,59194],[13994,59195],[59196,131540],[59197,134157],[31458,59198],[23129,59199],[59200,141045],[59201,154287],[59202,154268],[23053,59203],[59204,131675],[30960,59205],[23082,59206],[59207,154566],[31486,59208],[16889,59209],[31837,59210],[31853,59211],[16913,59212],[59213,154547],[59214,155324],[59215,155302],[31949,59216],[59217,150009],[59218,137136],[31886,59219],[31868,59220],[31918,59221],[27314,59222],[32220,59223],[32263,59224],[32211,59225],[32590,59226],
+[59227,156257],[59228,155996],[59229,162632],[32151,59230],[59231,155266],[17002,59232],[59233,158581],[59234,133398],[26582,59235],[59236,131150],[59237,144847],[22468,59238],[59239,156690],[59240,156664],[32733,59242],[31527,59243],[59244,133164],[59245,154345],[59246,154947],[31500,59247],[59248,155150],[39398,59249],[34373,59250],[39523,59251],[27164,59252],[59253,144447],[59255,150007],[59256,157101],[39455,59257],[59258,157088],0,[59260,160039],[59261,158929],[17642,59262],[33079,59263],[17410,
+59264],[32966,59265],[33033,59266],[33090,59267],[59268,157620],[39107,59269],[59270,158274],[33378,59271],[33381,59272],[59273,158289],[33875,59274],[59275,159143],[34320,59276],[59277,160283],[23174,59278],[16767,59279],[59280,137280],[23339,59281],[59282,137377],[23268,59283],[59284,137432],[34464,59285],[59286,195004],[59287,146831],[34861,59288],[59289,160802],[23042,59290],[34926,59291],[20293,59292],[34951,59293],[35007,59294],[35046,59295],[35173,59296],[35149,59297],[59298,153219],[35156,
+59299],[59300,161669],[59301,161668],[59302,166901],[59303,166873],[59304,166812],[59305,166393],[16045,59306],[33955,59307],[18165,59308],[18127,59309],[14322,59310],[35389,59311],[35356,59312],[59313,169032],[24397,59314],[37419,59315],[59316,148100],[26068,59317],[28969,59318],[28868,59319],[59320,137285],[40301,59321],[35999,59322],[36073,59323],[59324,163292],[22938,59325],[30659,59326],[23024,59327],[14036,59329],[36394,59330],[36519,59331],[59332,150537],[36656,59333],[36682,59334],[17140,
+59335],[27736,59336],[28603,59337],[59338,140065],[18587,59339],[28537,59340],[28299,59341],[59342,137178],[39913,59343],[14005,59344],[59345,149807],[37051,59346],0,[21873,59348],[18694,59349],[37307,59350],[37892,59351],[59352,166475],[16482,59353],[59354,166652],[37927,59355],[59356,166941],[59357,166971],[34021,59358],[35371,59359],[38297,59360],[38311,59361],[38295,59362],[38294,59363],[59364,167220],[29765,59365],[16066,59366],[59367,149759],[59368,150082],[59369,148458],[16103,59370],[59371,
+143909],[38543,59372],[59373,167655],[59374,167526],[59375,167525],[16076,59376],[59377,149997],[59378,150136],[59379,147438],[29714,59380],[29803,59381],[16124,59382],[38721,59383],[59384,168112],[26695,59385],[18973,59386],[59387,168083],[59388,153567],0,[37736,59390],[59391,166281],[59392,166950],[59393,166703],[59394,156606],[37562,59395],[23313,59396],[35689,59397],[18748,59398],[29689,59399],[59400,147995],[38811,59401],0,[39224,59403],[59404,134950],[24001,59405],[59406,166853],[59407,150194],
+[38943,59408],[59409,169178],[37622,59410],[59411,169431],[37349,59412],[17600,59413],[59414,166736],[59415,150119],[59416,166756],[39132,59417],[59418,166469],[16128,59419],[37418,59420],[18725,59421],[33812,59422],[39227,59423],[39245,59424],[59425,162566],[15869,59426],0,[19311,59428],[39338,59429],[39516,59430],[59431,166757],[59432,153800],[27279,59433],[39457,59434],[23294,59435],[39471,59436],[59437,170225],[19344,59438],[59439,170312],[39356,59440],[19389,59441],[19351,59442],[37757,59443],
+[22642,59444],[59445,135938],[22562,59446],[59447,149944],[59448,136424],[30788,59449],[59450,141087],[59451,146872],[26821,59452],[15741,59453],[37976,59454],[14631,59455],[24912,59456],[59457,141185],[59458,141675],[24839,59459],[40015,59460],[40019,59461],[40059,59462],[39989,59463],[39952,59464],[39807,59465],[39887,59466],[59467,171565],[39839,59468],[59469,172533],[59470,172286],[40225,59471],[19630,59472],[59473,147716],[40472,59474],[19632,59475],[40204,59476],[59477,172468],[59478,172269],
+[59479,172275],[59480,170287],[40357,59481],[33981,59482],[59483,159250],[59484,159711],[59485,158594],[34300,59486],[17715,59487],[59488,159140],[59489,159364],[59490,159216],[33824,59491],[34286,59492],[59493,159232],[59494,145367],[59495,155748],[31202,59496],[59497,144796],[59498,144960],[59500,149982],[15714,59501],[37851,59502],[37566,59503],[37704,59504],[59505,131775],[30905,59506],[37495,59507],[37965,59508],[20452,59509],[13376,59510],[36964,59511],[59512,152925],[30781,59513],[30804,59514],
+[30902,59515],[30795,59516],[59517,137047],[59518,143817],[59519,149825],[13978,59520],[20338,59521],[28634,59522],[28633,59523],0,[28702,59524,59525],[21524,59526],[59527,147893],[22459,59528],[22771,59529],[22410,59530],[40214,59531],[22487,59532],[28980,59533],[13487,59534],[59535,147884],[29163,59536],[59537,158784],[59538,151447],0,[59540,137141],[59541,166473],[24844,59542],[23246,59543],[23051,59544],[17084,59545],[59546,148616],[14124,59547],[19323,59548],[59549,166396],[37819,59550],[37816,
+59551],[59552,137430],[59553,134941],[33906,59554],[59555,158912],[59556,136211],[59557,148218],[59558,142374],[59559,148417],[22932,59560],[59561,146871],[59562,157505],[32168,59563],[59564,155995],[59565,155812],[59566,149945],[59567,149899],[59568,166394],[37605,59569],[29666,59570],[16105,59571],[29876,59572],[59573,166755],[59574,137375],[16097,59575],[59576,150195],[27352,59577],[29683,59578],[29691,59579],[16086,59580],[59581,150078],[59582,150164],[59583,137177],[59584,150118],[59585,132007],
+[59586,136228],[59587,149989],[29768,59588],[59589,149782],[28837,59590],[59591,149878],[37508,59592],[29670,59593],[37727,59594],[59595,132350],[37681,59596],[59597,166606],[59598,166422],[37766,59599],[59600,166887],[59601,153045],[18741,59602],[59603,166530],[29035,59604],[59605,149827],[59606,134399],[22180,59607],[59608,132634],[59609,134123],[59610,134328],[21762,59611],[31172,59612],[59613,137210],[32254,59614],[59615,136898],[59616,150096],[59617,137298],[17710,59618],[37889,59619],[14090,
+59620],[59621,166592],[59622,149933],[22960,59623],[59624,137407],[59625,137347],[59626,160900],[23201,59627],[14050,59628],[59629,146779],[14E3,59630],[37471,59631],[23161,59632],[59633,166529],[59634,137314],[37748,59635],[15565,59636],[59637,133812],[19094,59638],[14730,59639],[20724,59640],[15721,59641],[15692,59642],[59643,136092],[29045,59644],[17147,59645],[59646,164376],[28175,59647],[59648,168164],[17643,59649],[27991,59650],[59651,163407],[28775,59652],[27823,59653],[15574,59654],[59655,
+147437],[59656,146989],[28162,59657],[28428,59658],[15727,59659],[59660,132085],[30033,59661],[14012,59662],[13512,59663],[18048,59664],[16090,59665],[18545,59666],[22980,59667],[37486,59668],[18750,59669],[36673,59670],[59671,166940],[59672,158656],[22546,59673],[22472,59674],[14038,59675],[59676,136274],[28926,59677],[59678,148322],[59679,150129],[59680,143331],[59681,135856],[59682,140221],[26809,59683],[26983,59684],[59685,136088],[59686,144613],[59687,162804],[59688,145119],[59689,166531],[59690,
+145366],[59691,144378],[59692,150687],[27162,59693],[59694,145069],[59695,158903],[33854,59696],[17631,59697],[17614,59698],[59699,159014],[59700,159057],[59701,158850],[59702,159710],0,0,[33597,59705],[59706,137018],[33773,59707],[59708,158848],[59709,159827],[59710,137179],[22921,59711],[23170,59712],[59713,137139],[23137,59714],[23153,59715],[59716,137477],[59717,147964],[14125,59718],[23023,59719],[59720,137020],[14023,59721],[29070,59722],[37776,59723],[26266,59724],[59725,148133],[23150,59726],
+[23083,59727],[59728,148115],[27179,59729],[59730,147193],[59731,161590],[59732,148571],[59733,148170],[28957,59734],[59735,148057],[59736,166369],[20400,59737],[59738,159016],[23746,59739],[59740,148686],[59741,163405],[59742,148413],[27148,59743],[59744,148054],[59745,135940],0,[28979,59747],[59748,148457],[15781,59749],[27871,59750],[59751,194597],[23019,59754],[24412,59757],[59764,144128],[31955,59776],[59783,162548],[59786,153334],[59790,162584],[36972,59791],[33270,59795],[30476,59797],[27810,
+59799],[22269,59800],[22633,59828],[26465,59832],[23646,59838],[22770,59841],[28857,59843],[26627,59853],[36795,59859],[36796,59861],[20001,59871],[31545,59898],[15820,59902],[29482,57990,59909],[30048,59912],[22586,59920],[33446,59932],[27018,59940],[24803,59944],[20206,59984],[39364,60002],[40639,60023],[21249,60025],[26528,60038],[24808,60046],[20916,60053],[31363,60064],[39994,60075],[31432,60093],[26906,60098],[22956,60100],[22592,60102],[21610,60114],[24807,60123],[22138,60125],[26965,60132],
+[39983,60133],[34725,60134],[23584,60141],[24075,60143],[26398,60147],[33965,60157],[35713,60161],[20088,60166],[25283,60176],[26709,60180],0,[33533,60190],[35237,60194],[36768,60196],[38840,60198],[38983,60200],[39613,60201],[24497,60218],[26184,60219],[26303,60220],[60221,162425],0,[60225,149946],0,0,[60230,131910],[26382,60232],[26904,60233],[60235,161367],[60236,155618],[60239,161278],[60240,139418],[18640,60241],[19128,60242],[60244,166554],[60247,147515],[60250,150085],[60251,132554],[20946,
+60252],[60253,132625],[22943,60254],[60255,138920],[15294,60256],[60257,146687],[14747,60262],[60264,165352],[60265,170441],[14178,60266],[60267,139715],[35678,60268],[60269,166734],0,[29193,60274],[60276,134264],[60280,132985],[36570,60281],[21135,60283],[29041,60285],[60288,147274],[60289,150183],[21948,60290],[60293,158546],[13427,60295],[60297,161330],[18200,60299],[60303,149823],[20582,60305],[13563,60306],[60307,144332],0,[18300,60310],[60311,166216],[60315,138640],0,[60320,162834],[36950,60321],
+[60323,151450],[35682,60324],[23899,60327],[60328,158711],0,[60331,137500],[35562,60332],[60333,150006],[60335,147439],[19392,60337],[60340,141083],[37989,60341],[60342,153569],[24981,60343],[23079,60344],[60345,194765],0,[60348,148769],[20074,60350],[60351,149812],[38486,60352],[28047,60353],[60354,158909],[35191,60356],[60359,156689],0,[31554,60363],[60364,168128],[60365,133649],0,[31301,60369],[39462,60372],[13919,60374],[60375,156777],[60376,131105],[31107,60377],[23852,60380],[60381,144665],
+0,[18128,60384],[30011,60386],[34917,60387],[22710,60389],[14108,60390],[60391,140685],[15444,60394],[37505,60397],[60398,139642],[37680,60400],[60402,149968],[27705,60403],[60406,134904],[34855,60407],[35061,60408],[60409,141606],[60410,164979],[60411,137137],[28344,60412],[60413,150058],[60414,137248],[14756,60415],0,0,[17727,60419],[26294,60420],[60421,171181],[60422,170148],[35139,60423],[16607,60427],[60428,136714],[14753,60429],[60430,145199],[60431,164072],[60432,136133],[29101,60433],[33638,
+60434],[60436,168360],0,[19639,60438],[60439,159919],[60440,166315],[60445,147834],[31555,60446],[31102,60447],[28597,60449],[60450,172767],[27139,60451],[60452,164632],[21410,60453],[60454,159239],[37823,60455],[26678,60456],[38749,59389,60457],[60458,164207],[60460,158133],[60461,136173],[60462,143919],[23941,60464],[60465,166960],[22293,60467],[38947,60468],[60469,166217],[23979,60470],[60471,149896],[26046,60472],[27093,60473],[21458,60474],[60475,150181],[60476,147329],[15377,60477],[26422,60478],
+[60482,139169],[13770,60490],[18682,60493],0,[30728,60496],[37461,60497],[17394,60499],[17375,60501],[23032,60505],0,[22155,60518],[60520,169449],[36882,60541],[21953,60546],[17673,60551],[32383,60552],[28502,60553],[27313,60554],[13540,60556],[60558,161949],[14138,60559],0,[60562,163876],[60565,162366],[15851,60567],[60569,146615],[60574,156248],[22207,60575],[36366,60577],[23405,60578],[25566,60581],0,[25904,60585],[22061,60586],[21530,60588],[60591,171416],[19581,60592],[22050,60593],[22046,60594],
+[32585,60595],[22901,60597],[60598,146752],[34672,60599],[33047,60604],[40286,60605],[36120,60606],[30267,60607],[40005,60608],[30286,60609],[30649,60610],[37701,60611],[21554,60612],[33096,60613],[33527,60614],[22053,60615],[33074,60616],[33816,60617],[32957,60618],[21994,60619],[31074,60620],[22083,60621],[21526,60622],[60623,134813],[13774,60624],[22021,57509,60625],[22001,60626],[26353,60627],[60628,164578],[13869,60629],[30004,60630],[22E3,60631],[21946,60632],[21655,60633],[21874,60634],[60635,
+134209],[60636,134294],[24272,57652,60637],[60639,134774],[60640,142434],[60641,134818],[40619,60642],[32090,60643],0,[60645,135285],[25245,60646],[38765,60647],[21652,60648],[36045,60649],[29174,60650],[37238,60651],[25596,60652],[25529,60653],[25598,60654],[21865,60655],[60656,142147],[40050,60657],[60658,143027],[20890,60659],[13535,60660],[60661,134567],[20903,60662],[21581,60663],[21790,60664],[21779,60665],[30310,60666],[36397,60667],[60668,157834],[30129,60669],[32950,60670],[34820,60671],
+0,[35015,60673],[33206,60674],[33820,60675],[17644,60677],[29444,60678],[33547,60681],[22139,60683],[37232,60690],[37384,60692],[60696,134905],[29286,60697],[18254,60699],[60701,163833],[16634,60703],[40029,60704],[25887,60705],[18675,60707],[60708,149472],[60709,171388],0,[60713,161187],60715,[60716,155720],[29091,60718],[32398,60719],[40272,60720],[13687,60723],[27826,60725],[21351,60726],[14812,60728],[60731,149016],[33325,60734],[21579,60735],60739,[14930,60740],[29556,60742],[60743,171692],[19721,
+60744],[39917,60745],0,[19547,60748],[60751,171998],[33884,60752],[60754,160434],[25390,60757],[32037,60758],[14890,60761],[36872,60762],[21196,60763],[15988,60764],[13946,60765],[17897,60766],[60767,132238],[30272,60768],[23280,60769],[60770,134838],[30842,60771],[18358,60772],[22695,60773],[16575,60774],[22140,60775],[39819,60776],[23924,60777],[30292,60778],[60779,173108],[40581,60780],[19681,60781],0,[14331,60783],[24857,60784],[60786,148466],60787,[22109,60788],[60792,171526],[21044,60793],[13741,
+60795],0,[40316,60797],[31830,60798],[39737,60799],[22494,60800],[23635,60802],[25811,60803],[60804,169168],[60805,156469],[34477,60807],[60808,134440],[60811,134513],60812,[20990,60813],[60814,139023],[23950,60815],[38659,60816],[60817,138705],[40577,60818],[36940,60819],[31519,60820],[39682,60821],[23761,60822],[31651,60823],[25192,60824],[25397,60825],[39679,60826],[31695,60827],[39722,60828],[31870,60829],0,[31810,60831],[31878,60832],[39957,60833],[31740,60834],[39689,60835],0,39982,[40794,60839],
+[21875,60840],[23491,60841],[20477,60842],[40600,60843],[20466,60844],[21088,60845],[21201,60847],[22375,60848],[20566,60849],[22967,60850],[24082,60851],[38856,60852],[40363,60853],[36700,60854],[21609,60855],[38836,60856],[39232,60857],[38842,60858],[21292,60859],[24880,60860],[26924,60861],[21466,60862],[39946,60863],[40194,60864],[19515,60865],[38465,60866],[27008,60867],[20646,60868],[30022,60869],[60870,137069],[39386,60871],[21107,60872],60873,[37209,60874],[38529,60875],[37212,60876],60877,
+[37201,60878],[60879,167575],[25471,60880],[27338,60882],[22033,60883],[37262,60884],[30074,60885],[25221,60886],[29519,60888],[31856,60889],[60890,154657],60892,[30422,60894],[39837,60895],[20010,60896],[60897,134356],[33726,60898],[34882,60899],60900,[23626,60901],[27072,60902],0,0,[21023,60905],[24053,60906],[20174,60907],[27697,60908],[60909,131570],[20281,60910],[21660,60911],0,[21146,60913],[36226,60914],[13822,60915],0,[13811,60917],60918,[27474,60919],[37244,60920],[40869,60921],[39831,60922],
+[38958,60923],[39092,60924],[39610,60925],[40616,60926],[40580,60927],[31508,60929],60930,[27642,60931],[34840,60932],[32632,60933],60934,[22048,60935],[60936,173642],[36471,60937],[40787,60938],60939,[36308,60940],[36431,60941],[40476,60942],[36353,60943],[25218,60944],[60945,164733],[36392,60946],[36469,60947],[31443,60948],[31294,60950],[30936,60951],[27882,60952],[35431,60953],[30215,60954],[40742,60956],[27854,60957],[34774,60958],[30147,60959],[60960,172722],[30803,60961],[36108,60963],[29410,
+60964],[29553,60965],[35629,60966],[29442,60967],[29937,60968],[36075,60969],[60970,150203],[34351,60971],[24506,60972],[34976,60973],[17591,60974],60975,[60977,159237],60978,[35454,60979],[60980,140571],60981,[24829,60982],[30311,60983],[39639,60984],[40260,60985],[37742,58859,60986],[39823,60987],[34805,60988],60989,0,[36087,60991],[29484,60992],[38689,60993],[39856,60994],[13782,60995],[29362,60996],[19463,60997],[31825,60998],[39242,60999],[24921,61001],[19460,61002],[40598,61003],[24957,61004],
+61005,[22367,61006],[24943,61007],[25254,61008],[25145,61009],0,[14940,61011],[25058,61012],[21418,61013],[25444,61015],[26626,61016],[13778,61017],[23895,61018],[36826,61020],[61021,167481],61022,[20697,61023],[30982,61025],[21298,61026],[38456,61027],[61028,134971],[16485,61029],61030,[30718,61031],61032,[31938,61033],[61034,155418],[31962,61035],[31277,61036],[32870,61037],[32867,61038],[32077,61039],[29957,61040],[29938,61041],[35220,61042],[33306,61043],[26380,61044],[32866,61045],[61046,160902],
+[32859,61047],[29936,61048],[33027,61049],[30500,61050],[35209,61051],[61052,157644],[30035,61053],[34729,61055],[34766,61056],[33224,61057],[34700,61058],[35401,61059],[36013,61060],[35651,61061],[30507,61062],[29944,61063],[34010,61064],[27058,61066],[36262,61067],61068,[35241,58392,61069],0,[28089,61071],[34753,61072],[61073,147473],[29927,61074],[15835,61075],[29046,61076],[24740,57702,61077],[24988,61078],[15569,61079],0,[24695,61081],61082,[32625,61083],0,[24809,61086],[19326,61087],[57344,
+132423],[37595,57345],[57346,132575],[57347,147397],[34124,57348],[17077,57349],[29679,57350],[20917,57351],[13897,57352],[57353,149826],[57354,166372],[37700,57355],[57356,137691],[33518,57357],[57358,146632],[30780,57359],[26436,57360],[25311,57361],[57362,149811],[57363,166314],[57364,131744],[57365,158643],[57366,135941],[20395,57367],[57368,140525],[20488,57369],[57370,159017],[57371,162436],[57372,144896],[57373,150193],[57374,140563],0,[57376,131966],[24484,57377],[57378,131968],[57379,131911],
+[28379,57380],[57381,132127],20702,[20737,57383],[13434,57384],[20750,57385],[39020,57386],[14147,57387],[33814,57388],[57389,149924],[57390,132231],[20832,57391],[57392,144308],[20842,57393],[57394,134143],[57395,139516],[57396,131813],[57397,140592],[57398,132494],[57399,143923],[57400,137603],[23426,57401],[34685,57402],[57403,132531],[57404,146585],[20914,57405],[20920,57406],[40244,57407],[20937,57408],[20943,57409],[20945,57410],[15580,57411],[20947,57412],[57413,150182],[20915,57414],0,0,[20973,
+57417],[33741,57418],[26942,57419],[57420,145197],[24443,57421],[21003,57422],[21030,57423],[21052,57424],[21173,57425],[21079,57426],[21140,57427],[21177,57428],[21189,57429],[31765,57430],[34114,57431],[21216,57432],[34317,57433],[57434,158483],0,[57436,166622],[21833,57437],[28377,57438],[57439,147328],[57440,133460],[57441,147436],[21299,57442],0,[57444,134114],[27851,57445],[57446,136998],[26651,57447],[29653,57448],[24650,57449],[16042,57450],[14540,57451],[57452,136936],[29149,57453],[17570,
+57454],[21357,57455],[21364,57456],[57457,165547],[21374,57458],0,[57460,136598],[57461,136723],[30694,57462],[21395,57463],[57464,166555],[21408,57465],[21419,57466],[21422,57467],[29607,57468],[57469,153458],[16217,57470],[29596,57471],[21441,57472],[21445,57473],[27721,57474],[20041,57475],[22526,57476],[21465,57477],[15019,57478],[57479,134031],[21472,57480],[57481,147435],[57482,142755],[21494,57483],[57484,134263],[21523,57485],[28793,57486],[21803,57487],[26199,57488],[27995,57489],[21613,
+57490],[57491,158547],[57492,134516],[21853,57493],[21647,57494],[21668,57495],[18342,57496],[57497,136973],[57498,134877],[15796,57499],[57500,134477],[57501,166332],[57502,140952],[21831,57503],[19693,57504],[21551,57505],[29719,57506],[21894,57507],[21929,57508],0,[57510,137431],[57511,147514],[17746,57512],[57513,148533],[26291,57514],[57515,135348],[22071,57516],[26317,57517],[57518,144010],[26276,57519],0,[22093,57521],[22095,57522],[30961,57523],[22257,57524],[38791,57525],[21502,57526],[22272,
+57527],[22255,57528],[22253,57529],[57530,166758],[13859,57531],[57532,135759],[22342,57533],[57534,147877],[27758,57535],[28811,57536],[22338,57537],[14001,57538],[57539,158846],[22502,57540],[57541,136214],[22531,57542],[57543,136276],[57544,148323],[22566,57545],[57546,150517],0,[22698,57548],[13665,57549],[22752,57550],[22748,57551],[57552,135740],[22779,57553],[23551,57554],[22339,57555],[57556,172368],[57557,148088],[37843,57558],[13729,57559],[22815,57560],[26790,57561],[14019,57562],[28249,
+57563],[57564,136766],[23076,57565],0,[57567,136850],[34053,57568],[22985,57569],[57570,134478],[57571,158849],[57572,159018],[57573,137180],[23001,57574],[57575,137211],[57576,137138],[57577,159142],[28017,57578],[57579,137256],[57580,136917],[23033,57581],[57582,159301],[23211,57583],[23139,57584],[14054,57585],[57586,149929],0,[14088,57588],[23190,57589],[29797,57590],[23251,57591],[57592,159649],[57593,140628],[57595,137489],[14130,57596],[57597,136888],[24195,57598],[21200,57599],[23414,57600],
+[25992,57601],[23420,57602],[57603,162318],[16388,57604],[18525,57605],[57606,131588],[23509,57607],[57609,137780],[57610,154060],[57611,132517],[23539,57612],[23453,57613],[19728,57614],[23557,57615],[57616,138052],[23571,57617],[29646,57618],[23572,57619],[57620,138405],[57621,158504],[23625,57622],[18653,57623],[23685,57624],[23785,57625],[23791,57626],[23947,57627],[57628,138745],[57629,138807],[23824,57630],[23832,57631],[23878,57632],[57633,138916],[23738,57634],[24023,57635],[33532,57636],
+[14381,57637],[57638,149761],[57639,139337],[57640,139635],[33415,57641],[14390,57642],[15298,57643],[24110,57644],[27274,57645],0,57647,[57648,148668],[57649,134355],[21414,57650],[20151,57651],0,[21416,57653],[57654,137073],[24073,57655],57656,[57657,164994],[24313,57658],[24315,57659],[14496,57660],[24316,57661],[26686,57662],[37915,57663],[24333,57664],[57665,131521],[57666,194708],[15070,57667],[57669,135994],[24378,57670],[57671,157832],[57672,140240],[57674,140401],[24419,57675],[57677,159342],
+[24434,57678],[37696,57679],[57680,166454],[24487,57681],[23990,57682],[15711,57683],[57684,152144],[57685,139114],[57686,159992],[57687,140904],[37334,57688],[57689,131742],[57690,166441],[24625,57691],[26245,57692],[14691,57694],[15815,57695],[13881,57696],[22416,57697],[57698,141236],[31089,57699],[15936,57700],[24734,57701],0,0,[57704,149890],[57705,149903],[57706,162387],[29860,57707],[20705,57708],[23200,57709],[24932,57710],[24898,57712],[57713,194726],[57714,159442],[24961,57715],[20980,57716],
+[57717,132694],[24967,57718],[23466,57719],[57720,147383],[57721,141407],[25043,57722],[57723,166813],[57724,170333],[25040,57725],[14642,57726],[57727,141696],[57728,141505],[24611,57729],[24924,57730],[25886,57731],[25483,57732],[57733,131352],[25285,57734],[57735,137072],[25301,57736],[57737,142861],[25452,57738],[57739,149983],[14871,57740],[25656,57741],[25592,57742],[57743,136078],[57744,137212],[28554,57746],[57747,142902],0,[57750,153373],[25825,57751],[25829,57752],[38011,57753],[14950,57754],
+[25658,57755],[14935,57756],[25933,57757],[28438,57758],[57759,150056],[57760,150051],[25989,57761],[25965,57762],[25951,57763],0,[26037,57765],[57766,149824],[19255,57767],[26065,57768],[16600,57769],[57770,137257],57771,[26083,57772],[24543,57773],[57774,144384],[26136,57775],[57776,143863],[57777,143864],[26180,57778],[57779,143780],[57780,143781],[26187,57781],[57782,134773],[26215,57783],[57784,152038],[26227,57785],0,[57788,143921],[57789,165364],[57790,143816],[57791,152339],[30661,57792],
+[57793,141559],[39332,57794],[26370,57795],[57796,148380],[57797,150049],[27130,57799],[57800,145346],0,[26471,57802],[26466,57803],[57804,147917],[57805,168173],[26583,57806],[17641,57807],[26658,57808],[28240,57809],[37436,57810],[26625,57811],[57812,144358],[57813,159136],[26717,57814],[57815,144495],[27105,57816],[27147,57817],[57818,166623],[26995,57819],[26819,57820],[57821,144845],[26881,57822],[26880,57823],[14849,57825],[57826,144956],[15232,57827],[26540,57828],[26977,57829],[57830,166474],
+[17148,57831],[26934,57832],[27032,57833],[15265,57834],[57835,132041],[33635,57836],[20624,57837],[27129,57838],[57839,144985],[57840,139562],[27205,57841],[57842,145155],[27293,57843],[15347,57844],[26545,57845],[27336,57846],[57847,168348],[15373,57848],[27421,57849],[57850,133411],[24798,57851,60308],[27445,57852],[27508,57853],[57854,141261],[28341,57855],[57856,146139],0,[57858,137560],[14144,57859],[21537,57860],[57861,146266],[27617,57862],[57863,147196],[27612,57864],[27703,57865],[57866,
+140427],[57867,149745],[57868,158545],[27738,57869],[33318,57870],[27769,57871],[57872,146876],[17605,57873],[57874,146877],[57875,147876],[57876,149772],[57877,149760],[57878,146633],[14053,57879],[15595,57880],[57881,134450],[39811,57882],[57883,143865],[57884,140433],[32655,57885],[26679,57886],[57887,159013],[57888,159137],[57889,159211],[28054,57890],[27996,57891],[28284,57892],[28420,57893],[57894,149887],[57895,147589],[57896,159346],[34099,57897],[57898,159604],[20935,57899],0,0,[33838,57902],
+[57903,166689],0,[57905,146991],[29779,57906],[57907,147330],[31180,57908],[28239,57909],[23185,57910],[57911,143435],[28664,57912],[14093,57913],[28573,57914],[57915,146992],[28410,57916],[57917,136343],[57918,147517],[17749,57919],[37872,57920],[28484,57921],[28508,57922],[15694,57923],[28532,57924],[57925,168304],[15675,57926],[28575,57927],[57928,147780],[28627,57929],[57930,147601],[57931,147797],[57932,147513],[57933,147440],[57934,147380],[57935,147775],[20959,57936],[57937,147798],[57938,
+147799],[57939,147776],[57940,156125],[28747,57941],[28798,57942],[28839,57943],0,[28876,57945],[28885,57946],[28886,57947],[28895,57948],[16644,57949],[15848,57950],[29108,57951],[29078,57952],[57953,148087],[28971,57954],[28997,57955],[23176,57956],[29002,57957],0,[57960,148325],[29007,57961],[37730,57962],[57963,148161],[28972,57964],[57965,148570],[57966,150055],[57967,150050],[29114,57968],[57969,166888],[28861,57970],[29198,57971],[37954,57972],[29205,57973],[22801,57974],[37955,57975],[29220,
+57976],[37697,57977],[57978,153093],[29230,57979],[29248,57980],[57981,149876],[26813,57982],[29269,57983],[29271,57984],[15957,57985],[57986,143428],[26637,57987],[28477,57988],[29314,57989],0,[29483,57991],[57992,149539],[57993,165931],[18669,57994],[57995,165892],[29480,57996],[29486,57997],[29647,57998],[29610,57999],[58E3,134202],[58001,158254],[29641,58002],[29769,58003],[58004,147938],[58005,136935],[58006,150052],[26147,58007],[14021,58008],[58009,149943],[58010,149901],[58011,150011],[29687,
+58012],[29717,58013],[26883,58014],[58015,150054],[29753,58016],[16087,58018],0,[58020,141485],[29792,58021],[58022,167602],[29767,58023],[29668,58024],[29814,58025],[33721,58026],[29804,58027],[29812,58029],[37873,58030],[27180,58031],[29826,58032],[18771,58033],[58034,150156],[58035,147807],[58036,150137],[58037,166799],[23366,58038],[58039,166915],[58040,137374],[29896,58041],[58042,137608],[29966,58043],[29982,58045],[58046,167641],[58047,137803],[23511,58048],[58049,167596],[37765,58050],[30029,
+58051],[30026,58052],[30055,58053],[30062,58054],[58055,151426],[16132,58056],[58057,150803],[30094,58058],[29789,58059],[30110,58060],[30132,58061],[30210,58062],[30252,58063],[30289,58064],[30287,58065],[30319,58066],58067,[58068,156661],[30352,58069],[33263,58070],[14328,58071],[58072,157969],[58073,157966],[30369,58074],[30373,58075],[30391,58076],[30412,58077],[58078,159647],[33890,58079],[58080,151709],[58081,151933],[58082,138780],[30494,58083],[30502,58084],[30528,58085],[25775,58086],[58087,
+152096],[30552,58088],[58089,144044],[30639,58090],[58091,166244],[58092,166248],[58093,136897],[30708,58094],0,[26826,58098],[30895,58099],[30919,58100],[30931,58101],[38565,58102],[31022,58103],[58104,153056],[30935,58105],[31028,58106],[30897,58107],[58108,161292],[36792,58109],[34948,58110],[58113,140828],[31110,58114],[35072,58115],[26882,58116],[31104,58117],[58118,153687],[31133,58119],[58120,162617],[31036,58121],[31145,58122],[28202,58123],[58124,160038],[16040,58125],[31174,58126],[58127,
+168205],[31188,58128],0,[21797,62526],0,[62528,134210],[62529,134421],[62530,151851],[21904,62531],[62532,142534],[14828,62533],[62534,131905],[36422,62535],[62536,150968],[62537,169189],0,[62539,164030],[30586,62540],[62541,142392],[14900,62542],[18389,62543],[62544,164189],[62545,158194],[62546,151018],[25821,62547],[62548,134524],[62549,135092],[62550,134357],0,[25741,62552],[36478,62553],[62554,134806],0,[62556,135012],[62557,142505],[62558,164438],[62559,148691],0,[62561,134470],[62562,170573],
+[62563,164073],[18420,62564],[62565,151207],[62566,142530],[39602,62567],[14951,62568],[62569,169460],[16365,62570],[13574,62571],[62572,152263],[62573,169940],0,[62575,142660],[40302,62576],[38933,62577],0,[17369,62579],0,[25780,62581],[21731,62582],0,[62584,142282],0,[14843,62586],0,[62588,157402],[62589,157462],[62590,162208],[25834,62591],[62592,151634],[62593,134211],[36456,62594],0,[62596,166732],[62597,132913],0,[18443,62599],[62600,131497],[16378,62601],[22643,62602],[62603,142733],0,[62605,
+148936],[62606,132348],[62607,155799],[62608,134988],0,[21881,62610],0,[17338,62612],0,[19124,62614],[62615,141926],[62616,135325],[33194,62617],[39157,62618],[62619,134556],[25465,62620],[14846,62621],[62622,141173],[36288,62623],[22177,62624],[25724,62625],[15939,62626],0,[62628,173569],[62629,134665],[62630,142031],0,0,[62633,135368],[62634,145858],[14738,62635],[14854,62636],[62637,164507],[13688,62638],[62639,155209],[62640,139463],0,0,[62643,142514],[62644,169760],[13500,62645],[27709,62646],
+[62647,151099],0,0,[62650,161140],[62651,142987],[62652,139784],[62653,173659],[62654,167117],[62655,134778],[62656,134196],[62683,161337],[62684,142286],[62687,142417],[14872,62689],[62691,135367],[62693,173618],[62695,167122],[62696,167321],[62697,167114],[38314,62698],0,[62706,161630],[28992,62708],0,[20822,62385],0,[20616,62487],0,[13459,62489],[20870,62491],[24130,63037],[20997,62495],[21031,62436],[21113,62497],0,[13651,62504],[21442,62505],[21343,62715],0,[21823,62520],0,[21976,59986],[13789,
+62722],[22049,63067],0,[22100,60044],[60148,135291],0,[60153,135379],0,[61095,135934],0,0,[14265,60104],[23745,61099],[23829,63066],[23894,63030],[14392,63036],[20097,62477],[24253,63038],[14612,63042],[25017,63050],[25232,63054],[25368,63056],[25690,63063],[25745,62381],[33133,62709],[33156,59922],[33171,59924],[26624,63080],[15292,63093],[29327,60517],[29389,59781],0,[29497,59785],[30018,59811],[30172,59817],[16320,59818],[60278,151205],[16343,59820],0,30336,[30348,59824,151388],[16552,59845],[30777,
+59846],[16643,59855],[31377,59863],[31771,59876],[31981,59884],[32659,62658],[32686,59892],0,[33535,59936],[22623,59981],[34482,59960],0,[34699,59963],[35143,59969],0,[35369,59972],0,[36465,59988],[60484,164233],[36528,59990],0,[37214,62443],[37260,62441],[39182,60051],[39196,60054],0,0,[39809,60066],[40384,60080],[40339,60078],[40620,60085],[19857,60540],0,37818,[40571,60084],[28809,63148],[29512,59788],0,[31129,59858],[36791,59997],0,[39234,60056],{s:193},8364,{s:4},[12443,63518],[12444,63519],
+[11904,63520],{f:5,c:62211},[62216,131340],62217,[62218,131281],[62219,131277],{f:2,c:62220},[62222,131275],[62223,139240],62224,[62225,131274],{f:4,c:62226},[62230,131342],{f:2,c:62231},{f:2,c:62776},[62778,138177],[62779,194680],[12205,38737,62780],[62781,131206],[20059,62782],[20155,62783],[13630,62784],[23587,62785],[24401,62786],[24516,62787],[14586,62788],[25164,62789],[25909,62790],[27514,62791],[27701,62792],[27706,62793],[28780,62794],[29227,62795],[20012,62796],[29357,62797],[62798,149737],
+[32594,62799],[31035,62800],[31993,62801],[32595,62802],[62803,156266],[13505,62804],[62806,156491],[32770,62807],[32896,62808],[62809,157202],[62810,158033],[21341,62811],[34916,62812],[35265,62813],[62814,161970],[35744,62815],[36125,62816],[38021,62817],[38264,62818],[38271,62819],[38376,62820],[62821,167439],[38886,62822],[39029,62823],[39118,62824],[39134,62825],[39267,62826],[62827,17E4],[40060,62828],[40479,62829],[40644,62830],[27503,62831],[62832,63751],[20023,62833],[62834,131207],[38429,
+62835],[25143,62836],[38050,62837],[11908,63521],[11910,63522],[11911,63523],[11912,63524],[11914,63525],[11916,63526],[11917,63527],[11925,63528],[11932,63529],[11941,63531],[11943,63532],[11946,63533],[11948,63534],[11950,63535],[11958,63536],[11964,63537],[11966,63538],[11978,63540],[11980,63541],[11981,63542],[11983,63543],[11990,63544],[11991,63545],[11998,63546],[62368,172969],[62369,135493],[25866,62371],[20029,62374],[28381,62375],[40270,62376],[37343,62377],[62380,161589],[20250,62382],[20264,
+62383],[20392,62384],[20852,62386],[20892,62387],[20964,62388],[21153,62389],[21160,62390],[21307,62391],[21326,62392],[21457,62393],[21464,62394],[22242,62395],[22768,62396],[22788,62397],[22791,62398],[22834,62399],[22836,62400],[23398,62401],[23454,62402],[23455,62403],[23706,62404],[24198,62405],[24635,62406],[25993,62407],[26622,62408],[26628,62409],[26725,62410],[27982,62411],[28860,62412],[30005,62413],[32420,62414],[32428,62415],[32442,62416],[32455,62417],[32463,62418],[32479,62419],[32518,
+62420],[32567,62421],[33402,62422],[33487,62423],[33647,62424],[35270,62425],[35774,62426],[35810,62427],[36710,62428],[36711,62429],[36718,62430],[29713,62431],[31996,62432],[32205,62433],[26950,62434],[31433,62435],[30904,62442],[32956,62444],[36107,62446],[33014,62447],[62448,133607],[32927,62451],[40647,62452],[19661,62453],[40393,62454],[40460,62455],[19518,62456],[62457,171510],[62458,159758],[40458,62459],[62460,172339],[13761,62461],[28314,62463],[33342,62464],[29977,62465],[18705,62467],
+[39532,62468],[39567,62469],[40857,62470],[31111,62471],[62472,164972],[62473,138698],[62474,132560],[62475,142054],[20004,62476],[20096,62478],[20103,62479],[20159,62480],[20203,62481],[20279,62482],[13388,62483],[20413,62484],[15944,62485],[20483,62486],[13437,62488],[13477,62490],[22789,62492],[20955,62493],[20988,62494],[20105,62496],[21136,62498],[21287,62499],[13767,62500],[21417,62501],[13649,62502],[21424,62503],[21539,62506],[13677,62507],[13682,62508],[13953,62509],[21651,62510],[21667,
+62511],[21684,62512],[21689,62513],[21712,62514],[21743,62515],[21784,62516],[21795,62517],[21800,62518],[13720,62519],[13733,62521],[13759,62522],[21975,62523],[13765,62524],[62525,163204],[16467,62538],[62551,135412],[62555,134155],[62574,161992],[62580,155813],[62583,142668],[62585,135287],[62587,135279],[62595,139681],[62609,134550],[16571,62611],[62631,142537],[22098,62641],[62642,134961],[62657,157724],[62659,135375],[62660,141315],[62661,141625],[13819,62662],[62663,152035],[62664,134796],
+[62665,135053],[62666,134826],[16275,62667],[62668,134960],[62669,134471],[62670,135503],[62671,134732],[62673,134827],[62674,134057],[62675,134472],[62676,135360],[62677,135485],[16377,62678],[62679,140950],[25650,62680],[62681,135085],[62682,144372],[62685,134526],[62686,134527],[62688,142421],[62690,134808],[62692,134958],[62694,158544],[21708,62699],[33476,62700],[21945,62701],[62703,171715],[39974,62704],[39606,62705],[62707,142830],[33004,62710],[23580,62711],[62712,157042],[33076,62713],[14231,
+62714],[62716,164029],[37302,62717],[62718,134906],[62719,134671],[62720,134775],[62721,134907],[62723,151019],[13833,62724],[62725,134358],[22191,62726],[62727,141237],[62728,135369],[62729,134672],[62730,134776],[62731,135288],[62732,135496],[62733,164359],[62734,136277],[62735,134777],[62736,151120],[62737,142756],[23124,62738],[62739,135197],[62740,135198],[62741,135413],[62742,135414],[22428,62743],[62744,134673],[62745,161428],[62746,164557],[62747,135093],[62748,134779],[62749,151934],[14083,
+62750],[62751,135094],[62752,135552],[62753,152280],[62754,172733],[62755,149978],[62756,137274],[62757,147831],[62758,164476],[22681,62759],[21096,62760],[13850,62761],[62762,153405],[31666,62763],[23400,62764],[18432,62765],[19244,62766],[40743,62767],[18919,62768],[39967,62769],[39821,62770],[62771,154484],[62772,143677],[22011,62773],[13810,62774],[22153,62775],[23870,63028],[23880,63029],[15868,63031],[14351,63032],[23972,63033],[23993,63034],[14368,63035],[24357,63039],[24451,63040],[14600,
+63041],[14655,63043],[14669,63044],[24791,63045],[24893,63046],[23781,63047],[14729,63048],[25015,63049],[25039,63051],[14776,63052],[25132,63053],[25317,63055],[14840,63057],[22193,63058],[14851,63059],[25570,63060],[25595,63061],[25607,63062],[14923,63064],[25792,63065],[40863,63068],[14999,63069],[25990,63070],[15037,63071],[26111,63072],[26195,63073],[15090,63074],[26258,63075],[15138,63076],[26390,63077],[15170,63078],[26532,63079],[15192,63081],[26698,63082],[26756,63083],[15218,63084],[15217,
+63085],[15227,63086],[26889,63087],[26947,63088],[29276,63089],[26980,63090],[27039,63091],[27013,63092],[27094,63094],[15325,63095],[27237,63096],[27252,63097],[27249,63098],[27266,63099],[15340,63100],[27289,63101],[15346,63102],[27307,63103],[27317,63104],[27348,63105],[27382,63106],[27521,63107],[27585,63108],[27626,63109],[27765,63110],[27818,63111],[15563,63112],[27906,63113],[27910,63114],[27942,63115],[28033,63116],[15599,63117],[28068,63118],[28081,63119],[28181,63120],[28184,63121],[28201,
+63122],[28294,63123],[63124,166336],[28347,63125],[28386,63126],[28378,63127],[40831,63128],[28392,63129],[28393,63130],[28452,63131],[28468,63132],[15686,63133],[63134,147265],[28545,63135],[28606,63136],[15722,63137],[15733,63138],[29111,63139],[23705,63140],[15754,63141],[28716,63142],[15761,63143],[28752,63144],[28756,63145],[28783,63146],[28799,63147],[63149,131877],[17345,63150],[13809,63151],[63152,134872],[13902,58134],[15789,58172],[58173,154725],[26237,58183],[31860,58188],[29837,58197],
+[32402,58215],[17667,58232],[58260,151480],[58270,133901],[58277,158474],[13438,58311],[58317,143087],[58325,146613],[58343,159385],[34673,58364],[25537,58385],[30583,58387],[35210,58390],[58406,147343],[35660,58415],[58440,150729],[18730,58464],[58471,172052],[58472,165564],[58473,165121],[15088,58490],[28815,58511],[58529,140922],[58637,158120],[58646,148043],[26760,58662],[58664,139611],[40802,58702],[37830,58793],[58802,131967],[37734,58888],[37519,58901],[34324,58954],[58986,173147],[16784,59010],
+[26511,59045],[26654,59048],[14435,59051],[59077,149996],[15129,59128],[33942,59176],[59241,149858],[14818,59254],[33920,59259],[17262,59328],[38769,59402],[39323,59427],[18733,59499],[28439,59703],[59704,160009],[28838,59746],[59752,150095],[32357,59753],[23855,59755],[15859,59756],[59758,150109],[59759,137183],[32164,59760],[33830,59761],[21637,59762],[59763,146170],[59765,131604],[22398,59766],[59767,133333],[59768,132633],[16357,59769],[59770,139166],[59771,172726],[28675,59772],[59773,168283],
+[23920,59774],[29583,59775],[59777,166489],[59778,168992],[20424,59779],[32743,59780],[29456,59782],[29496,59784],[29505,59787],[16041,59789],[29173,59792],[59793,149746],[29665,59794],[16074,59796],[16081,59798],[29721,59801],[29726,59802],[29727,59803],[16098,59804],[16112,59805],[16116,59806],[16122,59807],[29907,59808],[16142,59809],[16211,59810],[30061,59812],[30066,59813],[30093,59814],[16252,59815],[30152,59816],[30285,59819],[30324,59821],[16348,59822],[30330,59823],[29064,59825],[22051,59826],
+[35200,59827],[16413,59829],[30531,59830],[16441,59831],[16453,59833],[13787,59834],[30616,59835],[16490,59836],[16495,59837],[30654,59839],[30667,59840],[30744,59842],[30748,59844],[30791,59847],[30801,59848],[30822,59849],[33864,59850],[59851,152885],[31027,59852],[31026,59854],[16649,59856],[31121,59857],[31238,59860],[16743,59862],[16818,59864],[31420,59865],[33401,59866],[16836,59867],[31439,59868],[31451,59869],[16847,59870],[31586,59872],[31596,59873],[31611,59874],[31762,59875],[16992,59877],
+[17018,59878],[31867,59879],[31900,59880],[17036,59881],[31928,59882],[17044,59883],[36755,59885],[28864,59886],[59887,134351],[32207,59888],[32212,59889],[32208,59890],[32253,59891],[32692,59893],[29343,59894],[17303,59895],[32800,59896],[32805,59897],[32814,59899],[32817,59900],[32852,59901],[22452,59903],[28832,59904],[32951,59905],[33001,59906],[17389,59907],[33036,59908],[33038,59910],[33042,59911],[33044,59913],[17409,59914],[15161,59915],[33110,59916],[33113,59917],[33114,59918],[17427,59919],
+[33148,59921],[17445,59923],[17453,59925],[33189,59926],[22511,59927],[33217,59928],[33252,59929],[33364,59930],[17551,59931],[33398,59933],[33482,59934],[33496,59935],[17584,59937],[33623,59938],[38505,59939],[33797,59941],[28917,59942],[33892,59943],[33928,59945],[17668,59946],[33982,59947],[34017,59948],[34040,59949],[34064,59950],[34104,59951],[34130,59952],[17723,59953],[34159,59954],[34160,59955],[34272,59956],[17783,59957],[34418,59958],[34450,59959],[34543,59961],[38469,59962],[17926,59964],
+[17943,59965],[34990,59966],[35071,59967],[35108,59968],[35217,59970],[59971,162151],[35384,59973],[35476,59974],[35508,59975],[35921,59976],[36052,59977],[36082,59978],[36124,59979],[18328,59980],[36291,59982],[18413,59983],[36410,59985],[22356,59987],[22005,59989],[18487,59991],[36558,59992],[36578,59993],[36580,59994],[36589,59995],[36594,59996],[36801,59998],[36810,59999],[36812,6E4],[36915,60001],[18605,60003],[39136,60004],[37395,60005],[18718,60006],[37416,60007],[37464,60008],[37483,60009],
+[37553,60010],[37550,60011],[37567,60012],[37603,60013],[37611,60014],[37619,60015],[37620,60016],[37629,60017],[37699,60018],[37764,60019],[37805,60020],[18757,60021],[18769,60022],[37911,60024],[37917,60026],[37933,60027],[37950,60028],[18794,60029],[37972,60030],[38009,60031],[38189,60032],[38306,60033],[18855,60034],[38388,60035],[38451,60036],[18917,60037],[18980,60039],[38720,60040],[18997,60041],[38834,60042],[38850,60043],[19172,60045],[39097,60047],[19225,60048],[39153,60049],[22596,60050],
+[39193,60052],[39223,60055],[39261,60057],[39266,60058],[19312,60059],[39365,60060],[19357,60061],[39484,60062],[39695,60063],[39785,60065],[39901,60067],[39921,60068],[39924,60069],[19565,60070],[39968,60071],[14191,60072],[60073,138178],[40265,60074],[40702,60076],[22096,60077],[40381,60079],[40444,60081],[38134,60082],[36790,60083],[40625,60086],[40637,60087],[40646,60088],[38108,60089],[40674,60090],[40689,60091],[40696,60092],[40772,60094],[60095,131220],[60096,131767],[60097,132E3],[38083,60099],
+[60101,132311],[38081,60103],[60105,132565],[60106,132629],[60107,132726],[60108,136890],[22359,60109],[29043,60110],[60111,133826],[60112,133837],[60113,134079],[60115,194619],[60116,134091],[21662,60117],[60118,134139],[60119,134203],[60120,134227],[60121,134245],[60122,134268],[60124,134285],[60126,134325],[60127,134365],[60128,134381],[60129,134511],[60130,134578],[60131,134600],[60135,134660],[60136,134670],[60137,134871],[60138,135056],[60139,134957],[60140,134771],[60142,135100],[60144,135260],
+[60145,135247],[60146,135286],[60149,135304],[60150,135318],[13895,60151],[60152,135359],[60154,135471],[60155,135483],[21348,60156],[60158,135907],[60159,136053],[60160,135990],[60162,136567],[60163,136729],[60164,137155],[60165,137159],[28859,60167],[60168,137261],[60169,137578],[60170,137773],[60171,137797],[60172,138282],[60173,138352],[60174,138412],[60175,138952],[60177,138965],[60178,139029],[29080,60179],[60181,139333],[27113,60182],[14024,60183],[60184,139900],[60185,140247],[60186,140282],
+[60187,141098],[60188,141425],[60189,141647],[60191,141671],[60192,141715],[60193,142037],[60195,142056],[60197,142094],[60199,142143],[60202,142412],[60204,142472],[60205,142519],[60206,154600],[60207,142600],[60208,142610],[60209,142775],[60210,142741],[60211,142914],[60212,143220],[60213,143308],[60214,143411],[60215,143462],[60216,144159],[60217,144350],[60222,144743],[60223,144883],[60227,144922],[60228,145174],[22709,60231],[60234,146087],[60237,146961],[60238,147129],[60243,147737],[60245,
+148206],[60246,148237],[60248,148276],[60249,148374],[60258,148484],[60259,148694],[22408,60260],[60261,149108],[60263,149295],[60271,149522],[60272,149755],[60273,150037],[60275,150208],[22885,60277],[60279,151430],[60282,151596],[22335,60284],[60286,152217],[60287,152601],[60291,152646],[60292,152686],[60296,152895],[60298,152926],[60300,152930],[60301,152934],[60302,153543],[60304,153693],[60309,153859],[60312,154286],[60313,154505],[60314,154630],[22433,60316],[29009,60317],[60319,155906],[60322,
+156082],[60325,156674],[60326,156746],[60330,156804],[60334,156808],[60336,156946],[60338,157119],[60339,157365],[22201,60347],[60349,157436],[13848,60355],[60357,157593],[60358,157806],[60360,157790],[60362,157895],[60366,157990],[60368,158009],[60371,158202],[60373,158253],[60378,158260],[60379,158555],[60383,158621],[60385,158884],[60388,159150],[60392,159819],[60393,160205],[60395,160384],[60396,160389],[60399,160395],[60401,160486],[38047,60404],[60405,160848],[14009,60416],[60424,161740],[60425,
+161880],[22230,60426],[60435,162269],[60441,162301],[60442,162314],[60443,162571],[60444,163174],[60448,163849],[60459,163875],[60463,163912],[60466,163971],[60479,163984],[60480,164084],[60481,164142],[60483,164175],[60485,164271],[60486,164378],[60487,164614],[60488,164655],[60489,164746],[60491,164968],[60492,165546],[25574,60494],[60495,166230],[60498,166328],[60500,166375],[60502,166376],[60503,166726],[60504,166868],[60506,166921],[60508,167877],[60509,168172],[60511,168208],[60512,168252],
+[15863,60513],[60514,168286],[60515,150218],[36816,60516],[60519,169191],[60521,169392],[60522,169400],[60523,169778],[60524,170193],[60525,170313],[60526,170346],[60527,170435],[60528,170536],[60529,170766],[60530,171354],[60531,171419],[32415,60532],[60533,171768],[60534,171811],[19620,60535],[38215,60536],[60537,172691],[29090,60538],[60539,172799],[60542,173515],[19868,60543],[60544,134300],[36798,60545],[36794,60547],[60548,140464],[36793,60549],[60550,150163],[20202,60555],[60557,166700],[36480,
+60560],[60561,137205],[60563,166764],[60564,166809],[60566,157359],[60568,161365],[60570,153141],[60571,153942],[20122,60572],[60573,155265],[60576,134765],[60579,147080],[60580,150686],[60583,137206],[60584,137339],[60587,154698],[60589,152337],[15814,60590],[60596,155352],[19996,60600],[60601,135146],[60602,134473],[60603,145082],[60638,151880],[21982,60644],[34694,60672],[60676,135361],[60679,149254],[23440,60680],[60682,157843],[60684,141044],[60685,163119],[60686,147875],[60687,163187],[60688,
+159440],[60689,160438],[60691,135641],[60693,146684],[60694,173737],[60695,134828],[60698,138402],[60700,151490],[60702,135147],[60706,142752],[60710,135148],[60711,134666],[60714,135149],[60717,135559],[19994,60721],[19972,60722],[23309,60724],[13996,60727],[21373,60729],[13989,60730],[22682,60732],[60733,150382],[22442,60736],[60737,154261],[60738,133497],[60741,140389],[60746,146686],[60747,171824],[60749,151465],[60750,169374],[60753,146870],[60755,157619],[60756,145184],[60759,147191],[60760,
+146988],[60785,143578],[60789,135849],[22439,60790],[60791,149859],[60794,159918],[60801,137068],[60806,160100],[60809,159010],[60810,150242],[39963,60837],[60838,149822],[15878,60846],[60881,159011],[60887,132092],[60891,146685],[60893,149785],[22394,60904],[21722,60912],[29050,60928],[60949,150135],[60955,166490],[60962,194624],[60976,137275],[61E3,155993],[61014,144373],[61019,166850],[61024,138566],[61054,159441],[13877,61065],[61084,166701],[21024,61088],[15384,61089],[61090,146631],[61091,155351],
+[61092,161366],[61093,152881],[61094,137540],[61096,170243],[61097,159196],[61098,159917],[61100,156077],[61101,166415],[61102,145015],[61103,131310],[61104,157766],[61105,151310],[17762,61106],[23327,61107],[61108,156492],[40784,61109],[40614,61110],[61111,156267],[20962,57415],[21314,57416],[26285,57520],[22620,57547],[21843,57566],[15749,57594],[24928,57608],[18606,57668],[38845,57676],[57693,137335],[24755,57703],[33828,57711],[38932,57748],[57749,147596],[57764,143486],[57787,138813],[15147,
+57798],[15666,57824],[57857,132021],[28801,57944],[23708,57959],[58017,132547],[14128,58028],[58096,136054],[58097,150034],[58111,166699],[58112,155779],[256,62233],[193,62234],[461,62235],[192,62236],[274,62237],[201,62238],[282,62239],[200,62240],[332,62241],[211,62242],[465,62243],[210,62244],62245,[7870,62246],62247,[7872,62248],[202,62249],[257,62250],[225,62251],[462,62252],[224,62253],[593,62254],[275,62255],[233,62256],[283,62257],[232,62258],[299,62259],[237,62260],[464,62261],[236,62262],
+[333,62263],[243,62264],[466,62265],[242,62266],[363,62267],[250,62268],[468,62269],[249,62270],[470,62271],[472,62272],[474,62273],[476,62274],[252,62275],62276,[7871,62277],62278,[7873,62279],[234,62280],[609,62281],[643,63551],[592,63552],[603,63553],[596,63554],[629,63555],[339,63556],[248,63557],[331,63558],[650,63559],[618,63560],{f:2,c:62282},[11933,63530],[11974,63539],[12003,63547],20539,28158,[62841,171123],62842,[15817,62843],34959,[62845,147790],28791,23797,[19232,62848],[62849,152013],
+[13657,62850],[62851,154928],24866,[62853,166450],36775,37366,29073,26393,29626,[62859,144001],[62860,172295],[15499,62861],[62862,137600],[19216,62863],30948,29698,20910,[62867,165647],[16393,62868],27235,[62870,172730],[16931,62871],34319,31274,[62875,170311],[62876,166634],38741,28749,21284,[62880,139390],37876,30425,[62883,166371],62884,30685,20131,20464,20668,20015,20247,62891,21556,32139,22674,22736,[62896,138678],24210,24217,24514,[62900,141074],25995,[62902,144377],26905,27203,[62905,146531],
+27903,29184,[62909,148741],29580,[16091,62911],[62912,150035],23317,29881,35715,[62916,154788],[62917,153237],31379,31724,31939,32364,33528,34199,62924,34960,62926,36537,62928,36815,34143,39392,37409,62933,[62934,167353],[62935,136255],[16497,62936],[17058,62937],23066,39016,26475,[17014,62944],22333,34262,[62948,149883],33471,[62950,160013],[19585,62951],[62952,159092],23931,[62954,158485],[62955,159678],{f:2,c:62956},23446,62959,32347],"Adobe-GB1":[{f:95,c:32},{f:3,c:12288},[183,12539],713,711,
+168,12291,12293,8212,65374,8214,[8230,8943],{f:2,c:8216},{f:2,c:8220},{f:2,c:12308},{f:8,c:12296},{f:2,c:12310},{f:2,c:12304},177,215,247,8758,{f:2,c:8743},8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,{f:2,c:8814},{f:2,c:8804},8734,8757,8756,9794,9792,176,{f:2,c:8242},8451,65284,164,{f:2,c:65504},8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,{f:2,c:8592},8595,12307,{f:20,c:9352},{f:20,c:9332},{f:10,c:9312},{f:10,
+c:12832},{f:12,c:8544},{f:3,c:65281},65509,{f:89,c:65285},65507,{f:83,c:12353},{f:86,c:12449},{f:17,c:913},{f:7,c:931},{f:17,c:945},{f:7,c:963},{f:7,c:59277},{f:2,c:65077},{f:2,c:65081},{f:2,c:65087},{f:2,c:65085},{f:4,c:65089},{f:2,c:59284},{f:2,c:65083},{f:2,c:65079},65073,59286,{f:2,c:65075},{f:6,c:1040},1025,{f:32,c:1046},1105,{f:26,c:1078},257,225,462,224,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,234,593,7743,324,328,505,609,{f:37,c:12549},0,{f:76,c:9472},
+{s:126},21834,38463,22467,25384,21710,21769,21696,30353,30284,34108,30702,33406,30861,29233,38552,38797,27688,23433,20474,25353,26263,23736,33018,26696,32942,26114,30414,20985,25942,29100,32753,34948,20658,22885,25034,28595,33453,25420,25170,21485,21543,31494,[12043,20843],30116,24052,25300,36299,38774,25226,32793,22365,38712,32610,29240,[12137,30333],26575,30334,25670,20336,36133,25308,31255,26001,29677,25644,25203,33324,39041,26495,29256,25198,25292,20276,29923,21322,21150,32458,37030,24110,26758,
+27036,33152,32465,26834,30917,34444,38225,20621,35876,33502,32990,21253,35090,21093,34180,38649,20445,22561,39281,23453,25265,25253,26292,35961,40077,29190,26479,30865,24754,21329,21271,36744,32972,36125,38049,20493,29384,22791,24811,28953,34987,22868,33519,26412,31528,23849,32503,29997,27893,36454,36856,36924,[12240,40763],[12112,27604],37145,31508,24444,30887,34006,34109,27605,27609,27606,24065,24199,30201,38381,25949,24330,24517,36767,22721,33218,36991,38491,38829,36793,32534,36140,25153,20415,
+21464,21342,{f:2,c:36776},36779,36941,26631,24426,33176,34920,40150,24971,21035,30250,24428,25996,28626,28392,23486,25672,20853,20912,26564,19993,31177,39292,28851,30149,24182,29627,33760,25773,25320,38069,27874,21338,21187,25615,38082,31636,20271,24091,33334,33046,33162,28196,27850,39539,25429,[12056,21340],21754,34917,22496,19981,24067,27493,31807,37096,24598,25830,29468,35009,26448,25165,36130,30572,36393,37319,24425,33756,34081,39184,21442,34453,27531,24813,24808,28799,33485,33329,20179,27815,
+34255,25805,31961,27133,26361,33609,21397,31574,20391,20876,27979,23618,36461,25554,21449,33580,33590,26597,30900,25661,23519,23700,24046,35815,25286,26612,35962,25600,25530,34633,39307,35863,32544,38130,20135,38416,39076,26124,29462,22330,23581,24120,38271,20607,32928,[12058,21378],25950,30021,21809,20513,36229,25220,38046,26397,22066,28526,24034,21557,28818,36710,25199,25764,25507,24443,28552,37108,[12162,33251],[12192,36784],23576,26216,24561,27785,38472,36225,34924,25745,31216,22478,27225,25104,
+21576,20056,31243,24809,28548,35802,25215,36894,39563,31204,21507,30196,25345,21273,27744,36831,24347,39536,32827,40831,20360,23610,[12186,36196],32709,26021,28861,20805,20914,[12173,34411],23815,23456,25277,37228,30068,36364,31264,24833,31609,20167,32504,30597,19985,33261,21021,20986,27249,21416,36487,38148,38607,28353,38500,26970,30784,20648,30679,25616,35302,22788,25571,24029,31359,26941,20256,33337,21912,20018,30126,31383,24162,24202,38383,21019,21561,28810,25462,38180,22402,26149,26943,37255,
+21767,28147,32431,34850,25139,32496,30133,33576,30913,38604,36766,24904,29943,35789,27492,21050,36176,27425,32874,33905,22257,21254,20174,19995,20945,31895,37259,31751,20419,36479,31713,31388,25703,23828,20652,33030,30209,31929,28140,32736,26449,23384,[12072,23544],30923,25774,25619,25514,25387,38169,25645,36798,31572,30249,25171,[12068,22823],21574,[12109,27513],20643,25140,24102,27526,20195,36151,34955,24453,36910,24608,32829,25285,20025,21333,37112,25528,32966,26086,27694,20294,24814,28129,35806,
+24377,34507,24403,25377,20826,33633,26723,[12049,20992],25443,36424,20498,23707,31095,23548,21040,31291,24764,36947,30423,24503,24471,30340,36460,28783,30331,31561,30634,20979,37011,22564,20302,28404,36842,25932,31515,29380,28068,32735,23265,25269,24213,22320,33922,31532,24093,24351,36882,32532,39072,25474,28359,30872,28857,20856,38747,22443,30005,20291,30008,24215,24806,22880,28096,27583,30857,21500,38613,20939,20993,25481,21514,38035,35843,36300,29241,30879,34678,36845,35853,21472,19969,30447,21486,
+38025,39030,[12237,40718],38189,23450,35746,20002,19996,20908,33891,25026,21160,26635,20375,24683,20923,27934,20828,25238,[12099,26007],38497,[12182,35910],36887,30168,37117,30563,27602,29322,29420,35835,22581,30585,36172,26460,38208,32922,24230,28193,22930,31471,30701,38203,27573,26029,32526,22534,20817,38431,23545,22697,21544,36466,25958,39039,22244,38045,30462,36929,25479,21702,22810,22842,22427,36530,26421,36346,33333,21057,24816,22549,34558,23784,40517,20420,39069,35769,23077,24694,21380,25212,
+36943,37122,39295,24681,[12157,32780],[12041,20799],[12159,32819],23572,39285,27953,[12038,20108],36144,21457,32602,31567,20240,20047,38400,27861,29648,34281,24070,30058,32763,27146,30718,38034,32321,20961,28902,21453,36820,33539,36137,29359,39277,27867,22346,33459,[12101,26041],32938,25151,38450,22952,20223,35775,32442,25918,33778,[12206,38750],21857,39134,32933,21290,35837,21536,32954,24223,27832,36153,33452,37210,21545,27675,20998,32439,22367,28954,27774,31881,22859,20221,24575,24868,31914,20016,
+23553,26539,34562,23792,38155,39118,30127,28925,36898,20911,32541,35773,22857,20964,20315,21542,22827,25975,32932,23413,25206,25282,36752,24133,27679,31526,20239,20440,26381,28014,28074,31119,34993,24343,29995,25242,36741,20463,37340,26023,33071,33105,24220,33104,36212,21103,35206,36171,22797,20613,20184,[12201,38428],[12119,29238],33145,36127,23500,35747,38468,22919,32538,21648,22134,22030,35813,25913,27010,38041,30422,28297,[12082,24178],[12130,29976],26438,26577,31487,32925,36214,24863,31174,25954,
+36195,20872,21018,38050,32568,32923,32434,23703,28207,26464,31705,30347,[12220,39640],33167,32660,31957,25630,38224,31295,21578,21733,27468,25601,[12093,25096],40509,33011,30105,21106,[12208,38761],33883,26684,34532,38401,38548,38124,20010,21508,32473,26681,36319,32789,26356,24218,32697,22466,32831,26775,[12079,24037],25915,21151,24685,40858,20379,36524,20844,23467,[12088,24339],24041,27742,25329,36129,20849,38057,21246,27807,33503,29399,22434,26500,36141,22815,36764,33735,21653,31629,20272,27837,
+23396,22993,[12238,40723],21476,34506,[12219,39592],[12181,35895],32929,25925,39038,22266,38599,21038,[12128,29916],21072,23521,25346,35074,20054,25296,24618,26874,20851,23448,20896,35266,31649,39302,32592,24815,28748,36143,20809,[12084,24191],36891,29808,35268,22317,30789,24402,40863,38394,36712,[12225,39740],35809,30328,26690,26588,36330,36149,21053,36746,28378,26829,38149,37101,22269,26524,35065,36807,21704,39608,23401,28023,27686,20133,23475,39559,37219,25E3,37039,38889,21547,28085,23506,20989,
+21898,32597,32752,25788,25421,26097,25022,24717,28938,27735,27721,22831,26477,33322,22741,22158,35946,27627,37085,22909,32791,21495,28009,21621,21917,33655,33743,26680,[12146,31166],21644,20309,21512,30418,35977,38402,27827,28088,36203,35088,40548,36154,22079,[12234,40657],30165,24456,29408,24680,21756,20136,27178,34913,24658,36720,21700,28888,34425,40511,27946,23439,24344,32418,21897,20399,29492,21564,21402,20505,21518,21628,20046,24573,29786,22774,33899,32993,34676,29392,31946,28246,24359,34382,
+21804,25252,20114,27818,25143,33457,21719,21326,29502,28369,30011,21010,21270,35805,27088,24458,24576,28142,22351,27426,29615,26707,36824,32531,25442,24739,21796,30186,35938,28949,28067,23462,24187,33618,24908,40644,30970,34647,31783,30343,20976,24822,29004,26179,24140,24653,35854,28784,25381,36745,24509,24674,34516,22238,27585,24724,24935,21321,24800,26214,36159,31229,20250,28905,27719,35763,35826,32472,33636,26127,23130,39746,27985,28151,35905,27963,20249,[12117,28779],33719,25110,24785,38669,36135,
+31096,20987,22334,22522,26426,30072,31293,31215,31637,32908,39269,36857,28608,35749,40481,23020,32489,32521,21513,26497,26840,36753,31821,38598,21450,24613,30142,27762,21363,23241,32423,25380,[12047,20960],33034,[12080,24049],34015,25216,20864,23395,20238,31085,21058,24760,27982,23492,23490,35745,35760,26082,24524,38469,22931,32487,32426,22025,26551,22841,20339,23478,21152,33626,39050,36158,30002,38078,20551,31292,20215,26550,39550,23233,27516,30417,22362,23574,31546,38388,29006,20860,32937,33392,
+22904,32516,33575,26816,26604,30897,30839,25315,25441,31616,20461,21098,20943,33616,27099,37492,36341,36145,35265,38190,31661,20214,20581,33328,21073,39279,28176,28293,28071,24314,20725,23004,23558,27974,27743,30086,33931,26728,22870,35762,21280,37233,38477,34121,26898,30977,28966,33014,20132,37066,27975,39556,23047,22204,25605,38128,30699,20389,33050,29409,[12179,35282],39290,32564,32478,21119,25945,37237,36735,36739,21483,31382,25581,25509,30342,31224,34903,38454,25130,21163,33410,26708,26480,25463,
+30571,31469,27905,32467,35299,22992,25106,34249,33445,30028,20511,20171,30117,35819,23626,[12081,24062],31563,[12100,26020],[12198,37329],20170,27941,35167,32039,38182,20165,35880,36827,38771,26187,31105,36817,28908,28024,23613,21170,33606,20834,33550,30555,26230,40120,20140,24778,31934,31923,32463,20117,35686,26223,39048,38745,22659,25964,38236,24452,30153,38742,31455,31454,20928,28847,31384,25578,31350,32416,29590,[12210,38893],20037,28792,20061,37202,21417,25937,26087,[12165,33276],33285,21646,
+23601,30106,38816,25304,29401,30141,23621,39545,33738,23616,21632,30697,20030,27822,32858,25298,25454,24040,20855,36317,36382,38191,20465,21477,24807,28844,21095,25424,40515,23071,20518,30519,21367,32482,25733,25899,25225,25496,20500,29237,35273,20915,35776,32477,22343,33740,38055,20891,21531,23803,20426,31459,27994,37089,39567,21888,21654,21345,21679,24320,25577,26999,20975,24936,21002,22570,21208,22350,30733,30475,24247,24951,31968,25179,25239,20130,28821,32771,25335,28900,38752,22391,33499,26607,
+26869,30933,39063,31185,22771,21683,21487,28212,20811,21051,23458,35838,32943,21827,22438,24691,22353,21549,31354,24656,23380,25511,25248,[12061,21475],25187,23495,26543,21741,31391,33510,37239,24211,35044,22840,22446,25358,36328,33007,22359,31607,20393,24555,23485,27454,21281,31568,29378,26694,30719,30518,26103,20917,20111,30420,23743,31397,33909,22862,39745,20608,39304,24871,28291,22372,26118,25414,22256,25324,25193,24275,38420,22403,25289,21895,34593,33098,36771,21862,33713,26469,36182,34013,23146,
+26639,25318,31726,38417,20848,28572,35888,25597,35272,25042,32518,28866,28389,29701,27028,29436,24266,37070,26391,28010,25438,21171,29282,[12156,32769],20332,23013,37226,28889,28061,21202,20048,38647,38253,34174,30922,32047,20769,22418,25794,32907,31867,27882,26865,26974,20919,21400,26792,29313,40654,31729,29432,31163,28435,29702,26446,[12197,37324],40100,31036,33673,33620,21519,26647,20029,21385,21169,30782,21382,21033,20616,20363,20432,30178,[12148,31435],31890,27813,[12202,38582],[12050,21147],
+29827,21737,20457,32852,33714,36830,38256,24265,24604,28063,24088,25947,33080,38142,24651,28860,32451,31918,20937,26753,31921,33391,20004,36742,37327,26238,20142,35845,25769,32842,20698,30103,29134,23525,36797,28518,20102,25730,38243,24278,26009,21015,35010,28872,21155,29454,29747,26519,30967,38678,20020,37051,40158,28107,20955,36161,21533,25294,29618,33777,38646,40836,38083,20278,32666,20940,28789,38517,23725,39046,21478,20196,28316,29705,27060,30827,39311,30041,21016,30244,27969,26611,20845,40857,
+32843,21657,31548,31423,38534,22404,25314,38471,27004,23044,25602,31699,28431,38475,33446,21346,39045,24208,28809,25523,21348,34383,40065,40595,30860,38706,36335,36162,[12229,40575],28510,31108,24405,38470,25134,39540,21525,38109,20387,26053,23653,23649,32533,34385,27695,24459,29575,28388,32511,23782,25371,23402,28390,21365,20081,25504,30053,25249,36718,20262,20177,27814,32438,35770,33821,34746,32599,36923,38179,31657,39585,35064,33853,27931,39558,32476,22920,[12231,40635],29595,30721,34434,39532,
+39554,22043,21527,22475,20080,40614,21334,36808,33033,30610,39314,34542,28385,34067,26364,24930,28459,35881,33426,33579,30450,27667,24537,33725,29483,33541,38170,[12113,27611],[12141,30683],38086,21359,33538,20882,24125,35980,36152,20040,29611,26522,26757,37238,38665,29028,27809,30473,23186,38209,27599,32654,26151,23504,22969,23194,38376,38391,20204,33804,33945,27308,30431,38192,29467,26790,23391,30511,37274,38753,31964,36855,35868,24357,[12150,31859],31192,35269,27852,34588,23494,24130,26825,30496,
+32501,20885,20813,21193,23081,32517,[12207,38754],33495,25551,30596,34256,31186,28218,24217,22937,34065,28781,27665,25279,[12139,30399],25935,24751,38397,26126,34719,40483,38125,21517,21629,35884,{f:2,c:25720},34321,27169,33180,30952,25705,39764,25273,26411,33707,22696,40664,27819,28448,23518,38476,35851,29279,26576,25287,29281,20137,22982,27597,22675,26286,24149,21215,24917,[12106,26408],[12140,30446],30566,29287,31302,25343,21738,21584,38048,37027,23068,32435,27670,20035,22902,32784,22856,21335,
+30007,38590,22218,25376,33041,24700,38393,28118,21602,39297,20869,23273,33021,22958,38675,20522,27877,23612,25311,20320,21311,33147,36870,28346,34091,25288,24180,30910,25781,25467,24565,23064,37247,40479,23615,25423,32834,23421,21870,38218,38221,28037,24744,26592,29406,20957,23425,25319,27870,[12124,29275],25197,38062,32445,33043,27987,20892,24324,22900,21162,24594,[12069,22899],26262,34384,30111,25386,25062,31983,35834,21734,27431,40485,27572,34261,21589,20598,27812,21866,36276,29228,24085,24597,
+29750,25293,25490,29260,24472,28227,27966,25856,28504,30424,30928,30460,30036,21028,21467,20051,24222,26049,32810,32982,25243,21638,21032,28846,34957,36305,27873,21624,32986,22521,35060,36180,38506,37197,20329,27803,21943,30406,30768,25256,28921,28558,24429,34028,26842,30844,31735,33192,26379,40527,25447,30896,22383,30738,38713,25209,25259,21128,29749,27607,21860,33086,30130,[12138,30382],21305,30174,20731,23617,35692,31687,20559,[12122,29255],39575,39128,28418,29922,31080,25735,30629,25340,39057,
+36139,21697,32856,20050,22378,33529,33805,24179,20973,29942,35780,23631,22369,27900,39047,23110,30772,39748,36843,31893,21078,25169,38138,20166,33670,33889,33769,33970,22484,26420,22275,26222,28006,35889,26333,28689,26399,27450,26646,25114,22971,19971,20932,28422,26578,27791,20854,26827,22855,27495,30054,23822,33040,40784,26071,31048,31041,39569,36215,23682,20062,20225,21551,22865,30732,22120,[12115,27668],36804,24323,27773,27875,35755,25488,24688,27965,29301,25190,38030,38085,21315,36801,31614,20191,
+35878,20094,40660,38065,38067,21069,28508,36963,27973,35892,22545,23884,[12107,27424],27465,26538,21595,33108,32652,22681,34103,24378,25250,27207,38201,25970,24708,26725,30631,20052,20392,24039,38808,25772,32728,23789,20431,31373,20999,33540,19988,24623,31363,38054,20405,20146,31206,29748,21220,33465,25810,31165,23517,27777,38738,36731,27682,20542,21375,28165,25806,26228,27696,24773,39031,35831,24198,29756,31351,31179,19992,37041,29699,27714,22234,37195,27845,36235,21306,34502,26354,36527,23624,39537,
+28192,21462,23094,40843,36259,21435,22280,39079,26435,37275,27849,20840,30154,25331,[12125,29356],21048,21149,32570,28820,30264,21364,40522,27063,30830,38592,35033,32676,28982,29123,20873,26579,29924,22756,25880,22199,35753,39286,25200,32469,24825,28909,22764,20161,[12040,20154],24525,38887,20219,35748,20995,22922,32427,25172,20173,[12103,26085],25102,33592,33993,33635,34701,29076,28342,23481,32466,20887,25545,26580,[12161,32905],33593,34837,20754,23418,22914,36785,20083,27741,[12042,20837],35109,
+36719,38446,34122,29790,38160,38384,28070,33509,24369,25746,27922,33832,33134,40131,22622,36187,19977,21441,20254,25955,26705,21971,20007,25620,39578,25195,23234,29791,[12170,33394],28073,26862,20711,33678,30722,26432,21049,27801,32433,20667,21861,29022,31579,26194,29642,33515,26441,[12077,23665],21024,29053,34923,38378,38485,25797,36193,33203,21892,27733,25159,32558,22674,20260,21830,36175,26188,19978,23578,35059,26786,25422,31245,28903,33421,21242,38902,23569,21736,37045,32461,22882,36170,34503,
+[12166,33292],33293,36198,25668,23556,24913,28041,31038,35774,30775,30003,21627,20280,[12189,36523],28145,23072,32453,31070,27784,23457,23158,29978,32958,24910,28183,22768,[12131,29983],29989,29298,21319,32499,30465,30427,21097,32988,22307,24072,22833,29422,26045,28287,35799,[12075,23608],34417,[12055,21313],[12143,30707],25342,26102,20160,[12215,39135],34432,23454,35782,21490,[12142,30690],20351,23630,39542,22987,24335,[12144,31034],[12064,22763],19990,26623,20107,25325,35475,36893,21183,26159,21980,
+22124,36866,20181,20365,37322,39280,[12114,27663],24066,24643,23460,35270,35797,25910,[12095,25163],[12216,39318],23432,23551,25480,21806,21463,30246,20861,34092,26530,26803,27530,25234,36755,21460,33298,28113,30095,20070,36174,23408,29087,34223,26257,26329,32626,34560,[12233,40653],[12239,40736],23646,26415,36848,26641,26463,25101,31446,22661,24246,25968,28465,24661,21047,32781,25684,34928,29993,24069,26643,25332,38684,21452,29245,35841,[12116,27700],30561,31246,21550,30636,39034,33308,35828,30805,
+26388,28865,26031,25749,22070,24605,31169,21496,19997,27515,32902,23546,21987,22235,20282,20284,39282,24051,26494,32824,24578,39042,36865,23435,35772,35829,25628,33368,25822,22013,33487,37221,20439,32032,36895,31903,20723,22609,28335,23487,35785,32899,37240,33948,31639,34429,38539,38543,32485,39635,30862,23681,31319,36930,38567,31071,23385,25439,31499,34001,26797,21766,32553,29712,32034,38145,25152,22604,20182,23427,22905,22612,29549,25374,36427,36367,32974,33492,25260,21488,27888,37214,22826,24577,
+27760,22349,25674,36138,30251,28393,22363,27264,30192,28525,35885,35848,22374,27631,34962,30899,25506,21497,28845,27748,22616,25642,22530,26848,33179,21776,31958,20504,36538,28108,36255,28907,25487,28059,28372,32486,33796,26691,36867,28120,38518,35752,22871,29305,34276,33150,30140,35466,26799,21076,36386,38161,25552,39064,36420,21884,20307,26367,22159,24789,28053,21059,23625,22825,28155,22635,[12133,3E4],29980,24684,33300,33094,25361,26465,36834,30522,36339,36148,38081,24086,21381,21548,28867,27712,
+24311,20572,20141,24237,25402,33351,36890,26704,37230,30643,21516,38108,24420,31461,26742,25413,31570,32479,30171,20599,25237,22836,36879,20984,31171,31361,22270,24466,36884,28034,23648,[12063,22303],21520,20820,28237,22242,25512,39059,33151,34581,35114,36864,21534,23663,33216,25302,25176,33073,40501,38464,39534,39548,26925,22949,25299,21822,25366,21703,34521,27964,23043,[12129,29926],34972,27498,22806,35916,24367,28286,29609,39037,20024,28919,23436,30871,25405,26202,30358,24779,23451,23113,19975,
+33109,27754,29579,20129,26505,[12153,32593],24448,26106,26395,24536,22916,23041,24013,24494,21361,38886,36829,26693,22260,21807,24799,20026,28493,32500,33479,33806,22996,20255,20266,23614,32428,26410,34074,21619,30031,32963,21890,39759,20301,28205,35859,23561,24944,21355,30239,28201,34442,[12098,25991],38395,32441,21563,31283,32010,38382,21985,32705,29934,25373,34583,28065,31389,25105,26017,21351,25569,27779,24043,21596,38056,20044,27745,35820,23627,[12102,26080],33436,26791,21566,21556,[12111,27595],
+27494,20116,25410,21320,33310,20237,20398,22366,25098,38654,26212,29289,21247,21153,24735,35823,26132,29081,26512,35199,30802,30717,26224,22075,21560,38177,29306,31232,24687,24076,24713,33181,[12067,22805],24796,29060,28911,28330,27728,29312,27268,34989,24109,20064,23219,21916,38115,27927,31995,38553,25103,32454,30606,34430,21283,38686,36758,26247,23777,20384,29421,19979,21414,22799,21523,25472,38184,20808,20185,40092,32420,21688,36132,34900,33335,38386,28046,24358,23244,26174,38505,29616,29486,21439,
+33146,39301,32673,23466,38519,38480,32447,30456,21410,38262,[12217,39321],31665,35140,28248,20065,32724,31077,35814,24819,21709,20139,39033,24055,27233,20687,21521,35937,33831,30813,38660,21066,21742,22179,38144,28040,23477,28102,26195,[12073,23567],23389,26657,32918,21880,31505,25928,26964,20123,27463,34638,38795,21327,25375,25658,37034,26012,32961,35856,20889,26800,21368,34809,25032,27844,27899,35874,23633,34218,33455,38156,27427,[12191,36763],26032,24571,[12092,24515],20449,34885,26143,33125,29481,
+24826,20852,21009,22411,24418,37026,[12175,34892],37266,24184,26447,24615,22995,20804,20982,33016,21256,27769,38596,29066,20241,20462,32670,26429,21957,38152,31168,34966,32483,22687,25100,38656,34394,22040,39035,24464,35768,33988,37207,21465,26093,24207,30044,24676,32110,23167,32490,32493,36713,21927,23459,24748,26059,[12126,29572],36873,30307,30505,32474,38772,34203,23398,[12147,31348],38634,[12174,34880],21195,29071,24490,26092,35810,23547,39535,24033,27529,27739,35757,35759,36874,36805,21387,25276,
+40486,40493,21568,20011,33469,[12123,29273],34460,23830,34905,28079,38597,21713,20122,35766,28937,21693,38409,28895,28153,30416,20005,30740,34578,23721,24310,[12180,35328],39068,38414,28814,27839,22852,25513,30524,34893,28436,33395,22576,29141,21388,30746,38593,21761,24422,28976,23476,35866,39564,27523,22830,40495,31207,26472,25196,20335,30113,[12154,32650],27915,38451,27687,20208,30162,20859,26679,28478,36992,33136,22934,29814,25671,23591,36965,31377,35875,23002,21676,33280,33647,35201,32768,26928,
+22094,32822,29239,37326,20918,20063,39029,25494,19994,21494,26355,33099,22812,28082,[12032,19968],22777,21307,25558,38129,20381,20234,[12176,34915],39056,22839,36951,31227,20202,33008,30097,27778,23452,23016,24413,26885,34433,20506,24050,[12036,20057],30691,20197,33402,25233,26131,[12194,37009],23673,20159,24441,33222,36920,32900,30123,20134,35028,24847,27589,24518,20041,30410,28322,35811,35758,35850,35793,24322,32764,32716,32462,33589,33643,22240,27575,[12211,38899],38452,23035,21535,38134,28139,
+23493,39278,23609,24341,38544,21360,33521,27185,23156,40560,24212,32552,33721,{f:2,c:33828},33639,34631,36814,36194,30408,24433,39062,30828,26144,21727,25317,20323,33219,30152,24248,38605,36362,34553,21647,27891,28044,27704,24703,21191,[12132,29992],24189,20248,24736,24551,23588,30001,37038,38080,29369,27833,28216,[12195,37193],26377,21451,21491,20305,37321,35825,[12060,21448],24188,36802,28132,20110,30402,27014,34398,24858,33286,20313,20446,36926,40060,24841,28189,28180,38533,20104,23089,[12204,
+38632],19982,23679,31161,23431,35821,[12155,32701],[12127,29577],22495,33419,37057,21505,36935,21947,23786,24481,24840,27442,29425,32946,35465,28020,23507,35029,39044,35947,39533,40499,28170,20900,20803,22435,34945,21407,25588,36757,22253,21592,22278,29503,28304,32536,36828,33489,24895,24616,38498,[12104,26352],32422,36234,36291,38053,23731,31908,[12105,26376],24742,38405,32792,20113,37095,21248,38504,20801,36816,34164,37213,26197,38901,23381,21277,30776,26434,26685,21705,28798,23472,36733,20877,
+22312,21681,25874,26242,36190,36163,33039,33900,36973,31967,20991,34299,26531,26089,28577,34468,36481,22122,36896,30338,28790,29157,36131,25321,21017,27901,36156,24590,22686,24974,26366,36192,25166,21939,28195,26413,36711,38113,38392,30504,26629,27048,21643,20045,28856,35784,25688,25995,23429,31364,20538,23528,30651,27617,35449,31896,27838,30415,26025,36759,23853,23637,34360,26632,21344,25112,31449,28251,32509,27167,31456,24432,28467,24352,25484,28072,26454,19976,24080,36134,20183,32960,30260,38556,
+25307,26157,25214,27836,36213,29031,32617,20806,32903,21484,36974,25240,21746,34544,36761,32773,38167,34071,36825,27993,29645,26015,30495,29956,30759,33275,36126,38024,20390,26517,30137,35786,38663,25391,38215,38453,33976,25379,30529,24449,29424,20105,24596,25972,25327,27491,25919,24103,30151,37073,35777,33437,26525,[12096,25903],21553,34584,30693,32930,33026,27713,20043,32455,32844,30452,26893,27542,25191,20540,20356,22336,25351,[12108,27490],36286,21482,26088,32440,24535,25370,25527,[12164,33267],
+33268,32622,24092,23769,21046,26234,31209,31258,36136,28825,30164,28382,27835,31378,20013,30405,24544,38047,34935,32456,31181,32959,37325,20210,20247,[12168,33311],21608,24030,27954,35788,31909,36724,32920,24090,21650,30385,23449,26172,39588,29664,26666,34523,26417,29482,35832,35803,36880,[12149,31481],28891,29038,25284,30633,22065,20027,33879,26609,21161,34496,36142,38136,31569,20303,27880,31069,39547,25235,[12118,29226],25341,19987,30742,36716,25776,36186,31686,26729,24196,35013,22918,25758,22766,
+29366,26894,38181,36861,36184,22368,32512,35846,20934,25417,25305,21331,26700,29730,33537,37196,21828,30528,28796,27978,20857,21672,36164,23039,28363,28100,23388,32043,20180,31869,28371,[12070,23376],[12163,33258],28173,23383,39683,26837,36394,23447,32508,24635,32437,37049,[12187,36208],22863,25549,31199,[12188,36275],21330,26063,31062,35781,38459,32452,38075,32386,22068,37257,26368,32618,23562,36981,26152,24038,20304,26590,20570,20316,22352,24231,20109,19980,20800,19984,24319,21317,19989,20120,19998,
+[12224,39730],23404,22121,[12033,20008],31162,[12035,20031],[12052,21269],20039,22829,[12120,29243],21358,27664,22239,32996,39319,27603,30590,40727,[12034,20022],20127,40720,20060,20073,20115,33416,23387,21868,22031,20164,21389,21405,21411,21413,21422,38757,36189,[12053,21274],21493,21286,21294,21310,36188,21350,21347,20994,21E3,21006,21037,21043,{f:2,c:21055},21068,21086,21089,21084,33967,21117,21122,21121,21136,21139,[12044,20866],32596,20155,20163,20169,20162,20200,20193,20203,20190,20251,20211,
+20258,20324,20213,20261,20263,20233,20267,20318,20327,25912,20314,20317,20319,20311,20274,20285,20342,20340,20369,20361,20355,20367,20350,20347,20394,20348,20396,20372,20454,20456,20458,20421,20442,20451,20444,20433,20447,20472,20521,20556,20467,20524,20495,20526,20525,20478,20508,20492,20517,20520,20606,20547,20565,20552,20558,20588,20603,20645,20647,20649,20666,20694,20742,20717,20716,20710,20718,20743,20747,20189,27709,20312,20325,20430,[12245,40864],27718,31860,20846,24061,40649,39320,20865,22804,
+[12051,21241],21261,35335,21264,20971,22809,20821,[12039,20128],20822,20147,34926,34980,20149,33044,35026,31104,23348,34819,32696,[12046,20907],20913,20925,20924,20935,[12045,20886],20898,20901,35744,{f:2,c:35750},35754,{f:2,c:35764},35767,{f:2,c:35778},35787,35791,35790,{f:3,c:35794},35798,{f:2,c:35800},35804,{f:2,c:35807},35812,{f:2,c:35816},35822,35824,35827,35830,35833,35836,{f:2,c:35839},35842,35844,35847,35852,35855,{f:2,c:35857},{f:3,c:35860},35865,35867,35864,35869,{f:3,c:35871},35877,35879,
+{f:2,c:35882},{f:2,c:35886},{f:2,c:35890},{f:2,c:35893},[12057,21353],21370,38429,38434,38433,38449,38442,38461,38460,38466,38473,38484,38495,38503,38508,38514,38516,38536,38541,38551,38576,37015,37019,37021,37017,37036,37025,37044,37043,37046,37050,37048,37040,37071,37061,37054,37072,37060,37063,37075,37094,37090,37084,37079,37083,37099,37103,37118,37124,37154,37150,37155,37169,37167,37177,37187,37190,21005,22850,21154,{f:2,c:21164},21182,21759,21200,21206,21232,21471,29166,30669,[12085,24308],[12048,
+20981],20988,[12223,39727],[12059,21430],24321,30042,24047,22348,22441,22433,22654,22716,22725,22737,22313,22316,22314,22323,22329,{f:2,c:22318},22364,22331,22338,22377,22405,22379,22406,22396,22395,22376,22381,22390,22387,22445,22436,22412,22450,22479,22439,22452,22419,22432,22485,22488,22490,22489,22482,22456,22516,22511,22520,22500,22493,22539,22541,22525,22509,22528,22558,22553,22596,22560,22629,22636,22657,22665,22682,22656,39336,40729,25087,33401,33405,33407,33423,33418,33448,33412,33422,33425,
+33431,33433,33451,33464,33470,33456,33480,33482,33507,33432,33463,33454,{f:2,c:33483},33473,33449,33460,33441,33450,33439,33476,33486,33444,33505,33545,33527,33508,33551,33543,33500,33524,33490,33496,33548,33531,33491,33553,33562,33542,{f:2,c:33556},33504,33493,33564,33617,{f:2,c:33627},33544,33682,33596,33588,33585,33691,33630,33583,33615,33607,33603,33631,33600,33559,33632,33581,33594,33587,33638,33637,33640,33563,33641,33644,33642,{f:2,c:33645},33712,33656,{f:2,c:33715},33696,33706,33683,33692,
+33669,33660,33718,33705,33661,33720,33659,33688,33694,33704,33722,33724,33729,33793,33765,33752,22535,33816,33803,33757,33789,33750,33820,33848,33809,33798,33748,33759,33807,33795,{f:2,c:33784},33770,33733,33728,33830,33776,33761,33884,33873,33882,33881,33907,{f:2,c:33927},33914,33929,33912,33852,33862,33897,33910,33932,33934,33841,33901,33985,33997,34E3,34022,33981,34003,33994,33983,33978,34016,33953,33977,33972,33943,34021,34019,34060,29965,34104,34032,34105,34079,34106,34134,34107,34047,34044,
+34137,34120,34152,34148,34142,34170,30626,34115,34162,34171,34212,34216,34183,34191,34169,34222,34204,34181,34233,34231,34224,34259,34241,34268,34303,34343,34309,34345,34326,34364,[12086,24318],24328,22844,22849,32823,22869,22874,22872,21263,[12074,23586],23589,23596,23604,25164,25194,25247,25275,25290,25306,25303,25326,25378,25334,25401,25419,25411,25517,25590,25457,25466,25486,25524,25453,25516,25482,25449,25518,25532,25586,25592,25568,25599,25540,25566,25550,25682,25542,25534,25669,25665,25611,
+25627,25632,25612,25638,25633,25694,25732,25709,25750,25722,{f:2,c:25783},25753,25786,25792,25808,25815,25828,25826,25865,25893,25902,[12087,24331],24530,29977,24337,21343,21489,21501,21481,21480,21499,21522,21526,21510,21579,{f:3,c:21586},21590,21571,21537,21591,21593,21539,21554,21634,21652,21623,21617,21604,{f:2,c:21658},21636,21622,21606,21661,21712,21677,21698,21684,21714,21671,21670,{f:2,c:21715},21618,21667,21717,21691,21695,21708,{f:2,c:21721},21724,{f:2,c:21673},21668,21725,21711,21726,21787,
+21735,21792,21757,21780,21747,{f:2,c:21794},21775,21777,21799,21802,21863,21903,21941,21833,21869,21825,21845,21823,21840,21820,21815,21846,{f:3,c:21877},21811,21808,21852,21899,21970,21891,21937,21945,21896,21889,21919,21886,21974,21905,21883,21983,{f:2,c:21949},21908,21913,21994,22007,21961,22047,21969,{f:2,c:21995},21972,21990,21981,21956,21999,21989,{f:2,c:22002},{f:2,c:21964},21992,22005,21988,36756,22046,22024,22028,22017,22052,22051,22014,22016,22055,22061,22104,22073,22103,22060,22093,22114,
+22105,22108,22092,22100,22150,22116,22129,22123,{f:2,c:22139},22149,22163,22191,22228,[12062,22231],22237,22241,22261,22251,22265,22271,22276,22282,22281,22300,24079,24089,24084,24081,24113,{f:2,c:24123},24119,24132,24148,24155,24158,24161,23692,23674,23693,23696,23702,23688,{f:2,c:23704},23697,23706,23708,23733,23714,23741,23724,23723,23729,23715,23745,23735,23748,23762,23780,23755,23781,{f:2,c:23810},23847,23846,23854,23844,23838,23814,23835,23896,23870,23860,23869,23916,23899,23919,23901,23915,
+23883,23882,23913,23924,23938,23961,23965,35955,23991,24005,[12091,24435],24439,24450,24455,24457,24460,24469,24473,24476,24488,24493,24501,24508,34914,[12090,24417],29357,29360,29364,{f:2,c:29367},29379,29377,29390,29389,29394,29416,29423,29417,29426,29428,29431,29441,29427,29443,{f:2,c:29434},29463,29459,29473,29450,29470,29469,29461,29474,29497,29477,29484,29496,29489,29520,29517,29527,29536,29548,29551,29566,[12167,33307],22821,39143,22820,[12065,22786],39267,{f:6,c:39271},39284,39287,39293,39296,
+39300,39303,39306,39309,{f:2,c:39312},{f:3,c:39315},24192,24209,24203,24214,24229,24224,24249,24245,24254,24243,36179,24274,24273,24283,24296,24298,33210,24516,24521,24534,24527,24579,24558,24580,24545,24548,24574,{f:2,c:24581},24554,24557,24568,24601,24629,24614,24603,24591,24589,24617,24619,24586,24639,24609,{f:2,c:24696},24699,24698,24642,24682,24701,24726,24730,24749,24733,24707,24722,24716,24731,24812,24763,24753,24797,24792,24774,24794,24756,24864,24870,24853,24867,24820,24832,24846,24875,24906,
+24949,25004,24980,24999,25015,25044,25077,24541,38579,38377,38379,38385,38387,{f:2,c:38389},38396,38398,{f:2,c:38403},38406,38408,{f:4,c:38410},38415,38418,{f:3,c:38421},{f:2,c:38425},20012,[12121,29247],25109,27701,27732,27740,27722,27811,27781,27792,27796,27788,{f:2,c:27752},27764,27766,27782,27817,27856,27860,27821,{f:2,c:27895},27889,27863,27826,27872,27862,27898,27883,27886,27825,27859,27887,27902,27961,27943,27916,27971,27976,27911,27908,27929,27918,27947,27981,27950,27957,27930,27983,27986,
+27988,27955,28049,28015,28062,28064,27998,{f:2,c:28051},27996,28E3,28028,28003,28186,28103,28101,28126,28174,28095,28128,28177,28134,28125,28121,28182,28075,28172,28078,28203,28270,28238,28267,28338,28255,28294,{f:2,c:28243},28210,28197,28228,28383,28337,28312,28384,28461,28386,28325,28327,28349,28347,28343,28375,28340,28367,28303,28354,28319,28514,{f:2,c:28486},28452,28437,28409,28463,28470,28491,28532,28458,28425,28457,28553,28557,28556,28536,28530,28540,28538,28625,28617,28583,28601,28598,28610,
+28641,28654,28638,28640,28655,28698,28707,28699,28729,28725,28751,28766,[12071,23424],23428,23445,23443,23461,23480,29999,39582,25652,23524,23534,35120,23536,36423,35591,36790,36819,36821,36837,36846,36836,36841,36838,36851,36840,36869,36868,36875,36902,36881,36877,36886,36897,{f:2,c:36917},36909,36911,36932,{f:2,c:36945},36944,36968,36952,36962,36955,26297,36980,36989,36994,37E3,36995,37003,[12089,24400],24407,24406,24408,23611,21675,23632,23641,23409,23651,23654,32700,24362,24361,24365,33396,24380,
+39739,[12076,23662],22913,22915,22925,{f:2,c:22953},22947,22935,22986,22955,22942,22948,22994,22962,22959,22999,22974,{f:2,c:23045},23005,23048,23011,23E3,23033,23052,23049,23090,23092,23057,23075,23059,23104,23143,23114,23125,23100,23138,23157,33004,23210,23195,23159,23162,23230,23275,23218,23250,23252,23224,23264,23267,23281,23254,23270,23256,23260,23305,23319,23318,23346,23351,23360,23573,23580,23386,23397,23411,23377,23379,23394,39541,{f:2,c:39543},39546,39551,39549,{f:2,c:39552},39557,39560,
+39562,39568,{f:2,c:39570},39574,39576,{f:3,c:39579},{f:2,c:39583},{f:2,c:39586},39589,39591,32415,32417,32419,32421,{f:2,c:32424},32429,32432,32446,{f:3,c:32448},32457,{f:2,c:32459},32464,32468,32471,32475,{f:2,c:32480},32488,32491,{f:2,c:32494},{f:2,c:32497},32525,32502,{f:2,c:32506},32510,{f:3,c:32513},{f:2,c:32519},{f:2,c:32523},32527,{f:2,c:32529},32535,32537,32540,32539,32543,{f:7,c:32545},{f:4,c:32554},{f:5,c:32559},32565,[12083,24186],30079,[12078,24027],30014,37013,29582,29585,29614,29602,
+29599,29647,29634,29649,29623,29619,29632,29641,29640,29669,29657,39036,29706,29673,29671,29662,29626,29682,29711,29738,29787,29734,29733,29736,29744,29742,29740,29723,29722,29761,29788,29783,29781,29785,29815,29805,29822,29852,29838,{f:2,c:29824},29831,29835,29854,{f:2,c:29864},29840,29863,29906,29882,{f:3,c:38890},26444,26451,26462,26440,26473,26533,26503,26474,26483,26520,26535,26485,26536,26526,26541,26507,26487,26492,26608,26633,26584,26634,26601,26544,26636,26585,26549,26586,26547,26589,26624,
+26563,26552,26594,26638,26561,26621,{f:2,c:26674},{f:2,c:26720},26702,26722,26692,26724,26755,26653,26709,26726,26689,26727,26688,26686,26698,26697,26665,26805,26767,26740,26743,26771,26731,26818,26990,26876,{f:2,c:26911},26873,26916,26864,26891,26881,26967,26851,26896,26993,26937,26976,26946,26973,27012,26987,27008,27032,27E3,26932,27084,{f:2,c:27015},27086,27017,26982,26979,27001,27035,27047,27067,27051,27053,27092,27057,27073,27082,27103,27029,27104,27021,27135,27183,27117,{f:2,c:27159},27237,
+27122,27204,27198,27296,27216,27227,27189,27278,27257,27197,27176,27224,27260,27281,27280,27305,27287,27307,29495,29522,{f:2,c:27521},27527,27524,{f:2,c:27538},27533,{f:2,c:27546},27553,27562,36715,36717,{f:3,c:36721},{f:2,c:36725},36728,36727,{f:2,c:36729},36732,36734,{f:2,c:36737},36740,36743,36747,{f:3,c:36749},36760,36762,36558,25099,25111,25115,25119,25122,25121,25125,25124,25132,33255,29935,29940,29951,29967,29969,29971,[12097,25908],{f:3,c:26094},26122,26137,26482,26115,26133,26112,28805,26359,
+26141,26164,26161,26166,26165,32774,26207,26196,26177,26191,26198,26209,26199,26231,26244,26252,26279,26269,26302,{f:2,c:26331},26342,26345,{f:2,c:36146},36150,36155,36157,36160,{f:2,c:36165},{f:2,c:36168},36167,36173,36181,36185,35271,{f:3,c:35274},{f:4,c:35278},29294,29343,29277,29286,29295,{f:2,c:29310},29316,29323,29325,29327,29330,25352,25394,25520,25663,25816,32772,27626,27635,27645,27637,27641,27653,27655,27654,27661,27669,{f:3,c:27672},27681,27689,27684,27690,27698,25909,25941,25963,29261,
+29266,29270,29232,34402,21014,32927,32924,32915,32956,26378,32957,32945,32939,32941,32948,32951,{f:4,c:32999},32987,32962,32964,32985,32973,32983,26384,32989,33003,33009,33012,33005,{f:2,c:33037},33010,33020,26389,33042,35930,33078,33054,33068,33048,33074,33096,33100,33107,33140,{f:2,c:33113},33137,33120,33129,{f:2,c:33148},33133,33127,22605,23221,33160,33154,33169,28373,33187,33194,33228,26406,33226,33211,33217,33190,27428,27447,27449,27459,27462,27481,{f:3,c:39121},39125,{f:2,c:39129},[12110,27571],
+24384,27586,35315,26E3,40785,26003,26044,26054,26052,26051,26060,26062,26066,26070,28800,28828,28822,28829,28859,28864,28855,28843,28849,28904,28874,28944,28947,28950,28975,28977,29043,29020,29032,28997,29042,29002,29048,29050,29080,29107,29109,29096,29088,29152,29140,29159,29177,29213,29224,28780,28952,29030,29113,25150,25149,25155,{f:2,c:25160},31035,31040,31046,31049,{f:2,c:31067},31059,31066,31074,31063,31072,31087,31079,31098,31109,31114,31130,31143,31155,24529,24528,24636,24669,24666,24679,
+24641,24665,24675,24747,24838,24845,24925,25001,24989,25035,25041,25094,32896,[12160,32895],27795,27894,28156,30710,30712,30720,30729,{f:2,c:30743},30737,26027,30765,{f:2,c:30748},{f:3,c:30777},30751,30780,30757,30764,30755,30761,30798,30829,{f:2,c:30806},30758,30800,30791,30796,30826,30875,30867,30874,30855,30876,30881,30883,30898,30905,30885,30932,30937,30921,30956,30962,30981,30964,30995,31012,31006,31028,40859,[12235,40697],{f:2,c:40699},30449,30468,30477,30457,{f:2,c:30471},30490,30498,30489,
+30509,30502,30517,30520,{f:2,c:30544},30535,30531,30554,30568,30562,30565,30591,30605,30589,30592,30604,30609,{f:2,c:30623},30640,30645,30653,30010,30016,30030,30027,30024,30043,30066,30073,30083,32600,32609,32607,35400,32616,32628,32625,32633,32641,32638,30413,30437,34866,{f:3,c:38021},38027,38026,{f:2,c:38028},{f:2,c:38031},38036,38039,38037,{f:3,c:38042},{f:2,c:38051},38059,38058,38061,38060,{f:2,c:38063},38066,38068,{f:5,c:38070},{f:2,c:38076},38079,38084,{f:7,c:38088},{f:3,c:38096},{f:3,c:38101},
+38105,38104,38107,{f:3,c:38110},38114,{f:2,c:38116},{f:2,c:38119},38122,38121,38123,{f:2,c:38126},{f:3,c:38131},38135,38137,{f:2,c:38140},38143,38147,38146,{f:2,c:38150},{f:2,c:38153},{f:3,c:38157},{f:5,c:38162},38168,38171,{f:3,c:38173},38178,{f:2,c:38186},38185,38188,{f:2,c:38193},38196,{f:3,c:38198},38204,{f:2,c:38206},38210,38197,{f:3,c:38212},38217,38220,{f:2,c:38222},{f:3,c:38226},{f:4,c:38230},38235,{f:2,c:38238},38237,{f:2,c:38241},{f:9,c:38244},38255,{f:3,c:38257},38202,30695,30700,38601,
+31189,31213,31203,31211,31238,23879,31235,31234,31262,31252,31289,31287,31313,40655,39333,31344,30344,30350,30355,30361,30372,29918,29920,29996,40480,40482,{f:5,c:40488},40498,40497,40502,40504,40503,{f:2,c:40505},40510,{f:2,c:40513},40516,{f:4,c:40518},{f:2,c:40523},40526,40529,40533,40535,{f:3,c:40538},40542,40547,{f:7,c:40550},40561,40557,40563,[12135,30098],30100,30102,30112,30109,30124,30115,{f:2,c:30131},30136,30148,30129,30128,30147,30146,30166,30157,30179,30184,30182,30180,30187,30183,30211,
+30193,30204,30207,30224,30208,30213,30220,30231,30218,30245,30232,30229,30233,30235,30268,30242,30240,30272,30253,30256,30271,30261,30275,30270,30259,30285,30302,30292,30300,30294,30315,30319,32714,31462,{f:2,c:31352},31360,31366,31368,31381,31398,31392,31404,31400,31405,31411,34916,34921,34930,34941,34943,34946,34978,35014,34999,35004,35017,35042,35022,35043,35045,35057,35098,35068,35048,35070,35056,35105,35097,35091,35099,35082,35124,35115,35126,35137,35174,35195,[12134,30091],32997,30386,30388,
+30684,[12158,32786],32788,32790,32796,32800,32802,{f:3,c:32805},32809,32808,32817,32779,32821,32835,32838,32845,32850,32873,32881,35203,39032,39040,39043,39049,{f:2,c:39052},39055,39060,{f:2,c:39066},{f:2,c:39070},{f:2,c:39073},{f:2,c:39077},[12172,34381],34388,34412,34414,34431,34426,34428,34427,34472,34445,34443,34476,34461,34471,34467,34474,34451,34473,34486,34500,34485,34510,34480,34490,34481,34479,34505,34511,34484,34537,{f:2,c:34545},34541,34547,34512,34579,34526,34548,34527,34520,34513,34563,
+34567,34552,34568,34570,34573,34569,34595,34619,34590,34597,34606,34586,34622,34632,34612,34609,34601,34615,34623,34690,34594,{f:2,c:34685},34683,34656,34672,34636,34670,34699,34643,34659,34684,34660,34649,34661,34707,34735,34728,34770,34758,34696,34693,34733,34711,34691,34731,34789,34732,34741,34739,34763,34771,34749,34769,34752,34762,34779,34794,34784,34798,34838,34835,34814,34826,34843,34849,34873,34876,[12152,32566],32578,{f:2,c:32580},33296,31482,31485,31496,{f:2,c:31491},31509,31498,31531,31503,
+31559,31544,31530,31513,31534,31537,31520,31525,31524,31539,31550,31518,31576,31578,31557,31605,31564,31581,31584,31598,31611,31586,31602,31601,31632,{f:2,c:31654},31672,31660,31645,31656,31621,31658,31644,31650,31659,31668,31697,31681,31692,31709,31706,{f:2,c:31717},31722,31756,31742,31740,31759,31766,31755,31775,31786,31782,31800,31809,31808,33278,{f:2,c:33281},33284,33260,34884,{f:3,c:33313},33325,33327,33320,33323,33336,33339,{f:2,c:33331},33342,33348,33353,33355,33359,33370,33375,33384,34942,
+34949,34952,35032,35039,35166,32669,32671,32679,{f:2,c:32687},32690,31868,25929,31889,31901,31900,31902,31906,31922,{f:2,c:31932},31937,31943,{f:2,c:31948},31944,31941,31959,31976,[12169,33390],26280,32703,32718,32725,32741,32737,32742,32745,32750,32755,[12151,31992],32119,32166,32174,32327,32411,40632,40628,36211,36228,36244,36241,36273,36199,36205,35911,35913,37194,37200,{f:2,c:37198},37220,37218,37217,37232,37225,37231,{f:2,c:37245},37234,37236,37241,37260,37253,37264,37261,37265,{f:2,c:37282},
+37290,{f:3,c:37293},37301,37300,37306,[12183,35925],40574,36280,36331,36357,36441,36457,36277,36287,36284,36282,36292,{f:2,c:36310},36314,36318,{f:2,c:36302},36315,36294,36332,{f:2,c:36343},36323,36345,36347,36324,36361,36349,36372,36381,36383,36396,36398,36387,36399,36410,36416,36409,36405,36413,36401,36425,{f:2,c:36417},{f:2,c:36433},36426,36464,36470,36476,36463,36468,36485,36495,36500,36496,36508,36510,[12184,35960],35970,35978,35973,35992,35988,26011,35286,35294,35290,35292,35301,35307,35311,
+35390,35622,38739,38633,38643,38639,38662,38657,38664,38671,38670,38698,38701,38704,38718,40832,40835,{f:6,c:40837},40844,40702,40715,40717,[12203,38585],{f:2,c:38588},38606,38610,30655,38624,37518,37550,37576,37694,37738,37834,37775,37950,37995,40063,40066,{f:4,c:40069},31267,40075,40078,{f:3,c:40080},{f:2,c:40084},{f:2,c:40090},{f:6,c:40094},{f:5,c:40101},40107,{f:2,c:40109},{f:8,c:40112},{f:4,c:40122},{f:4,c:40132},{f:7,c:40138},{f:3,c:40147},{f:3,c:40151},{f:2,c:40156},40159,40162,38780,38789,
+{f:2,c:38801},38804,38831,38827,38819,38834,38836,39601,39600,39607,40536,39606,39610,39612,39617,39616,39621,39618,{f:2,c:39627},39633,39749,39747,39751,39753,39752,39757,39761,39144,39181,39214,39253,39252,[12221,39647],39649,39654,39663,39659,39675,39661,39673,39688,39695,39699,39711,39715,{f:2,c:40637},32315,40578,{f:2,c:40583},40587,40594,37846,40605,40607,{f:3,c:40667},40672,40671,40674,40681,40679,40677,40682,40687,40738,40748,40751,40761,40759,{f:2,c:40765},40772,12295,{s:13},30362,34297,
+31001,24859,39599,35158,22761,32631,25850,25943,38930,36774,32070,24171,32129,37770,35607,39165,23542,22577,39825,36649,[12185,35997],37575,29437,20633,24970,32179,31558,30050,25987,24163,38281,37002,32232,36022,35722,36783,36782,27161,40009,30303,28693,28657,36051,25839,39173,25765,37474,37457,39361,35036,36001,21443,34870,27544,24922,24920,29158,33980,33369,20489,28356,21408,20596,28204,23652,35435,25881,25723,34796,39262,35730,32399,37855,29987,38369,39019,22580,22039,[12199,38263],20767,33144,
+24288,26274,37396,[12190,36554],24505,22645,38515,35183,31281,25074,35488,39425,36978,39347,[12242,40786],29118,34909,34802,23541,30087,36490,31820,32162,37276,37604,38619,30990,20786,35320,34389,20659,30241,38358,21109,37656,32020,32189,36781,35422,36060,32880,24478,21474,36517,31428,37679,36948,24118,36024,25812,21934,37170,25763,33213,24986,35477,24392,30070,25803,40680,34153,27284,25623,23798,31153,23566,29128,37159,25973,28364,36958,32224,39003,40670,22666,38651,28593,37347,35519,35548,37336,
+38914,37664,35330,26481,21205,26847,20941,[12222,39717],29346,29544,35712,36077,37709,37723,26039,32222,38538,23565,22136,38931,37389,22890,22702,40285,38989,35355,24801,39187,20818,29246,39180,36019,30332,32624,38309,31020,37353,29033,31684,36009,39151,35370,32033,[12214,39131],35513,24290,36027,32027,22707,22894,24996,31966,35920,26963,37586,[12213,39080],30219,39342,32299,35575,40179,33178,36667,25771,36628,36070,24489,36E3,35331,23142,32283,35442,37411,33995,24185,36245,36123,23713,21083,37628,
+32177,23831,37804,25841,40255,38307,37499,20491,32102,40852,38799,36002,37390,28317,27083,36092,34865,39015,21102,38364,35264,39208,24931,36011,24291,35215,27512,[12244,40860],38312,36556,35437,27331,36020,21130,36645,37707,22283,36942,39405,38867,28450,34399,38305,40372,36032,36703,40251,32005,22778,35703,28396,22057,33775,30059,21123,35441,25079,22750,27489,29872,36996,32233,35594,25582,36637,36036,31330,26371,29172,21295,35569,35496,32362,33911,28222,29554,36008,31117,25802,27231,31309,39249,35663,
+40388,32318,32221,26997,36655,32026,25824,24190,34186,21137,28639,35336,35352,38555,32380,32E3,22846,33698,38960,36040,37440,20729,39381,27570,30435,22533,31627,38291,33393,32216,32365,27298,40572,25536,25791,31777,20745,34214,27323,37970,36368,36068,[12178,35211],37749,33382,21133,39198,28472,28666,28567,23559,28479,34083,27123,22892,35611,37292,33184,28550,39509,23308,25898,37496,30703,20709,39171,32371,32094,36686,36611,38542,31680,28500,32080,35489,32202,37670,20677,35641,36914,29180,30433,21185,
+33686,39912,39514,32147,38968,37857,24465,30169,31478,31998,33290,39378,33289,25818,37624,25084,21127,40273,32121,35258,35363,32118,37406,36557,39423,38283,20977,38982,27579,35506,22718,25031,25715,24235,35122,35463,22602,20744,23532,31014,26336,34407,24011,31418,39243,28528,25844,38346,34847,33240,33802,20358,36084,34253,27396,25876,31811,38348,34349,28734,35733,25900,35261,25078,32412,29211,28651,25736,21214,28551,27138,37939,22744,39006,31852,38626,28757,35023,39881,31150,40599,21426,21237,31019,
+27511,28701,38584,20486,32879,34030,36899,37934,24976,28451,31806,25986,33225,37832,25088,29001,32244,31975,20841,36635,35538,30274,36988,37904,29557,33256,37168,40023,36035,40801,37428,38728,23994,38936,39230,21129,[12243,40845],32894,22184,31840,22751,25871,38580,27155,23105,25695,31757,34310,30439,39025,24300,29200,25796,28407,34396,39791,36034,37682,38520,39522,37569,23650,32311,24942,28670,32209,24018,25891,23423,28772,20098,25476,36650,20523,20374,28138,32184,35542,34367,32645,37007,38012,31854,
+39486,39409,32097,23229,29802,30908,34718,[12218,39340],39393,21966,36023,[12230,40613],36067,36993,30622,39237,34875,28415,35646,37672,37466,36031,37762,[12200,38272],24758,20497,37683,22818,35598,24396,35219,32191,32236,24287,28357,25003,38313,40180,37528,35628,35584,30045,37385,32013,38627,25747,33126,24817,39719,39186,25836,33193,25862,37312,[12227,40165],32886,22169,38007,37811,27320,29552,23527,25840,28632,37397,32016,33215,28611,36786,30247,35582,27472,40407,27590,22036,28442,30436,40848,36064,
+22132,40300,39449,39108,38971,36007,34315,24977,35413,28497,38935,25778,37610,20693,27192,35676,33229,[12241,40778],39438,35912,21843,27683,35350,29309,37370,37467,36983,31805,35609,37666,37463,28154,35700,22649,27085,21958,22715,34196,25654,37740,27211,21932,20689,32761,31429,31434,27453,35242,23522,36629,27691,20670,38915,35531,24950,29898,31406,36264,21312,36544,39493,40818,39028,27402,21240,40306,30906,35731,39250,25854,32350,29105,38860,35469,32009,27054,32104,36575,37613,38287,28516,28753,34217,
+39955,36093,20632,21930,39479,25475,28544,27578,32023,31721,26348,38275,38493,36109,32341,20663,36062,29138,32057,36050,25448,25885,25086,35373,32051,23529,23352,33102,28402,32882,32361,21213,32854,24107,29509,28629,35433,26178,34645,23526,35672,39387,21218,36969,37323,39166,35222,35430,22781,29560,27166,36664,26360,36118,23660,34899,27193,31466,25976,24101,38617,35504,38918,35500,30889,29197,32114,39164,39686,32883,24939,38924,35359,35494,25851,34311,35380,32901,38614,38568,32143,27506,23403,25613,
+32302,29795,37782,29562,25787,33274,24907,25892,36010,30321,28760,22727,35674,35527,22022,28271,29145,28644,32295,35342,39472,35588,37563,38988,39636,26781,36028,37941,24307,32893,28916,37509,32113,38957,22294,22615,22296,38973,40213,39345,39389,27234,31402,35178,24398,28771,38929,33836,32178,[12209,38859],36949,22285,29234,28656,32173,33894,20553,20702,32239,35586,34907,32862,32011,31337,21839,25790,34680,28198,31401,21978,37794,28879,35491,28961,34154,22626,38695,21209,35492,37675,29351,35186,32722,
+37521,25138,32048,34662,36676,23805,20448,29433,22151,37697,39854,32406,36066,37532,38289,39023,38570,29694,29563,32291,39201,25010,32171,38002,37129,35443,38911,38917,34157,22210,37559,26313,22063,21332,25406,33029,35559,23531,28681,35613,37573,37313,33288,37561,32137,38920,35377,32210,32396,36562,25080,36984,30316,32098,23416,21211,35426,23563,39348,35347,35338,36956,22739,40201,40232,21854,20126,35357,38329,40573,22196,38996,38331,33399,21421,30831,35578,39511,40230,26954,25562,30221,38525,30306,
+39178,27171,22575,35617,34277,29242,[12212,38913],26989,33865,37291,37541,38948,36986,20736,34811,34269,20740,25014,32681,35427,35696,35516,35695,32377,34093,38512,37504,39154,38577,27387,23344,40441,25033,32403,29801,34722,29151,29074,34821,36111,31310,21938,25793,20653,30320,36404,20778,24962,37109,37438,29494,35480,36671,39192,[12226,39770],28417,33287,23996,35486,39729,29508,35709,38928,39341,40219,28149,36677,22290,21729,22291,32227,36960,39E3,32004,36493,38E3,38322,38642,37142,38549,36939,34292,
+37270,26248,38620,36617,25890,26283,36106,36124,33247,38015,26839,31432,36012,25799,21063,28580,36042,36104,36555,37720,38296,35408,40779,20661,27656,30430,26028,36670,23940,26855,25136,32187,24373,28466,24115,36076,33081,36249,34756,36685,37754,36889,35998,37341,20597,35386,37806,38499,24128,30309,37165,35657,32340,32887,22519,34937,32025,25711,25842,24159,36074,28399,37912,32066,31278,33131,34886,35589,36600,30394,26205,39519,35576,35461,29165,30682,22225,36015,37956,31689,39376,23560,30938,36681,
+36090,27137,33674,35037,22941,22767,29376,37648,36101,22684,32180,35524,28310,28609,36039,28460,32156,32317,32305,37138,35419,32068,38013,21959,21401,21428,38760,36107,21293,21297,36094,21060,21132,21108,20660,20480,20630,20757,20738,20756,20796,20791,20712,20674,20795,20752,20794,20681,31988,40652,22213,40172,35131,33248,35329,35344,35340,35349,35635,35406,35365,35393,35382,35398,35412,35416,35410,35462,35460,35455,35440,35452,35445,35436,35438,35533,35554,35425,35482,35493,{f:2,c:35473},35535,35537,
+35529,35547,35543,35522,35510,35574,35563,35604,35585,35556,35565,35580,35571,35558,35566,35550,35624,35740,35606,35610,35600,35627,35629,35670,35673,35662,35742,35691,35734,38488,37178,37140,37172,37087,37174,37126,37192,33467,21233,24048,22538,22745,22754,22752,22746,22497,22607,22550,22610,22557,22628,34188,34131,34294,33703,33799,34031,33511,34338,34086,22603,29026,34136,34045,34126,34184,34234,29334,28366,34113,34254,34130,33984,33874,33892,33940,33845,34207,34133,40367,33939,32264,34118,34146,
+34078,39488,34362,37795,34167,34334,34298,34308,34282,34330,22889,23607,25451,25718,25759,25681,25692,25779,25860,25878,25847,25852,25883,22064,22072,22216,22182,21764,21692,22144,22109,22112,22069,22006,22118,22130,22156,22117,22044,22062,21993,22038,22208,22029,22195,22209,22127,36705,22198,22165,22279,24131,24172,24152,24151,23943,23796,23888,23852,23975,23968,23959,23821,23992,23937,24020,24480,29559,29505,29546,29499,29547,29568,29564,39136,39219,39145,39228,{f:2,c:39146},39149,39156,39177,39185,
+39195,39223,39231,39235,{f:3,c:39240},39244,39266,24289,36065,25082,25006,24938,24894,24757,24884,25036,24927,25064,24827,24887,24818,24947,24860,24978,38274,38278,38344,38286,38292,38284,38373,38317,38315,39726,38316,38334,38326,39721,38335,38333,38332,38339,38347,38356,38352,38357,38366,28739,28505,28711,28696,28668,28039,28025,28254,28590,28687,28408,28527,28150,28543,28678,28576,28683,28775,28740,28677,28535,28704,28703,28722,28712,28765,39467,36999,36885,37008,23656,24371,23285,23255,23296,23149,
+23304,23372,23207,23291,23307,23329,23338,23321,39380,39391,39385,39478,39515,39377,39384,39501,39498,39394,39530,39439,39437,39429,39490,39469,39446,39489,39470,39480,{f:2,c:39491},39503,39525,39524,31993,32006,32002,{f:2,c:32007},32394,32028,32021,32019,32058,32050,32049,32272,32060,32064,32063,32093,32078,32115,32134,32131,32136,32190,32186,32203,32212,32196,32158,32172,32185,32163,32176,32199,32217,32215,32249,32242,32354,32230,32246,32241,32267,32225,32265,32285,32287,32286,32301,32266,32273,
+32381,32313,32309,32306,32326,32325,32392,32346,32338,32366,32382,32368,32367,32408,29859,29771,29903,38922,29885,29759,29833,29862,29908,29914,38873,38878,38876,27050,27370,26776,26838,27141,26783,27355,27379,27368,27359,27273,26895,27208,26984,27071,27194,27292,27410,27422,27357,27111,27407,27414,27372,27354,27384,27315,27367,27299,27347,27358,27556,27550,27566,27563,27567,36564,36571,36594,36603,36708,36601,36604,36587,36580,36706,36602,36606,36618,36615,36613,36626,36646,{f:2,c:36638},36636,36659,
+36678,36692,25108,25127,29964,26311,26308,26249,26326,36033,36016,36026,36029,36100,36018,36037,36112,36049,36058,36053,36075,36071,36091,35224,35244,35233,35263,35238,35247,35250,35255,27647,27660,27692,29272,26407,33110,33242,33051,33214,33121,33231,27487,{f:2,c:39086},39094,39100,39110,39112,36674,40783,26005,29036,29010,29079,29121,29148,29182,31152,31118,31146,25055,24932,25059,25095,28585,30959,30893,30824,30904,31018,31025,30820,30973,30951,30947,40853,30616,30558,30652,32646,32648,{f:3,c:37330},
+37337,37335,37333,37367,37351,37348,37702,37365,37369,37384,37414,37445,37393,37392,37377,37415,37380,37413,37376,37434,37478,37431,37427,37461,37437,37432,37470,{f:2,c:37484},37439,37984,37424,37449,37448,37453,37422,37433,37944,37548,37536,37498,37546,37614,37583,37891,37603,37946,37553,37542,37799,37526,37580,37545,37877,37523,37503,37801,37530,37658,37547,37507,37899,37544,37539,37906,37688,37617,37847,37605,37616,37615,37608,37564,37597,37622,{f:2,c:37926},37571,37599,37606,37650,37638,37737,
+37659,37696,37633,37653,37678,37699,{f:2,c:37639},37663,37657,37733,37703,37750,37716,37732,37802,37744,37764,37860,37848,37928,37767,37836,37784,37816,37823,37798,37808,37813,37964,37858,{f:2,c:37852},37837,37854,37827,37831,37841,37908,37917,37879,37989,37907,37997,37920,38009,37881,37913,37962,37938,37951,37972,37987,37758,31329,40169,40182,40199,40198,40227,40327,40469,40221,40223,40421,40239,40409,40240,40258,40478,40275,40477,40288,40274,40435,40284,40289,40339,40298,40303,40329,40344,40346,
+40384,40357,40361,40386,40380,40474,40403,40410,40431,40422,40434,40440,40460,40442,40475,30308,30296,30311,30210,{f:2,c:30278},30281,30238,30267,{f:2,c:30317},30313,30322,31431,31414,35168,35123,35165,35143,35128,35172,30392,32814,32812,32889,32885,38919,{f:2,c:38926},38945,38940,28481,38950,38967,38990,38995,39027,39010,39001,39013,39020,39024,34787,34822,34566,34851,34806,34554,34799,34692,34832,34760,34833,34747,34766,32588,31716,31591,31849,31731,31744,31691,31836,31774,31787,31779,31850,31839,
+33380,33387,35018,32677,31986,31990,31965,32310,40617,36274,37317,37315,40570,36489,36428,36498,36474,36437,36506,36491,36499,36497,36513,36451,36522,36518,35316,35318,38746,38722,38717,38724,40788,40799,40793,40800,40796,40806,40812,40810,40823,[12236,40701],40703,40713,35726,38014,37864,39799,39796,39809,39811,39822,40056,31308,39826,40031,39824,39853,39834,39850,39838,40045,39851,39837,40024,39873,40058,39985,39993,39971,39991,39872,39882,39879,39933,39894,{f:2,c:39914},39905,39908,39911,39901,
+39906,39920,39899,39924,39892,40029,39944,39952,39949,39954,39945,39935,39968,39986,39981,39976,39973,39977,39987,39998,40008,39995,39989,40005,40022,40020,40018,40039,38851,38845,38857,40379,39631,39638,39637,39768,39758,39255,39260,39714,40695,40690,35180,38342,37686,24390,34068,32404,40803,22137,40725,22081,39662,35079,31296,39091,38308,39693,36852,24409,31339,39138,20642,34193,20760,25458,21067,30543,32397,26310,30637,[12228,40565],22217,40692,28635,25054,30663,28720,40629,34890,38370,38854,31844,
+32308,38822,40623,22220,39089,27311,32590,31984,20418,32363,40569,22190,39706,33903,31142,31858,39634,38587,32251,35069,30787,{f:10,c:8560},{f:2,c:714},729,8211,8213,8229,8245,8453,8457,{f:4,c:8598},8725,8735,8739,8786,{f:2,c:8806},8895,{f:36,c:9552},{f:15,c:9601},{f:3,c:9619},{f:2,c:9660},{f:4,c:9698},9737,8853,12306,{f:2,c:12317},{f:9,c:12321},12963,{f:2,c:13198},{f:3,c:13212},13217,13252,13262,{f:2,c:13265},13269,65072,65506,65508,8481,12849,8208,12540,{f:2,c:12443},{f:2,c:12541},12294,{f:2,c:12445},
+{f:10,c:65097},{f:4,c:65108},{f:14,c:65113},{f:4,c:65128},12350,{f:12,c:12272},19970,{f:3,c:19972},19983,19986,19991,{f:3,c:19999},20003,20006,20009,{f:2,c:20014},20017,20019,20021,20023,20028,{f:3,c:20032},20036,20038,20042,20049,20053,20055,{f:2,c:20058},{f:4,c:20066},{f:2,c:20071},{f:6,c:20074},20082,{f:10,c:20084},{f:3,c:20095},{f:2,c:20099},[12037,20101],20103,20106,20112,{f:2,c:20118},20121,{f:2,c:20124},20131,20138,{f:3,c:20143},20148,{f:4,c:20150},{f:3,c:20156},20168,20172,{f:2,c:20175},20178,
+{f:3,c:20186},20192,20194,{f:2,c:20198},20201,{f:3,c:20205},20209,20212,{f:3,c:20216},20220,20222,20224,{f:7,c:20226},{f:2,c:20235},{f:5,c:20242},{f:2,c:20252},20257,20259,{f:2,c:20264},{f:3,c:20268},20273,20275,20277,20279,20281,20283,{f:5,c:20286},{f:2,c:20292},{f:6,c:20295},20306,20308,20310,{f:2,c:20321},20326,20328,{f:2,c:20330},{f:2,c:20333},{f:2,c:20337},20341,{f:4,c:20343},20349,{f:3,c:20352},20357,20359,20362,20364,20366,20368,{f:2,c:20370},20373,{f:3,c:20376},20380,{f:2,c:20382},{f:2,c:20385},
+20388,20395,20397,{f:5,c:20400},{f:9,c:20406},{f:2,c:20416},{f:4,c:20422},{f:3,c:20427},{f:5,c:20434},20441,20443,20450,{f:2,c:20452},20455,{f:2,c:20459},20464,20466,{f:4,c:20468},20473,{f:3,c:20475},20479,{f:5,c:20481},{f:2,c:20487},20490,20494,20496,20499,{f:3,c:20501},20507,{f:2,c:20509},20512,{f:3,c:20514},20519,{f:11,c:20527},20539,20541,{f:4,c:20543},{f:3,c:20548},{f:2,c:20554},20557,{f:5,c:20560},{f:4,c:20566},20571,{f:8,c:20573},{f:6,c:20582},{f:7,c:20589},{f:3,c:20600},{f:2,c:20604},{f:4,
+c:20609},{f:2,c:20614},{f:4,c:20617},{f:8,c:20622},20631,{f:8,c:20634},20644,20646,{f:2,c:20650},{f:4,c:20654},20662,{f:2,c:20664},{f:2,c:20668},{f:3,c:20671},{f:2,c:20675},{f:3,c:20678},{f:5,c:20682},20688,{f:3,c:20690},{f:3,c:20695},{f:3,c:20699},{f:6,c:20703},{f:3,c:20713},{f:4,c:20719},20724,{f:3,c:20726},20730,{f:4,c:20732},20737,20739,20741,20746,{f:4,c:20748},20753,20755,{f:2,c:20758},{f:6,c:20761},20768,{f:8,c:20770},{f:7,c:20779},{f:4,c:20787},{f:2,c:20792},{f:2,c:20797},20802,20807,20810,
+20812,{f:3,c:20814},20819,{f:3,c:20823},20827,{f:5,c:20829},{f:2,c:20835},{f:2,c:20838},20842,20847,20850,20858,{f:2,c:20862},{f:2,c:20867},{f:2,c:20870},{f:2,c:20874},{f:4,c:20878},{f:2,c:20883},20888,20890,{f:3,c:20893},20897,20899,{f:5,c:20902},{f:2,c:20909},20916,{f:3,c:20920},{f:2,c:20926},{f:3,c:20929},20933,20936,20938,20942,20944,{f:9,c:20946},20956,{f:2,c:20958},{f:2,c:20962},{f:6,c:20965},20972,20974,20978,20980,20983,20990,{f:2,c:20996},21001,{f:2,c:21003},{f:2,c:21007},{f:3,c:21011},21020,
+{f:2,c:21022},{f:3,c:21025},{f:3,c:21029},21034,21036,21039,{f:2,c:21041},{f:2,c:21044},21052,21054,{f:2,c:21061},{f:2,c:21064},{f:2,c:21070},{f:2,c:21074},21077,{f:4,c:21079},21085,{f:2,c:21087},{f:3,c:21090},21094,21096,{f:3,c:21099},{f:2,c:21104},21107,{f:7,c:21110},21118,21120,{f:3,c:21124},21131,{f:2,c:21134},21138,{f:7,c:21140},21148,{f:4,c:21156},{f:3,c:21166},{f:10,c:21172},21184,21186,{f:3,c:21188},21192,21194,{f:4,c:21196},21201,{f:2,c:21203},21207,21210,21212,{f:2,c:21216},21219,{f:11,
+c:21221},{f:3,c:21234},{f:2,c:21238},{f:3,c:21243},{f:4,c:21249},21255,{f:4,c:21257},21262,{f:4,c:21265},21272,{f:2,c:21275},{f:2,c:21278},21282,{f:2,c:21284},{f:3,c:21287},{f:2,c:21291},21296,{f:6,c:21298},[12054,21304],{f:2,c:21308},21314,21316,21318,{f:3,c:21323},21328,{f:2,c:21336},21339,21341,21349,21352,21354,{f:2,c:21356},21362,21366,21369,{f:4,c:21371},{f:2,c:21376},21379,{f:2,c:21383},21386,{f:7,c:21390},{f:2,c:21398},{f:2,c:21403},21406,21409,21412,21415,{f:3,c:21418},{f:3,c:21423},21427,
+21429,{f:4,c:21431},{f:3,c:21436},21440,{f:4,c:21444},{f:3,c:21454},{f:2,c:21458},21461,21466,{f:3,c:21468},21473,21479,21492,21498,{f:3,c:21502},21506,21509,21511,21515,21524,{f:3,c:21528},21532,21538,{f:2,c:21540},21546,21552,21555,{f:2,c:21558},21562,21565,21567,{f:2,c:21569},{f:2,c:21572},21575,21577,{f:4,c:21580},21585,21594,{f:5,c:21597},21603,21605,21607,{f:8,c:21609},21620,{f:2,c:21625},{f:2,c:21630},21633,21635,21637,{f:4,c:21639},21645,21649,21651,{f:2,c:21655},21660,{f:5,c:21662},21669,
+21678,21680,21682,{f:3,c:21685},{f:2,c:21689},21694,21699,21701,{f:2,c:21706},21718,21720,21723,21728,{f:3,c:21730},{f:2,c:21739},{f:3,c:21743},{f:6,c:21748},21755,21758,21760,{f:2,c:21762},21765,21768,{f:5,c:21770},{f:2,c:21778},{f:6,c:21781},{f:4,c:21788},21793,{f:2,c:21797},{f:2,c:21800},21803,21805,21810,{f:3,c:21812},{f:4,c:21816},21821,21824,21826,21829,{f:2,c:21831},{f:4,c:21835},{f:2,c:21841},21844,{f:5,c:21847},21853,{f:2,c:21855},{f:2,c:21858},{f:2,c:21864},21867,{f:6,c:21871},{f:2,c:21881},
+21885,21887,{f:2,c:21893},{f:3,c:21900},21904,{f:2,c:21906},{f:3,c:21909},{f:2,c:21914},21918,{f:7,c:21920},{f:2,c:21928},21931,21933,{f:2,c:21935},21940,21942,21944,21946,21948,{f:5,c:21951},21960,{f:2,c:21962},{f:2,c:21967},21973,{f:3,c:21975},21979,21982,21984,21986,21991,{f:2,c:21997},{f:2,c:22E3},22004,{f:5,c:22008},22015,{f:4,c:22018},22023,{f:2,c:22026},{f:4,c:22032},22037,{f:2,c:22041},22045,{f:3,c:22048},{f:2,c:22053},22056,{f:2,c:22058},22067,22071,22074,{f:3,c:22076},22080,{f:10,c:22082},
+{f:5,c:22095},{f:2,c:22101},{f:2,c:22106},{f:2,c:22110},22113,22115,22119,{f:2,c:22125},22128,22131,22133,22135,22138,{f:3,c:22141},{f:4,c:22145},{f:4,c:22152},22157,{f:3,c:22160},22164,{f:3,c:22166},{f:9,c:22170},{f:2,c:22180},22183,{f:5,c:22185},{f:3,c:22192},22197,{f:4,c:22200},{f:3,c:22205},{f:2,c:22211},{f:2,c:22214},22219,{f:4,c:22221},{f:2,c:22226},{f:2,c:22229},{f:2,c:22232},22236,22243,{f:6,c:22245},22252,{f:2,c:22254},{f:2,c:22258},{f:3,c:22262},{f:2,c:22267},{f:3,c:22272},22277,22284,{f:4,
+c:22286},{f:2,c:22292},22295,{f:3,c:22297},{f:2,c:22301},{f:3,c:22304},{f:4,c:22308},22315,{f:2,c:22321},{f:5,c:22324},{f:2,c:22332},22335,22337,{f:4,c:22339},{f:2,c:22344},22347,{f:5,c:22354},{f:2,c:22360},{f:2,c:22370},22373,22375,22380,22382,{f:3,c:22384},{f:2,c:22388},{f:3,c:22392},{f:5,c:22397},{f:4,c:22407},{f:5,c:22413},{f:7,c:22420},{f:4,c:22428},22437,22440,22442,22444,{f:3,c:22447},22451,{f:3,c:22453},{f:9,c:22457},{f:7,c:22468},{f:2,c:22476},{f:2,c:22480},22483,{f:2,c:22486},{f:2,c:22491},
+22494,{f:2,c:22498},{f:8,c:22501},22510,{f:4,c:22512},{f:2,c:22517},{f:2,c:22523},{f:2,c:22526},22529,{f:2,c:22531},{f:2,c:22536},22540,{f:3,c:22542},{f:3,c:22546},{f:2,c:22551},{f:3,c:22554},22559,{f:2,c:22562},{f:5,c:22565},{f:4,c:22571},{f:2,c:22578},{f:14,c:22582},{f:5,c:22597},22606,22608,22611,{f:2,c:22613},{f:5,c:22617},{f:3,c:22623},22627,{f:5,c:22630},{f:8,c:22637},{f:3,c:22646},{f:4,c:22650},22655,22658,22660,{f:3,c:22662},{f:7,c:22667},{f:5,c:22676},22683,22685,{f:8,c:22688},{f:4,c:22698},
+{f:4,c:22703},{f:7,c:22708},22717,{f:2,c:22719},{f:3,c:22722},22726,{f:9,c:22728},22738,22740,{f:2,c:22742},{f:3,c:22747},22753,22755,{f:4,c:22757},22762,22765,{f:2,c:22769},{f:2,c:22772},{f:2,c:22775},{f:2,c:22779},{f:4,c:22782},22787,{f:2,c:22789},{f:2,c:22792},[12066,22794],{f:2,c:22795},22798,{f:4,c:22800},{f:2,c:22807},22811,{f:2,c:22813},{f:2,c:22816},22819,22822,22824,22828,22832,{f:2,c:22834},{f:2,c:22837},22843,22845,{f:2,c:22847},22851,{f:2,c:22853},22858,{f:2,c:22860},22864,{f:2,c:22866},
+22873,{f:5,c:22875},22881,{f:2,c:22883},{f:3,c:22886},22891,22893,{f:4,c:22895},22901,22903,{f:3,c:22906},{f:3,c:22910},22917,22921,{f:2,c:22923},{f:4,c:22926},{f:2,c:22932},22936,{f:3,c:22938},{f:4,c:22943},{f:2,c:22950},{f:2,c:22956},{f:2,c:22960},{f:6,c:22963},22970,{f:2,c:22972},{f:7,c:22975},{f:3,c:22983},{f:4,c:22988},{f:2,c:22997},23001,23003,{f:5,c:23006},23012,{f:2,c:23014},{f:3,c:23017},{f:12,c:23021},23034,{f:3,c:23036},23040,23042,{f:2,c:23050},{f:4,c:23053},23058,{f:4,c:23060},{f:3,c:23065},
+{f:2,c:23069},{f:2,c:23073},23076,{f:3,c:23078},{f:7,c:23082},23091,23093,{f:5,c:23095},{f:3,c:23101},{f:4,c:23106},{f:2,c:23111},{f:10,c:23115},{f:4,c:23126},{f:7,c:23131},{f:3,c:23139},{f:2,c:23144},{f:2,c:23147},{f:6,c:23150},{f:2,c:23160},{f:4,c:23163},{f:18,c:23168},{f:7,c:23187},{f:11,c:23196},{f:2,c:23208},{f:7,c:23211},23220,{f:2,c:23222},{f:4,c:23225},{f:2,c:23231},{f:6,c:23235},{f:2,c:23242},{f:5,c:23245},23251,23253,{f:3,c:23257},{f:3,c:23261},23266,{f:2,c:23268},{f:2,c:23271},23274,{f:5,
+c:23276},{f:3,c:23282},{f:5,c:23286},{f:4,c:23292},{f:7,c:23297},23306,{f:9,c:23309},23320,{f:7,c:23322},{f:8,c:23330},{f:5,c:23339},23345,23347,{f:2,c:23349},{f:7,c:23353},{f:11,c:23361},{f:3,c:23373},23378,23382,23390,{f:2,c:23392},{f:2,c:23399},{f:3,c:23405},23410,23412,{f:2,c:23414},23417,{f:2,c:23419},23422,23426,23430,23434,{f:2,c:23437},{f:3,c:23440},23444,23446,23455,{f:3,c:23463},{f:4,c:23468},{f:2,c:23473},23479,{f:3,c:23482},{f:2,c:23488},23491,{f:4,c:23496},{f:3,c:23501},23505,{f:9,c:23508},
+23520,23523,23530,23533,23535,{f:4,c:23537},23543,{f:2,c:23549},23552,{f:2,c:23554},23557,23564,23568,{f:2,c:23570},23575,23577,23579,{f:4,c:23582},23587,23590,{f:4,c:23592},{f:4,c:23597},{f:2,c:23602},{f:2,c:23605},{f:2,c:23619},{f:2,c:23622},{f:2,c:23628},{f:3,c:23634},{f:3,c:23638},{f:4,c:23642},23647,23655,{f:3,c:23657},23661,23664,{f:7,c:23666},{f:4,c:23675},23680,{f:5,c:23683},{f:3,c:23689},{f:2,c:23694},{f:2,c:23698},23701,{f:4,c:23709},{f:5,c:23716},23722,{f:3,c:23726},23730,23732,23734,{f:4,
+c:23737},23742,23744,{f:2,c:23746},{f:6,c:23749},{f:6,c:23756},{f:6,c:23763},{f:7,c:23770},{f:2,c:23778},23783,23785,{f:2,c:23787},{f:2,c:23790},{f:3,c:23793},23797,{f:4,c:23799},23804,{f:4,c:23806},{f:2,c:23812},{f:5,c:23816},{f:5,c:23823},23829,{f:3,c:23832},{f:2,c:23836},{f:5,c:23839},23845,23848,{f:2,c:23850},{f:5,c:23855},{f:8,c:23861},{f:8,c:23871},{f:2,c:23880},{f:3,c:23885},{f:7,c:23889},{f:2,c:23897},23900,{f:11,c:23902},23914,{f:2,c:23917},{f:4,c:23920},{f:12,c:23925},23939,{f:2,c:23941},
+{f:15,c:23944},23960,{f:3,c:23962},{f:2,c:23966},{f:6,c:23969},{f:15,c:23976},23993,23995,{f:8,c:23997},{f:5,c:24006},24012,{f:4,c:24014},24019,{f:6,c:24021},24028,{f:2,c:24031},{f:2,c:24035},24042,{f:2,c:24044},{f:2,c:24053},{f:5,c:24056},{f:2,c:24063},24068,24071,{f:3,c:24073},{f:2,c:24077},{f:2,c:24082},24087,{f:7,c:24094},{f:3,c:24104},24108,{f:2,c:24111},24114,{f:2,c:24116},{f:2,c:24121},{f:2,c:24126},24129,{f:6,c:24134},{f:7,c:24141},24150,{f:2,c:24153},{f:2,c:24156},24160,{f:7,c:24164},{f:5,
+c:24173},24181,24183,{f:3,c:24193},24197,{f:2,c:24200},{f:3,c:24204},24210,24216,24219,24221,{f:4,c:24225},{f:3,c:24232},24236,{f:5,c:24238},24244,{f:4,c:24250},{f:10,c:24255},{f:6,c:24267},{f:2,c:24276},{f:4,c:24279},{f:3,c:24284},{f:4,c:24292},24297,24299,{f:6,c:24301},24309,{f:2,c:24312},{f:3,c:24315},{f:3,c:24325},24329,{f:3,c:24332},24336,24338,24340,24342,{f:2,c:24345},{f:3,c:24348},{f:4,c:24353},24360,{f:2,c:24363},24366,24368,24370,24372,{f:3,c:24374},24379,{f:3,c:24381},{f:5,c:24385},24391,
+{f:3,c:24393},24397,24399,24401,24404,{f:3,c:24410},{f:3,c:24414},24419,24421,{f:2,c:24423},24427,{f:2,c:24430},24434,{f:3,c:24436},24440,24442,{f:3,c:24445},24451,24454,{f:3,c:24461},{f:2,c:24467},24470,{f:2,c:24474},24477,24479,{f:6,c:24482},{f:2,c:24491},{f:6,c:24495},24502,24504,{f:2,c:24506},{f:5,c:24510},{f:2,c:24519},{f:2,c:24522},24526,{f:3,c:24531},{f:3,c:24538},{f:2,c:24542},{f:2,c:24546},{f:2,c:24549},{f:2,c:24552},24556,{f:2,c:24559},{f:3,c:24562},{f:2,c:24566},{f:2,c:24569},24572,{f:3,
+c:24583},{f:2,c:24587},{f:2,c:24592},24595,{f:2,c:24599},24602,{f:2,c:24606},{f:3,c:24610},{f:3,c:24620},{f:5,c:24624},{f:5,c:24630},{f:2,c:24637},24640,{f:7,c:24644},24652,{f:2,c:24654},24657,{f:2,c:24659},{f:3,c:24662},{f:2,c:24667},{f:4,c:24670},{f:2,c:24677},24686,{f:2,c:24689},{f:2,c:24692},24695,24702,{f:3,c:24704},{f:4,c:24709},{f:2,c:24714},{f:4,c:24718},24723,24725,{f:3,c:24727},24732,24734,{f:2,c:24737},{f:2,c:24740},24743,{f:2,c:24745},24750,24752,24755,24759,{f:2,c:24761},{f:8,c:24765},
+{f:3,c:24775},{f:5,c:24780},{f:3,c:24786},{f:2,c:24790},24793,24795,24798,{f:4,c:24802},24810,24821,{f:2,c:24823},{f:4,c:24828},{f:4,c:24834},24839,{f:3,c:24842},{f:5,c:24848},{f:4,c:24854},{f:2,c:24861},{f:2,c:24865},24869,{f:3,c:24872},{f:8,c:24876},{f:2,c:24885},{f:6,c:24888},{f:8,c:24896},24905,24909,{f:2,c:24911},{f:3,c:24914},{f:2,c:24918},24921,{f:2,c:24923},24926,{f:2,c:24928},{f:2,c:24933},24937,{f:2,c:24940},24943,{f:2,c:24945},24948,{f:10,c:24952},{f:7,c:24963},{f:2,c:24972},24975,24979,
+{f:5,c:24981},{f:2,c:24987},{f:6,c:24990},{f:2,c:24997},25002,25005,{f:3,c:25007},{f:3,c:25011},{f:6,c:25016},{f:3,c:25023},{f:4,c:25027},{f:4,c:25037},25043,{f:9,c:25045},{f:3,c:25056},{f:2,c:25060},25063,{f:9,c:25065},{f:2,c:25075},25081,25083,25085,{f:5,c:25089},25097,25107,25113,{f:3,c:25116},25120,25123,25126,{f:2,c:25128},25131,25133,25135,25137,25141,[12094,25142],{f:5,c:25144},25154,{f:3,c:25156},25162,{f:2,c:25167},{f:3,c:25173},{f:2,c:25177},{f:7,c:25180},{f:2,c:25188},25192,{f:2,c:25201},
+{f:2,c:25204},{f:2,c:25207},{f:2,c:25210},25213,{f:3,c:25217},{f:4,c:25221},{f:6,c:25227},25236,25241,{f:3,c:25244},25251,{f:2,c:25254},{f:2,c:25257},{f:4,c:25261},{f:3,c:25266},{f:3,c:25270},25274,25278,{f:2,c:25280},25283,25291,25295,25297,25301,{f:2,c:25309},{f:2,c:25312},25316,{f:2,c:25322},25328,25330,25333,{f:4,c:25336},25344,{f:4,c:25347},{f:4,c:25354},{f:2,c:25359},{f:4,c:25362},{f:3,c:25367},25372,{f:2,c:25382},25385,{f:3,c:25388},{f:2,c:25392},{f:6,c:25395},{f:2,c:25403},{f:3,c:25407},25412,
+{f:2,c:25415},25418,{f:4,c:25425},{f:8,c:25430},25440,{f:3,c:25444},25450,25452,{f:2,c:25455},{f:3,c:25459},{f:2,c:25464},{f:4,c:25468},25473,{f:2,c:25477},25483,25485,25489,{f:3,c:25491},25495,{f:7,c:25497},25505,25508,25510,25515,25519,{f:2,c:25521},{f:2,c:25525},25529,25531,25533,25535,{f:3,c:25537},25541,{f:2,c:25543},{f:3,c:25546},25553,{f:3,c:25555},{f:3,c:25559},{f:3,c:25563},25567,25570,{f:5,c:25572},{f:2,c:25579},{f:3,c:25583},25587,25589,25591,{f:4,c:25593},25598,{f:2,c:25603},{f:5,c:25606},
+25614,{f:2,c:25617},{f:2,c:25621},{f:3,c:25624},25629,25631,{f:4,c:25634},{f:3,c:25639},25643,{f:6,c:25646},25653,{f:3,c:25655},{f:2,c:25659},25662,25664,{f:2,c:25666},25673,{f:6,c:25675},25683,{f:3,c:25685},{f:3,c:25689},25693,{f:7,c:25696},25704,{f:3,c:25706},25710,{f:3,c:25712},{f:2,c:25716},25719,{f:6,c:25724},25731,25734,{f:8,c:25737},25748,{f:2,c:25751},{f:4,c:25754},{f:3,c:25760},{f:3,c:25766},25770,25775,25777,25780,25782,25785,25789,25795,25798,{f:2,c:25800},25804,25807,25809,25811,{f:2,
+c:25813},25817,{f:3,c:25819},25823,25825,25827,25829,{f:5,c:25831},{f:2,c:25837},25843,{f:2,c:25845},{f:2,c:25848},25853,25855,{f:3,c:25857},25861,{f:2,c:25863},{f:5,c:25866},{f:2,c:25872},25875,25877,25879,25882,25884,{f:4,c:25886},{f:4,c:25894},25901,{f:4,c:25904},25911,25914,{f:2,c:25916},{f:5,c:25920},{f:2,c:25926},{f:2,c:25930},{f:2,c:25933},25936,{f:3,c:25938},25944,25946,25948,{f:3,c:25951},{f:2,c:25956},{f:4,c:25959},{f:3,c:25965},25969,25971,25974,{f:9,c:25977},{f:3,c:25988},{f:3,c:25992},
+{f:3,c:25997},26002,26004,26006,26008,26010,{f:2,c:26013},26016,{f:2,c:26018},26022,26024,26026,26030,{f:6,c:26033},26040,{f:2,c:26042},{f:3,c:26046},26050,{f:4,c:26055},26061,{f:2,c:26064},{f:3,c:26067},{f:8,c:26072},26081,{f:2,c:26083},{f:2,c:26090},{f:4,c:26098},{f:2,c:26104},{f:5,c:26107},26113,{f:2,c:26116},{f:3,c:26119},26123,26125,{f:3,c:26128},{f:3,c:26134},{f:3,c:26138},26142,{f:4,c:26145},26150,{f:4,c:26153},26158,26160,{f:2,c:26162},{f:5,c:26167},26173,{f:2,c:26175},{f:7,c:26180},{f:2,
<