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-05-11 00:01:27 +00:00
package huffman ;import (_gb "errors";_a "fmt";_g "github.com/unidoc/unipdf/v3/internal/bitwise";_eb "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_ec "math";_ee "strings";);var _ Node =&ValueNode {};func (_ga *OutOfBandNode )String ()string {return _a .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_ec .MaxInt64 ));
};func _ecb (_ggf int32 )*InternalNode {return &InternalNode {_eee :_ggf }};type EncodedTable struct{BasicTabler ;_f *InternalNode ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_dd :=&FixedSizeTable {_fb :&InternalNode {}};if _ab :=_dd .InitTree (codeTable );
_ab !=nil {return nil ,_ab ;};return _dd ,nil ;};func (_fbad *InternalNode )append (_edc *Code )(_bfb error ){if _edc ._cce ==0{return nil ;};_gff :=_edc ._cce -1-_fbad ._eee ;if _gff < 0{return _gb .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");
};_bg :=(_edc ._cg >>uint (_gff ))&0x1;if _gff ==0{if _edc ._bgce ==-1{if _bg ==1{if _fbad ._fe !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_edc );
};_fbad ._fe =_fc (_edc );}else {if _fbad ._gfc !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_edc );};_fbad ._gfc =_fc (_edc );};}else {if _bg ==1{if _fbad ._fe !=nil {return _a .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",_edc );
};_fbad ._fe =_fge (_edc );}else {if _fbad ._gfc !=nil {return _a .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",_edc );
};_fbad ._gfc =_fge (_edc );};};}else {if _bg ==1{if _fbad ._fe ==nil {_fbad ._fe =_ecb (_fbad ._eee +1);};if _bfb =_fbad ._fe .(*InternalNode ).append (_edc );_bfb !=nil {return _bfb ;};}else {if _fbad ._gfc ==nil {_fbad ._gfc =_ecb (_fbad ._eee +1);};
if _bfb =_fbad ._gfc .(*InternalNode ).append (_edc );_bfb !=nil {return _bfb ;};};};return nil ;};func (_da *ValueNode )Decode (r _g .StreamReader )(int64 ,error ){_fbc ,_de :=r .ReadBits (byte (_da ._fg ));if _de !=nil {return 0,_de ;};if _da ._bff {_fbc =-_fbc ;
};return int64 (_da ._bc )+int64 (_fbc ),nil ;};func (_ggg *EncodedTable )parseTable ()error {var (_ed []*Code ;_bd ,_ecg ,_af int32 ;_d uint64 ;_gbg error ;);_ede :=_ggg .StreamReader ();_gf :=_ggg .HtLow ();for _gf < _ggg .HtHigh (){_d ,_gbg =_ede .ReadBits (byte (_ggg .HtPS ()));
if _gbg !=nil {return _gbg ;};_bd =int32 (_d );_d ,_gbg =_ede .ReadBits (byte (_ggg .HtRS ()));if _gbg !=nil {return _gbg ;};_ecg =int32 (_d );_ed =append (_ed ,NewCode (_bd ,_ecg ,_af ,false ));_gf +=1<<uint (_ecg );};_d ,_gbg =_ede .ReadBits (byte (_ggg .HtPS ()));
if _gbg !=nil {return _gbg ;};_bd =int32 (_d );_ecg =32;_af =_ggg .HtLow ()-1;_ed =append (_ed ,NewCode (_bd ,_ecg ,_af ,true ));_d ,_gbg =_ede .ReadBits (byte (_ggg .HtPS ()));if _gbg !=nil {return _gbg ;};_bd =int32 (_d );_ecg =32;_af =_ggg .HtHigh ();
_ed =append (_ed ,NewCode (_bd ,_ecg ,_af ,false ));if _ggg .HtOOB ()==1{_d ,_gbg =_ede .ReadBits (byte (_ggg .HtPS ()));if _gbg !=nil {return _gbg ;};_bd =int32 (_d );_ed =append (_ed ,NewCode (_bd ,-1,-1,false ));};if _gbg =_ggg .InitTree (_ed );_gbg !=nil {return _gbg ;
};return nil ;};func (_edb *FixedSizeTable )InitTree (codeTable []*Code )error {_ffa (codeTable );for _ ,_ac :=range codeTable {_ace :=_edb ._fb .append (_ac );if _ace !=nil {return _ace ;};};return nil ;};var _aae =make ([]Tabler ,len (_bac ));type OutOfBandNode struct{};
func _fc (_ad *Code )*OutOfBandNode {return &OutOfBandNode {}};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_g .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func _fge (_eec *Code )*ValueNode {return &ValueNode {_fg :_eec ._bgce ,_bc :_eec ._cab ,_bff :_eec ._dc }};
func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_cce :prefixLength ,_bgce :rangeLength ,_cab :rangeLow ,_dc :isLowerRange ,_cg :-1};};func (_aa *OutOfBandNode )Decode (r _g .StreamReader )(int64 ,error ){return 0,_eb .ErrOOB };
type FixedSizeTable struct{_fb *InternalNode };func (_bdd *FixedSizeTable )Decode (r _g .StreamReader )(int64 ,error ){return _bdd ._fb .Decode (r )};func (_ba *FixedSizeTable )String ()string {return _ba ._fb .String ()+"\u000a"};func (_bce *InternalNode )String ()string {_eaf :=&_ee .Builder {};
_eaf .WriteString ("\u000a");_bce .pad (_eaf );_eaf .WriteString ("\u0030\u003a\u0020");_eaf .WriteString (_bce ._gfc .String ()+"\u000a");_bce .pad (_eaf );_eaf .WriteString ("\u0031\u003a\u0020");_eaf .WriteString (_bce ._fe .String ()+"\u000a");return _eaf .String ();
};var _ Tabler =&EncodedTable {};func _ebe (_gffc ,_abee int32 )int32 {if _gffc > _abee {return _gffc ;};return _abee ;};type StandardTable struct{_be *InternalNode };func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_gg :=&EncodedTable {_f :&InternalNode {},BasicTabler :table };
if _c :=_gg .parseTable ();_c !=nil {return nil ,_c ;};return _gg ,nil ;};func (_eg *StandardTable )Decode (r _g .StreamReader )(int64 ,error ){return _eg ._be .Decode (r )};func (_efd *Code )String ()string {var _cffd string ;if _efd ._cg !=-1{_cffd =_abe (_efd ._cg ,_efd ._cce );
}else {_cffd ="\u003f";};return _a .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_cffd ,_efd ._cce ,_efd ._bgce ,_efd ._cab );};func _bgg (_fad [][]int32 )(*StandardTable ,error ){var _ebc []*Code ;for _ead :=0;_ead < len (_fad );
_ead ++{_edg :=_fad [_ead ][0];_ef :=_fad [_ead ][1];_bddd :=_fad [_ead ][2];var _aec bool ;if len (_fad [_ead ])> 3{_aec =true ;};_ebc =append (_ebc ,NewCode (_edg ,_ef ,_bddd ,_aec ));};_cb :=&StandardTable {_be :_ecb (0)};if _dg :=_cb .InitTree (_ebc );
_dg !=nil {return nil ,_dg ;};return _cb ,nil ;};func (_fgg *StandardTable )RootNode ()*InternalNode {return _fgg ._be };func (_ff *EncodedTable )RootNode ()*InternalNode {return _ff ._f };var _ Node =&InternalNode {};func (_bbe *InternalNode )Decode (r _g .StreamReader )(int64 ,error ){_eea ,_gd :=r .ReadBit ();
if _gd !=nil {return 0,_gd ;};if _eea ==0{return _bbe ._gfc .Decode (r );};return _bbe ._fe .Decode (r );};func (_ea *ValueNode )String ()string {return _a .Sprintf ("\u0025\u0064\u002f%\u0064",_ea ._fg ,_ea ._bc );};type Code struct{_cce int32 ;_bgce int32 ;
_cab int32 ;_dc bool ;_cg int32 ;};func (_db *InternalNode )pad (_cd *_ee .Builder ){for _dbc :=int32 (0);_dbc < _db ._eee ;_dbc ++{_cd .WriteString ("\u0020\u0020\u0020");};};func (_fa *StandardTable )InitTree (codeTable []*Code )error {_ffa (codeTable );
for _ ,_fdd :=range codeTable {if _bcfe :=_fa ._be .append (_fdd );_bcfe !=nil {return _bcfe ;};};return nil ;};var _ Node =&OutOfBandNode {};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_aae ){return nil ,_gb .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_ae :=_aae [number -1];if _ae ==nil {var _beb error ;_ae ,_beb =_bgg (_bac [number -1]);if _beb !=nil {return nil ,_beb ;};_aae [number -1]=_ae ;};return _ae ,nil ;};type InternalNode struct{_eee int32 ;_gfc Node ;_fe Node ;};type Node interface{Decode (_bb _g .StreamReader )(int64 ,error );
String ()string ;};func (_df *FixedSizeTable )RootNode ()*InternalNode {return _df ._fb };func _abe (_beg ,_bad int32 )string {var _cfa int32 ;_dff :=make ([]rune ,_bad );for _cgc :=int32 (1);_cgc <=_bad ;_cgc ++{_cfa =_beg >>uint (_bad -_cgc )&1;if _cfa !=0{_dff [_cgc -1]='1';
}else {_dff [_cgc -1]='0';};};return string (_dff );};func (_ge *EncodedTable )InitTree (codeTable []*Code )error {_ffa (codeTable );for _ ,_cc :=range codeTable {if _cff :=_ge ._f .append (_cc );_cff !=nil {return _cff ;};};return nil ;};func (_ebb *EncodedTable )String ()string {return _ebb ._f .String ()+"\u000a"};
type Tabler interface{Decode (_afa _g .StreamReader )(int64 ,error );InitTree (_bab []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func _ffa (_bee []*Code ){var _egf int32 ;for _ ,_bfe :=range _bee {_egf =_ebe (_egf ,_bfe ._cce );};_ded :=make ([]int32 ,_egf +1);
for _ ,_cad :=range _bee {_ded [_cad ._cce ]++;};var _fgf int32 ;_caf :=make ([]int32 ,len (_ded )+1);_ded [0]=0;for _fff :=int32 (1);_fff <=int32 (len (_ded ));_fff ++{_caf [_fff ]=(_caf [_fff -1]+(_ded [_fff -1]))<<1;_fgf =_caf [_fff ];for _ ,_aba :=range _bee {if _aba ._cce ==_fff {_aba ._cg =_fgf ;
_fgf ++;};};};};func (_cf *EncodedTable )Decode (r _g .StreamReader )(int64 ,error ){return _cf ._f .Decode (r )};func (_ca *StandardTable )String ()string {return _ca ._be .String ()+"\u000a"};type ValueNode struct{_fg int32 ;_bc int32 ;_bff bool ;};var _bac =[][][]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}}};