From 30b8d1dd08b08e1ba73d74edc1cffab7b6d4ed2b Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Mon, 12 Sep 2011 21:05:52 +0300
Subject: [PATCH 01/11] Use empty strings in shadow encodings array instead of
 undefined.

---
 pdf.js | 56 ++++++++++++++++++++++++++++++--------------------------
 1 file changed, 30 insertions(+), 26 deletions(-)

diff --git a/pdf.js b/pdf.js
index 939d9e21c..ca252242c 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3756,38 +3756,42 @@ var PDFDoc = (function() {
 
 var Encodings = {
   get ExpertEncoding() {
-    return shadow(this, 'ExpertEncoding', [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      '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',
+    return shadow(this, 'ExpertEncoding', ['', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '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',
+      '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',
+      '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',

From 9256a623041d0d13a46cd0dab0857682d5efd7d5 Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Mon, 12 Sep 2011 22:04:43 +0300
Subject: [PATCH 02/11] Use empty strings in mac shadow encodings array instead
 of undefined.

---
 pdf.js | 71 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 37 insertions(+), 34 deletions(-)

diff --git a/pdf.js b/pdf.js
index ca252242c..58dc28bcd 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3801,44 +3801,47 @@ var Encodings = {
     ]);
   },
   get MacExpertEncoding() {
-    return shadow(this, 'MacExpertEncoding', [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle',
-      'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall',
-      'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',
-      'onedotenleader', 'comma', 'hyphen', 'period', 'fraction',
-      'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',
-      'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle',
-      'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon',,
-      'threequartersemdash',, 'questionsmall',,,,, 'Ethsmall',,, 'onequarter',
-      'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',
-      'seveneighths', 'onethird', 'twothirds',,,,,,, 'ff', 'fi', 'fl', 'ffi',
-      'ffl', 'parenleftinferior',, 'parenrightinferior', 'Circumflexsmall',
+    return shadow(this, 'MacExpertEncoding', [, '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall',
+      'centoldstyle', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall',
+      'Acutesmall', 'parenleftsuperior', 'parenrightsuperior',
+      'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period',
+      'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle',
+      'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle',
+      'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon',
+      '', 'threequartersemdash', '', 'questionsmall', '', '', '', '',
+      'Ethsmall', '', '', 'onequarter', 'onehalf', 'threequarters',
+      'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird',
+      'twothirds', '', '', '', '', '', '', 'ff', 'fi', 'fl', 'ffi', 'ffl',
+      'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall',
       'hypheninferior', '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',,,
-      'asuperior', 'centsuperior',,,,, 'Aacutesmall', 'Agravesmall',
-      'Acircumflexsmall', 'Adieresissmall', 'Atildesmall', 'Aringsmall',
-      'Ccedillasmall', 'Eacutesmall', 'Egravesmall', 'Ecircumflexsmall',
-      'Edieresissmall', 'Iacutesmall', 'Igravesmall', 'Icircumflexsmall',
-      'Idieresissmall', 'Ntildesmall', 'Oacutesmall', 'Ogravesmall',
-      'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', 'Uacutesmall',
-      'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall',, 'eightsuperior',
-      'fourinferior', 'threeinferior', 'sixinferior', 'eightinferior',
-      'seveninferior', 'Scaronsmall',, 'centinferior', 'twoinferior',,
-      'Dieresissmall',, 'Caronsmall', 'osuperior', 'fiveinferior',,
-      'commainferior', 'periodinferior', 'Yacutesmall',, 'dollarinferior',,
-      'Thornsmall',, 'nineinferior', 'zeroinferior', 'Zcaronsmall', 'AEsmall',
-      'Oslashsmall', 'questiondownsmall', 'oneinferior', 'Lslashsmall',,,,,,,
-      'Cedillasmall',,,,,, 'OEsmall', 'figuredash', 'hyphensuperior',,,,,
-      'exclamdownsmall',, 'Ydieresissmall',, 'onesuperior', 'twosuperior',
-      'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior',
-      'sevensuperior', 'ninesuperior', 'zerosuperior',, 'esuperior',
-      'rsuperior', 'tsuperior',,, 'isuperior', 'ssuperior', 'dsuperior',,,,,,
-      'lsuperior', 'Ogoneksmall', 'Brevesmall', 'Macronsmall', 'bsuperior',
-      'nsuperior', 'msuperior', 'commasuperior', 'periodsuperior',
-      'Dotaccentsmall', 'Ringsmall'
+      'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '',
+      'asuperior', 'centsuperior', '', '', '', '', 'Aacutesmall',
+      'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', 'Atildesmall',
+      'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall',
+      'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall',
+      'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall',
+      'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall',
+      'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '',
+      'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior',
+      'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior',
+      'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior',
+      'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '',
+      'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior',
+      'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall',
+      'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '',
+      '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '',
+      '', 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior',
+      'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',
+      'sixsuperior', 'sevensuperior', 'ninesuperior', 'zerosuperior', '',
+      'esuperior', 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior',
+      'dsuperior', '', '', '', '', '', 'lsuperior', 'Ogoneksmall',
+      'Brevesmall', 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior',
+      'commasuperior', 'periodsuperior', 'Dotaccentsmall', 'Ringsmall'
     ]);
   },
   get MacRomanEncoding() {

From 68ceff4081758a751d0d6b3d3f09d6ed54e289d7 Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:17:05 +0300
Subject: [PATCH 03/11] Use empty strings in mac roman shadow encodings array
 instead of undefined.

---
 pdf.js | 73 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 37 insertions(+), 36 deletions(-)

diff --git a/pdf.js b/pdf.js
index 58dc28bcd..7920a865b 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3801,9 +3801,9 @@ var Encodings = {
     ]);
   },
   get MacExpertEncoding() {
-    return shadow(this, 'MacExpertEncoding', [, '', '', '', '', '', '', '', '',
+    return shadow(this, 'MacExpertEncoding', ['', '', '', '', '', '', '', '',
       '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
-      '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall',
+      '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall',
       'centoldstyle', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall',
       'Acutesmall', 'parenleftsuperior', 'parenrightsuperior',
       'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period',
@@ -3845,40 +3845,41 @@ var Encodings = {
     ]);
   },
   get MacRomanEncoding() {
-    return shadow(this, 'MacRomanEncoding', [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
-      'ampersand', 'quotesingle', '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', 'grave', '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',, 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde',
-      'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis',
-      'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex',
-      'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde',
-      'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute',
-      'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent',
-      'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered',
-      'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE',
-      'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen',
-      'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral',
-      'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown',
-      'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta',
-      'guillemotleft', 'guillemotright', 'ellipsis', 'space', 'Agrave',
-      'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft',
-      'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge',
-      'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft',
-      'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered',
-      'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex',
-      'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex',
-      'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve',
-      'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde',
-      'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut',
-      'ogonek', 'caron'
+    return shadow(this, 'MacRomanEncoding', ['', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign',
+      'dollar', 'percent', 'ampersand', 'quotesingle', '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',
+      'grave', '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', '', 'Adieresis', 'Aring',
+      'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute',
+      'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla',
+      'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave',
+      'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex',
+      'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis',
+      'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph',
+      'germandbls', 'registered', 'copyright', 'trademark', 'acute',
+      'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus',
+      'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation',
+      'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega',
+      'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical',
+      'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright',
+      'ellipsis', 'space', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash',
+      'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright',
+      'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency',
+      'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl',
+      'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand',
+      'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute',
+      'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple',
+      'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex',
+      'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla',
+      'hungarumlaut', 'ogonek', 'caron'
     ]);
   },
   get StandardEncoding() {

From 7a1c02bc9e8ead7c88e9a4d469919f8a624c9a48 Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:30:41 +0300
Subject: [PATCH 04/11] Use empty strings in standard shadow encodings array
 instead of undefined.

---
 pdf.js | 47 +++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)

diff --git a/pdf.js b/pdf.js
index 7920a865b..afcc985e7 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3883,28 +3883,31 @@ var Encodings = {
     ]);
   },
   get StandardEncoding() {
-    return shadow(this, 'StandardEncoding', [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      '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'
+    return shadow(this, 'StandardEncoding', ['', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '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'
     ]);
   },
   get WinAnsiEncoding() {

From 2b4e722a1c2c08c32878d1e12577b81edfe912a3 Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:42:31 +0300
Subject: [PATCH 05/11] Use empty strings in win ansi shadow encodings array
 instead of undefined.

---
 pdf.js | 71 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 36 insertions(+), 35 deletions(-)

diff --git a/pdf.js b/pdf.js
index afcc985e7..a9c0cfc20 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3911,41 +3911,42 @@ var Encodings = {
     ]);
   },
   get WinAnsiEncoding() {
-    return shadow(this, 'WinAnsiEncoding',
-     [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',
-      'ampersand', 'quotesingle', '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', 'grave', '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', 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin',
-      'quotedblbase', 'ellipsis', 'dagger', 'daggerdbl', 'circumflex',
-      'perthousand', 'Scaron', 'guilsinglleft', 'OE', 'bullet', 'Zcaron',
-      'bullet', 'bullet', 'quoteleft', 'quoteright', 'quotedblleft',
-      'quotedblright', 'bullet', 'endash', 'emdash', 'tilde', 'trademark',
-      'scaron', 'guilsinglright', 'oe', 'bullet', 'zcaron', 'Ydieresis',
-      'space', 'exclamdown', 'cent', 'sterling', 'currency', 'yen', 'brokenbar',
-      'section', 'dieresis', 'copyright', 'ordfeminine', 'guillemotleft',
-      'logicalnot', 'hyphen', 'registered', 'macron', 'degree', 'plusminus',
-      'twosuperior', 'threesuperior', 'acute', 'mu', 'paragraph',
-      'periodcentered', 'cedilla', 'onesuperior', 'ordmasculine',
-      'guillemotright', 'onequarter', 'onehalf', 'threequarters',
-      'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis',
-      'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex',
-      'Edieresis', 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth',
-      'Ntilde', 'Ograve', 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis',
-      'multiply', 'Oslash', 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis',
-      'Yacute', 'Thorn', 'germandbls', 'agrave', 'aacute', 'acircumflex',
-      'atilde', 'adieresis', 'aring', 'ae', 'ccedilla', 'egrave', 'eacute',
-      'ecircumflex', 'edieresis', 'igrave', 'iacute', 'icircumflex',
-      'idieresis', 'eth', 'ntilde', 'ograve', 'oacute', 'ocircumflex',
-      'otilde', 'odieresis', 'divide', 'oslash', 'ugrave', 'uacute',
-      'ucircumflex', 'udieresis', 'yacute', 'thorn', 'ydieresis'
+    return shadow(this, 'WinAnsiEncoding', ['', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign',
+      'dollar', 'percent', 'ampersand', 'quotesingle', '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',
+      'grave', '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', 'bullet', 'Euro',
+      'bullet', 'quotesinglbase', 'florin', 'quotedblbase', 'ellipsis',
+      'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron',
+      'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet',
+      'quoteleft', 'quoteright', 'quotedblleft', 'quotedblright', 'bullet',
+      'endash', 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright',
+      'oe', 'bullet', 'zcaron', 'Ydieresis', 'space', 'exclamdown', 'cent',
+      'sterling', 'currency', 'yen', 'brokenbar', 'section', 'dieresis',
+      'copyright', 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen',
+      'registered', 'macron', 'degree', 'plusminus', 'twosuperior',
+      'threesuperior', 'acute', 'mu', 'paragraph', 'periodcentered',
+      'cedilla', 'onesuperior', 'ordmasculine', 'guillemotright', 'onequarter',
+      'onehalf', 'threequarters', 'questiondown', 'Agrave', 'Aacute',
+      'Acircumflex', 'Atilde', 'Adieresis', 'Aring', 'AE', 'Ccedilla',
+      'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', 'Igrave', 'Iacute',
+      'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 'Oacute',
+      'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', 'Ugrave',
+      'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 'germandbls',
+      'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 'aring', 'ae',
+      'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', 'igrave',
+      'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve',
+      'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash',
+      'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn',
+      'ydieresis'
     ]);
   },
   get symbolsEncoding() {

From 67e264e579a7759d53787c1bc95ebfc2094bfc9b Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:47:13 +0300
Subject: [PATCH 06/11] Use empty strings in symbols shadow encodings array
 instead of undefined.

---
 pdf.js | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/pdf.js b/pdf.js
index a9c0cfc20..b54bdce74 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3950,27 +3950,28 @@ var Encodings = {
     ]);
   },
   get symbolsEncoding() {
-    return shadow(this, 'symbolsEncoding',
-      [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent',
-      'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath',
-      'plus', 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two',
-      'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon',
-      'semicolon', 'less', 'equal', 'greater', 'question', 'congruent',
-      'Alpha', 'Beta', 'Chi', 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta',
-      'Iota', 'theta1', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi',
-      'Theta', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'sigma1', 'Omega', 'Xi',
-      'Psi', 'Zeta', 'bracketleft', 'therefore', 'bracketright',
+    return shadow(this, 'symbolsEncoding', ['', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', 'space', 'exclam', 'universal', 'numbersign',
+      'existential', 'percent', 'ampersand', 'suchthat', 'parenleft',
+      'parenright', 'asteriskmath', 'plus', 'comma', 'minus', 'period',
+      'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
+      'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater',
+      'question', 'congruent', 'Alpha', 'Beta', 'Chi', 'Delta', 'Epsilon',
+      'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', 'Lambda', 'Mu', 'Nu',
+      'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'sigma1',
+      'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', 'therefore', 'bracketright',
       'perpendicular', 'underscore', 'radicalex', 'alpha', 'beta', 'chi',
       'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', 'phi1', 'kappa',
       'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', 'sigma', 'tau',
       'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', 'braceleft', 'bar',
-      'braceright', 'similar',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 'Euro',
-      'Upsilon1', 'minute', 'lessequal', 'fraction', 'infinity', 'florin',
-      'club', 'diamond', 'heart', 'spade', 'arrowboth', 'arrowleft', 'arrowup',
-      'arrowright', 'arrowdown', 'degree', 'plusminus', 'second',
-      'greaterequal', 'multiply', 'proportional', 'partialdiff', 'bullet',
-      'divide', 'notequal', 'equivalence', 'approxequal', 'ellipsis',
+      'braceright', 'similar', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', 'fraction',
+      'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', 'arrowboth',
+      'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', 'plusminus',
+      'second', 'greaterequal', 'multiply', 'proportional', 'partialdiff',
+      'bullet', 'divide', 'notequal', 'equivalence', 'approxequal', 'ellipsis',
       'arrowvertex', 'arrowhorizex', 'carriagereturn', 'aleph', 'Ifraktur',
       'Rfraktur', 'weierstrass', 'circlemultiply', 'circleplus', 'emptyset',
       'intersection', 'union', 'propersuperset', 'reflexsuperset', 'notsubset',
@@ -3981,10 +3982,11 @@ var Encodings = {
       'arrowdbldown', 'lozenge', 'angleleft', 'registersans', 'copyrightsans',
       'trademarksans', 'summation', 'parenlefttp', 'parenleftex',
       'parenleftbt', 'bracketlefttp', 'bracketleftex', 'bracketleftbt',
-      'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex',, 'angleright',
-      'integral', 'integraltp', 'integralex', 'integralbt', 'parenrighttp',
-      'parenrightex', 'parenrightbt', 'bracketrighttp', 'bracketrightex',
-      'bracketrightbt', 'bracerighttp', 'bracerightmid', 'bracerightbt'
+      'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', '',
+      'angleright', 'integral', 'integraltp', 'integralex', 'integralbt',
+      'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp',
+      'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid',
+      'bracerightbt'
     ]);
   },
   get zapfDingbatsEncoding() {

From 9857287806c1306cb03948eabe94b164236cd03f Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:52:05 +0300
Subject: [PATCH 07/11] Use empty strings in zaph dingbats shadow encodings
 array instead of undefined.

---
 pdf.js | 48 +++++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/pdf.js b/pdf.js
index b54bdce74..f131c982c 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3990,29 +3990,31 @@ var Encodings = {
     ]);
   },
   get zapfDingbatsEncoding() {
-    return shadow(this, 'zapfDingbatsEncoding',
-      [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-      'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117',
-      'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19',
-      'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6',
-      'a7', 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35',
-      'a36', 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45',
-      'a46', 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55',
-      'a56', 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65',
-      'a66', 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203',
-      'a75', 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84',
-      'a97', 'a98', 'a99', 'a100',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 'a101',
-      'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110',
-      'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127',
-      'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136',
-      'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145',
-      'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154',
-      'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164',
-      'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171',
-      'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179',
-      'a193', 'a180', 'a199', 'a181', 'a200', 'a182',, 'a201', 'a183', 'a184',
-      'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189',
-      'a190', 'a191'
+    return shadow(this, 'zapfDingbatsEncoding', ['', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', 'space', 'a1', 'a2', 'a202', 'a3', 'a4',
+      'a5', 'a119', 'a118', 'a117', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16',
+      'a105', 'a17', 'a18', 'a19', 'a20', 'a21', 'a22', 'a23', 'a24', 'a25',
+      'a26', 'a27', 'a28', 'a6', 'a7', 'a8', 'a9', 'a10', 'a29', 'a30', 'a31',
+      'a32', 'a33', 'a34', 'a35', 'a36', 'a37', 'a38', 'a39', 'a40', 'a41',
+      'a42', 'a43', 'a44', 'a45', 'a46', 'a47', 'a48', 'a49', 'a50', 'a51',
+      'a52', 'a53', 'a54', 'a55', 'a56', 'a57', 'a58', 'a59', 'a60', 'a61',
+      'a62', 'a63', 'a64', 'a65', 'a66', 'a67', 'a68', 'a69', 'a70', 'a71',
+      'a72', 'a73', 'a74', 'a203', 'a75', 'a204', 'a76', 'a77', 'a78', 'a79',
+      'a81', 'a82', 'a83', 'a84', 'a97', 'a98', 'a99', 'a100', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+      '', '', '', '', '', '', '', '', '', '', '', '', 'a101', 'a102', 'a103',
+      'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110', 'a109', 'a120',
+      'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127', 'a128', 'a129',
+      'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136', 'a137', 'a138',
+      'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145', 'a146', 'a147',
+      'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154', 'a155', 'a156',
+      'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164', 'a196', 'a165',
+      'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171', 'a172', 'a173',
+      'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179', 'a193', 'a180',
+      'a199', 'a181', 'a200', 'a182', '', 'a201', 'a183', 'a184', 'a197',
+      'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189', 'a190',
+      'a191'
     ]);
   }
 };

From 7a421794a2b2d41810acce148c9df8a6bdbb74f2 Mon Sep 17 00:00:00 2001
From: Kalervo Kujala <kkujala@>
Date: Tue, 13 Sep 2011 20:56:59 +0300
Subject: [PATCH 08/11] Use zeroes in PDFStringTranslateTable array instead of
 undefined.

---
 pdf.js | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/pdf.js b/pdf.js
index f131c982c..f4cbcbfec 100644
--- a/pdf.js
+++ b/pdf.js
@@ -85,12 +85,15 @@ function stringToBytes(str) {
 }
 
 var PDFStringTranslateTable = [
-  ,,,,,,,,,,,,,,,,,,,,,,,, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA,
-  0x2DC,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-  ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 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, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,
   0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,
-  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152,
-  0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E,, 0x20AC
+  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,
+  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC
 ];
 
 function stringToPDFString(str) {

From 94da20d77653b41142b836e7aa045429f438053a Mon Sep 17 00:00:00 2001
From: notmasteryet <async.processingjs@yahoo.com>
Date: Tue, 13 Sep 2011 19:23:49 -0500
Subject: [PATCH 09/11] Disable encryption when a ToUnicode stream is used in a
 font

---
 pdf.js                      | 9 ++++++---
 test/pdfs/artofwar.pdf.link | 1 +
 test/test_manifest.json     | 6 ++++++
 3 files changed, 13 insertions(+), 3 deletions(-)
 create mode 100644 test/pdfs/artofwar.pdf.link

diff --git a/pdf.js b/pdf.js
index 939d9e21c..019961f15 100644
--- a/pdf.js
+++ b/pdf.js
@@ -3185,7 +3185,7 @@ var XRef = (function() {
         return obj;
       return this.fetch(obj);
     },
-    fetch: function(ref) {
+    fetch: function(ref, suppressEncryption) {
       var num = ref.num;
       var e = this.cache[num];
       if (e)
@@ -3216,7 +3216,7 @@ var XRef = (function() {
           }
           error('bad XRef entry');
         }
-        if (this.encrypt) {
+        if (this.encrypt && !suppressEncryption) {
           e = parser.getObj(this.encrypt.createCipherTransform(num, gen));
         } else {
           e = parser.getObj();
@@ -4356,7 +4356,10 @@ var PartialEvaluator = (function() {
       }
 
       if (type == 'TrueType' && dict.has('ToUnicode') && differences) {
-        var cmapObj = xref.fetchIfRef(dict.get('ToUnicode'));
+        var cmapObj = dict.get('ToUnicode');
+        if (IsRef(cmapObj)) {
+          cmapObj = xref.fetch(cmapObj, true);
+        }
         if (IsName(cmapObj)) {
           error('ToUnicode file cmap translation not implemented');
         } else if (IsStream(cmapObj)) {
diff --git a/test/pdfs/artofwar.pdf.link b/test/pdfs/artofwar.pdf.link
new file mode 100644
index 000000000..f70b9e235
--- /dev/null
+++ b/test/pdfs/artofwar.pdf.link
@@ -0,0 +1 @@
+http://www.puppetpress.com/classics/ArtofWarbySunTzu.pdf
diff --git a/test/test_manifest.json b/test/test_manifest.json
index 1155195cb..3734ee9e4 100644
--- a/test/test_manifest.json
+++ b/test/test_manifest.json
@@ -109,5 +109,11 @@
        "link": true,
        "rounds": 1,
        "type": "eq"
+    },
+    {  "id": "artofwar",
+       "file": "pdfs/artofwar.pdf",
+       "link": true,
+       "rounds": 1,
+       "type": "eq"
     }
 ]

From 4e1a5296d20f887566e48dc962b4c41adbaa5ab8 Mon Sep 17 00:00:00 2001
From: notmasteryet <async.processingjs@yahoo.com>
Date: Tue, 13 Sep 2011 20:24:24 -0500
Subject: [PATCH 10/11] Fixing and optimizing isYcckImage()

---
 pdf.js | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/pdf.js b/pdf.js
index f4cbcbfec..3255c5dad 100644
--- a/pdf.js
+++ b/pdf.js
@@ -866,13 +866,15 @@ var JpegStream = (function() {
     var maxBytesScanned = Math.max(bytes.length - 16, 1024);
     // Looking for APP14, 'Adobe' and transform = 2
     for (var i = 0; i < maxBytesScanned; ++i) {
-      if (bytes[i] == 0xFF || bytes[i + 1] == 0xEE ||
-          bytes[i + 2] == 0x00 || bytes[i + 3] == 0x0E ||
-          bytes[i + 4] == 0x41 || bytes[i + 5] == 0x64 ||
-          bytes[i + 6] == 0x6F || bytes[i + 7] == 0x62 ||
-          bytes[i + 8] == 0x65 || bytes[i + 9] == 0x00 ||
-          bytes[i + 15] == 0x02)
-          return true;
+      if (bytes[i] == 0xFF && bytes[i + 1] == 0xEE &&
+          bytes[i + 2] == 0x00 && bytes[i + 3] == 0x0E &&
+          bytes[i + 4] == 0x41 && bytes[i + 5] == 0x64 &&
+          bytes[i + 6] == 0x6F && bytes[i + 7] == 0x62 &&
+          bytes[i + 8] == 0x65 && bytes[i + 9] == 0x00)
+          return bytes[i + 15] == 0x02;
+      // scanning until frame tag
+      if (bytes[i] == 0xFF && bytes[i + 1] == 0xC0)
+        break;
     }
     return false;
   }

From 361d53e1a9528d3658196733eaada25bad119d3e Mon Sep 17 00:00:00 2001
From: notmasteryet <async.processingjs@yahoo.com>
Date: Tue, 13 Sep 2011 22:03:46 -0500
Subject: [PATCH 11/11] Fixing truncated streams with multiple filters

---
 pdf.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pdf.js b/pdf.js
index f4cbcbfec..1effd1826 100644
--- a/pdf.js
+++ b/pdf.js
@@ -2892,6 +2892,8 @@ var Parser = (function() {
             if (IsArray(paramsArray) && (i in paramsArray))
               params = paramsArray[i];
             stream = this.makeFilter(stream, filter.name, length, params);
+            // after the first stream the length variable is invalid
+            length = null;
           }
         }
       }