43 lines
11 KiB
Go
Raw Normal View History

2020-08-27 21:45:09 +00:00
//
// 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/
2021-07-30 00:21:16 +00:00
package huffman ;import (_da "errors";_gb "fmt";_g "github.com/unidoc/unipdf/v3/internal/bitwise";_d "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_b "math";_aa "strings";);func (_fdbc *StandardTable )Decode (r _g .StreamReader )(int64 ,error ){return _fdbc ._ced .Decode (r )};
func (_e *EncodedTable )Decode (r _g .StreamReader )(int64 ,error ){return _e ._ac .Decode (r )};type OutOfBandNode struct{};var _ Node =&OutOfBandNode {};func (_ff *FixedSizeTable )Decode (r _g .StreamReader )(int64 ,error ){return _ff ._bg .Decode (r )};
func (_dec *InternalNode )pad (_fc *_aa .Builder ){for _aaa :=int32 (0);_aaa < _dec ._cd ;_aaa ++{_fc .WriteString ("\u0020\u0020\u0020");};};func (_fb *StandardTable )String ()string {return _fb ._ced .String ()+"\u000a"};type StandardTable struct{_ced *InternalNode };
func (_dbc *OutOfBandNode )Decode (r _g .StreamReader )(int64 ,error ){return 0,_d .ErrOOB };func (_cc *EncodedTable )RootNode ()*InternalNode {return _cc ._ac };type Code struct{_be int32 ;_efg int32 ;_ffe int32 ;_gag bool ;_gaca int32 ;};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_gg ){return nil ,_da .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_dd :=_gg [number -1];if _dd ==nil {var _cec error ;_dd ,_cec =_ade (_cfb [number -1]);if _cec !=nil {return nil ,_cec ;};_gg [number -1]=_dd ;};return _dd ,nil ;};var _ Tabler =&EncodedTable {};func _cba (_ffg *Code )*ValueNode {return &ValueNode {_eg :_ffg ._efg ,_fg :_ffg ._ffe ,_dag :_ffg ._gag }};
type FixedSizeTable struct{_bg *InternalNode };func _gec (_cab ,_ec int32 )string {var _cgb int32 ;_fad :=make ([]rune ,_ec );for _cdb :=int32 (1);_cdb <=_ec ;_cdb ++{_cgb =_cab >>uint (_ec -_cdb )&1;if _cgb !=0{_fad [_cdb -1]='1';}else {_fad [_cdb -1]='0';
};};return string (_fad );};func (_bb *ValueNode )String ()string {return _gb .Sprintf ("\u0025\u0064\u002f%\u0064",_bb ._eg ,_bb ._fg );};func (_ea *ValueNode )Decode (r _g .StreamReader )(int64 ,error ){_abf ,_ffb :=r .ReadBits (byte (_ea ._eg ));if _ffb !=nil {return 0,_ffb ;
};if _ea ._dag {_abf =-_abf ;};return int64 (_ea ._fg )+int64 (_abf ),nil ;};func _ade (_ca [][]int32 )(*StandardTable ,error ){var _dfg []*Code ;for _gde :=0;_gde < len (_ca );_gde ++{_gcf :=_ca [_gde ][0];_gac :=_ca [_gde ][1];_dga :=_ca [_gde ][2];var _dce bool ;
if len (_ca [_gde ])> 3{_dce =true ;};_dfg =append (_dfg ,NewCode (_gcf ,_gac ,_dga ,_dce ));};_acb :=&StandardTable {_ced :_gcg (0)};if _faa :=_acb .InitTree (_dfg );_faa !=nil {return nil ,_faa ;};return _acb ,nil ;};type InternalNode struct{_cd int32 ;
_eb Node ;_dage Node ;};func (_cf *EncodedTable )parseTable ()error {var (_dae []*Code ;_fa ,_df ,_gc int32 ;_ga uint64 ;_gd error ;);_ed :=_cf .StreamReader ();_dca :=_cf .HtLow ();for _dca < _cf .HtHigh (){_ga ,_gd =_ed .ReadBits (byte (_cf .HtPS ()));
if _gd !=nil {return _gd ;};_fa =int32 (_ga );_ga ,_gd =_ed .ReadBits (byte (_cf .HtRS ()));if _gd !=nil {return _gd ;};_df =int32 (_ga );_dae =append (_dae ,NewCode (_fa ,_df ,_gc ,false ));_dca +=1<<uint (_df );};_ga ,_gd =_ed .ReadBits (byte (_cf .HtPS ()));
if _gd !=nil {return _gd ;};_fa =int32 (_ga );_df =32;_gc =_cf .HtLow ()-1;_dae =append (_dae ,NewCode (_fa ,_df ,_gc ,true ));_ga ,_gd =_ed .ReadBits (byte (_cf .HtPS ()));if _gd !=nil {return _gd ;};_fa =int32 (_ga );_df =32;_gc =_cf .HtHigh ();_dae =append (_dae ,NewCode (_fa ,_df ,_gc ,false ));
if _cf .HtOOB ()==1{_ga ,_gd =_ed .ReadBits (byte (_cf .HtPS ()));if _gd !=nil {return _gd ;};_fa =int32 (_ga );_dae =append (_dae ,NewCode (_fa ,-1,-1,false ));};if _gd =_cf .InitTree (_dae );_gd !=nil {return _gd ;};return nil ;};func _cb (_ccd *Code )*OutOfBandNode {return &OutOfBandNode {}};
type ValueNode struct{_eg int32 ;_fg int32 ;_dag bool ;};func (_egc *Code )String ()string {var _ebf string ;if _egc ._gaca !=-1{_ebf =_gec (_egc ._gaca ,_egc ._be );}else {_ebf ="\u003f";};return _gb .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_ebf ,_egc ._be ,_egc ._efg ,_egc ._ffe );
};func (_aef *StandardTable )InitTree (codeTable []*Code )error {_baa (codeTable );for _ ,_ace :=range codeTable {if _ag :=_aef ._ced .append (_ace );_ag !=nil {return _ag ;};};return nil ;};func _gcg (_gcd int32 )*InternalNode {return &InternalNode {_cd :_gcd }};
func (_bad *InternalNode )append (_efa *Code )(_ad error ){if _efa ._be ==0{return nil ;};_egg :=_efa ._be -1-_bad ._cd ;if _egg < 0{return _da .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");
};_ded :=(_efa ._gaca >>uint (_egg ))&0x1;if _egg ==0{if _efa ._efg ==-1{if _ded ==1{if _bad ._dage !=nil {return _gb .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_efa );
};_bad ._dage =_cb (_efa );}else {if _bad ._eb !=nil {return _gb .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_efa );};_bad ._eb =_cb (_efa );};}else {if _ded ==1{if _bad ._dage !=nil {return _gb .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",_efa );
};_bad ._dage =_cba (_efa );}else {if _bad ._eb !=nil {return _gb .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",_efa );
};_bad ._eb =_cba (_efa );};};}else {if _ded ==1{if _bad ._dage ==nil {_bad ._dage =_gcg (_bad ._cd +1);};if _ad =_bad ._dage .(*InternalNode ).append (_efa );_ad !=nil {return _ad ;};}else {if _bad ._eb ==nil {_bad ._eb =_gcg (_bad ._cd +1);};if _ad =_bad ._eb .(*InternalNode ).append (_efa );
_ad !=nil {return _ad ;};};};return nil ;};var _cfb =[][][]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 NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_f :=&EncodedTable {_ac :&InternalNode {},BasicTabler :table };if _fe :=_f .parseTable ();_fe !=nil {return nil ,_fe ;};return _f ,nil ;};var _ Node =&ValueNode {};func (_gf *FixedSizeTable )InitTree (codeTable []*Code )error {_baa (codeTable );
for _ ,_gcb :=range codeTable {_aac :=_gf ._bg .append (_gcb );if _aac !=nil {return _aac ;};};return nil ;};func (_ba *FixedSizeTable )String ()string {return _ba ._bg .String ()+"\u000a"};type Tabler interface{Decode (_cbe _g .StreamReader )(int64 ,error );
InitTree (_bag []*Code )error ;String ()string ;RootNode ()*InternalNode ;};var _gg =make ([]Tabler ,len (_cfb ));func _baa (_ee []*Code ){var _cdd int32 ;for _ ,_gbe :=range _ee {_cdd =_ggf (_cdd ,_gbe ._be );};_bgf :=make ([]int32 ,_cdd +1);for _ ,_ddd :=range _ee {_bgf [_ddd ._be ]++;
};var _cga int32 ;_dfc :=make ([]int32 ,len (_bgf )+1);_bgf [0]=0;for _bgc :=int32 (1);_bgc <=int32 (len (_bgf ));_bgc ++{_dfc [_bgc ]=(_dfc [_bgc -1]+(_bgf [_bgc -1]))<<1;_cga =_dfc [_bgc ];for _ ,_adf :=range _ee {if _adf ._be ==_bgc {_adf ._gaca =_cga ;
_cga ++;};};};};func (_dc *EncodedTable )String ()string {return _dc ._ac .String ()+"\u000a"};func _ggf (_bed ,_bbc int32 )int32 {if _bed > _bbc {return _bed ;};return _bbc ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_ef :=&FixedSizeTable {_bg :&InternalNode {}};
if _fdb :=_ef .InitTree (codeTable );_fdb !=nil {return nil ,_fdb ;};return _ef ,nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_be :prefixLength ,_efg :rangeLength ,_ffe :rangeLow ,_gag :isLowerRange ,_gaca :-1};
};func (_ead *InternalNode )String ()string {_dgg :=&_aa .Builder {};_dgg .WriteString ("\u000a");_ead .pad (_dgg );_dgg .WriteString ("\u0030\u003a\u0020");_dgg .WriteString (_ead ._eb .String ()+"\u000a");_ead .pad (_dgg );_dgg .WriteString ("\u0031\u003a\u0020");
_dgg .WriteString (_ead ._dage .String ()+"\u000a");return _dgg .String ();};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_g .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};var _ Node =&InternalNode {};func (_c *EncodedTable )InitTree (codeTable []*Code )error {_baa (codeTable );
for _ ,_ae :=range codeTable {if _fd :=_c ._ac .append (_ae );_fd !=nil {return _fd ;};};return nil ;};func (_bc *OutOfBandNode )String ()string {return _gb .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_b .MaxInt64 ));};func (_bf *FixedSizeTable )RootNode ()*InternalNode {return _bf ._bg };
func (_de *InternalNode )Decode (r _g .StreamReader )(int64 ,error ){_ge ,_bcb :=r .ReadBit ();if _bcb !=nil {return 0,_bcb ;};if _ge ==0{return _de ._eb .Decode (r );};return _de ._dage .Decode (r );};type Node interface{Decode (_cg _g .StreamReader )(int64 ,error );
String ()string ;};type EncodedTable struct{BasicTabler ;_ac *InternalNode ;};func (_aag *StandardTable )RootNode ()*InternalNode {return _aag ._ced };