2023-03-01 18:45:57 +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 (_de "errors";_cc "fmt";_f "github.com/unidoc/unipdf/v3/internal/bitwise";_fg "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_d "math";_g "strings";);func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_ea ){return nil ,_de .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
};_edc :=_ea [number -1];if _edc ==nil {var _bdg error ;_edc ,_bdg =_fadb (_ceb [number -1]);if _bdg !=nil {return nil ,_bdg ;};_ea [number -1]=_edc ;};return _edc ,nil ;};func (_fe *FixedSizeTable )RootNode ()*InternalNode {return _fe ._ab };func (_dd *StandardTable )InitTree (codeTable []*Code )error {_aab (codeTable );
for _ ,_gef :=range codeTable {if _ag :=_dd ._dgg .append (_gef );_ag !=nil {return _ag ;};};return nil ;};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_gaff :prefixLength ,_fga :rangeLength ,_cfcc :rangeLow ,_cdc :isLowerRange ,_gf :-1};
};func (_af *ValueNode )Decode (r *_f .Reader )(int64 ,error ){_dcg ,_cedf :=r .ReadBits (byte (_af ._cfa ));if _cedf !=nil {return 0,_cedf ;};if _af ._bgb {_dcg =-_dcg ;};return int64 (_af ._fce )+int64 (_dcg ),nil ;};type FixedSizeTable struct{_ab *InternalNode };
func (_be *OutOfBandNode )String ()string {return _cc .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_d .MaxInt64 ));};func (_cbfe *StandardTable )RootNode ()*InternalNode {return _cbfe ._dgg };func (_dbf *InternalNode )append (_ad *Code )(_abe error ){if _ad ._gaff ==0{return nil ;
};_faf :=_ad ._gaff -1-_dbf ._bc ;if _faf < 0{return _de .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");};_egb :=(_ad ._gf >>uint (_faf ))&0x1;
if _faf ==0{if _ad ._fga ==-1{if _egb ==1{if _dbf ._bd !=nil {return _cc .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ad );};_dbf ._bd =_fc (_ad );
}else {if _dbf ._dcb !=nil {return _cc .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_ad );};_dbf ._dcb =_fc (_ad );};}else {if _egb ==1{if _dbf ._bd !=nil {return _cc .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",_ad );
};_dbf ._bd =_gg (_ad );}else {if _dbf ._dcb !=nil {return _cc .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",_ad );
};_dbf ._dcb =_gg (_ad );};};}else {if _egb ==1{if _dbf ._bd ==nil {_dbf ._bd =_fcf (_dbf ._bc +1);};if _abe =_dbf ._bd .(*InternalNode ).append (_ad );_abe !=nil {return _abe ;};}else {if _dbf ._dcb ==nil {_dbf ._dcb =_fcf (_dbf ._bc +1);};if _abe =_dbf ._dcb .(*InternalNode ).append (_ad );
_abe !=nil {return _abe ;};};};return nil ;};var _ceb =[][][]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 (_gb *StandardTable )Decode (r *_f .Reader )(int64 ,error ){return _gb ._dgg .Decode (r )};type EncodedTable struct{BasicTabler ;_ce *InternalNode ;};type OutOfBandNode struct{};type Node interface{Decode (_efa *_f .Reader )(int64 ,error );String ()string ;
};func (_fad *InternalNode )String ()string {_cbc :=&_g .Builder {};_cbc .WriteString ("\u000a");_fad .pad (_cbc );_cbc .WriteString ("\u0030\u003a\u0020");_cbc .WriteString (_fad ._dcb .String ()+"\u000a");_fad .pad (_cbc );_cbc .WriteString ("\u0031\u003a\u0020");
_cbc .WriteString (_fad ._bd .String ()+"\u000a");return _cbc .String ();};var _ Node =&InternalNode {};func (_ca *InternalNode )Decode (r *_f .Reader )(int64 ,error ){_efgb ,_ge :=r .ReadBit ();if _ge !=nil {return 0,_ge ;};if _efgb ==0{return _ca ._dcb .Decode (r );
};return _ca ._bd .Decode (r );};func _fc (_fb *Code )*OutOfBandNode {return &OutOfBandNode {}};var _ea =make ([]Tabler ,len (_ceb ));var _ Node =&OutOfBandNode {};func _ba (_dcgd ,_gafe int32 )string {var _eba int32 ;_cee :=make ([]rune ,_gafe );for _cdbf :=int32 (1);
_cdbf <=_gafe ;_cdbf ++{_eba =_dcgd >>uint (_gafe -_cdbf )&1;if _eba !=0{_cee [_cdbf -1]='1';}else {_cee [_cdbf -1]='0';};};return string (_cee );};func (_ced *EncodedTable )parseTable ()error {var (_cf []*Code ;_cg ,_bf ,_dce int32 ;_ec uint64 ;_a error ;
);_fa :=_ced .StreamReader ();_cdf :=_ced .HtLow ();for _cdf < _ced .HtHigh (){_ec ,_a =_fa .ReadBits (byte (_ced .HtPS ()));if _a !=nil {return _a ;};_cg =int32 (_ec );_ec ,_a =_fa .ReadBits (byte (_ced .HtRS ()));if _a !=nil {return _a ;};_bf =int32 (_ec );
_cf =append (_cf ,NewCode (_cg ,_bf ,_dce ,false ));_cdf +=1<<uint (_bf );};_ec ,_a =_fa .ReadBits (byte (_ced .HtPS ()));if _a !=nil {return _a ;};_cg =int32 (_ec );_bf =32;_dce =_ced .HtLow ()-1;_cf =append (_cf ,NewCode (_cg ,_bf ,_dce ,true ));_ec ,_a =_fa .ReadBits (byte (_ced .HtPS ()));
if _a !=nil {return _a ;};_cg =int32 (_ec );_bf =32;_dce =_ced .HtHigh ();_cf =append (_cf ,NewCode (_cg ,_bf ,_dce ,false ));if _ced .HtOOB ()==1{_ec ,_a =_fa .ReadBits (byte (_ced .HtPS ()));if _a !=nil {return _a ;};_cg =int32 (_ec );_cf =append (_cf ,NewCode (_cg ,-1,-1,false ));
};if _a =_ced .InitTree (_cf );_a !=nil {return _a ;};return nil ;};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_eg :=&FixedSizeTable {_ab :&InternalNode {}};if _ga :=_eg .InitTree (codeTable );_ga !=nil {return nil ,_ga ;};return _eg ,nil ;
};func (_bg *FixedSizeTable )Decode (r *_f .Reader )(int64 ,error ){return _bg ._ab .Decode (r )};func (_eb *EncodedTable )RootNode ()*InternalNode {return _eb ._ce };type ValueNode struct{_cfa int32 ;_fce int32 ;_bgb bool ;};func (_cdb *EncodedTable )Decode (r *_f .Reader )(int64 ,error ){return _cdb ._ce .Decode (r )};
func (_gaf *InternalNode )pad (_ecd *_g .Builder ){for _geg :=int32 (0);_geg < _gaf ._bc ;_geg ++{_ecd .WriteString ("\u0020\u0020\u0020");};};var _ Tabler =&EncodedTable {};func _aab (_gbe []*Code ){var _gfb int32 ;for _ ,_fdg :=range _gbe {_gfb =_feg (_gfb ,_fdg ._gaff );
};_abc :=make ([]int32 ,_gfb +1);for _ ,_ffa :=range _gbe {_abc [_ffa ._gaff ]++;};var _ffg int32 ;_aag :=make ([]int32 ,len (_abc )+1);_abc [0]=0;for _dag :=int32 (1);_dag <=int32 (len (_abc ));_dag ++{_aag [_dag ]=(_aag [_dag -1]+(_abc [_dag -1]))<<1;
_ffg =_aag [_dag ];for _ ,_ac :=range _gbe {if _ac ._gaff ==_dag {_ac ._gf =_ffg ;_ffg ++;};};};};type Tabler interface{Decode (_gca *_f .Reader )(int64 ,error );InitTree (_bde []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func (_e *EncodedTable )InitTree (codeTable []*Code )error {_aab (codeTable );
for _ ,_dc :=range codeTable {if _b :=_e ._ce .append (_dc );_b !=nil {return _b ;};};return nil ;};func (_cce *FixedSizeTable )InitTree (codeTable []*Code )error {_aab (codeTable );for _ ,_efg :=range codeTable {_cb :=_cce ._ab .append (_efg );if _cb !=nil {return _cb ;
};};return nil ;};var _ Node =&ValueNode {};func _gg (_cgf *Code )*ValueNode {return &ValueNode {_cfa :_cgf ._fga ,_fce :_cgf ._cfcc ,_bgb :_cgf ._cdc };};func (_fd *EncodedTable )String ()string {return _fd ._ce .String ()+"\u000a"};func (_aa *Code )String ()string {var _ggb string ;
if _aa ._gf !=-1{_ggb =_ba (_aa ._gf ,_aa ._gaff );}else {_ggb ="\u003f";};return _cc .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_ggb ,_aa ._gaff ,_aa ._fga ,_aa ._cfcc );};func (_ceg *FixedSizeTable )String ()string {return _ceg ._ab .String ()+"\u000a"};
func (_ccf *ValueNode )String ()string {return _cc .Sprintf ("\u0025\u0064\u002f%\u0064",_ccf ._cfa ,_ccf ._fce );};type Code struct{_gaff int32 ;_fga int32 ;_cfcc int32 ;_cdc bool ;_gf int32 ;};type InternalNode struct{_bc int32 ;_dcb Node ;_bd Node ;
};func _fcf (_dcgc int32 )*InternalNode {return &InternalNode {_bc :_dcgc }};func (_ae *OutOfBandNode )Decode (r *_f .Reader )(int64 ,error ){return 0,_fg .ErrOOB };func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_df :=&EncodedTable {_ce :&InternalNode {},BasicTabler :table };
if _cd :=_df .parseTable ();_cd !=nil {return nil ,_cd ;};return _df ,nil ;};func _fadb (_ecf [][]int32 )(*StandardTable ,error ){var _cfac []*Code ;for _cgg :=0;_cgg < len (_ecf );_cgg ++{_cfc :=_ecf [_cgg ][0];_fff :=_ecf [_cgg ][1];_cae :=_ecf [_cgg ][2];
var _fafb bool ;if len (_ecf [_cgg ])> 3{_fafb =true ;};_cfac =append (_cfac ,NewCode (_cfc ,_fff ,_cae ,_fafb ));};_cfca :=&StandardTable {_dgg :_fcf (0)};if _ffc :=_cfca .InitTree (_cfac );_ffc !=nil {return nil ,_ffc ;};return _cfca ,nil ;};type StandardTable struct{_dgg *InternalNode };
type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()*_f .Reader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func (_cbf *StandardTable )String ()string {return _cbf ._dgg .String ()+"\u000a"};func _feg (_edf ,_aee int32 )int32 {if _edf > _aee {return _edf ;
};return _aee ;};