2022-03-13 12:41:53 +00:00

44 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 (_d "errors";_a "fmt";_b "github.com/unidoc/unipdf/v3/internal/bitwise";_c "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_e "math";_bg "strings";);func (_ccb *StandardTable )String ()string {return _ccb ._fcd .String ()+"\u000a"};
func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_dd :=&FixedSizeTable {_cea :&InternalNode {}};if _ddf :=_dd .InitTree (codeTable );_ddf !=nil {return nil ,_ddf ;};return _dd ,nil ;};type Node interface{Decode (_fd _b .StreamReader )(int64 ,error );
String ()string ;};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_be :=&EncodedTable {_gg :&InternalNode {},BasicTabler :table };if _fc :=_be .parseTable ();_fc !=nil {return nil ,_fc ;};return _be ,nil ;};func (_dbd *FixedSizeTable )String ()string {return _dbd ._cea .String ()+"\u000a"};
func (_ga *EncodedTable )String ()string {return _ga ._gg .String ()+"\u000a"};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_gbf ){return nil ,_d .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_aeb :=_gbf [number -1];if _aeb ==nil {var _cd error ;_aeb ,_cd =_cgaa (_bbg [number -1]);if _cd !=nil {return nil ,_cd ;};_gbf [number -1]=_aeb ;};return _aeb ,nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_ddg :prefixLength ,_efb :rangeLength ,_cdb :rangeLow ,_fdc :isLowerRange ,_ggb :-1};
};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_b .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_db *EncodedTable )RootNode ()*InternalNode {return _db ._gg };func (_aa *EncodedTable )InitTree (codeTable []*Code )error {_bgf (codeTable );
for _ ,_bga :=range codeTable {if _fg :=_aa ._gg .append (_bga );_fg !=nil {return _fg ;};};return nil ;};var _gbf =make ([]Tabler ,len (_bbg ));func _af (_ddfc *Code )*ValueNode {return &ValueNode {_efa :_ddfc ._efb ,_bdd :_ddfc ._cdb ,_bgc :_ddfc ._fdc };
};func (_gef *ValueNode )String ()string {return _a .Sprintf ("\u0025\u0064\u002f%\u0064",_gef ._efa ,_gef ._bdd );};func (_gec *StandardTable )Decode (r _b .StreamReader )(int64 ,error ){return _gec ._fcd .Decode (r )};type Code struct{_ddg int32 ;_efb int32 ;
_cdb int32 ;_fdc bool ;_ggb int32 ;};func (_gb *OutOfBandNode )Decode (r _b .StreamReader )(int64 ,error ){return 0,_c .ErrOOB };func (_gc *InternalNode )Decode (r _b .StreamReader )(int64 ,error ){_bb ,_gbg :=r .ReadBit ();if _gbg !=nil {return 0,_gbg ;
};if _bb ==0{return _gc ._bac .Decode (r );};return _gc ._cgc .Decode (r );};func (_fa *FixedSizeTable )RootNode ()*InternalNode {return _fa ._cea };func (_ab *FixedSizeTable )InitTree (codeTable []*Code )error {_bgf (codeTable );for _ ,_ef :=range codeTable {_ac :=_ab ._cea .append (_ef );
if _ac !=nil {return _ac ;};};return nil ;};type InternalNode struct{_fb int32 ;_bac Node ;_cgc Node ;};func (_bd *EncodedTable )parseTable ()error {var (_ce []*Code ;_gd ,_eg ,_ag int32 ;_ba uint64 ;_fge error ;);_bc :=_bd .StreamReader ();_df :=_bd .HtLow ();
for _df < _bd .HtHigh (){_ba ,_fge =_bc .ReadBits (byte (_bd .HtPS ()));if _fge !=nil {return _fge ;};_gd =int32 (_ba );_ba ,_fge =_bc .ReadBits (byte (_bd .HtRS ()));if _fge !=nil {return _fge ;};_eg =int32 (_ba );_ce =append (_ce ,NewCode (_gd ,_eg ,_ag ,false ));
_df +=1<<uint (_eg );};_ba ,_fge =_bc .ReadBits (byte (_bd .HtPS ()));if _fge !=nil {return _fge ;};_gd =int32 (_ba );_eg =32;_ag =_bd .HtLow ()-1;_ce =append (_ce ,NewCode (_gd ,_eg ,_ag ,true ));_ba ,_fge =_bc .ReadBits (byte (_bd .HtPS ()));if _fge !=nil {return _fge ;
};_gd =int32 (_ba );_eg =32;_ag =_bd .HtHigh ();_ce =append (_ce ,NewCode (_gd ,_eg ,_ag ,false ));if _bd .HtOOB ()==1{_ba ,_fge =_bc .ReadBits (byte (_bd .HtPS ()));if _fge !=nil {return _fge ;};_gd =int32 (_ba );_ce =append (_ce ,NewCode (_gd ,-1,-1,false ));
};if _fge =_bd .InitTree (_ce );_fge !=nil {return _fge ;};return nil ;};type Tabler interface{Decode (_fae _b .StreamReader )(int64 ,error );InitTree (_bcg []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func (_dfbc *StandardTable )RootNode ()*InternalNode {return _dfbc ._fcd };
var _bbg =[][][]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}}};
var _ Node =&InternalNode {};type EncodedTable struct{BasicTabler ;_gg *InternalNode ;};var _ Node =&ValueNode {};func (_aeg *Code )String ()string {var _dae string ;if _aeg ._ggb !=-1{_dae =_dde (_aeg ._ggb ,_aeg ._ddg );}else {_dae ="\u003f";};return _a .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_dae ,_aeg ._ddg ,_aeg ._efb ,_aeg ._cdb );
};type FixedSizeTable struct{_cea *InternalNode };func _ge (_cc *Code )*OutOfBandNode {return &OutOfBandNode {}};type OutOfBandNode struct{};func (_dc *ValueNode )Decode (r _b .StreamReader )(int64 ,error ){_dfb ,_cb :=r .ReadBits (byte (_dc ._efa ));if _cb !=nil {return 0,_cb ;
};if _dc ._bgc {_dfb =-_dfb ;};return int64 (_dc ._bdd )+int64 (_dfb ),nil ;};func _gaeg (_aggc ,_agf int32 )int32 {if _aggc > _agf {return _aggc ;};return _agf ;};type ValueNode struct{_efa int32 ;_bdd int32 ;_bgc bool ;};func (_cbd *InternalNode )pad (_gae *_bg .Builder ){for _geg :=int32 (0);
_geg < _cbd ._fb ;_geg ++{_gae .WriteString ("\u0020\u0020\u0020");};};var _ Tabler =&EncodedTable {};type StandardTable struct{_fcd *InternalNode };func (_cge *OutOfBandNode )String ()string {return _a .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_e .MaxInt64 ));
};func (_ea *EncodedTable )Decode (r _b .StreamReader )(int64 ,error ){return _ea ._gg .Decode (r )};func _cgaa (_fdd [][]int32 )(*StandardTable ,error ){var _abe []*Code ;for _cca :=0;_cca < len (_fdd );_cca ++{_gdb :=_fdd [_cca ][0];_fgg :=_fdd [_cca ][1];
_dg :=_fdd [_cca ][2];var _ec bool ;if len (_fdd [_cca ])> 3{_ec =true ;};_abe =append (_abe ,NewCode (_gdb ,_fgg ,_dg ,_ec ));};_cgcd :=&StandardTable {_fcd :_bgcg (0)};if _cbe :=_cgcd .InitTree (_abe );_cbe !=nil {return nil ,_cbe ;};return _cgcd ,nil ;
};func (_ae *InternalNode )String ()string {_fgc :=&_bg .Builder {};_fgc .WriteString ("\u000a");_ae .pad (_fgc );_fgc .WriteString ("\u0030\u003a\u0020");_fgc .WriteString (_ae ._bac .String ()+"\u000a");_ae .pad (_fgc );_fgc .WriteString ("\u0031\u003a\u0020");
_fgc .WriteString (_ae ._cgc .String ()+"\u000a");return _fgc .String ();};func (_dbc *InternalNode )append (_fcb *Code )(_dad error ){if _fcb ._ddg ==0{return nil ;};_ada :=_fcb ._ddg -1-_dbc ._fb ;if _ada < 0{return _d .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");
};_ggd :=(_fcb ._ggb >>uint (_ada ))&0x1;if _ada ==0{if _fcb ._efb ==-1{if _ggd ==1{if _dbc ._cgc !=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",_fcb );
};_dbc ._cgc =_ge (_fcb );}else {if _dbc ._bac !=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",_fcb );};_dbc ._bac =_ge (_fcb );};}else {if _ggd ==1{if _dbc ._cgc !=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",_fcb );
};_dbc ._cgc =_af (_fcb );}else {if _dbc ._bac !=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",_fcb );
};_dbc ._bac =_af (_fcb );};};}else {if _ggd ==1{if _dbc ._cgc ==nil {_dbc ._cgc =_bgcg (_dbc ._fb +1);};if _dad =_dbc ._cgc .(*InternalNode ).append (_fcb );_dad !=nil {return _dad ;};}else {if _dbc ._bac ==nil {_dbc ._bac =_bgcg (_dbc ._fb +1);};if _dad =_dbc ._bac .(*InternalNode ).append (_fcb );
_dad !=nil {return _dad ;};};};return nil ;};var _ Node =&OutOfBandNode {};func (_agg *StandardTable )InitTree (codeTable []*Code )error {_bgf (codeTable );for _ ,_de :=range codeTable {if _gdc :=_agg ._fcd .append (_de );_gdc !=nil {return _gdc ;};};return nil ;
};func _dde (_afb ,_cgd int32 )string {var _bed int32 ;_acc :=make ([]rune ,_cgd );for _ca :=int32 (1);_ca <=_cgd ;_ca ++{_bed =_afb >>uint (_cgd -_ca )&1;if _bed !=0{_acc [_ca -1]='1';}else {_acc [_ca -1]='0';};};return string (_acc );};func _bgf (_dga []*Code ){var _efg int32 ;
for _ ,_ff :=range _dga {_efg =_gaeg (_efg ,_ff ._ddg );};_aga :=make ([]int32 ,_efg +1);for _ ,_cgf :=range _dga {_aga [_cgf ._ddg ]++;};var _adac int32 ;_cbg :=make ([]int32 ,len (_aga )+1);_aga [0]=0;for _fe :=int32 (1);_fe <=int32 (len (_aga ));_fe ++{_cbg [_fe ]=(_cbg [_fe -1]+(_aga [_fe -1]))<<1;
_adac =_cbg [_fe ];for _ ,_gbb :=range _dga {if _gbb ._ddg ==_fe {_gbb ._ggb =_adac ;_adac ++;};};};};func (_cg *FixedSizeTable )Decode (r _b .StreamReader )(int64 ,error ){return _cg ._cea .Decode (r )};func _bgcg (_gbgf int32 )*InternalNode {return &InternalNode {_fb :_gbgf }};