mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-04 22:17:22 +08:00
43 lines
11 KiB
Go
43 lines
11 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 huffman ;import (_f "errors";_d "fmt";_c "github.com/unidoc/unipdf/v3/internal/bitwise";_be "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_ab "math";_a "strings";);type Code struct{_gga int32 ;_eec int32 ;_eef int32 ;_egg bool ;_gf int32 ;
|
|
};func (_aa *StandardTable )InitTree (codeTable []*Code )error {_ded (codeTable );for _ ,_ecd :=range codeTable {if _cbb :=_aa ._bbd .append (_ecd );_cbb !=nil {return _cbb ;};};return nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_gga :prefixLength ,_eec :rangeLength ,_eef :rangeLow ,_egg :isLowerRange ,_gf :-1};
|
|
};type StandardTable struct{_bbd *InternalNode };func _bgg (_aea int32 )*InternalNode {return &InternalNode {_dfdc :_aea }};func (_bcc *InternalNode )String ()string {_dfb :=&_a .Builder {};_dfb .WriteString ("\u000a");_bcc .pad (_dfb );_dfb .WriteString ("\u0030\u003a\u0020");
|
|
_dfb .WriteString (_bcc ._ac .String ()+"\u000a");_bcc .pad (_dfb );_dfb .WriteString ("\u0031\u003a\u0020");_dfb .WriteString (_bcc ._cd .String ()+"\u000a");return _dfb .String ();};func (_bc *EncodedTable )Decode (r _c .StreamReader )(int64 ,error ){return _bc ._ba .Decode (r )};
|
|
func (_ada *InternalNode )pad (_bag *_a .Builder ){for _edg :=int32 (0);_edg < _ada ._dfdc ;_edg ++{_bag .WriteString ("\u0020\u0020\u0020");};};type FixedSizeTable struct{_df *InternalNode };func (_bcd *StandardTable )RootNode ()*InternalNode {return _bcd ._bbd };
|
|
func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_gab ){return nil ,_f .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_acf :=_gab [number -1];if _acf ==nil {var _bac error ;
|
|
_acf ,_bac =_dg (_ea [number -1]);if _bac !=nil {return nil ,_bac ;};_gab [number -1]=_acf ;};return _acf ,nil ;};type InternalNode struct{_dfdc int32 ;_ac Node ;_cd Node ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_c .StreamReader ;
|
|
HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_ccb *ValueNode )String ()string {return _d .Sprintf ("\u0025\u0064\u002f%\u0064",_ccb ._eb ,_ccb ._fae );};func (_ece *StandardTable )Decode (r _c .StreamReader )(int64 ,error ){return _ece ._bbd .Decode (r )};
|
|
func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_e :=&EncodedTable {_ba :&InternalNode {},BasicTabler :table };if _fg :=_e .parseTable ();_fg !=nil {return nil ,_fg ;};return _e ,nil ;};var _gab =make ([]Tabler ,len (_ea ));func (_abc *StandardTable )String ()string {return _abc ._bbd .String ()+"\u000a"};
|
|
func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_bb :=&FixedSizeTable {_df :&InternalNode {}};if _bbf :=_bb .InitTree (codeTable );_bbf !=nil {return nil ,_bbf ;};return _bb ,nil ;};func _dfd (_af *Code )*ValueNode {return &ValueNode {_eb :_af ._eec ,_fae :_af ._eef ,_bg :_af ._egg }};
|
|
func (_fa *OutOfBandNode )String ()string {return _d .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_ab .MaxInt64 ));};func _bf (_dc ,_egf int32 )int32 {if _dc > _egf {return _dc ;};return _egf ;};var _ Node =&ValueNode {};func (_ee *FixedSizeTable )RootNode ()*InternalNode {return _ee ._df };
|
|
var _ Node =&InternalNode {};func (_fge *EncodedTable )InitTree (codeTable []*Code )error {_ded (codeTable );for _ ,_g :=range codeTable {if _eg :=_fge ._ba .append (_g );_eg !=nil {return _eg ;};};return nil ;};var _ Tabler =&EncodedTable {};func (_ega *InternalNode )Decode (r _c .StreamReader )(int64 ,error ){_dac ,_cdd :=r .ReadBit ();
|
|
if _cdd !=nil {return 0,_cdd ;};if _dac ==0{return _ega ._ac .Decode (r );};return _ega ._cd .Decode (r );};type OutOfBandNode struct{};func (_cc *FixedSizeTable )InitTree (codeTable []*Code )error {_ded (codeTable );for _ ,_gaa :=range codeTable {_ccg :=_cc ._df .append (_gaa );
|
|
if _ccg !=nil {return _ccg ;};};return nil ;};func _ded (_cad []*Code ){var _age int32 ;for _ ,_ccba :=range _cad {_age =_bf (_age ,_ccba ._gga );};_dfdf :=make ([]int32 ,_age +1);for _ ,_adb :=range _cad {_dfdf [_adb ._gga ]++;};var _edc int32 ;_gc :=make ([]int32 ,len (_dfdf )+1);
|
|
_dfdf [0]=0;for _ageg :=int32 (1);_ageg <=int32 (len (_dfdf ));_ageg ++{_gc [_ageg ]=(_gc [_ageg -1]+(_dfdf [_ageg -1]))<<1;_edc =_gc [_ageg ];for _ ,_fba :=range _cad {if _fba ._gga ==_ageg {_fba ._gf =_edc ;_edc ++;};};};};func (_afe *InternalNode )append (_gb *Code )(_bee error ){if _gb ._gga ==0{return nil ;
|
|
};_ae :=_gb ._gga -1-_afe ._dfdc ;if _ae < 0{return _f .New ("\u004e\u0065\u0067\u0061\u0074\u0069\u0076\u0065\u0020\u0073\u0068\u0069\u0066\u0074\u0069n\u0067 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064");};_ca :=(_gb ._gf >>uint (_ae ))&0x1;
|
|
if _ae ==0{if _gb ._eec ==-1{if _ca ==1{if _afe ._cd !=nil {return _d .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_gb );};_afe ._cd =_ccgd (_gb );}else {if _afe ._ac !=nil {return _d .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_gb );
|
|
};_afe ._ac =_ccgd (_gb );};}else {if _ca ==1{if _afe ._cd !=nil {return _d .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_gb );
|
|
};_afe ._cd =_dfd (_gb );}else {if _afe ._ac !=nil {return _d .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_gb );
|
|
};_afe ._ac =_dfd (_gb );};};}else {if _ca ==1{if _afe ._cd ==nil {_afe ._cd =_bgg (_afe ._dfdc +1);};if _bee =_afe ._cd .(*InternalNode ).append (_gb );_bee !=nil {return _bee ;};}else {if _afe ._ac ==nil {_afe ._ac =_bgg (_afe ._dfdc +1);};if _bee =_afe ._ac .(*InternalNode ).append (_gb );
|
|
_bee !=nil {return _bee ;};};};return nil ;};func (_de *FixedSizeTable )Decode (r _c .StreamReader )(int64 ,error ){return _de ._df .Decode (r )};type ValueNode struct{_eb int32 ;_fae int32 ;_bg bool ;};func (_ff *OutOfBandNode )Decode (r _c .StreamReader )(int64 ,error ){return 0,_be .ErrOOB };
|
|
type Tabler interface{Decode (_fbc _c .StreamReader )(int64 ,error );InitTree (_dbg []*Code )error ;String ()string ;RootNode ()*InternalNode ;};var _ Node =&OutOfBandNode {};func (_gfa *Code )String ()string {var _eca string ;if _gfa ._gf !=-1{_eca =_adaf (_gfa ._gf ,_gfa ._gga );
|
|
}else {_eca ="\u003f";};return _d .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_eca ,_gfa ._gga ,_gfa ._eec ,_gfa ._eef );};func _ccgd (_fc *Code )*OutOfBandNode {return &OutOfBandNode {}};var _ea =[][][]int32 {{{1,4,0},{2,8,16},{3,16,272},{3,32,65808}},{{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{6,32,75},{6,-1,0}},{{8,8,-256},{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{8,32,-257,999},{7,32,75},{6,-1,0}},{{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{5,32,76}},{{7,8,-255},{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{7,32,-256,999},{6,32,76}},{{5,10,-2048},{4,9,-1024},{4,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{2,7,0},{3,7,128},{3,8,256},{4,9,512},{4,10,1024},{6,32,-2049,999},{6,32,2048}},{{4,9,-1024},{3,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{4,5,0},{5,5,32},{5,6,64},{4,7,128},{3,8,256},{3,9,512},{3,10,1024},{5,32,-1025,999},{5,32,2048}},{{8,3,-15},{9,1,-7},{8,1,-5},{9,0,-3},{7,0,-2},{4,0,-1},{2,1,0},{5,0,2},{6,0,3},{3,4,4},{6,1,20},{4,4,22},{4,5,38},{5,6,70},{5,7,134},{6,7,262},{7,8,390},{6,10,646},{9,32,-16,999},{9,32,1670},{2,-1,0}},{{8,4,-31},{9,2,-15},{8,2,-11},{9,1,-7},{7,1,-5},{4,1,-3},{3,1,-1},{3,1,1},{5,1,3},{6,1,5},{3,5,7},{6,2,39},{4,5,43},{4,6,75},{5,7,139},{5,8,267},{6,8,523},{7,9,779},{6,11,1291},{9,32,-32,999},{9,32,3339},{2,-1,0}},{{7,4,-21},{8,0,-5},{7,0,-4},{5,0,-3},{2,2,-2},{5,0,2},{6,0,3},{7,0,4},{8,0,5},{2,6,6},{5,5,70},{6,5,102},{6,6,134},{6,7,198},{6,8,326},{6,9,582},{6,10,1094},{7,11,2118},{8,32,-22,999},{8,32,4166},{2,-1,0}},{{1,0,1},{2,1,2},{4,0,4},{4,1,5},{5,1,7},{5,2,9},{6,2,13},{7,2,17},{7,3,21},{7,4,29},{7,5,45},{7,6,77},{7,32,141}},{{1,0,1},{2,0,2},{3,1,3},{5,0,5},{5,1,6},{6,1,8},{7,0,10},{7,1,11},{7,2,13},{7,3,17},{7,4,25},{8,5,41},{8,32,73}},{{1,0,1},{3,0,2},{4,0,3},{5,0,4},{4,1,5},{3,3,7},{6,1,15},{6,2,17},{6,3,21},{6,4,29},{6,5,45},{7,6,77},{7,32,141}},{{3,0,-2},{3,0,-1},{1,0,0},{3,0,1},{3,0,2}},{{7,4,-24},{6,2,-8},{5,1,-4},{4,0,-2},{3,0,-1},{1,0,0},{3,0,1},{4,0,2},{5,1,3},{6,2,5},{7,4,9},{7,32,-25,999},{7,32,25}}};
|
|
func (_ec *ValueNode )Decode (r _c .StreamReader )(int64 ,error ){_fea ,_dd :=r .ReadBits (byte (_ec ._eb ));if _dd !=nil {return 0,_dd ;};if _ec ._bg {_fea =-_fea ;};return int64 (_ec ._fae )+int64 (_fea ),nil ;};func (_ef *EncodedTable )parseTable ()error {var (_da []*Code ;
|
|
_ggd ,_db ,_cb int32 ;_aga uint64 ;_gd error ;);_agb :=_ef .StreamReader ();_fga :=_ef .HtLow ();for _fga < _ef .HtHigh (){_aga ,_gd =_agb .ReadBits (byte (_ef .HtPS ()));if _gd !=nil {return _gd ;};_ggd =int32 (_aga );_aga ,_gd =_agb .ReadBits (byte (_ef .HtRS ()));
|
|
if _gd !=nil {return _gd ;};_db =int32 (_aga );_da =append (_da ,NewCode (_ggd ,_db ,_cb ,false ));_fga +=1<<uint (_db );};_aga ,_gd =_agb .ReadBits (byte (_ef .HtPS ()));if _gd !=nil {return _gd ;};_ggd =int32 (_aga );_db =32;_cb =_ef .HtLow ()-1;_da =append (_da ,NewCode (_ggd ,_db ,_cb ,true ));
|
|
_aga ,_gd =_agb .ReadBits (byte (_ef .HtPS ()));if _gd !=nil {return _gd ;};_ggd =int32 (_aga );_db =32;_cb =_ef .HtHigh ();_da =append (_da ,NewCode (_ggd ,_db ,_cb ,false ));if _ef .HtOOB ()==1{_aga ,_gd =_agb .ReadBits (byte (_ef .HtPS ()));if _gd !=nil {return _gd ;
|
|
};_ggd =int32 (_aga );_da =append (_da ,NewCode (_ggd ,-1,-1,false ));};if _gd =_ef .InitTree (_da );_gd !=nil {return _gd ;};return nil ;};func _adaf (_gac ,_gbf int32 )string {var _ccd int32 ;_gfad :=make ([]rune ,_gbf );for _cdc :=int32 (1);_cdc <=_gbf ;
|
|
_cdc ++{_ccd =_gac >>uint (_gbf -_cdc )&1;if _ccd !=0{_gfad [_cdc -1]='1';}else {_gfad [_cdc -1]='0';};};return string (_gfad );};type EncodedTable struct{BasicTabler ;_ba *InternalNode ;};func (_ga *EncodedTable )String ()string {return _ga ._ba .String ()+"\u000a"};
|
|
func _dg (_fbd [][]int32 )(*StandardTable ,error ){var _cf []*Code ;for _ce :=0;_ce < len (_fbd );_ce ++{_eba :=_fbd [_ce ][0];_ccc :=_fbd [_ce ][1];_beg :=_fbd [_ce ][2];var _fgaf bool ;if len (_fbd [_ce ])> 3{_fgaf =true ;};_cf =append (_cf ,NewCode (_eba ,_ccc ,_beg ,_fgaf ));
|
|
};_efb :=&StandardTable {_bbd :_bgg (0)};if _dfg :=_efb .InitTree (_cf );_dfg !=nil {return nil ,_dfg ;};return _efb ,nil ;};type Node interface{Decode (_ed _c .StreamReader )(int64 ,error );String ()string ;};func (_cba *FixedSizeTable )String ()string {return _cba ._df .String ()+"\u000a"};
|
|
func (_gg *EncodedTable )RootNode ()*InternalNode {return _gg ._ba }; |