1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
package cmap ;import (_d "bufio";_f "bytes";_cc "encoding/hex";_fc "errors";_g "fmt";_b "github.com/unidoc/unipdf/v4/common";_eg "github.com/unidoc/unipdf/v4/core";_ed "github.com/unidoc/unipdf/v4/internal/cmap/bcmaps";_dd "io";_gb "sort";_e "strconv";
_a "strings";_cf "unicode/utf16";);func (cmap *CMap )parseVersion ()error {_dgbc :="";_dfd :=false ;for _eae :=0;_eae < 3&&!_dfd ;_eae ++{_cbba ,_gfe :=cmap .parseObject ();if _gfe !=nil {return _gfe ;};switch _dffb :=_cbba .(type ){case cmapOperand :switch _dffb .Operand {case "\u0064\u0065\u0066":_dfd =true ;
default:_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0070\u0061\u0072\u0073\u0065\u0056e\u0072\u0073\u0069\u006f\u006e\u003a \u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076",_cbba );
return ErrBadCMap ;};case cmapInt :_dgbc =_g .Sprintf ("\u0025\u0064",_dffb ._gffac );case cmapFloat :_dgbc =_g .Sprintf ("\u0025\u0066",_dffb ._dagf );case cmapString :_dgbc =_dffb .String ;default:_b .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020p\u0061\u0072\u0073\u0065Ver\u0073io\u006e\u003a\u0020\u0042\u0061\u0064\u0020ty\u0070\u0065\u002e\u0020\u006f\u003d\u0025#\u0076",_cbba );
};};cmap ._de =_dgbc ;return nil ;};type charRange struct{_bf CharCode ;_bfd CharCode ;};func _cge (_dded string )string {_fgde :=[]rune (_dded );_ef :=make ([]string ,len (_fgde ));for _dgb ,_cbd :=range _fgde {_ef [_dgb ]=_g .Sprintf ("\u0025\u0030\u0034\u0078",_cbd );
};return _g .Sprintf ("\u003c\u0025\u0073\u003e",_a .Join (_ef ,""));};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func (cmap *CMap )Name ()string {return cmap ._ea };func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_bgd :=_da (name );
if _bgd !=nil {return nil ,_bgd ;};if cmap ._agc ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_dfg ,_bgd :=_da (cmap ._agc );if _bgd !=nil {return nil ,_bgd ;};for _bfg ,_gg :=range _dfg ._dg {if _ ,_bc :=cmap ._dg [_bfg ];!_bc {cmap ._dg [_bfg ]=_gg ;
};};cmap ._fa =append (cmap ._fa ,_dfg ._fa ...);cmap .computeInverseMappings ();return cmap ,nil ;};const (_eggc =100;_ddfb ="\u000a\u002f\u0043\u0049\u0044\u0049\u006e\u0069\u0074\u0020\u002f\u0050\u0072\u006fc\u0053\u0065\u0074\u0020\u0066\u0069\u006e\u0064\u0072es\u006fu\u0072c\u0065 \u0062\u0065\u0067\u0069\u006e\u000a\u0031\u0032\u0020\u0064\u0069\u0063\u0074\u0020\u0062\u0065\u0067\u0069n\u000a\u0062\u0065\u0067\u0069\u006e\u0063\u006d\u0061\u0070\n\u002f\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065m\u0049\u006e\u0066\u006f\u0020\u003c\u003c\u0020\u002f\u0052\u0065\u0067\u0069\u0073t\u0072\u0079\u0020\u0028\u0041\u0064\u006f\u0062\u0065\u0029\u0020\u002f\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0028\u0055\u0043\u0053)\u0020\u002f\u0053\u0075\u0070p\u006c\u0065\u006d\u0065\u006et\u0020\u0030\u0020\u003e\u003e\u0020\u0064\u0065\u0066\u000a\u002f\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u002f\u0041\u0064\u006f\u0062\u0065-\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0055\u0043\u0053\u0020\u0064\u0065\u0066\u000a\u002fC\u004d\u0061\u0070\u0054\u0079\u0070\u0065\u0020\u0032\u0020\u0064\u0065\u0066\u000a\u0031\u0020\u0062\u0065\u0067\u0069\u006e\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063e\u0072\u0061n\u0067\u0065\n\u003c\u0030\u0030\u0030\u0030\u003e\u0020<\u0046\u0046\u0046\u0046\u003e\u000a\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065\u000a";
_bfae ="\u0065\u006e\u0064\u0063\u006d\u0061\u0070\u000a\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u0063ur\u0072e\u006e\u0074\u0064\u0069\u0063\u0074\u0020\u002f\u0043\u004d\u0061\u0070 \u0064\u0065\u0066\u0069\u006e\u0065\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0020\u0070\u006fp\u000a\u0065\u006e\u0064\u000a\u0065\u006e\u0064\u000a";
);func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_egg :=make (map[CharCode ]string ,len (codeToRune ));for _bef ,_ad :=range codeToRune {_egg [_bef ]=string (_ad );};cmap :=&CMap {_ea :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_gf :2,_cfa :16,_dfc :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_fa :[]Codespace {{Low :0,High :0xffff}},_gfb :_egg ,_be :make (map[string ]CharCode ,len (codeToRune )),_dg :make (map[CharCode ]CharCode ,len (codeToRune )),_cff :make (map[CharCode ]CharCode ,len (codeToRune ))};
cmap .computeInverseMappings ();return cmap ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_b .Log .Trace ("\u004c\u006fa\u0064\u0043\u006d\u0061\u0070\u0046\u0072\u006f\u006d\u0044\u0061\u0074\u0061\u003a\u0020\u0069\u0073\u0053\u0069\u006d\u0070\u006ce=\u0025\u0074",isSimple );
cmap :=_ba (isSimple );cmap .cMapParser =_dabf (data );_gde :=cmap .parse ();if _gde !=nil {return nil ,_gde ;};if len (cmap ._fa )==0{if cmap ._agc !=""{return cmap ,nil ;};_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0063\u006d\u0061p=\u0025\u0073",cmap );
};cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_dag ,_bcg :=cmap ._dg [code ];return _dag ,_bcg ;};func (cmap *CMap )toBfData ()string {if len (cmap ._gfb )==0{return "";};_ace :=make ([]CharCode ,0,len (cmap ._gfb ));
for _geb :=range cmap ._gfb {_ace =append (_ace ,_geb );};_gb .Slice (_ace ,func (_gad ,_gbf int )bool {return _ace [_gad ]< _ace [_gbf ]});var _beg []charRange ;_dfcf :=charRange {_ace [0],_ace [0]};_aed :=cmap ._gfb [_ace [0]];for _ ,_bdg :=range _ace [1:]{_gba :=cmap ._gfb [_bdg ];
if _bdg ==_dfcf ._bfd +1&&_eab (_gba )==_eab (_aed )+1{_dfcf ._bfd =_bdg ;}else {_beg =append (_beg ,_dfcf );_dfcf ._bf ,_dfcf ._bfd =_bdg ,_bdg ;};_aed =_gba ;};_beg =append (_beg ,_dfcf );var _cef []CharCode ;var _fgd []fbRange ;for _ ,_bde :=range _beg {if _bde ._bf ==_bde ._bfd {_cef =append (_cef ,_bde ._bf );
}else {_fgd =append (_fgd ,fbRange {_fd :_bde ._bf ,_df :_bde ._bfd ,_bfe :cmap ._gfb [_bde ._bf ]});};};_b .Log .Trace ("\u0063\u0068ar\u0052\u0061\u006eg\u0065\u0073\u003d\u0025d f\u0062Ch\u0061\u0072\u0073\u003d\u0025\u0064\u0020fb\u0052\u0061\u006e\u0067\u0065\u0073\u003d%\u0064",len (_beg ),len (_cef ),len (_fgd ));
var _baa []string ;if len (_cef )> 0{_aec :=(len (_cef )+_eggc -1)/_eggc ;for _gc :=0;_gc < _aec ;_gc ++{_bae :=_dgbd (len (_cef )-_gc *_eggc ,_eggc );_baa =append (_baa ,_g .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_bae ));
for _eddc :=0;_eddc < _bae ;_eddc ++{_ggf :=_cef [_gc *_eggc +_eddc ];_fbf :=cmap ._gfb [_ggf ];_baa =append (_baa ,_g .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_ggf ,_cge (_fbf )));};_baa =append (_baa ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");
};};if len (_fgd )> 0{_dbf :=(len (_fgd )+_eggc -1)/_eggc ;for _fbd :=0;_fbd < _dbf ;_fbd ++{_fgc :=_dgbd (len (_fgd )-_fbd *_eggc ,_eggc );_baa =append (_baa ,_g .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_fgc ));
for _gca :=0;_gca < _fgc ;_gca ++{_dfa :=_fgd [_fbd *_eggc +_gca ];_baa =append (_baa ,_g .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_dfa ._fd ,_dfa ._df ,_cge (_dfa ._bfe )));};_baa =append (_baa ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");
};};return _a .Join (_baa ,"\u000a");};func (_dcfc *cMapParser )parseDict ()(cmapDict ,error ){_b .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_aaf :=_gaf ();_bedg ,_ :=_dcfc ._fcgc .ReadByte ();
if _bedg !='<'{return _aaf ,ErrBadCMapDict ;};_bedg ,_ =_dcfc ._fcgc .ReadByte ();if _bedg !='<'{return _aaf ,ErrBadCMapDict ;};for {_dcfc .skipSpaces ();_bdaf ,_gacf :=_dcfc ._fcgc .Peek (2);if _gacf !=nil {return _aaf ,_gacf ;};if (_bdaf [0]=='>')&&(_bdaf [1]=='>'){_dcfc ._fcgc .ReadByte ();
_dcfc ._fcgc .ReadByte ();break ;};_beag ,_gacf :=_dcfc .parseName ();_b .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_beag .Name );if _gacf !=nil {_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0052\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u006e\u0061\u006d\u0065\u002e\u0020\u0065\u0072r=\u0025\u0076",_gacf );
return _aaf ,_gacf ;};_dcfc .skipSpaces ();_egga ,_gacf :=_dcfc .parseObject ();if _gacf !=nil {return _aaf ,_gacf ;};_aaf .Dict [_beag .Name ]=_egga ;_dcfc .skipSpaces ();_bdaf ,_gacf =_dcfc ._fcgc .Peek (3);if _gacf !=nil {return _aaf ,_gacf ;};if string (_bdaf )=="\u0064\u0065\u0066"{_dcfc ._fcgc .Discard (3);
};};return _aaf ,nil ;};type cmapString struct{String string ;};func (_gage *cMapParser )parseNumber ()(cmapObject ,error ){_dbgg ,_fcb :=_eg .ParseNumber (_gage ._fcgc );if _fcb !=nil {return nil ,_fcb ;};switch _ffb :=_dbgg .(type ){case *_eg .PdfObjectFloat :return cmapFloat {float64 (*_ffb )},nil ;
case *_eg .PdfObjectInteger :return cmapInt {int64 (*_ffb )},nil ;};return nil ,_g .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_dbgg );};func NewCIDSystemInfo (obj _eg .PdfObject )(_cb CIDSystemInfo ,_gd error ){_bb ,_ddf :=_eg .GetDict (obj );
if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_dfe ,_ddf :=_eg .GetStringVal (_bb .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_ddg ,_ddf :=_eg .GetStringVal (_bb .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));
if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};_ee ,_ddf :=_eg .GetIntVal (_bb .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_ddf {return CIDSystemInfo {},_eg .ErrTypeError ;};return CIDSystemInfo {Registry :_dfe ,Ordering :_ddg ,Supplement :_ee },nil ;
};func (cmap *CMap )parseWMode ()error {var _bfgc int ;_cba :=false ;for _bga :=0;_bga < 3&&!_cba ;_bga ++{_gbc ,_dad :=cmap .parseObject ();if _dad !=nil {return _dad ;};switch _cbb :=_gbc .(type ){case cmapOperand :switch _cbb .Operand {case "\u0064\u0065\u0066":_cba =true ;
default:_b .Log .Error ("\u0070\u0061\u0072\u0073\u0065\u0057\u004d\u006f\u0064\u0065:\u0020\u0073\u0074\u0061\u0074\u0065\u0020e\u0072\u0072\u006f\u0072\u002e\u0020\u006f\u003d\u0025\u0023\u0076",_gbc );return ErrBadCMap ;};case cmapInt :_bfgc =int (_cbb ._gffac );
};};cmap ._bea =integer {_bcd :true ,_cdf :_bfgc };return nil ;};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};type CharCode uint32 ;func _eab (_gab string )rune {_ecf :=[]rune (_gab );return _ecf [len (_ecf )-1]};func (cmap *CMap )String ()string {_ga :=cmap ._dfc ;
_fdd :=[]string {_g .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._cfa ),_g .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._gf )};if cmap ._de !=""{_fdd =append (_fdd ,_g .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._de ));
};if cmap ._agc !=""{_fdd =append (_fdd ,_g .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._agc ));};_fdd =append (_fdd ,_g .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_ga .String ()));
if len (cmap ._fa )> 0{_fdd =append (_fdd ,_g .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._fa )));};if len (cmap ._gfb )> 0{_fdd =append (_fdd ,_g .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._gfb )));
};return _g .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._ea ,_a .Join (_fdd ,"\u0020"));};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _fcf []CharCode ;if cmap ._cfa ==8{for _ ,_dffd :=range data {_fcf =append (_fcf ,CharCode (_dffd ));
};return _fcf ,true ;};for _fb :=0;_fb < len (data );{_ged ,_eggb ,_gedg :=cmap .matchCode (data [_fb :]);if !_gedg {_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0061\u0074\u0020\u0069\u003d\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",_fb ,data ,string (data ));
return _fcf ,false ;};_fcf =append (_fcf ,_ged );_fb +=_eggb ;};return _fcf ,true ;};func (cmap *CMap )WMode ()(int ,bool ){return cmap ._bea ._cdf ,cmap ._bea ._bcd };func (cmap *CMap )parseBfrange ()error {for {var _caad CharCode ;_fffd ,_fcd :=cmap .parseObject ();
if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ;};switch _ccb :=_fffd .(type ){case cmapOperand :if _ccb .Operand ==_becb {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");
case cmapHexString :_caad =_bccc (_ccb );default:return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _edg CharCode ;_fffd ,_fcd =cmap .parseObject ();if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ;
};switch _degb :=_fffd .(type ){case cmapOperand :_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065\u0020\u0062\u0066r\u0061\u006e\u0067\u0065\u0020\u0074\u0072i\u0070\u006c\u0065\u0074");
return ErrBadCMap ;case cmapHexString :_edg =_bccc (_degb );if _edg > 0xffff{_edg =0xffff;};default:_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fffd );return ErrBadCMap ;
};_fffd ,_fcd =cmap .parseObject ();if _fcd !=nil {if _fcd ==_dd .EOF {break ;};return _fcd ;};switch _aecg :=_fffd .(type ){case cmapArray :if len (_aecg .Array )!=int (_edg -_caad )+1{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u006f\u0066\u0020\u0069\u0074\u0065\u006d\u0073\u0020\u0069\u006e\u0020a\u0072\u0072\u0061\u0079");
return ErrBadCMap ;};for _gbbg :=_caad ;_gbbg <=_edg ;_gbbg ++{_afg :=_aecg .Array [_gbbg -_caad ];_ddgg ,_bdac :=_afg .(cmapHexString );if !_bdac {return _fc .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};_fgg :=_ddff (_ddgg );cmap ._gfb [_gbbg ]=string (_fgg );};case cmapHexString :_gcc :=_ddff (_aecg );_agcg :=len (_gcc );for _efbc :=_caad ;_efbc <=_edg ;_efbc ++{cmap ._gfb [_efbc ]=string (_gcc );if _agcg > 0{_gcc [_agcg -1]++;}else {_b .Log .Debug ("\u004e\u006f\u0020c\u006d\u0061\u0070\u0020\u0074\u0061\u0072\u0067\u0065\u0074\u0020\u0063\u0068\u0061\u0072\u0061\u0063\u0074\u0065\u0072\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065d\u0020\u0066\u006f\u0072\u0020\u0025\u0023\u0076",_efbc );
};if _efbc ==1<<32-1{break ;};};default:_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fffd );return ErrBadCMap ;};};return nil ;};func (cmap *CMap )parseBfchar ()error {for {_ddfbd ,_eec :=cmap .parseObject ();
if _eec !=nil {if _eec ==_dd .EOF {break ;};return _eec ;};var _cegf CharCode ;switch _abd :=_ddfbd .(type ){case cmapOperand :if _abd .Operand ==_fbcc {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");
case cmapHexString :_cegf =_bccc (_abd );default:return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_ddfbd ,_eec =cmap .parseObject ();if _eec !=nil {if _eec ==_dd .EOF {break ;};return _eec ;};var _gdf []rune ;
switch _bbf :=_ddfbd .(type ){case cmapOperand :if _bbf .Operand ==_fbcc {return nil ;};_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020o\u0070\u0065\u0072\u0061\u006e\u0064\u002e\u0020\u0025\u0023\u0076",_bbf );
return ErrBadCMap ;case cmapHexString :_gdf =_ddff (_bbf );case cmapName :_b .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u006e\u0061\u006de\u002e \u0025\u0023\u0076",_bbf );_gdf =[]rune {MissingCodeRune };
default:_b .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0074\u0079\u0070e\u002e \u0025\u0023\u0076",_ddfbd );return ErrBadCMap ;};cmap ._gfb [_cegf ]=string (_gdf );};return nil ;};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _fca ,_aa :=cmap ._gfb [code ];
_aa {return _fca ,true ;};return MissingCodeString ,false ;};type cMapParser struct{_fcgc *_d .Reader };func (cmap *CMap )Bytes ()[]byte {_b .Log .Trace ("\u0063\u006d\u0061\u0070.B\u0079\u0074\u0065\u0073\u003a\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",cmap .String ());
if len (cmap ._eb )> 0{return cmap ._eb ;};cmap ._eb =[]byte (_a .Join ([]string {_ddfb ,cmap .toBfData (),_bfae },"\u000a"));return cmap ._eb ;};func _dgbd (_aaec ,_dfab int )int {if _aaec < _dfab {return _aaec ;};return _dfab ;};func (_cbg *CIDSystemInfo )String ()string {return _g .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_cbg .Registry ,_cbg .Ordering ,_cbg .Supplement );
};func (cmap *CMap )inCodespace (_aae CharCode ,_agf int )bool {for _ ,_ccea :=range cmap ._fa {if _ccea .Low <=_aae &&_aae <=_ccea .High &&_agf ==_ccea .NumBytes {return true ;};};return false ;};func (_fga *cMapParser )parseHexString ()(cmapHexString ,error ){_fga ._fcgc .ReadByte ();
_aefe :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_abg :=_f .Buffer {};for {_fga .skipSpaces ();_gaaf ,_dadc :=_fga ._fcgc .Peek (1);if _dadc !=nil {return cmapHexString {},_dadc ;
};if _gaaf [0]=='>'{_fga ._fcgc .ReadByte ();break ;};_fdag ,_ :=_fga ._fcgc .ReadByte ();if _f .IndexByte (_aefe ,_fdag )>=0{_abg .WriteByte (_fdag );};};if _abg .Len ()%2==1{_b .Log .Debug ("\u0070\u0061rs\u0065\u0048\u0065x\u0053\u0074\u0072\u0069ng:\u0020ap\u0070\u0065\u006e\u0064\u0069\u006e\u0067 '\u0030\u0027\u0020\u0074\u006f\u0020\u0025#\u0071",_abg .String ());
_abg .WriteByte ('0');};_dbgd :=_abg .Len ()/2;_adab ,_ :=_cc .DecodeString (_abg .String ());return cmapHexString {_fdg :_dbgd ,_beca :_adab },nil ;};func (cmap *CMap )Type ()int {return cmap ._gf };var (ErrBadCMap =_fc .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070");
ErrBadCMapComment =_fc .New ("c\u006f\u006d\u006d\u0065\u006e\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0073\u0074a\u0072\u0074\u0020w\u0069t\u0068\u0020\u0025");ErrBadCMapDict =_fc .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074");
);type cmapInt struct{_gffac int64 };type cmapArray struct{Array []cmapObject ;};func (cmap *CMap )computeInverseMappings (){for _fdc ,_ff :=range cmap ._dg {if _ggc ,_bfc :=cmap ._cff [_ff ];!_bfc ||(_bfc &&_ggc > _fdc ){cmap ._cff [_ff ]=_fdc ;};};for _dce ,_ecg :=range cmap ._gfb {if _gee ,_dff :=cmap ._be [_ecg ];
!_dff ||(_dff &&_gee > _dce ){cmap ._be [_ecg ]=_dce ;};};_gb .Slice (cmap ._fa ,func (_dde ,_ebd int )bool {return cmap ._fa [_dde ].Low < cmap ._fa [_ebd ].Low });};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_cg ,_ggg :=cmap .BytesToCharcodes (data );
if !_ggg {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0042\u0079\u0074\u0065s\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069n\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0064\u0061\u0074\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078]\u0020\u0063\u006d\u0061\u0070=\u0025\u0073",data ,cmap );
return "",0;};_deg :=make ([]string ,len (_cg ));var _eea []CharCode ;for _dgf ,_dcf :=range _cg {_fg ,_dgg :=cmap ._gfb [_dcf ];if !_dgg {_eea =append (_eea ,_dcf );_fg =MissingCodeString ;};_deg [_dgf ]=_fg ;};_bbb :=_a .Join (_deg ,"");if len (_eea )> 0{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020C\u0068\u0061\u0072c\u006f\u0064\u0065\u0042y\u0074\u0065\u0073\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070\u002e\u000a"+"\u0009d\u0061t\u0061\u003d\u005b\u0025\u00200\u0032\u0078]\u003d\u0025\u0023\u0071\u000a"+"\u0009\u0063h\u0061\u0072\u0063o\u0064\u0065\u0073\u003d\u0025\u0030\u0032\u0078\u000a"+"\u0009\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003d\u0025\u0064\u0020%\u0030\u0032\u0078\u000a"+"\u0009\u0075\u006e\u0069\u0063\u006f\u0064\u0065\u003d`\u0025\u0073\u0060\u000a"+"\u0009\u0063\u006d\u0061\u0070\u003d\u0025\u0073",data ,string (data ),_cg ,len (_eea ),_eea ,_bbb ,cmap );
};return _bbb ,len (_eea );};func (cmap *CMap )CIDSystemInfo ()CIDSystemInfo {return cmap ._dfc };func (_adde *cMapParser )parseName ()(cmapName ,error ){_eed :="";_cdc :=false ;for {_dgd ,_gdbc :=_adde ._fcgc .Peek (1);if _gdbc ==_dd .EOF {break ;};if _gdbc !=nil {return cmapName {_eed },_gdbc ;
};if !_cdc {if _dgd [0]=='/'{_cdc =true ;_adde ._fcgc .ReadByte ();}else {_b .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u004e\u0061\u006d\u0065\u0020\u0073\u0074a\u0072t\u0069n\u0067 \u0077\u0069\u0074\u0068\u0020\u0025\u0073\u0020\u0028\u0025\u0020\u0078\u0029",_dgd ,_dgd );
return cmapName {_eed },_g .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_dgd [0]);};}else {if _eg .IsWhiteSpace (_dgd [0]){break ;}else if (_dgd [0]=='/')||(_dgd [0]=='[')||(_dgd [0]=='(')||(_dgd [0]==']')||(_dgd [0]=='<')||(_dgd [0]=='>'){break ;
}else if _dgd [0]=='#'{_egf ,_fbg :=_adde ._fcgc .Peek (3);if _fbg !=nil {return cmapName {_eed },_fbg ;};_adde ._fcgc .Discard (3);_ddc ,_fbg :=_cc .DecodeString (string (_egf [1:3]));if _fbg !=nil {return cmapName {_eed },_fbg ;};_eed +=string (_ddc );
}else {_fdae ,_ :=_adde ._fcgc .ReadByte ();_eed +=string (_fdae );};};};return cmapName {_eed },nil ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_ada ,_bac :=cmap ._be [s ];return _ada ,_bac ;};func (_bcbc *cMapParser )parseString ()(cmapString ,error ){_bcbc ._fcgc .ReadByte ();
_fgdec :=_f .Buffer {};_bgfg :=1;for {_cbdc ,_cca :=_bcbc ._fcgc .Peek (1);if _cca !=nil {return cmapString {_fgdec .String ()},_cca ;};if _cbdc [0]=='\\'{_bcbc ._fcgc .ReadByte ();_fcae ,_bfbg :=_bcbc ._fcgc .ReadByte ();if _bfbg !=nil {return cmapString {_fgdec .String ()},_bfbg ;
};if _eg .IsOctalDigit (_fcae ){_cae ,_gefc :=_bcbc ._fcgc .Peek (2);if _gefc !=nil {return cmapString {_fgdec .String ()},_gefc ;};var _eef []byte ;_eef =append (_eef ,_fcae );for _ ,_gaa :=range _cae {if _eg .IsOctalDigit (_gaa ){_eef =append (_eef ,_gaa );
}else {break ;};};_bcbc ._fcgc .Discard (len (_eef )-1);_b .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_eef );_aaef ,_gefc :=_e .ParseUint (string (_eef ),8,32);if _gefc !=nil {return cmapString {_fgdec .String ()},_gefc ;
};_fgdec .WriteByte (byte (_aaef ));continue ;};switch _fcae {case 'n':_fgdec .WriteByte ('\n');case 'r':_fgdec .WriteByte ('\r');case 't':_fgdec .WriteByte ('\t');case 'b':_fgdec .WriteByte ('\b');case 'f':_fgdec .WriteByte ('\f');case '(':_fgdec .WriteByte ('(');
case ')':_fgdec .WriteByte (')');case '\\':_fgdec .WriteByte ('\\');};continue ;}else if _cbdc [0]=='('{_bgfg ++;}else if _cbdc [0]==')'{_bgfg --;if _bgfg ==0{_bcbc ._fcgc .ReadByte ();break ;};};_gggc ,_ :=_bcbc ._fcgc .ReadByte ();_fgdec .WriteByte (_gggc );
};return cmapString {_fgdec .String ()},nil ;};func _bccc (_fgcb cmapHexString )CharCode {_becc :=CharCode (0);for _ ,_daa :=range _fgcb ._beca {_becc <<=8;_becc |=CharCode (_daa );};return _becc ;};type CMap struct{*cMapParser ;_ea string ;_cfa int ;_gf int ;
_de string ;_agc string ;_dfc CIDSystemInfo ;_fa []Codespace ;_dg map[CharCode ]CharCode ;_cff map[CharCode ]CharCode ;_gfb map[CharCode ]string ;_be map[string ]CharCode ;_eb []byte ;_ab *_eg .PdfObjectStream ;_bea integer ;};const (_fef ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";
_cegb ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_age ="\u0065n\u0064\u0063\u006d\u0061\u0070";_gffc ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_ade ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";
_gbd ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_fbcc ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_abde ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_becb ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";
_gdc ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_bgcg ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_befd ="\u0075s\u0065\u0063\u006d\u0061\u0070";_dfaf ="\u0057\u004d\u006fd\u0065";_agea ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";
_bcf ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_gbde ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);func (_bgf *cMapParser )skipSpaces ()(int ,error ){_cgfe :=0;for {_gfeg ,_adage :=_bgf ._fcgc .Peek (1);if _adage !=nil {return 0,_adage ;
};if _eg .IsWhiteSpace (_gfeg [0]){_bgf ._fcgc .ReadByte ();_cgfe ++;}else {break ;};};return _cgfe ,nil ;};func _dabf (_aba []byte )*cMapParser {_ecfb :=cMapParser {};_acgb :=_f .NewBuffer (_aba );_ecfb ._fcgc =_d .NewReader (_acgb );return &_ecfb ;};
func (cmap *CMap )NBits ()int {return cmap ._cfa };func (cmap *CMap )parseCIDRange ()error {for {_cga ,_gagd :=cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_bacb ,_afe :=_cga .(cmapHexString );if !_afe {if _ddbb ,_ceg :=_cga .(cmapOperand );
_ceg {if _ddbb .Operand ==_bgcg {return nil ;};return _fc .New ("\u0063\u0069\u0064\u0020\u0069\u006e\u0074\u0065\u0072\u0076\u0061\u006c\u0020s\u0074\u0061\u0072\u0074\u0020\u006du\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067");
};};_fcg :=_bccc (_bacb );_cga ,_gagd =cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_caa ,_afe :=_cga .(cmapHexString );if !_afe {return _fc .New ("\u0063\u0069d\u0020\u0069\u006e\u0074e\u0072\u0076a\u006c\u0020\u0065\u006e\u0064\u0020\u006d\u0075s\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067");
};if len (_bacb ._beca )!=len (_caa ._beca ){return _fc .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065");};_fafg :=_bccc (_caa );
if _fcg > _fafg {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0049\u0044\u0020\u0072\u0061\u006e\u0067\u0065\u002e\u0020\u0073t\u0061\u0072\u0074\u003d\u0030\u0078\u0025\u0030\u0032\u0078\u0020\u0065\u006e\u0064=\u0030x\u0025\u0030\u0032\u0078",_fcg ,_fafg );
return ErrBadCMap ;};_cga ,_gagd =cmap .parseObject ();if _gagd !=nil {if _gagd ==_dd .EOF {break ;};return _gagd ;};_ecdg ,_afe :=_cga .(cmapInt );if !_afe {return _fc .New ("\u0063\u0069\u0064\u0020\u0073t\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0064\u0065\u0063\u0069\u006d\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072");
};if _ecdg ._gffac < 0{return _fc .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_eag :=_ecdg ._gffac ;for _gcf :=_fcg ;_gcf <=_fafg ;_gcf ++{cmap ._dg [_gcf ]=CharCode (_eag );
_eag ++;};_b .Log .Trace ("C\u0049\u0044\u0020\u0072\u0061\u006eg\u0065\u003a\u0020\u003c\u0030\u0078\u0025\u0058\u003e \u003c\u0030\u0078%\u0058>\u0020\u0025\u0064",_fcg ,_fafg ,_ecdg ._gffac );};return nil ;};func _ddff (_dba cmapHexString )[]rune {if len (_dba ._beca )==1{return []rune {rune (_dba ._beca [0])};
};_dcge :=_dba ._beca ;if len (_dcge )%2!=0{_dcge =append (_dcge ,0);_b .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u0073\u002e\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0073\u0068\u0065\u0078\u003d\u0025#\u0076\u0020\u0074\u006f\u0020\u0025\u002b\u0076",_dba ,_dcge );
};_ccae :=len (_dcge )>>1;_agg :=make ([]uint16 ,_ccae );for _aac :=0;_aac < _ccae ;_aac ++{_agg [_aac ]=uint16 (_dcge [_aac <<1])<<8+uint16 (_dcge [_aac <<1+1]);};_addf :=_cf .Decode (_agg );return _addf ;};const (_ag =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune );
);type integer struct{_bcd bool ;_cdf int ;};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func (cmap *CMap )Stream ()(*_eg .PdfObjectStream ,error ){if cmap ._ab !=nil {return cmap ._ab ,nil ;};_gdec ,_ce :=_eg .MakeStream (cmap .Bytes (),_eg .NewFlateEncoder ());
if _ce !=nil {return nil ,_ce ;};cmap ._ab =_gdec ;return cmap ._ab ,nil ;};type cmapFloat struct{_dagf float64 };type cmapOperand struct{Operand string ;};type cmapName struct{Name string ;};func (cmap *CMap )parseName ()error {_aaa :="";_gef :=false ;
for _gac :=0;_gac < 20&&!_gef ;_gac ++{_dab ,_ccg :=cmap .parseObject ();if _ccg !=nil {return _ccg ;};switch _cgee :=_dab .(type ){case cmapOperand :switch _cgee .Operand {case "\u0064\u0065\u0066":_gef =true ;default:_b .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a\u0020\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076\u0020n\u0061\u006de\u003d\u0025\u0023\u0071",_dab ,_aaa );
if _aaa !=""{_aaa =_g .Sprintf ("\u0025\u0073\u0020%\u0073",_aaa ,_cgee .Operand );};_b .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a \u0052\u0065\u0063\u006f\u0076\u0065\u0072e\u0064\u002e\u0020\u006e\u0061\u006d\u0065\u003d\u0025\u0023\u0071",_aaa );
};case cmapName :_aaa =_cgee .Name ;};};if !_gef {_b .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._ea =_aaa ;return nil ;};func (cmap *CMap )parse ()error {var _gag cmapObject ;
for {_gce ,_bce :=cmap .parseObject ();if _bce !=nil {if _bce ==_dd .EOF {break ;};_b .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_bce );return _bce ;};
switch _ca :=_gce .(type ){case cmapOperand :_caf :=_ca ;switch _caf .Operand {case _gffc :_efb :=cmap .parseCodespaceRange ();if _efb !=nil {return _efb ;};case _gdc :_fbc :=cmap .parseCIDRange ();if _fbc !=nil {return _fbc ;};case _gbd :_adc :=cmap .parseBfchar ();
if _adc !=nil {return _adc ;};case _abde :_gea :=cmap .parseBfrange ();if _gea !=nil {return _gea ;};case _befd :if _gag ==nil {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u0073\u0065\u0063m\u0061\u0070\u0020\u0077\u0069\u0074\u0068\u0020\u006e\u006f \u0061\u0072\u0067");
return ErrBadCMap ;};_adb ,_fcfd :=_gag .(cmapName );if !_fcfd {_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0075\u0073\u0065\u0063\u006d\u0061\u0070\u0020\u0061\u0072\u0067\u0020\u006eo\u0074\u0020\u0061\u0020\u006e\u0061\u006de\u0020\u0025\u0023\u0076",_gag );
return ErrBadCMap ;};cmap ._agc =_adb .Name ;case _fef :_aeb :=cmap .parseSystemInfo ();if _aeb !=nil {return _aeb ;};};case cmapName :_acg :=_ca ;switch _acg .Name {case _fef :_cged :=cmap .parseSystemInfo ();if _cged !=nil {return _cged ;};case _agea :_bcb :=cmap .parseName ();
if _bcb !=nil {return _bcb ;};case _bcf :_ccead :=cmap .parseType ();if _ccead !=nil {return _ccead ;};case _gbde :_egb :=cmap .parseVersion ();if _egb !=nil {return _egb ;};case _dfaf :if _bce =cmap .parseWMode ();_bce !=nil {return _bce ;};};};_gag =_gce ;
};return nil ;};func (_baag *cMapParser )parseArray ()(cmapArray ,error ){_ded :=cmapArray {};_ded .Array =[]cmapObject {};_baag ._fcgc .ReadByte ();for {_baag .skipSpaces ();_efc ,_daba :=_baag ._fcgc .Peek (1);if _daba !=nil {return _ded ,_daba ;};if _efc [0]==']'{_baag ._fcgc .ReadByte ();
break ;};_dede ,_daba :=_baag .parseObject ();if _daba !=nil {return _ded ,_daba ;};_ded .Array =append (_ded .Array ,_dede );};return _ded ,nil ;};func _ba (_ec bool )*CMap {_bg :=16;if _ec {_bg =8;};return &CMap {_cfa :_bg ,_dg :make (map[CharCode ]CharCode ),_cff :make (map[CharCode ]CharCode ),_gfb :make (map[CharCode ]string ),_be :make (map[string ]CharCode )};
};func (cmap *CMap )parseType ()error {_fff :=0;_bdge :=false ;for _cgeb :=0;_cgeb < 3&&!_bdge ;_cgeb ++{_gcg ,_gbe :=cmap .parseObject ();if _gbe !=nil {return _gbe ;};switch _aee :=_gcg .(type ){case cmapOperand :switch _aee .Operand {case "\u0064\u0065\u0066":_bdge =true ;
default:_b .Log .Error ("\u0070\u0061r\u0073\u0065\u0054\u0079\u0070\u0065\u003a\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u006f=%\u0023\u0076",_gcg );return ErrBadCMap ;};case cmapInt :_fff =int (_aee ._gffac );
};};cmap ._gf =_fff ;return nil ;};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_gge ,_ac :=cmap ._cff [cid ];return _gge ,_ac ;};func (_bbdf *cMapParser )parseObject ()(cmapObject ,error ){_bbdf .skipSpaces ();for {_gedd ,_eaf :=_bbdf ._fcgc .Peek (2);
if _eaf !=nil {return nil ,_eaf ;};if _gedd [0]=='%'{_bbdf .parseComment ();_bbdf .skipSpaces ();continue ;}else if _gedd [0]=='/'{_bgb ,_ffc :=_bbdf .parseName ();return _bgb ,_ffc ;}else if _gedd [0]=='('{_bdd ,_bgdd :=_bbdf .parseString ();return _bdd ,_bgdd ;
}else if _gedd [0]=='['{_dcg ,_dge :=_bbdf .parseArray ();return _dcg ,_dge ;}else if (_gedd [0]=='<')&&(_gedd [1]=='<'){_adf ,_agda :=_bbdf .parseDict ();return _adf ,_agda ;}else if _gedd [0]=='<'{_ege ,_gdea :=_bbdf .parseHexString ();return _ege ,_gdea ;
}else if _eg .IsDecimalDigit (_gedd [0])||(_gedd [0]=='-'&&_eg .IsDecimalDigit (_gedd [1])){_eeaf ,_fge :=_bbdf .parseNumber ();if _fge !=nil {return nil ,_fge ;};return _eeaf ,nil ;}else {_dbg ,_cgg :=_bbdf .parseOperand ();if _cgg !=nil {return nil ,_cgg ;
};return _dbg ,nil ;};};};func (cmap *CMap )parseCodespaceRange ()error {for {_cfb ,_fffe :=cmap .parseObject ();if _fffe !=nil {if _fffe ==_dd .EOF {break ;};return _fffe ;};_dfde ,_gbb :=_cfb .(cmapHexString );if !_gbb {if _agd ,_aef :=_cfb .(cmapOperand );
_aef {if _agd .Operand ==_ade {return nil ;};return _fc .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_cfb ,_fffe =cmap .parseObject ();if _fffe !=nil {if _fffe ==_dd .EOF {break ;};return _fffe ;
};_fe ,_gbb :=_cfb .(cmapHexString );if !_gbb {return _fc .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_dfde ._beca )!=len (_fe ._beca ){return _fc .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065");
};_gefg :=_bccc (_dfde );_gebb :=_bccc (_fe );if _gebb < _gefg {_b .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0042\u0061d\u0020\u0063\u006fd\u0065\u0073\u0070\u0061\u0063\u0065\u002e\u0020\u006cow\u003d\u0030\u0078%\u0030\u0032x\u0020\u0068\u0069\u0067\u0068\u003d0\u0078\u00250\u0032\u0078",_gefg ,_gebb );
return ErrBadCMap ;};_beeb :=_fe ._fdg ;_abb :=Codespace {NumBytes :_beeb ,Low :_gefg ,High :_gebb };cmap ._fa =append (cmap ._fa ,_abb );_b .Log .Trace ("\u0043\u006f\u0064e\u0073\u0070\u0061\u0063e\u0020\u006c\u006f\u0077\u003a\u0020\u0030x\u0025\u0058\u002c\u0020\u0068\u0069\u0067\u0068\u003a\u0020\u0030\u0078\u0025\u0058",_gefg ,_gebb );
};if len (cmap ._fa )==0{_b .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u0020\u0069\u006e\u0020\u0063ma\u0070\u002e");return ErrBadCMap ;};return nil ;};func (cmap *CMap )matchCode (_bfa []byte )(_bee CharCode ,_bd int ,_cgf bool ){for _bbd :=0;
_bbd < _ag ;_bbd ++{if _bbd < len (_bfa ){_bee =_bee <<8|CharCode (_bfa [_bbd ]);_bd ++;};_cgf =cmap .inCodespace (_bee ,_bbd +1);if _cgf {return _bee ,_bd ,true ;};};_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063o\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0020m\u0061t\u0063\u0068\u0065\u0073\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d=\u0025\u0023\u0071\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",_bfa ,string (_bfa ),cmap );
return 0,0,false ;};type cmapDict struct{Dict map[string ]cmapObject ;};func IsPredefinedCMap (name string )bool {return _ed .AssetExists (name )};type cmapHexString struct{_fdg int ;_beca []byte ;};type cmapObject interface{};func _gaf ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}};
func (_fbdb *cMapParser )parseOperand ()(cmapOperand ,error ){_dfdg :=cmapOperand {};_gddc :=_f .Buffer {};for {_agbf ,_abf :=_fbdb ._fcgc .Peek (1);if _abf !=nil {if _abf ==_dd .EOF {break ;};return _dfdg ,_abf ;};if _eg .IsDelimiter (_agbf [0]){break ;
};if _eg .IsWhiteSpace (_agbf [0]){break ;};_gbbb ,_ :=_fbdb ._fcgc .ReadByte ();_gddc .WriteByte (_gbbb );};if _gddc .Len ()==0{return _dfdg ,_g .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029");
};_dfdg .Operand =_gddc .String ();return _dfdg ,nil ;};func (_acaa *cMapParser )parseComment ()(string ,error ){var _gffa _f .Buffer ;_ ,_fgea :=_acaa .skipSpaces ();if _fgea !=nil {return _gffa .String (),_fgea ;};_ffe :=true ;for {_bdc ,_adae :=_acaa ._fcgc .Peek (1);
if _adae !=nil {_b .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_adae );return _gffa .String (),_adae ;};if _ffe &&_bdc [0]!='%'{return _gffa .String (),ErrBadCMapComment ;};_ffe =false ;
if (_bdc [0]!='\r')&&(_bdc [0]!='\n'){_agdg ,_ :=_acaa ._fcgc .ReadByte ();_gffa .WriteByte (_agdg );}else {break ;};};return _gffa .String (),nil ;};type fbRange struct{_fd CharCode ;_df CharCode ;_bfe string ;};func _egfc (_acgc cmapHexString )rune {_eedf :=_ddff (_acgc );
if _cbc :=len (_eedf );_cbc ==0{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054o\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065c\u0074\u0065\u0064\u0020\u0061\u0074\u0020\u006c\u0065\u0061\u0073\u0074\u0020\u006f\u006e\u0065\u0020\u0072u\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023\u0076",_acgc );
return MissingCodeRune ;};if len (_eedf )> 1{_b .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0078\u0061\u0063\u0074\u006c\u0079\u0020\u006f\u006e\u0065\u0020\u0072\u0075\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023v\u0020\u002d\u003e\u0020\u0025#\u0076",_acgc ,_eedf );
};return _eedf [0];};func _da (_cfe string )(*CMap ,error ){_cce ,_edd :=_ed .Asset (_cfe );if _edd !=nil {return nil ,_edd ;};return LoadCmapFromDataCID (_cce );};func (cmap *CMap )parseSystemInfo ()error {_dcee :=false ;_ebb :=false ;_eddcf :="";_def :=false ;
_gdb :=CIDSystemInfo {};for _ddd :=0;_ddd < 50&&!_def ;_ddd ++{_bad ,_acac :=cmap .parseObject ();if _acac !=nil {return _acac ;};switch _ccef :=_bad .(type ){case cmapDict :_cgec :=_ccef .Dict ;_cbef ,_cd :=_cgec ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];
if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_bag ,_cd :=_cbef .(cmapString );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");
return ErrBadCMap ;};_gdb .Registry =_bag .String ;_cbef ,_cd =_cgec ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");
return ErrBadCMap ;};_bag ,_cd =_cbef .(cmapString );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gdb .Ordering =_bag .String ;_fdde ,_cd :=_cgec ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"];
if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_gff ,_cd :=_fdde .(cmapInt );if !_cd {_b .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");
return ErrBadCMap ;};_gdb .Supplement =int (_gff ._gffac );_def =true ;case cmapOperand :switch _ccef .Operand {case "\u0062\u0065\u0067i\u006e":_dcee =true ;case "\u0065\u006e\u0064":_def =true ;case "\u0064\u0065\u0066":_ebb =false ;};case cmapName :if _dcee {_eddcf =_ccef .Name ;
_ebb =true ;};case cmapString :if _ebb {switch _eddcf {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_gdb .Registry =_ccef .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_gdb .Ordering =_ccef .String ;};};case cmapInt :if _ebb {switch _eddcf {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_gdb .Supplement =int (_ccef ._gffac );
};};};};if !_def {_b .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0050\u0061\u0072\u0073\u0065\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006e\u0066\u006f\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u006ec\u006f\u0072\u0072\u0065\u0063\u0074\u006c\u0079");
return ErrBadCMap ;};cmap ._dfc =_gdb ;return nil ;};
|