mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
12 lines
183 KiB
Go
12 lines
183 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 segments ;import (_ec "encoding/binary";_ece "errors";_a "fmt";_g "github.com/unidoc/unipdf/v3/common";_fg "github.com/unidoc/unipdf/v3/internal/bitwise";_ab "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_cg "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_ff "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/arithmetic";_cf "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/huffman";_cb "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/mmr";_ba "github.com/unidoc/unipdf/v3/internal/jbig2/encoder/arithmetic";_bb "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_e "image";_d "io";_c "math";_bd "strings";_f "time";);func (_cdbb *HalftoneRegion )combineGrayscalePlanes (_bdd []*_cg .Bitmap ,_gad int )error {_eeee :=0;for _fgc :=0;_fgc < _bdd [_gad ].Height ;_fgc ++{for _eegc :=0;_eegc < _bdd [_gad ].Width ;_eegc +=8{_acg ,_bfag :=_bdd [_gad +1].GetByte (_eeee );if _bfag !=nil {return _bfag ;};_bdc ,_bfag :=_bdd [_gad ].GetByte (_eeee );if _bfag !=nil {return _bfag ;};_bfag =_bdd [_gad ].SetByte (_eeee ,_cg .CombineBytes (_bdc ,_acg ,_cg .CmbOpXor ));if _bfag !=nil {return _bfag ;};_eeee ++;};};return nil ;};func (_dcdg *PageInformationSegment )readCombinationOperator ()error {_dabe ,_beed :=_dcdg ._dgbe .ReadBits (2);if _beed !=nil {return _beed ;};_dcdg ._dgcae =_cg .CombinationOperator (int (_dabe ));return nil ;};func (_cgf *EndOfStripe )LineNumber ()int {return _cgf ._cba };func (_fde *GenericRegion )overrideAtTemplate1 (_eee ,_fcc ,_bafee ,_egc ,_afgg int )int {_eee &=0x1FF7;if _fde .GBAtY [0]==0&&_fde .GBAtX [0]>=-int8 (_afgg ){_eee |=(_egc >>uint (7-(int8 (_afgg )+_fde .GBAtX [0]))&0x1)<<3;}else {_eee |=int (_fde .getPixel (_fcc +int (_fde .GBAtX [0]),_bafee +int (_fde .GBAtY [0])))<<3;};return _eee ;};func (_cbde *TableSegment )parseHeader ()error {var (_bcgg int ;_febf uint64 ;_gfag error ;);_bcgg ,_gfag =_cbde ._acac .ReadBit ();if _gfag !=nil {return _gfag ;};if _bcgg ==1{return _a .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0061\u0062\u006c\u0065 \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0064e\u0066\u0069\u006e\u0069\u0074\u0069\u006f\u006e\u002e\u0020\u0042\u002e\u0032\u002e1\u0020\u0043\u006f\u0064\u0065\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u0066\u006c\u0061\u0067\u0073\u003a\u0020\u0042\u0069\u0074\u0020\u0037\u0020\u006d\u0075\u0073\u0074\u0020b\u0065\u0020\u007a\u0065\u0072\u006f\u002e\u0020\u0057a\u0073\u003a \u0025\u0064",_bcgg );};if _febf ,_gfag =_cbde ._acac .ReadBits (3);_gfag !=nil {return _gfag ;};_cbde ._eafa =(int32 (_febf )+1)&0xf;if _febf ,_gfag =_cbde ._acac .ReadBits (3);_gfag !=nil {return _gfag ;};_cbde ._fgff =(int32 (_febf )+1)&0xf;if _febf ,_gfag =_cbde ._acac .ReadBits (32);_gfag !=nil {return _gfag ;};_cbde ._ceagf =int32 (_febf &_c .MaxInt32 );if _febf ,_gfag =_cbde ._acac .ReadBits (32);_gfag !=nil {return _gfag ;};_cbde ._ggce =int32 (_febf &_c .MaxInt32 );return nil ;};func (_afcg *Header )writeSegmentPageAssociation (_gbbb _fg .BinaryWriter )(_aefb int ,_fbbb error ){const _aagf ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e";if _afcg .pageSize ()!=4{if _fbbb =_gbbb .WriteByte (byte (_afcg .PageAssociation ));_fbbb !=nil {return 0,_bb .Wrap (_fbbb ,_aagf ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_edee :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_edee ,uint32 (_afcg .PageAssociation ));if _aefb ,_fbbb =_gbbb .Write (_edee );_fbbb !=nil {return 0,_bb .Wrap (_fbbb ,_aagf ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _aefb ,nil ;};var _ SegmentEncoder =&RegionSegment {};func (_gfde *Header )readSegmentDataLength (_agfc _fg .StreamReader )(_gbga error ){_gfde .SegmentDataLength ,_gbga =_agfc .ReadBits (32);if _gbga !=nil {return _gbga ;};_gfde .SegmentDataLength &=_c .MaxInt32 ;return nil ;};type GenericRegion struct{_cgde _fg .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;UseExtTemplates bool ;IsTPGDon bool ;GBTemplate byte ;IsMMREncoded bool ;UseMMR bool ;GBAtX []int8 ;GBAtY []int8 ;GBAtOverride []bool ;_bcfd bool ;Bitmap *_cg .Bitmap ;_gag *_ff .Decoder ;_ggc *_ff .DecoderStats ;_cdbf *_cb .Decoder ;};func (_gagc *PageInformationSegment )parseHeader ()(_dbac error ){_g .Log .Trace ("\u005b\u0050\u0061\u0067\u0065I\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067m\u0065\u006e\u0074\u005d\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u002e\u002e");defer func (){var _gcfc ="[\u0050\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0053\u0065gm\u0065\u006e\u0074\u005d \u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065ad\u0065\u0072 \u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064";if _dbac !=nil {_gcfc +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_dbac .Error ();}else {_gcfc +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_g .Log .Trace (_gcfc );}();if _dbac =_gagc .readWidthAndHeight ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readResolution ();_dbac !=nil {return _dbac ;};_ ,_dbac =_gagc ._dgbe .ReadBit ();if _dbac !=nil {return _dbac ;};if _dbac =_gagc .readCombinationOperatorOverrideAllowed ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readRequiresAuxiliaryBuffer ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readCombinationOperator ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readDefaultPixelValue ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readContainsRefinement ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readIsLossless ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readIsStriped ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .readMaxStripeSize ();_dbac !=nil {return _dbac ;};if _dbac =_gagc .checkInput ();_dbac !=nil {return _dbac ;};_g .Log .Trace ("\u0025\u0073",_gagc );return nil ;};func (_efbf *GenericRefinementRegion )getPixel (_gbee *_cg .Bitmap ,_dec ,_cddc int )int {if _dec < 0||_dec >=_gbee .Width {return 0;};if _cddc < 0||_cddc >=_gbee .Height {return 0;};if _gbee .GetPixel (_dec ,_cddc ){return 1;};return 0;};func (_aefbf *TableSegment )Init (h *Header ,r _fg .StreamReader )error {_aefbf ._acac =r ;return _aefbf .parseHeader ();};func (_ddff *PageInformationSegment )readDefaultPixelValue ()error {_dddf ,_dbef :=_ddff ._dgbe .ReadBit ();if _dbef !=nil {return _dbef ;};_ddff ._adab =uint8 (_dddf &0xf);return nil ;};func (_agc *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _agc .RegionSegment };func (_begd *GenericRegion )decodeTemplate3 (_eggb ,_ebc ,_gcf int ,_dcgb ,_gagd int )(_agdg error ){const _eebc ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033";var (_aabb ,_fac int ;_gbc int ;_fgef byte ;_cbad ,_adg int ;);if _eggb >=1{_fgef ,_agdg =_begd .Bitmap .GetByte (_gagd );if _agdg !=nil {return _bb .Wrap (_agdg ,_eebc ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_gbc =int (_fgef );};_aabb =(_gbc >>1)&0x70;for _afae :=0;_afae < _gcf ;_afae =_cbad {var (_ffag byte ;_gcbg int ;);_cbad =_afae +8;if _cef :=_ebc -_afae ;_cef > 8{_gcbg =8;}else {_gcbg =_cef ;};if _eggb >=1{_gbc <<=8;if _cbad < _ebc {_fgef ,_agdg =_begd .Bitmap .GetByte (_gagd +1);if _agdg !=nil {return _bb .Wrap (_agdg ,_eebc ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031");};_gbc |=int (_fgef );};};for _egece :=0;_egece < _gcbg ;_egece ++{if _begd ._bcfd {_fac =_begd .overrideAtTemplate3 (_aabb ,_afae +_egece ,_eggb ,int (_ffag ),_egece );_begd ._ggc .SetIndex (int32 (_fac ));}else {_begd ._ggc .SetIndex (int32 (_aabb ));};_adg ,_agdg =_begd ._gag .DecodeBit (_begd ._ggc );if _agdg !=nil {return _bb .Wrap (_agdg ,_eebc ,"");};_ffag |=byte (_adg )<<byte (7-_egece );_aabb =((_aabb &0x1f7)<<1)|_adg |((_gbc >>uint (8-_egece ))&0x010);};if _ceab :=_begd .Bitmap .SetByte (_dcgb ,_ffag );_ceab !=nil {return _bb .Wrap (_ceab ,_eebc ,"");};_dcgb ++;_gagd ++;};return nil ;};func (_bfec *GenericRefinementRegion )readAtPixels ()error {_bfec .GrAtX =make ([]int8 ,2);_bfec .GrAtY =make ([]int8 ,2);_afa ,_acdg :=_bfec ._ga .ReadByte ();if _acdg !=nil {return _acdg ;};_bfec .GrAtX [0]=int8 (_afa );_afa ,_acdg =_bfec ._ga .ReadByte ();if _acdg !=nil {return _acdg ;};_bfec .GrAtY [0]=int8 (_afa );_afa ,_acdg =_bfec ._ga .ReadByte ();if _acdg !=nil {return _acdg ;};_bfec .GrAtX [1]=int8 (_afa );_afa ,_acdg =_bfec ._ga .ReadByte ();if _acdg !=nil {return _acdg ;};_bfec .GrAtY [1]=int8 (_afa );return nil ;};func (_aac *GenericRegion )Size ()int {return _aac .RegionSegment .Size ()+1+2*len (_aac .GBAtX )};func (_abbc Type )String ()string {switch _abbc {case TSymbolDictionary :return "\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079";case TIntermediateTextRegion :return "\u0049n\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020T\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateTextRegion :return "I\u006d\u006d\u0065\u0064ia\u0074e\u0020\u0054\u0065\u0078\u0074 \u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessTextRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020L\u006f\u0073\u0073\u006c\u0065\u0073\u0073 \u0054\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TPatternDictionary :return "\u0050a\u0074t\u0065\u0072\u006e\u0020\u0044i\u0063\u0074i\u006f\u006e\u0061\u0072\u0079";case TIntermediateHalftoneRegion :return "\u0049\u006e\u0074\u0065r\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0048\u0061l\u0066t\u006f\u006e\u0065\u0020\u0052\u0065\u0067i\u006f\u006e";case TImmediateHalftoneRegion :return "\u0049m\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u0048\u0061l\u0066t\u006fn\u0065\u0020\u0052\u0065\u0067\u0069\u006fn";case TImmediateLosslessHalftoneRegion :return "\u0049\u006d\u006ded\u0069\u0061\u0074\u0065\u0020\u004c\u006f\u0073\u0073l\u0065s\u0073 \u0048a\u006c\u0066\u0074\u006f\u006e\u0065\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TIntermediateGenericRegion :return "I\u006e\u0074\u0065\u0072\u006d\u0065d\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020R\u0065g\u0069\u006f\u006e";case TImmediateGenericRegion :return "\u0049m\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006ee\u0072\u0069\u0063\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessGenericRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u004c\u006f\u0073\u0073\u006c\u0065\u0073\u0073\u0020\u0047e\u006e\u0065\u0072\u0069\u0063\u0020\u0052e\u0067\u0069\u006f\u006e";case TIntermediateGenericRefinementRegion :return "\u0049\u006e\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0020\u0052\u0065\u0066i\u006e\u0065\u006d\u0065\u006et\u0020\u0052e\u0067\u0069\u006f\u006e";case TImmediateGenericRefinementRegion :return "I\u006d\u006d\u0065\u0064\u0069\u0061t\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020\u0052\u0065\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020\u0052\u0065\u0067\u0069o\u006e";case TImmediateLosslessGenericRefinementRegion :return "\u0049m\u006d\u0065d\u0069\u0061\u0074\u0065 \u004c\u006f\u0073s\u006c\u0065\u0073\u0073\u0020\u0047\u0065\u006e\u0065ri\u0063\u0020\u0052e\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020R\u0065\u0067i\u006f\u006e";case TPageInformation :return "\u0050\u0061g\u0065\u0020\u0049n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e";case TEndOfPage :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0050\u0061\u0067\u0065";case TEndOfStrip :return "\u0045\u006e\u0064 \u004f\u0066\u0020\u0053\u0074\u0072\u0069\u0070";case TEndOfFile :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0046\u0069\u006c\u0065";case TProfiles :return "\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0073";case TTables :return "\u0054\u0061\u0062\u006c\u0065\u0073";case TExtension :return "\u0045x\u0074\u0065\u006e\u0073\u0069\u006fn";case TBitmap :return "\u0042\u0069\u0074\u006d\u0061\u0070";};return "I\u006ev\u0061\u006c\u0069\u0064\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0020Ki\u006e\u0064";};func (_bbc *EndOfStripe )parseHeader (_bg *Header ,_bbe _fg .StreamReader )error {_dd ,_bae :=_bbc ._eb .ReadBits (32);if _bae !=nil {return _bae ;};_bbc ._cba =int (_dd &_c .MaxInt32 );return nil ;};func (_acdc *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_cabae ,_efc :=_acdc ._dgbe .ReadBit ();if _efc !=nil {return _efc ;};if _cabae ==1{_acdc ._faca =true ;};return nil ;};func (_ccge *TextRegion )decodeRdy ()(int64 ,error ){const _gfdf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";if _ccge .IsHuffmanEncoded {if _ccge .SbHuffRDY ==3{if _ccge ._ccdcb ==nil {var (_acgcg int ;_cbacf error ;);if _ccge .SbHuffFS ==3{_acgcg ++;};if _ccge .SbHuffDS ==3{_acgcg ++;};if _ccge .SbHuffDT ==3{_acgcg ++;};if _ccge .SbHuffRDWidth ==3{_acgcg ++;};if _ccge .SbHuffRDHeight ==3{_acgcg ++;};if _ccge .SbHuffRDX ==3{_acgcg ++;};_ccge ._ccdcb ,_cbacf =_ccge .getUserTable (_acgcg );if _cbacf !=nil {return 0,_bb .Wrap (_cbacf ,_gfdf ,"");};};return _ccge ._ccdcb .Decode (_ccge ._efad );};_baad ,_cgeg :=_cf .GetStandardTable (14+int (_ccge .SbHuffRDY ));if _cgeg !=nil {return 0,_cgeg ;};return _baad .Decode (_ccge ._efad );};_eece ,_afbc :=_ccge ._dfcb .DecodeInt (_ccge ._fgcf );if _afbc !=nil {return 0,_bb .Wrap (_afbc ,_gfdf ,"");};return int64 (_eece ),nil ;};func (_fbfc *RegionSegment )String ()string {_fcac :=&_bd .Builder {};_fcac .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");_fcac .WriteString (_a .Sprintf ("\t\u0009\u002d\u0020\u0042\u0069\u0074m\u0061\u0070\u0020\u0028\u0077\u0069d\u0074\u0068\u002c\u0020\u0068\u0065\u0069g\u0068\u0074\u0029\u0020\u005b\u0025\u0064\u0078\u0025\u0064]\u000a",_fbfc .BitmapWidth ,_fbfc .BitmapHeight ));_fcac .WriteString (_a .Sprintf ("\u0009\u0009\u002d\u0020L\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0028\u0078,\u0079)\u003a\u0020\u005b\u0025\u0064\u002c\u0025d\u005d\u000a",_fbfc .XLocation ,_fbfc .YLocation ));_fcac .WriteString (_a .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_fbfc .CombinaionOperator ));return _fcac .String ();};func (_dgca *Header )parse (_gbfg Documenter ,_bfed _fg .StreamReader ,_efg int64 ,_aaga OrganizationType )(_egdd error ){const _abgg ="\u0070\u0061\u0072s\u0065";_g .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u005b\u0050A\u0052\u0053\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _egdd !=nil {_g .Log .Trace ("\u005b\u0053\u0045GM\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045R\u005d[\u0050A\u0052S\u0045\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_egdd );}else {_g .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052]\u005bP\u0041\u0052\u0053\u0045\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");};}();_ ,_egdd =_bfed .Seek (_efg ,_d .SeekStart );if _egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _egdd =_dgca .readSegmentNumber (_bfed );_egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};if _egdd =_dgca .readHeaderFlags ();_egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};var _cbdd uint64 ;_cbdd ,_egdd =_dgca .readNumberOfReferredToSegments (_bfed );if _egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};_dgca .RTSNumbers ,_egdd =_dgca .readReferredToSegmentNumbers (_bfed ,int (_cbdd ));if _egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};_egdd =_dgca .readSegmentPageAssociation (_gbfg ,_bfed ,_cbdd ,_dgca .RTSNumbers ...);if _egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};if _dgca .Type !=TEndOfFile {if _egdd =_dgca .readSegmentDataLength (_bfed );_egdd !=nil {return _bb .Wrap (_egdd ,_abgg ,"");};};_dgca .readDataStartOffset (_bfed ,_aaga );_dgca .readHeaderLength (_bfed ,_efg );_g .Log .Trace ("\u0025\u0073",_dgca );return nil ;};func (_geea *GenericRegion )decodeTemplate0a (_bgfc ,_dgf ,_ecb int ,_gf ,_ebeec int )(_bcfe error ){const _gba ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0061";var (_egf ,_abbg int ;_beef ,_beg int ;_ddf byte ;_bde int ;);if _bgfc >=1{_ddf ,_bcfe =_geea .Bitmap .GetByte (_ebeec );if _bcfe !=nil {return _bb .Wrap (_bcfe ,_gba ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_beef =int (_ddf );};if _bgfc >=2{_ddf ,_bcfe =_geea .Bitmap .GetByte (_ebeec -_geea .Bitmap .RowStride );if _bcfe !=nil {return _bb .Wrap (_bcfe ,_gba ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_beg =int (_ddf )<<6;};_egf =(_beef &0xf0)|(_beg &0x3800);for _bfbd :=0;_bfbd < _ecb ;_bfbd =_bde {var (_gacb byte ;_badg int ;);_bde =_bfbd +8;if _agd :=_dgf -_bfbd ;_agd > 8{_badg =8;}else {_badg =_agd ;};if _bgfc > 0{_beef <<=8;if _bde < _dgf {_ddf ,_bcfe =_geea .Bitmap .GetByte (_ebeec +1);if _bcfe !=nil {return _bb .Wrap (_bcfe ,_gba ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_beef |=int (_ddf );};};if _bgfc > 1{_bgc :=_ebeec -_geea .Bitmap .RowStride +1;_beg <<=8;if _bde < _dgf {_ddf ,_bcfe =_geea .Bitmap .GetByte (_bgc );if _bcfe !=nil {return _bb .Wrap (_bcfe ,_gba ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_beg |=int (_ddf )<<6;}else {_beg |=0;};};for _ebdf :=0;_ebdf < _badg ;_ebdf ++{_feb :=uint (7-_ebdf );if _geea ._bcfd {_abbg =_geea .overrideAtTemplate0a (_egf ,_bfbd +_ebdf ,_bgfc ,int (_gacb ),_ebdf ,int (_feb ));_geea ._ggc .SetIndex (int32 (_abbg ));}else {_geea ._ggc .SetIndex (int32 (_egf ));};var _eabc int ;_eabc ,_bcfe =_geea ._gag .DecodeBit (_geea ._ggc );if _bcfe !=nil {return _bb .Wrap (_bcfe ,_gba ,"");};_gacb |=byte (_eabc )<<uint (_feb );_egf =((_egf &0x7bf7)<<1)|_eabc |((_beef >>_feb )&0x10)|((_beg >>_feb )&0x800);};if _gga :=_geea .Bitmap .SetByte (_gf ,_gacb );_gga !=nil {return _bb .Wrap (_gga ,_gba ,"");};_gf ++;_ebeec ++;};return nil ;};func (_dcdgb *TextRegion )GetRegionBitmap ()(*_cg .Bitmap ,error ){if _dcdgb .RegionBitmap !=nil {return _dcdgb .RegionBitmap ,nil ;};if !_dcdgb .IsHuffmanEncoded {if _afff :=_dcdgb .setCodingStatistics ();_afff !=nil {return nil ,_afff ;};};if _cebag :=_dcdgb .createRegionBitmap ();_cebag !=nil {return nil ,_cebag ;};if _bfab :=_dcdgb .decodeSymbolInstances ();_bfab !=nil {return nil ,_bfab ;};return _dcdgb .RegionBitmap ,nil ;};func (_efa *GenericRegion )setParametersWithAt (_ceea bool ,_gaae byte ,_cbd ,_cdbc bool ,_daeb ,_gbg []int8 ,_afb ,_cgab uint32 ,_gbfc *_ff .DecoderStats ,_eaba *_ff .Decoder ){_efa .IsMMREncoded =_ceea ;_efa .GBTemplate =_gaae ;_efa .IsTPGDon =_cbd ;_efa .GBAtX =_daeb ;_efa .GBAtY =_gbg ;_efa .RegionSegment .BitmapHeight =_cgab ;_efa .RegionSegment .BitmapWidth =_afb ;_efa ._cdbf =nil ;_efa .Bitmap =nil ;if _gbfc !=nil {_efa ._ggc =_gbfc ;};if _eaba !=nil {_efa ._gag =_eaba ;};_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049O\u004e\u005d\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073\u0020\u0053\u0044\u0041t\u003a\u0020\u0025\u0073",_efa );};type RegionSegment struct{_dfed _fg .StreamReader ;BitmapWidth uint32 ;BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _cg .CombinationOperator ;};func (_dfe *GenericRegion )decodeLine (_fdfe ,_bdf ,_ffbe int )error {const _bcffa ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_aage :=_dfe .Bitmap .GetByteIndex (0,_fdfe );_dbc :=_aage -_dfe .Bitmap .RowStride ;switch _dfe .GBTemplate {case 0:if !_dfe .UseExtTemplates {return _dfe .decodeTemplate0a (_fdfe ,_bdf ,_ffbe ,_aage ,_dbc );};return _dfe .decodeTemplate0b (_fdfe ,_bdf ,_ffbe ,_aage ,_dbc );case 1:return _dfe .decodeTemplate1 (_fdfe ,_bdf ,_ffbe ,_aage ,_dbc );case 2:return _dfe .decodeTemplate2 (_fdfe ,_bdf ,_ffbe ,_aage ,_dbc );case 3:return _dfe .decodeTemplate3 (_fdfe ,_bdf ,_ffbe ,_aage ,_dbc );};return _bb .Errorf (_bcffa ,"\u0069\u006e\u0076a\u006c\u0069\u0064\u0020G\u0042\u0054\u0065\u006d\u0070\u006c\u0061t\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u003a\u0020\u0025\u0064",_dfe .GBTemplate );};func (_geed *Header )readReferredToSegmentNumbers (_ebgc _fg .StreamReader ,_gdff int )([]int ,error ){const _aaeef ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073";_gbfdc :=make ([]int ,_gdff );if _gdff > 0{_geed .RTSegments =make ([]*Header ,_gdff );var (_fegf uint64 ;_bge error ;);for _dgdc :=0;_dgdc < _gdff ;_dgdc ++{_fegf ,_bge =_ebgc .ReadBits (byte (_geed .referenceSize ())<<3);if _bge !=nil {return nil ,_bb .Wrapf (_bge ,_aaeef ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_dgdc );};_gbfdc [_dgdc ]=int (_fegf &_c .MaxInt32 );};};return _gbfdc ,nil ;};func (_bcff *GenericRegion )parseHeader ()(_aadf error ){_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052I\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0050\u0061\u0072s\u0069\u006e\u0067\u0048\u0065\u0061\u0064e\u0072\u002e\u002e\u002e");defer func (){if _aadf !=nil {_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e]\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065r\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0077\u0069th\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u0025\u0076",_aadf );}else {_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049C\u002d\u0052\u0045G\u0049\u004f\u004e]\u0020\u0050a\u0072\u0073\u0069\u006e\u0067\u0048e\u0061de\u0072\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0053\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079\u002e\u002e\u002e");};}();var (_gbff int ;_fcdb uint64 ;);if _aadf =_bcff .RegionSegment .parseHeader ();_aadf !=nil {return _aadf ;};if _ ,_aadf =_bcff ._cgde .ReadBits (3);_aadf !=nil {return _aadf ;};_gbff ,_aadf =_bcff ._cgde .ReadBit ();if _aadf !=nil {return _aadf ;};if _gbff ==1{_bcff .UseExtTemplates =true ;};_gbff ,_aadf =_bcff ._cgde .ReadBit ();if _aadf !=nil {return _aadf ;};if _gbff ==1{_bcff .IsTPGDon =true ;};_fcdb ,_aadf =_bcff ._cgde .ReadBits (2);if _aadf !=nil {return _aadf ;};_bcff .GBTemplate =byte (_fcdb &0xf);_gbff ,_aadf =_bcff ._cgde .ReadBit ();if _aadf !=nil {return _aadf ;};if _gbff ==1{_bcff .IsMMREncoded =true ;};if !_bcff .IsMMREncoded {_gcba :=1;if _bcff .GBTemplate ==0{_gcba =4;if _bcff .UseExtTemplates {_gcba =12;};};if _aadf =_bcff .readGBAtPixels (_gcba );_aadf !=nil {return _aadf ;};};if _aadf =_bcff .computeSegmentDataStructure ();_aadf !=nil {return _aadf ;};_g .Log .Trace ("\u0025\u0073",_bcff );return nil ;};func (_gda *HalftoneRegion )computeY (_fddfg ,_egdc int )int {return _gda .shiftAndFill (int (_gda .HGridY )+_fddfg *int (_gda .HRegionX )-_egdc *int (_gda .HRegionY ));};func (_fabe *SymbolDictionary )readAtPixels (_fcad int )error {_fabe .SdATX =make ([]int8 ,_fcad );_fabe .SdATY =make ([]int8 ,_fcad );var (_fccg byte ;_befg error ;);for _gdad :=0;_gdad < _fcad ;_gdad ++{_fccg ,_befg =_fabe ._cgcf .ReadByte ();if _befg !=nil {return _befg ;};_fabe .SdATX [_gdad ]=int8 (_fccg );_fccg ,_befg =_fabe ._cgcf .ReadByte ();if _befg !=nil {return _befg ;};_fabe .SdATY [_gdad ]=int8 (_fccg );};return nil ;};func (_eefd *TextRegion )decodeSymbolInstances ()error {_dacd ,_ceecb :=_eefd .decodeStripT ();if _ceecb !=nil {return _ceecb ;};var (_dffc int64 ;_dbabf uint32 ;);for _dbabf < _eefd .NumberOfSymbolInstances {_gfeb ,_gdeeg :=_eefd .decodeDT ();if _gdeeg !=nil {return _gdeeg ;};_dacd +=_gfeb ;var _ebdc int64 ;_bdcg :=true ;_eefd ._egde =0;for {if _bdcg {_ebdc ,_gdeeg =_eefd .decodeDfs ();if _gdeeg !=nil {return _gdeeg ;};_dffc +=_ebdc ;_eefd ._egde =_dffc ;_bdcg =false ;}else {_afada ,_afdd :=_eefd .decodeIds ();if _afdd !=nil {return _afdd ;};if _afada ==_c .MaxInt32 ||_dbabf >=_eefd .NumberOfSymbolInstances {break ;};_eefd ._egde +=_afada +int64 (_eefd .SbdsOffset );};_adca ,_aadg :=_eefd .decodeCurrentT ();if _aadg !=nil {return _aadg ;};_ddgf :=_dacd +_adca ;_dbae ,_aadg :=_eefd .decodeID ();if _aadg !=nil {return _aadg ;};_afac ,_aadg :=_eefd .decodeRI ();if _aadg !=nil {return _aadg ;};_eagab ,_aadg :=_eefd .decodeIb (_afac ,_dbae );if _aadg !=nil {return _aadg ;};if _aadg =_eefd .blit (_eagab ,_ddgf );_aadg !=nil {return _aadg ;};_dbabf ++;};};return nil ;};type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_efee *GenericRegion )setOverrideFlag (_ffae int ){_efee .GBAtOverride [_ffae ]=true ;_efee ._bcfd =true ;};func (_aebed *TextRegion )getSymbols ()error {if _aebed .Header .RTSegments !=nil {return _aebed .initSymbols ();};return nil ;};func (_cbac *PageInformationSegment )Encode (w _fg .BinaryWriter )(_gbcf int ,_ceag error ){const _faaa ="\u0050\u0061g\u0065\u0049\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u002e\u0045\u006eco\u0064\u0065";_cfc :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_cfc ,uint32 (_cbac .PageBMWidth ));_gbcf ,_ceag =w .Write (_cfc );if _ceag !=nil {return _gbcf ,_bb .Wrap (_ceag ,_faaa ,"\u0077\u0069\u0064t\u0068");};_ec .BigEndian .PutUint32 (_cfc ,uint32 (_cbac .PageBMHeight ));var _dbd int ;_dbd ,_ceag =w .Write (_cfc );if _ceag !=nil {return _dbd +_gbcf ,_bb .Wrap (_ceag ,_faaa ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_gbcf +=_dbd ;_ec .BigEndian .PutUint32 (_cfc ,uint32 (_cbac .ResolutionX ));_dbd ,_ceag =w .Write (_cfc );if _ceag !=nil {return _dbd +_gbcf ,_bb .Wrap (_ceag ,_faaa ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_gbcf +=_dbd ;_ec .BigEndian .PutUint32 (_cfc ,uint32 (_cbac .ResolutionY ));if _dbd ,_ceag =w .Write (_cfc );_ceag !=nil {return _dbd +_gbcf ,_bb .Wrap (_ceag ,_faaa ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_gbcf +=_dbd ;if _ceag =_cbac .encodeFlags (w );_ceag !=nil {return _gbcf ,_bb .Wrap (_ceag ,_faaa ,"");};_gbcf ++;if _dbd ,_ceag =_cbac .encodeStripingInformation (w );_ceag !=nil {return _gbcf ,_bb .Wrap (_ceag ,_faaa ,"");};_gbcf +=_dbd ;return _gbcf ,nil ;};type PageInformationSegment struct{_dgbe _fg .StreamReader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_faca bool ;_dgcae _cg .CombinationOperator ;_ddac bool ;_adab uint8 ;_fcbdg bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_fae *GenericRegion )InitEncode (bm *_cg .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _abba ="\u0047e\u006e\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069\u006f\u006e.\u0049\u006e\u0069\u0074\u0045\u006e\u0063\u006f\u0064\u0065";if bm ==nil {return _bb .Error (_abba ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _bb .Error (_abba ,"\u0078\u0020\u0061\u006e\u0064\u0020\u0079\u0020\u006c\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074h\u0061\u006e\u0020\u0030");};_fae .Bitmap =bm ;_fae .GBTemplate =byte (template );switch _fae .GBTemplate {case 0:_fae .GBAtX =[]int8 {3,-3,2,-2};_fae .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_fae .GBAtX =[]int8 {3};_fae .GBAtY =[]int8 {-1};case 2,3:_fae .GBAtX =[]int8 {2};_fae .GBAtY =[]int8 {-1};default:return _bb .Errorf (_abba ,"\u0070\u0072o\u0076\u0069\u0064\u0065\u0064 \u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u007b\u0030\u002c\u0031\u002c\u0032\u002c\u0033\u007d",template );};_fae .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_fae .IsTPGDon =duplicateLineRemoval ;return nil ;};func (_gcdc *SymbolDictionary )decodeDirectlyThroughGenericRegion (_eacd ,_babb uint32 )error {if _gcdc ._eadg ==nil {_gcdc ._eadg =NewGenericRegion (_gcdc ._cgcf );};_gcdc ._eadg .setParametersWithAt (false ,byte (_gcdc .SdTemplate ),false ,false ,_gcdc .SdATX ,_gcdc .SdATY ,_eacd ,_babb ,_gcdc ._dgbg ,_gcdc ._abfd );return _gcdc .addSymbol (_gcdc ._eadg );};func (_gbfa *template1 )form (_gbd ,_bec ,_daa ,_bdad ,_adag int16 )int16 {return ((_gbd &0x02)<<8)|(_bec <<6)|((_daa &0x03)<<4)|(_bdad <<1)|_adag ;};func (_cbbag *PageInformationSegment )encodeStripingInformation (_caaa _fg .BinaryWriter )(_dbebf int ,_ebfb error ){const _dbbb ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn";if !_cbbag .IsStripe {if _dbebf ,_ebfb =_caaa .Write ([]byte {0x00,0x00});_ebfb !=nil {return 0,_bb .Wrap (_ebfb ,_dbbb ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _dbebf ,nil ;};_fgge :=make ([]byte ,2);_ec .BigEndian .PutUint16 (_fgge ,_cbbag .MaxStripeSize |1<<15);if _dbebf ,_ebfb =_caaa .Write (_fgge );_ebfb !=nil {return 0,_bb .Wrapf (_ebfb ,_dbbb ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_cbbag .MaxStripeSize );};return _dbebf ,nil ;};func (_afga *TextRegion )decodeStripT ()(_ggaf int64 ,_aaaee error ){if _afga .IsHuffmanEncoded {if _afga .SbHuffDT ==3{if _afga ._dbebb ==nil {var _ccdca int ;if _afga .SbHuffFS ==3{_ccdca ++;};if _afga .SbHuffDS ==3{_ccdca ++;};_afga ._dbebb ,_aaaee =_afga .getUserTable (_ccdca );if _aaaee !=nil {return 0,_aaaee ;};};_ggaf ,_aaaee =_afga ._dbebb .Decode (_afga ._efad );if _aaaee !=nil {return 0,_aaaee ;};}else {var _gbag _cf .Tabler ;_gbag ,_aaaee =_cf .GetStandardTable (11+int (_afga .SbHuffDT ));if _aaaee !=nil {return 0,_aaaee ;};_ggaf ,_aaaee =_gbag .Decode (_afga ._efad );if _aaaee !=nil {return 0,_aaaee ;};};}else {var _gedfd int32 ;_gedfd ,_aaaee =_afga ._dfcb .DecodeInt (_afga ._aafc );if _aaaee !=nil {return 0,_aaaee ;};_ggaf =int64 (_gedfd );};_ggaf *=int64 (-_afga .SbStrips );return _ggaf ,nil ;};func (_gfda *SymbolDictionary )Init (h *Header ,r _fg .StreamReader )error {_gfda .Header =h ;_gfda ._cgcf =r ;return _gfda .parseHeader ();};func (_agfb *PatternDictionary )readGrayMax ()error {_ffaf ,_ddaa :=_agfb ._ddbe .ReadBits (32);if _ddaa !=nil {return _ddaa ;};_agfb .GrayMax =uint32 (_ffaf &_c .MaxUint32 );return nil ;};func NewRegionSegment (r _fg .StreamReader )*RegionSegment {return &RegionSegment {_dfed :r }};func (_bee *GenericRegion )GetRegionInfo ()*RegionSegment {return _bee .RegionSegment };func (_cfac *SymbolDictionary )decodeAggregate (_abab ,_accf uint32 )error {var (_bgeg int64 ;_ffdce error ;);if _cfac .IsHuffmanEncoded {_bgeg ,_ffdce =_cfac .huffDecodeRefAggNInst ();if _ffdce !=nil {return _ffdce ;};}else {_ccag ,_cfd :=_cfac ._abfd .DecodeInt (_cfac ._ccdg );if _cfd !=nil {return _cfd ;};_bgeg =int64 (_ccag );};if _bgeg > 1{return _cfac .decodeThroughTextRegion (_abab ,_accf ,uint32 (_bgeg ));}else if _bgeg ==1{return _cfac .decodeRefinedSymbol (_abab ,_accf );};return nil ;};type EndOfStripe struct{_eb _fg .StreamReader ;_cba int ;};func (_abef *GenericRegion )overrideAtTemplate0a (_gcbfb ,_agbb ,_dffb ,_dbfb ,_bafda ,_gec int )int {if _abef .GBAtOverride [0]{_gcbfb &=0xFFEF;if _abef .GBAtY [0]==0&&_abef .GBAtX [0]>=-int8 (_bafda ){_gcbfb |=(_dbfb >>uint (int8 (_gec )-_abef .GBAtX [0]&0x1))<<4;}else {_gcbfb |=int (_abef .getPixel (_agbb +int (_abef .GBAtX [0]),_dffb +int (_abef .GBAtY [0])))<<4;};};if _abef .GBAtOverride [1]{_gcbfb &=0xFBFF;if _abef .GBAtY [1]==0&&_abef .GBAtX [1]>=-int8 (_bafda ){_gcbfb |=(_dbfb >>uint (int8 (_gec )-_abef .GBAtX [1]&0x1))<<10;}else {_gcbfb |=int (_abef .getPixel (_agbb +int (_abef .GBAtX [1]),_dffb +int (_abef .GBAtY [1])))<<10;};};if _abef .GBAtOverride [2]{_gcbfb &=0xF7FF;if _abef .GBAtY [2]==0&&_abef .GBAtX [2]>=-int8 (_bafda ){_gcbfb |=(_dbfb >>uint (int8 (_gec )-_abef .GBAtX [2]&0x1))<<11;}else {_gcbfb |=int (_abef .getPixel (_agbb +int (_abef .GBAtX [2]),_dffb +int (_abef .GBAtY [2])))<<11;};};if _abef .GBAtOverride [3]{_gcbfb &=0x7FFF;if _abef .GBAtY [3]==0&&_abef .GBAtX [3]>=-int8 (_bafda ){_gcbfb |=(_dbfb >>uint (int8 (_gec )-_abef .GBAtX [3]&0x1))<<15;}else {_gcbfb |=int (_abef .getPixel (_agbb +int (_abef .GBAtX [3]),_dffb +int (_abef .GBAtY [3])))<<15;};};return _gcbfb ;};func (_cacf *Header )String ()string {_cag :=&_bd .Builder {};_cag .WriteString ("\u000a[\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045A\u0044\u0045\u0052\u005d\u000a");_cag .WriteString (_a .Sprintf ("\t\u002d\u0020\u0053\u0065gm\u0065n\u0074\u004e\u0075\u006d\u0062e\u0072\u003a\u0020\u0025\u0076\u000a",_cacf .SegmentNumber ));_cag .WriteString (_a .Sprintf ("\u0009\u002d\u0020T\u0079\u0070\u0065\u003a\u0020\u0025\u0076\u000a",_cacf .Type ));_cag .WriteString (_a .Sprintf ("\u0009-\u0020R\u0065\u0074\u0061\u0069\u006eF\u006c\u0061g\u003a\u0020\u0025\u0076\u000a",_cacf .RetainFlag ));_cag .WriteString (_a .Sprintf ("\u0009\u002d\u0020Pa\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_cacf .PageAssociation ));_cag .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0050\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074i\u006fn\u0046\u0069\u0065\u006c\u0064\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_cacf .PageAssociationFieldSize ));_cag .WriteString ("\u0009-\u0020R\u0054\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u0053\u003a\u000a");for _ ,_dgfd :=range _cacf .RTSNumbers {_cag .WriteString (_a .Sprintf ("\u0009\t\u002d\u0020\u0025\u0064\u000a",_dgfd ));};_cag .WriteString (_a .Sprintf ("\t\u002d \u0048\u0065\u0061\u0064\u0065\u0072\u004c\u0065n\u0067\u0074\u0068\u003a %\u0076\u000a",_cacf .HeaderLength ));_cag .WriteString (_a .Sprintf ("\u0009-\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061L\u0065n\u0067\u0074\u0068\u003a\u0020\u0025\u0076\n",_cacf .SegmentDataLength ));_cag .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074D\u0061\u0074\u0061\u0053\u0074\u0061\u0072t\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0076\u000a",_cacf .SegmentDataStartOffset ));return _cag .String ();};func (_fdfca *SymbolDictionary )InitEncode (symbols *_cg .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _ecdf ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065";_fdfca .SdATX =[]int8 {3,-3,2,-2};_fdfca .SdATY =[]int8 {-1,-1,-2,-2};_fdfca ._bbda =symbols ;_fdfca ._dfbe =make ([]int ,len (symbolList ));copy (_fdfca ._dfbe ,symbolList );if len (_fdfca ._dfbe )!=_fdfca ._bbda .Size (){return _bb .Error (_ecdf ,"s\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0061\u006e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u004ci\u0073\u0074\u0020\u006f\u0066\u0020\u0064\u0069\u0066\u0066er\u0065\u006e\u0074 \u0073i\u007a\u0065");};_fdfca .NumberOfNewSymbols =uint32 (symbols .Size ());_fdfca .NumberOfExportedSymbols =uint32 (symbols .Size ());_fdfca ._dcfg =symbolMap ;_fdfca ._decdf =unborderSymbols ;return nil ;};func (_dcaf *SymbolDictionary )Encode (w _fg .BinaryWriter )(_fffe int ,_bgd error ){const _faef ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";if _dcaf ==nil {return 0,_bb .Error (_faef ,"\u0073\u0079m\u0062\u006f\u006c\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066in\u0065\u0064");};if _fffe ,_bgd =_dcaf .encodeFlags (w );_bgd !=nil {return _fffe ,_bb .Wrap (_bgd ,_faef ,"");};_ggb ,_bgd :=_dcaf .encodeATFlags (w );if _bgd !=nil {return _fffe ,_bb .Wrap (_bgd ,_faef ,"");};_fffe +=_ggb ;if _ggb ,_bgd =_dcaf .encodeRefinementATFlags (w );_bgd !=nil {return _fffe ,_bb .Wrap (_bgd ,_faef ,"");};_fffe +=_ggb ;if _ggb ,_bgd =_dcaf .encodeNumSyms (w );_bgd !=nil {return _fffe ,_bb .Wrap (_bgd ,_faef ,"");};_fffe +=_ggb ;if _ggb ,_bgd =_dcaf .encodeSymbols (w );_bgd !=nil {return _fffe ,_bb .Wrap (_bgd ,_faef ,"");};_fffe +=_ggb ;return _fffe ,nil ;};func (_abeff *PatternDictionary )computeSegmentDataStructure ()error {_abeff .DataOffset =_abeff ._ddbe .StreamPosition ();_abeff .DataHeaderLength =_abeff .DataOffset -_abeff .DataHeaderOffset ;_abeff .DataLength =int64 (_abeff ._ddbe .Length ())-_abeff .DataHeaderLength ;return nil ;};func (_ged *RegionSegment )parseHeader ()error {const _bgea ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_g .Log .Trace ("\u005b\u0052\u0045\u0047I\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002dH\u0045A\u0044\u0045\u0052\u005d\u0020\u0042\u0065g\u0069\u006e");defer func (){_g .Log .Trace ("\u005b\u0052\u0045G\u0049\u004f\u004e\u005d[\u0050\u0041\u0052\u0053\u0045\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_cace ,_agdf :=_ged ._dfed .ReadBits (32);if _agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"\u0077\u0069\u0064t\u0068");};_ged .BitmapWidth =uint32 (_cace &_c .MaxUint32 );_cace ,_agdf =_ged ._dfed .ReadBits (32);if _agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_ged .BitmapHeight =uint32 (_cace &_c .MaxUint32 );_cace ,_agdf =_ged ._dfed .ReadBits (32);if _agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_ged .XLocation =uint32 (_cace &_c .MaxUint32 );_cace ,_agdf =_ged ._dfed .ReadBits (32);if _agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_ged .YLocation =uint32 (_cace &_c .MaxUint32 );if _ ,_agdf =_ged ._dfed .ReadBits (5);_agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d");};if _agdf =_ged .readCombinationOperator ();_agdf !=nil {return _bb .Wrap (_agdf ,_bgea ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};var (_dfab Segmenter ;_dcgd =map[Type ]func ()Segmenter {TSymbolDictionary :func ()Segmenter {return &SymbolDictionary {}},TIntermediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateLosslessTextRegion :func ()Segmenter {return &TextRegion {}},TPatternDictionary :func ()Segmenter {return &PatternDictionary {}},TIntermediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateLosslessHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TIntermediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateLosslessGenericRegion :func ()Segmenter {return &GenericRegion {}},TIntermediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateLosslessGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TPageInformation :func ()Segmenter {return &PageInformationSegment {}},TEndOfPage :func ()Segmenter {return _dfab },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _dfab },TProfiles :func ()Segmenter {return _dfab },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _dfab },TBitmap :func ()Segmenter {return _dfab }};);func (_aaeb *Header )writeReferredToSegments (_fffc _fg .BinaryWriter )(_deef int ,_cgffb error ){const _cda ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";var (_bccf uint16 ;_bfgc uint32 ;);_dacb :=_aaeb .referenceSize ();_aacb :=1;_fegd :=make ([]byte ,_dacb );for _ ,_ddcb :=range _aaeb .RTSNumbers {switch _dacb {case 4:_bfgc =uint32 (_ddcb );_ec .BigEndian .PutUint32 (_fegd ,_bfgc );_aacb ,_cgffb =_fffc .Write (_fegd );if _cgffb !=nil {return 0,_bb .Wrap (_cgffb ,_cda ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065");};case 2:_bccf =uint16 (_ddcb );_ec .BigEndian .PutUint16 (_fegd ,_bccf );_aacb ,_cgffb =_fffc .Write (_fegd );if _cgffb !=nil {return 0,_bb .Wrap (_cgffb ,_cda ,"\u0075\u0069\u006e\u0074\u0031\u0036");};default:if _cgffb =_fffc .WriteByte (byte (_ddcb ));_cgffb !=nil {return 0,_bb .Wrap (_cgffb ,_cda ,"\u0075\u0069\u006et\u0038");};};_deef +=_aacb ;};return _deef ,nil ;};func NewGenericRegion (r _fg .StreamReader )*GenericRegion {return &GenericRegion {RegionSegment :NewRegionSegment (r ),_cgde :r };};func (_fegfd *TextRegion )decodeID ()(int64 ,error ){if _fegfd .IsHuffmanEncoded {if _fegfd ._fbg ==nil {_efgc ,_cedb :=_fegfd ._efad .ReadBits (byte (_fegfd ._cebda ));return int64 (_efgc ),_cedb ;};return _fegfd ._fbg .Decode (_fegfd ._efad );};return _fegfd ._dfcb .DecodeIAID (uint64 (_fegfd ._cebda ),_fegfd ._cacg );};func (_dcad *PageInformationSegment )readIsStriped ()error {_ccdf ,_adff :=_dcad ._dgbe .ReadBit ();if _adff !=nil {return _adff ;};if _ccdf ==1{_dcad .IsStripe =true ;};return nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_cg .Bitmap ,error );};func (_affg *PageInformationSegment )Init (h *Header ,r _fg .StreamReader )(_fgba error ){_affg ._dgbe =r ;if _fgba =_affg .parseHeader ();_fgba !=nil {return _bb .Wrap (_fgba ,"P\u0061\u0067\u0065\u0049\u006e\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065g\u006d\u0065\u006et\u002eI\u006e\u0069\u0074","");};return nil ;};func (_ddgg *Header )CleanSegmentData (){if _ddgg .SegmentData !=nil {_ddgg .SegmentData =nil ;};};func (_caf *GenericRegion )updateOverrideFlags ()error {const _dac ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _caf .GBAtX ==nil ||_caf .GBAtY ==nil {return nil ;};if len (_caf .GBAtX )!=len (_caf .GBAtY ){return _bb .Errorf (_dac ,"i\u006eco\u0073i\u0073t\u0065\u006e\u0074\u0020\u0041T\u0020\u0070\u0069x\u0065\u006c\u002e\u0020\u0041m\u006f\u0075\u006et\u0020\u006f\u0066\u0020\u0027\u0078\u0027\u0020\u0070\u0069\u0078e\u006c\u0073\u003a %d\u002c\u0020\u0041\u006d\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0027\u0079\u0027\u0020\u0070\u0069\u0078e\u006cs\u003a\u0020\u0025\u0064",len (_caf .GBAtX ),len (_caf .GBAtY ));};_caf .GBAtOverride =make ([]bool ,len (_caf .GBAtX ));switch _caf .GBTemplate {case 0:if !_caf .UseExtTemplates {if _caf .GBAtX [0]!=3||_caf .GBAtY [0]!=-1{_caf .setOverrideFlag (0);};if _caf .GBAtX [1]!=-3||_caf .GBAtY [1]!=-1{_caf .setOverrideFlag (1);};if _caf .GBAtX [2]!=2||_caf .GBAtY [2]!=-2{_caf .setOverrideFlag (2);};if _caf .GBAtX [3]!=-2||_caf .GBAtY [3]!=-2{_caf .setOverrideFlag (3);};}else {if _caf .GBAtX [0]!=-2||_caf .GBAtY [0]!=0{_caf .setOverrideFlag (0);};if _caf .GBAtX [1]!=0||_caf .GBAtY [1]!=-2{_caf .setOverrideFlag (1);};if _caf .GBAtX [2]!=-2||_caf .GBAtY [2]!=-1{_caf .setOverrideFlag (2);};if _caf .GBAtX [3]!=-1||_caf .GBAtY [3]!=-2{_caf .setOverrideFlag (3);};if _caf .GBAtX [4]!=1||_caf .GBAtY [4]!=-2{_caf .setOverrideFlag (4);};if _caf .GBAtX [5]!=2||_caf .GBAtY [5]!=-1{_caf .setOverrideFlag (5);};if _caf .GBAtX [6]!=-3||_caf .GBAtY [6]!=0{_caf .setOverrideFlag (6);};if _caf .GBAtX [7]!=-4||_caf .GBAtY [7]!=0{_caf .setOverrideFlag (7);};if _caf .GBAtX [8]!=2||_caf .GBAtY [8]!=-2{_caf .setOverrideFlag (8);};if _caf .GBAtX [9]!=3||_caf .GBAtY [9]!=-1{_caf .setOverrideFlag (9);};if _caf .GBAtX [10]!=-2||_caf .GBAtY [10]!=-2{_caf .setOverrideFlag (10);};if _caf .GBAtX [11]!=-3||_caf .GBAtY [11]!=-1{_caf .setOverrideFlag (11);};};case 1:if _caf .GBAtX [0]!=3||_caf .GBAtY [0]!=-1{_caf .setOverrideFlag (0);};case 2:if _caf .GBAtX [0]!=2||_caf .GBAtY [0]!=-1{_caf .setOverrideFlag (0);};case 3:if _caf .GBAtX [0]!=2||_caf .GBAtY [0]!=-1{_caf .setOverrideFlag (0);};};return nil ;};func (_bafe *GenericRegion )String ()string {_dgb :=&_bd .Builder {};_dgb .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_dgb .WriteString (_bafe .RegionSegment .String ()+"\u000a");_dgb .WriteString (_a .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_bafe .UseExtTemplates ));_dgb .WriteString (_a .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_bafe .IsTPGDon ));_dgb .WriteString (_a .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_bafe .GBTemplate ));_dgb .WriteString (_a .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_bafe .IsMMREncoded ));_dgb .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_bafe .GBAtX ));_dgb .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_bafe .GBAtY ));_dgb .WriteString (_a .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_bafe .GBAtOverride ));return _dgb .String ();};func (_fddf *GenericRefinementRegion )updateOverride ()error {if _fddf .GrAtX ==nil ||_fddf .GrAtY ==nil {return _ece .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};if len (_fddf .GrAtX )!=len (_fddf .GrAtY ){return _ece .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_fddf ._fd =make ([]bool ,len (_fddf .GrAtX ));switch _fddf .TemplateID {case 0:if _fddf .GrAtX [0]!=-1&&_fddf .GrAtY [0]!=-1{_fddf ._fd [0]=true ;_fddf ._dc =true ;};if _fddf .GrAtX [1]!=-1&&_fddf .GrAtY [1]!=-1{_fddf ._fd [1]=true ;_fddf ._dc =true ;};case 1:_fddf ._dc =false ;};return nil ;};func (_gdb *template0 )setIndex (_gbfd *_ff .DecoderStats ){_gbfd .SetIndex (0x100)};func (_bcac *PatternDictionary )parseHeader ()error {_g .Log .Trace ("\u005b\u0050\u0041\u0054\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054I\u004f\u004e\u0041\u0052\u0059\u005d[\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d\u0020b\u0065\u0067\u0069\u006e");defer func (){_g .Log .Trace ("\u005b\u0050\u0041T\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u005b\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_ ,_ccca :=_bcac ._ddbe .ReadBits (5);if _ccca !=nil {return _ccca ;};if _ccca =_bcac .readTemplate ();_ccca !=nil {return _ccca ;};if _ccca =_bcac .readIsMMREncoded ();_ccca !=nil {return _ccca ;};if _ccca =_bcac .readPatternWidthAndHeight ();_ccca !=nil {return _ccca ;};if _ccca =_bcac .readGrayMax ();_ccca !=nil {return _ccca ;};if _ccca =_bcac .computeSegmentDataStructure ();_ccca !=nil {return _ccca ;};return _bcac .checkInput ();};func (_dcf *RegionSegment )Size ()int {return 17};func (_eeadf *SymbolDictionary )checkInput ()error {if _eeadf .SdHuffDecodeHeightSelection ==2{_g .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0048\u0065\u0069g\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_eeadf .SdHuffDecodeHeightSelection );};if _eeadf .SdHuffDecodeWidthSelection ==2{_g .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0057\u0069\u0064t\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_eeadf .SdHuffDecodeWidthSelection );};if _eeadf .IsHuffmanEncoded {if _eeadf .SdTemplate !=0{_g .Log .Debug ("\u0053\u0044T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e \u0030\u0029",_eeadf .SdTemplate );};if !_eeadf .UseRefinementAggregation {if !_eeadf .UseRefinementAggregation {if _eeadf ._abgc {_g .Log .Debug ("\u0049\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074ex\u0074\u0052\u0065\u0074\u0061\u0069n\u0065\u0064\u0020\u003d\u0020\u0074\u0072\u0075\u0065\u0020\u0028\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0066\u0061\u006cs\u0065\u0029");_eeadf ._abgc =false ;};if _eeadf ._eacb {_g .Log .Debug ("\u0069s\u0043\u006fd\u0069\u006e\u0067\u0043o\u006e\u0074\u0065x\u0074\u0055\u0073\u0065\u0064\u0020\u003d\u0020\u0074ru\u0065\u0020\u0028s\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020f\u0061\u006cs\u0065\u0029");_eeadf ._eacb =false ;};};};}else {if _eeadf .SdHuffBMSizeSelection !=0{_g .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066B\u004d\u0053\u0069\u007a\u0065\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_eeadf .SdHuffBMSizeSelection =0;};if _eeadf .SdHuffDecodeWidthSelection !=0{_g .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068\u0053\u0065\u006c\u0065\u0063\u0074\u0069o\u006e\u0020\u0073\u0068\u006fu\u006c\u0064 \u0062\u0065\u0020\u0030");_eeadf .SdHuffDecodeWidthSelection =0;};if _eeadf .SdHuffDecodeHeightSelection !=0{_g .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0048e\u0069\u0067\u0068\u0074\u0053\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_eeadf .SdHuffDecodeHeightSelection =0;};};if !_eeadf .UseRefinementAggregation {if _eeadf .SdrTemplate !=0{_g .Log .Debug ("\u0053\u0044\u0052\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u003d\u0020\u0025\u0064\u0020\u0028s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_eeadf .SdrTemplate );_eeadf .SdrTemplate =0;};};if !_eeadf .IsHuffmanEncoded ||!_eeadf .UseRefinementAggregation {if _eeadf .SdHuffAggInstanceSelection {_g .Log .Debug ("\u0053d\u0048\u0075f\u0066\u0041\u0067g\u0049\u006e\u0073\u0074\u0061\u006e\u0063e\u0053\u0065\u006c\u0065\u0063\u0074i\u006f\u006e\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_eeadf .SdHuffAggInstanceSelection );};};return nil ;};func (_bfa *GenericRegion )decodeTemplate1 (_age ,_efd ,_gfd int ,_geb ,_bbf int )(_gaf error ){const _bfg ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";var (_edbc ,_dga int ;_ace ,_acdd int ;_ecfb byte ;_fcgd ,_bfga int ;);if _age >=1{_ecfb ,_gaf =_bfa .Bitmap .GetByte (_bbf );if _gaf !=nil {return _bb .Wrap (_gaf ,_bfg ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ace =int (_ecfb );};if _age >=2{_ecfb ,_gaf =_bfa .Bitmap .GetByte (_bbf -_bfa .Bitmap .RowStride );if _gaf !=nil {return _bb .Wrap (_gaf ,_bfg ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_acdd =int (_ecfb )<<5;};_edbc =((_ace >>1)&0x1f8)|((_acdd >>1)&0x1e00);for _dff :=0;_dff < _gfd ;_dff =_fcgd {var (_fdfc byte ;_acc int ;);_fcgd =_dff +8;if _geaf :=_efd -_dff ;_geaf > 8{_acc =8;}else {_acc =_geaf ;};if _age > 0{_ace <<=8;if _fcgd < _efd {_ecfb ,_gaf =_bfa .Bitmap .GetByte (_bbf +1);if _gaf !=nil {return _bb .Wrap (_gaf ,_bfg ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_ace |=int (_ecfb );};};if _age > 1{_acdd <<=8;if _fcgd < _efd {_ecfb ,_gaf =_bfa .Bitmap .GetByte (_bbf -_bfa .Bitmap .RowStride +1);if _gaf !=nil {return _bb .Wrap (_gaf ,_bfg ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_acdd |=int (_ecfb )<<5;};};for _gaaf :=0;_gaaf < _acc ;_gaaf ++{if _bfa ._bcfd {_dga =_bfa .overrideAtTemplate1 (_edbc ,_dff +_gaaf ,_age ,int (_fdfc ),_gaaf );_bfa ._ggc .SetIndex (int32 (_dga ));}else {_bfa ._ggc .SetIndex (int32 (_edbc ));};_bfga ,_gaf =_bfa ._gag .DecodeBit (_bfa ._ggc );if _gaf !=nil {return _bb .Wrap (_gaf ,_bfg ,"");};_fdfc |=byte (_bfga )<<uint (7-_gaaf );_cfge :=uint (8-_gaaf );_edbc =((_edbc &0xefb)<<1)|_bfga |((_ace >>_cfge )&0x8)|((_acdd >>_cfge )&0x200);};if _geafc :=_bfa .Bitmap .SetByte (_geb ,_fdfc );_geafc !=nil {return _bb .Wrap (_geafc ,_bfg ,"");};_geb ++;_bbf ++;};return nil ;};func (_faga *HalftoneRegion )shiftAndFill (_ebfd int )int {_ebfd >>=8;if _ebfd < 0{_acdf :=int (_c .Log (float64 (_dgdg (_ebfd )))/_c .Log (2));_efeg :=31-_acdf ;for _bbfe :=1;_bbfe < _efeg ;_bbfe ++{_ebfd |=1<<uint (31-_bbfe );};};return _ebfd ;};func (_bfbb *GenericRegion )setParameters (_cgff bool ,_cede ,_bbd int64 ,_adf ,_caeg uint32 ){_bfbb .IsMMREncoded =_cgff ;_bfbb .DataOffset =_cede ;_bfbb .DataLength =_bbd ;_bfbb .RegionSegment .BitmapHeight =_adf ;_bfbb .RegionSegment .BitmapWidth =_caeg ;_bfbb ._cdbf =nil ;_bfbb .Bitmap =nil ;};func (_dgfc *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _dgfc ._faca };func (_dceb *SymbolDictionary )retrieveImportSymbols ()error {for _ ,_dgab :=range _dceb .Header .RTSegments {if _dgab .Type ==0{_egcge ,_aefd :=_dgab .GetSegmentData ();if _aefd !=nil {return _aefd ;};_aeffd ,_acgb :=_egcge .(*SymbolDictionary );if !_acgb {return _a .Errorf ("\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0044\u0061\u0074a\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u003a\u0020%\u0054",_egcge );};_cbbcc ,_aefd :=_aeffd .GetDictionary ();if _aefd !=nil {return _a .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064 \u0073\u0065\u0067m\u0065\u006e\u0074 \u0077\u0069t\u0068\u0020\u0069\u006e\u0064\u0065x\u003a %\u0064\u0020\u0067\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0073",_dgab .SegmentNumber ,_aefd .Error ());};_dceb ._ffec =append (_dceb ._ffec ,_cbbcc ...);_dceb ._eaaf +=_aeffd .NumberOfExportedSymbols ;};};return nil ;};func (_eacdf *TextRegion )readUseRefinement ()error {if !_eacdf .UseRefinement ||_eacdf .SbrTemplate !=0{return nil ;};var (_bfcc byte ;_cecd error ;);_eacdf .SbrATX =make ([]int8 ,2);_eacdf .SbrATY =make ([]int8 ,2);_bfcc ,_cecd =_eacdf ._efad .ReadByte ();if _cecd !=nil {return _cecd ;};_eacdf .SbrATX [0]=int8 (_bfcc );_bfcc ,_cecd =_eacdf ._efad .ReadByte ();if _cecd !=nil {return _cecd ;};_eacdf .SbrATY [0]=int8 (_bfcc );_bfcc ,_cecd =_eacdf ._efad .ReadByte ();if _cecd !=nil {return _cecd ;};_eacdf .SbrATX [1]=int8 (_bfcc );_bfcc ,_cecd =_eacdf ._efad .ReadByte ();if _cecd !=nil {return _cecd ;};_eacdf .SbrATY [1]=int8 (_bfcc );return nil ;};func (_dfad *PatternDictionary )readIsMMREncoded ()error {_bbee ,_ecbc :=_dfad ._ddbe .ReadBit ();if _ecbc !=nil {return _ecbc ;};if _bbee !=0{_dfad .IsMMREncoded =true ;};return nil ;};type Segmenter interface{Init (_dcb *Header ,_bfbc _fg .StreamReader )error ;};func (_ggfg *Header )pageSize ()uint {if _ggfg .PageAssociation <=255{return 1;};return 4;};func (_acaa *TextRegion )encodeSymbols (_dbcb _fg .BinaryWriter )(_bgba int ,_abga error ){const _aaad ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";_bdfg :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_bdfg ,_acaa .NumberOfSymbols );if _bgba ,_abga =_dbcb .Write (_bdfg );_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073");};_acfe ,_abga :=_cg .NewClassedPoints (_acaa ._affa ,_ab .IntSlice (_acaa ._edfe ));if _abga !=nil {return 0,_bb .Wrap (_abga ,_aaad ,"");};var _dbaad ,_fbcd int ;_faggf :=_ba .New ();_faggf .Init ();if _abga =_faggf .EncodeInteger (_ba .IADT ,0);_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054");};_gdafb ,_abga :=_acfe .GroupByY ();if _abga !=nil {return 0,_bb .Wrap (_abga ,_aaad ,"");};for _ ,_eebe :=range _gdafb {_gddd :=int (_eebe .YAtIndex (0));_gafa :=_gddd -_dbaad ;if _abga =_faggf .EncodeInteger (_ba .IADT ,_gafa );_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"");};var _cfcb int ;for _cged ,_ggab :=range _eebe .IntSlice {switch _cged {case 0:_bfagc :=int (_eebe .XAtIndex (_cged ))-_fbcd ;if _abga =_faggf .EncodeInteger (_ba .IAFS ,_bfagc );_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"");};_fbcd +=_bfagc ;_cfcb =_fbcd ;default:_bfbdf :=int (_eebe .XAtIndex (_cged ))-_cfcb ;if _abga =_faggf .EncodeInteger (_ba .IADS ,_bfbdf );_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"");};_cfcb +=_bfbdf ;};_gaag ,_cfce :=_acaa ._eeed .Get (_ggab );if _cfce !=nil {return _bgba ,_bb .Wrap (_cfce ,_aaad ,"");};_gggc ,_ggff :=_acaa ._dfbf [_gaag ];if !_ggff {_gggc ,_ggff =_acaa ._eeag [_gaag ];if !_ggff {return _bgba ,_bb .Errorf (_aaad ,"\u0053\u0079\u006d\u006f\u0062\u006c:\u0020\u0027\u0025d\u0027\u0020\u0069s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064 \u0069\u006e\u0020\u0067\u006cob\u0061\u006c\u0020\u0061\u006e\u0064\u0020\u006c\u006f\u0063\u0061\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020\u006d\u0061\u0070",_gaag );};};if _cfce =_faggf .EncodeIAID (_acaa ._bcd ,_gggc );_cfce !=nil {return _bgba ,_bb .Wrap (_cfce ,_aaad ,"");};};if _abga =_faggf .EncodeOOB (_ba .IADS );_abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"");};};_faggf .Final ();_agfcf ,_abga :=_faggf .WriteTo (_dbcb );if _abga !=nil {return _bgba ,_bb .Wrap (_abga ,_aaad ,"");};_bgba +=int (_agfcf );return _bgba ,nil ;};type OrganizationType uint8 ;func (_cfg *GenericRefinementRegion )overrideAtTemplate0 (_eab ,_fgab ,_gaca ,_agf ,_aad int )int {if _cfg ._fd [0]{_eab &=0xfff7;if _cfg .GrAtY [0]==0&&int (_cfg .GrAtX [0])>=-_aad {_eab |=(_agf >>uint (7-(_aad +int (_cfg .GrAtX [0])))&0x1)<<3;}else {_eab |=_cfg .getPixel (_cfg .RegionBitmap ,_fgab +int (_cfg .GrAtX [0]),_gaca +int (_cfg .GrAtY [0]))<<3;};};if _cfg ._fd [1]{_eab &=0xefff;if _cfg .GrAtY [1]==0&&int (_cfg .GrAtX [1])>=-_aad {_eab |=(_agf >>uint (7-(_aad +int (_cfg .GrAtX [1])))&0x1)<<12;}else {_eab |=_cfg .getPixel (_cfg .ReferenceBitmap ,_fgab +int (_cfg .GrAtX [1]),_gaca +int (_cfg .GrAtY [1]));};};return _eab ;};func (_abbf *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_dge ,_cdc ,_cebf ,_deg ,_ecc ,_ggf ,_fcf ,_afg ,_abc int )(_dgg error ){var (_gbf ,_dee int ;_fcfe ,_aaae int ;_cga ,_cgdf int ;_gde byte ;);if _dge > 0{_gde ,_dgg =_abbf .RegionBitmap .GetByte (_fcf -_cebf );if _dgg !=nil {return ;};_fcfe =int (_gde );};if _afg > 0&&_afg <=_abbf .ReferenceBitmap .Height {_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc -_deg +_ggf );if _dgg !=nil {return ;};_aaae =int (_gde )<<2;};if _afg >=0&&_afg < _abbf .ReferenceBitmap .Height {_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc +_ggf );if _dgg !=nil {return ;};_cga =int (_gde );};if _afg > -2&&_afg < _abbf .ReferenceBitmap .Height -1{_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc +_deg +_ggf );if _dgg !=nil {return ;};_cgdf =int (_gde );};_gbf =((_fcfe >>5)&0x6)|((_cgdf >>2)&0x30)|(_cga &0xc0)|(_aaae &0x200);_dee =((_cgdf >>2)&0x70)|(_cga &0xc0)|(_aaae &0x700);var _gcb int ;for _cdb :=0;_cdb < _ecc ;_cdb =_gcb {var (_ada int ;_cdd int ;);_gcb =_cdb +8;if _ada =_cdc -_cdb ;_ada > 8{_ada =8;};_abaf :=_gcb < _cdc ;_gac :=_gcb < _abbf .ReferenceBitmap .Width ;_baa :=_ggf +1;if _dge > 0{_gde =0;if _abaf {_gde ,_dgg =_abbf .RegionBitmap .GetByte (_fcf -_cebf +1);if _dgg !=nil {return ;};};_fcfe =(_fcfe <<8)|int (_gde );};if _afg > 0&&_afg <=_abbf .ReferenceBitmap .Height {var _fdd int ;if _gac {_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc -_deg +_baa );if _dgg !=nil {return ;};_fdd =int (_gde )<<2;};_aaae =(_aaae <<8)|_fdd ;};if _afg >=0&&_afg < _abbf .ReferenceBitmap .Height {_gde =0;if _gac {_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc +_baa );if _dgg !=nil {return ;};};_cga =(_cga <<8)|int (_gde );};if _afg > -2&&_afg < (_abbf .ReferenceBitmap .Height -1){_gde =0;if _gac {_gde ,_dgg =_abbf .ReferenceBitmap .GetByte (_abc +_deg +_baa );if _dgg !=nil {return ;};};_cgdf =(_cgdf <<8)|int (_gde );};for _affc :=0;_affc < _ada ;_affc ++{var _cde int ;_ge :=(_dee >>4)&0x1ff;switch _ge {case 0x1ff:_cde =1;case 0x00:_cde =0;default:_abbf ._fe .SetIndex (int32 (_gbf ));_cde ,_dgg =_abbf ._fc .DecodeBit (_abbf ._fe );if _dgg !=nil {return ;};};_eed :=uint (7-_affc );_cdd |=int (_cde <<_eed );_gbf =((_gbf &0x0d6)<<1)|_cde |(_fcfe >>_eed +5)&0x002|((_cgdf >>_eed +2)&0x010)|((_cga >>_eed )&0x040)|((_aaae >>_eed )&0x200);_dee =((_dee &0xdb)<<1)|((_cgdf >>_eed +2)&0x010)|((_cga >>_eed )&0x080)|((_aaae >>_eed )&0x400);};_dgg =_abbf .RegionBitmap .SetByte (_fcf ,byte (_cdd ));if _dgg !=nil {return ;};_fcf ++;_abc ++;};return nil ;};type SegmentEncoder interface{Encode (_agca _fg .BinaryWriter )(_acddg int ,_ccgg error );};func (_cabd *PatternDictionary )checkInput ()error {if _cabd .HdpHeight < 1||_cabd .HdpWidth < 1{return _ece .New ("in\u0076\u0061l\u0069\u0064\u0020\u0048\u0065\u0061\u0064\u0065\u0072 \u0056\u0061\u006c\u0075\u0065\u003a\u0020\u0057\u0069\u0064\u0074\u0068\u002f\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020g\u0072e\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020z\u0065\u0072o");};if _cabd .IsMMREncoded {if _cabd .HDTemplate !=0{_g .Log .Debug ("\u0076\u0061\u0072\u0069\u0061\u0062\u006c\u0065\u0020\u0048\u0044\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e \u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030");};};return nil ;};func (_eddd *SymbolDictionary )GetDictionary ()([]*_cg .Bitmap ,error ){_g .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c-\u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){_g .Log .Trace ("\u005b\u0053\u0059M\u0042\u004f\u004c\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");_g .Log .Trace ("\u005b\u0053Y\u004d\u0042\u004f\u004c\u002dD\u0049\u0043\u0054\u0049\u004fN\u0041\u0052\u0059\u005d\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020\u000a\u0045\u0078\u003a\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u000a\u006e\u0065\u0077\u003a\u0027\u0025\u0073\u0027",_eddd ._eae ,_eddd ._baag );}();if _eddd ._eae ==nil {var _cdea error ;if _eddd .UseRefinementAggregation {_eddd ._fbee =_eddd .getSbSymCodeLen ();};if !_eddd .IsHuffmanEncoded {if _cdea =_eddd .setCodingStatistics ();_cdea !=nil {return nil ,_cdea ;};};_eddd ._baag =make ([]*_cg .Bitmap ,_eddd .NumberOfNewSymbols );var _aegdf []int ;if _eddd .IsHuffmanEncoded &&!_eddd .UseRefinementAggregation {_aegdf =make ([]int ,_eddd .NumberOfNewSymbols );};if _cdea =_eddd .setSymbolsArray ();_cdea !=nil {return nil ,_cdea ;};var _dffda ,_ddeg int64 ;_eddd ._abbcb =0;for _eddd ._abbcb < _eddd .NumberOfNewSymbols {_ddeg ,_cdea =_eddd .decodeHeightClassDeltaHeight ();if _cdea !=nil {return nil ,_cdea ;};_dffda +=_ddeg ;var _efbg ,_bdca uint32 ;_fdea :=int64 (_eddd ._abbcb );for {var _edeg int64 ;_edeg ,_cdea =_eddd .decodeDifferenceWidth ();if _cdea !=nil {return nil ,_cdea ;};if _edeg ==int64 (_c .MaxInt64 )||_eddd ._abbcb >=_eddd .NumberOfNewSymbols {break ;};_efbg +=uint32 (_edeg );_bdca +=_efbg ;if !_eddd .IsHuffmanEncoded ||_eddd .UseRefinementAggregation {if !_eddd .UseRefinementAggregation {_cdea =_eddd .decodeDirectlyThroughGenericRegion (_efbg ,uint32 (_dffda ));if _cdea !=nil {return nil ,_cdea ;};}else {_cdea =_eddd .decodeAggregate (_efbg ,uint32 (_dffda ));if _cdea !=nil {return nil ,_cdea ;};};}else if _eddd .IsHuffmanEncoded &&!_eddd .UseRefinementAggregation {_aegdf [_eddd ._abbcb ]=int (_efbg );};_eddd ._abbcb ++;};if _eddd .IsHuffmanEncoded &&!_eddd .UseRefinementAggregation {var _fgfb int64 ;if _eddd .SdHuffBMSizeSelection ==0{var _eeeg _cf .Tabler ;_eeeg ,_cdea =_cf .GetStandardTable (1);if _cdea !=nil {return nil ,_cdea ;};_fgfb ,_cdea =_eeeg .Decode (_eddd ._cgcf );if _cdea !=nil {return nil ,_cdea ;};}else {_fgfb ,_cdea =_eddd .huffDecodeBmSize ();if _cdea !=nil {return nil ,_cdea ;};};_eddd ._cgcf .Align ();var _gaab *_cg .Bitmap ;_gaab ,_cdea =_eddd .decodeHeightClassCollectiveBitmap (_fgfb ,uint32 (_dffda ),_bdca );if _cdea !=nil {return nil ,_cdea ;};_cdea =_eddd .decodeHeightClassBitmap (_gaab ,_fdea ,int (_dffda ),_aegdf );if _cdea !=nil {return nil ,_cdea ;};};};_edddg ,_cdea :=_eddd .getToExportFlags ();if _cdea !=nil {return nil ,_cdea ;};_eddd .setExportedSymbols (_edddg );};return _eddd ._eae ,nil ;};func (_cabb *GenericRegion )writeGBAtPixels (_fbe _fg .BinaryWriter )(_ffee int ,_gef error ){const _ccd ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073";if _cabb .UseMMR {return 0,nil ;};_afc :=1;if _cabb .GBTemplate ==0{_afc =4;}else if _cabb .UseExtTemplates {_afc =12;};if len (_cabb .GBAtX )!=_afc {return 0,_bb .Errorf (_ccd ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0058\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};if len (_cabb .GBAtY )!=_afc {return 0,_bb .Errorf (_ccd ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0059\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};for _cbg :=0;_cbg < _afc ;_cbg ++{if _gef =_fbe .WriteByte (byte (_cabb .GBAtX [_cbg ]));_gef !=nil {return _ffee ,_bb .Wrap (_gef ,_ccd ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_ffee ++;if _gef =_fbe .WriteByte (byte (_cabb .GBAtY [_cbg ]));_gef !=nil {return _ffee ,_bb .Wrap (_gef ,_ccd ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_ffee ++;};return _ffee ,nil ;};func (_fada *PageInformationSegment )readContainsRefinement ()error {_decf ,_fcbb :=_fada ._dgbe .ReadBit ();if _fcbb !=nil {return _fcbb ;};if _decf ==1{_fada ._fcbdg =true ;};return nil ;};func (_edfa *SymbolDictionary )encodeNumSyms (_fagg _fg .BinaryWriter )(_cedga int ,_cefb error ){const _beefd ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073";_ggda :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_ggda ,_edfa .NumberOfExportedSymbols );if _cedga ,_cefb =_fagg .Write (_ggda );_cefb !=nil {return _cedga ,_bb .Wrap (_cefb ,_beefd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};_ec .BigEndian .PutUint32 (_ggda ,_edfa .NumberOfNewSymbols );_eacf ,_cefb :=_fagg .Write (_ggda );if _cefb !=nil {return _cedga ,_bb .Wrap (_cefb ,_beefd ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _cedga +_eacf ,nil ;};func (_gcg *TableSegment )HtPS ()int32 {return _gcg ._fgff };func (_fagc *PatternDictionary )readTemplate ()error {_eeff ,_ffff :=_fagc ._ddbe .ReadBits (2);if _ffff !=nil {return _ffff ;};_fagc .HDTemplate =byte (_eeff );return nil ;};func (_ecba *PatternDictionary )GetDictionary ()([]*_cg .Bitmap ,error ){if _ecba .Patterns !=nil {return _ecba .Patterns ,nil ;};if !_ecba .IsMMREncoded {_ecba .setGbAtPixels ();};_dbcf :=NewGenericRegion (_ecba ._ddbe );_dbcf .setParametersMMR (_ecba .IsMMREncoded ,_ecba .DataOffset ,_ecba .DataLength ,uint32 (_ecba .HdpHeight ),(_ecba .GrayMax +1)*uint32 (_ecba .HdpWidth ),_ecba .HDTemplate ,false ,false ,_ecba .GBAtX ,_ecba .GBAtY );_caef ,_abec :=_dbcf .GetRegionBitmap ();if _abec !=nil {return nil ,_abec ;};if _abec =_ecba .extractPatterns (_caef );_abec !=nil {return nil ,_abec ;};return _ecba .Patterns ,nil ;};func (_dae *GenericRegion )computeSegmentDataStructure ()error {_dae .DataOffset =_dae ._cgde .StreamPosition ();_dae .DataHeaderLength =_dae .DataOffset -_dae .DataHeaderOffset ;_dae .DataLength =int64 (_dae ._cgde .Length ())-_dae .DataHeaderLength ;return nil ;};func (_cae *GenericRegion )copyLineAbove (_eebd int )error {_eefb :=_eebd *_cae .Bitmap .RowStride ;_ebae :=_eefb -_cae .Bitmap .RowStride ;for _eca :=0;_eca < _cae .Bitmap .RowStride ;_eca ++{_bbg ,_dbf :=_cae .Bitmap .GetByte (_ebae );if _dbf !=nil {return _dbf ;};_ebae ++;if _dbf =_cae .Bitmap .SetByte (_eefb ,_bbg );_dbf !=nil {return _dbf ;};_eefb ++;};return nil ;};func (_acf *template0 )form (_caa ,_eccgc ,_gce ,_gab ,_agb int16 )int16 {return (_caa <<10)|(_eccgc <<7)|(_gce <<4)|(_gab <<1)|_agb ;};func (_gbda *GenericRegion )overrideAtTemplate3 (_begg ,_aegd ,_fefb ,_dfb ,_bgce int )int {_begg &=0x3EF;if _gbda .GBAtY [0]==0&&_gbda .GBAtX [0]>=-int8 (_bgce ){_begg |=(_dfb >>uint (7-(int8 (_bgce )+_gbda .GBAtX [0]))&0x1)<<4;}else {_begg |=int (_gbda .getPixel (_aegd +int (_gbda .GBAtX [0]),_fefb +int (_gbda .GBAtY [0])))<<4;};return _begg ;};type HalftoneRegion struct{_bgbb _fg .StreamReader ;_edf *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _cg .CombinationOperator ;HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_cg .Bitmap ;Patterns []*_cg .Bitmap ;};func (_eddf *PatternDictionary )Init (h *Header ,r _fg .StreamReader )error {_eddf ._ddbe =r ;return _eddf .parseHeader ();};func (_eccg *GenericRefinementRegion )setParameters (_bef *_ff .DecoderStats ,_dfd *_ff .Decoder ,_eeb int8 ,_fdf ,_edd uint32 ,_dda *_cg .Bitmap ,_eeg ,_ceba int32 ,_ebd bool ,_ffce []int8 ,_faa []int8 ){_g .Log .Trace ("\u005b\u0047\u0045NE\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052E\u0047I\u004fN\u005d \u0073\u0065\u0074\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073");if _bef !=nil {_eccg ._fe =_bef ;};if _dfd !=nil {_eccg ._fc =_dfd ;};_eccg .TemplateID =_eeb ;_eccg .RegionInfo .BitmapWidth =_fdf ;_eccg .RegionInfo .BitmapHeight =_edd ;_eccg .ReferenceBitmap =_dda ;_eccg .ReferenceDX =_eeg ;_eccg .ReferenceDY =_ceba ;_eccg .IsTPGROn =_ebd ;_eccg .GrAtX =_ffce ;_eccg .GrAtY =_faa ;_eccg .RegionBitmap =nil ;_g .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073 f\u0069\u006ei\u0073\u0068\u0065\u0064\u002e\u0020\u0025\u0073",_eccg );};func (_eeef *SymbolDictionary )setAtPixels ()error {if _eeef .IsHuffmanEncoded {return nil ;};_egebe :=1;if _eeef .SdTemplate ==0{_egebe =4;};if _gebc :=_eeef .readAtPixels (_egebe );_gebc !=nil {return _gebc ;};return nil ;};func (_afcb *PatternDictionary )readPatternWidthAndHeight ()error {_cgge ,_ffage :=_afcb ._ddbe .ReadByte ();if _ffage !=nil {return _ffage ;};_afcb .HdpWidth =_cgge ;_cgge ,_ffage =_afcb ._ddbe .ReadByte ();if _ffage !=nil {return _ffage ;};_afcb .HdpHeight =_cgge ;return nil ;};func (_fedb *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _fedb .IsHuffmanEncoded {switch _fedb .SdHuffDecodeWidthSelection {case 0:_faee ,_dagb :=_cf .GetStandardTable (2);if _dagb !=nil {return 0,_dagb ;};return _faee .Decode (_fedb ._cgcf );case 1:_becd ,_egcacb :=_cf .GetStandardTable (3);if _egcacb !=nil {return 0,_egcacb ;};return _becd .Decode (_fedb ._cgcf );case 3:if _fedb ._cafa ==nil {var _bbge int ;if _fedb .SdHuffDecodeHeightSelection ==3{_bbge ++;};_gbgd ,_abcd :=_fedb .getUserTable (_bbge );if _abcd !=nil {return 0,_abcd ;};_fedb ._cafa =_gbgd ;};return _fedb ._cafa .Decode (_fedb ._cgcf );};}else {_efcd ,_adfab :=_fedb ._abfd .DecodeInt (_fedb ._dfda );if _adfab !=nil {return 0,_adfab ;};if _efcd ==_c .MaxInt32 {return int64 (_c .MaxInt64 ),nil ;};return int64 (_efcd ),nil ;};return 0,nil ;};func (_dggc *TextRegion )String ()string {_ggga :=&_bd .Builder {};_ggga .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a");_ggga .WriteString (_dggc .RegionInfo .String ()+"\u000a");_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_dggc .SbrTemplate ));_ggga .WriteString (_a .Sprintf ("\u0009-\u0020S\u0062\u0064\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_dggc .SbdsOffset ));_ggga .WriteString (_a .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_dggc .DefaultPixel ));_ggga .WriteString (_a .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_dggc .CombinationOperator ));_ggga .WriteString (_a .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_dggc .IsTransposed ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_dggc .ReferenceCorner ));_ggga .WriteString (_a .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_dggc .UseRefinement ));_ggga .WriteString (_a .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_dggc .IsHuffmanEncoded ));if _dggc .IsHuffmanEncoded {_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_dggc .SbHuffRSize ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_dggc .SbHuffRDY ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_dggc .SbHuffRDX ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_dggc .SbHuffRDHeight ));_ggga .WriteString (_a .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_dggc .SbHuffRDWidth ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_dggc .SbHuffDT ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_dggc .SbHuffDS ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_dggc .SbHuffFS ));};_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_dggc .SbrATX ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_dggc .SbrATY ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020N\u0075\u006d\u0062\u0065r\u004f\u0066\u0053\u0079\u006d\u0062\u006fl\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_dggc .NumberOfSymbolInstances ));_ggga .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_dggc .SbrATX ));return _ggga .String ();};func (_fef *GenericRegion )decodeTemplate0b (_edc ,_cab ,_dfdf int ,_aec ,_ebdb int )(_aeg error ){const _gabe ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062";var (_ffcd ,_ecf int ;_eeaf ,_gbeeb int ;_gfe byte ;_dbab int ;);if _edc >=1{_gfe ,_aeg =_fef .Bitmap .GetByte (_ebdb );if _aeg !=nil {return _bb .Wrap (_aeg ,_gabe ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_eeaf =int (_gfe );};if _edc >=2{_gfe ,_aeg =_fef .Bitmap .GetByte (_ebdb -_fef .Bitmap .RowStride );if _aeg !=nil {return _bb .Wrap (_aeg ,_gabe ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_gbeeb =int (_gfe )<<6;};_ffcd =(_eeaf &0xf0)|(_gbeeb &0x3800);for _bfbf :=0;_bfbf < _dfdf ;_bfbf =_dbab {var (_ebda byte ;_ecbf int ;);_dbab =_bfbf +8;if _bed :=_cab -_bfbf ;_bed > 8{_ecbf =8;}else {_ecbf =_bed ;};if _edc > 0{_eeaf <<=8;if _dbab < _cab {_gfe ,_aeg =_fef .Bitmap .GetByte (_ebdb +1);if _aeg !=nil {return _bb .Wrap (_aeg ,_gabe ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_eeaf |=int (_gfe );};};if _edc > 1{_gbeeb <<=8;if _dbab < _cab {_gfe ,_aeg =_fef .Bitmap .GetByte (_ebdb -_fef .Bitmap .RowStride +1);if _aeg !=nil {return _bb .Wrap (_aeg ,_gabe ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_gbeeb |=int (_gfe )<<6;};};for _ebea :=0;_ebea < _ecbf ;_ebea ++{_aeb :=uint (7-_ebea );if _fef ._bcfd {_ecf =_fef .overrideAtTemplate0b (_ffcd ,_bfbf +_ebea ,_edc ,int (_ebda ),_ebea ,int (_aeb ));_fef ._ggc .SetIndex (int32 (_ecf ));}else {_fef ._ggc .SetIndex (int32 (_ffcd ));};var _bgcf int ;_bgcf ,_aeg =_fef ._gag .DecodeBit (_fef ._ggc );if _aeg !=nil {return _bb .Wrap (_aeg ,_gabe ,"");};_ebda |=byte (_bgcf <<uint (_aeb ));_ffcd =((_ffcd &0x7bf7)<<1)|_bgcf |((_eeaf >>_aeb )&0x10)|((_gbeeb >>_aeb )&0x800);};if _aege :=_fef .Bitmap .SetByte (_aec ,_ebda );_aege !=nil {return _bb .Wrap (_aege ,_gabe ,"");};_aec ++;_ebdb ++;};return nil ;};func (_gbac *TextRegion )parseHeader ()error {var _befb error ;_g .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069n\u0073\u002e\u002e\u002e");defer func (){if _befb !=nil {_g .Log .Trace ("\u005b\u0054\u0045\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044E\u0052\u005d\u0020\u0066\u0061i\u006c\u0065d\u002e\u0020\u0025\u0076",_befb );}else {_g .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069s\u0068\u0065\u0064\u002e");};}();if _befb =_gbac .RegionInfo .parseHeader ();_befb !=nil {return _befb ;};if _befb =_gbac .readRegionFlags ();_befb !=nil {return _befb ;};if _gbac .IsHuffmanEncoded {if _befb =_gbac .readHuffmanFlags ();_befb !=nil {return _befb ;};};if _befb =_gbac .readUseRefinement ();_befb !=nil {return _befb ;};if _befb =_gbac .readAmountOfSymbolInstances ();_befb !=nil {return _befb ;};if _befb =_gbac .getSymbols ();_befb !=nil {return _befb ;};if _befb =_gbac .computeSymbolCodeLength ();_befb !=nil {return _befb ;};if _befb =_gbac .checkInput ();_befb !=nil {return _befb ;};_g .Log .Trace ("\u0025\u0073",_gbac .String ());return nil ;};func (_egcg *HalftoneRegion )GetRegionBitmap ()(*_cg .Bitmap ,error ){if _egcg .HalftoneRegionBitmap !=nil {return _egcg .HalftoneRegionBitmap ,nil ;};var _deag error ;_egcg .HalftoneRegionBitmap =_cg .New (int (_egcg .RegionSegment .BitmapWidth ),int (_egcg .RegionSegment .BitmapHeight ));if _egcg .Patterns ==nil ||len (_egcg .Patterns )==0{_egcg .Patterns ,_deag =_egcg .GetPatterns ();if _deag !=nil {return nil ,_deag ;};};if _egcg .HDefaultPixel ==1{_egcg .HalftoneRegionBitmap .SetDefaultPixel ();};_aae :=_c .Ceil (_c .Log (float64 (len (_egcg .Patterns )))/_c .Log (2));_cfff :=int (_aae );var _dacc [][]int ;_dacc ,_deag =_egcg .grayScaleDecoding (_cfff );if _deag !=nil {return nil ,_deag ;};if _deag =_egcg .renderPattern (_dacc );_deag !=nil {return nil ,_deag ;};return _egcg .HalftoneRegionBitmap ,nil ;};func (_cbfc *SymbolDictionary )encodeFlags (_eaac _fg .BinaryWriter )(_bag int ,_cddd error ){const _edef ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _cddd =_eaac .SkipBits (3);_cddd !=nil {return 0,_bb .Wrap (_cddd ,_edef ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _agace int ;if _cbfc .SdrTemplate > 0{_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"s\u0064\u0072\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_agace =0;if _cbfc .SdTemplate > 1{_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_agace =0;if _cbfc .SdTemplate ==1||_cbfc .SdTemplate ==3{_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_agace =0;if _cbfc ._abgc {_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064");};_agace =0;if _cbfc ._eacb {_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_agace =0;if _cbfc .SdHuffAggInstanceSelection {_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0068\u0075\u0066\u0066\u0061\u0067\u0067\u0069\u006e\u0073\u0074");};_agace =int (_cbfc .SdHuffBMSizeSelection );if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0068u\u0066\u0066\u0062\u006d\u0073\u0069\u007a\u0065");};_agace =0;if _cbfc .SdHuffDecodeWidthSelection > 1{_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"s\u0064\u0068\u0075\u0066\u0066\u0077\u0069\u0064\u0074\u0068");};_agace =0;switch _cbfc .SdHuffDecodeWidthSelection {case 1,3:_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"s\u0064\u0068\u0075\u0066\u0066\u0077\u0069\u0064\u0074\u0068");};_agace =0;if _cbfc .SdHuffDecodeHeightSelection > 1{_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0068u\u0066\u0066\u0068\u0065\u0069\u0067\u0068\u0074");};_agace =0;switch _cbfc .SdHuffDecodeHeightSelection {case 1,3:_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0068u\u0066\u0066\u0068\u0065\u0069\u0067\u0068\u0074");};_agace =0;if _cbfc .UseRefinementAggregation {_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0072\u0065\u0066\u0061\u0067\u0067");};_agace =0;if _cbfc .IsHuffmanEncoded {_agace =1;};if _cddd =_eaac .WriteBit (_agace );_cddd !=nil {return _bag ,_bb .Wrap (_cddd ,_edef ,"\u0073\u0064\u0068\u0075\u0066\u0066");};return 2,nil ;};func (_daee *TextRegion )readHuffmanFlags ()error {var (_fdef int ;_afag uint64 ;_gffe error ;);_ ,_gffe =_daee ._efad .ReadBit ();if _gffe !=nil {return _gffe ;};_fdef ,_gffe =_daee ._efad .ReadBit ();if _gffe !=nil {return _gffe ;};_daee .SbHuffRSize =int8 (_fdef );_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffRDY =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffRDX =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffRDHeight =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffRDWidth =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffDT =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffDS =int8 (_afag )&0xf;_afag ,_gffe =_daee ._efad .ReadBits (2);if _gffe !=nil {return _gffe ;};_daee .SbHuffFS =int8 (_afag )&0xf;return nil ;};func (_eff *PageInformationSegment )checkInput ()error {if _eff .PageBMHeight ==_c .MaxInt32 {if !_eff .IsStripe {_g .Log .Debug ("P\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0053\u0065\u0067me\u006e\u0074\u002e\u0049s\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0073\u0068ou\u006c\u0064 \u0062\u0065\u0020\u0074\u0072\u0075\u0065\u002e");};};return nil ;};func (_abdfb *TableSegment )HtHigh ()int32 {return _abdfb ._ggce };func (_ccff *TextRegion )decodeRdx ()(int64 ,error ){const _fcge ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _ccff .IsHuffmanEncoded {if _ccff .SbHuffRDX ==3{if _ccff ._baab ==nil {var (_cdag int ;_cfag error ;);if _ccff .SbHuffFS ==3{_cdag ++;};if _ccff .SbHuffDS ==3{_cdag ++;};if _ccff .SbHuffDT ==3{_cdag ++;};if _ccff .SbHuffRDWidth ==3{_cdag ++;};if _ccff .SbHuffRDHeight ==3{_cdag ++;};_ccff ._baab ,_cfag =_ccff .getUserTable (_cdag );if _cfag !=nil {return 0,_bb .Wrap (_cfag ,_fcge ,"");};};return _ccff ._baab .Decode (_ccff ._efad );};_ggcc ,_gbeee :=_cf .GetStandardTable (14+int (_ccff .SbHuffRDX ));if _gbeee !=nil {return 0,_bb .Wrap (_gbeee ,_fcge ,"");};return _ggcc .Decode (_ccff ._efad );};_gbfcc ,_eagb :=_ccff ._dfcb .DecodeInt (_ccff ._eagad );if _eagb !=nil {return 0,_bb .Wrap (_eagb ,_fcge ,"");};return int64 (_gbfcc ),nil ;};type Type int ;func (_abcg *SymbolDictionary )String ()string {_gccc :=&_bd .Builder {};_gccc .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a");_gccc .WriteString (_a .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_abcg .SdrTemplate ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_abcg .SdTemplate ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006eg\u0043\u006f\u006e\u0074\u0065\u0078\u0074R\u0065\u0074\u0061\u0069\u006e\u0065\u0064\u0020\u0025\u0076\u000a",_abcg ._abgc ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074\u0065\u0078\u0074\u0055\u0073\u0065\u0064 \u0025\u0076\u000a",_abcg ._eacb ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_abcg .SdHuffAggInstanceSelection ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053d\u0048\u0075\u0066\u0066\u0042\u004d\u0053\u0069\u007a\u0065S\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020%\u0076\u000a",_abcg .SdHuffBMSizeSelection ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_abcg .SdHuffDecodeWidthSelection ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020Sd\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064e\u0048e\u0069g\u0068t\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_abcg .SdHuffDecodeHeightSelection ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020U\u0073\u0065\u0052\u0065f\u0069\u006e\u0065\u006d\u0065\u006e\u0074A\u0067\u0067\u0072\u0065\u0067\u0061\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_abcg .UseRefinementAggregation ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_abcg .IsHuffmanEncoded ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_abcg .SdATX ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_abcg .SdATY ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_abcg .SdrATX ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_abcg .SdrATY ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u004e\u0075\u006d\u0062\u0065\u0072\u004ff\u0045\u0078\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_abcg .NumberOfExportedSymbols ));_gccc .WriteString (_a .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_abcg .NumberOfNewSymbols ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u004ff\u0049\u006d\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_abcg ._eaaf ));_gccc .WriteString (_a .Sprintf ("\u0009\u002d \u006e\u0075\u006d\u0062\u0065\u0072\u004f\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0064\u0053\u0079\u006d\u0062\u006f\u006c\u0073 %\u0076\u000a",_abcg ._abbcb ));return _gccc .String ();};func (_dcacf *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _dcacf .SdHuffDecodeHeightSelection {case 0:_eedc ,_efga :=_cf .GetStandardTable (4);if _efga !=nil {return 0,_efga ;};return _eedc .Decode (_dcacf ._cgcf );case 1:_egef ,_gebe :=_cf .GetStandardTable (5);if _gebe !=nil {return 0,_gebe ;};return _egef .Decode (_dcacf ._cgcf );case 3:if _dcacf ._fddd ==nil {_abcb ,_bdaf :=_cf .GetStandardTable (0);if _bdaf !=nil {return 0,_bdaf ;};_dcacf ._fddd =_abcb ;};return _dcacf ._fddd .Decode (_dcacf ._cgcf );};return 0,nil ;};func (_bcg *GenericRegion )readGBAtPixels (_dca int )error {const _fgg ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073";_bcg .GBAtX =make ([]int8 ,_dca );_bcg .GBAtY =make ([]int8 ,_dca );for _dab :=0;_dab < _dca ;_dab ++{_dcc ,_gacd :=_bcg ._cgde .ReadByte ();if _gacd !=nil {return _bb .Wrapf (_gacd ,_fgg ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_dab );};_bcg .GBAtX [_dab ]=int8 (_dcc );_dcc ,_gacd =_bcg ._cgde .ReadByte ();if _gacd !=nil {return _bb .Wrapf (_gacd ,_fgg ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_dab );};_bcg .GBAtY [_dab ]=int8 (_dcc );};return nil ;};func (_gfa *SymbolDictionary )encodeSymbols (_gedf _fg .BinaryWriter )(_bgcd int ,_fedc error ){const _adfc ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c";_cfea :=_ba .New ();_cfea .Init ();_ffde ,_fedc :=_gfa ._bbda .SelectByIndexes (_gfa ._dfbe );if _fedc !=nil {return 0,_bb .Wrap (_fedc ,_adfc ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_daca :=map[*_cg .Bitmap ]int {};for _fefca ,_dcadg :=range _ffde .Values {_daca [_dcadg ]=_fefca ;};_ffde .SortByHeight ();var _bfc ,_fedd int ;_gagg ,_fedc :=_ffde .GroupByHeight ();if _fedc !=nil {return 0,_bb .Wrap (_fedc ,_adfc ,"");};for _ ,_dbcd :=range _gagg .Values {_deff :=_dbcd .Values [0].Height ;_cdfe :=_deff -_bfc ;if _fedc =_cfea .EncodeInteger (_ba .IADH ,_cdfe );_fedc !=nil {return 0,_bb .Wrapf (_fedc ,_adfc ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_cdfe );};_bfc =_deff ;_cfbf ,_ceec :=_dbcd .GroupByWidth ();if _ceec !=nil {return 0,_bb .Wrapf (_ceec ,_adfc ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_deff );};var _gddb int ;for _ ,_aageb :=range _cfbf .Values {for _ ,_fceg :=range _aageb .Values {_cgda :=_fceg .Width ;_eead :=_cgda -_gddb ;if _ceec =_cfea .EncodeInteger (_ba .IADW ,_eead );_ceec !=nil {return 0,_bb .Wrapf (_ceec ,_adfc ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_eead );};_gddb +=_eead ;if _ceec =_cfea .EncodeBitmap (_fceg ,false );_ceec !=nil {return 0,_bb .Wrapf (_ceec ,_adfc ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_deff ,_cgda );};_eddb :=_daca [_fceg ];_gfa ._dcfg [_eddb ]=_fedd ;_fedd ++;};};if _ceec =_cfea .EncodeOOB (_ba .IADW );_ceec !=nil {return 0,_bb .Wrap (_ceec ,_adfc ,"\u0049\u0041\u0044\u0057");};};if _fedc =_cfea .EncodeInteger (_ba .IAEX ,0);_fedc !=nil {return 0,_bb .Wrap (_fedc ,_adfc ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};if _fedc =_cfea .EncodeInteger (_ba .IAEX ,len (_gfa ._dfbe ));_fedc !=nil {return 0,_bb .Wrap (_fedc ,_adfc ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_cfea .Final ();_cebb ,_fedc :=_cfea .WriteTo (_gedf );if _fedc !=nil {return 0,_bb .Wrap (_fedc ,_adfc ,"\u0077\u0072i\u0074\u0069\u006e\u0067 \u0065\u006ec\u006f\u0064\u0065\u0072\u0020\u0063\u006f\u006et\u0065\u0078\u0074\u0020\u0074\u006f\u0020\u0027\u0077\u0027\u0020\u0077r\u0069\u0074\u0065\u0072");};return int (_cebb ),nil ;};func (_beeg *HalftoneRegion )Init (hd *Header ,r _fg .StreamReader )error {_beeg ._bgbb =r ;_beeg ._edf =hd ;_beeg .RegionSegment =NewRegionSegment (r );return _beeg .parseHeader ();};func (_gdaf *TextRegion )Encode (w _fg .BinaryWriter )(_egaba int ,_egcb error ){const _acbb ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";if _egaba ,_egcb =_gdaf .RegionInfo .Encode (w );_egcb !=nil {return _egaba ,_bb .Wrap (_egcb ,_acbb ,"");};var _bceg int ;if _bceg ,_egcb =_gdaf .encodeFlags (w );_egcb !=nil {return _egaba ,_bb .Wrap (_egcb ,_acbb ,"");};_egaba +=_bceg ;if _bceg ,_egcb =_gdaf .encodeSymbols (w );_egcb !=nil {return _egaba ,_bb .Wrap (_egcb ,_acbb ,"");};_egaba +=_bceg ;return _egaba ,nil ;};func (_gbce *Header )referenceSize ()uint {switch {case _gbce .SegmentNumber <=255:return 1;case _gbce .SegmentNumber <=65535:return 2;default:return 4;};};func (_fgefc *SymbolDictionary )setExportedSymbols (_fbeg []int ){for _dcga :=uint32 (0);_dcga < _fgefc ._eaaf +_fgefc .NumberOfNewSymbols ;_dcga ++{if _fbeg [_dcga ]==1{var _afcgc *_cg .Bitmap ;if _dcga < _fgefc ._eaaf {_afcgc =_fgefc ._ffec [_dcga ];}else {_afcgc =_fgefc ._baag [_dcga -_fgefc ._eaaf ];};_g .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u002d\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u0020\u0041\u0064\u0064 E\u0078\u0070\u006fr\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027%\u0073\u0027",_afcgc );_fgefc ._eae =append (_fgefc ._eae ,_afcgc );};};};func (_eafc *SymbolDictionary )setSymbolsArray ()error {if _eafc ._ffec ==nil {if _dbcfd :=_eafc .retrieveImportSymbols ();_dbcfd !=nil {return _dbcfd ;};};if _eafc ._aafe ==nil {_eafc ._aafe =append (_eafc ._aafe ,_eafc ._ffec ...);};return nil ;};func (_baf *GenericRefinementRegion )GetRegionBitmap ()(*_cg .Bitmap ,error ){var _db error ;_g .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _db !=nil {_g .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0047\u0065\u0074R\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006dap\u0020\u0066a\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_db );}else {_g .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _baf .RegionBitmap !=nil {return _baf .RegionBitmap ,nil ;};_ca :=0;if _baf .ReferenceBitmap ==nil {_baf .ReferenceBitmap ,_db =_baf .getGrReference ();if _db !=nil {return nil ,_db ;};};if _baf ._fc ==nil {_baf ._fc ,_db =_ff .New (_baf ._ga );if _db !=nil {return nil ,_db ;};};if _baf ._fe ==nil {_baf ._fe =_ff .NewStats (8192,1);};_baf .RegionBitmap =_cg .New (int (_baf .RegionInfo .BitmapWidth ),int (_baf .RegionInfo .BitmapHeight ));if _baf .TemplateID ==0{if _db =_baf .updateOverride ();_db !=nil {return nil ,_db ;};};_ddc :=(_baf .RegionBitmap .Width +7)&-8;var _ed int ;if _baf .IsTPGROn {_ed =int (-_baf .ReferenceDY )*_baf .ReferenceBitmap .RowStride ;};_fa :=_ed +1;for _cgd :=0;_cgd < _baf .RegionBitmap .Height ;_cgd ++{if _baf .IsTPGROn {_cff ,_cgdd :=_baf .decodeSLTP ();if _cgdd !=nil {return nil ,_cgdd ;};_ca ^=_cff ;};if _ca ==0{_db =_baf .decodeOptimized (_cgd ,_baf .RegionBitmap .Width ,_baf .RegionBitmap .RowStride ,_baf .ReferenceBitmap .RowStride ,_ddc ,_ed ,_fa );if _db !=nil {return nil ,_db ;};}else {_db =_baf .decodeTypicalPredictedLine (_cgd ,_baf .RegionBitmap .Width ,_baf .RegionBitmap .RowStride ,_baf .ReferenceBitmap .RowStride ,_ddc ,_ed );if _db !=nil {return nil ,_db ;};};};return _baf .RegionBitmap ,nil ;};func (_egbb *TextRegion )decodeRdw ()(int64 ,error ){const _ggac ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";if _egbb .IsHuffmanEncoded {if _egbb .SbHuffRDWidth ==3{if _egbb ._fgca ==nil {var (_faff int ;_cgdg error ;);if _egbb .SbHuffFS ==3{_faff ++;};if _egbb .SbHuffDS ==3{_faff ++;};if _egbb .SbHuffDT ==3{_faff ++;};_egbb ._fgca ,_cgdg =_egbb .getUserTable (_faff );if _cgdg !=nil {return 0,_bb .Wrap (_cgdg ,_ggac ,"");};};return _egbb ._fgca .Decode (_egbb ._efad );};_aafg ,_bega :=_cf .GetStandardTable (14+int (_egbb .SbHuffRDWidth ));if _bega !=nil {return 0,_bb .Wrap (_bega ,_ggac ,"");};return _aafg .Decode (_egbb ._efad );};_aacd ,_dddd :=_egbb ._dfcb .DecodeInt (_egbb ._ddgce );if _dddd !=nil {return 0,_bb .Wrap (_dddd ,_ggac ,"");};return int64 (_aacd ),nil ;};func (_ad *GenericRefinementRegion )getGrReference ()(*_cg .Bitmap ,error ){segments :=_ad ._cd .RTSegments ;if len (segments )==0{return nil ,_ece .New ("\u0052\u0065f\u0065\u0072\u0065\u006e\u0063\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0065\u0078is\u0074\u0073");};_ee ,_abe :=segments [0].GetSegmentData ();if _abe !=nil {return nil ,_abe ;};_gb ,_ce :=_ee .(Regioner );if !_ce {return nil ,_a .Errorf ("\u0072\u0065\u0066\u0065\u0072r\u0065\u0064\u0020\u0074\u006f\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_ee );};return _gb .GetRegionBitmap ();};func (_egcac *Header )writeSegmentDataLength (_ccg _fg .BinaryWriter )(_cfb int ,_aaff error ){_ceda :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_ceda ,uint32 (_egcac .SegmentDataLength ));if _cfb ,_aaff =_ccg .Write (_ceda );_aaff !=nil {return 0,_bb .Wrap (_aaff ,"\u0048\u0065a\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u004c\u0065ng\u0074\u0068","");};return _cfb ,nil ;};func (_bedc *HalftoneRegion )computeSegmentDataStructure ()error {_bedc .DataOffset =_bedc ._bgbb .StreamPosition ();_bedc .DataHeaderLength =_bedc .DataOffset -_bedc .DataHeaderOffset ;_bedc .DataLength =int64 (_bedc ._bgbb .Length ())-_bedc .DataHeaderLength ;return nil ;};type TableSegment struct{_acac _fg .StreamReader ;_egag int32 ;_fgff int32 ;_eafa int32 ;_ceagf int32 ;_ggce int32 ;};func (_bgdg *SymbolDictionary )decodeHeightClassCollectiveBitmap (_cgdb int64 ,_bbac ,_bede uint32 )(*_cg .Bitmap ,error ){if _cgdb ==0{_bgcdf :=_cg .New (int (_bede ),int (_bbac ));var (_effe byte ;_fcfd error ;);for _cfbg :=0;_cfbg < len (_bgcdf .Data );_cfbg ++{_effe ,_fcfd =_bgdg ._cgcf .ReadByte ();if _fcfd !=nil {return nil ,_fcfd ;};if _fcfd =_bgcdf .SetByte (_cfbg ,_effe );_fcfd !=nil {return nil ,_fcfd ;};};return _bgcdf ,nil ;};if _bgdg ._eadg ==nil {_bgdg ._eadg =NewGenericRegion (_bgdg ._cgcf );};_bgdg ._eadg .setParameters (true ,_bgdg ._cgcf .StreamPosition (),_cgdb ,_bbac ,_bede );_ecagb ,_fage :=_bgdg ._eadg .GetRegionBitmap ();if _fage !=nil {return nil ,_fage ;};return _ecagb ,nil ;};func (_abf *GenericRefinementRegion )GetRegionInfo ()*RegionSegment {return _abf .RegionInfo };func (_fdad *TableSegment )StreamReader ()_fg .StreamReader {return _fdad ._acac };func (_ebab *TextRegion )decodeRdh ()(int64 ,error ){const _abfc ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _ebab .IsHuffmanEncoded {if _ebab .SbHuffRDHeight ==3{if _ebab ._aagee ==nil {var (_bbeb int ;_agbc error ;);if _ebab .SbHuffFS ==3{_bbeb ++;};if _ebab .SbHuffDS ==3{_bbeb ++;};if _ebab .SbHuffDT ==3{_bbeb ++;};if _ebab .SbHuffRDWidth ==3{_bbeb ++;};_ebab ._aagee ,_agbc =_ebab .getUserTable (_bbeb );if _agbc !=nil {return 0,_bb .Wrap (_agbc ,_abfc ,"");};};return _ebab ._aagee .Decode (_ebab ._efad );};_dcee ,_dccd :=_cf .GetStandardTable (14+int (_ebab .SbHuffRDHeight ));if _dccd !=nil {return 0,_bb .Wrap (_dccd ,_abfc ,"");};return _dcee .Decode (_ebab ._efad );};_bacg ,_gaac :=_ebab ._dfcb .DecodeInt (_ebab ._afgd );if _gaac !=nil {return 0,_bb .Wrap (_gaac ,_abfc ,"");};return int64 (_bacg ),nil ;};func (_gcfb *SymbolDictionary )readRefinementAtPixels (_cgdc int )error {_gcfb .SdrATX =make ([]int8 ,_cgdc );_gcfb .SdrATY =make ([]int8 ,_cgdc );var (_cgffbc byte ;_ded error ;);for _ecbg :=0;_ecbg < _cgdc ;_ecbg ++{_cgffbc ,_ded =_gcfb ._cgcf .ReadByte ();if _ded !=nil {return _ded ;};_gcfb .SdrATX [_ecbg ]=int8 (_cgffbc );_cgffbc ,_ded =_gcfb ._cgcf .ReadByte ();if _ded !=nil {return _ded ;};_gcfb .SdrATY [_ecbg ]=int8 (_cgffbc );};return nil ;};func (_babe *TextRegion )initSymbols ()error {const _dacdc ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_aebede :=range _babe .Header .RTSegments {if _aebede ==nil {return _bb .Error (_dacdc ,"\u006e\u0069\u006c\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020pr\u006f\u0076\u0069\u0064\u0065\u0064 \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0074\u0065\u0078\u0074\u0020\u0072\u0065g\u0069\u006f\u006e\u0020\u0053\u0079\u006d\u0062o\u006c\u0073");};if _aebede .Type ==0{_gfcd ,_cgdcf :=_aebede .GetSegmentData ();if _cgdcf !=nil {return _bb .Wrap (_cgdcf ,_dacdc ,"");};_cage ,_bcec :=_gfcd .(*SymbolDictionary );if !_bcec {return _bb .Error (_dacdc ,"\u0072e\u0066\u0065r\u0072\u0065\u0064 \u0054\u006f\u0020\u0053\u0065\u0067\u006de\u006e\u0074\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_cage ._degd =_babe ._cacg ;_ccfe ,_cgdcf :=_cage .GetDictionary ();if _cgdcf !=nil {return _bb .Wrap (_cgdcf ,_dacdc ,"");};_babe .Symbols =append (_babe .Symbols ,_ccfe ...);};};_babe .NumberOfSymbols =uint32 (len (_babe .Symbols ));return nil ;};func (_begc *Header )readHeaderFlags ()error {const _cbe ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073";_abgd ,_def :=_begc .Reader .ReadBit ();if _def !=nil {return _bb .Wrap (_def ,_cbe ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _abgd !=0{_begc .RetainFlag =true ;};_abgd ,_def =_begc .Reader .ReadBit ();if _def !=nil {return _bb .Wrap (_def ,_cbe ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e");};if _abgd !=0{_begc .PageAssociationFieldSize =true ;};_daac ,_def :=_begc .Reader .ReadBits (6);if _def !=nil {return _bb .Wrap (_def ,_cbe ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_begc .Type =Type (int (_daac ));return nil ;};func (_gdeee *Header )readSegmentNumber (_aceb _fg .StreamReader )error {const _caba ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";_ead :=make ([]byte ,4);_ ,_fadd :=_aceb .Read (_ead );if _fadd !=nil {return _bb .Wrap (_fadd ,_caba ,"");};_gdeee .SegmentNumber =_ec .BigEndian .Uint32 (_ead );return nil ;};func (_abdf *SymbolDictionary )setInSyms ()error {if _abdf .Header .RTSegments !=nil {return _abdf .retrieveImportSymbols ();};_abdf ._ffec =make ([]*_cg .Bitmap ,0);return nil ;};func (_efca *TextRegion )setContexts (_bacb *_ff .DecoderStats ,_efcc *_ff .DecoderStats ,_adb *_ff .DecoderStats ,_gdcc *_ff .DecoderStats ,_cccaf *_ff .DecoderStats ,_bcfb *_ff .DecoderStats ,_effea *_ff .DecoderStats ,_cafd *_ff .DecoderStats ,_eccf *_ff .DecoderStats ,_eaag *_ff .DecoderStats ){_efca ._aafc =_efcc ;_efca ._dafe =_adb ;_efca ._cfbd =_gdcc ;_efca ._ebfbd =_cccaf ;_efca ._ddgce =_effea ;_efca ._afgd =_cafd ;_efca ._cacg =_bcfb ;_efca ._eagad =_eccf ;_efca ._fgcf =_eaag ;_efca ._dbeeb =_bacb ;};func (_ffbg *TextRegion )Init (header *Header ,r _fg .StreamReader )error {_ffbg .Header =header ;_ffbg ._efad =r ;_ffbg .RegionInfo =NewRegionSegment (_ffbg ._efad );return _ffbg .parseHeader ();};func (_fbdf *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_cg .Points ,symbols *_cg .Bitmaps ,classIDs *_ab .IntSlice ,boxes *_cg .Boxes ,width ,height ,symbits int ){_fbdf .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )};_fbdf ._dfbf =globalSymbolsMap ;_fbdf ._eeag =localSymbolsMap ;_fbdf ._edfe =comps ;_fbdf ._affa =inLL ;_fbdf ._cbfcf =symbols ;_fbdf ._eeed =classIDs ;_fbdf ._cgddb =boxes ;_fbdf ._bcd =symbits ;};func (_gedd *TextRegion )setCodingStatistics ()error {if _gedd ._aafc ==nil {_gedd ._aafc =_ff .NewStats (512,1);};if _gedd ._dafe ==nil {_gedd ._dafe =_ff .NewStats (512,1);};if _gedd ._cfbd ==nil {_gedd ._cfbd =_ff .NewStats (512,1);};if _gedd ._ebfbd ==nil {_gedd ._ebfbd =_ff .NewStats (512,1);};if _gedd ._bcaa ==nil {_gedd ._bcaa =_ff .NewStats (512,1);};if _gedd ._ddgce ==nil {_gedd ._ddgce =_ff .NewStats (512,1);};if _gedd ._afgd ==nil {_gedd ._afgd =_ff .NewStats (512,1);};if _gedd ._cacg ==nil {_gedd ._cacg =_ff .NewStats (1<<uint (_gedd ._cebda ),1);};if _gedd ._eagad ==nil {_gedd ._eagad =_ff .NewStats (512,1);};if _gedd ._fgcf ==nil {_gedd ._fgcf =_ff .NewStats (512,1);};if _gedd ._dfcb ==nil {var _cacdc error ;_gedd ._dfcb ,_cacdc =_ff .New (_gedd ._efad );if _cacdc !=nil {return _cacdc ;};};return nil ;};func (_afgf *TextRegion )encodeFlags (_egge _fg .BinaryWriter )(_cbddg int ,_fgafc error ){const _abfdg ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _fgafc =_egge .WriteBit (int (_afgf .SbrTemplate ));_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_fgafc =_egge .WriteBits (uint64 (_afgf .SbdsOffset ),5);_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0073\u0062\u0064\u0073\u004f\u0066\u0066\u0073\u0065\u0074");};if _fgafc =_egge .WriteBit (int (_afgf .DefaultPixel ));_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_fgafc =_egge .WriteBits (uint64 (_afgf .CombinationOperator ),2);_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _fgafc =_egge .WriteBit (int (_afgf .IsTransposed ));_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064");};if _ ,_fgafc =_egge .WriteBits (uint64 (_afgf .ReferenceCorner ),2);_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_fgafc =_egge .WriteBits (uint64 (_afgf .LogSBStrips ),2);_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _afba int ;if _afgf .UseRefinement {_afba =1;};if _fgafc =_egge .WriteBit (_afba );_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074");};_afba =0;if _afgf .IsHuffmanEncoded {_afba =1;};if _fgafc =_egge .WriteBit (_afba );_fgafc !=nil {return _cbddg ,_bb .Wrap (_fgafc ,_abfdg ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_cbddg =2;return _cbddg ,nil ;};func (_ggbf *TableSegment )HtOOB ()int32 {return _ggbf ._egag };type Regioner interface{GetRegionBitmap ()(*_cg .Bitmap ,error );GetRegionInfo ()*RegionSegment ;};func (_cccg *TextRegion )readAmountOfSymbolInstances ()error {_eegg ,_dfgc :=_cccg ._efad .ReadBits (32);if _dfgc !=nil {return _dfgc ;};_cccg .NumberOfSymbolInstances =uint32 (_eegg &_c .MaxUint32 );_gcaf :=_cccg .RegionInfo .BitmapWidth *_cccg .RegionInfo .BitmapHeight ;if _gcaf < _cccg .NumberOfSymbolInstances {_g .Log .Debug ("\u004c\u0069\u006d\u0069t\u0069\u006e\u0067\u0020t\u0068\u0065\u0020n\u0075\u006d\u0062\u0065\u0072\u0020o\u0066\u0020d\u0065\u0063\u006f\u0064e\u0064\u0020\u0073\u0079m\u0062\u006f\u006c\u0020\u0069n\u0073\u0074\u0061\u006e\u0063\u0065\u0073 \u0074\u006f\u0020\u006f\u006ee\u0020\u0070\u0065\u0072\u0020\u0070\u0069\u0078\u0065l\u0020\u0028\u0020\u0025\u0064\u0020\u0069\u006e\u0073\u0074\u0065\u0061\u0064\u0020\u006f\u0066\u0020\u0025\u0064\u0029",_gcaf ,_cccg .NumberOfSymbolInstances );_cccg .NumberOfSymbolInstances =_gcaf ;};return nil ;};func (_acff *TextRegion )decodeDT ()(_bcef int64 ,_bdga error ){if _acff .IsHuffmanEncoded {if _acff .SbHuffDT ==3{_bcef ,_bdga =_acff ._dbebb .Decode (_acff ._efad );if _bdga !=nil {return 0,_bdga ;};}else {var _aadce _cf .Tabler ;_aadce ,_bdga =_cf .GetStandardTable (11+int (_acff .SbHuffDT ));if _bdga !=nil {return 0,_bdga ;};_bcef ,_bdga =_aadce .Decode (_acff ._efad );if _bdga !=nil {return 0,_bdga ;};};}else {var _bac int32 ;_bac ,_bdga =_acff ._dfcb .DecodeInt (_acff ._aafc );if _bdga !=nil {return ;};_bcef =int64 (_bac );};_bcef *=int64 (_acff .SbStrips );return _bcef ,nil ;};func (_geee *RegionSegment )Encode (w _fg .BinaryWriter )(_abce int ,_cbgg error ){const _acgc ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";_cbfd :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_cbfd ,_geee .BitmapWidth );_abce ,_cbgg =w .Write (_cbfd );if _cbgg !=nil {return 0,_bb .Wrap (_cbgg ,_acgc ,"\u0057\u0069\u0064t\u0068");};_ec .BigEndian .PutUint32 (_cbfd ,_geee .BitmapHeight );var _cdfa int ;_cdfa ,_cbgg =w .Write (_cbfd );if _cbgg !=nil {return 0,_bb .Wrap (_cbgg ,_acgc ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_abce +=_cdfa ;_ec .BigEndian .PutUint32 (_cbfd ,_geee .XLocation );_cdfa ,_cbgg =w .Write (_cbfd );if _cbgg !=nil {return 0,_bb .Wrap (_cbgg ,_acgc ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn");};_abce +=_cdfa ;_ec .BigEndian .PutUint32 (_cbfd ,_geee .YLocation );_cdfa ,_cbgg =w .Write (_cbfd );if _cbgg !=nil {return 0,_bb .Wrap (_cbgg ,_acgc ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_abce +=_cdfa ;if _cbgg =w .WriteByte (byte (_geee .CombinaionOperator )&0x07);_cbgg !=nil {return 0,_bb .Wrap (_cbgg ,_acgc ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_abce ++;return _abce ,nil ;};const (ORandom OrganizationType =iota ;OSequential ;);func (_eaab *PageInformationSegment )readIsLossless ()error {_bgbe ,_afd :=_eaab ._dgbe .ReadBit ();if _afd !=nil {return _afd ;};if _bgbe ==1{_eaab .IsLossless =true ;};return nil ;};func (_gecfg *SymbolDictionary )setRefinementAtPixels ()error {if !_gecfg .UseRefinementAggregation ||_gecfg .SdrTemplate !=0{return nil ;};if _fcff :=_gecfg .readRefinementAtPixels (2);_fcff !=nil {return _fcff ;};return nil ;};func (_fdag *SymbolDictionary )addSymbol (_dgef Regioner )error {_gacbc ,_gdda :=_dgef .GetRegionBitmap ();if _gdda !=nil {return _gdda ;};_fdag ._baag [_fdag ._abbcb ]=_gacbc ;_fdag ._aafe =append (_fdag ._aafe ,_gacbc );_g .Log .Trace ("\u005b\u0053YM\u0042\u004f\u004c \u0044\u0049\u0043\u0054ION\u0041RY\u005d\u0020\u0041\u0064\u0064\u0065\u0064 s\u0079\u006d\u0062\u006f\u006c\u003a\u0020%\u0073",_gacbc );return nil ;};func (_ddda *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_bgfe int ;_badbf int32 ;_dabf error ;_bafb =int32 (_ddda ._eaaf +_ddda .NumberOfNewSymbols );_aabbd =make ([]int ,_bafb ););for _gfdaf :=int32 (0);_gfdaf < _bafb ;_gfdaf +=_badbf {if _ddda .IsHuffmanEncoded {_cbbf ,_dcef :=_cf .GetStandardTable (1);if _dcef !=nil {return nil ,_dcef ;};_adeg ,_dcef :=_cbbf .Decode (_ddda ._cgcf );if _dcef !=nil {return nil ,_dcef ;};_badbf =int32 (_adeg );}else {_badbf ,_dabf =_ddda ._abfd .DecodeInt (_ddda ._fbcb );if _dabf !=nil {return nil ,_dabf ;};};if _badbf !=0{for _aecd :=_gfdaf ;_aecd < _gfdaf +_badbf ;_aecd ++{_aabbd [_aecd ]=_bgfe ;};};if _bgfe ==0{_bgfe =1;}else {_bgfe =0;};};return _aabbd ,nil ;};type templater interface{form (_dgc ,_dcd ,_ege ,_cge ,_eac int16 )int16 ;setIndex (_bad *_ff .DecoderStats );};func (_eedd *TextRegion )blit (_eaea *_cg .Bitmap ,_gcbd int64 )error {if _eedd .IsTransposed ==0&&(_eedd .ReferenceCorner ==2||_eedd .ReferenceCorner ==3){_eedd ._egde +=int64 (_eaea .Width -1);}else if _eedd .IsTransposed ==1&&(_eedd .ReferenceCorner ==0||_eedd .ReferenceCorner ==2){_eedd ._egde +=int64 (_eaea .Height -1);};_cec :=_eedd ._egde ;if _eedd .IsTransposed ==1{_cec ,_gcbd =_gcbd ,_cec ;};switch _eedd .ReferenceCorner {case 0:_gcbd -=int64 (_eaea .Height -1);case 2:_gcbd -=int64 (_eaea .Height -1);_cec -=int64 (_eaea .Width -1);case 3:_cec -=int64 (_eaea .Width -1);};_feaa :=_cg .Blit (_eaea ,_eedd .RegionBitmap ,int (_cec ),int (_gcbd ),_eedd .CombinationOperator );if _feaa !=nil {return _feaa ;};if _eedd .IsTransposed ==0&&(_eedd .ReferenceCorner ==0||_eedd .ReferenceCorner ==1){_eedd ._egde +=int64 (_eaea .Width -1);};if _eedd .IsTransposed ==1&&(_eedd .ReferenceCorner ==1||_eedd .ReferenceCorner ==3){_eedd ._egde +=int64 (_eaea .Height -1);};return nil ;};type GenericRefinementRegion struct{_dde templater ;_eg templater ;_ga _fg .StreamReader ;_cd *Header ;RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_cg .Bitmap ;ReferenceBitmap *_cg .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_fc *_ff .Decoder ;_fe *_ff .DecoderStats ;_dc bool ;_fd []bool ;};func (_dbe *GenericRefinementRegion )parseHeader ()(_aaf error ){_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072s\u0069\u006e\u0067\u0020\u0048e\u0061\u0064e\u0072\u002e\u002e\u002e");_acd :=_f .Now ();defer func (){if _aaf ==nil {_g .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045G\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020h\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0069\u006e\u0069\u0073\u0068id\u0020\u0069\u006e\u003a\u0020\u0025\u0064\u0020\u006e\u0073",_f .Since (_acd ).Nanoseconds ());}else {_g .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0073",_aaf );};}();if _aaf =_dbe .RegionInfo .parseHeader ();_aaf !=nil {return _aaf ;};_ ,_aaf =_dbe ._ga .ReadBits (6);if _aaf !=nil {return _aaf ;};_dbe .IsTPGROn ,_aaf =_dbe ._ga .ReadBool ();if _aaf !=nil {return _aaf ;};var _bab int ;_bab ,_aaf =_dbe ._ga .ReadBit ();if _aaf !=nil {return _aaf ;};_dbe .TemplateID =int8 (_bab );switch _dbe .TemplateID {case 0:_dbe .Template =_dbe ._dde ;if _aaf =_dbe .readAtPixels ();_aaf !=nil {return ;};case 1:_dbe .Template =_dbe ._eg ;};return nil ;};func (_cadf *SymbolDictionary )decodeNewSymbols (_gbeb ,_aegde uint32 ,_efegg *_cg .Bitmap ,_dacbc ,_ebgg int32 )error {if _cadf ._gfg ==nil {_cadf ._gfg =_fafe (_cadf ._cgcf ,nil );if _cadf ._abfd ==nil {var _ebfbf error ;_cadf ._abfd ,_ebfbf =_ff .New (_cadf ._cgcf );if _ebfbf !=nil {return _ebfbf ;};};if _cadf ._dgbg ==nil {_cadf ._dgbg =_ff .NewStats (65536,1);};};_cadf ._gfg .setParameters (_cadf ._dgbg ,_cadf ._abfd ,_cadf .SdrTemplate ,_gbeb ,_aegde ,_efegg ,_dacbc ,_ebgg ,false ,_cadf .SdrATX ,_cadf .SdrATY );return _cadf .addSymbol (_cadf ._gfg );};func (_eabcc *PageInformationSegment )encodeFlags (_gddf _fg .BinaryWriter )(_gcfe error ){const _cegeb ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _gcfe =_gddf .SkipBits (1);_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _bdfd int ;if _eabcc .CombinationOperatorOverrideAllowed (){_bdfd =1;};if _gcfe =_gddf .WriteBit (_bdfd );_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u006f\u0076\u0065\u0072\u0072\u0069\u0064\u0064\u0065\u006e");};_bdfd =0;if _eabcc ._ddac {_bdfd =1;};if _gcfe =_gddf .WriteBit (_bdfd );_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _gcfe =_gddf .WriteBit ((int (_eabcc ._dgcae )>>1)&0x01);_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0063\u006f\u006d\u0062\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006f\u0070\u0065\u0072\u0061\u0074o\u0072\u0020\u0066\u0069\u0072\u0073\u0074\u0020\u0062\u0069\u0074");};if _gcfe =_gddf .WriteBit (int (_eabcc ._dgcae )&0x01);_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u0073\u0065\u0063\u006f\u006e\u0064\u0020\u0062\u0069\u0074");};_bdfd =int (_eabcc ._adab );if _gcfe =_gddf .WriteBit (_bdfd );_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_bdfd =0;if _eabcc ._fcbdg {_bdfd =1;};if _gcfe =_gddf .WriteBit (_bdfd );_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_bdfd =0;if _eabcc .IsLossless {_bdfd =1;};if _gcfe =_gddf .WriteBit (_bdfd );_gcfe !=nil {return _bb .Wrap (_gcfe ,_cegeb ,"p\u0061\u0067\u0065\u0020\u0069\u0073 \u0065\u0076\u0065\u006e\u0074\u0075\u0061\u006c\u006cy\u0020\u006c\u006fs\u0073l\u0065\u0073\u0073");};return nil ;};func _eda (_effeg _fg .StreamReader ,_eadgc *Header )*TextRegion {_gead :=&TextRegion {_efad :_effeg ,Header :_eadgc ,RegionInfo :NewRegionSegment (_effeg )};return _gead ;};func (_acbf *SymbolDictionary )decodeThroughTextRegion (_eacbd ,_cdeab ,_gdbae uint32 )error {if _acbf ._aebe ==nil {_acbf ._aebe =_eda (_acbf ._cgcf ,nil );_acbf ._aebe .setContexts (_acbf ._dgbg ,_ff .NewStats (512,1),_ff .NewStats (512,1),_ff .NewStats (512,1),_ff .NewStats (512,1),_acbf ._degd ,_ff .NewStats (512,1),_ff .NewStats (512,1),_ff .NewStats (512,1),_ff .NewStats (512,1));};if _fggce :=_acbf .setSymbolsArray ();_fggce !=nil {return _fggce ;};_acbf ._aebe .setParameters (_acbf ._abfd ,_acbf .IsHuffmanEncoded ,true ,_eacbd ,_cdeab ,_gdbae ,1,_acbf ._eaaf +_acbf ._abbcb ,0,0,0,1,0,0,0,0,0,0,0,0,0,_acbf .SdrTemplate ,_acbf .SdrATX ,_acbf .SdrATY ,_acbf ._aafe ,_acbf ._fbee );return _acbf .addSymbol (_acbf ._aebe );};func (_bca *HalftoneRegion )renderPattern (_cbb [][]int )(_fdg error ){var _eggba ,_bgg int ;for _gfb :=0;_gfb < int (_bca .HGridHeight );_gfb ++{for _dbfe :=0;_dbfe < int (_bca .HGridWidth );_dbfe ++{_eggba =_bca .computeX (_gfb ,_dbfe );_bgg =_bca .computeY (_gfb ,_dbfe );_ebg :=_bca .Patterns [_cbb [_gfb ][_dbfe ]];if _fdg =_cg .Blit (_ebg ,_bca .HalftoneRegionBitmap ,_eggba +int (_bca .HGridX ),_bgg +int (_bca .HGridY ),_bca .CombinationOperator );_fdg !=nil {return _fdg ;};};};return nil ;};func (_bcgc *TextRegion )decodeDfs ()(int64 ,error ){if _bcgc .IsHuffmanEncoded {if _bcgc .SbHuffFS ==3{if _bcgc ._ccdc ==nil {var _fee error ;_bcgc ._ccdc ,_fee =_bcgc .getUserTable (0);if _fee !=nil {return 0,_fee ;};};return _bcgc ._ccdc .Decode (_bcgc ._efad );};_bbec ,_gafb :=_cf .GetStandardTable (6+int (_bcgc .SbHuffFS ));if _gafb !=nil {return 0,_gafb ;};return _bbec .Decode (_bcgc ._efad );};_abgb ,_eddff :=_bcgc ._dfcb .DecodeInt (_bcgc ._dafe );if _eddff !=nil {return 0,_eddff ;};return int64 (_abgb ),nil ;};func (_acbfe *SymbolDictionary )decodeRefinedSymbol (_eggc ,_gfce uint32 )error {var (_eabca int ;_fgcb ,_afcc int32 ;);if _acbfe .IsHuffmanEncoded {_ceeg ,_abee :=_acbfe ._cgcf .ReadBits (byte (_acbfe ._fbee ));if _abee !=nil {return _abee ;};_eabca =int (_ceeg );_ffafe ,_abee :=_cf .GetStandardTable (15);if _abee !=nil {return _abee ;};_fadc ,_abee :=_ffafe .Decode (_acbfe ._cgcf );if _abee !=nil {return _abee ;};_fgcb =int32 (_fadc );_fadc ,_abee =_ffafe .Decode (_acbfe ._cgcf );if _abee !=nil {return _abee ;};_afcc =int32 (_fadc );_ffafe ,_abee =_cf .GetStandardTable (1);if _abee !=nil {return _abee ;};if _ ,_abee =_ffafe .Decode (_acbfe ._cgcf );_abee !=nil {return _abee ;};_acbfe ._cgcf .Align ();}else {_cedeg ,_cdeb :=_acbfe ._abfd .DecodeIAID (uint64 (_acbfe ._fbee ),_acbfe ._degd );if _cdeb !=nil {return _cdeb ;};_eabca =int (_cedeg );_fgcb ,_cdeb =_acbfe ._abfd .DecodeInt (_acbfe ._dbff );if _cdeb !=nil {return _cdeb ;};_afcc ,_cdeb =_acbfe ._abfd .DecodeInt (_acbfe ._bdg );if _cdeb !=nil {return _cdeb ;};};if _eabg :=_acbfe .setSymbolsArray ();_eabg !=nil {return _eabg ;};_cebfg :=_acbfe ._aafe [_eabca ];if _gbdf :=_acbfe .decodeNewSymbols (_eggc ,_gfce ,_cebfg ,_fgcb ,_afcc );_gbdf !=nil {return _gbdf ;};if _acbfe .IsHuffmanEncoded {_acbfe ._cgcf .Align ();};return nil ;};func (_ccef *SymbolDictionary )readNumberOfNewSymbols ()error {_dccf ,_bage :=_ccef ._cgcf .ReadBits (32);if _bage !=nil {return _bage ;};_ccef .NumberOfNewSymbols =uint32 (_dccf &_c .MaxUint32 );return nil ;};func (_faea *TextRegion )GetRegionInfo ()*RegionSegment {return _faea .RegionInfo };func (_dfgb *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _dfgb ._dbee ==nil {var (_agba int ;_afda error ;);if _dfgb .SdHuffDecodeHeightSelection ==3{_agba ++;};if _dfgb .SdHuffDecodeWidthSelection ==3{_agba ++;};_dfgb ._dbee ,_afda =_dfgb .getUserTable (_agba );if _afda !=nil {return 0,_afda ;};};return _dfgb ._dbee .Decode (_dfgb ._cgcf );};const BorderSize =6;func (_bfac *PatternDictionary )extractPatterns (_fgaf *_cg .Bitmap )error {var _ebaed int ;_cca :=make ([]*_cg .Bitmap ,_bfac .GrayMax +1);for _ebaed <=int (_bfac .GrayMax ){_cdaa :=int (_bfac .HdpWidth )*_ebaed ;_bebbc :=_e .Rect (_cdaa ,0,_cdaa +int (_bfac .HdpWidth ),int (_bfac .HdpHeight ));_bcab ,_decg :=_cg .Extract (_bebbc ,_fgaf );if _decg !=nil {return _decg ;};_cca [_ebaed ]=_bcab ;_ebaed ++;};_bfac .Patterns =_cca ;return nil ;};func (_egbf *Header )subInputReader ()(_fg .StreamReader ,error ){return _fg .NewSubstreamReader (_egbf .Reader ,_egbf .SegmentDataStartOffset ,_egbf .SegmentDataLength );};func (_ddec *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _cfcg ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _ddec .SbHuffRSize ==0{_bdae ,_gbae :=_cf .GetStandardTable (1);if _gbae !=nil {return 0,_bb .Wrap (_gbae ,_cfcg ,"");};return _bdae .Decode (_ddec ._efad );};if _ddec ._egab ==nil {var (_cgfd int ;_gca error ;);if _ddec .SbHuffFS ==3{_cgfd ++;};if _ddec .SbHuffDS ==3{_cgfd ++;};if _ddec .SbHuffDT ==3{_cgfd ++;};if _ddec .SbHuffRDWidth ==3{_cgfd ++;};if _ddec .SbHuffRDHeight ==3{_cgfd ++;};if _ddec .SbHuffRDX ==3{_cgfd ++;};if _ddec .SbHuffRDY ==3{_cgfd ++;};_ddec ._egab ,_gca =_ddec .getUserTable (_cgfd );if _gca !=nil {return 0,_bb .Wrap (_gca ,_cfcg ,"");};};_accfg ,_dfba :=_ddec ._egab .Decode (_ddec ._efad );if _dfba !=nil {return 0,_bb .Wrap (_dfba ,_cfcg ,"");};return _accfg ,nil ;};func _dgdg (_abg int )int {if _abg ==0{return 0;};_abg |=_abg >>1;_abg |=_abg >>2;_abg |=_abg >>4;_abg |=_abg >>8;_abg |=_abg >>16;return (_abg +1)>>1;};const (TSymbolDictionary Type =0;TIntermediateTextRegion Type =4;TImmediateTextRegion Type =6;TImmediateLosslessTextRegion Type =7;TPatternDictionary Type =16;TIntermediateHalftoneRegion Type =20;TImmediateHalftoneRegion Type =22;TImmediateLosslessHalftoneRegion Type =23;TIntermediateGenericRegion Type =36;TImmediateGenericRegion Type =38;TImmediateLosslessGenericRegion Type =39;TIntermediateGenericRefinementRegion Type =40;TImmediateGenericRefinementRegion Type =42;TImmediateLosslessGenericRefinementRegion Type =43;TPageInformation Type =48;TEndOfPage Type =49;TEndOfStrip Type =50;TEndOfFile Type =51;TProfiles Type =52;TTables Type =53;TExtension Type =62;TBitmap Type =70;);func (_fegdd *SymbolDictionary )getSymbol (_fbcf int )(*_cg .Bitmap ,error ){const _bfad ="\u0067e\u0074\u0053\u0079\u006d\u0062\u006fl";_cedc ,_fefbg :=_fegdd ._bbda .GetBitmap (_fegdd ._dfbe [_fbcf ]);if _fefbg !=nil {return nil ,_bb .Wrap (_fefbg ,_bfad ,"\u0063\u0061n\u0027\u0074\u0020g\u0065\u0074\u0020\u0073\u0079\u006d\u0062\u006f\u006c");};return _cedc ,nil ;};func (_fcag *PageInformationSegment )readWidthAndHeight ()error {_fbf ,_cffg :=_fcag ._dgbe .ReadBits (32);if _cffg !=nil {return _cffg ;};_fcag .PageBMWidth =int (_fbf &_c .MaxInt32 );_fbf ,_cffg =_fcag ._dgbe .ReadBits (32);if _cffg !=nil {return _cffg ;};_fcag .PageBMHeight =int (_fbf &_c .MaxInt32 );return nil ;};type EncodeInitializer interface{InitEncode ();};func _fafe (_ffeb _fg .StreamReader ,_bfdg *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_ga :_ffeb ,RegionInfo :NewRegionSegment (_ffeb ),_cd :_bfdg ,_dde :&template0 {},_eg :&template1 {}};};func (_defc *Header )readHeaderLength (_eace _fg .StreamReader ,_adgd int64 ){_defc .HeaderLength =_eace .StreamPosition ()-_adgd ;};func (_ggag *GenericRegion )getPixel (_fbc ,_dbeb int )int8 {if _fbc < 0||_fbc >=_ggag .Bitmap .Width {return 0;};if _dbeb < 0||_dbeb >=_ggag .Bitmap .Height {return 0;};if _ggag .Bitmap .GetPixel (_fbc ,_dbeb ){return 1;};return 0;};func (_cc *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_dba ,_af ,_fge ,_cac ,_aaa ,_bdb ,_aga ,_ced ,_cee int )error {var (_df ,_dcg ,_be ,_fcg ,_abfe ,_ebe int ;_aff byte ;_aba error ;);if _dba > 0{_aff ,_aba =_cc .RegionBitmap .GetByte (_aga -_fge );if _aba !=nil {return _aba ;};_be =int (_aff );};if _ced > 0&&_ced <=_cc .ReferenceBitmap .Height {_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee -_cac +_bdb );if _aba !=nil {return _aba ;};_fcg =int (_aff )<<4;};if _ced >=0&&_ced < _cc .ReferenceBitmap .Height {_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee +_bdb );if _aba !=nil {return _aba ;};_abfe =int (_aff )<<1;};if _ced > -2&&_ced < _cc .ReferenceBitmap .Height -1{_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee +_cac +_bdb );if _aba !=nil {return _aba ;};_ebe =int (_aff );};_df =((_be >>5)&0x6)|((_ebe >>2)&0x30)|(_abfe &0x180)|(_fcg &0xc00);var _baec int ;for _aag :=0;_aag < _aaa ;_aag =_baec {var _ffa int ;_baec =_aag +8;var _bgf int ;if _bgf =_af -_aag ;_bgf > 8{_bgf =8;};_gaa :=_baec < _af ;_edb :=_baec < _cc .ReferenceBitmap .Width ;_gc :=_bdb +1;if _dba > 0{_aff =0;if _gaa {_aff ,_aba =_cc .RegionBitmap .GetByte (_aga -_fge +1);if _aba !=nil {return _aba ;};};_be =(_be <<8)|int (_aff );};if _ced > 0&&_ced <=_cc .ReferenceBitmap .Height {var _gbb int ;if _edb {_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee -_cac +_gc );if _aba !=nil {return _aba ;};_gbb =int (_aff )<<4;};_fcg =(_fcg <<8)|_gbb ;};if _ced >=0&&_ced < _cc .ReferenceBitmap .Height {var _dfa int ;if _edb {_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee +_gc );if _aba !=nil {return _aba ;};_dfa =int (_aff )<<1;};_abfe =(_abfe <<8)|_dfa ;};if _ced > -2&&_ced < (_cc .ReferenceBitmap .Height -1){_aff =0;if _edb {_aff ,_aba =_cc .ReferenceBitmap .GetByte (_cee +_cac +_gc );if _aba !=nil {return _aba ;};};_ebe =(_ebe <<8)|int (_aff );};for _de :=0;_de < _bgf ;_de ++{var _bafd int ;_abb :=false ;_bcf :=(_df >>4)&0x1ff;if _bcf ==0x1ff{_abb =true ;_bafd =1;}else if _bcf ==0x00{_abb =true ;};if !_abb {if _cc ._dc {_dcg =_cc .overrideAtTemplate0 (_df ,_aag +_de ,_dba ,_ffa ,_de );_cc ._fe .SetIndex (int32 (_dcg ));}else {_cc ._fe .SetIndex (int32 (_df ));};_bafd ,_aba =_cc ._fc .DecodeBit (_cc ._fe );if _aba !=nil {return _aba ;};};_ac :=uint (7-_de );_ffa |=int (_bafd <<_ac );_df =((_df &0xdb6)<<1)|_bafd |(_be >>_ac +5)&0x002|((_ebe >>_ac +2)&0x010)|((_abfe >>_ac )&0x080)|((_fcg >>_ac )&0x400);};_aba =_cc .RegionBitmap .SetByte (_aga ,byte (_ffa ));if _aba !=nil {return _aba ;};_aga ++;_cee ++;};return nil ;};var _ _cf .BasicTabler =&TableSegment {};func (_fdfd *TextRegion )createRegionBitmap ()error {_fdfd .RegionBitmap =_cg .New (int (_fdfd .RegionInfo .BitmapWidth ),int (_fdfd .RegionInfo .BitmapHeight ));if _fdfd .DefaultPixel !=0{_fdfd .RegionBitmap .SetDefaultPixel ();};return nil ;};func (_gecg *TextRegion )decodeRI ()(int64 ,error ){if !_gecg .UseRefinement {return 0,nil ;};if _gecg .IsHuffmanEncoded {_abda ,_fgbf :=_gecg ._efad .ReadBit ();return int64 (_abda ),_fgbf ;};_gdcf ,_abfg :=_gecg ._dfcb .DecodeInt (_gecg ._bcaa );return int64 (_gdcf ),_abfg ;};func (_feda *HalftoneRegion )checkInput ()error {if _feda .IsMMREncoded {if _feda .HTemplate !=0{_g .Log .Debug ("\u0048\u0054\u0065\u006d\u0070l\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030",_feda .HTemplate );};if _feda .HSkipEnabled {_g .Log .Debug ("\u0048\u0053\u006b\u0069\u0070\u0045\u006e\u0061\u0062\u006c\u0065\u0064\u0020\u0030\u0020\u0025\u0076\u0020(\u0073\u0068\u006f\u0075\u006c\u0064\u0020c\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020v\u0061\u006c\u0075\u0065\u0020\u0066\u0061\u006c\u0073\u0065\u0029",_feda .HSkipEnabled );};};return nil ;};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ;PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader _fg .StreamReader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_ffca *GenericRegion )setParametersMMR (_bbce bool ,_bffg ,_adac int64 ,_cgaf ,_aeba uint32 ,_gdba byte ,_egbc ,_fdbe bool ,_ggaa ,_eag []int8 ){_ffca .DataOffset =_bffg ;_ffca .DataLength =_adac ;_ffca .RegionSegment =&RegionSegment {};_ffca .RegionSegment .BitmapHeight =_cgaf ;_ffca .RegionSegment .BitmapWidth =_aeba ;_ffca .GBTemplate =_gdba ;_ffca .IsMMREncoded =_bbce ;_ffca .IsTPGDon =_egbc ;_ffca .GBAtX =_ggaa ;_ffca .GBAtY =_eag ;};func (_cedf *TextRegion )symbolIDCodeLengths ()error {var (_aaef []*_cf .Code ;_gcff uint64 ;_bbfc _cf .Tabler ;_ebb error ;);for _dddfd :=0;_dddfd < 35;_dddfd ++{_gcff ,_ebb =_cedf ._efad .ReadBits (4);if _ebb !=nil {return _ebb ;};_cecg :=int (_gcff &0xf);if _cecg > 0{_aaef =append (_aaef ,_cf .NewCode (int32 (_cecg ),0,int32 (_dddfd ),false ));};};_bbfc ,_ebb =_cf .NewFixedSizeTable (_aaef );if _ebb !=nil {return _ebb ;};var (_fcbg int64 ;_aaadb uint32 ;_edeb []*_cf .Code ;_fcec int64 ;);for _aaadb < _cedf .NumberOfSymbols {_fcec ,_ebb =_bbfc .Decode (_cedf ._efad );if _ebb !=nil {return _ebb ;};if _fcec < 32{if _fcec > 0{_edeb =append (_edeb ,_cf .NewCode (int32 (_fcec ),0,int32 (_aaadb ),false ));};_fcbg =_fcec ;_aaadb ++;}else {var _bdddg ,_dbffc int64 ;switch _fcec {case 32:_gcff ,_ebb =_cedf ._efad .ReadBits (2);if _ebb !=nil {return _ebb ;};_bdddg =3+int64 (_gcff );if _aaadb > 0{_dbffc =_fcbg ;};case 33:_gcff ,_ebb =_cedf ._efad .ReadBits (3);if _ebb !=nil {return _ebb ;};_bdddg =3+int64 (_gcff );case 34:_gcff ,_ebb =_cedf ._efad .ReadBits (7);if _ebb !=nil {return _ebb ;};_bdddg =11+int64 (_gcff );};for _aaab :=0;_aaab < int (_bdddg );_aaab ++{if _dbffc > 0{_edeb =append (_edeb ,_cf .NewCode (int32 (_dbffc ),0,int32 (_aaadb ),false ));};_aaadb ++;};};};_cedf ._efad .Align ();_cedf ._fbg ,_ebb =_cf .NewFixedSizeTable (_edeb );return _ebb ;};var _ templater =&template0 {};func (_cadg *SymbolDictionary )getUserTable (_fba int )(_cf .Tabler ,error ){var _caed int ;for _ ,_ggdg :=range _cadg .Header .RTSegments {if _ggdg .Type ==53{if _caed ==_fba {_agg ,_cbef :=_ggdg .GetSegmentData ();if _cbef !=nil {return nil ,_cbef ;};_faeb :=_agg .(_cf .BasicTabler );return _cf .NewEncodedTable (_faeb );};_caed ++;};};return nil ,nil ;};func (_gbffe *Header )readSegmentPageAssociation (_fff Documenter ,_dfg _fg .StreamReader ,_cgc uint64 ,_cege ...int )(_cegef error ){const _fdgd ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074P\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061t\u0069\u006f\u006e";if !_gbffe .PageAssociationFieldSize {_bgec ,_gcce :=_dfg .ReadBits (8);if _gcce !=nil {return _bb .Wrap (_gcce ,_fdgd ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_gbffe .PageAssociation =int (_bgec &0xFF);}else {_cdfg ,_fefe :=_dfg .ReadBits (32);if _fefe !=nil {return _bb .Wrap (_fefe ,_fdgd ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_gbffe .PageAssociation =int (_cdfg &_c .MaxInt32 );};if _cgc ==0{return nil ;};if _gbffe .PageAssociation !=0{_gcfa ,_gbfe :=_fff .GetPage (_gbffe .PageAssociation );if _gbfe !=nil {return _bb .Wrap (_gbfe ,_fdgd ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _eaga int ;for _bedd :=uint64 (0);_bedd < _cgc ;_bedd ++{_eaga =_cege [_bedd ];_gbffe .RTSegments [_bedd ],_gbfe =_gcfa .GetSegment (_eaga );if _gbfe !=nil {var _aecf error ;_gbffe .RTSegments [_bedd ],_aecf =_fff .GetGlobalSegment (_eaga );if _aecf !=nil {return _bb .Wrapf (_gbfe ,_fdgd ,"\u0072\u0065\u0066\u0065\u0072\u0065n\u0063\u0065\u0020s\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064\u0020\u0061\u0074\u0020pa\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0072\u0020\u0069\u006e\u0020\u0067\u006c\u006f\u0062\u0061\u006c\u0073",_gbffe .PageAssociation );};};};return nil ;};for _adc :=uint64 (0);_adc < _cgc ;_adc ++{_gbffe .RTSegments [_adc ],_cegef =_fff .GetGlobalSegment (_cege [_adc ]);if _cegef !=nil {return _bb .Wrapf (_cegef ,_fdgd ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u003a\u0020\u0027\u0025d\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_cege [_adc ]);};};return nil ;};func (_gcfec *SymbolDictionary )setRetainedCodingContexts (_cgbf *SymbolDictionary ){_gcfec ._abfd =_cgbf ._abfd ;_gcfec .IsHuffmanEncoded =_cgbf .IsHuffmanEncoded ;_gcfec .UseRefinementAggregation =_cgbf .UseRefinementAggregation ;_gcfec .SdTemplate =_cgbf .SdTemplate ;_gcfec .SdrTemplate =_cgbf .SdrTemplate ;_gcfec .SdATX =_cgbf .SdATX ;_gcfec .SdATY =_cgbf .SdATY ;_gcfec .SdrATX =_cgbf .SdrATX ;_gcfec .SdrATY =_cgbf .SdrATY ;_gcfec ._dgbg =_cgbf ._dgbg ;};func (_caec *GenericRegion )decodeSLTP ()(int ,error ){switch _caec .GBTemplate {case 0:_caec ._ggc .SetIndex (0x9B25);case 1:_caec ._ggc .SetIndex (0x795);case 2:_caec ._ggc .SetIndex (0xE5);case 3:_caec ._ggc .SetIndex (0x195);};return _caec ._gag .DecodeBit (_caec ._ggc );};func (_aegdg *PageInformationSegment )CombinationOperator ()_cg .CombinationOperator {return _aegdg ._dgcae ;};func (_da *EndOfStripe )Init (h *Header ,r _fg .StreamReader )error {_da ._eb =r ;return _da .parseHeader (h ,r );};func (_gdeb *GenericRegion )Init (h *Header ,r _fg .StreamReader )error {_gdeb .RegionSegment =NewRegionSegment (r );_gdeb ._cgde =r ;return _gdeb .parseHeader ();};func (_aa *GenericRefinementRegion )decodeOptimized (_eec ,_egg ,_gbe ,_cgb ,_bf ,_bfd ,_ef int )error {var (_dbb error ;_fgf int ;_ceg int ;);_bba :=_eec -int (_aa .ReferenceDY );if _ecd :=int (-_aa .ReferenceDX );_ecd > 0{_fgf =_ecd ;};_efe :=_aa .ReferenceBitmap .GetByteIndex (_fgf ,_bba );if _aa .ReferenceDX > 0{_ceg =int (_aa .ReferenceDX );};_faf :=_aa .RegionBitmap .GetByteIndex (_ceg ,_eec );switch _aa .TemplateID {case 0:_dbb =_aa .decodeTemplate (_eec ,_egg ,_gbe ,_cgb ,_bf ,_bfd ,_ef ,_faf ,_bba ,_efe ,_aa ._dde );case 1:_dbb =_aa .decodeTemplate (_eec ,_egg ,_gbe ,_cgb ,_bf ,_bfd ,_ef ,_faf ,_bba ,_efe ,_aa ._eg );};return _dbb ;};func (_ceaa *TableSegment )HtRS ()int32 {return _ceaa ._eafa };func (_aca *GenericRefinementRegion )String ()string {_gee :=&_bd .Builder {};_gee .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_gee .WriteString (_aca .RegionInfo .String ()+"\u000a");_gee .WriteString (_a .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_aca .IsTPGROn ));_gee .WriteString (_a .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_aca .TemplateID ));_gee .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_aca .GrAtX ));_gee .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_aca .GrAtY ));_gee .WriteString (_a .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_aca .ReferenceDX ));_gee .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_aca .ReferenceDY ));return _gee .String ();};func (_cdddg *SymbolDictionary )decodeHeightClassBitmap (_abdg *_cg .Bitmap ,_aacg int64 ,_cddcf int ,_badb []int )error {for _eeda :=_aacg ;_eeda < int64 (_cdddg ._abbcb );_eeda ++{var _bcgd int ;for _bggf :=_aacg ;_bggf <=_eeda -1;_bggf ++{_bcgd +=_badb [_bggf ];};_ccce :=_e .Rect (_bcgd ,0,_bcgd +_badb [_eeda ],_cddcf );_dag ,_aace :=_cg .Extract (_ccce ,_abdg );if _aace !=nil {return _aace ;};_cdddg ._baag [_eeda ]=_dag ;_cdddg ._aafe =append (_cdddg ._aafe ,_dag );};return nil ;};func (_fag *HalftoneRegion )computeX (_ggd ,_aef int )int {return _fag .shiftAndFill (int (_fag .HGridX )+_ggd *int (_fag .HRegionY )+_aef *int (_fag .HRegionX ));};func (_cgga *HalftoneRegion )parseHeader ()error {if _ebcd :=_cgga .RegionSegment .parseHeader ();_ebcd !=nil {return _ebcd ;};_cefg ,_beefc :=_cgga ._bgbb .ReadBit ();if _beefc !=nil {return _beefc ;};_cgga .HDefaultPixel =int8 (_cefg );_bga ,_beefc :=_cgga ._bgbb .ReadBits (3);if _beefc !=nil {return _beefc ;};_cgga .CombinationOperator =_cg .CombinationOperator (_bga &0xf);_cefg ,_beefc =_cgga ._bgbb .ReadBit ();if _beefc !=nil {return _beefc ;};if _cefg ==1{_cgga .HSkipEnabled =true ;};_bga ,_beefc =_cgga ._bgbb .ReadBits (2);if _beefc !=nil {return _beefc ;};_cgga .HTemplate =byte (_bga &0xf);_cefg ,_beefc =_cgga ._bgbb .ReadBit ();if _beefc !=nil {return _beefc ;};if _cefg ==1{_cgga .IsMMREncoded =true ;};_bga ,_beefc =_cgga ._bgbb .ReadBits (32);if _beefc !=nil {return _beefc ;};_cgga .HGridWidth =uint32 (_bga &_c .MaxUint32 );_bga ,_beefc =_cgga ._bgbb .ReadBits (32);if _beefc !=nil {return _beefc ;};_cgga .HGridHeight =uint32 (_bga &_c .MaxUint32 );_bga ,_beefc =_cgga ._bgbb .ReadBits (32);if _beefc !=nil {return _beefc ;};_cgga .HGridX =int32 (_bga &_c .MaxInt32 );_bga ,_beefc =_cgga ._bgbb .ReadBits (32);if _beefc !=nil {return _beefc ;};_cgga .HGridY =int32 (_bga &_c .MaxInt32 );_bga ,_beefc =_cgga ._bgbb .ReadBits (16);if _beefc !=nil {return _beefc ;};_cgga .HRegionX =uint16 (_bga &_c .MaxUint16 );_bga ,_beefc =_cgga ._bgbb .ReadBits (16);if _beefc !=nil {return _beefc ;};_cgga .HRegionY =uint16 (_bga &_c .MaxUint16 );if _beefc =_cgga .computeSegmentDataStructure ();_beefc !=nil {return _beefc ;};return _cgga .checkInput ();};func (_ceeb *GenericRegion )Encode (w _fg .BinaryWriter )(_gdg int ,_abeg error ){const _geeg ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";if _ceeb .Bitmap ==nil {return 0,_bb .Error (_geeg ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};_acb ,_abeg :=_ceeb .RegionSegment .Encode (w );if _abeg !=nil {return 0,_bb .Wrap (_abeg ,_geeg ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};_gdg +=_acb ;if _abeg =w .SkipBits (4);_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073");};var _fcd int ;if _ceeb .IsTPGDon {_fcd =1;};if _abeg =w .WriteBit (_fcd );_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_fcd =0;if _abeg =w .WriteBit (int (_ceeb .GBTemplate >>1)&0x01);_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074");};if _abeg =w .WriteBit (int (_ceeb .GBTemplate )&0x01);_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _ceeb .UseMMR {_fcd =1;};if _abeg =w .WriteBit (_fcd );_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_gdg ++;if _acb ,_abeg =_ceeb .writeGBAtPixels (w );_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"");};_gdg +=_acb ;_beb :=_ba .New ();if _abeg =_beb .EncodeBitmap (_ceeb .Bitmap ,_ceeb .IsTPGDon );_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"");};_beb .Final ();var _geg int64 ;if _geg ,_abeg =_beb .WriteTo (w );_abeg !=nil {return _gdg ,_bb .Wrap (_abeg ,_geeg ,"");};_gdg +=int (_geg );return _gdg ,nil ;};func (_ddgc *RegionSegment )readCombinationOperator ()error {_efaa ,_fbd :=_ddgc ._dfed .ReadBits (3);if _fbd !=nil {return _fbd ;};_ddgc .CombinaionOperator =_cg .CombinationOperator (_efaa &0xF);return nil ;};func (_gcd *Header )writeSegmentNumber (_deb _fg .BinaryWriter )(_affd int ,_abbfg error ){_baeca :=make ([]byte ,4);_ec .BigEndian .PutUint32 (_baeca ,_gcd .SegmentNumber );if _affd ,_abbfg =_deb .Write (_baeca );_abbfg !=nil {return 0,_bb .Wrap (_abbfg ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");};return _affd ,nil ;};func (_ega *HalftoneRegion )grayScaleDecoding (_gdfe int )([][]int ,error ){var (_fcdc []int8 ;_dcde []int8 ;);if !_ega .IsMMREncoded {_fcdc =make ([]int8 ,4);_dcde =make ([]int8 ,4);if _ega .HTemplate <=1{_fcdc [0]=3;}else if _ega .HTemplate >=2{_fcdc [0]=2;};_dcde [0]=-1;_fcdc [1]=-3;_dcde [1]=-1;_fcdc [2]=2;_dcde [2]=-2;_fcdc [3]=-2;_dcde [3]=-2;};_cacb :=make ([]*_cg .Bitmap ,_gdfe );_edbe :=NewGenericRegion (_ega ._bgbb );_edbe .setParametersMMR (_ega .IsMMREncoded ,_ega .DataOffset ,_ega .DataLength ,_ega .HGridHeight ,_ega .HGridWidth ,_ega .HTemplate ,false ,_ega .HSkipEnabled ,_fcdc ,_dcde );_cce :=_gdfe -1;var _caff error ;_cacb [_cce ],_caff =_edbe .GetRegionBitmap ();if _caff !=nil {return nil ,_caff ;};for _cce > 0{_cce --;_edbe .Bitmap =nil ;_cacb [_cce ],_caff =_edbe .GetRegionBitmap ();if _caff !=nil {return nil ,_caff ;};if _caff =_ega .combineGrayscalePlanes (_cacb ,_cce );_caff !=nil {return nil ,_caff ;};};return _ega .computeGrayScalePlanes (_cacb ,_gdfe );};func (_bebb *PageInformationSegment )DefaultPixelValue ()uint8 {return _bebb ._adab };func (_bbb *TextRegion )checkInput ()error {const _aadc ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074";if !_bbb .UseRefinement {if _bbb .SbrTemplate !=0{_g .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_bbb .SbrTemplate =0;};};if _bbb .SbHuffFS ==2||_bbb .SbHuffRDWidth ==2||_bbb .SbHuffRDHeight ==2||_bbb .SbHuffRDX ==2||_bbb .SbHuffRDY ==2{return _bb .Error (_aadc ,"h\u0075\u0066\u0066\u006d\u0061\u006e \u0066\u006c\u0061\u0067\u0020\u0076a\u006c\u0075\u0065\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074e\u0064");};if !_bbb .UseRefinement {if _bbb .SbHuffRSize !=0{_g .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_bbb .SbHuffRSize =0;};if _bbb .SbHuffRDY !=0{_g .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_bbb .SbHuffRDY =0;};if _bbb .SbHuffRDX !=0{_g .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_bbb .SbHuffRDX =0;};if _bbb .SbHuffRDWidth !=0{_g .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200");_bbb .SbHuffRDWidth =0;};if _bbb .SbHuffRDHeight !=0{_g .Log .Debug ("\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069g\u0068\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0030");_bbb .SbHuffRDHeight =0;};};return nil ;};func (_fb *GenericRegion )GetRegionBitmap ()(_gea *_cg .Bitmap ,_gdf error ){if _fb .Bitmap !=nil {return _fb .Bitmap ,nil ;};if _fb .IsMMREncoded {if _fb ._cdbf ==nil {_fb ._cdbf ,_gdf =_cb .New (_fb ._cgde ,int (_fb .RegionSegment .BitmapWidth ),int (_fb .RegionSegment .BitmapHeight ),_fb .DataOffset ,_fb .DataLength );if _gdf !=nil {return nil ,_gdf ;};};_fb .Bitmap ,_gdf =_fb ._cdbf .UncompressMMR ();return _fb .Bitmap ,_gdf ;};if _gdf =_fb .updateOverrideFlags ();_gdf !=nil {return nil ,_gdf ;};var _bgb int ;if _fb ._gag ==nil {_fb ._gag ,_gdf =_ff .New (_fb ._cgde );if _gdf !=nil {return nil ,_gdf ;};};if _fb ._ggc ==nil {_fb ._ggc =_ff .NewStats (65536,1);};_fb .Bitmap =_cg .New (int (_fb .RegionSegment .BitmapWidth ),int (_fb .RegionSegment .BitmapHeight ));_egec :=int (uint32 (_fb .Bitmap .Width +7)&(^uint32 (7)));for _ebee :=0;_ebee < _fb .Bitmap .Height ;_ebee ++{if _fb .IsTPGDon {var _agac int ;_agac ,_gdf =_fb .decodeSLTP ();if _gdf !=nil {return nil ,_gdf ;};_bgb ^=_agac ;};if _bgb ==1{if _ebee > 0{if _gdf =_fb .copyLineAbove (_ebee );_gdf !=nil {return nil ,_gdf ;};};}else {if _gdf =_fb .decodeLine (_ebee ,_fb .Bitmap .Width ,_egec );_gdf !=nil {return nil ,_gdf ;};};};return _fb .Bitmap ,nil ;};func (_abgcc *TextRegion )decodeIds ()(int64 ,error ){const _eaef ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";if _abgcc .IsHuffmanEncoded {if _abgcc .SbHuffDS ==3{if _abgcc ._afgga ==nil {_degf :=0;if _abgcc .SbHuffFS ==3{_degf ++;};var _gccb error ;_abgcc ._afgga ,_gccb =_abgcc .getUserTable (_degf );if _gccb !=nil {return 0,_bb .Wrap (_gccb ,_eaef ,"");};};return _abgcc ._afgga .Decode (_abgcc ._efad );};_dfce ,_bfegc :=_cf .GetStandardTable (8+int (_abgcc .SbHuffDS ));if _bfegc !=nil {return 0,_bb .Wrap (_bfegc ,_eaef ,"");};return _dfce .Decode (_abgcc ._efad );};_fddb ,_bddd :=_abgcc ._dfcb .DecodeInt (_abgcc ._cfbd );if _bddd !=nil {return 0,_bb .Wrap (_bddd ,_eaef ,"\u0063\u0078\u0049\u0041\u0044\u0053");};return int64 (_fddb ),nil ;};func (_ea *GenericRefinementRegion )Init (header *Header ,r _fg .StreamReader )error {_ea ._cd =header ;_ea ._ga =r ;_ea .RegionInfo =NewRegionSegment (r );return _ea .parseHeader ();};type SymbolDictionary struct{_cgcf _fg .StreamReader ;SdrTemplate int8 ;SdTemplate int8 ;_abgc bool ;_eacb bool ;SdHuffAggInstanceSelection bool ;SdHuffBMSizeSelection int8 ;SdHuffDecodeWidthSelection int8 ;SdHuffDecodeHeightSelection int8 ;UseRefinementAggregation bool ;IsHuffmanEncoded bool ;SdATX []int8 ;SdATY []int8 ;SdrATX []int8 ;SdrATY []int8 ;NumberOfExportedSymbols uint32 ;NumberOfNewSymbols uint32 ;Header *Header ;_eaaf uint32 ;_ffec []*_cg .Bitmap ;_abbcb uint32 ;_baag []*_cg .Bitmap ;_fddd _cf .Tabler ;_cafa _cf .Tabler ;_dbee _cf .Tabler ;_fgga _cf .Tabler ;_eae []*_cg .Bitmap ;_aafe []*_cg .Bitmap ;_abfd *_ff .Decoder ;_aebe *TextRegion ;_eadg *GenericRegion ;_gfg *GenericRefinementRegion ;_dgbg *_ff .DecoderStats ;_ageb *_ff .DecoderStats ;_dfda *_ff .DecoderStats ;_ccdg *_ff .DecoderStats ;_fbcb *_ff .DecoderStats ;_dbff *_ff .DecoderStats ;_bdg *_ff .DecoderStats ;_ggfc *_ff .DecoderStats ;_degd *_ff .DecoderStats ;_fbee int8 ;_bbda *_cg .Bitmaps ;_dfbe []int ;_dcfg map[int ]int ;_decdf bool ;};func (_ebaeg *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _ebaeg .IsHuffmanEncoded {return _ebaeg .decodeHeightClassDeltaHeightWithHuffman ();};_dacbb ,_baga :=_ebaeg ._abfd .DecodeInt (_ebaeg ._ageb );if _baga !=nil {return 0,_baga ;};return int64 (_dacbb ),nil ;};func (_aagc *HalftoneRegion )GetPatterns ()([]*_cg .Bitmap ,error ){var (_dbfbg []*_cg .Bitmap ;_ccda error ;);for _ ,_fab :=range _aagc ._edf .RTSegments {var _fed Segmenter ;_fed ,_ccda =_fab .GetSegmentData ();if _ccda !=nil {_g .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_ccda );return nil ,_ccda ;};_dcac ,_cbdg :=_fed .(*PatternDictionary );if !_cbdg {_ccda =_a .Errorf ("\u0072e\u006c\u0061t\u0065\u0064\u0020\u0073e\u0067\u006d\u0065n\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0070at\u0074\u0065\u0072n\u0020\u0064i\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u003a \u0025\u0054",_fed );return nil ,_ccda ;};var _fcb []*_cg .Bitmap ;_fcb ,_ccda =_dcac .GetDictionary ();if _ccda !=nil {_g .Log .Debug ("\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_ccda );return nil ,_ccda ;};_dbfbg =append (_dbfbg ,_fcb ...);};return _dbfbg ,nil ;};func (_gbca *HalftoneRegion )computeGrayScalePlanes (_gfc []*_cg .Bitmap ,_adfa int )([][]int ,error ){_fggc :=make ([][]int ,_gbca .HGridHeight );for _aaca :=0;_aaca < len (_fggc );_aaca ++{_fggc [_aaca ]=make ([]int ,_gbca .HGridWidth );};for _gacc :=0;_gacc < int (_gbca .HGridHeight );_gacc ++{for _fcef :=0;_fcef < int (_gbca .HGridWidth );_fcef +=8{var _fcab int ;if _gdbc :=int (_gbca .HGridWidth )-_fcef ;_gdbc > 8{_fcab =8;}else {_fcab =_gdbc ;};_abd :=_gfc [0].GetByteIndex (_fcef ,_gacc );for _feg :=0;_feg < _fcab ;_feg ++{_cegd :=_feg +_fcef ;_fggc [_gacc ][_cegd ]=0;for _egca :=0;_egca < _adfa ;_egca ++{_cgac ,_bce :=_gfc [_egca ].GetByte (_abd );if _bce !=nil {return nil ,_bce ;};_abdc :=_cgac >>uint (7-_cegd &7);_geaaf :=_abdc &1;_gecf :=1<<uint (_egca );_fcbd :=int (_geaaf )*_gecf ;_fggc [_gacc ][_cegd ]+=_fcbd ;};};};};return _fggc ,nil ;};func (_gfef *SymbolDictionary )getSbSymCodeLen ()int8 {_eccb :=int8 (_c .Ceil (_c .Log (float64 (_gfef ._eaaf +_gfef .NumberOfNewSymbols ))/_c .Log (2)));if _gfef .IsHuffmanEncoded &&_eccb < 1{return 1;};return _eccb ;};func (_gbfcb *PageInformationSegment )readResolution ()error {_cbbc ,_cdef :=_gbfcb ._dgbe .ReadBits (32);if _cdef !=nil {return _cdef ;};_gbfcb .ResolutionX =int (_cbbc &_c .MaxInt32 );_cbbc ,_cdef =_gbfcb ._dgbe .ReadBits (32);if _cdef !=nil {return _cdef ;};_gbfcb .ResolutionY =int (_cbbc &_c .MaxInt32 );return nil ;};func (_febb *PageInformationSegment )String ()string {_cad :=&_bd .Builder {};_cad .WriteString ("\u000a\u005b\u0050\u0041G\u0045\u002d\u0049\u004e\u0046\u004f\u0052\u004d\u0041\u0054I\u004fN\u002d\u0053\u0045\u0047\u004d\u0045\u004eT\u005d\u000a");_cad .WriteString (_a .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_febb .PageBMHeight ));_cad .WriteString (_a .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_febb .PageBMWidth ));_cad .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_febb .ResolutionX ));_cad .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_febb .ResolutionY ));_cad .WriteString (_a .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_febb ._dgcae ));_cad .WriteString (_a .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006eO\u0070\u0065\u0072\u0061\u0074\u006f\u0072O\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u003a\u0020\u0025v\u000a",_febb ._faca ));_cad .WriteString (_a .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_febb .IsLossless ));_cad .WriteString (_a .Sprintf ("\u0009\u002d\u0020R\u0065\u0071\u0075\u0069r\u0065\u0073\u0041\u0075\u0078\u0069\u006ci\u0061\u0072\u0079\u0042\u0075\u0066\u0066\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_febb ._ddac ));_cad .WriteString (_a .Sprintf ("\u0009\u002d\u0020M\u0069\u0067\u0068\u0074C\u006f\u006e\u0074\u0061\u0069\u006e\u0052e\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0076\u000a",_febb ._fcbdg ));_cad .WriteString (_a .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_febb .IsStripe ));_cad .WriteString (_a .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_febb .MaxStripeSize ));return _cad .String ();};func (_bedb *Header )readNumberOfReferredToSegments (_decd _fg .StreamReader )(uint64 ,error ){const _dcaa ="\u0072\u0065\u0061\u0064\u004e\u0075\u006d\u0062\u0065\u0072O\u0066\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";_bafc ,_gdd :=_decd .ReadBits (3);if _gdd !=nil {return 0,_bb .Wrap (_gdd ,_dcaa ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_bafc &=0xf;var _fcaa []byte ;if _bafc <=4{_fcaa =make ([]byte ,5);for _ecff :=0;_ecff <=4;_ecff ++{_ddb ,_ade :=_decd .ReadBit ();if _ade !=nil {return 0,_bb .Wrap (_ade ,_dcaa ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fcaa [_ecff ]=byte (_ddb );};}else {_bafc ,_gdd =_decd .ReadBits (29);if _gdd !=nil {return 0,_gdd ;};_bafc &=_c .MaxInt32 ;_caad :=(_bafc +8)>>3;_caad <<=3;_fcaa =make ([]byte ,_caad );var _fefc uint64 ;for _fefc =0;_fefc < _caad ;_fefc ++{_bffa ,_daeg :=_decd .ReadBit ();if _daeg !=nil {return 0,_bb .Wrap (_daeg ,_dcaa ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fcaa [_fefc ]=byte (_bffa );};};return _bafc ,nil ;};func (_cgfa *template1 )setIndex (_becb *_ff .DecoderStats ){_becb .SetIndex (0x080)};func (_ccgb *SymbolDictionary )encodeRefinementATFlags (_bcae _fg .BinaryWriter )(_cacbd int ,_bbfb error ){const _fced ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if !_ccgb .UseRefinementAggregation ||_ccgb .SdrTemplate !=0{return 0,nil ;};for _bdbc :=0;_bdbc < 2;_bdbc ++{if _bbfb =_bcae .WriteByte (byte (_ccgb .SdrATX [_bdbc ]));_bbfb !=nil {return _cacbd ,_bb .Wrapf (_bbfb ,_fced ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_bdbc );};_cacbd ++;if _bbfb =_bcae .WriteByte (byte (_ccgb .SdrATY [_bdbc ]));_bbfb !=nil {return _cacbd ,_bb .Wrapf (_bbfb ,_fced ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_bdbc );};_cacbd ++;};return _cacbd ,nil ;};func (_bccb *TextRegion )setParameters (_ccdfb *_ff .Decoder ,_egbfe ,_fcaf bool ,_decb ,_feag uint32 ,_adgdg uint32 ,_cefd int8 ,_bade uint32 ,_aecc int8 ,_gfff _cg .CombinationOperator ,_gcda int8 ,_bccdc int16 ,_gecfa ,_baeag ,_bfde ,_ggffd ,_cedad ,_gggf ,_acacb ,_bcbg ,_bfada ,_cefbc int8 ,_cdcf ,_cefbg []int8 ,_cdcc []*_cg .Bitmap ,_ggfcb int8 ){_bccb ._dfcb =_ccdfb ;_bccb .IsHuffmanEncoded =_egbfe ;_bccb .UseRefinement =_fcaf ;_bccb .RegionInfo .BitmapWidth =_decb ;_bccb .RegionInfo .BitmapHeight =_feag ;_bccb .NumberOfSymbolInstances =_adgdg ;_bccb .SbStrips =_cefd ;_bccb .NumberOfSymbols =_bade ;_bccb .DefaultPixel =_aecc ;_bccb .CombinationOperator =_gfff ;_bccb .IsTransposed =_gcda ;_bccb .ReferenceCorner =_bccdc ;_bccb .SbdsOffset =_gecfa ;_bccb .SbHuffFS =_baeag ;_bccb .SbHuffDS =_bfde ;_bccb .SbHuffDT =_ggffd ;_bccb .SbHuffRDWidth =_cedad ;_bccb .SbHuffRDHeight =_gggf ;_bccb .SbHuffRDX =_acacb ;_bccb .SbHuffRDY =_bcbg ;_bccb .SbrTemplate =_cefbc ;_bccb .SbrATX =_cdcf ;_bccb .SbrATY =_cefbg ;_bccb .Symbols =_cdcc ;_bccb ._cebda =_ggfcb ;};type PatternDictionary struct{_ddbe _fg .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ;Patterns []*_cg .Bitmap ;GrayMax uint32 ;};func (_gbcc *Header )writeReferredToCount (_dgce _fg .BinaryWriter )(_fgeg int ,_accg error ){const _cbgb ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074";_gbcc .RTSNumbers =make ([]int ,len (_gbcc .RTSegments ));for _gff ,_fgb :=range _gbcc .RTSegments {_gbcc .RTSNumbers [_gff ]=int (_fgb .SegmentNumber );};if len (_gbcc .RTSNumbers )<=4{var _gddg byte ;if len (_gbcc .RetainBits )>=1{_gddg =byte (_gbcc .RetainBits [0]);};_gddg |=byte (len (_gbcc .RTSNumbers ))<<5;if _accg =_dgce .WriteByte (_gddg );_accg !=nil {return 0,_bb .Wrap (_accg ,_cbgb ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_cbba :=uint32 (len (_gbcc .RTSNumbers ));_ffdc :=make ([]byte ,4+_ab .Ceil (len (_gbcc .RTSNumbers )+1,8));_cbba |=0x7<<29;_ec .BigEndian .PutUint32 (_ffdc ,_cbba );copy (_ffdc [1:],_gbcc .RetainBits );_fgeg ,_accg =_dgce .Write (_ffdc );if _accg !=nil {return 0,_bb .Wrap (_accg ,_cbgb ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return _fgeg ,nil ;};func (_dce *GenericRegion )overrideAtTemplate0b (_cedg ,_aed ,_ggg ,_dcdd ,_dfee ,_gabd int )int {if _dce .GBAtOverride [0]{_cedg &=0xFFFD;if _dce .GBAtY [0]==0&&_dce .GBAtX [0]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [0]&0x1))<<1;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [0]),_ggg +int (_dce .GBAtY [0])))<<1;};};if _dce .GBAtOverride [1]{_cedg &=0xDFFF;if _dce .GBAtY [1]==0&&_dce .GBAtX [1]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [1]&0x1))<<13;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [1]),_ggg +int (_dce .GBAtY [1])))<<13;};};if _dce .GBAtOverride [2]{_cedg &=0xFDFF;if _dce .GBAtY [2]==0&&_dce .GBAtX [2]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [2]&0x1))<<9;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [2]),_ggg +int (_dce .GBAtY [2])))<<9;};};if _dce .GBAtOverride [3]{_cedg &=0xBFFF;if _dce .GBAtY [3]==0&&_dce .GBAtX [3]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [3]&0x1))<<14;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [3]),_ggg +int (_dce .GBAtY [3])))<<14;};};if _dce .GBAtOverride [4]{_cedg &=0xEFFF;if _dce .GBAtY [4]==0&&_dce .GBAtX [4]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [4]&0x1))<<12;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [4]),_ggg +int (_dce .GBAtY [4])))<<12;};};if _dce .GBAtOverride [5]{_cedg &=0xFFDF;if _dce .GBAtY [5]==0&&_dce .GBAtX [5]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [5]&0x1))<<5;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [5]),_ggg +int (_dce .GBAtY [5])))<<5;};};if _dce .GBAtOverride [6]{_cedg &=0xFFFB;if _dce .GBAtY [6]==0&&_dce .GBAtX [6]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [6]&0x1))<<2;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [6]),_ggg +int (_dce .GBAtY [6])))<<2;};};if _dce .GBAtOverride [7]{_cedg &=0xFFF7;if _dce .GBAtY [7]==0&&_dce .GBAtX [7]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [7]&0x1))<<3;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [7]),_ggg +int (_dce .GBAtY [7])))<<3;};};if _dce .GBAtOverride [8]{_cedg &=0xF7FF;if _dce .GBAtY [8]==0&&_dce .GBAtX [8]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [8]&0x1))<<11;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [8]),_ggg +int (_dce .GBAtY [8])))<<11;};};if _dce .GBAtOverride [9]{_cedg &=0xFFEF;if _dce .GBAtY [9]==0&&_dce .GBAtX [9]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [9]&0x1))<<4;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [9]),_ggg +int (_dce .GBAtY [9])))<<4;};};if _dce .GBAtOverride [10]{_cedg &=0x7FFF;if _dce .GBAtY [10]==0&&_dce .GBAtX [10]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [10]&0x1))<<15;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [10]),_ggg +int (_dce .GBAtY [10])))<<15;};};if _dce .GBAtOverride [11]{_cedg &=0xFDFF;if _dce .GBAtY [11]==0&&_dce .GBAtX [11]>=-int8 (_dfee ){_cedg |=(_dcdd >>uint (int8 (_gabd )-_dce .GBAtX [11]&0x1))<<10;}else {_cedg |=int (_dce .getPixel (_aed +int (_dce .GBAtX [11]),_ggg +int (_dce .GBAtY [11])))<<10;};};return _cedg ;};type template1 struct{};func (_dea *GenericRefinementRegion )decodeTemplate (_bfe ,_ae ,_gdc ,_ffe ,_cegb ,_fdb ,_ffd ,_ecg ,_ffb ,_eef int ,_fda templater )(_fdc error ){var (_eea ,_efb ,_bcb ,_aab ,_fce int16 ;_gdca ,_ffc ,_cfa ,_ecdc int ;_ddd byte ;);if _ffb >=1&&(_ffb -1)< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -_ffe );if _fdc !=nil {return ;};_gdca =int (_ddd );};if _ffb >=0&&(_ffb )< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef );if _fdc !=nil {return ;};_ffc =int (_ddd );};if _ffb >=-1&&(_ffb +1)< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef +_ffe );if _fdc !=nil {return ;};_cfa =int (_ddd );};_eef ++;if _bfe >=1{_ddd ,_fdc =_dea .RegionBitmap .GetByte (_ecg -_gdc );if _fdc !=nil {return ;};_ecdc =int (_ddd );};_ecg ++;_gcbf :=_dea .ReferenceDX %8;_cbf :=6+_gcbf ;_fca :=_eef %_ffe ;if _cbf >=0{if _cbf < 8{_eea =int16 (_gdca >>uint (_cbf ))&0x07;};if _cbf < 8{_efb =int16 (_ffc >>uint (_cbf ))&0x07;};if _cbf < 8{_bcb =int16 (_cfa >>uint (_cbf ))&0x07;};if _cbf ==6&&_fca > 1{if _ffb >=1&&(_ffb -1)< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -_ffe -2);if _fdc !=nil {return _fdc ;};_eea |=int16 (_ddd <<2)&0x04;};if _ffb >=0&&_ffb < _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -2);if _fdc !=nil {return _fdc ;};_efb |=int16 (_ddd <<2)&0x04;};if _ffb >=-1&&_ffb +1< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef +_ffe -2);if _fdc !=nil {return _fdc ;};_bcb |=int16 (_ddd <<2)&0x04;};};if _cbf ==0{_gdca =0;_ffc =0;_cfa =0;if _fca < _ffe -1{if _ffb >=1&&_ffb -1< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -_ffe );if _fdc !=nil {return _fdc ;};_gdca =int (_ddd );};if _ffb >=0&&_ffb < _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef );if _fdc !=nil {return _fdc ;};_ffc =int (_ddd );};if _ffb >=-1&&_ffb +1< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef +_ffe );if _fdc !=nil {return _fdc ;};_cfa =int (_ddd );};};_eef ++;};}else {_eea =int16 (_gdca <<1)&0x07;_efb =int16 (_ffc <<1)&0x07;_bcb =int16 (_cfa <<1)&0x07;_gdca =0;_ffc =0;_cfa =0;if _fca < _ffe -1{if _ffb >=1&&_ffb -1< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -_ffe );if _fdc !=nil {return _fdc ;};_gdca =int (_ddd );};if _ffb >=0&&_ffb < _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef );if _fdc !=nil {return _fdc ;};_ffc =int (_ddd );};if _ffb >=-1&&_ffb +1< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef +_ffe );if _fdc !=nil {return _fdc ;};_cfa =int (_ddd );};_eef ++;};_eea |=int16 ((_gdca >>7)&0x07);_efb |=int16 ((_ffc >>7)&0x07);_bcb |=int16 ((_cfa >>7)&0x07);};_aab =int16 (_ecdc >>6);_fce =0;_aaaeb :=(2-_gcbf )%8;_gdca <<=uint (_aaaeb );_ffc <<=uint (_aaaeb );_cfa <<=uint (_aaaeb );_ecdc <<=2;var _fga int ;for _eba :=0;_eba < _ae ;_eba ++{_cea :=_eba &0x07;_ffcb :=_fda .form (_eea ,_efb ,_bcb ,_aab ,_fce );if _dea ._dc {_ddd ,_fdc =_dea .RegionBitmap .GetByte (_dea .RegionBitmap .GetByteIndex (_eba ,_bfe ));if _fdc !=nil {return _fdc ;};_dea ._fe .SetIndex (int32 (_dea .overrideAtTemplate0 (int (_ffcb ),_eba ,_bfe ,int (_ddd ),_cea )));}else {_dea ._fe .SetIndex (int32 (_ffcb ));};_fga ,_fdc =_dea ._fc .DecodeBit (_dea ._fe );if _fdc !=nil {return _fdc ;};if _fdc =_dea .RegionBitmap .SetPixel (_eba ,_bfe ,byte (_fga ));_fdc !=nil {return _fdc ;};_eea =((_eea <<1)|0x01&int16 (_gdca >>7))&0x07;_efb =((_efb <<1)|0x01&int16 (_ffc >>7))&0x07;_bcb =((_bcb <<1)|0x01&int16 (_cfa >>7))&0x07;_aab =((_aab <<1)|0x01&int16 (_ecdc >>7))&0x07;_fce =int16 (_fga );if (_eba -int (_dea .ReferenceDX ))%8==5{_gdca =0;_ffc =0;_cfa =0;if ((_eba -int (_dea .ReferenceDX ))/8)+1< _dea .ReferenceBitmap .RowStride {if _ffb >=1&&(_ffb -1)< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef -_ffe );if _fdc !=nil {return _fdc ;};_gdca =int (_ddd );};if _ffb >=0&&_ffb < _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef );if _fdc !=nil {return _fdc ;};_ffc =int (_ddd );};if _ffb >=-1&&(_ffb +1)< _dea .ReferenceBitmap .Height {_ddd ,_fdc =_dea .ReferenceBitmap .GetByte (_eef +_ffe );if _fdc !=nil {return _fdc ;};_cfa =int (_ddd );};};_eef ++;}else {_gdca <<=1;_ffc <<=1;_cfa <<=1;};if _cea ==5&&_bfe >=1{if ((_eba >>3)+1)>=_dea .RegionBitmap .RowStride {_ecdc =0;}else {_ddd ,_fdc =_dea .RegionBitmap .GetByte (_ecg -_gdc );if _fdc !=nil {return _fdc ;};_ecdc =int (_ddd );};_ecg ++;}else {_ecdc <<=1;};};return nil ;};func (_dbaa *SymbolDictionary )encodeATFlags (_egea _fg .BinaryWriter )(_fdcb int ,_ceagd error ){const _cdge ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if _dbaa .IsHuffmanEncoded ||_dbaa .SdTemplate !=0{return 0,nil ;};_cdfgd :=4;if _dbaa .SdTemplate !=0{_cdfgd =1;};for _fefed :=0;_fefed < _cdfgd ;_fefed ++{if _ceagd =_egea .WriteByte (byte (_dbaa .SdATX [_fefed ]));_ceagd !=nil {return _fdcb ,_bb .Wrapf (_ceagd ,_cdge ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_fefed );};_fdcb ++;if _ceagd =_egea .WriteByte (byte (_dbaa .SdATY [_fefed ]));_ceagd !=nil {return _fdcb ,_bb .Wrapf (_ceagd ,_cdge ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_fefed );};_fdcb ++;};return _fdcb ,nil ;};func (_afbe *TableSegment )HtLow ()int32 {return _afbe ._ceagf };func (_egfc *Header )Encode (w _fg .BinaryWriter )(_aaee int ,_cfabb error ){const _acbd ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065";var _bgag _fg .BinaryWriter ;_g .Log .Trace ("\u005b\u0053\u0045G\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045\u0052\u005d[\u0045\u004e\u0043\u004f\u0044\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _cfabb !=nil {_g .Log .Trace ("[\u0053\u0045\u0047\u004d\u0045\u004eT\u002d\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0045\u004e\u0043\u004f\u0044E\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020%\u0076",_cfabb );}else {_g .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_egfc );_g .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045N\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u005b\u0045\u004e\u0043O\u0044\u0045\u005d\u0020\u0046\u0069\u006ei\u0073\u0068\u0065\u0064");};}();w .FinishByte ();if _egfc .SegmentData !=nil {_bfeg ,_fdcf :=_egfc .SegmentData .(SegmentEncoder );if !_fdcf {return 0,_bb .Errorf (_acbd ,"\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0064\u006f\u0065s\u006e\u0027\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074 \u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0045\u006e\u0063\u006f\u0064er\u0020\u0069\u006e\u0074\u0065\u0072\u0066\u0061\u0063\u0065",_egfc .SegmentData );};_bgag =_fg .BufferedMSB ();_aaee ,_cfabb =_bfeg .Encode (_bgag );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_egfc .SegmentDataLength =uint64 (_aaee );};if _egfc .pageSize ()==4{_egfc .PageAssociationFieldSize =true ;};var _dffd int ;_dffd ,_cfabb =_egfc .writeSegmentNumber (w );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee +=_dffd ;if _cfabb =_egfc .writeFlags (w );_cfabb !=nil {return _aaee ,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee ++;_dffd ,_cfabb =_egfc .writeReferredToCount (w );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee +=_dffd ;_dffd ,_cfabb =_egfc .writeReferredToSegments (w );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee +=_dffd ;_dffd ,_cfabb =_egfc .writeSegmentPageAssociation (w );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee +=_dffd ;_dffd ,_cfabb =_egfc .writeSegmentDataLength (w );if _cfabb !=nil {return 0,_bb .Wrap (_cfabb ,_acbd ,"");};_aaee +=_dffd ;_egfc .HeaderLength =int64 (_aaee )-int64 (_egfc .SegmentDataLength );if _bgag !=nil {if _ ,_cfabb =w .Write (_bgag .Data ());_cfabb !=nil {return _aaee ,_bb .Wrap (_cfabb ,_acbd ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061");};};return _aaee ,nil ;};func (_caaf *SymbolDictionary )readNumberOfExportedSymbols ()error {_bgbd ,_debd :=_caaf ._cgcf .ReadBits (32);if _debd !=nil {return _debd ;};_caaf .NumberOfExportedSymbols =uint32 (_bgbd &_c .MaxUint32 );return nil ;};func (_fbb *GenericRegion )decodeTemplate2 (_aea ,_cgee ,_dad int ,_ede ,_bcfeg int )(_fad error ){const _geaa ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0032";var (_egb ,_cegf int ;_egd ,_dfaa int ;_bfge byte ;_cfab ,_bcc int ;);if _aea >=1{_bfge ,_fad =_fbb .Bitmap .GetByte (_bcfeg );if _fad !=nil {return _bb .Wrap (_fad ,_geaa ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031");};_egd =int (_bfge );};if _aea >=2{_bfge ,_fad =_fbb .Bitmap .GetByte (_bcfeg -_fbb .Bitmap .RowStride );if _fad !=nil {return _bb .Wrap (_fad ,_geaa ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_dfaa =int (_bfge )<<4;};_egb =(_egd >>3&0x7c)|(_dfaa >>3&0x380);for _cacd :=0;_cacd < _dad ;_cacd =_cfab {var (_dfc byte ;_cdg int ;);_cfab =_cacd +8;if _cdda :=_cgee -_cacd ;_cdda > 8{_cdg =8;}else {_cdg =_cdda ;};if _aea > 0{_egd <<=8;if _cfab < _cgee {_bfge ,_fad =_fbb .Bitmap .GetByte (_bcfeg +1);if _fad !=nil {return _bb .Wrap (_fad ,_geaa ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_egd |=int (_bfge );};};if _aea > 1{_dfaa <<=8;if _cfab < _cgee {_bfge ,_fad =_fbb .Bitmap .GetByte (_bcfeg -_fbb .Bitmap .RowStride +1);if _fad !=nil {return _bb .Wrap (_fad ,_geaa ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_dfaa |=int (_bfge )<<4;};};for _dgcc :=0;_dgcc < _cdg ;_dgcc ++{_dgd :=uint (10-_dgcc );if _fbb ._bcfd {_cegf =_fbb .overrideAtTemplate2 (_egb ,_cacd +_dgcc ,_aea ,int (_dfc ),_dgcc );_fbb ._ggc .SetIndex (int32 (_cegf ));}else {_fbb ._ggc .SetIndex (int32 (_egb ));};_bcc ,_fad =_fbb ._gag .DecodeBit (_fbb ._ggc );if _fad !=nil {return _bb .Wrap (_fad ,_geaa ,"");};_dfc |=byte (_bcc <<uint (7-_dgcc ));_egb =((_egb &0x1bd)<<1)|_bcc |((_egd >>_dgd )&0x4)|((_dfaa >>_dgd )&0x80);};if _ddca :=_fbb .Bitmap .SetByte (_ede ,_dfc );_ddca !=nil {return _bb .Wrap (_ddca ,_geaa ,"");};_ede ++;_bcfeg ++;};return nil ;};var _ templater =&template1 {};type TextRegion struct{_efad _fg .StreamReader ;RegionInfo *RegionSegment ;SbrTemplate int8 ;SbdsOffset int8 ;DefaultPixel int8 ;CombinationOperator _cg .CombinationOperator ;IsTransposed int8 ;ReferenceCorner int16 ;LogSBStrips int16 ;UseRefinement bool ;IsHuffmanEncoded bool ;SbHuffRSize int8 ;SbHuffRDY int8 ;SbHuffRDX int8 ;SbHuffRDHeight int8 ;SbHuffRDWidth int8 ;SbHuffDT int8 ;SbHuffDS int8 ;SbHuffFS int8 ;SbrATX []int8 ;SbrATY []int8 ;NumberOfSymbolInstances uint32 ;_egde int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_cg .Bitmap ;Symbols []*_cg .Bitmap ;_dfcb *_ff .Decoder ;_ddde *GenericRefinementRegion ;_aafc *_ff .DecoderStats ;_dafe *_ff .DecoderStats ;_cfbd *_ff .DecoderStats ;_ebfbd *_ff .DecoderStats ;_bcaa *_ff .DecoderStats ;_ddgce *_ff .DecoderStats ;_afgd *_ff .DecoderStats ;_cacg *_ff .DecoderStats ;_eagad *_ff .DecoderStats ;_fgcf *_ff .DecoderStats ;_dbeeb *_ff .DecoderStats ;_cebda int8 ;_fbg *_cf .FixedSizeTable ;Header *Header ;_ccdc _cf .Tabler ;_afgga _cf .Tabler ;_dbebb _cf .Tabler ;_fgca _cf .Tabler ;_aagee _cf .Tabler ;_baab _cf .Tabler ;_ccdcb _cf .Tabler ;_egab _cf .Tabler ;_dfbf ,_eeag map[int ]int ;_edfe []int ;_affa *_cg .Points ;_cbfcf *_cg .Bitmaps ;_eeed *_ab .IntSlice ;_aeae ,_bcd int ;_cgddb *_cg .Boxes ;};func (_gcee *TextRegion )readRegionFlags ()error {var (_eeca int ;_gage uint64 ;_egdg error ;);_eeca ,_egdg =_gcee ._efad .ReadBit ();if _egdg !=nil {return _egdg ;};_gcee .SbrTemplate =int8 (_eeca );_gage ,_egdg =_gcee ._efad .ReadBits (5);if _egdg !=nil {return _egdg ;};_gcee .SbdsOffset =int8 (_gage );if _gcee .SbdsOffset > 0x0f{_gcee .SbdsOffset -=0x20;};_eeca ,_egdg =_gcee ._efad .ReadBit ();if _egdg !=nil {return _egdg ;};_gcee .DefaultPixel =int8 (_eeca );_gage ,_egdg =_gcee ._efad .ReadBits (2);if _egdg !=nil {return _egdg ;};_gcee .CombinationOperator =_cg .CombinationOperator (int (_gage )&0x3);_eeca ,_egdg =_gcee ._efad .ReadBit ();if _egdg !=nil {return _egdg ;};_gcee .IsTransposed =int8 (_eeca );_gage ,_egdg =_gcee ._efad .ReadBits (2);if _egdg !=nil {return _egdg ;};_gcee .ReferenceCorner =int16 (_gage )&0x3;_gage ,_egdg =_gcee ._efad .ReadBits (2);if _egdg !=nil {return _egdg ;};_gcee .LogSBStrips =int16 (_gage )&0x3;_gcee .SbStrips =1<<uint (_gcee .LogSBStrips );_eeca ,_egdg =_gcee ._efad .ReadBit ();if _egdg !=nil {return _egdg ;};if _eeca ==1{_gcee .UseRefinement =true ;};_eeca ,_egdg =_gcee ._efad .ReadBit ();if _egdg !=nil {return _egdg ;};if _eeca ==1{_gcee .IsHuffmanEncoded =true ;};return nil ;};func (_cafe *Header )GetSegmentData ()(Segmenter ,error ){var _bbga Segmenter ;if _cafe .SegmentData !=nil {_bbga =_cafe .SegmentData ;};if _bbga ==nil {_bcea ,_aeff :=_dcgd [_cafe .Type ];if !_aeff {return nil ,_a .Errorf ("\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u002f\u0020\u0025\u0064\u0020\u0063\u0072e\u0061t\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020",_cafe .Type ,_cafe .Type );};_bbga =_bcea ();_g .Log .Trace ("\u005b\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u0020\u0061\u0074\u0020\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0030\u0034\u0058",_cafe .SegmentNumber ,_cafe .SegmentDataStartOffset );_eaf ,_daf :=_cafe .subInputReader ();if _daf !=nil {return nil ,_daf ;};if _gafc :=_bbga .Init (_cafe ,_eaf );_gafc !=nil {_g .Log .Debug ("\u0049\u006e\u0069\u0074 \u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076 \u0066o\u0072\u0020\u0074\u0079\u0070\u0065\u003a \u0025\u0054",_gafc ,_bbga );return nil ,_gafc ;};_cafe .SegmentData =_bbga ;};return _bbga ,nil ;};func (_fea *PageInformationSegment )readMaxStripeSize ()error {_effd ,_fegg :=_fea ._dgbe .ReadBits (15);if _fegg !=nil {return _fegg ;};_fea .MaxStripeSize =uint16 (_effd &_c .MaxUint16 );return nil ;};func (_ebf *GenericRegion )overrideAtTemplate2 (_bdef ,_cdbg ,_gcc ,_adage ,_decc int )int {_bdef &=0x3FB;if _ebf .GBAtY [0]==0&&_ebf .GBAtX [0]>=-int8 (_decc ){_bdef |=(_adage >>uint (7-(int8 (_decc )+_ebf .GBAtX [0]))&0x1)<<2;}else {_bdef |=int (_ebf .getPixel (_cdbg +int (_ebf .GBAtX [0]),_gcc +int (_ebf .GBAtY [0])))<<2;};return _bdef ;};func (_ceee *PatternDictionary )setGbAtPixels (){if _ceee .HDTemplate ==0{_ceee .GBAtX =make ([]int8 ,4);_ceee .GBAtY =make ([]int8 ,4);_ceee .GBAtX [0]=-int8 (_ceee .HdpWidth );_ceee .GBAtY [0]=0;_ceee .GBAtX [1]=-3;_ceee .GBAtY [1]=-1;_ceee .GBAtX [2]=2;_ceee .GBAtY [2]=-2;_ceee .GBAtX [3]=-2;_ceee .GBAtY [3]=-2;}else {_ceee .GBAtX =[]int8 {-int8 (_ceee .HdpWidth )};_ceee .GBAtY =[]int8 {0};};};func (_effa *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_effa .SdHuffAggInstanceSelection {_dbefg ,_acae :=_cf .GetStandardTable (1);if _acae !=nil {return 0,_acae ;};return _dbefg .Decode (_effa ._cgcf );};if _effa ._fgga ==nil {var (_ccgc int ;_eaca error ;);if _effa .SdHuffDecodeHeightSelection ==3{_ccgc ++;};if _effa .SdHuffDecodeWidthSelection ==3{_ccgc ++;};if _effa .SdHuffBMSizeSelection ==3{_ccgc ++;};_effa ._fgga ,_eaca =_effa .getUserTable (_ccgc );if _eaca !=nil {return 0,_eaca ;};};return _effa ._fgga .Decode (_effa ._cgcf );};func (_bc *GenericRefinementRegion )decodeSLTP ()(int ,error ){_bc .Template .setIndex (_bc ._fe );return _bc ._fc .DecodeBit (_bc ._fe );};func (_cbec *TextRegion )decodeIb (_gbdad ,_ccf int64 )(*_cg .Bitmap ,error ){const _gbeed ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062";var (_efcb error ;_fbaf *_cg .Bitmap ;);if _gbdad ==0{if int (_ccf )> len (_cbec .Symbols )-1{return nil ,_bb .Error (_gbeed ,"\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0049\u0042\u0020\u0062\u0069\u0074\u006d\u0061\u0070\u002e\u0020\u0069\u006e\u0064\u0065x\u0020\u006f\u0075\u0074\u0020o\u0066\u0020r\u0061\u006e\u0067\u0065");};return _cbec .Symbols [int (_ccf )],nil ;};var _geef ,_eafb ,_gbfce ,_aeab int64 ;_geef ,_efcb =_cbec .decodeRdw ();if _efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"");};_eafb ,_efcb =_cbec .decodeRdh ();if _efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"");};_gbfce ,_efcb =_cbec .decodeRdx ();if _efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"");};_aeab ,_efcb =_cbec .decodeRdy ();if _efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"");};if _cbec .IsHuffmanEncoded {if _ ,_efcb =_cbec .decodeSymInRefSize ();_efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"");};_cbec ._efad .Align ();};_deab :=_cbec .Symbols [_ccf ];_bdafg :=uint32 (_deab .Width );_gcgc :=uint32 (_deab .Height );_fdddg :=int32 (uint32 (_geef )>>1)+int32 (_gbfce );_fgdd :=int32 (uint32 (_eafb )>>1)+int32 (_aeab );if _cbec ._ddde ==nil {_cbec ._ddde =_fafe (_cbec ._efad ,nil );};_cbec ._ddde .setParameters (_cbec ._dbeeb ,_cbec ._dfcb ,_cbec .SbrTemplate ,_bdafg +uint32 (_geef ),_gcgc +uint32 (_eafb ),_deab ,_fdddg ,_fgdd ,false ,_cbec .SbrATX ,_cbec .SbrATY );_fbaf ,_efcb =_cbec ._ddde .GetRegionBitmap ();if _efcb !=nil {return nil ,_bb .Wrap (_efcb ,_gbeed ,"\u0067\u0072\u0066");};if _cbec .IsHuffmanEncoded {_cbec ._efad .Align ();};return _fbaf ,nil ;};func (_bff *GenericRefinementRegion )decodeTypicalPredictedLine (_cdf ,_gg ,_ceb ,_dg ,_baeg ,_ag int )error {_cebd :=_cdf -int (_bff .ReferenceDY );_ddg :=_bff .ReferenceBitmap .GetByteIndex (0,_cebd );_gae :=_bff .RegionBitmap .GetByteIndex (0,_cdf );var _gd error ;switch _bff .TemplateID {case 0:_gd =_bff .decodeTypicalPredictedLineTemplate0 (_cdf ,_gg ,_ceb ,_dg ,_baeg ,_ag ,_gae ,_cebd ,_ddg );case 1:_gd =_bff .decodeTypicalPredictedLineTemplate1 (_cdf ,_gg ,_ceb ,_dg ,_baeg ,_ag ,_gae ,_cebd ,_ddg );};return _gd ;};func (_adaf *PageInformationSegment )Size ()int {return 19};func (_bcee *TextRegion )decodeCurrentT ()(int64 ,error ){if _bcee .SbStrips !=1{if _bcee .IsHuffmanEncoded {_addd ,_affdb :=_bcee ._efad .ReadBits (byte (_bcee .LogSBStrips ));return int64 (_addd ),_affdb ;};_eeac ,_gbbe :=_bcee ._dfcb .DecodeInt (_bcee ._ebfbd );if _gbbe !=nil {return 0,_gbbe ;};return int64 (_eeac ),nil ;};return 0,nil ;};type template0 struct{};func NewHeader (d Documenter ,r _fg .StreamReader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_ffad :=&Header {Reader :r };if _cedd :=_ffad .parse (d ,r ,offset ,organizationType );_cedd !=nil {return nil ,_bb .Wrap (_cedd ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _ffad ,nil ;};func (_baeb *SymbolDictionary )readRegionFlags ()error {var (_egeb uint64 ;_bdgb int ;);_ ,_cdcd :=_baeb ._cgcf .ReadBits (3);if _cdcd !=nil {return _cdcd ;};_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};_baeb .SdrTemplate =int8 (_bdgb );_egeb ,_cdcd =_baeb ._cgcf .ReadBits (2);if _cdcd !=nil {return _cdcd ;};_baeb .SdTemplate =int8 (_egeb &0xf);_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};if _bdgb ==1{_baeb ._abgc =true ;};_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};if _bdgb ==1{_baeb ._eacb =true ;};_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};if _bdgb ==1{_baeb .SdHuffAggInstanceSelection =true ;};_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};_baeb .SdHuffBMSizeSelection =int8 (_bdgb );_egeb ,_cdcd =_baeb ._cgcf .ReadBits (2);if _cdcd !=nil {return _cdcd ;};_baeb .SdHuffDecodeWidthSelection =int8 (_egeb &0xf);_egeb ,_cdcd =_baeb ._cgcf .ReadBits (2);if _cdcd !=nil {return _cdcd ;};_baeb .SdHuffDecodeHeightSelection =int8 (_egeb &0xf);_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};if _bdgb ==1{_baeb .UseRefinementAggregation =true ;};_bdgb ,_cdcd =_baeb ._cgcf .ReadBit ();if _cdcd !=nil {return _cdcd ;};if _bdgb ==1{_baeb .IsHuffmanEncoded =true ;};return nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);var _ SegmentEncoder =&GenericRegion {};func (_fbfb *SymbolDictionary )setCodingStatistics ()error {if _fbfb ._ggfc ==nil {_fbfb ._ggfc =_ff .NewStats (512,1);};if _fbfb ._ageb ==nil {_fbfb ._ageb =_ff .NewStats (512,1);};if _fbfb ._dfda ==nil {_fbfb ._dfda =_ff .NewStats (512,1);};if _fbfb ._ccdg ==nil {_fbfb ._ccdg =_ff .NewStats (512,1);};if _fbfb ._fbcb ==nil {_fbfb ._fbcb =_ff .NewStats (512,1);};if _fbfb .UseRefinementAggregation &&_fbfb ._degd ==nil {_fbfb ._degd =_ff .NewStats (1<<uint (_fbfb ._fbee ),1);_fbfb ._dbff =_ff .NewStats (512,1);_fbfb ._bdg =_ff .NewStats (512,1);};if _fbfb ._dgbg ==nil {_fbfb ._dgbg =_ff .NewStats (65536,1);};if _fbfb ._abfd ==nil {var _fggb error ;_fbfb ._abfd ,_fggb =_ff .New (_fbfb ._cgcf );if _fggb !=nil {return _fggb ;};};return nil ;};func (_beff *TextRegion )getUserTable (_deec int )(_cf .Tabler ,error ){const _cbeb ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065";var _bccd int ;for _ ,_bbece :=range _beff .Header .RTSegments {if _bbece .Type ==53{if _bccd ==_deec {_eaee ,_eagg :=_bbece .GetSegmentData ();if _eagg !=nil {return nil ,_eagg ;};_bdgg ,_bbebb :=_eaee .(*TableSegment );if !_bbebb {_g .Log .Debug (_a .Sprintf ("\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079p\u0065\u00205\u0033\u0020\u002d\u0020\u0061\u006ed\u0020in\u0064\u0065\u0078\u003a\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_bbece .SegmentNumber ));return nil ,_bb .Error (_cbeb ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079\u0070e\u0020\u0035\u0033\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u002a\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};return _cf .NewEncodedTable (_bdgg );};_bccd ++;};};return nil ,nil ;};func (_dfff *SymbolDictionary )parseHeader ()(_dcae error ){_g .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _dcae !=nil {_g .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u0020\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u005b\u0050\u0041\u0052SE\u002d\u0048\u0045A\u0044\u0045R\u005d\u0020\u0066\u0061\u0069\u006ce\u0064\u002e \u0025\u0076",_dcae );}else {_g .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _dcae =_dfff .readRegionFlags ();_dcae !=nil {return _dcae ;};if _dcae =_dfff .setAtPixels ();_dcae !=nil {return _dcae ;};if _dcae =_dfff .setRefinementAtPixels ();_dcae !=nil {return _dcae ;};if _dcae =_dfff .readNumberOfExportedSymbols ();_dcae !=nil {return _dcae ;};if _dcae =_dfff .readNumberOfNewSymbols ();_dcae !=nil {return _dcae ;};if _dcae =_dfff .setInSyms ();_dcae !=nil {return _dcae ;};if _dfff ._eacb {_aaeea :=_dfff .Header .RTSegments ;for _dffg :=len (_aaeea )-1;_dffg >=0;_dffg --{if _aaeea [_dffg ].Type ==0{_bfbdc ,_ggcf :=_aaeea [_dffg ].SegmentData .(*SymbolDictionary );if !_ggcf {_dcae =_a .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074:\u0020\u0025\u0076\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020S\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_aaeea [_dffg ]);return _dcae ;};if _bfbdc ._eacb {_dfff .setRetainedCodingContexts (_bfbdc );};break ;};};};if _dcae =_dfff .checkInput ();_dcae !=nil {return _dcae ;};return nil ;};func (_ecag *Header )writeFlags (_eaa _fg .BinaryWriter )(_bdce error ){const _dbfa ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";_defcd :=byte (_ecag .Type );if _bdce =_eaa .WriteByte (_defcd );_bdce !=nil {return _bb .Wrap (_bdce ,_dbfa ,"\u0077\u0072\u0069ti\u006e\u0067\u0020\u0073\u0065\u0067\u006d\u0065\u006et\u0020t\u0079p\u0065 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};if !_ecag .RetainFlag &&!_ecag .PageAssociationFieldSize {return nil ;};if _bdce =_eaa .SkipBits (-8);_bdce !=nil {return _bb .Wrap (_bdce ,_dbfa ,"\u0073\u006bi\u0070\u0070\u0069\u006e\u0067\u0020\u0062\u0061\u0063\u006b\u0020\u0074\u0068\u0065\u0020\u0062\u0069\u0074\u0073\u0020\u0066\u0061il\u0065\u0064");};var _fcde int ;if _ecag .RetainFlag {_fcde =1;};if _bdce =_eaa .WriteBit (_fcde );_bdce !=nil {return _bb .Wrap (_bdce ,_dbfa ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_fcde =0;if _ecag .PageAssociationFieldSize {_fcde =1;};if _bdce =_eaa .WriteBit (_fcde );_bdce !=nil {return _bb .Wrap (_bdce ,_dbfa ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_eaa .FinishByte ();return nil ;};func (_agcf *Header )readDataStartOffset (_ebec _fg .StreamReader ,_cgaa OrganizationType ){if _cgaa ==OSequential {_agcf .SegmentDataStartOffset =uint64 (_ebec .StreamPosition ());};};func (_ccgf *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_ccc ,_acdb :=_ccgf ._dgbe .ReadBit ();if _acdb !=nil {return _acdb ;};if _ccc ==1{_ccgf ._ddac =true ;};return nil ;};func (_ggad *TextRegion )computeSymbolCodeLength ()error {if _ggad .IsHuffmanEncoded {return _ggad .symbolIDCodeLengths ();};_ggad ._cebda =int8 (_c .Ceil (_c .Log (float64 (_ggad .NumberOfSymbols ))/_c .Log (2)));return nil ;}; |