2021-04-17 13:46:54 +00:00

49 lines
13 KiB
Go

//
// 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 mmr ;import (_fb "errors";_fc "fmt";_bd "github.com/unidoc/unipdf/v3/common";_d "github.com/unidoc/unipdf/v3/internal/bitwise";_fcc "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_b "io";);var (_gc =[][3]int {{4,0x1,int (_de )},{3,0x1,int (_fa )},{1,0x1,int (_ge )},{3,0x3,int (_cb )},{6,0x3,int (_fbg )},{7,0x3,int (_ff )},{3,0x2,int (_cg )},{6,0x2,int (_cc )},{7,0x2,int (_dd )},{10,0xf,int (_fba )},{12,0xf,int (_dgb )},{12,0x1,int (EOL )}};
_gg =[][3]int {{4,0x07,2},{4,0x08,3},{4,0x0B,4},{4,0x0C,5},{4,0x0E,6},{4,0x0F,7},{5,0x12,128},{5,0x13,8},{5,0x14,9},{5,0x1B,64},{5,0x07,10},{5,0x08,11},{6,0x17,192},{6,0x18,1664},{6,0x2A,16},{6,0x2B,17},{6,0x03,13},{6,0x34,14},{6,0x35,15},{6,0x07,1},{6,0x08,12},{7,0x13,26},{7,0x17,21},{7,0x18,28},{7,0x24,27},{7,0x27,18},{7,0x28,24},{7,0x2B,25},{7,0x03,22},{7,0x37,256},{7,0x04,23},{7,0x08,20},{7,0xC,19},{8,0x12,33},{8,0x13,34},{8,0x14,35},{8,0x15,36},{8,0x16,37},{8,0x17,38},{8,0x1A,31},{8,0x1B,32},{8,0x02,29},{8,0x24,53},{8,0x25,54},{8,0x28,39},{8,0x29,40},{8,0x2A,41},{8,0x2B,42},{8,0x2C,43},{8,0x2D,44},{8,0x03,30},{8,0x32,61},{8,0x33,62},{8,0x34,63},{8,0x35,0},{8,0x36,320},{8,0x37,384},{8,0x04,45},{8,0x4A,59},{8,0x4B,60},{8,0x5,46},{8,0x52,49},{8,0x53,50},{8,0x54,51},{8,0x55,52},{8,0x58,55},{8,0x59,56},{8,0x5A,57},{8,0x5B,58},{8,0x64,448},{8,0x65,512},{8,0x67,640},{8,0x68,576},{8,0x0A,47},{8,0x0B,48},{9,0x01,_aae },{9,0x98,1472},{9,0x99,1536},{9,0x9A,1600},{9,0x9B,1728},{9,0xCC,704},{9,0xCD,768},{9,0xD2,832},{9,0xD3,896},{9,0xD4,960},{9,0xD5,1024},{9,0xD6,1088},{9,0xD7,1152},{9,0xD8,1216},{9,0xD9,1280},{9,0xDA,1344},{9,0xDB,1408},{10,0x01,_aae },{11,0x01,_aae },{11,0x08,1792},{11,0x0C,1856},{11,0x0D,1920},{12,0x00,EOF },{12,0x01,EOL },{12,0x12,1984},{12,0x13,2048},{12,0x14,2112},{12,0x15,2176},{12,0x16,2240},{12,0x17,2304},{12,0x1C,2368},{12,0x1D,2432},{12,0x1E,2496},{12,0x1F,2560}};
_bdg =[][3]int {{2,0x02,3},{2,0x03,2},{3,0x02,1},{3,0x03,4},{4,0x02,6},{4,0x03,5},{5,0x03,7},{6,0x04,9},{6,0x05,8},{7,0x04,10},{7,0x05,11},{7,0x07,12},{8,0x04,13},{8,0x07,14},{9,0x01,_aae },{9,0x18,15},{10,0x01,_aae },{10,0x17,16},{10,0x18,17},{10,0x37,0},{10,0x08,18},{10,0x0F,64},{11,0x01,_aae },{11,0x17,24},{11,0x18,25},{11,0x28,23},{11,0x37,22},{11,0x67,19},{11,0x68,20},{11,0x6C,21},{11,0x08,1792},{11,0x0C,1856},{11,0x0D,1920},{12,0x00,EOF },{12,0x01,EOL },{12,0x12,1984},{12,0x13,2048},{12,0x14,2112},{12,0x15,2176},{12,0x16,2240},{12,0x17,2304},{12,0x1C,2368},{12,0x1D,2432},{12,0x1E,2496},{12,0x1F,2560},{12,0x24,52},{12,0x27,55},{12,0x28,56},{12,0x2B,59},{12,0x2C,60},{12,0x33,320},{12,0x34,384},{12,0x35,448},{12,0x37,53},{12,0x38,54},{12,0x52,50},{12,0x53,51},{12,0x54,44},{12,0x55,45},{12,0x56,46},{12,0x57,47},{12,0x58,57},{12,0x59,58},{12,0x5A,61},{12,0x5B,256},{12,0x64,48},{12,0x65,49},{12,0x66,62},{12,0x67,63},{12,0x68,30},{12,0x69,31},{12,0x6A,32},{12,0x6B,33},{12,0x6C,40},{12,0x6D,41},{12,0xC8,128},{12,0xC9,192},{12,0xCA,26},{12,0xCB,27},{12,0xCC,28},{12,0xCD,29},{12,0xD2,34},{12,0xD3,35},{12,0xD4,36},{12,0xD5,37},{12,0xD6,38},{12,0xD7,39},{12,0xDA,42},{12,0xDB,43},{13,0x4A,640},{13,0x4B,704},{13,0x4C,768},{13,0x4D,832},{13,0x52,1280},{13,0x53,1344},{13,0x54,1408},{13,0x55,1472},{13,0x5A,1536},{13,0x5B,1600},{13,0x64,1664},{13,0x65,1728},{13,0x6C,512},{13,0x6D,576},{13,0x72,896},{13,0x73,960},{13,0x74,1024},{13,0x75,1088},{13,0x76,1152},{13,0x77,1216}};
);func (_aa *code )String ()string {return _fc .Sprintf ("\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_aa ._c ,_aa ._ce ,_aa ._a );};func (_bgb *runData )uncompressGetNextCodeLittleEndian ()(int ,error ){_dda :=_bgb ._fcga -_bgb ._dee ;if _dda < 0||_dda > 24{_cba :=(_bgb ._fcga >>3)-_bgb ._cga ;
if _cba >=_bgb ._ebgc {_cba +=_bgb ._cga ;if _cbg :=_bgb .fillBuffer (_cba );_cbg !=nil {return 0,_cbg ;};_cba -=_bgb ._cga ;};_effc :=(uint32 (_bgb ._acfd [_cba ]&0xFF)<<16)|(uint32 (_bgb ._acfd [_cba +1]&0xFF)<<8)|(uint32 (_bgb ._acfd [_cba +2]&0xFF));
_add :=uint32 (_bgb ._fcga &7);_effc <<=_add ;_bgb ._abf =int (_effc );}else {_afb :=_bgb ._dee &7;_gdc :=7-_afb ;if _dda <=_gdc {_bgb ._abf <<=uint (_dda );}else {_fdb :=(_bgb ._dee >>3)+3-_bgb ._cga ;if _fdb >=_bgb ._ebgc {_fdb +=_bgb ._cga ;if _agc :=_bgb .fillBuffer (_fdb );
_agc !=nil {return 0,_agc ;};_fdb -=_bgb ._cga ;};_afb =8-_afb ;for {_bgb ._abf <<=uint (_afb );_bgb ._abf |=int (uint (_bgb ._acfd [_fdb ])&0xFF);_dda -=_afb ;_fdb ++;_afb =8;if !(_dda >=8){break ;};};_bgb ._abf <<=uint (_dda );};};_bgb ._dee =_bgb ._fcga ;
return _bgb ._abf ,nil ;};func (_cbc *Decoder )uncompress2d (_fbd *runData ,_bdf []int ,_gde int ,_ecf []int ,_eea int )(int ,error ){var (_aff int ;_fcg int ;_baf int ;_egb =true ;_ebgd error ;_baeb *code ;);_bdf [_gde ]=_eea ;_bdf [_gde +1]=_eea ;_bdf [_gde +2]=_eea +1;
_bdf [_gde +3]=_eea +1;_dgd :for _baf < _eea {_baeb ,_ebgd =_fbd .uncompressGetCode (_cbc ._aee );if _ebgd !=nil {return EOL ,nil ;};if _baeb ==nil {_fbd ._fcga ++;break _dgd ;};_fbd ._fcga +=_baeb ._c ;switch mmrCode (_baeb ._a ){case _ge :_baf =_bdf [_aff ];
case _cb :_baf =_bdf [_aff ]+1;case _cg :_baf =_bdf [_aff ]-1;case _fa :for {var _eda []*code ;if _egb {_eda =_cbc ._df ;}else {_eda =_cbc ._egf ;};_baeb ,_ebgd =_fbd .uncompressGetCode (_eda );if _ebgd !=nil {return 0,_ebgd ;};if _baeb ==nil {break _dgd ;
};_fbd ._fcga +=_baeb ._c ;if _baeb ._a < 64{if _baeb ._a < 0{_ecf [_fcg ]=_baf ;_fcg ++;_baeb =nil ;break _dgd ;};_baf +=_baeb ._a ;_ecf [_fcg ]=_baf ;_fcg ++;break ;};_baf +=_baeb ._a ;};_fd :=_baf ;_gfb :for {var _bdga []*code ;if !_egb {_bdga =_cbc ._df ;
}else {_bdga =_cbc ._egf ;};_baeb ,_ebgd =_fbd .uncompressGetCode (_bdga );if _ebgd !=nil {return 0,_ebgd ;};if _baeb ==nil {break _dgd ;};_fbd ._fcga +=_baeb ._c ;if _baeb ._a < 64{if _baeb ._a < 0{_ecf [_fcg ]=_baf ;_fcg ++;break _dgd ;};_baf +=_baeb ._a ;
if _baf < _eea ||_baf !=_fd {_ecf [_fcg ]=_baf ;_fcg ++;};break _gfb ;};_baf +=_baeb ._a ;};for _baf < _eea &&_bdf [_aff ]<=_baf {_aff +=2;};continue _dgd ;case _de :_aff ++;_baf =_bdf [_aff ];_aff ++;continue _dgd ;case _fbg :_baf =_bdf [_aff ]+2;case _cc :_baf =_bdf [_aff ]-2;
case _ff :_baf =_bdf [_aff ]+3;case _dd :_baf =_bdf [_aff ]-3;default:if _fbd ._fcga ==12&&_baeb ._a ==EOL {_fbd ._fcga =0;if _ ,_ebgd =_cbc .uncompress1d (_fbd ,_bdf ,_eea );_ebgd !=nil {return 0,_ebgd ;};_fbd ._fcga ++;if _ ,_ebgd =_cbc .uncompress1d (_fbd ,_ecf ,_eea );
_ebgd !=nil {return 0,_ebgd ;};_fac ,_bafb :=_cbc .uncompress1d (_fbd ,_bdf ,_eea );if _bafb !=nil {return EOF ,_bafb ;};_fbd ._fcga ++;return _fac ,nil ;};_baf =_eea ;continue _dgd ;};if _baf <=_eea {_egb =!_egb ;_ecf [_fcg ]=_baf ;_fcg ++;if _aff > 0{_aff --;
}else {_aff ++;};for _baf < _eea &&_bdf [_aff ]<=_baf {_aff +=2;};};};if _ecf [_fcg ]!=_eea {_ecf [_fcg ]=_eea ;};if _baeb ==nil {return EOL ,nil ;};return _fcg ,nil ;};func _ac (_e [3]int )*code {return &code {_c :_e [0],_ce :_e [1],_a :_e [2]}};func (_gcd *Decoder )detectAndSkipEOL ()error {for {_bae ,_ebg :=_gcd ._bf .uncompressGetCode (_gcd ._aee );
if _ebg !=nil {return _ebg ;};if _bae !=nil &&_bae ._a ==EOL {_gcd ._bf ._fcga +=_bae ._c ;}else {return nil ;};};};func (_af *Decoder )createLittleEndianTable (_ggc [][3]int )([]*code ,error ){_fgf :=make ([]*code ,_ae +1);for _cbf :=0;_cbf < len (_ggc );
_cbf ++{_bgd :=_ac (_ggc [_cbf ]);if _bgd ._c <=_aba {_ef :=_aba -_bgd ._c ;_ggg :=_bgd ._ce <<uint (_ef );for _dgbg :=(1<<uint (_ef ))-1;_dgbg >=0;_dgbg --{_cgc :=_ggg |_dgbg ;_fgf [_cgc ]=_bgd ;};}else {_dfc :=_bgd ._ce >>uint (_bgd ._c -_aba );if _fgf [_dfc ]==nil {var _ee =_ac ([3]int {});
_ee ._dg =make ([]*code ,_cag +1);_fgf [_dfc ]=_ee ;};if _bgd ._c <=_aba +_db {_ba :=_aba +_db -_bgd ._c ;_dfb :=(_bgd ._ce <<uint (_ba ))&_cag ;_fgf [_dfc ]._bb =true ;for _be :=(1<<uint (_ba ))-1;_be >=0;_be --{_fgf [_dfc ]._dg [_dfb |_be ]=_bgd ;};}else {return nil ,_fb .New ("\u0043\u006f\u0064\u0065\u0020\u0074a\u0062\u006c\u0065\u0020\u006f\u0076\u0065\u0072\u0066\u006c\u006f\u0077\u0020i\u006e\u0020\u004d\u004d\u0052\u0044\u0065c\u006f\u0064\u0065\u0072");
};};};return _fgf ,nil ;};type runData struct{_aad *_d .SubstreamReader ;_fcga int ;_dee int ;_abf int ;_acfd []byte ;_cga int ;_ebgc int ;};const (EOF =-3;_aae =-2;EOL =-1;_aba =8;_ae =(1<<_aba )-1;_db =5;_cag =(1<<_db )-1;);const (_de mmrCode =iota ;
_fa ;_ge ;_cb ;_fbg ;_ff ;_cg ;_cc ;_dd ;_fba ;_dgb ;);func (_cda *runData )fillBuffer (_befg int )error {_cda ._cga =_befg ;_ ,_cce :=_cda ._aad .Seek (int64 (_befg ),_b .SeekStart );if _cce !=nil {if _cce ==_b .EOF {_bd .Log .Debug ("\u0053\u0065\u0061\u006b\u0020\u0045\u004f\u0046");
_cda ._ebgc =-1;}else {return _cce ;};};if _cce ==nil {_cda ._ebgc ,_cce =_cda ._aad .Read (_cda ._acfd );if _cce !=nil {if _cce ==_b .EOF {_bd .Log .Trace ("\u0052\u0065\u0061\u0064\u0020\u0045\u004f\u0046");_cda ._ebgc =-1;}else {return _cce ;};};};if _cda ._ebgc > -1&&_cda ._ebgc < 3{for _cda ._ebgc < 3{_gfgc ,_fbc :=_cda ._aad .ReadByte ();
if _fbc !=nil {if _fbc ==_b .EOF {_cda ._acfd [_cda ._ebgc ]=0;}else {return _fbc ;};}else {_cda ._acfd [_cda ._ebgc ]=_gfgc &0xFF;};_cda ._ebgc ++;};};_cda ._ebgc -=3;if _cda ._ebgc < 0{_cda ._acfd =make ([]byte ,len (_cda ._acfd ));_cda ._ebgc =len (_cda ._acfd )-3;
};return nil ;};func (_eba *Decoder )initTables ()(_ebfd error ){if _eba ._df ==nil {_eba ._df ,_ebfd =_eba .createLittleEndianTable (_gg );if _ebfd !=nil {return ;};_eba ._egf ,_ebfd =_eba .createLittleEndianTable (_bdg );if _ebfd !=nil {return ;};_eba ._aee ,_ebfd =_eba .createLittleEndianTable (_gc );
if _ebfd !=nil {return ;};};return nil ;};func (_ag *runData )uncompressGetCode (_bdd []*code )(*code ,error ){return _ag .uncompressGetCodeLittleEndian (_bdd );};func New (r _d .StreamReader ,width ,height int ,dataOffset ,dataLength int64 )(*Decoder ,error ){_def :=&Decoder {_eg :width ,_gcg :height };
_ec ,_caa :=_d .NewSubstreamReader (r ,uint64 (dataOffset ),uint64 (dataLength ));if _caa !=nil {return nil ,_caa ;};_gd ,_caa :=_gbf (_ec );if _caa !=nil {return nil ,_caa ;};_def ._bf =_gd ;if _cf :=_def .initTables ();_cf !=nil {return nil ,_cf ;};return _def ,nil ;
};func (_gcgb *runData )uncompressGetCodeLittleEndian (_eff []*code )(*code ,error ){_gec ,_fce :=_gcgb .uncompressGetNextCodeLittleEndian ();if _fce !=nil {_bd .Log .Debug ("\u0055n\u0063\u006fm\u0070\u0072\u0065\u0073s\u0047\u0065\u0074N\u0065\u0078\u0074\u0043\u006f\u0064\u0065\u004c\u0069tt\u006c\u0065\u0045n\u0064\u0069a\u006e\u0020\u0066\u0061\u0069\u006ce\u0064\u003a \u0025\u0076",_fce );
return nil ,_fce ;};_gec &=0xffffff;_aeg :=_gec >>(_bdc -_aba );_gece :=_eff [_aeg ];if _gece !=nil &&_gece ._bb {_aeg =(_gec >>(_bdc -_aba -_db ))&_cag ;_gece =_gece ._dg [_aeg ];};return _gece ,nil ;};type mmrCode int ;func _gbf (_ad *_d .SubstreamReader )(*runData ,error ){_dbg :=&runData {_aad :_ad ,_fcga :0,_dee :1};
_bbe :=_bg (_fg (_gfg ,int (_ad .Length ())),_gb );_dbg ._acfd =make ([]byte ,_bbe );if _bef :=_dbg .fillBuffer (0);_bef !=nil {if _bef ==_b .EOF {_dbg ._acfd =make ([]byte ,10);_bd .Log .Debug ("F\u0069\u006c\u006c\u0042uf\u0066e\u0072\u0020\u0066\u0061\u0069l\u0065\u0064\u003a\u0020\u0025\u0076",_bef );
}else {return nil ,_bef ;};};return _dbg ,nil ;};func (_gf *Decoder )fillBitmap (_ed *_fcc .Bitmap ,_ddg int ,_cd []int ,_fge int )error {var _cfb byte ;_dbe :=0;_da :=_ed .GetByteIndex (_dbe ,_ddg );for _dfe :=0;_dfe < _fge ;_dfe ++{_ggd :=byte (1);_bfa :=_cd [_dfe ];
if (_dfe &1)==0{_ggd =0;};for _dbe < _bfa {_cfb =(_cfb <<1)|_ggd ;_dbe ++;if (_dbe &7)==0{if _bc :=_ed .SetByte (_da ,_cfb );_bc !=nil {return _bc ;};_da ++;_cfb =0;};};};if (_dbe &7)!=0{_cfb <<=uint (8-(_dbe &7));if _ceg :=_ed .SetByte (_da ,_cfb );_ceg !=nil {return _ceg ;
};};return nil ;};func (_aeed *Decoder )UncompressMMR ()(_fgb *_fcc .Bitmap ,_ddb error ){_fgb =_fcc .New (_aeed ._eg ,_aeed ._gcg );_cge :=make ([]int ,_fgb .Width +5);_gge :=make ([]int ,_fgb .Width +5);_gge [0]=_fgb .Width ;_eb :=1;var _defc int ;for _ebf :=0;
_ebf < _fgb .Height ;_ebf ++{_defc ,_ddb =_aeed .uncompress2d (_aeed ._bf ,_gge ,_eb ,_cge ,_fgb .Width );if _ddb !=nil {return nil ,_ddb ;};if _defc ==EOF {break ;};if _defc > 0{_ddb =_aeed .fillBitmap (_fgb ,_ebf ,_cge ,_defc );if _ddb !=nil {return nil ,_ddb ;
};};_gge ,_cge =_cge ,_gge ;_eb =_defc ;};if _ddb =_aeed .detectAndSkipEOL ();_ddb !=nil {return nil ,_ddb ;};_aeed ._bf .align ();return _fgb ,nil ;};type Decoder struct{_eg ,_gcg int ;_bf *runData ;_df []*code ;_egf []*code ;_aee []*code ;};func _fg (_g ,_dgf int )int {if _g < _dgf {return _dgf ;
};return _g ;};func (_aac *runData )align (){_aac ._fcga =((_aac ._fcga +7)>>3)<<3};func (_fgd *Decoder )uncompress1d (_afc *runData ,_cegc []int ,_gfc int )(int ,error ){var (_ga =true ;_gdg int ;_cad *code ;_gcf int ;_gda error ;);_efc :for _gdg < _gfc {_ea :for {if _ga {_cad ,_gda =_afc .uncompressGetCode (_fgd ._df );
if _gda !=nil {return 0,_gda ;};}else {_cad ,_gda =_afc .uncompressGetCode (_fgd ._egf );if _gda !=nil {return 0,_gda ;};};_afc ._fcga +=_cad ._c ;if _cad ._a < 0{break _efc ;};_gdg +=_cad ._a ;if _cad ._a < 64{_ga =!_ga ;_cegc [_gcf ]=_gdg ;_gcf ++;break _ea ;
};};};if _cegc [_gcf ]!=_gfc {_cegc [_gcf ]=_gfc ;};_efg :=EOL ;if _cad !=nil &&_cad ._a !=EOL {_efg =_gcf ;};return _efg ,nil ;};const (_gb int =1024<<7;_gfg int =3;_bdc uint =24;);type code struct{_c int ;_ce int ;_a int ;_dg []*code ;_bb bool ;};func _bg (_ca ,_ab int )int {if _ca > _ab {return _ab ;
};return _ca ;};