1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
|
//
// 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 (_b "encoding/binary";_ec "errors";_gb "fmt";_age "github.com/unidoc/unipdf/v4/common";_c "github.com/unidoc/unipdf/v4/internal/bitwise";_ag "github.com/unidoc/unipdf/v4/internal/jbig2/basic";_f "github.com/unidoc/unipdf/v4/internal/jbig2/bitmap";
_cc "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/arithmetic";_ece "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/huffman";_ee "github.com/unidoc/unipdf/v4/internal/jbig2/decoder/mmr";_bdc "github.com/unidoc/unipdf/v4/internal/jbig2/encoder/arithmetic";
_dg "github.com/unidoc/unipdf/v4/internal/jbig2/errors";_d "github.com/unidoc/unipdf/v4/internal/jbig2/internal";_g "image";_ed "io";_a "math";_ab "strings";_bd "time";);func (_fbaa *PageInformationSegment )readContainsRefinement ()error {_caea ,_agfc :=_fbaa ._eade .ReadBit ();
if _agfc !=nil {return _agfc ;};if _caea ==1{_fbaa ._fabe =true ;};return nil ;};func (_aecd *SymbolDictionary )setCodingStatistics ()error {if _aecd ._fbbc ==nil {_aecd ._fbbc =_cc .NewStats (512,1);};if _aecd ._adbgg ==nil {_aecd ._adbgg =_cc .NewStats (512,1);
};if _aecd ._ggcfb ==nil {_aecd ._ggcfb =_cc .NewStats (512,1);};if _aecd ._dbdb ==nil {_aecd ._dbdb =_cc .NewStats (512,1);};if _aecd ._ggec ==nil {_aecd ._ggec =_cc .NewStats (512,1);};if _aecd .UseRefinementAggregation &&_aecd ._fbac ==nil {_aecd ._fbac =_cc .NewStats (1<<uint (_aecd ._gdfg ),1);
_aecd ._gffd =_cc .NewStats (512,1);_aecd ._fdff =_cc .NewStats (512,1);};if _aecd ._cfba ==nil {_aecd ._cfba =_cc .NewStats (65536,1);};if _aecd ._ded ==nil {var _cadd error ;_aecd ._ded ,_cadd =_cc .New (_aecd ._dabd );if _cadd !=nil {return _cadd ;};
};return nil ;};func (_eafg *SymbolDictionary )retrieveImportSymbols ()error {for _ ,_fefa :=range _eafg .Header .RTSegments {if _fefa .Type ==0{_aafg ,_ebcb :=_fefa .GetSegmentData ();if _ebcb !=nil {return _ebcb ;};_cggf ,_agbcd :=_aafg .(*SymbolDictionary );
if !_agbcd {return _gb .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",_aafg );
};_acdd ,_ebcb :=_cggf .GetDictionary ();if _ebcb !=nil {return _gb .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",_fefa .SegmentNumber ,_ebcb .Error ());
};_eafg ._dfbg =append (_eafg ._dfbg ,_acdd ...);_eafg ._acg +=_cggf .NumberOfExportedSymbols ;};};return nil ;};func _dabc (_bffc *_c .Reader ,_fbeg *Header )*TextRegion {_bgcee :=&TextRegion {_bgge :_bffc ,Header :_fbeg ,RegionInfo :NewRegionSegment (_bffc )};
return _bgcee ;};func (_bbad *SymbolDictionary )getSymbol (_gabad int )(*_f .Bitmap ,error ){const _edae ="\u0067e\u0074\u0053\u0079\u006d\u0062\u006fl";_ddfa ,_dge :=_bbad ._gabd .GetBitmap (_bbad ._cacb [_gabad ]);if _dge !=nil {return nil ,_dg .Wrap (_dge ,_edae ,"\u0063\u0061n\u0027\u0074\u0020g\u0065\u0074\u0020\u0073\u0079\u006d\u0062\u006f\u006c");
};return _ddfa ,nil ;};func (_bdac *TextRegion )decodeStripT ()(_afge int64 ,_fcf error ){if _bdac .IsHuffmanEncoded {if _bdac .SbHuffDT ==3{if _bdac ._bddg ==nil {var _gfef int ;if _bdac .SbHuffFS ==3{_gfef ++;};if _bdac .SbHuffDS ==3{_gfef ++;};_bdac ._bddg ,_fcf =_bdac .getUserTable (_gfef );
if _fcf !=nil {return 0,_fcf ;};};_afge ,_fcf =_bdac ._bddg .Decode (_bdac ._bgge );if _fcf !=nil {return 0,_fcf ;};}else {var _geegf _ece .Tabler ;_geegf ,_fcf =_ece .GetStandardTable (11+int (_bdac .SbHuffDT ));if _fcf !=nil {return 0,_fcf ;};_afge ,_fcf =_geegf .Decode (_bdac ._bgge );
if _fcf !=nil {return 0,_fcf ;};};}else {var _ebbbg int32 ;_ebbbg ,_fcf =_bdac ._cefb .DecodeInt (_bdac ._fecfa );if _fcf !=nil {return 0,_fcf ;};_afge =int64 (_ebbbg );};_afge *=int64 (-_bdac .SbStrips );return _afge ,nil ;};func (_cgd *GenericRegion )decodeTemplate2 (_aac ,_ega ,_gfag int ,_aagf ,_gbad int )(_aebe error ){const _abd ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0032";
var (_fdbe ,_ecff int ;_eab ,_bdb int ;_aea byte ;_afc ,_bceg int ;);if _aac >=1{_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031");
};_eab =int (_aea );};if _aac >=2{_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad -_cgd .Bitmap .RowStride );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_bdb =int (_aea )<<4;
};_fdbe =(_eab >>3&0x7c)|(_bdb >>3&0x380);for _egeg :=0;_egeg < _gfag ;_egeg =_afc {var (_fafe byte ;_baa int ;);_afc =_egeg +8;if _bagc :=_ega -_egeg ;_bagc > 8{_baa =8;}else {_baa =_bagc ;};if _aac > 0{_eab <<=8;if _afc < _ega {_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad +1);
if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_eab |=int (_aea );};};if _aac > 1{_bdb <<=8;if _afc < _ega {_aea ,_aebe =_cgd .Bitmap .GetByte (_gbad -_cgd .Bitmap .RowStride +1);
if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_bdb |=int (_aea )<<4;};};for _gffg :=0;_gffg < _baa ;_gffg ++{_fff :=uint (10-_gffg );if _cgd ._aeed {_ecff =_cgd .overrideAtTemplate2 (_fdbe ,_egeg +_gffg ,_aac ,int (_fafe ),_gffg );
_cgd ._fgce .SetIndex (int32 (_ecff ));}else {_cgd ._fgce .SetIndex (int32 (_fdbe ));};_bceg ,_aebe =_cgd ._fba .DecodeBit (_cgd ._fgce );if _aebe !=nil {return _dg .Wrap (_aebe ,_abd ,"");};_fafe |=byte (_bceg <<uint (7-_gffg ));_fdbe =((_fdbe &0x1bd)<<1)|_bceg |((_eab >>_fff )&0x4)|((_bdb >>_fff )&0x80);
};if _adb :=_cgd .Bitmap .SetByte (_aagf ,_fafe );_adb !=nil {return _dg .Wrap (_adb ,_abd ,"");};_aagf ++;_gbad ++;};return nil ;};func (_fcde *Header )Encode (w _c .BinaryWriter )(_dagca int ,_cdbd error ){const _fgef ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065";
var _fegb _c .BinaryWriter ;_age .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 _cdbd !=nil {_age .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",_cdbd );
}else {_age .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_fcde );_age .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 _fcde .SegmentData !=nil {_cfb ,_ffd :=_fcde .SegmentData .(SegmentEncoder );if !_ffd {return 0,_dg .Errorf (_fgef ,"\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",_fcde .SegmentData );
};_fegb =_c .BufferedMSB ();_dagca ,_cdbd =_cfb .Encode (_fegb );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_fcde .SegmentDataLength =uint64 (_dagca );};if _fcde .pageSize ()==4{_fcde .PageAssociationFieldSize =true ;};var _ageg int ;_ageg ,_cdbd =_fcde .writeSegmentNumber (w );
if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;if _cdbd =_fcde .writeFlags (w );_cdbd !=nil {return _dagca ,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca ++;_ageg ,_cdbd =_fcde .writeReferredToCount (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");
};_dagca +=_ageg ;_ageg ,_cdbd =_fcde .writeReferredToSegments (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;_ageg ,_cdbd =_fcde .writeSegmentPageAssociation (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;
_ageg ,_cdbd =_fcde .writeSegmentDataLength (w );if _cdbd !=nil {return 0,_dg .Wrap (_cdbd ,_fgef ,"");};_dagca +=_ageg ;_fcde .HeaderLength =int64 (_dagca )-int64 (_fcde .SegmentDataLength );if _fegb !=nil {if _ ,_cdbd =w .Write (_fegb .Data ());_cdbd !=nil {return _dagca ,_dg .Wrap (_cdbd ,_fgef ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061");
};};return _dagca ,nil ;};func (_cdedg *SymbolDictionary )Init (h *Header ,r *_c .Reader )error {_cdedg .Header =h ;_cdedg ._dabd =r ;return _cdedg .parseHeader ();};func (_aebb *PatternDictionary )extractPatterns (_eced *_f .Bitmap )error {var _faaf int ;
_ecgb :=make ([]*_f .Bitmap ,_aebb .GrayMax +1);for _faaf <=int (_aebb .GrayMax ){_ccd :=int (_aebb .HdpWidth )*_faaf ;_dgdf :=_g .Rect (_ccd ,0,_ccd +int (_aebb .HdpWidth ),int (_aebb .HdpHeight ));_ffgdf ,_faba :=_f .Extract (_dgdf ,_eced );if _faba !=nil {return _faba ;
};_ecgb [_faaf ]=_ffgdf ;_faaf ++;};_aebb .Patterns =_ecgb ;return nil ;};func (_fgd *GenericRegion )computeSegmentDataStructure ()error {_fgd .DataOffset =_fgd ._faca .AbsolutePosition ();_fgd .DataHeaderLength =_fgd .DataOffset -_fgd .DataHeaderOffset ;
_fgd .DataLength =int64 (_fgd ._faca .AbsoluteLength ())-_fgd .DataHeaderLength ;return nil ;};func (_geeg *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_bcfa ,_fggc :=_geeg ._eade .ReadBit ();if _fggc !=nil {return _fggc ;};if _bcfa ==1{_geeg ._bdag =true ;
};return nil ;};func (_db *GenericRefinementRegion )getGrReference ()(*_f .Bitmap ,error ){segments :=_db ._gg .RTSegments ;if len (segments )==0{return nil ,_ec .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");
};_gfd ,_gff :=segments [0].GetSegmentData ();if _gff !=nil {return nil ,_gff ;};_afd ,_acd :=_gfd .(Regioner );if !_acd {return nil ,_gb .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",_gfd );
};return _afd .GetRegionBitmap ();};func (_bbd *GenericRefinementRegion )overrideAtTemplate0 (_cbc ,_eef ,_agb ,_aaf ,_cba int )int {if _bbd ._eecb [0]{_cbc &=0xfff7;if _bbd .GrAtY [0]==0&&int (_bbd .GrAtX [0])>=-_cba {_cbc |=(_aaf >>uint (7-(_cba +int (_bbd .GrAtX [0])))&0x1)<<3;
}else {_cbc |=_bbd .getPixel (_bbd .RegionBitmap ,_eef +int (_bbd .GrAtX [0]),_agb +int (_bbd .GrAtY [0]))<<3;};};if _bbd ._eecb [1]{_cbc &=0xefff;if _bbd .GrAtY [1]==0&&int (_bbd .GrAtX [1])>=-_cba {_cbc |=(_aaf >>uint (7-(_cba +int (_bbd .GrAtX [1])))&0x1)<<12;
}else {_cbc |=_bbd .getPixel (_bbd .ReferenceBitmap ,_eef +int (_bbd .GrAtX [1]),_agb +int (_bbd .GrAtY [1]));};};return _cbc ;};func (_fga *HalftoneRegion )computeGrayScalePlanes (_ggbcd []*_f .Bitmap ,_begf int )([][]int ,error ){_eceb :=make ([][]int ,_fga .HGridHeight );
for _fbaf :=0;_fbaf < len (_eceb );_fbaf ++{_eceb [_fbaf ]=make ([]int ,_fga .HGridWidth );};for _bff :=0;_bff < int (_fga .HGridHeight );_bff ++{for _dde :=0;_dde < int (_fga .HGridWidth );_dde +=8{var _ebggc int ;if _ccbb :=int (_fga .HGridWidth )-_dde ;
_ccbb > 8{_ebggc =8;}else {_ebggc =_ccbb ;};_cdg :=_ggbcd [0].GetByteIndex (_dde ,_bff );for _aeac :=0;_aeac < _ebggc ;_aeac ++{_gaaa :=_aeac +_dde ;_eceb [_bff ][_gaaa ]=0;for _dfd :=0;_dfd < _begf ;_dfd ++{_feff ,_ecee :=_ggbcd [_dfd ].GetByte (_cdg );
if _ecee !=nil {return nil ,_ecee ;};_abga :=_feff >>uint (7-_gaaa &7);_fbada :=_abga &1;_bcdd :=1<<uint (_dfd );_badea :=int (_fbada )*_bcdd ;_eceb [_bff ][_gaaa ]+=_badea ;};};};};return _eceb ,nil ;};func (_ae *GenericRefinementRegion )Init (header *Header ,r *_c .Reader )error {_ae ._gg =header ;
_ae ._bf =r ;_ae .RegionInfo =NewRegionSegment (r );return _ae .parseHeader ();};func (_aad *GenericRegion )parseHeader ()(_bcc error ){_age .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 _bcc !=nil {_age .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",_bcc );
}else {_age .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 (_egcc int ;_gcb uint64 ;);if _bcc =_aad .RegionSegment .parseHeader ();_bcc !=nil {return _bcc ;};if _ ,_bcc =_aad ._faca .ReadBits (3);_bcc !=nil {return _bcc ;};_egcc ,_bcc =_aad ._faca .ReadBit ();if _bcc !=nil {return _bcc ;};if _egcc ==1{_aad .UseExtTemplates =true ;
};_egcc ,_bcc =_aad ._faca .ReadBit ();if _bcc !=nil {return _bcc ;};if _egcc ==1{_aad .IsTPGDon =true ;};_gcb ,_bcc =_aad ._faca .ReadBits (2);if _bcc !=nil {return _bcc ;};_aad .GBTemplate =byte (_gcb &0xf);_egcc ,_bcc =_aad ._faca .ReadBit ();if _bcc !=nil {return _bcc ;
};if _egcc ==1{_aad .IsMMREncoded =true ;};if !_aad .IsMMREncoded {_gee :=1;if _aad .GBTemplate ==0{_gee =4;if _aad .UseExtTemplates {_gee =12;};};if _bcc =_aad .readGBAtPixels (_gee );_bcc !=nil {return _bcc ;};};if _bcc =_aad .computeSegmentDataStructure ();
_bcc !=nil {return _bcc ;};_age .Log .Trace ("\u0025\u0073",_aad );return nil ;};func (_cgda *PageInformationSegment )readCombinationOperator ()error {_acca ,_ecaed :=_cgda ._eade .ReadBits (2);if _ecaed !=nil {return _ecaed ;};_cgda ._dafc =_f .CombinationOperator (int (_acca ));
return nil ;};type template1 struct{};func NewGenericRegion (r *_c .Reader )*GenericRegion {return &GenericRegion {RegionSegment :NewRegionSegment (r ),_faca :r };};func _deb (_degd int )int {if _degd ==0{return 0;};_degd |=_degd >>1;_degd |=_degd >>2;
_degd |=_degd >>4;_degd |=_degd >>8;_degd |=_degd >>16;return (_degd +1)>>1;};func (_dcgd *SymbolDictionary )decodeDirectlyThroughGenericRegion (_eedb ,_fgde uint32 )error {if _dcgd ._cddgf ==nil {_dcgd ._cddgf =NewGenericRegion (_dcgd ._dabd );};_dcgd ._cddgf .setParametersWithAt (false ,byte (_dcgd .SdTemplate ),false ,false ,_dcgd .SdATX ,_dcgd .SdATY ,_eedb ,_fgde ,_dcgd ._cfba ,_dcgd ._ded );
return _dcgd .addSymbol (_dcgd ._cddgf );};func (_aced *PatternDictionary )readTemplate ()error {_bbbf ,_aaaf :=_aced ._ebcg .ReadBits (2);if _aaaf !=nil {return _aaaf ;};_aced .HDTemplate =byte (_bbbf );return nil ;};func (_fcda *HalftoneRegion )GetPatterns ()([]*_f .Bitmap ,error ){var (_edfa []*_f .Bitmap ;
_fge error ;);for _ ,_fbgea :=range _fcda ._ccge .RTSegments {var _ffad Segmenter ;_ffad ,_fge =_fbgea .GetSegmentData ();if _fge !=nil {_age .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_fge );
return nil ,_fge ;};_aab ,_fbgd :=_ffad .(*PatternDictionary );if !_fbgd {_fge =_gb .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",_ffad );
return nil ,_fge ;};var _cfgc []*_f .Bitmap ;_cfgc ,_fge =_aab .GetDictionary ();if _fge !=nil {_age .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",_fge );
return nil ,_fge ;};_edfa =append (_edfa ,_cfgc ...);};return _edfa ,nil ;};func (_bfbb *Header )readNumberOfReferredToSegments (_gadd *_c .Reader )(uint64 ,error ){const _cdfd ="\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";
_gefc ,_fdd :=_gadd .ReadBits (3);if _fdd !=nil {return 0,_dg .Wrap (_fdd ,_cdfd ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_gefc &=0xf;var _bccc []byte ;if _gefc <=4{_bccc =make ([]byte ,5);for _cfea :=0;_cfea <=4;_cfea ++{_bbaa ,_eda :=_gadd .ReadBit ();
if _eda !=nil {return 0,_dg .Wrap (_eda ,_cdfd ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_bccc [_cfea ]=byte (_bbaa );};}else {_gefc ,_fdd =_gadd .ReadBits (29);if _fdd !=nil {return 0,_fdd ;};_gefc &=_a .MaxInt32 ;_ccca :=(_gefc +8)>>3;
_ccca <<=3;_bccc =make ([]byte ,_ccca );var _fceb uint64 ;for _fceb =0;_fceb < _ccca ;_fceb ++{_dfb ,_eac :=_gadd .ReadBit ();if _eac !=nil {return 0,_dg .Wrap (_eac ,_cdfd ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_bccc [_fceb ]=byte (_dfb );
};};return _gefc ,nil ;};func (_bfgb *TextRegion )setContexts (_bacf *_cc .DecoderStats ,_caddc *_cc .DecoderStats ,_dadee *_cc .DecoderStats ,_gaff *_cc .DecoderStats ,_bddb *_cc .DecoderStats ,_cedg *_cc .DecoderStats ,_baedb *_cc .DecoderStats ,_eadf *_cc .DecoderStats ,_cgdf *_cc .DecoderStats ,_cggbf *_cc .DecoderStats ){_bfgb ._fecfa =_caddc ;
_bfgb ._dfca =_dadee ;_bfgb ._cgbe =_gaff ;_bfgb ._edbc =_bddb ;_bfgb ._gbeg =_baedb ;_bfgb ._gebe =_eadf ;_bfgb ._eadb =_cedg ;_bfgb ._aaba =_cgdf ;_bfgb ._gaad =_cggbf ;_bfgb ._bdfb =_bacf ;};func (_faabe *PageInformationSegment )String ()string {_fgac :=&_ab .Builder {};
_fgac .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");_fgac .WriteString (_gb .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_faabe .PageBMHeight ));
_fgac .WriteString (_gb .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_faabe .PageBMWidth ));_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_faabe .ResolutionX ));
_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_faabe .ResolutionY ));_fgac .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_faabe ._dafc ));
_fgac .WriteString (_gb .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",_faabe ._cbfcb ));_fgac .WriteString (_gb .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_faabe .IsLossless ));
_fgac .WriteString (_gb .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",_faabe ._bdag ));_fgac .WriteString (_gb .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",_faabe ._fabe ));
_fgac .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_faabe .IsStripe ));_fgac .WriteString (_gb .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_faabe .MaxStripeSize ));
return _fgac .String ();};func (_bgbc *TextRegion )GetRegionBitmap ()(*_f .Bitmap ,error ){if _bgbc .RegionBitmap !=nil {return _bgbc .RegionBitmap ,nil ;};if !_bgbc .IsHuffmanEncoded {if _fdea :=_bgbc .setCodingStatistics ();_fdea !=nil {return nil ,_fdea ;
};};if _dbbag :=_bgbc .createRegionBitmap ();_dbbag !=nil {return nil ,_dbbag ;};if _defe :=_bgbc .decodeSymbolInstances ();_defe !=nil {return nil ,_defe ;};return _bgbc .RegionBitmap ,nil ;};func (_abee *SymbolDictionary )encodeNumSyms (_dded _c .BinaryWriter )(_eada int ,_dagac error ){const _eccd ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073";
_edfdd :=make ([]byte ,4);_b .BigEndian .PutUint32 (_edfdd ,_abee .NumberOfExportedSymbols );if _eada ,_dagac =_dded .Write (_edfdd );_dagac !=nil {return _eada ,_dg .Wrap (_dagac ,_eccd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");
};_b .BigEndian .PutUint32 (_edfdd ,_abee .NumberOfNewSymbols );_ffgc ,_dagac :=_dded .Write (_edfdd );if _dagac !=nil {return _eada ,_dg .Wrap (_dagac ,_eccd ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _eada +_ffgc ,nil ;
};func (_bad *GenericRefinementRegion )setParameters (_gfb *_cc .DecoderStats ,_efc *_cc .Decoder ,_abc int8 ,_eeb ,_acdaa uint32 ,_bgdd *_f .Bitmap ,_aeee ,_bgca int32 ,_fecf bool ,_bdae []int8 ,_accf []int8 ){_age .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 _gfb !=nil {_bad ._cd =_gfb ;};if _efc !=nil {_bad ._gaf =_efc ;};_bad .TemplateID =_abc ;_bad .RegionInfo .BitmapWidth =_eeb ;_bad .RegionInfo .BitmapHeight =_acdaa ;_bad .ReferenceBitmap =_bgdd ;_bad .ReferenceDX =_aeee ;_bad .ReferenceDY =_bgca ;
_bad .IsTPGROn =_fecf ;_bad .GrAtX =_bdae ;_bad .GrAtY =_accf ;_bad .RegionBitmap =nil ;_age .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",_bad );
};func (_fdfc *TextRegion )Init (header *Header ,r *_c .Reader )error {_fdfc .Header =header ;_fdfc ._bgge =r ;_fdfc .RegionInfo =NewRegionSegment (_fdfc ._bgge );return _fdfc .parseHeader ();};func (_daccf *TextRegion )getUserTable (_ccdb int )(_ece .Tabler ,error ){const _ecga ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065";
var _dgbe int ;for _ ,_faaa :=range _daccf .Header .RTSegments {if _faaa .Type ==53{if _dgbe ==_ccdb {_ebccd ,_gbbe :=_faaa .GetSegmentData ();if _gbbe !=nil {return nil ,_gbbe ;};_eeee ,_ebgd :=_ebccd .(*TableSegment );if !_ebgd {_age .Log .Debug (_gb .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",_faaa .SegmentNumber ));
return nil ,_dg .Error (_ecga ,"\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 _ece .NewEncodedTable (_eeee );};_dgbe ++;};};return nil ,nil ;};type SymbolDictionary struct{_dabd *_c .Reader ;SdrTemplate int8 ;SdTemplate int8 ;_eegc bool ;_eaf 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 ;_acg uint32 ;_dfbg []*_f .Bitmap ;
_cec uint32 ;_ddae []*_f .Bitmap ;_gdgd _ece .Tabler ;_gagc _ece .Tabler ;_feea _ece .Tabler ;_afec _ece .Tabler ;_ffdg []*_f .Bitmap ;_ecac []*_f .Bitmap ;_ded *_cc .Decoder ;_fagf *TextRegion ;_cddgf *GenericRegion ;_ggcf *GenericRefinementRegion ;_cfba *_cc .DecoderStats ;
_adbgg *_cc .DecoderStats ;_ggcfb *_cc .DecoderStats ;_dbdb *_cc .DecoderStats ;_ggec *_cc .DecoderStats ;_gffd *_cc .DecoderStats ;_fdff *_cc .DecoderStats ;_fbbc *_cc .DecoderStats ;_fbac *_cc .DecoderStats ;_gdfg int8 ;_gabd *_f .Bitmaps ;_cacb []int ;
_gbdf map[int ]int ;_dfadf bool ;};func (_fca *template1 )setIndex (_cfe *_cc .DecoderStats ){_cfe .SetIndex (0x080)};func (_gged *SymbolDictionary )decodeNewSymbols (_dbafd ,_ffec uint32 ,_adgb *_f .Bitmap ,_gdfc ,_cbbe int32 )error {if _gged ._ggcf ==nil {_gged ._ggcf =_bcbf (_gged ._dabd ,nil );
if _gged ._ded ==nil {var _ecfc error ;_gged ._ded ,_ecfc =_cc .New (_gged ._dabd );if _ecfc !=nil {return _ecfc ;};};if _gged ._cfba ==nil {_gged ._cfba =_cc .NewStats (65536,1);};};_gged ._ggcf .setParameters (_gged ._cfba ,_gged ._ded ,_gged .SdrTemplate ,_dbafd ,_ffec ,_adgb ,_gdfc ,_cbbe ,false ,_gged .SdrATX ,_gged .SdrATY );
return _gged .addSymbol (_gged ._ggcf );};func (_addce *TextRegion )symbolIDCodeLengths ()error {var (_gedda []*_ece .Code ;_cgac uint64 ;_agff _ece .Tabler ;_fcbg error ;);for _abgcb :=0;_abgcb < 35;_abgcb ++{_cgac ,_fcbg =_addce ._bgge .ReadBits (4);
if _fcbg !=nil {return _fcbg ;};_debb :=int (_cgac &0xf);if _debb > 0{_gedda =append (_gedda ,_ece .NewCode (int32 (_debb ),0,int32 (_abgcb ),false ));};};_agff ,_fcbg =_ece .NewFixedSizeTable (_gedda );if _fcbg !=nil {return _fcbg ;};var (_acef int64 ;
_adge uint32 ;_bdff []*_ece .Code ;_febb int64 ;);for _adge < _addce .NumberOfSymbols {_febb ,_fcbg =_agff .Decode (_addce ._bgge );if _fcbg !=nil {return _fcbg ;};if _febb < 32{if _febb > 0{_bdff =append (_bdff ,_ece .NewCode (int32 (_febb ),0,int32 (_adge ),false ));
};_acef =_febb ;_adge ++;}else {var _dcaf ,_gagee int64 ;switch _febb {case 32:_cgac ,_fcbg =_addce ._bgge .ReadBits (2);if _fcbg !=nil {return _fcbg ;};_dcaf =3+int64 (_cgac );if _adge > 0{_gagee =_acef ;};case 33:_cgac ,_fcbg =_addce ._bgge .ReadBits (3);
if _fcbg !=nil {return _fcbg ;};_dcaf =3+int64 (_cgac );case 34:_cgac ,_fcbg =_addce ._bgge .ReadBits (7);if _fcbg !=nil {return _fcbg ;};_dcaf =11+int64 (_cgac );};for _cbfac :=0;_cbfac < int (_dcaf );_cbfac ++{if _gagee > 0{_bdff =append (_bdff ,_ece .NewCode (int32 (_gagee ),0,int32 (_adge ),false ));
};_adge ++;};};};_addce ._bgge .Align ();_addce ._bgcg ,_fcbg =_ece .NewFixedSizeTable (_bdff );return _fcbg ;};func (_afde *TextRegion )decodeRdy ()(int64 ,error ){const _ecebb ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";if _afde .IsHuffmanEncoded {if _afde .SbHuffRDY ==3{if _afde ._fdcag ==nil {var (_fggcc int ;
_cfgf error ;);if _afde .SbHuffFS ==3{_fggcc ++;};if _afde .SbHuffDS ==3{_fggcc ++;};if _afde .SbHuffDT ==3{_fggcc ++;};if _afde .SbHuffRDWidth ==3{_fggcc ++;};if _afde .SbHuffRDHeight ==3{_fggcc ++;};if _afde .SbHuffRDX ==3{_fggcc ++;};_afde ._fdcag ,_cfgf =_afde .getUserTable (_fggcc );
if _cfgf !=nil {return 0,_dg .Wrap (_cfgf ,_ecebb ,"");};};return _afde ._fdcag .Decode (_afde ._bgge );};_abgc ,_gdccd :=_ece .GetStandardTable (14+int (_afde .SbHuffRDY ));if _gdccd !=nil {return 0,_gdccd ;};return _abgc .Decode (_afde ._bgge );};_eddaf ,_cafa :=_afde ._cefb .DecodeInt (_afde ._gaad );
if _cafa !=nil {return 0,_dg .Wrap (_cafa ,_ecebb ,"");};return int64 (_eddaf ),nil ;};func (_gfgc *GenericRegion )Init (h *Header ,r *_c .Reader )error {_gfgc .RegionSegment =NewRegionSegment (r );_gfgc ._faca =r ;return _gfgc .parseHeader ();};func (_ggbf *TextRegion )decodeID ()(int64 ,error ){if _ggbf .IsHuffmanEncoded {if _ggbf ._bgcg ==nil {_fdfg ,_fedb :=_ggbf ._bgge .ReadBits (byte (_ggbf ._aeaca ));
return int64 (_fdfg ),_fedb ;};return _ggbf ._bgcg .Decode (_ggbf ._bgge );};return _ggbf ._cefb .DecodeIAID (uint64 (_ggbf ._aeaca ),_ggbf ._eadb );};func (_caad *GenericRegion )setParametersMMR (_ddd bool ,_dbc ,_fege int64 ,_baeb ,_dbaf uint32 ,_cbfa byte ,_gbb ,_bef bool ,_ccgg ,_dagc []int8 ){_caad .DataOffset =_dbc ;
_caad .DataLength =_fege ;_caad .RegionSegment =&RegionSegment {};_caad .RegionSegment .BitmapHeight =_baeb ;_caad .RegionSegment .BitmapWidth =_dbaf ;_caad .GBTemplate =_cbfa ;_caad .IsMMREncoded =_ddd ;_caad .IsTPGDon =_gbb ;_caad .GBAtX =_ccgg ;_caad .GBAtY =_dagc ;
};func (_gf *EndOfStripe )parseHeader ()error {_ga ,_be :=_gf ._ff .ReadBits (32);if _be !=nil {return _be ;};_gf ._cce =int (_ga &_a .MaxInt32 );return nil ;};func (_bdbad *HalftoneRegion )grayScaleDecoding (_gbde int )([][]int ,error ){var (_ddaf []int8 ;
_fafg []int8 ;);if !_bdbad .IsMMREncoded {_ddaf =make ([]int8 ,4);_fafg =make ([]int8 ,4);if _bdbad .HTemplate <=1{_ddaf [0]=3;}else if _bdbad .HTemplate >=2{_ddaf [0]=2;};_fafg [0]=-1;_ddaf [1]=-3;_fafg [1]=-1;_ddaf [2]=2;_fafg [2]=-2;_ddaf [3]=-2;_fafg [3]=-2;
};_fecda :=make ([]*_f .Bitmap ,_gbde );_eegd :=NewGenericRegion (_bdbad ._dade );_eegd .setParametersMMR (_bdbad .IsMMREncoded ,_bdbad .DataOffset ,_bdbad .DataLength ,_bdbad .HGridHeight ,_bdbad .HGridWidth ,_bdbad .HTemplate ,false ,_bdbad .HSkipEnabled ,_ddaf ,_fafg );
_fffa :=_gbde -1;var _dbee error ;_fecda [_fffa ],_dbee =_eegd .GetRegionBitmap ();if _dbee !=nil {return nil ,_dbee ;};for _fffa > 0{_fffa --;_eegd .Bitmap =nil ;_fecda [_fffa ],_dbee =_eegd .GetRegionBitmap ();if _dbee !=nil {return nil ,_dbee ;};if _dbee =_bdbad .combineGrayscalePlanes (_fecda ,_fffa );
_dbee !=nil {return nil ,_dbee ;};};return _bdbad .computeGrayScalePlanes (_fecda ,_gbde );};const (ORandom OrganizationType =iota ;OSequential ;);func (_ecde *SymbolDictionary )setExportedSymbols (_agee []int ){for _feee :=uint32 (0);_feee < _ecde ._acg +_ecde .NumberOfNewSymbols ;
_feee ++{if _agee [_feee ]==1{var _dcac *_f .Bitmap ;if _feee < _ecde ._acg {_dcac =_ecde ._dfbg [_feee ];}else {_dcac =_ecde ._ddae [_feee -_ecde ._acg ];};_age .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",_dcac );
_ecde ._ffdg =append (_ecde ._ffdg ,_dcac );};};};func (_affgf *RegionSegment )Encode (w _c .BinaryWriter )(_fbbe int ,_face error ){const _gafb ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";_efcc :=make ([]byte ,4);
_b .BigEndian .PutUint32 (_efcc ,_affgf .BitmapWidth );_fbbe ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0057\u0069\u0064t\u0068");};_b .BigEndian .PutUint32 (_efcc ,_affgf .BitmapHeight );var _faea int ;_faea ,_face =w .Write (_efcc );
if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_fbbe +=_faea ;_b .BigEndian .PutUint32 (_efcc ,_affgf .XLocation );_faea ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn");
};_fbbe +=_faea ;_b .BigEndian .PutUint32 (_efcc ,_affgf .YLocation );_faea ,_face =w .Write (_efcc );if _face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_fbbe +=_faea ;if _face =w .WriteByte (byte (_affgf .CombinaionOperator )&0x07);
_face !=nil {return 0,_dg .Wrap (_face ,_gafb ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_fbbe ++;return _fbbe ,nil ;};func (_ccb *GenericRegion )decodeSLTP ()(int ,error ){switch _ccb .GBTemplate {case 0:_ccb ._fgce .SetIndex (0x9B25);
case 1:_ccb ._fgce .SetIndex (0x795);case 2:_ccb ._fgce .SetIndex (0xE5);case 3:_ccb ._fgce .SetIndex (0x195);};return _ccb ._fba .DecodeBit (_ccb ._fgce );};func (_aae *SymbolDictionary )readAtPixels (_bbfc int )error {_aae .SdATX =make ([]int8 ,_bbfc );
_aae .SdATY =make ([]int8 ,_bbfc );var (_caeaa byte ;_agbe error ;);for _cbcd :=0;_cbcd < _bbfc ;_cbcd ++{_caeaa ,_agbe =_aae ._dabd .ReadByte ();if _agbe !=nil {return _agbe ;};_aae .SdATX [_cbcd ]=int8 (_caeaa );_caeaa ,_agbe =_aae ._dabd .ReadByte ();
if _agbe !=nil {return _agbe ;};_aae .SdATY [_cbcd ]=int8 (_caeaa );};return nil ;};func (_ggb *GenericRegion )copyLineAbove (_gbgg int )error {_cfgd :=_gbgg *_ggb .Bitmap .RowStride ;_dba :=_cfgd -_ggb .Bitmap .RowStride ;for _dbd :=0;_dbd < _ggb .Bitmap .RowStride ;
_dbd ++{_fbea ,_dbgf :=_ggb .Bitmap .GetByte (_dba );if _dbgf !=nil {return _dbgf ;};_dba ++;if _dbgf =_ggb .Bitmap .SetByte (_cfgd ,_fbea );_dbgf !=nil {return _dbgf ;};_cfgd ++;};return nil ;};func (_ad *EndOfStripe )Init (h *Header ,r *_c .Reader )error {_ad ._ff =r ;
return _ad .parseHeader ()};func (_caddd *TextRegion )setCodingStatistics ()error {if _caddd ._fecfa ==nil {_caddd ._fecfa =_cc .NewStats (512,1);};if _caddd ._dfca ==nil {_caddd ._dfca =_cc .NewStats (512,1);};if _caddd ._cgbe ==nil {_caddd ._cgbe =_cc .NewStats (512,1);
};if _caddd ._edbc ==nil {_caddd ._edbc =_cc .NewStats (512,1);};if _caddd ._adbfe ==nil {_caddd ._adbfe =_cc .NewStats (512,1);};if _caddd ._gbeg ==nil {_caddd ._gbeg =_cc .NewStats (512,1);};if _caddd ._gebe ==nil {_caddd ._gebe =_cc .NewStats (512,1);
};if _caddd ._eadb ==nil {_caddd ._eadb =_cc .NewStats (1<<uint (_caddd ._aeaca ),1);};if _caddd ._aaba ==nil {_caddd ._aaba =_cc .NewStats (512,1);};if _caddd ._gaad ==nil {_caddd ._gaad =_cc .NewStats (512,1);};if _caddd ._cefb ==nil {var _fgdb error ;
_caddd ._cefb ,_fgdb =_cc .New (_caddd ._bgge );if _fgdb !=nil {return _fgdb ;};};return nil ;};type template0 struct{};var _ SegmentEncoder =&GenericRegion {};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 (_cgag *Header )String ()string {_bee :=&_ab .Builder {};_bee .WriteString ("\u000a[\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045A\u0044\u0045\u0052\u005d\u000a");_bee .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0053\u0065gm\u0065n\u0074\u004e\u0075\u006d\u0062e\u0072\u003a\u0020\u0025\u0076\u000a",_cgag .SegmentNumber ));
_bee .WriteString (_gb .Sprintf ("\u0009\u002d\u0020T\u0079\u0070\u0065\u003a\u0020\u0025\u0076\u000a",_cgag .Type ));_bee .WriteString (_gb .Sprintf ("\u0009-\u0020R\u0065\u0074\u0061\u0069\u006eF\u006c\u0061g\u003a\u0020\u0025\u0076\u000a",_cgag .RetainFlag ));
_bee .WriteString (_gb .Sprintf ("\u0009\u002d\u0020Pa\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_cgag .PageAssociation ));_bee .WriteString (_gb .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",_cgag .PageAssociationFieldSize ));
_bee .WriteString ("\u0009-\u0020R\u0054\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u0053\u003a\u000a");for _ ,_cgdc :=range _cgag .RTSNumbers {_bee .WriteString (_gb .Sprintf ("\u0009\t\u002d\u0020\u0025\u0064\u000a",_cgdc ));};_bee .WriteString (_gb .Sprintf ("\t\u002d \u0048\u0065\u0061\u0064\u0065\u0072\u004c\u0065n\u0067\u0074\u0068\u003a %\u0076\u000a",_cgag .HeaderLength ));
_bee .WriteString (_gb .Sprintf ("\u0009-\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061L\u0065n\u0067\u0074\u0068\u003a\u0020\u0025\u0076\n",_cgag .SegmentDataLength ));_bee .WriteString (_gb .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",_cgag .SegmentDataStartOffset ));
return _bee .String ();};func (_cdf *GenericRegion )decodeTemplate0a (_dcb ,_bgb ,_bfg int ,_bdcec ,_ggcb int )(_fdb error ){const _dbea ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0061";var (_bde ,_egg int ;_bdgg ,_bag int ;
_afdd byte ;_cegc int ;);if _dcb >=1{_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb );if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bdgg =int (_afdd );};if _dcb >=2{_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb -_cdf .Bitmap .RowStride );
if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bag =int (_afdd )<<6;};_bde =(_bdgg &0xf0)|(_bag &0x3800);for _daea :=0;_daea < _bfg ;_daea =_cegc {var (_bdf byte ;_bccb int ;);_cegc =_daea +8;if _cdb :=_bgb -_daea ;
_cdb > 8{_bccb =8;}else {_bccb =_cdb ;};if _dcb > 0{_bdgg <<=8;if _cegc < _bgb {_afdd ,_fdb =_cdf .Bitmap .GetByte (_ggcb +1);if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bdgg |=int (_afdd );};};if _dcb > 1{_gfc :=_ggcb -_cdf .Bitmap .RowStride +1;
_bag <<=8;if _cegc < _bgb {_afdd ,_fdb =_cdf .Bitmap .GetByte (_gfc );if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bag |=int (_afdd )<<6;}else {_bag |=0;};};for _cbaa :=0;_cbaa < _bccb ;_cbaa ++{_bcca :=uint (7-_cbaa );
if _cdf ._aeed {_egg =_cdf .overrideAtTemplate0a (_bde ,_daea +_cbaa ,_dcb ,int (_bdf ),_cbaa ,int (_bcca ));_cdf ._fgce .SetIndex (int32 (_egg ));}else {_cdf ._fgce .SetIndex (int32 (_bde ));};var _egd int ;_egd ,_fdb =_cdf ._fba .DecodeBit (_cdf ._fgce );
if _fdb !=nil {return _dg .Wrap (_fdb ,_dbea ,"");};_bdf |=byte (_egd )<<_bcca ;_bde =((_bde &0x7bf7)<<1)|_egd |((_bdgg >>_bcca )&0x10)|((_bag >>_bcca )&0x800);};if _bba :=_cdf .Bitmap .SetByte (_bdcec ,_bdf );_bba !=nil {return _dg .Wrap (_bba ,_dbea ,"");
};_bdcec ++;_ggcb ++;};return nil ;};type HalftoneRegion struct{_dade *_c .Reader ;_ccge *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _f .CombinationOperator ;
HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_f .Bitmap ;Patterns []*_f .Bitmap ;};func (_daga *HalftoneRegion )computeSegmentDataStructure ()error {_daga .DataOffset =_daga ._dade .AbsolutePosition ();
_daga .DataHeaderLength =_daga .DataOffset -_daga .DataHeaderOffset ;_daga .DataLength =int64 (_daga ._dade .AbsoluteLength ())-_daga .DataHeaderLength ;return nil ;};func (_eggf *PatternDictionary )readIsMMREncoded ()error {_dcfc ,_ebf :=_eggf ._ebcg .ReadBit ();
if _ebf !=nil {return _ebf ;};if _dcfc !=0{_eggf .IsMMREncoded =true ;};return nil ;};func (_eacc *PatternDictionary )readPatternWidthAndHeight ()error {_abde ,_fcebc :=_eacc ._ebcg .ReadByte ();if _fcebc !=nil {return _fcebc ;};_eacc .HdpWidth =_abde ;
_abde ,_fcebc =_eacc ._ebcg .ReadByte ();if _fcebc !=nil {return _fcebc ;};_eacc .HdpHeight =_abde ;return nil ;};func (_cbee *PatternDictionary )Init (h *Header ,r *_c .Reader )error {_cbee ._ebcg =r ;return _cbee .parseHeader ();};func (_eefbg *SymbolDictionary )setSymbolsArray ()error {if _eefbg ._dfbg ==nil {if _agcc :=_eefbg .retrieveImportSymbols ();
_agcc !=nil {return _agcc ;};};if _eefbg ._ecac ==nil {_eefbg ._ecac =append (_eefbg ._ecac ,_eefbg ._dfbg ...);};return nil ;};func (_aeec *TextRegion )decodeCurrentT ()(int64 ,error ){if _aeec .SbStrips !=1{if _aeec .IsHuffmanEncoded {_febce ,_decf :=_aeec ._bgge .ReadBits (byte (_aeec .LogSBStrips ));
return int64 (_febce ),_decf ;};_aggdf ,_dafa :=_aeec ._cefb .DecodeInt (_aeec ._edbc );if _dafa !=nil {return 0,_dafa ;};return int64 (_aggdf ),nil ;};return 0,nil ;};func (_fabb *PatternDictionary )computeSegmentDataStructure ()error {_fabb .DataOffset =_fabb ._ebcg .AbsolutePosition ();
_fabb .DataHeaderLength =_fabb .DataOffset -_fabb .DataHeaderOffset ;_fabb .DataLength =int64 (_fabb ._ebcg .AbsoluteLength ())-_fabb .DataHeaderLength ;return nil ;};type GenericRefinementRegion struct{_dc templater ;_af templater ;_bf *_c .Reader ;_gg *Header ;
RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_f .Bitmap ;ReferenceBitmap *_f .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_gaf *_cc .Decoder ;_cd *_cc .DecoderStats ;_eec bool ;
_eecb []bool ;};func (_eegfe *HalftoneRegion )renderPattern (_bbgf [][]int )(_acdb error ){var _dbb ,_agc int ;for _gce :=0;_gce < int (_eegfe .HGridHeight );_gce ++{for _bdef :=0;_bdef < int (_eegfe .HGridWidth );_bdef ++{_dbb =_eegfe .computeX (_gce ,_bdef );
_agc =_eegfe .computeY (_gce ,_bdef );_febd :=_eegfe .Patterns [_bbgf [_gce ][_bdef ]];if _acdb =_f .Blit (_febd ,_eegfe .HalftoneRegionBitmap ,_dbb +int (_eegfe .HGridX ),_agc +int (_eegfe .HGridY ),_eegfe .CombinationOperator );_acdb !=nil {return _acdb ;
};};};return nil ;};func (_gcea *PageInformationSegment )readDefaultPixelValue ()error {_abcb ,_fccf :=_gcea ._eade .ReadBit ();if _fccf !=nil {return _fccf ;};_gcea .DefaultPixelValue =uint8 (_abcb &0xf);return nil ;};func NewHeader (d Documenter ,r *_c .Reader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_aedgg :=&Header {Reader :r };
if _fagcg :=_aedgg .parse (d ,r ,offset ,organizationType );_fagcg !=nil {return nil ,_dg .Wrap (_fagcg ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _aedgg ,nil ;};func (_ddbc *GenericRegion )setParameters (_dcef bool ,_dfgc ,_fgca int64 ,_dfef ,_ggac uint32 ){_ddbc .IsMMREncoded =_dcef ;
_ddbc .DataOffset =_dfgc ;_ddbc .DataLength =_fgca ;_ddbc .RegionSegment .BitmapHeight =_dfef ;_ddbc .RegionSegment .BitmapWidth =_ggac ;_ddbc ._gag =nil ;_ddbc .Bitmap =nil ;};func (_dbfda *SymbolDictionary )decodeAggregate (_bfgf ,_aeea uint32 )error {var (_cbeb int64 ;
_agfaf error ;);if _dbfda .IsHuffmanEncoded {_cbeb ,_agfaf =_dbfda .huffDecodeRefAggNInst ();if _agfaf !=nil {return _agfaf ;};}else {_cbbc ,_dadc :=_dbfda ._ded .DecodeInt (_dbfda ._dbdb );if _dadc !=nil {return _dadc ;};_cbeb =int64 (_cbbc );};if _cbeb > 1{return _dbfda .decodeThroughTextRegion (_bfgf ,_aeea ,uint32 (_cbeb ));
}else if _cbeb ==1{return _dbfda .decodeRefinedSymbol (_bfgf ,_aeea );};return nil ;};func (_edfb *HalftoneRegion )combineGrayscalePlanes (_aebf []*_f .Bitmap ,_ebccc int )error {_bbf :=0;for _geded :=0;_geded < _aebf [_ebccc ].Height ;_geded ++{for _ecffe :=0;
_ecffe < _aebf [_ebccc ].Width ;_ecffe +=8{_fdaa ,_gab :=_aebf [_ebccc +1].GetByte (_bbf );if _gab !=nil {return _gab ;};_aedc ,_gab :=_aebf [_ebccc ].GetByte (_bbf );if _gab !=nil {return _gab ;};_gab =_aebf [_ebccc ].SetByte (_bbf ,_f .CombineBytes (_aedc ,_fdaa ,_f .CmbOpXor ));
if _gab !=nil {return _gab ;};_bbf ++;};};return nil ;};func (_cdcbf *HalftoneRegion )parseHeader ()error {if _ebd :=_cdcbf .RegionSegment .parseHeader ();_ebd !=nil {return _ebd ;};_dbgfd ,_bbae :=_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ;
};_cdcbf .HDefaultPixel =int8 (_dbgfd );_dfec ,_bbae :=_cdcbf ._dade .ReadBits (3);if _bbae !=nil {return _bbae ;};_cdcbf .CombinationOperator =_f .CombinationOperator (_dfec &0xf);_dbgfd ,_bbae =_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ;
};if _dbgfd ==1{_cdcbf .HSkipEnabled =true ;};_dfec ,_bbae =_cdcbf ._dade .ReadBits (2);if _bbae !=nil {return _bbae ;};_cdcbf .HTemplate =byte (_dfec &0xf);_dbgfd ,_bbae =_cdcbf ._dade .ReadBit ();if _bbae !=nil {return _bbae ;};if _dbgfd ==1{_cdcbf .IsMMREncoded =true ;
};_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridWidth =uint32 (_dfec &_a .MaxUint32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridHeight =uint32 (_dfec &_a .MaxUint32 );
_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridX =int32 (_dfec &_a .MaxInt32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (32);if _bbae !=nil {return _bbae ;};_cdcbf .HGridY =int32 (_dfec &_a .MaxInt32 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (16);
if _bbae !=nil {return _bbae ;};_cdcbf .HRegionX =uint16 (_dfec &_a .MaxUint16 );_dfec ,_bbae =_cdcbf ._dade .ReadBits (16);if _bbae !=nil {return _bbae ;};_cdcbf .HRegionY =uint16 (_dfec &_a .MaxUint16 );if _bbae =_cdcbf .computeSegmentDataStructure ();
_bbae !=nil {return _bbae ;};return _cdcbf .checkInput ();};func (_dfc *Header )CleanSegmentData (){if _dfc .SegmentData !=nil {_dfc .SegmentData =nil ;};};func (_bea *HalftoneRegion )Init (hd *Header ,r *_c .Reader )error {_bea ._dade =r ;_bea ._ccge =hd ;
_bea .RegionSegment =NewRegionSegment (r );return _bea .parseHeader ();};func (_dfe *template0 )setIndex (_feda *_cc .DecoderStats ){_feda .SetIndex (0x100)};func (_bgad *PageInformationSegment )encodeStripingInformation (_aabe _c .BinaryWriter )(_gagb int ,_cfgg error ){const _gbcb ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn";
if !_bgad .IsStripe {if _gagb ,_cfgg =_aabe .Write ([]byte {0x00,0x00});_cfgg !=nil {return 0,_dg .Wrap (_cfgg ,_gbcb ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _gagb ,nil ;};_afe :=make ([]byte ,2);_b .BigEndian .PutUint16 (_afe ,_bgad .MaxStripeSize |1<<15);
if _gagb ,_cfgg =_aabe .Write (_afe );_cfgg !=nil {return 0,_dg .Wrapf (_cfgg ,_gbcb ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_bgad .MaxStripeSize );};return _gagb ,nil ;};func (_fgeed *TableSegment )HtOOB ()int32 {return _fgeed ._egcdd };
func (_bada *GenericRefinementRegion )String ()string {_beda :=&_ab .Builder {};_beda .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_beda .WriteString (_bada .RegionInfo .String ()+"\u000a");_beda .WriteString (_gb .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_bada .IsTPGROn ));
_beda .WriteString (_gb .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_bada .TemplateID ));_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_bada .GrAtX ));
_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_bada .GrAtY ));_beda .WriteString (_gb .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_bada .ReferenceDX ));
_beda .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_bada .ReferenceDY ));return _beda .String ();};func (_cfdb *PageInformationSegment )readMaxStripeSize ()error {_cded ,_agcg :=_cfdb ._eade .ReadBits (15);
if _agcg !=nil {return _agcg ;};_cfdb .MaxStripeSize =uint16 (_cded &_a .MaxUint16 );return nil ;};var _ SegmentEncoder =&RegionSegment {};func (_ceeca *TextRegion )createRegionBitmap ()error {_ceeca .RegionBitmap =_f .New (int (_ceeca .RegionInfo .BitmapWidth ),int (_ceeca .RegionInfo .BitmapHeight ));
if _ceeca .DefaultPixel !=0{_ceeca .RegionBitmap .SetDefaultPixel ();};return nil ;};func _bcbf (_cgc *_c .Reader ,_bcfd *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_bf :_cgc ,RegionInfo :NewRegionSegment (_cgc ),_gg :_bcfd ,_dc :&template0 {},_af :&template1 {}};
};func (_geb *Header )writeReferredToSegments (_abf _c .BinaryWriter )(_facd int ,_ggd error ){const _bgdg ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";var (_facg uint16 ;
_fbcc uint32 ;);_afa :=_geb .referenceSize ();_adg :=1;_fede :=make ([]byte ,_afa );for _ ,_dfab :=range _geb .RTSNumbers {switch _afa {case 4:_fbcc =uint32 (_dfab );_b .BigEndian .PutUint32 (_fede ,_fbcc );_adg ,_ggd =_abf .Write (_fede );if _ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065");
};case 2:_facg =uint16 (_dfab );_b .BigEndian .PutUint16 (_fede ,_facg );_adg ,_ggd =_abf .Write (_fede );if _ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"\u0075\u0069\u006e\u0074\u0031\u0036");};default:if _ggd =_abf .WriteByte (byte (_dfab ));_ggd !=nil {return 0,_dg .Wrap (_ggd ,_bgdg ,"\u0075\u0069\u006et\u0038");
};};_facd +=_adg ;};return _facd ,nil ;};type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_ffbd *GenericRegion )setParametersWithAt (_ggbc bool ,_eecbb byte ,_agfa ,_aaag bool ,_eba ,_cddg []int8 ,_dcfd ,_dbfd uint32 ,_bcff *_cc .DecoderStats ,_dfadd *_cc .Decoder ){_ffbd .IsMMREncoded =_ggbc ;
_ffbd .GBTemplate =_eecbb ;_ffbd .IsTPGDon =_agfa ;_ffbd .GBAtX =_eba ;_ffbd .GBAtY =_cddg ;_ffbd .RegionSegment .BitmapHeight =_dbfd ;_ffbd .RegionSegment .BitmapWidth =_dcfd ;_ffbd ._gag =nil ;_ffbd .Bitmap =nil ;if _bcff !=nil {_ffbd ._fgce =_bcff ;
};if _dfadd !=nil {_ffbd ._fba =_dfadd ;};_age .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",_ffbd );
};func (_dgg *template1 )form (_febf ,_cab ,_fagc ,_daf ,_agbc int16 )int16 {return ((_febf &0x02)<<8)|(_cab <<6)|((_fagc &0x03)<<4)|(_daf <<1)|_agbc ;};func (_acebc *TextRegion )setParameters (_ggcc *_cc .Decoder ,_agbcb ,_aagaa bool ,_agae ,_cbdgf uint32 ,_aedad uint32 ,_fgda int8 ,_edad uint32 ,_gbcab int8 ,_egcce _f .CombinationOperator ,_ggab int8 ,_eege int16 ,_feeag ,_bbge ,_bcge ,_bbdg ,_add ,_gbeb ,_bdcfe ,_edge ,_ddcg ,_cfbd int8 ,_defd ,_aaaff []int8 ,_dbafg []*_f .Bitmap ,_addc int8 ){_acebc ._cefb =_ggcc ;
_acebc .IsHuffmanEncoded =_agbcb ;_acebc .UseRefinement =_aagaa ;_acebc .RegionInfo .BitmapWidth =_agae ;_acebc .RegionInfo .BitmapHeight =_cbdgf ;_acebc .NumberOfSymbolInstances =_aedad ;_acebc .SbStrips =_fgda ;_acebc .NumberOfSymbols =_edad ;_acebc .DefaultPixel =_gbcab ;
_acebc .CombinationOperator =_egcce ;_acebc .IsTransposed =_ggab ;_acebc .ReferenceCorner =_eege ;_acebc .SbDsOffset =_feeag ;_acebc .SbHuffFS =_bbge ;_acebc .SbHuffDS =_bcge ;_acebc .SbHuffDT =_bbdg ;_acebc .SbHuffRDWidth =_add ;_acebc .SbHuffRDHeight =_gbeb ;
_acebc .SbHuffRSize =_ddcg ;_acebc .SbHuffRDX =_bdcfe ;_acebc .SbHuffRDY =_edge ;_acebc .SbrTemplate =_cfbd ;_acebc .SbrATX =_defd ;_acebc .SbrATY =_aaaff ;_acebc .Symbols =_dbafg ;_acebc ._aeaca =_addc ;};func (_edce *TableSegment )HtPS ()int32 {return _edce ._beea };
func (_gbgb *RegionSegment )Size ()int {return 17};func (_bfgg *GenericRegion )decodeTemplate1 (_agbg ,_edda ,_aba int ,_ebc ,_dbeg int )(_eceg error ){const _bedd ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";var (_ege ,_eed int ;
_bce ,_cdeg int ;_dee byte ;_cfa ,_ebcc int ;);if _agbg >=1{_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg );if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_bce =int (_dee );};if _agbg >=2{_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg -_bfgg .Bitmap .RowStride );
if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_cdeg =int (_dee )<<5;};_ege =((_bce >>1)&0x1f8)|((_cdeg >>1)&0x1e00);for _bae :=0;_bae < _aba ;_bae =_cfa {var (_dac byte ;_gda int ;);_cfa =_bae +8;if _gagf :=_edda -_bae ;
_gagf > 8{_gda =8;}else {_gda =_gagf ;};if _agbg > 0{_bce <<=8;if _cfa < _edda {_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg +1);if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_bce |=int (_dee );};};
if _agbg > 1{_cdeg <<=8;if _cfa < _edda {_dee ,_eceg =_bfgg .Bitmap .GetByte (_dbeg -_bfgg .Bitmap .RowStride +1);if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_cdeg |=int (_dee )<<5;};};for _aaga :=0;
_aaga < _gda ;_aaga ++{if _bfgg ._aeed {_eed =_bfgg .overrideAtTemplate1 (_ege ,_bae +_aaga ,_agbg ,int (_dac ),_aaga );_bfgg ._fgce .SetIndex (int32 (_eed ));}else {_bfgg ._fgce .SetIndex (int32 (_ege ));};_ebcc ,_eceg =_bfgg ._fba .DecodeBit (_bfgg ._fgce );
if _eceg !=nil {return _dg .Wrap (_eceg ,_bedd ,"");};_dac |=byte (_ebcc )<<uint (7-_aaga );_fdc :=uint (8-_aaga );_ege =((_ege &0xefb)<<1)|_ebcc |((_bce >>_fdc )&0x8)|((_cdeg >>_fdc )&0x200);};if _edc :=_bfgg .Bitmap .SetByte (_ebc ,_dac );_edc !=nil {return _dg .Wrap (_edc ,_bedd ,"");
};_ebc ++;_dbeg ++;};return nil ;};func (_cbea *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _cbea .SdHuffDecodeHeightSelection {case 0:_afga ,_bfbbg :=_ece .GetStandardTable (4);if _bfbbg !=nil {return 0,_bfbbg ;};
return _afga .Decode (_cbea ._dabd );case 1:_gcg ,_dcce :=_ece .GetStandardTable (5);if _dcce !=nil {return 0,_dcce ;};return _gcg .Decode (_cbea ._dabd );case 3:if _cbea ._gdgd ==nil {_bbaae ,_aadb :=_ece .GetStandardTable (0);if _aadb !=nil {return 0,_aadb ;
};_cbea ._gdgd =_bbaae ;};return _cbea ._gdgd .Decode (_cbea ._dabd );};return 0,nil ;};func (_caga *TextRegion )decodeRdw ()(int64 ,error ){const _caf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";if _caga .IsHuffmanEncoded {if _caga .SbHuffRDWidth ==3{if _caga ._cabg ==nil {var (_feeaa int ;
_daddc error ;);if _caga .SbHuffFS ==3{_feeaa ++;};if _caga .SbHuffDS ==3{_feeaa ++;};if _caga .SbHuffDT ==3{_feeaa ++;};_caga ._cabg ,_daddc =_caga .getUserTable (_feeaa );if _daddc !=nil {return 0,_dg .Wrap (_daddc ,_caf ,"");};};return _caga ._cabg .Decode (_caga ._bgge );
};_ffee ,_abdd :=_ece .GetStandardTable (14+int (_caga .SbHuffRDWidth ));if _abdd !=nil {return 0,_dg .Wrap (_abdd ,_caf ,"");};return _ffee .Decode (_caga ._bgge );};_aebg ,_cgdd :=_caga ._cefb .DecodeInt (_caga ._gbeg );if _cgdd !=nil {return 0,_dg .Wrap (_cgdd ,_caf ,"");
};return int64 (_aebg ),nil ;};func (_ccgac *RegionSegment )String ()string {_ffdb :=&_ab .Builder {};_ffdb .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");_ffdb .WriteString (_gb .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",_ccgac .BitmapWidth ,_ccgac .BitmapHeight ));
_ffdb .WriteString (_gb .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",_ccgac .XLocation ,_ccgac .YLocation ));_ffdb .WriteString (_gb .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_ccgac .CombinaionOperator ));
return _ffdb .String ();};func (_afgf *SymbolDictionary )decodeRefinedSymbol (_aaaag ,_adce uint32 )error {var (_cbff int ;_cgad ,_afff int32 ;);if _afgf .IsHuffmanEncoded {_dcdb ,_aged :=_afgf ._dabd .ReadBits (byte (_afgf ._gdfg ));if _aged !=nil {return _aged ;
};_cbff =int (_dcdb );_fdbd ,_aged :=_ece .GetStandardTable (15);if _aged !=nil {return _aged ;};_cdgc ,_aged :=_fdbd .Decode (_afgf ._dabd );if _aged !=nil {return _aged ;};_cgad =int32 (_cdgc );_cdgc ,_aged =_fdbd .Decode (_afgf ._dabd );if _aged !=nil {return _aged ;
};_afff =int32 (_cdgc );_fdbd ,_aged =_ece .GetStandardTable (1);if _aged !=nil {return _aged ;};if _ ,_aged =_fdbd .Decode (_afgf ._dabd );_aged !=nil {return _aged ;};_afgf ._dabd .Align ();}else {_affb ,_bcdb :=_afgf ._ded .DecodeIAID (uint64 (_afgf ._gdfg ),_afgf ._fbac );
if _bcdb !=nil {return _bcdb ;};_cbff =int (_affb );_cgad ,_bcdb =_afgf ._ded .DecodeInt (_afgf ._gffd );if _bcdb !=nil {return _bcdb ;};_afff ,_bcdb =_afgf ._ded .DecodeInt (_afgf ._fdff );if _bcdb !=nil {return _bcdb ;};};if _bdbe :=_afgf .setSymbolsArray ();
_bdbe !=nil {return _bdbe ;};_gae :=_afgf ._ecac [_cbff ];if _afcc :=_afgf .decodeNewSymbols (_aaaag ,_adce ,_gae ,_cgad ,_afff );_afcc !=nil {return _afcc ;};if _afgf .IsHuffmanEncoded {_afgf ._dabd .Align ();};return nil ;};func (_bafg *SymbolDictionary )encodeFlags (_aabc _c .BinaryWriter )(_cabd int ,_eacd error ){const _gbfa ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _eacd =_aabc .SkipBits (3);_eacd !=nil {return 0,_dg .Wrap (_eacd ,_gbfa ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _dcgf int ;if _bafg .SdrTemplate > 0{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");
};_dcgf =0;if _bafg .SdTemplate > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_dcgf =0;if _bafg .SdTemplate ==1||_bafg .SdTemplate ==3{_dcgf =1;
};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_dcgf =0;if _bafg ._eegc {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064");
};_dcgf =0;if _bafg ._eaf {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_dcgf =0;if _bafg .SdHuffAggInstanceSelection {_dcgf =1;
};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048\u0075\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074");};_dcgf =int (_bafg .SdHuffBMSizeSelection );if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0042\u006d\u0053\u0069\u007a\u0065");
};_dcgf =0;if _bafg .SdHuffDecodeWidthSelection > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_dcgf =0;switch _bafg .SdHuffDecodeWidthSelection {case 1,3:_dcgf =1;
};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_dcgf =0;if _bafg .SdHuffDecodeHeightSelection > 1{_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );
_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_dcgf =0;switch _bafg .SdHuffDecodeHeightSelection {case 1,3:_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");
};_dcgf =0;if _bafg .UseRefinementAggregation {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0052\u0065\u0066\u0041\u0067\u0067");};_dcgf =0;if _bafg .IsHuffmanEncoded {_dcgf =1;};if _eacd =_aabc .WriteBit (_dcgf );
_eacd !=nil {return _cabd ,_dg .Wrap (_eacd ,_gbfa ,"\u0073\u0064\u0048\u0075\u0066\u0066");};return 2,nil ;};func (_affe *PageInformationSegment )Init (h *Header ,r *_c .Reader )(_gggb error ){_affe ._eade =r ;if _gggb =_affe .parseHeader ();_gggb !=nil {return _dg .Wrap (_gggb ,"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 (_bbcf *Header )readSegmentNumber (_cdea *_c .Reader )error {const _cbb ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";_cbe :=make ([]byte ,4);_ ,_eegfa :=_cdea .Read (_cbe );if _eegfa !=nil {return _dg .Wrap (_eegfa ,_cbb ,"");
};_bbcf .SegmentNumber =_b .BigEndian .Uint32 (_cbe );return nil ;};func (_ffga *GenericRegion )overrideAtTemplate0a (_bade ,_bdcb ,_ccf ,_gdgc ,_eeaf ,_gfgb int )int {if _ffga .GBAtOverride [0]{_bade &=0xFFEF;if _ffga .GBAtY [0]==0&&_ffga .GBAtX [0]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [0]&0x1))<<4;
}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [0]),_ccf +int (_ffga .GBAtY [0])))<<4;};};if _ffga .GBAtOverride [1]{_bade &=0xFBFF;if _ffga .GBAtY [1]==0&&_ffga .GBAtX [1]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [1]&0x1))<<10;
}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [1]),_ccf +int (_ffga .GBAtY [1])))<<10;};};if _ffga .GBAtOverride [2]{_bade &=0xF7FF;if _ffga .GBAtY [2]==0&&_ffga .GBAtX [2]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [2]&0x1))<<11;
}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [2]),_ccf +int (_ffga .GBAtY [2])))<<11;};};if _ffga .GBAtOverride [3]{_bade &=0x7FFF;if _ffga .GBAtY [3]==0&&_ffga .GBAtX [3]>=-int8 (_eeaf ){_bade |=(_gdgc >>uint (int8 (_gfgb )-_ffga .GBAtX [3]&0x1))<<15;
}else {_bade |=int (_ffga .getPixel (_bdcb +int (_ffga .GBAtX [3]),_ccf +int (_ffga .GBAtY [3])))<<15;};};return _bade ;};func (_gdf *GenericRegion )String ()string {_bcd :=&_ab .Builder {};_bcd .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");
_bcd .WriteString (_gdf .RegionSegment .String ()+"\u000a");_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_gdf .UseExtTemplates ));_bcd .WriteString (_gb .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_gdf .IsTPGDon ));
_bcd .WriteString (_gb .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_gdf .GBTemplate ));_bcd .WriteString (_gb .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_gdf .IsMMREncoded ));
_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_gdf .GBAtX ));_bcd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_gdf .GBAtY ));
_bcd .WriteString (_gb .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_gdf .GBAtOverride ));return _bcd .String ();};type EncodeInitializer interface{InitEncode ();};func (_defg *Header )readHeaderFlags ()error {const _bgae ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073";
_fffe ,_bbce :=_defg .Reader .ReadBit ();if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _fffe !=0{_defg .RetainFlag =true ;};_fffe ,_bbce =_defg .Reader .ReadBit ();if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e");
};if _fffe !=0{_defg .PageAssociationFieldSize =true ;};_cegad ,_bbce :=_defg .Reader .ReadBits (6);if _bbce !=nil {return _dg .Wrap (_bbce ,_bgae ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_defg .Type =Type (int (_cegad ));
return nil ;};var _ templater =&template0 {};type Regioner interface{GetRegionBitmap ()(*_f .Bitmap ,error );GetRegionInfo ()*RegionSegment ;};func (_cagf *Header )writeSegmentPageAssociation (_fagd _c .BinaryWriter )(_dfeg int ,_gbca error ){const _dbcc ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e";
if _cagf .pageSize ()!=4{if _gbca =_fagd .WriteByte (byte (_cagf .PageAssociation ));_gbca !=nil {return 0,_dg .Wrap (_gbca ,_dbcc ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_gddf :=make ([]byte ,4);
_b .BigEndian .PutUint32 (_gddf ,uint32 (_cagf .PageAssociation ));if _dfeg ,_gbca =_fagd .Write (_gddf );_gbca !=nil {return 0,_dg .Wrap (_gbca ,_dbcc ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _dfeg ,nil ;
};func (_ceb *SymbolDictionary )decodeHeightClassBitmap (_cbde *_f .Bitmap ,_aegb int64 ,_efb int ,_bcad []int )error {for _fefg :=_aegb ;_fefg < int64 (_ceb ._cec );_fefg ++{var _aeaf int ;for _cbeg :=_aegb ;_cbeg <=_fefg -1;_cbeg ++{_aeaf +=_bcad [_cbeg ];
};_cfdg :=_g .Rect (_aeaf ,0,_aeaf +_bcad [_fefg ],_efb );_afgc ,_fdad :=_f .Extract (_cfdg ,_cbde );if _fdad !=nil {return _fdad ;};_ceb ._ddae [_fefg ]=_afgc ;_ceb ._ecac =append (_ceb ._ecac ,_afgc );};return nil ;};func (_fac *GenericRefinementRegion )getPixel (_daed *_f .Bitmap ,_cde ,_efg int )int {if _cde < 0||_cde >=_daed .Width {return 0;
};if _efg < 0||_efg >=_daed .Height {return 0;};if _daed .GetPixel (_cde ,_efg ){return 1;};return 0;};func (_ebe *TextRegion )readUseRefinement ()error {if !_ebe .UseRefinement ||_ebe .SbrTemplate !=0{return nil ;};var (_acgb byte ;_bggf error ;);_ebe .SbrATX =make ([]int8 ,2);
_ebe .SbrATY =make ([]int8 ,2);_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATX [0]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATY [0]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte ();
if _bggf !=nil {return _bggf ;};_ebe .SbrATX [1]=int8 (_acgb );_acgb ,_bggf =_ebe ._bgge .ReadByte ();if _bggf !=nil {return _bggf ;};_ebe .SbrATY [1]=int8 (_acgb );return nil ;};func (_fcce *Header )readReferredToSegmentNumbers (_dacg *_c .Reader ,_ecggg int )([]int ,error ){const _fbc ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073";
_ccadb :=make ([]int ,_ecggg );if _ecggg > 0{_fcce .RTSegments =make ([]*Header ,_ecggg );var (_abea uint64 ;_bdcd error ;);for _bgag :=0;_bgag < _ecggg ;_bgag ++{_abea ,_bdcd =_dacg .ReadBits (byte (_fcce .referenceSize ())<<3);if _bdcd !=nil {return nil ,_dg .Wrapf (_bdcd ,_fbc ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_bgag );
};_ccadb [_bgag ]=int (_abea &_a .MaxInt32 );};};return _ccadb ,nil ;};func (_bbda *Header )readDataStartOffset (_cdce *_c .Reader ,_acdc OrganizationType ){if _acdc ==OSequential {_bbda .SegmentDataStartOffset =uint64 (_cdce .AbsolutePosition ());};};
func (_afbb *SymbolDictionary )readNumberOfNewSymbols ()error {_ecaa ,_fbdc :=_afbb ._dabd .ReadBits (32);if _fbdc !=nil {return _fbdc ;};_afbb .NumberOfNewSymbols =uint32 (_ecaa &_a .MaxUint32 );return nil ;};type TextRegion struct{_bgge *_c .Reader ;
RegionInfo *RegionSegment ;SbrTemplate int8 ;SbDsOffset int8 ;DefaultPixel int8 ;CombinationOperator _f .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 ;_defb int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_f .Bitmap ;Symbols []*_f .Bitmap ;
_cefb *_cc .Decoder ;_gagbe *GenericRefinementRegion ;_fecfa *_cc .DecoderStats ;_dfca *_cc .DecoderStats ;_cgbe *_cc .DecoderStats ;_edbc *_cc .DecoderStats ;_adbfe *_cc .DecoderStats ;_gbeg *_cc .DecoderStats ;_gebe *_cc .DecoderStats ;_eadb *_cc .DecoderStats ;
_aaba *_cc .DecoderStats ;_gaad *_cc .DecoderStats ;_bdfb *_cc .DecoderStats ;_aeaca int8 ;_bgcg *_ece .FixedSizeTable ;Header *Header ;_fdabc _ece .Tabler ;_cbge _ece .Tabler ;_bddg _ece .Tabler ;_cabg _ece .Tabler ;_bceb _ece .Tabler ;_acgf _ece .Tabler ;
_fdcag _ece .Tabler ;_dccdc _ece .Tabler ;_eafd ,_fgf map[int ]int ;_ebab []int ;_efcg *_f .Points ;_afcg *_f .Bitmaps ;_eebf *_ag .IntSlice ;_efae ,_abccf int ;_dddb *_f .Boxes ;};func (_gcce *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_bfc int ;
_abce int32 ;_gcef error ;_ggcd =int32 (_gcce ._acg +_gcce .NumberOfNewSymbols );_agge =make ([]int ,_ggcd ););for _bbfd :=int32 (0);_bbfd < _ggcd ;_bbfd +=_abce {if _gcce .IsHuffmanEncoded {_cgeee ,_eacdc :=_ece .GetStandardTable (1);if _eacdc !=nil {return nil ,_eacdc ;
};_ecfff ,_eacdc :=_cgeee .Decode (_gcce ._dabd );if _eacdc !=nil {return nil ,_eacdc ;};_abce =int32 (_ecfff );}else {_abce ,_gcef =_gcce ._ded .DecodeInt (_gcce ._ggec );if _gcef !=nil {return nil ,_gcef ;};};if _abce !=0{if _bbfd +_abce > _ggcd {return nil ,_dg .Error ("\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0067\u0065\u0074T\u006f\u0045\u0078\u0070\u006f\u0072\u0074F\u006c\u0061\u0067\u0073","\u006d\u0061\u006c\u0066\u006f\u0072m\u0065\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0064\u0061\u0074\u0061\u0020\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u002e\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u006f\u0075\u0074\u0020\u006ff\u0020r\u0061\u006e\u0067\u0065");
};for _cdda :=_bbfd ;_cdda < _bbfd +_abce ;_cdda ++{_agge [_cdda ]=_bfc ;};};if _bfc ==0{_bfc =1;}else {_bfc =0;};};return _agge ,nil ;};func (_dfeb *SymbolDictionary )encodeSymbols (_gcba _c .BinaryWriter )(_decd int ,_dffa error ){const _gfdd ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c";
_ffab :=_bdc .New ();_ffab .Init ();_ceda ,_dffa :=_dfeb ._gabd .SelectByIndexes (_dfeb ._cacb );if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_dffcg :=map[*_f .Bitmap ]int {};for _ebfg ,_ffbge :=range _ceda .Values {_dffcg [_ffbge ]=_ebfg ;
};_ceda .SortByHeight ();var _ebcf ,_ceggc int ;_ddage ,_dffa :=_ceda .GroupByHeight ();if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"");};for _ ,_ffac :=range _ddage .Values {_cecf :=_ffac .Values [0].Height ;_ffde :=_cecf -_ebcf ;if _dffa =_ffab .EncodeInteger (_bdc .IADH ,_ffde );
_dffa !=nil {return 0,_dg .Wrapf (_dffa ,_gfdd ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_ffde );};_ebcf =_cecf ;_aega ,_feec :=_ffac .GroupByWidth ();if _feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_cecf );
};var _daee int ;for _ ,_agac :=range _aega .Values {for _ ,_fbbg :=range _agac .Values {_bffd :=_fbbg .Width ;_bbbb :=_bffd -_daee ;if _feec =_ffab .EncodeInteger (_bdc .IADW ,_bbbb );_feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_bbbb );
};_daee +=_bbbb ;if _feec =_ffab .EncodeBitmap (_fbbg ,false );_feec !=nil {return 0,_dg .Wrapf (_feec ,_gfdd ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_cecf ,_bffd );};_aadc :=_dffcg [_fbbg ];_dfeb ._gbdf [_aadc ]=_ceggc ;
_ceggc ++;};};if _feec =_ffab .EncodeOOB (_bdc .IADW );_feec !=nil {return 0,_dg .Wrap (_feec ,_gfdd ,"\u0049\u0041\u0044\u0057");};};if _dffa =_ffab .EncodeInteger (_bdc .IAEX ,0);_dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");
};if _dffa =_ffab .EncodeInteger (_bdc .IAEX ,len (_dfeb ._cacb ));_dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_ffab .Final ();_egae ,_dffa :=_ffab .WriteTo (_gcba );
if _dffa !=nil {return 0,_dg .Wrap (_dffa ,_gfdd ,"\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 (_egae ),nil ;};type PatternDictionary struct{_ebcg *_c .Reader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ;
Patterns []*_f .Bitmap ;GrayMax uint32 ;};func (_ddff *SymbolDictionary )getSbSymCodeLen ()int8 {_dacgc :=int8 (_a .Ceil (_a .Log (float64 (_ddff ._acg +_ddff .NumberOfNewSymbols ))/_a .Log (2)));if _ddff .IsHuffmanEncoded &&_dacgc < 1{return 1;};return _dacgc ;
};func (_cg *GenericRefinementRegion )decodeTemplate (_dda ,_gbe ,_edd ,_beg ,_bcb ,_bac ,_cega ,_egf ,_cac ,_gbf int ,_aede templater )(_ea error ){var (_bbg ,_abg ,_fee ,_gbee ,_bfba int16 ;_ced ,_aa ,_acc ,_ecgg int ;_gdgb byte ;);if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );
if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&(_cac )< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&(_cac +1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg );
if _ea !=nil {return _ea ;};_acc =int (_gdgb );};_gbf ++;if _dda >=1{_gdgb ,_ea =_cg .RegionBitmap .GetByte (_egf -_edd );if _ea !=nil {return _ea ;};_ecgg =int (_gdgb );};_egf ++;_cga :=_cg .ReferenceDX %8;_cfc :=6+_cga ;_cca :=_gbf %_beg ;if _cfc >=0{if _cfc < 8{_bbg =int16 (_ced >>uint (_cfc ))&0x07;
};if _cfc < 8{_abg =int16 (_aa >>uint (_cfc ))&0x07;};if _cfc < 8{_fee =int16 (_acc >>uint (_cfc ))&0x07;};if _cfc ==6&&_cca > 1{if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg -2);if _ea !=nil {return _ea ;
};_bbg |=int16 (_gdgb <<2)&0x04;};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -2);if _ea !=nil {return _ea ;};_abg |=int16 (_gdgb <<2)&0x04;};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg -2);
if _ea !=nil {return _ea ;};_fee |=int16 (_gdgb <<2)&0x04;};};if _cfc ==0{_ced =0;_aa =0;_acc =0;if _cca < _beg -1{if _cac >=1&&_cac -1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );if _ea !=nil {return _ea ;};_ced =int (_gdgb );
};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg );
if _ea !=nil {return _ea ;};_acc =int (_gdgb );};};_gbf ++;};}else {_bbg =int16 (_ced <<1)&0x07;_abg =int16 (_aa <<1)&0x07;_fee =int16 (_acc <<1)&0x07;_ced =0;_aa =0;_acc =0;if _cca < _beg -1{if _cac >=1&&_cac -1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );
if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&_cac +1< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg );
if _ea !=nil {return _ea ;};_acc =int (_gdgb );};_gbf ++;};_bbg |=int16 ((_ced >>7)&0x07);_abg |=int16 ((_aa >>7)&0x07);_fee |=int16 ((_acc >>7)&0x07);};_gbee =int16 (_ecgg >>6);_bfba =0;_abe :=(2-_cga )%8;_ced <<=uint (_abe );_aa <<=uint (_abe );_acc <<=uint (_abe );
_ecgg <<=2;var _ddg int ;for _ebg :=0;_ebg < _gbe ;_ebg ++{_gcc :=_ebg &0x07;_fde :=_aede .form (_bbg ,_abg ,_fee ,_gbee ,_bfba );if _cg ._eec {_gdgb ,_ea =_cg .RegionBitmap .GetByte (_cg .RegionBitmap .GetByteIndex (_ebg ,_dda ));if _ea !=nil {return _ea ;
};_cg ._cd .SetIndex (int32 (_cg .overrideAtTemplate0 (int (_fde ),_ebg ,_dda ,int (_gdgb ),_gcc )));}else {_cg ._cd .SetIndex (int32 (_fde ));};_ddg ,_ea =_cg ._gaf .DecodeBit (_cg ._cd );if _ea !=nil {return _ea ;};if _ea =_cg .RegionBitmap .SetPixel (_ebg ,_dda ,byte (_ddg ));
_ea !=nil {return _ea ;};_bbg =((_bbg <<1)|0x01&int16 (_ced >>7))&0x07;_abg =((_abg <<1)|0x01&int16 (_aa >>7))&0x07;_fee =((_fee <<1)|0x01&int16 (_acc >>7))&0x07;_gbee =((_gbee <<1)|0x01&int16 (_ecgg >>7))&0x07;_bfba =int16 (_ddg );if (_ebg -int (_cg .ReferenceDX ))%8==5{_ced =0;
_aa =0;_acc =0;if ((_ebg -int (_cg .ReferenceDX ))/8)+1< _cg .ReferenceBitmap .RowStride {if _cac >=1&&(_cac -1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf -_beg );if _ea !=nil {return _ea ;};_ced =int (_gdgb );};if _cac >=0&&_cac < _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf );
if _ea !=nil {return _ea ;};_aa =int (_gdgb );};if _cac >=-1&&(_cac +1)< _cg .ReferenceBitmap .Height {_gdgb ,_ea =_cg .ReferenceBitmap .GetByte (_gbf +_beg );if _ea !=nil {return _ea ;};_acc =int (_gdgb );};};_gbf ++;}else {_ced <<=1;_aa <<=1;_acc <<=1;
};if _gcc ==5&&_dda >=1{if ((_ebg >>3)+1)>=_cg .RegionBitmap .RowStride {_ecgg =0;}else {_gdgb ,_ea =_cg .RegionBitmap .GetByte (_egf -_edd );if _ea !=nil {return _ea ;};_ecgg =int (_gdgb );};_egf ++;}else {_ecgg <<=1;};};return nil ;};func (_bebc *TableSegment )parseHeader ()error {var (_bdga int ;
_gedd uint64 ;_eeac error ;);_bdga ,_eeac =_bebc ._adbf .ReadBit ();if _eeac !=nil {return _eeac ;};if _bdga ==1{return _gb .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",_bdga );
};if _gedd ,_eeac =_bebc ._adbf .ReadBits (3);_eeac !=nil {return _eeac ;};_bebc ._baed =(int32 (_gedd )+1)&0xf;if _gedd ,_eeac =_bebc ._adbf .ReadBits (3);_eeac !=nil {return _eeac ;};_bebc ._beea =(int32 (_gedd )+1)&0xf;if _gedd ,_eeac =_bebc ._adbf .ReadBits (32);
_eeac !=nil {return _eeac ;};_bebc ._gdb =int32 (_gedd &_a .MaxInt32 );if _gedd ,_eeac =_bebc ._adbf .ReadBits (32);_eeac !=nil {return _eeac ;};_bebc ._ggdc =int32 (_gedd &_a .MaxInt32 );return nil ;};func (_fgcea *SymbolDictionary )readNumberOfExportedSymbols ()error {_edg ,_fadg :=_fgcea ._dabd .ReadBits (32);
if _fadg !=nil {return _fadg ;};_fgcea .NumberOfExportedSymbols =uint32 (_edg &_a .MaxUint32 );return nil ;};func (_bcec *Header )writeSegmentDataLength (_fddeb _c .BinaryWriter )(_dgde int ,_eecbf error ){_fegc :=make ([]byte ,4);_b .BigEndian .PutUint32 (_fegc ,uint32 (_bcec .SegmentDataLength ));
if _dgde ,_eecbf =_fddeb .Write (_fegc );_eecbf !=nil {return 0,_dg .Wrap (_eecbf ,"\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 _dgde ,nil ;
};func (_bgce *PatternDictionary )parseHeader ()error {_age .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 (){_age .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");
}();_ ,_gegc :=_bgce ._ebcg .ReadBits (5);if _gegc !=nil {return _gegc ;};if _gegc =_bgce .readTemplate ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .readIsMMREncoded ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .readPatternWidthAndHeight ();_gegc !=nil {return _gegc ;
};if _gegc =_bgce .readGrayMax ();_gegc !=nil {return _gegc ;};if _gegc =_bgce .computeSegmentDataStructure ();_gegc !=nil {return _gegc ;};return _bgce .checkInput ();};func (_daba *PageInformationSegment )Encode (w _c .BinaryWriter )(_ceab int ,_egac error ){const _abge ="\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";
_ffdf :=make ([]byte ,4);_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .PageBMWidth ));_ceab ,_egac =w .Write (_ffdf );if _egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"\u0077\u0069\u0064t\u0068");};_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .PageBMHeight ));
var _gge int ;_gge ,_egac =w .Write (_ffdf );if _egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_ceab +=_gge ;_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .ResolutionX ));_gge ,_egac =w .Write (_ffdf );
if _egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_ceab +=_gge ;_b .BigEndian .PutUint32 (_ffdf ,uint32 (_daba .ResolutionY ));if _gge ,_egac =w .Write (_ffdf );_egac !=nil {return _gge +_ceab ,_dg .Wrap (_egac ,_abge ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");
};_ceab +=_gge ;if _egac =_daba .encodeFlags (w );_egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"");};_ceab ++;if _gge ,_egac =_daba .encodeStripingInformation (w );_egac !=nil {return _ceab ,_dg .Wrap (_egac ,_abge ,"");};_ceab +=_gge ;return _ceab ,nil ;
};func (_aeda *SymbolDictionary )parseHeader ()(_bcbgc error ){_age .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 _bcbgc !=nil {_age .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",_bcbgc );
}else {_age .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 _bcbgc =_aeda .readRegionFlags ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setAtPixels ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setRefinementAtPixels ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .readNumberOfExportedSymbols ();
_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .readNumberOfNewSymbols ();_bcbgc !=nil {return _bcbgc ;};if _bcbgc =_aeda .setInSyms ();_bcbgc !=nil {return _bcbgc ;};if _aeda ._eaf {_cbdg :=_aeda .Header .RTSegments ;for _efcd :=len (_cbdg )-1;_efcd >=0;
_efcd --{if _cbdg [_efcd ].Type ==0{_bedc ,_acbf :=_cbdg [_efcd ].SegmentData .(*SymbolDictionary );if !_acbf {_bcbgc =_gb .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",_cbdg [_efcd ]);
return _bcbgc ;};if _bedc ._eaf {_aeda .setRetainedCodingContexts (_bedc );};break ;};};};if _bcbgc =_aeda .checkInput ();_bcbgc !=nil {return _bcbgc ;};return nil ;};type Type int ;func (_adeba *TableSegment )HtRS ()int32 {return _adeba ._baed };func (_dfaa *TextRegion )computeSymbolCodeLength ()error {if _dfaa .IsHuffmanEncoded {return _dfaa .symbolIDCodeLengths ();
};_dfaa ._aeaca =int8 (_a .Ceil (_a .Log (float64 (_dfaa .NumberOfSymbols ))/_a .Log (2)));return nil ;};func (_aceb *SymbolDictionary )String ()string {_dggd :=&_ab .Builder {};_dggd .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a");
_dggd .WriteString (_gb .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_aceb .SdrTemplate ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_aceb .SdTemplate ));
_dggd .WriteString (_gb .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",_aceb ._eegc ));_dggd .WriteString (_gb .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",_aceb ._eaf ));
_dggd .WriteString (_gb .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",_aceb .SdHuffAggInstanceSelection ));
_dggd .WriteString (_gb .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",_aceb .SdHuffBMSizeSelection ));_dggd .WriteString (_gb .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",_aceb .SdHuffDecodeWidthSelection ));
_dggd .WriteString (_gb .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",_aceb .SdHuffDecodeHeightSelection ));_dggd .WriteString (_gb .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",_aceb .UseRefinementAggregation ));
_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_aceb .IsHuffmanEncoded ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aceb .SdATX ));
_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aceb .SdATY ));_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aceb .SdrATX ));
_dggd .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aceb .SdrATY ));_dggd .WriteString (_gb .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",_aceb .NumberOfExportedSymbols ));
_dggd .WriteString (_gb .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_aceb .NumberOfNewSymbols ));_dggd .WriteString (_gb .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",_aceb ._acg ));
_dggd .WriteString (_gb .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",_aceb ._cec ));return _dggd .String ();};func (_beeb *SymbolDictionary )InitEncode (symbols *_f .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _dgfa ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065";
_beeb .SdATX =[]int8 {3,-3,2,-2};_beeb .SdATY =[]int8 {-1,-1,-2,-2};_beeb ._gabd =symbols ;_beeb ._cacb =make ([]int ,len (symbolList ));copy (_beeb ._cacb ,symbolList );if len (_beeb ._cacb )!=_beeb ._gabd .Size (){return _dg .Error (_dgfa ,"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");
};_beeb .NumberOfNewSymbols =uint32 (symbols .Size ());_beeb .NumberOfExportedSymbols =uint32 (symbols .Size ());_beeb ._gbdf =symbolMap ;_beeb ._dfadf =unborderSymbols ;return nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);func (_geda *Header )writeReferredToCount (_bacc _c .BinaryWriter )(_daeg int ,_ebgb error ){const _cbaad ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074";
_geda .RTSNumbers =make ([]int ,len (_geda .RTSegments ));for _gbea ,_cddf :=range _geda .RTSegments {_geda .RTSNumbers [_gbea ]=int (_cddf .SegmentNumber );};if len (_geda .RTSNumbers )<=4{var _afgg byte ;if len (_geda .RetainBits )>=1{_afgg =_geda .RetainBits [0];
};_afgg |=byte (len (_geda .RTSNumbers ))<<5;if _ebgb =_bacc .WriteByte (_afgg );_ebgb !=nil {return 0,_dg .Wrap (_ebgb ,_cbaad ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_bdd :=uint32 (len (_geda .RTSNumbers ));
_fdde :=make ([]byte ,4+_ag .Ceil (len (_geda .RTSNumbers )+1,8));_bdd |=0x7<<29;_b .BigEndian .PutUint32 (_fdde ,_bdd );copy (_fdde [1:],_geda .RetainBits );_daeg ,_ebgb =_bacc .Write (_fdde );if _ebgb !=nil {return 0,_dg .Wrap (_ebgb ,_cbaad ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");
};return _daeg ,nil ;};func (_gcf *template0 )form (_aaa ,_bcg ,_afg ,_ddf ,_dfg int16 )int16 {return (_aaa <<10)|(_bcg <<7)|(_afg <<4)|(_ddf <<1)|_dfg ;};func (_cad *GenericRefinementRegion )readAtPixels ()error {_cad .GrAtX =make ([]int8 ,2);_cad .GrAtY =make ([]int8 ,2);
_ceac ,_fbg :=_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtX [0]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtY [0]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;
};_cad .GrAtX [1]=int8 (_ceac );_ceac ,_fbg =_cad ._bf .ReadByte ();if _fbg !=nil {return _fbg ;};_cad .GrAtY [1]=int8 (_ceac );return nil ;};func (_cdec *Header )readHeaderLength (_gada *_c .Reader ,_aeab int64 ){_cdec .HeaderLength =_gada .AbsolutePosition ()-_aeab ;
};func (_fecfb *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _fecfb ._feea ==nil {var (_cdgb int ;_eddab error ;);if _fecfb .SdHuffDecodeHeightSelection ==3{_cdgb ++;};if _fecfb .SdHuffDecodeWidthSelection ==3{_cdgb ++;};_fecfb ._feea ,_eddab =_fecfb .getUserTable (_cdgb );
if _eddab !=nil {return 0,_eddab ;};};return _fecfb ._feea .Decode (_fecfb ._dabd );};func (_cgaa *TextRegion )decodeRdh ()(int64 ,error ){const _bfe ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _cgaa .IsHuffmanEncoded {if _cgaa .SbHuffRDHeight ==3{if _cgaa ._bceb ==nil {var (_eefe int ;
_dfbd error ;);if _cgaa .SbHuffFS ==3{_eefe ++;};if _cgaa .SbHuffDS ==3{_eefe ++;};if _cgaa .SbHuffDT ==3{_eefe ++;};if _cgaa .SbHuffRDWidth ==3{_eefe ++;};_cgaa ._bceb ,_dfbd =_cgaa .getUserTable (_eefe );if _dfbd !=nil {return 0,_dg .Wrap (_dfbd ,_bfe ,"");
};};return _cgaa ._bceb .Decode (_cgaa ._bgge );};_acgg ,_bfgd :=_ece .GetStandardTable (14+int (_cgaa .SbHuffRDHeight ));if _bfgd !=nil {return 0,_dg .Wrap (_bfgd ,_bfe ,"");};return _acgg .Decode (_cgaa ._bgge );};_bagg ,_beab :=_cgaa ._cefb .DecodeInt (_cgaa ._gebe );
if _beab !=nil {return 0,_dg .Wrap (_beab ,_bfe ,"");};return int64 (_bagg ),nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_f .Bitmap ,error );};func (_befd *SymbolDictionary )checkInput ()error {if _befd .SdHuffDecodeHeightSelection ==2{_age .Log .Debug ("\u0053\u0079\u006d\u0062\u006fl\u0020\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u0053e\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006e\u006f\u0074\u0020\u0070\u0065r\u006d\u0069\u0074\u0074\u0065\u0064",_befd .SdHuffDecodeHeightSelection );
};if _befd .SdHuffDecodeWidthSelection ==2{_age .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",_befd .SdHuffDecodeWidthSelection );
};if _befd .IsHuffmanEncoded {if _befd .SdTemplate !=0{_age .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",_befd .SdTemplate );
};if !_befd .UseRefinementAggregation {if !_befd .UseRefinementAggregation {if _befd ._eegc {_age .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");
_befd ._eegc =false ;};if _befd ._eaf {_age .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");
_befd ._eaf =false ;};};};}else {if _befd .SdHuffBMSizeSelection !=0{_age .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");
_befd .SdHuffBMSizeSelection =0;};if _befd .SdHuffDecodeWidthSelection !=0{_age .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");
_befd .SdHuffDecodeWidthSelection =0;};if _befd .SdHuffDecodeHeightSelection !=0{_age .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");
_befd .SdHuffDecodeHeightSelection =0;};};if !_befd .UseRefinementAggregation {if _befd .SdrTemplate !=0{_age .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",_befd .SdrTemplate );
_befd .SdrTemplate =0;};};if !_befd .IsHuffmanEncoded ||!_befd .UseRefinementAggregation {if _befd .SdHuffAggInstanceSelection {_age .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",_befd .SdHuffAggInstanceSelection );
};};return nil ;};func (_deg *GenericRegion )InitEncode (bm *_f .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _cbf ="\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 _dg .Error (_cbf ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _dg .Error (_cbf ,"\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");
};_deg .Bitmap =bm ;_deg .GBTemplate =byte (template );switch _deg .GBTemplate {case 0:_deg .GBAtX =[]int8 {3,-3,2,-2};_deg .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_deg .GBAtX =[]int8 {3};_deg .GBAtY =[]int8 {-1};case 2,3:_deg .GBAtX =[]int8 {2};_deg .GBAtY =[]int8 {-1};
default:return _dg .Errorf (_cbf ,"\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 );
};_deg .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_deg .IsTPGDon =duplicateLineRemoval ;return nil ;};func (_egb *PageInformationSegment )checkInput ()error {if _egb .PageBMHeight ==_a .MaxInt32 {if !_egb .IsStripe {_age .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 ;};type templater interface{form (_cccd ,_dcg ,_bdg ,_bca ,_fbe int16 )int16 ;setIndex (_gbcg *_cc .DecoderStats );};func (_ffcd *GenericRegion )overrideAtTemplate1 (_geg ,_cgfb ,_fce ,_bdba ,_dffc int )int {_geg &=0x1FF7;if _ffcd .GBAtY [0]==0&&_ffcd .GBAtX [0]>=-int8 (_dffc ){_geg |=(_bdba >>uint (7-(int8 (_dffc )+_ffcd .GBAtX [0]))&0x1)<<3;
}else {_geg |=int (_ffcd .getPixel (_cgfb +int (_ffcd .GBAtX [0]),_fce +int (_ffcd .GBAtY [0])))<<3;};return _geg ;};func (_cegg *HalftoneRegion )computeX (_dgdc ,_ceff int )int {return _cegg .shiftAndFill (int (_cegg .HGridX )+_dgdc *int (_cegg .HRegionY )+_ceff *int (_cegg .HRegionX ));
};func (_daac *RegionSegment )readCombinationOperator ()error {_ebfb ,_bbfb :=_daac ._fcaf .ReadBits (3);if _bbfb !=nil {return _bbfb ;};_daac .CombinaionOperator =_f .CombinationOperator (_ebfb &0xF);return nil ;};func (_fbgfc *SymbolDictionary )setAtPixels ()error {if _fbgfc .IsHuffmanEncoded {return nil ;
};_bcbgd :=1;if _fbgfc .SdTemplate ==0{_bcbgd =4;};if _bddf :=_fbgfc .readAtPixels (_bcbgd );_bddf !=nil {return _bddf ;};return nil ;};func (_eggfd *TextRegion )String ()string {_ddbcf :=&_ab .Builder {};_ddbcf .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a");
_ddbcf .WriteString (_eggfd .RegionInfo .String ()+"\u000a");_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_eggfd .SbrTemplate ));_ddbcf .WriteString (_gb .Sprintf ("\u0009-\u0020S\u0062\u0044\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_eggfd .SbDsOffset ));
_ddbcf .WriteString (_gb .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_eggfd .DefaultPixel ));_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_eggfd .CombinationOperator ));
_ddbcf .WriteString (_gb .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_eggfd .IsTransposed ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_eggfd .ReferenceCorner ));
_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_eggfd .UseRefinement ));_ddbcf .WriteString (_gb .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_eggfd .IsHuffmanEncoded ));
if _eggfd .IsHuffmanEncoded {_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffRSize ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDY ));
_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDX ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_eggfd .SbHuffRDHeight ));
_ddbcf .WriteString (_gb .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffRDWidth ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffDT ));
_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffDS ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_eggfd .SbHuffFS ));
};_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbrATX ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_eggfd .SbrATY ));
_ddbcf .WriteString (_gb .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",_eggfd .NumberOfSymbolInstances ));_ddbcf .WriteString (_gb .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_eggfd .SbrATX ));
return _ddbcf .String ();};func (_fcb *GenericRegion )Encode (w _c .BinaryWriter )(_afb int ,_dag error ){const _acf ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";if _fcb .Bitmap ==nil {return 0,_dg .Error (_acf ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");
};_fcc ,_dag :=_fcb .RegionSegment .Encode (w );if _dag !=nil {return 0,_dg .Wrap (_dag ,_acf ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};_afb +=_fcc ;if _dag =w .SkipBits (4);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073");
};var _ddag int ;if _fcb .IsTPGDon {_ddag =1;};if _dag =w .WriteBit (_ddag );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_ddag =0;if _dag =w .WriteBit (int (_fcb .GBTemplate >>1)&0x01);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074");
};if _dag =w .WriteBit (int (_fcb .GBTemplate )&0x01);_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _fcb .UseMMR {_ddag =1;};if _dag =w .WriteBit (_ddag );
_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_afb ++;if _fcc ,_dag =_fcb .writeGBAtPixels (w );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_afb +=_fcc ;_cfd :=_bdc .New ();
if _dag =_cfd .EncodeBitmap (_fcb .Bitmap ,_fcb .IsTPGDon );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_cfd .Final ();var _dgf int64 ;if _dgf ,_dag =_cfd .WriteTo (w );_dag !=nil {return _afb ,_dg .Wrap (_dag ,_acf ,"");};_afb +=int (_dgf );
return _afb ,nil ;};func (_ecc *SymbolDictionary )Encode (w _c .BinaryWriter )(_ffdgc int ,_bdbg error ){const _cggb ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";if _ecc ==nil {return 0,_dg .Error (_cggb ,"\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 _ffdgc ,_bdbg =_ecc .encodeFlags (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_gdef ,_bdbg :=_ecc .encodeATFlags (w );if _bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeRefinementATFlags (w );
_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeNumSyms (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");};_ffdgc +=_gdef ;if _gdef ,_bdbg =_ecc .encodeSymbols (w );_bdbg !=nil {return _ffdgc ,_dg .Wrap (_bdbg ,_cggb ,"");
};_ffdgc +=_gdef ;return _ffdgc ,nil ;};func (_gcdg *TableSegment )HtHigh ()int32 {return _gcdg ._ggdc };func (_ebgg *GenericRegion )decodeLine (_faa ,_dfa ,_cgcb int )error {const _ffg ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_ged :=_ebgg .Bitmap .GetByteIndex (0,_faa );
_bdca :=_ged -_ebgg .Bitmap .RowStride ;switch _ebgg .GBTemplate {case 0:if !_ebgg .UseExtTemplates {return _ebgg .decodeTemplate0a (_faa ,_dfa ,_cgcb ,_ged ,_bdca );};return _ebgg .decodeTemplate0b (_faa ,_dfa ,_cgcb ,_ged ,_bdca );case 1:return _ebgg .decodeTemplate1 (_faa ,_dfa ,_cgcb ,_ged ,_bdca );
case 2:return _ebgg .decodeTemplate2 (_faa ,_dfa ,_cgcb ,_ged ,_bdca );case 3:return _ebgg .decodeTemplate3 (_faa ,_dfa ,_cgcb ,_ged ,_bdca );};return _dg .Errorf (_ffg ,"\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",_ebgg .GBTemplate );
};func (_ddbf *TextRegion )blit (_dbce *_f .Bitmap ,_bcbb int64 )error {if _ddbf .IsTransposed ==0&&(_ddbf .ReferenceCorner ==2||_ddbf .ReferenceCorner ==3){_ddbf ._defb +=int64 (_dbce .Width -1);}else if _ddbf .IsTransposed ==1&&(_ddbf .ReferenceCorner ==0||_ddbf .ReferenceCorner ==2){_ddbf ._defb +=int64 (_dbce .Height -1);
};_ebbb :=_ddbf ._defb ;if _ddbf .IsTransposed ==1{_ebbb ,_bcbb =_bcbb ,_ebbb ;};switch _ddbf .ReferenceCorner {case 0:_bcbb -=int64 (_dbce .Height -1);case 2:_bcbb -=int64 (_dbce .Height -1);_ebbb -=int64 (_dbce .Width -1);case 3:_ebbb -=int64 (_dbce .Width -1);
};_gdefc :=_f .Blit (_dbce ,_ddbf .RegionBitmap ,int (_ebbb ),int (_bcbb ),_ddbf .CombinationOperator );if _gdefc !=nil {return _gdefc ;};if _ddbf .IsTransposed ==0&&(_ddbf .ReferenceCorner ==0||_ddbf .ReferenceCorner ==1){_ddbf ._defb +=int64 (_dbce .Width -1);
};if _ddbf .IsTransposed ==1&&(_ddbf .ReferenceCorner ==1||_ddbf .ReferenceCorner ==3){_ddbf ._defb +=int64 (_dbce .Height -1);};return nil ;};func (_fdag *GenericRegion )overrideAtTemplate0b (_gde ,_fccg ,_faab ,_cgfe ,_aeg ,_cead int )int {if _fdag .GBAtOverride [0]{_gde &=0xFFFD;
if _fdag .GBAtY [0]==0&&_fdag .GBAtX [0]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [0]&0x1))<<1;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [0]),_faab +int (_fdag .GBAtY [0])))<<1;};};if _fdag .GBAtOverride [1]{_gde &=0xDFFF;
if _fdag .GBAtY [1]==0&&_fdag .GBAtX [1]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [1]&0x1))<<13;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [1]),_faab +int (_fdag .GBAtY [1])))<<13;};};if _fdag .GBAtOverride [2]{_gde &=0xFDFF;
if _fdag .GBAtY [2]==0&&_fdag .GBAtX [2]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [2]&0x1))<<9;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [2]),_faab +int (_fdag .GBAtY [2])))<<9;};};if _fdag .GBAtOverride [3]{_gde &=0xBFFF;
if _fdag .GBAtY [3]==0&&_fdag .GBAtX [3]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [3]&0x1))<<14;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [3]),_faab +int (_fdag .GBAtY [3])))<<14;};};if _fdag .GBAtOverride [4]{_gde &=0xEFFF;
if _fdag .GBAtY [4]==0&&_fdag .GBAtX [4]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [4]&0x1))<<12;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [4]),_faab +int (_fdag .GBAtY [4])))<<12;};};if _fdag .GBAtOverride [5]{_gde &=0xFFDF;
if _fdag .GBAtY [5]==0&&_fdag .GBAtX [5]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [5]&0x1))<<5;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [5]),_faab +int (_fdag .GBAtY [5])))<<5;};};if _fdag .GBAtOverride [6]{_gde &=0xFFFB;
if _fdag .GBAtY [6]==0&&_fdag .GBAtX [6]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [6]&0x1))<<2;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [6]),_faab +int (_fdag .GBAtY [6])))<<2;};};if _fdag .GBAtOverride [7]{_gde &=0xFFF7;
if _fdag .GBAtY [7]==0&&_fdag .GBAtX [7]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [7]&0x1))<<3;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [7]),_faab +int (_fdag .GBAtY [7])))<<3;};};if _fdag .GBAtOverride [8]{_gde &=0xF7FF;
if _fdag .GBAtY [8]==0&&_fdag .GBAtX [8]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [8]&0x1))<<11;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [8]),_faab +int (_fdag .GBAtY [8])))<<11;};};if _fdag .GBAtOverride [9]{_gde &=0xFFEF;
if _fdag .GBAtY [9]==0&&_fdag .GBAtX [9]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [9]&0x1))<<4;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [9]),_faab +int (_fdag .GBAtY [9])))<<4;};};if _fdag .GBAtOverride [10]{_gde &=0x7FFF;
if _fdag .GBAtY [10]==0&&_fdag .GBAtX [10]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [10]&0x1))<<15;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [10]),_faab +int (_fdag .GBAtY [10])))<<15;};};if _fdag .GBAtOverride [11]{_gde &=0xFDFF;
if _fdag .GBAtY [11]==0&&_fdag .GBAtX [11]>=-int8 (_aeg ){_gde |=(_cgfe >>uint (int8 (_cead )-_fdag .GBAtX [11]&0x1))<<10;}else {_gde |=int (_fdag .getPixel (_fccg +int (_fdag .GBAtX [11]),_faab +int (_fdag .GBAtY [11])))<<10;};};return _gde ;};func (_bbc *GenericRefinementRegion )updateOverride ()error {if _bbc .GrAtX ==nil ||_bbc .GrAtY ==nil {return _ec .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
};if len (_bbc .GrAtX )!=len (_bbc .GrAtY ){return _ec .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_bbc ._eecb =make ([]bool ,len (_bbc .GrAtX ));switch _bbc .TemplateID {case 0:if _bbc .GrAtX [0]!=-1&&_bbc .GrAtY [0]!=-1{_bbc ._eecb [0]=true ;
_bbc ._eec =true ;};if _bbc .GrAtX [1]!=-1&&_bbc .GrAtY [1]!=-1{_bbc ._eecb [1]=true ;_bbc ._eec =true ;};case 1:_bbc ._eec =false ;};return nil ;};func (_ecb *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_eg ,_ebb ,_cbd ,_agf ,_gfa ,_fb ,_ffa ,_gca ,_ccg int )error {var (_cea ,_gdg ,_ccc ,_feg ,_aee ,_ccga int ;
_bfb byte ;_bcf error ;);if _eg > 0{_bfb ,_bcf =_ecb .RegionBitmap .GetByte (_ffa -_cbd );if _bcf !=nil {return _bcf ;};_ccc =int (_bfb );};if _gca > 0&&_gca <=_ecb .ReferenceBitmap .Height {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg -_agf +_fb );
if _bcf !=nil {return _bcf ;};_feg =int (_bfb )<<4;};if _gca >=0&&_gca < _ecb .ReferenceBitmap .Height {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_fb );if _bcf !=nil {return _bcf ;};_aee =int (_bfb )<<1;};if _gca > -2&&_gca < _ecb .ReferenceBitmap .Height -1{_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_agf +_fb );
if _bcf !=nil {return _bcf ;};_ccga =int (_bfb );};_cea =((_ccc >>5)&0x6)|((_ccga >>2)&0x30)|(_aee &0x180)|(_feg &0xc00);var _fc int ;for _dcf :=0;_dcf < _gfa ;_dcf =_fc {var _gga int ;_fc =_dcf +8;var _dad int ;if _dad =_ebb -_dcf ;_dad > 8{_dad =8;};
_fgc :=_fc < _ebb ;_cceb :=_fc < _ecb .ReferenceBitmap .Width ;_aff :=_fb +1;if _eg > 0{_bfb =0;if _fgc {_bfb ,_bcf =_ecb .RegionBitmap .GetByte (_ffa -_cbd +1);if _bcf !=nil {return _bcf ;};};_ccc =(_ccc <<8)|int (_bfb );};if _gca > 0&&_gca <=_ecb .ReferenceBitmap .Height {var _fbb int ;
if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg -_agf +_aff );if _bcf !=nil {return _bcf ;};_fbb =int (_bfb )<<4;};_feg =(_feg <<8)|_fbb ;};if _gca >=0&&_gca < _ecb .ReferenceBitmap .Height {var _gbc int ;if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_aff );
if _bcf !=nil {return _bcf ;};_gbc =int (_bfb )<<1;};_aee =(_aee <<8)|_gbc ;};if _gca > -2&&_gca < (_ecb .ReferenceBitmap .Height -1){_bfb =0;if _cceb {_bfb ,_bcf =_ecb .ReferenceBitmap .GetByte (_ccg +_agf +_aff );if _bcf !=nil {return _bcf ;};};_ccga =(_ccga <<8)|int (_bfb );
};for _affc :=0;_affc < _dad ;_affc ++{var _agd int ;_dd :=false ;_ef :=(_cea >>4)&0x1ff;if _ef ==0x1ff{_dd =true ;_agd =1;}else if _ef ==0x00{_dd =true ;};if !_dd {if _ecb ._eec {_gdg =_ecb .overrideAtTemplate0 (_cea ,_dcf +_affc ,_eg ,_gga ,_affc );_ecb ._cd .SetIndex (int32 (_gdg ));
}else {_ecb ._cd .SetIndex (int32 (_cea ));};_agd ,_bcf =_ecb ._gaf .DecodeBit (_ecb ._cd );if _bcf !=nil {return _bcf ;};};_eca :=uint (7-_affc );_gga |=_agd <<_eca ;_cea =((_cea &0xdb6)<<1)|_agd |(_ccc >>_eca +5)&0x002|((_ccga >>_eca +2)&0x010)|((_aee >>_eca )&0x080)|((_feg >>_eca )&0x400);
};_bcf =_ecb .RegionBitmap .SetByte (_ffa ,byte (_gga ));if _bcf !=nil {return _bcf ;};_ffa ++;_ccg ++;};return nil ;};func (_ffdd *SymbolDictionary )encodeRefinementATFlags (_ebce _c .BinaryWriter )(_ade int ,_bagb error ){const _egfb ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073";
if !_ffdd .UseRefinementAggregation ||_ffdd .SdrTemplate !=0{return 0,nil ;};for _aec :=0;_aec < 2;_aec ++{if _bagb =_ebce .WriteByte (byte (_ffdd .SdrATX [_aec ]));_bagb !=nil {return _ade ,_dg .Wrapf (_bagb ,_egfb ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_aec );
};_ade ++;if _bagb =_ebce .WriteByte (byte (_ffdd .SdrATY [_aec ]));_bagb !=nil {return _ade ,_dg .Wrapf (_bagb ,_egfb ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_aec );};_ade ++;};return _ade ,nil ;};func (_gaa *GenericRegion )GetRegionInfo ()*RegionSegment {return _gaa .RegionSegment };
func (_agea *GenericRegion )Size ()int {return _agea .RegionSegment .Size ()+1+2*len (_agea .GBAtX )};func (_egcf *HalftoneRegion )computeY (_ffgd ,_becf int )int {return _egcf .shiftAndFill (int (_egcf .HGridY )+_ffgd *int (_egcf .HRegionX )-_becf *int (_egcf .HRegionY ));
};func (_ce *GenericRefinementRegion )decodeSLTP ()(int ,error ){_ce .Template .setIndex (_ce ._cd );return _ce ._gaf .DecodeBit (_ce ._cd );};func (_fdg *GenericRegion )overrideAtTemplate2 (_fad ,_ccad ,_ccgab ,_ecag ,_gad int )int {_fad &=0x3FB;if _fdg .GBAtY [0]==0&&_fdg .GBAtX [0]>=-int8 (_gad ){_fad |=(_ecag >>uint (7-(int8 (_gad )+_fdg .GBAtX [0]))&0x1)<<2;
}else {_fad |=int (_fdg .getPixel (_ccad +int (_fdg .GBAtX [0]),_ccgab +int (_fdg .GBAtY [0])))<<2;};return _fad ;};func (_ffddg *TextRegion )decodeIb (_ggdce ,_gdcc int64 )(*_f .Bitmap ,error ){const _cagc ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062";
var (_aeaa error ;_gbacc *_f .Bitmap ;);if _ggdce ==0{if int (_gdcc )> len (_ffddg .Symbols )-1{return nil ,_dg .Error (_cagc ,"\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 _ffddg .Symbols [int (_gdcc )],nil ;};var _bbaed ,_agec ,_agaf ,_dgfgg int64 ;_bbaed ,_aeaa =_ffddg .decodeRdw ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_agec ,_aeaa =_ffddg .decodeRdh ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");
};_agaf ,_aeaa =_ffddg .decodeRdx ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_dgfgg ,_aeaa =_ffddg .decodeRdy ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};if _ffddg .IsHuffmanEncoded {if _ ,_aeaa =_ffddg .decodeSymInRefSize ();
_aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"");};_ffddg ._bgge .Align ();};_gfccc :=_ffddg .Symbols [_gdcc ];_dbcf :=uint32 (_gfccc .Width );_edeg :=uint32 (_gfccc .Height );_bgef :=int32 (uint32 (_bbaed )>>1)+int32 (_agaf );_ggf :=int32 (uint32 (_agec )>>1)+int32 (_dgfgg );
if _ffddg ._gagbe ==nil {_ffddg ._gagbe =_bcbf (_ffddg ._bgge ,nil );};_ffddg ._gagbe .setParameters (_ffddg ._bdfb ,_ffddg ._cefb ,_ffddg .SbrTemplate ,_dbcf +uint32 (_bbaed ),_edeg +uint32 (_agec ),_gfccc ,_bgef ,_ggf ,false ,_ffddg .SbrATX ,_ffddg .SbrATY );
_gbacc ,_aeaa =_ffddg ._gagbe .GetRegionBitmap ();if _aeaa !=nil {return nil ,_dg .Wrap (_aeaa ,_cagc ,"\u0067\u0072\u0066");};if _ffddg .IsHuffmanEncoded {_ffddg ._bgge .Align ();};return _gbacc ,nil ;};func (_ecd *GenericRegion )setOverrideFlag (_bbcd int ){_ecd .GBAtOverride [_bbcd ]=true ;
_ecd ._aeed =true ;};func (_gadab *SymbolDictionary )GetDictionary ()([]*_f .Bitmap ,error ){_age .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 (){_age .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");
_age .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",_gadab ._ffdg ,_gadab ._ddae );
}();if _gadab ._ffdg ==nil {var _agbbe error ;if _gadab .UseRefinementAggregation {_gadab ._gdfg =_gadab .getSbSymCodeLen ();};if !_gadab .IsHuffmanEncoded {if _agbbe =_gadab .setCodingStatistics ();_agbbe !=nil {return nil ,_agbbe ;};};_gadab ._ddae =make ([]*_f .Bitmap ,_gadab .NumberOfNewSymbols );
var _ecgbc []int ;if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {_ecgbc =make ([]int ,_gadab .NumberOfNewSymbols );};if _agbbe =_gadab .setSymbolsArray ();_agbbe !=nil {return nil ,_agbbe ;};var _dagcf ,_bcbg int64 ;_gadab ._cec =0;for _gadab ._cec < _gadab .NumberOfNewSymbols {_bcbg ,_agbbe =_gadab .decodeHeightClassDeltaHeight ();
if _agbbe !=nil {return nil ,_agbbe ;};_dagcf +=_bcbg ;var _ffdef ,_ddcc uint32 ;_daegb :=int64 (_gadab ._cec );for {var _cccb int64 ;_cccb ,_agbbe =_gadab .decodeDifferenceWidth ();if _ec .Is (_agbbe ,_d .ErrOOB ){break ;};if _agbbe !=nil {return nil ,_agbbe ;
};if _gadab ._cec >=_gadab .NumberOfNewSymbols {break ;};_ffdef +=uint32 (_cccb );_ddcc +=_ffdef ;if !_gadab .IsHuffmanEncoded ||_gadab .UseRefinementAggregation {if !_gadab .UseRefinementAggregation {_agbbe =_gadab .decodeDirectlyThroughGenericRegion (_ffdef ,uint32 (_dagcf ));
if _agbbe !=nil {return nil ,_agbbe ;};}else {_agbbe =_gadab .decodeAggregate (_ffdef ,uint32 (_dagcf ));if _agbbe !=nil {return nil ,_agbbe ;};};}else if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {_ecgbc [_gadab ._cec ]=int (_ffdef );
};_gadab ._cec ++;};if _gadab .IsHuffmanEncoded &&!_gadab .UseRefinementAggregation {var _ffe int64 ;if _gadab .SdHuffBMSizeSelection ==0{var _eeafg _ece .Tabler ;_eeafg ,_agbbe =_ece .GetStandardTable (1);if _agbbe !=nil {return nil ,_agbbe ;};_ffe ,_agbbe =_eeafg .Decode (_gadab ._dabd );
if _agbbe !=nil {return nil ,_agbbe ;};}else {_ffe ,_agbbe =_gadab .huffDecodeBmSize ();if _agbbe !=nil {return nil ,_agbbe ;};};_gadab ._dabd .Align ();var _ffgb *_f .Bitmap ;_ffgb ,_agbbe =_gadab .decodeHeightClassCollectiveBitmap (_ffe ,uint32 (_dagcf ),_ddcc );
if _agbbe !=nil {return nil ,_agbbe ;};_agbbe =_gadab .decodeHeightClassBitmap (_ffgb ,_daegb ,int (_dagcf ),_ecgbc );if _agbbe !=nil {return nil ,_agbbe ;};};};_babd ,_agbbe :=_gadab .getToExportFlags ();if _agbbe !=nil {return nil ,_agbbe ;};_gadab .setExportedSymbols (_babd );
};return _gadab ._ffdg ,nil ;};func (_dcgb *TextRegion )parseHeader ()error {var _ecfb error ;_age .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 _ecfb !=nil {_age .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",_ecfb );
}else {_age .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 _ecfb =_dcgb .RegionInfo .parseHeader ();
_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .readRegionFlags ();_ecfb !=nil {return _ecfb ;};if _dcgb .IsHuffmanEncoded {if _ecfb =_dcgb .readHuffmanFlags ();_ecfb !=nil {return _ecfb ;};};if _ecfb =_dcgb .readUseRefinement ();_ecfb !=nil {return _ecfb ;
};if _ecfb =_dcgb .readAmountOfSymbolInstances ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .getSymbols ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .computeSymbolCodeLength ();_ecfb !=nil {return _ecfb ;};if _ecfb =_dcgb .checkInput ();_ecfb !=nil {return _ecfb ;
};_age .Log .Trace ("\u0025\u0073",_dcgb .String ());return nil ;};func (_adcc *PageInformationSegment )readResolution ()error {_cgee ,_bcege :=_adcc ._eade .ReadBits (32);if _bcege !=nil {return _bcege ;};_adcc .ResolutionX =int (_cgee &_a .MaxInt32 );
_cgee ,_bcege =_adcc ._eade .ReadBits (32);if _bcege !=nil {return _bcege ;};_adcc .ResolutionY =int (_cgee &_a .MaxInt32 );return nil ;};func (_gdac *SymbolDictionary )encodeATFlags (_gfab _c .BinaryWriter )(_gabe int ,_adfc error ){const _bdgge ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073";
if _gdac .IsHuffmanEncoded ||_gdac .SdTemplate !=0{return 0,nil ;};_bede :=4;if _gdac .SdTemplate !=0{_bede =1;};for _cgfg :=0;_cgfg < _bede ;_cgfg ++{if _adfc =_gfab .WriteByte (byte (_gdac .SdATX [_cgfg ]));_adfc !=nil {return _gabe ,_dg .Wrapf (_adfc ,_bdgge ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_cgfg );
};_gabe ++;if _adfc =_gfab .WriteByte (byte (_gdac .SdATY [_cgfg ]));_adfc !=nil {return _gabe ,_dg .Wrapf (_adfc ,_bdgge ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_cgfg );};_gabe ++;};return _gabe ,nil ;};func (_cdead *TextRegion )checkInput ()error {const _gbcf ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074";
if !_cdead .UseRefinement {if _cdead .SbrTemplate !=0{_age .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbrTemplate =0;};};if _cdead .SbHuffFS ==2||_cdead .SbHuffRDWidth ==2||_cdead .SbHuffRDHeight ==2||_cdead .SbHuffRDX ==2||_cdead .SbHuffRDY ==2{return _dg .Error (_gbcf ,"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 !_cdead .UseRefinement {if _cdead .SbHuffRSize !=0{_age .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbHuffRSize =0;};if _cdead .SbHuffRDY !=0{_age .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");
_cdead .SbHuffRDY =0;};if _cdead .SbHuffRDX !=0{_age .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_cdead .SbHuffRDX =0;};if _cdead .SbHuffRDWidth !=0{_age .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200");
_cdead .SbHuffRDWidth =0;};if _cdead .SbHuffRDHeight !=0{_age .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");_cdead .SbHuffRDHeight =0;};
};return nil ;};func (_ccae *TextRegion )Encode (w _c .BinaryWriter )(_ebgac int ,_gec error ){const _ebacb ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";if _ebgac ,_gec =_ccae .RegionInfo .Encode (w );
_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,"");};var _cfgdg int ;if _cfgdg ,_gec =_ccae .encodeFlags (w );_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,"");};_ebgac +=_cfgdg ;if _cfgdg ,_gec =_ccae .encodeSymbols (w );_gec !=nil {return _ebgac ,_dg .Wrap (_gec ,_ebacb ,"");
};_ebgac +=_cfgdg ;return _ebgac ,nil ;};func (_ecgd *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _fcfd ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _ecgd .SbHuffRSize ==0{_edaeg ,_caace :=_ece .GetStandardTable (1);
if _caace !=nil {return 0,_dg .Wrap (_caace ,_fcfd ,"");};return _edaeg .Decode (_ecgd ._bgge );};if _ecgd ._dccdc ==nil {var (_bgec int ;_daca error ;);if _ecgd .SbHuffFS ==3{_bgec ++;};if _ecgd .SbHuffDS ==3{_bgec ++;};if _ecgd .SbHuffDT ==3{_bgec ++;
};if _ecgd .SbHuffRDWidth ==3{_bgec ++;};if _ecgd .SbHuffRDHeight ==3{_bgec ++;};if _ecgd .SbHuffRDX ==3{_bgec ++;};if _ecgd .SbHuffRDY ==3{_bgec ++;};_ecgd ._dccdc ,_daca =_ecgd .getUserTable (_bgec );if _daca !=nil {return 0,_dg .Wrap (_daca ,_fcfd ,"");
};};_cade ,_cdcg :=_ecgd ._dccdc .Decode (_ecgd ._bgge );if _cdcg !=nil {return 0,_dg .Wrap (_cdcg ,_fcfd ,"");};return _cade ,nil ;};func (_ceec *SymbolDictionary )decodeThroughTextRegion (_fcae ,_ffaf ,_acdff uint32 )error {if _ceec ._fagf ==nil {_ceec ._fagf =_dabc (_ceec ._dabd ,nil );
_ceec ._fagf .setContexts (_ceec ._cfba ,_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_ceec ._fbac ,_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1),_cc .NewStats (512,1));};if _dca :=_ceec .setSymbolsArray ();
_dca !=nil {return _dca ;};_ceec ._fagf .setParameters (_ceec ._ded ,_ceec .IsHuffmanEncoded ,true ,_fcae ,_ffaf ,_acdff ,1,_ceec ._acg +_ceec ._cec ,0,0,0,1,0,0,0,0,0,0,0,0,0,_ceec .SdrTemplate ,_ceec .SdrATX ,_ceec .SdrATY ,_ceec ._ecac ,_ceec ._gdfg );
return _ceec .addSymbol (_ceec ._fagf );};func (_bdfc *Header )writeFlags (_fegbb _c .BinaryWriter )(_cdge error ){const _edfd ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";_gdca :=byte (_bdfc .Type );
if _cdge =_fegbb .WriteByte (_gdca );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\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 !_bdfc .RetainFlag &&!_bdfc .PageAssociationFieldSize {return nil ;};if _cdge =_fegbb .SkipBits (-8);_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\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 _fbef int ;if _bdfc .RetainFlag {_fbef =1;};if _cdge =_fegbb .WriteBit (_fbef );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_fbef =0;if _bdfc .PageAssociationFieldSize {_fbef =1;
};if _cdge =_fegbb .WriteBit (_fbef );_cdge !=nil {return _dg .Wrap (_cdge ,_edfd ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_fegbb .FinishByte ();return nil ;};type GenericRegion struct{_faca *_c .Reader ;
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 ;_aeed bool ;
Bitmap *_f .Bitmap ;_fba *_cc .Decoder ;_fgce *_cc .DecoderStats ;_gag *_ee .Decoder ;};func (_bgecc *TextRegion )readRegionFlags ()error {var (_gfabb int ;_dfbf uint64 ;_cebc error ;);_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ;
};_bgecc .SbrTemplate =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (5);if _cebc !=nil {return _cebc ;};_bgecc .SbDsOffset =int8 (_dfbf );if _bgecc .SbDsOffset > 0x0f{_bgecc .SbDsOffset -=0x20;};_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ;
};_bgecc .DefaultPixel =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .CombinationOperator =_f .CombinationOperator (int (_dfbf )&0x3);_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ;
};_bgecc .IsTransposed =int8 (_gfabb );_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .ReferenceCorner =int16 (_dfbf )&0x3;_dfbf ,_cebc =_bgecc ._bgge .ReadBits (2);if _cebc !=nil {return _cebc ;};_bgecc .LogSBStrips =int16 (_dfbf )&0x3;
_bgecc .SbStrips =1<<uint (_bgecc .LogSBStrips );_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ;};if _gfabb ==1{_bgecc .UseRefinement =true ;};_gfabb ,_cebc =_bgecc ._bgge .ReadBit ();if _cebc !=nil {return _cebc ;};if _gfabb ==1{_bgecc .IsHuffmanEncoded =true ;
};return nil ;};func (_gbd *GenericRefinementRegion )GetRegionInfo ()*RegionSegment {return _gbd .RegionInfo };func (_dgd *HalftoneRegion )checkInput ()error {if _dgd .IsMMREncoded {if _dgd .HTemplate !=0{_age .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",_dgd .HTemplate );
};if _dgd .HSkipEnabled {_age .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",_dgd .HSkipEnabled );
};};return nil ;};func (_bab *HalftoneRegion )GetRegionBitmap ()(*_f .Bitmap ,error ){if _bab .HalftoneRegionBitmap !=nil {return _bab .HalftoneRegionBitmap ,nil ;};var _cag error ;_bab .HalftoneRegionBitmap =_f .New (int (_bab .RegionSegment .BitmapWidth ),int (_bab .RegionSegment .BitmapHeight ));
if _bab .Patterns ==nil ||(_bab .Patterns !=nil &&len (_bab .Patterns )==0){_bab .Patterns ,_cag =_bab .GetPatterns ();if _cag !=nil {return nil ,_cag ;};};if _bab .HDefaultPixel ==1{_bab .HalftoneRegionBitmap .SetDefaultPixel ();};_fae :=_a .Ceil (_a .Log (float64 (len (_bab .Patterns )))/_a .Log (2));
_fbge :=int (_fae );var _fdba [][]int ;_fdba ,_cag =_bab .grayScaleDecoding (_fbge );if _cag !=nil {return nil ,_cag ;};if _cag =_bab .renderPattern (_fdba );_cag !=nil {return nil ,_cag ;};return _bab .HalftoneRegionBitmap ,nil ;};func (_def *HalftoneRegion )shiftAndFill (_fdbcb int )int {_fdbcb >>=8;
if _fdbcb < 0{_dga :=int (_a .Log (float64 (_deb (_fdbcb )))/_a .Log (2));_egda :=31-_dga ;for _caac :=1;_caac < _egda ;_caac ++{_fdbcb |=1<<uint (31-_caac );};};return _fdbcb ;};var _ _ece .BasicTabler =&TableSegment {};func (_begg Type )String ()string {switch _begg {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 (_afcce *SymbolDictionary )setRetainedCodingContexts (_efagc *SymbolDictionary ){_afcce ._ded =_efagc ._ded ;
_afcce .IsHuffmanEncoded =_efagc .IsHuffmanEncoded ;_afcce .UseRefinementAggregation =_efagc .UseRefinementAggregation ;_afcce .SdTemplate =_efagc .SdTemplate ;_afcce .SdrTemplate =_efagc .SdrTemplate ;_afcce .SdATX =_efagc .SdATX ;_afcce .SdATY =_efagc .SdATY ;
_afcce .SdrATX =_efagc .SdrATX ;_afcce .SdrATY =_efagc .SdrATY ;_afcce ._cfba =_efagc ._cfba ;};func (_dfcf *SymbolDictionary )getUserTable (_aggcd int )(_ece .Tabler ,error ){var _fgdg int ;for _ ,_dgb :=range _dfcf .Header .RTSegments {if _dgb .Type ==53{if _fgdg ==_aggcd {_gea ,_cbgc :=_dgb .GetSegmentData ();
if _cbgc !=nil {return nil ,_cbgc ;};_dcfb :=_gea .(_ece .BasicTabler );return _ece .NewEncodedTable (_dcfb );};_fgdg ++;};};return nil ,nil ;};func (_dfad *GenericRegion )overrideAtTemplate3 (_cge ,_fbadd ,_dbff ,_gfdg ,_bec int )int {_cge &=0x3EF;if _dfad .GBAtY [0]==0&&_dfad .GBAtX [0]>=-int8 (_bec ){_cge |=(_gfdg >>uint (7-(int8 (_bec )+_dfad .GBAtX [0]))&0x1)<<4;
}else {_cge |=int (_dfad .getPixel (_fbadd +int (_dfad .GBAtX [0]),_dbff +int (_dfad .GBAtY [0])))<<4;};return _cge ;};func (_ffge *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_egee ,_gage :=_ffge ._eade .ReadBit ();if _gage !=nil {return _gage ;
};if _egee ==1{_ffge ._cbfcb =true ;};return nil ;};func (_dbbf *PageInformationSegment )CombinationOperator ()_f .CombinationOperator {return _dbbf ._dafc };func (_bedac *PatternDictionary )setGbAtPixels (){if _bedac .HDTemplate ==0{_bedac .GBAtX =make ([]int8 ,4);
_bedac .GBAtY =make ([]int8 ,4);_bedac .GBAtX [0]=-int8 (_bedac .HdpWidth );_bedac .GBAtY [0]=0;_bedac .GBAtX [1]=-3;_bedac .GBAtY [1]=-1;_bedac .GBAtX [2]=2;_bedac .GBAtY [2]=-2;_bedac .GBAtX [3]=-2;_bedac .GBAtY [3]=-2;}else {_bedac .GBAtX =[]int8 {-int8 (_bedac .HdpWidth )};
_bedac .GBAtY =[]int8 {0};};};func (_cbeee *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _cbeee .IsHuffmanEncoded {switch _cbeee .SdHuffDecodeWidthSelection {case 0:_efde ,_gadb :=_ece .GetStandardTable (2);if _gadb !=nil {return 0,_gadb ;
};return _efde .Decode (_cbeee ._dabd );case 1:_cegada ,_dccd :=_ece .GetStandardTable (3);if _dccd !=nil {return 0,_dccd ;};return _cegada .Decode (_cbeee ._dabd );case 3:if _cbeee ._gagc ==nil {var _adeb int ;if _cbeee .SdHuffDecodeHeightSelection ==3{_adeb ++;
};_dgc ,_ffef :=_cbeee .getUserTable (_adeb );if _ffef !=nil {return 0,_ffef ;};_cbeee ._gagc =_dgc ;};return _cbeee ._gagc .Decode (_cbeee ._dabd );};}else {_bgcb ,_abfg :=_cbeee ._ded .DecodeInt (_cbeee ._ggcfb );if _abfg !=nil {return 0,_abfg ;};return int64 (_bgcb ),nil ;
};return 0,nil ;};func (_bgg *PageInformationSegment )parseHeader ()(_bdfe error ){_age .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 _efdb ="[\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 _bdfe !=nil {_efdb +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_bdfe .Error ();}else {_efdb +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_age .Log .Trace (_efdb );}();if _bdfe =_bgg .readWidthAndHeight ();
_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readResolution ();_bdfe !=nil {return _bdfe ;};_ ,_bdfe =_bgg ._eade .ReadBit ();if _bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readCombinationOperatorOverrideAllowed ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readRequiresAuxiliaryBuffer ();
_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readCombinationOperator ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readDefaultPixelValue ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readContainsRefinement ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readIsLossless ();
_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readIsStriped ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .readMaxStripeSize ();_bdfe !=nil {return _bdfe ;};if _bdfe =_bgg .checkInput ();_bdfe !=nil {return _bdfe ;};_age .Log .Trace ("\u0025\u0073",_bgg );
return nil ;};func (_eee *PageInformationSegment )Size ()int {return 19};func (_cdc *GenericRefinementRegion )decodeOptimized (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf int )error {var (_eb error ;_edf int ;_daa int ;);_eegf :=_ffc -int (_cdc .ReferenceDY );
if _df :=int (-_cdc .ReferenceDX );_df > 0{_edf =_df ;};_dae :=_cdc .ReferenceBitmap .GetByteIndex (_edf ,_eegf );if _cdc .ReferenceDX > 0{_daa =int (_cdc .ReferenceDX );};_ace :=_cdc .RegionBitmap .GetByteIndex (_daa ,_ffc );switch _cdc .TemplateID {case 0:_eb =_cdc .decodeTemplate (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf ,_ace ,_eegf ,_dae ,_cdc ._dc );
case 1:_eb =_cdc .decodeTemplate (_ffc ,_bgc ,_eeg ,_faf ,_bed ,_dcc ,_dbf ,_ace ,_eegf ,_dae ,_cdc ._af );};return _eb ;};type SegmentEncoder interface{Encode (_affg _c .BinaryWriter )(_gbbc int ,_egef error );};func (_edcb *TextRegion )encodeFlags (_bece _c .BinaryWriter )(_acee int ,_affbf error ){const _fecdb ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _affbf =_bece .WriteBit (int (_edcb .SbrTemplate ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .SbDsOffset ),5);_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0073\u0062\u0044\u0073\u004f\u0066\u0066\u0073\u0065\u0074");
};if _affbf =_bece .WriteBit (int (_edcb .DefaultPixel ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .CombinationOperator ),2);
_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _affbf =_bece .WriteBit (int (_edcb .IsTransposed ));_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064");
};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .ReferenceCorner ),2);_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_affbf =_bece .WriteBits (uint64 (_edcb .LogSBStrips ),2);
_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _eddad int ;if _edcb .UseRefinement {_eddad =1;};if _affbf =_bece .WriteBit (_eddad );_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074");
};_eddad =0;if _edcb .IsHuffmanEncoded {_eddad =1;};if _affbf =_bece .WriteBit (_eddad );_affbf !=nil {return _acee ,_dg .Wrap (_affbf ,_fecdb ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_acee =2;return _acee ,nil ;};func (_gcd *PageInformationSegment )readIsStriped ()error {_gbac ,_adbg :=_gcd ._eade .ReadBit ();
if _adbg !=nil {return _adbg ;};if _gbac ==1{_gcd .IsStripe =true ;};return nil ;};func (_aggc *RegionSegment )parseHeader ()error {const _bbbfb ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_age .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 (){_age .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");}();_fefd ,_bbfa :=_aggc ._fcaf .ReadBits (32);
if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0077\u0069\u0064t\u0068");};_aggc .BitmapWidth =uint32 (_fefd &_a .MaxUint32 );_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0068\u0065\u0069\u0067\u0068\u0074");
};_aggc .BitmapHeight =uint32 (_fefd &_a .MaxUint32 );_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_aggc .XLocation =uint32 (_fefd &_a .MaxUint32 );
_fefd ,_bbfa =_aggc ._fcaf .ReadBits (32);if _bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_aggc .YLocation =uint32 (_fefd &_a .MaxUint32 );if _ ,_bbfa =_aggc ._fcaf .ReadBits (5);_bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d");
};if _bbfa =_aggc .readCombinationOperator ();_bbfa !=nil {return _dg .Wrap (_bbfa ,_bbbfb ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};func (_adbd *PageInformationSegment )readWidthAndHeight ()error {_fbd ,_bgccc :=_adbd ._eade .ReadBits (32);
if _bgccc !=nil {return _bgccc ;};_adbd .PageBMWidth =int (_fbd &_a .MaxInt32 );_fbd ,_bgccc =_adbd ._eade .ReadBits (32);if _bgccc !=nil {return _bgccc ;};_adbd .PageBMHeight =int (_fbd &_a .MaxInt32 );return nil ;};func (_dfgg *PageInformationSegment )encodeFlags (_ccggg _c .BinaryWriter )(_adbb error ){const _egcd ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _adbb =_ccggg .SkipBits (1);_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _gdcb int ;if _dfgg .CombinationOperatorOverrideAllowed (){_gdcb =1;};if _adbb =_ccggg .WriteBit (_gdcb );
_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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");};_gdcb =0;if _dfgg ._bdag {_gdcb =1;
};if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _adbb =_ccggg .WriteBit ((int (_dfgg ._dafc )>>1)&0x01);
_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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 _adbb =_ccggg .WriteBit (int (_dfgg ._dafc )&0x01);
_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\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");};_gdcb =int (_dfgg .DefaultPixelValue );
if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_gdcb =0;if _dfgg ._fabe {_gdcb =1;
};if _adbb =_ccggg .WriteBit (_gdcb );_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_gdcb =0;if _dfgg .IsLossless {_gdcb =1;};if _adbb =_ccggg .WriteBit (_gdcb );
_adbb !=nil {return _dg .Wrap (_adbb ,_egcd ,"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 ;};type RegionSegment struct{_fcaf *_c .Reader ;BitmapWidth uint32 ;
BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _f .CombinationOperator ;};func (_fdeb *GenericRegion )updateOverrideFlags ()error {const _bga ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073";
if _fdeb .GBAtX ==nil ||_fdeb .GBAtY ==nil {return nil ;};if len (_fdeb .GBAtX )!=len (_fdeb .GBAtY ){return _dg .Errorf (_bga ,"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 (_fdeb .GBAtX ),len (_fdeb .GBAtY ));
};_fdeb .GBAtOverride =make ([]bool ,len (_fdeb .GBAtX ));switch _fdeb .GBTemplate {case 0:if !_fdeb .UseExtTemplates {if _fdeb .GBAtX [0]!=3||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};if _fdeb .GBAtX [1]!=-3||_fdeb .GBAtY [1]!=-1{_fdeb .setOverrideFlag (1);
};if _fdeb .GBAtX [2]!=2||_fdeb .GBAtY [2]!=-2{_fdeb .setOverrideFlag (2);};if _fdeb .GBAtX [3]!=-2||_fdeb .GBAtY [3]!=-2{_fdeb .setOverrideFlag (3);};}else {if _fdeb .GBAtX [0]!=-2||_fdeb .GBAtY [0]!=0{_fdeb .setOverrideFlag (0);};if _fdeb .GBAtX [1]!=0||_fdeb .GBAtY [1]!=-2{_fdeb .setOverrideFlag (1);
};if _fdeb .GBAtX [2]!=-2||_fdeb .GBAtY [2]!=-1{_fdeb .setOverrideFlag (2);};if _fdeb .GBAtX [3]!=-1||_fdeb .GBAtY [3]!=-2{_fdeb .setOverrideFlag (3);};if _fdeb .GBAtX [4]!=1||_fdeb .GBAtY [4]!=-2{_fdeb .setOverrideFlag (4);};if _fdeb .GBAtX [5]!=2||_fdeb .GBAtY [5]!=-1{_fdeb .setOverrideFlag (5);
};if _fdeb .GBAtX [6]!=-3||_fdeb .GBAtY [6]!=0{_fdeb .setOverrideFlag (6);};if _fdeb .GBAtX [7]!=-4||_fdeb .GBAtY [7]!=0{_fdeb .setOverrideFlag (7);};if _fdeb .GBAtX [8]!=2||_fdeb .GBAtY [8]!=-2{_fdeb .setOverrideFlag (8);};if _fdeb .GBAtX [9]!=3||_fdeb .GBAtY [9]!=-1{_fdeb .setOverrideFlag (9);
};if _fdeb .GBAtX [10]!=-2||_fdeb .GBAtY [10]!=-2{_fdeb .setOverrideFlag (10);};if _fdeb .GBAtX [11]!=-3||_fdeb .GBAtY [11]!=-1{_fdeb .setOverrideFlag (11);};};case 1:if _fdeb .GBAtX [0]!=3||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};case 2:if _fdeb .GBAtX [0]!=2||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);
};case 3:if _fdeb .GBAtX [0]!=2||_fdeb .GBAtY [0]!=-1{_fdeb .setOverrideFlag (0);};};return nil ;};func (_ffbf *TextRegion )decodeDfs ()(int64 ,error ){if _ffbf .IsHuffmanEncoded {if _ffbf .SbHuffFS ==3{if _ffbf ._fdabc ==nil {var _dfcd error ;_ffbf ._fdabc ,_dfcd =_ffbf .getUserTable (0);
if _dfcd !=nil {return 0,_dfcd ;};};return _ffbf ._fdabc .Decode (_ffbf ._bgge );};_bdbb ,_baedc :=_ece .GetStandardTable (6+int (_ffbf .SbHuffFS ));if _baedc !=nil {return 0,_baedc ;};return _bdbb .Decode (_ffbf ._bgge );};_daef ,_fccc :=_ffbf ._cefb .DecodeInt (_ffbf ._dfca );
if _fccc !=nil {return 0,_fccc ;};return int64 (_daef ),nil ;};func (_dbba *Header )parse (_abb Documenter ,_ecdc *_c .Reader ,_fdbed int64 ,_ggbg OrganizationType )(_dgdd error ){const _bbfe ="\u0070\u0061\u0072s\u0065";_age .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 _dgdd !=nil {_age .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",_dgdd );}else {_age .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");
};}();_ ,_dgdd =_ecdc .Seek (_fdbed ,_ed .SeekStart );if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _dgdd =_dbba .readSegmentNumber (_ecdc );_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");
};if _dgdd =_dbba .readHeaderFlags ();_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};var _bgaa uint64 ;_bgaa ,_dgdd =_dbba .readNumberOfReferredToSegments (_ecdc );if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};_dbba .RTSNumbers ,_dgdd =_dbba .readReferredToSegmentNumbers (_ecdc ,int (_bgaa ));
if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};_dgdd =_dbba .readSegmentPageAssociation (_abb ,_ecdc ,_bgaa ,_dbba .RTSNumbers ...);if _dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};if _dbba .Type !=TEndOfFile {if _dgdd =_dbba .readSegmentDataLength (_ecdc );
_dgdd !=nil {return _dg .Wrap (_dgdd ,_bbfe ,"");};};_dbba .readDataStartOffset (_ecdc ,_ggbg );_dbba .readHeaderLength (_ecdc ,_fdbed );_age .Log .Trace ("\u0025\u0073",_dbba );return nil ;};func (_adeg *TableSegment )HtLow ()int32 {return _adeg ._gdb };
var (_gfbe Segmenter ;_ddab =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 _gfbe },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _gfbe },TProfiles :func ()Segmenter {return _gfbe },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _gfbe },TBitmap :func ()Segmenter {return _gfbe }};
);func (_dgec *TableSegment )StreamReader ()*_c .Reader {return _dgec ._adbf };func (_aefg *TextRegion )decodeRI ()(int64 ,error ){if !_aefg .UseRefinement {return 0,nil ;};if _aefg .IsHuffmanEncoded {_eded ,_fdce :=_aefg ._bgge .ReadBit ();return int64 (_eded ),_fdce ;
};_afbe ,_ecdg :=_aefg ._cefb .DecodeInt (_aefg ._adbfe );return int64 (_afbe ),_ecdg ;};func (_bfge *GenericRegion )writeGBAtPixels (_gcbf _c .BinaryWriter )(_daead int ,_fbgf error ){const _bgcc ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073";
if _bfge .UseMMR {return 0,nil ;};_bfd :=1;if _bfge .GBTemplate ==0{_bfd =4;}else if _bfge .UseExtTemplates {_bfd =12;};if len (_bfge .GBAtX )!=_bfd {return 0,_dg .Errorf (_bgcc ,"\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 (_bfge .GBAtY )!=_bfd {return 0,_dg .Errorf (_bgcc ,"\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 _bgbg :=0;_bgbg < _bfd ;_bgbg ++{if _fbgf =_gcbf .WriteByte (byte (_bfge .GBAtX [_bgbg ]));_fbgf !=nil {return _daead ,_dg .Wrap (_fbgf ,_bgcc ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_daead ++;if _fbgf =_gcbf .WriteByte (byte (_bfge .GBAtY [_bgbg ]));
_fbgf !=nil {return _daead ,_dg .Wrap (_fbgf ,_bgcc ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_daead ++;};return _daead ,nil ;};func (_fdbg *GenericRegion )getPixel (_ebga ,_beddc int )int8 {if _ebga < 0||_ebga >=_fdbg .Bitmap .Width {return 0;
};if _beddc < 0||_beddc >=_fdbg .Bitmap .Height {return 0;};if _fdbg .Bitmap .GetPixel (_ebga ,_beddc ){return 1;};return 0;};func (_fegf *Header )readSegmentDataLength (_gddb *_c .Reader )(_dbeaa error ){_fegf .SegmentDataLength ,_dbeaa =_gddb .ReadBits (32);
if _dbeaa !=nil {return _dbeaa ;};_fegf .SegmentDataLength &=_a .MaxInt32 ;return nil ;};func (_acdf *GenericRefinementRegion )parseHeader ()(_gfe error ){_age .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");
_aga :=_bd .Now ();defer func (){if _gfe ==nil {_age .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",_bd .Since (_aga ).Nanoseconds ());
}else {_age .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",_gfe );
};}();if _gfe =_acdf .RegionInfo .parseHeader ();_gfe !=nil {return _gfe ;};_ ,_gfe =_acdf ._bf .ReadBits (6);if _gfe !=nil {return _gfe ;};_acdf .IsTPGROn ,_gfe =_acdf ._bf .ReadBool ();if _gfe !=nil {return _gfe ;};var _egc int ;_egc ,_gfe =_acdf ._bf .ReadBit ();
if _gfe !=nil {return _gfe ;};_acdf .TemplateID =int8 (_egc );switch _acdf .TemplateID {case 0:_acdf .Template =_acdf ._dc ;if _gfe =_acdf .readAtPixels ();_gfe !=nil {return _gfe ;};case 1:_acdf .Template =_acdf ._af ;};return nil ;};func (_gbga *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_f .Points ,symbols *_f .Bitmaps ,classIDs *_ag .IntSlice ,boxes *_f .Boxes ,width ,height ,symBits int ){_gbga .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )};
_gbga ._eafd =globalSymbolsMap ;_gbga ._fgf =localSymbolsMap ;_gbga ._ebab =comps ;_gbga ._efcg =inLL ;_gbga ._afcg =symbols ;_gbga ._eebf =classIDs ;_gbga ._dddb =boxes ;_gbga ._abccf =symBits ;};func (_ecae *GenericRegion )decodeTemplate0b (_dagf ,_gdgba ,_aag int ,_cgcf ,_edb int )(_facb error ){const _agbb ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062";
var (_fdf ,_gdc int ;_fef ,_bdcf int ;_cbg byte ;_ffbb int ;);if _dagf >=1{_cbg ,_facb =_ecae .Bitmap .GetByte (_edb );if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_fef =int (_cbg );};if _dagf >=2{_cbg ,_facb =_ecae .Bitmap .GetByte (_edb -_ecae .Bitmap .RowStride );
if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_bdcf =int (_cbg )<<6;};_fdf =(_fef &0xf0)|(_bdcf &0x3800);for _dab :=0;_dab < _aag ;_dab =_ffbb {var (_cgfa byte ;_fbad int ;);_ffbb =_dab +8;if _ede :=_gdgba -_dab ;
_ede > 8{_fbad =8;}else {_fbad =_ede ;};if _dagf > 0{_fef <<=8;if _ffbb < _gdgba {_cbg ,_facb =_ecae .Bitmap .GetByte (_edb +1);if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_fef |=int (_cbg );};};
if _dagf > 1{_bdcf <<=8;if _ffbb < _gdgba {_cbg ,_facb =_ecae .Bitmap .GetByte (_edb -_ecae .Bitmap .RowStride +1);if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_bdcf |=int (_cbg )<<6;};};for _abcc :=0;
_abcc < _fbad ;_abcc ++{_bdgd :=uint (7-_abcc );if _ecae ._aeed {_gdc =_ecae .overrideAtTemplate0b (_fdf ,_dab +_abcc ,_dagf ,int (_cgfa ),_abcc ,int (_bdgd ));_ecae ._fgce .SetIndex (int32 (_gdc ));}else {_ecae ._fgce .SetIndex (int32 (_fdf ));};var _cfdc int ;
_cfdc ,_facb =_ecae ._fba .DecodeBit (_ecae ._fgce );if _facb !=nil {return _dg .Wrap (_facb ,_agbb ,"");};_cgfa |=byte (_cfdc <<_bdgd );_fdf =((_fdf &0x7bf7)<<1)|_cfdc |((_fef >>_bdgd )&0x10)|((_bdcf >>_bdgd )&0x800);};if _cee :=_ecae .Bitmap .SetByte (_cgcf ,_cgfa );
_cee !=nil {return _dg .Wrap (_cee ,_agbb ,"");};_cgcf ++;_edb ++;};return nil ;};func (_caa *GenericRegion )GetRegionBitmap ()(_fda *_f .Bitmap ,_cdd error ){if _caa .Bitmap !=nil {return _caa .Bitmap ,nil ;};if _caa .IsMMREncoded {if _caa ._gag ==nil {_caa ._gag ,_cdd =_ee .New (_caa ._faca ,int (_caa .RegionSegment .BitmapWidth ),int (_caa .RegionSegment .BitmapHeight ),_caa .DataOffset ,_caa .DataLength );
if _cdd !=nil {return nil ,_cdd ;};};_caa .Bitmap ,_cdd =_caa ._gag .UncompressMMR ();return _caa .Bitmap ,_cdd ;};if _cdd =_caa .updateOverrideFlags ();_cdd !=nil {return nil ,_cdd ;};var _fecd int ;if _caa ._fba ==nil {_caa ._fba ,_cdd =_cc .New (_caa ._faca );
if _cdd !=nil {return nil ,_cdd ;};};if _caa ._fgce ==nil {_caa ._fgce =_cc .NewStats (65536,1);};_caa .Bitmap =_f .New (int (_caa .RegionSegment .BitmapWidth ),int (_caa .RegionSegment .BitmapHeight ));_adc :=int (uint32 (_caa .Bitmap .Width +7)&(^uint32 (7)));
for _gafa :=0;_gafa < _caa .Bitmap .Height ;_gafa ++{if _caa .IsTPGDon {var _acde int ;_acde ,_cdd =_caa .decodeSLTP ();if _cdd !=nil {return nil ,_cdd ;};_fecd ^=_acde ;};if _fecd ==1{if _gafa > 0{if _cdd =_caa .copyLineAbove (_gafa );_cdd !=nil {return nil ,_cdd ;
};};}else {if _cdd =_caa .decodeLine (_gafa ,_caa .Bitmap .Width ,_adc );_cdd !=nil {return nil ,_cdd ;};};};return _caa .Bitmap ,nil ;};func (_ggcfa *TextRegion )getSymbols ()error {if _ggcfa .Header .RTSegments !=nil {return _ggcfa .initSymbols ();};
return nil ;};func (_dagaa *SymbolDictionary )setRefinementAtPixels ()error {if !_dagaa .UseRefinementAggregation ||_dagaa .SdrTemplate !=0{return nil ;};if _dbed :=_dagaa .readRefinementAtPixels (2);_dbed !=nil {return _dbed ;};return nil ;};func (_cdff *SymbolDictionary )setInSyms ()error {if _cdff .Header .RTSegments !=nil {return _cdff .retrieveImportSymbols ();
};_cdff ._dfbg =make ([]*_f .Bitmap ,0);return nil ;};func (_abeb *TextRegion )encodeSymbols (_feed _c .BinaryWriter )(_ccgf int ,_baedg error ){const _fagdf ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";_aegd :=make ([]byte ,4);
_b .BigEndian .PutUint32 (_aegd ,_abeb .NumberOfSymbols );if _ccgf ,_baedg =_feed .Write (_aegd );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073");
};_afccb ,_baedg :=_f .NewClassedPoints (_abeb ._efcg ,_abeb ._ebab );if _baedg !=nil {return 0,_dg .Wrap (_baedg ,_fagdf ,"");};var _cfcb ,_fcdf int ;_aegc :=_bdc .New ();_aegc .Init ();if _baedg =_aegc .EncodeInteger (_bdc .IADT ,0);_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054");
};_dcaa ,_baedg :=_afccb .GroupByY ();if _baedg !=nil {return 0,_dg .Wrap (_baedg ,_fagdf ,"");};for _ ,_fcdag :=range _dcaa {_dacc :=int (_fcdag .YAtIndex (0));_cbae :=_dacc -_cfcb ;if _baedg =_aegc .EncodeInteger (_bdc .IADT ,_cbae );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");
};var _abeeg int ;for _gdae ,_dggde :=range _fcdag .IntSlice {switch _gdae {case 0:_efda :=int (_fcdag .XAtIndex (_gdae ))-_fcdf ;if _baedg =_aegc .EncodeInteger (_bdc .IAFS ,_efda );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_fcdf +=_efda ;
_abeeg =_fcdf ;default:_fdaga :=int (_fcdag .XAtIndex (_gdae ))-_abeeg ;if _baedg =_aegc .EncodeInteger (_bdc .IADS ,_fdaga );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_abeeg +=_fdaga ;};_gabee ,_ccfd :=_abeb ._eebf .Get (_dggde );if _ccfd !=nil {return _ccgf ,_dg .Wrap (_ccfd ,_fagdf ,"");
};_aeeg ,_dgbd :=_abeb ._eafd [_gabee ];if !_dgbd {_aeeg ,_dgbd =_abeb ._fgf [_gabee ];if !_dgbd {return _ccgf ,_dg .Errorf (_fagdf ,"\u0053\u0079\u006d\u0062\u006f\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",_gabee );
};};if _ccfd =_aegc .EncodeIAID (_abeb ._abccf ,_aeeg );_ccfd !=nil {return _ccgf ,_dg .Wrap (_ccfd ,_fagdf ,"");};};if _baedg =_aegc .EncodeOOB (_bdc .IADS );_baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};};_aegc .Final ();_bfa ,_baedg :=_aegc .WriteTo (_feed );
if _baedg !=nil {return _ccgf ,_dg .Wrap (_baedg ,_fagdf ,"");};_ccgf +=int (_bfa );return _ccgf ,nil ;};func (_caef *TextRegion )GetRegionInfo ()*RegionSegment {return _caef .RegionInfo };type Segmenter interface{Init (_ceaa *Header ,_gabaf *_c .Reader )error ;
};func (_bgd *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_dff ,_dce ,_ggg ,_ddb ,_ffb ,_feb ,_cef ,_ba ,_gba int )(_aed error ){var (_agg ,_ecf int ;_fgg ,_aeb int ;_bbb ,_ecg int ;_gdd byte ;);if _dff > 0{_gdd ,_aed =_bgd .RegionBitmap .GetByte (_cef -_ggg );
if _aed !=nil {return _aed ;};_fgg =int (_gdd );};if _ba > 0&&_ba <=_bgd .ReferenceBitmap .Height {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba -_ddb +_feb );if _aed !=nil {return _aed ;};_aeb =int (_gdd )<<2;};if _ba >=0&&_ba < _bgd .ReferenceBitmap .Height {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_feb );
if _aed !=nil {return _aed ;};_bbb =int (_gdd );};if _ba > -2&&_ba < _bgd .ReferenceBitmap .Height -1{_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_ddb +_feb );if _aed !=nil {return _aed ;};_ecg =int (_gdd );};_agg =((_fgg >>5)&0x6)|((_ecg >>2)&0x30)|(_bbb &0xc0)|(_aeb &0x200);
_ecf =((_ecg >>2)&0x70)|(_bbb &0xc0)|(_aeb &0x700);var _de int ;for _fcd :=0;_fcd < _ffb ;_fcd =_de {var (_dbg int ;_acda int ;);_de =_fcd +8;if _dbg =_dce -_fcd ;_dbg > 8{_dbg =8;};_ddc :=_de < _dce ;_fed :=_de < _bgd .ReferenceBitmap .Width ;_cfg :=_feb +1;
if _dff > 0{_gdd =0;if _ddc {_gdd ,_aed =_bgd .RegionBitmap .GetByte (_cef -_ggg +1);if _aed !=nil {return _aed ;};};_fgg =(_fgg <<8)|int (_gdd );};if _ba > 0&&_ba <=_bgd .ReferenceBitmap .Height {var _bda int ;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba -_ddb +_cfg );
if _aed !=nil {return _aed ;};_bda =int (_gdd )<<2;};_aeb =(_aeb <<8)|_bda ;};if _ba >=0&&_ba < _bgd .ReferenceBitmap .Height {_gdd =0;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_cfg );if _aed !=nil {return _aed ;};};_bbb =(_bbb <<8)|int (_gdd );
};if _ba > -2&&_ba < (_bgd .ReferenceBitmap .Height -1){_gdd =0;if _fed {_gdd ,_aed =_bgd .ReferenceBitmap .GetByte (_gba +_ddb +_cfg );if _aed !=nil {return _aed ;};};_ecg =(_ecg <<8)|int (_gdd );};for _ca :=0;_ca < _dbg ;_ca ++{var _bge int ;_gfg :=(_ecf >>4)&0x1ff;
switch _gfg {case 0x1ff:_bge =1;case 0x00:_bge =0;default:_bgd ._cd .SetIndex (int32 (_agg ));_bge ,_aed =_bgd ._gaf .DecodeBit (_bgd ._cd );if _aed !=nil {return _aed ;};};_ccgb :=uint (7-_ca );_acda |=_bge <<_ccgb ;_agg =((_agg &0x0d6)<<1)|_bge |(_fgg >>_ccgb +5)&0x002|((_ecg >>_ccgb +2)&0x010)|((_bbb >>_ccgb )&0x040)|((_aeb >>_ccgb )&0x200);
_ecf =((_ecf &0xdb)<<1)|((_ecg >>_ccgb +2)&0x010)|((_bbb >>_ccgb )&0x080)|((_aeb >>_ccgb )&0x400);};_aed =_bgd .RegionBitmap .SetByte (_cef ,byte (_acda ));if _aed !=nil {return _aed ;};_cef ++;_gba ++;};return nil ;};func (_dbca *SymbolDictionary )readRegionFlags ()error {var (_dadd uint64 ;
_gdgde int ;);_ ,_efa :=_dbca ._dabd .ReadBits (3);if _efa !=nil {return _efa ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};_dbca .SdrTemplate =int8 (_gdgde );_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ;
};_dbca .SdTemplate =int8 (_dadd &0xf);_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca ._eegc =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca ._eaf =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();
if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .SdHuffAggInstanceSelection =true ;};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};_dbca .SdHuffBMSizeSelection =int8 (_gdgde );_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ;
};_dbca .SdHuffDecodeWidthSelection =int8 (_dadd &0xf);_dadd ,_efa =_dbca ._dabd .ReadBits (2);if _efa !=nil {return _efa ;};_dbca .SdHuffDecodeHeightSelection =int8 (_dadd &0xf);_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .UseRefinementAggregation =true ;
};_gdgde ,_efa =_dbca ._dabd .ReadBit ();if _efa !=nil {return _efa ;};if _gdgde ==1{_dbca .IsHuffmanEncoded =true ;};return nil ;};func (_ccee *TextRegion )readHuffmanFlags ()error {var (_gcac int ;_gbgd uint64 ;_gfce error ;);_ ,_gfce =_ccee ._bgge .ReadBit ();
if _gfce !=nil {return _gfce ;};_gcac ,_gfce =_ccee ._bgge .ReadBit ();if _gfce !=nil {return _gfce ;};_ccee .SbHuffRSize =int8 (_gcac );_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDY =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);
if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDX =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffRDHeight =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;
};_ccee .SbHuffRDWidth =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffDT =int8 (_gbgd )&0xf;_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffDS =int8 (_gbgd )&0xf;
_gbgd ,_gfce =_ccee ._bgge .ReadBits (2);if _gfce !=nil {return _gfce ;};_ccee .SbHuffFS =int8 (_gbgd )&0xf;return nil ;};func (_ebfbb *TextRegion )readAmountOfSymbolInstances ()error {_aafd ,_aade :=_ebfbb ._bgge .ReadBits (32);if _aade !=nil {return _aade ;
};_ebfbb .NumberOfSymbolInstances =uint32 (_aafd &_a .MaxUint32 );_gdcd :=_ebfbb .RegionInfo .BitmapWidth *_ebfbb .RegionInfo .BitmapHeight ;if _gdcd < _ebfbb .NumberOfSymbolInstances {_age .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",_gdcd ,_ebfbb .NumberOfSymbolInstances );
_ebfbb .NumberOfSymbolInstances =_gdcd ;};return nil ;};func (_cabc *SymbolDictionary )decodeHeightClassCollectiveBitmap (_gcff int64 ,_baccb ,_febc uint32 )(*_f .Bitmap ,error ){if _gcff ==0{_fgee :=_f .New (int (_febc ),int (_baccb ));var (_dgaa byte ;
_cgb error ;);for _ecbb :=0;_ecbb < len (_fgee .Data );_ecbb ++{_dgaa ,_cgb =_cabc ._dabd .ReadByte ();if _cgb !=nil {return nil ,_cgb ;};if _cgb =_fgee .SetByte (_ecbb ,_dgaa );_cgb !=nil {return nil ,_cgb ;};};return _fgee ,nil ;};if _cabc ._cddgf ==nil {_cabc ._cddgf =NewGenericRegion (_cabc ._dabd );
};_cabc ._cddgf .setParameters (true ,_cabc ._dabd .AbsolutePosition (),_gcff ,_baccb ,_febc );_abab ,_cagb :=_cabc ._cddgf .GetRegionBitmap ();if _cagb !=nil {return nil ,_cagb ;};return _abab ,nil ;};func (_afcd *GenericRegion )readGBAtPixels (_aedg int )error {const _gedg ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073";
_afcd .GBAtX =make ([]int8 ,_aedg );_afcd .GBAtY =make ([]int8 ,_aedg );for _ccbf :=0;_ccbf < _aedg ;_ccbf ++{_aggd ,_efd :=_afcd ._faca .ReadByte ();if _efd !=nil {return _dg .Wrapf (_efd ,_gedg ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ccbf );
};_afcd .GBAtX [_ccbf ]=int8 (_aggd );_aggd ,_efd =_afcd ._faca .ReadByte ();if _efd !=nil {return _dg .Wrapf (_efd ,_gedg ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_ccbf );};_afcd .GBAtY [_ccbf ]=int8 (_aggd );};return nil ;
};func (_gfcc *Header )referenceSize ()uint {switch {case _gfcc .SegmentNumber <=255:return 1;case _gfcc .SegmentNumber <=65535:return 2;default:return 4;};};func (_eff *GenericRegion )decodeTemplate3 (_bgde ,_eeab ,_dbaa int ,_dea ,_dcd int )(_gggg error ){const _fdab ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033";
var (_cbfg ,_dfgd int ;_ffbg int ;_dgfg byte ;_gbadb ,_gef int ;);if _bgde >=1{_dgfg ,_gggg =_eff .Bitmap .GetByte (_dcd );if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ffbg =int (_dgfg );};_cbfg =(_ffbg >>1)&0x70;
for _baf :=0;_baf < _dbaa ;_baf =_gbadb {var (_ceacd byte ;_fdbc int ;);_gbadb =_baf +8;if _afbc :=_eeab -_baf ;_afbc > 8{_fdbc =8;}else {_fdbc =_afbc ;};if _bgde >=1{_ffbg <<=8;if _gbadb < _eeab {_dgfg ,_gggg =_eff .Bitmap .GetByte (_dcd +1);if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031");
};_ffbg |=int (_dgfg );};};for _gede :=0;_gede < _fdbc ;_gede ++{if _eff ._aeed {_dfgd =_eff .overrideAtTemplate3 (_cbfg ,_baf +_gede ,_bgde ,int (_ceacd ),_gede );_eff ._fgce .SetIndex (int32 (_dfgd ));}else {_eff ._fgce .SetIndex (int32 (_cbfg ));};_gef ,_gggg =_eff ._fba .DecodeBit (_eff ._fgce );
if _gggg !=nil {return _dg .Wrap (_gggg ,_fdab ,"");};_ceacd |=byte (_gef )<<byte (7-_gede );_cbfg =((_cbfg &0x1f7)<<1)|_gef |((_ffbg >>uint (8-_gede ))&0x010);};if _fffd :=_eff .Bitmap .SetByte (_dea ,_ceacd );_fffd !=nil {return _dg .Wrap (_fffd ,_fdab ,"");
};_dea ++;_dcd ++;};return nil ;};func (_ffbc *PatternDictionary )GetDictionary ()([]*_f .Bitmap ,error ){if _ffbc .Patterns !=nil {return _ffbc .Patterns ,nil ;};if !_ffbc .IsMMREncoded {_ffbc .setGbAtPixels ();};_agad :=NewGenericRegion (_ffbc ._ebcg );
_agad .setParametersMMR (_ffbc .IsMMREncoded ,_ffbc .DataOffset ,_ffbc .DataLength ,uint32 (_ffbc .HdpHeight ),(_ffbc .GrayMax +1)*uint32 (_ffbc .HdpWidth ),_ffbc .HDTemplate ,false ,false ,_ffbc .GBAtX ,_ffbc .GBAtY );_efdg ,_acb :=_agad .GetRegionBitmap ();
if _acb !=nil {return nil ,_acb ;};if _acb =_ffbc .extractPatterns (_efdg );_acb !=nil {return nil ,_acb ;};return _ffbc .Patterns ,nil ;};func (_cf *EndOfStripe )LineNumber ()int {return _cf ._cce };func NewRegionSegment (r *_c .Reader )*RegionSegment {return &RegionSegment {_fcaf :r }};
type EndOfStripe struct{_ff *_c .Reader ;_cce int ;};type PageInformationSegment struct{_eade *_c .Reader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_cbfcb bool ;_dafc _f .CombinationOperator ;_bdag bool ;DefaultPixelValue uint8 ;
_fabe bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_fgec *TextRegion )decodeIds ()(int64 ,error ){const _dbfdf ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";if _fgec .IsHuffmanEncoded {if _fgec .SbHuffDS ==3{if _fgec ._cbge ==nil {_cbgf :=0;
if _fgec .SbHuffFS ==3{_cbgf ++;};var _abbd error ;_fgec ._cbge ,_abbd =_fgec .getUserTable (_cbgf );if _abbd !=nil {return 0,_dg .Wrap (_abbd ,_dbfdf ,"");};};return _fgec ._cbge .Decode (_fgec ._bgge );};_ddedd ,_ffgae :=_ece .GetStandardTable (8+int (_fgec .SbHuffDS ));
if _ffgae !=nil {return 0,_dg .Wrap (_ffgae ,_dbfdf ,"");};return _ddedd .Decode (_fgec ._bgge );};_cggd ,_fgfa :=_fgec ._cefb .DecodeInt (_fgec ._cgbe );if _fgfa !=nil {return 0,_dg .Wrap (_fgfa ,_dbfdf ,"\u0063\u0078\u0049\u0041\u0044\u0053");};return int64 (_cggd ),nil ;
};func (_fdbad *Header )readSegmentPageAssociation (_dec Documenter ,_edbg *_c .Reader ,_fbae uint64 ,_ada ...int )(_efe error ){const _bdad ="\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 !_fdbad .PageAssociationFieldSize {_dacd ,_afbcd :=_edbg .ReadBits (8);if _afbcd !=nil {return _dg .Wrap (_afbcd ,_bdad ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdbad .PageAssociation =int (_dacd &0xFF);}else {_ddee ,_gefg :=_edbg .ReadBits (32);
if _gefg !=nil {return _dg .Wrap (_gefg ,_bdad ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_fdbad .PageAssociation =int (_ddee &_a .MaxInt32 );};if _fbae ==0{return nil ;};if _fdbad .PageAssociation !=0{_dafg ,_ead :=_dec .GetPage (_fdbad .PageAssociation );
if _ead !=nil {return _dg .Wrap (_ead ,_bdad ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _cbfc int ;for _cff :=uint64 (0);_cff < _fbae ;_cff ++{_cbfc =_ada [_cff ];_fdbad .RTSegments [_cff ],_ead =_dafg .GetSegment (_cbfc );
if _ead !=nil {var _fbgee error ;_fdbad .RTSegments [_cff ],_fbgee =_dec .GetGlobalSegment (_cbfc );if _fbgee !=nil {return _dg .Wrapf (_ead ,_bdad ,"\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",_fdbad .PageAssociation );
};};};return nil ;};for _daeag :=uint64 (0);_daeag < _fbae ;_daeag ++{_fdbad .RTSegments [_daeag ],_efe =_dec .GetGlobalSegment (_ada [_daeag ]);if _efe !=nil {return _dg .Wrapf (_efe ,_bdad ,"\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",_ada [_daeag ]);
};};return nil ;};func (_bc *GenericRefinementRegion )decodeTypicalPredictedLine (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd int )error {_cb :=_gbg -int (_bc .ReferenceDY );_ggc :=_bc .ReferenceBitmap .GetByteIndex (0,_cb );_ceg :=_bc .RegionBitmap .GetByteIndex (0,_gbg );
var _adf error ;switch _bc .TemplateID {case 0:_adf =_bc .decodeTypicalPredictedLineTemplate0 (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd ,_ceg ,_cb ,_ggc );case 1:_adf =_bc .decodeTypicalPredictedLineTemplate1 (_gbg ,_dbe ,_gc ,_cdcb ,_fec ,_fd ,_ceg ,_cb ,_ggc );
};return _adf ;};func (_eedf *TextRegion )decodeSymbolInstances ()error {_fcba ,_gece :=_eedf .decodeStripT ();if _gece !=nil {return _gece ;};var (_cgbc int64 ;_cacae uint32 ;);for _cacae < _eedf .NumberOfSymbolInstances {_cgfc ,_babb :=_eedf .decodeDT ();
if _babb !=nil {return _babb ;};_fcba +=_cgfc ;var _ggdca int64 ;_ebfd :=true ;_eedf ._defb =0;for {if _ebfd {_ggdca ,_babb =_eedf .decodeDfs ();if _babb !=nil {return _babb ;};_cgbc +=_ggdca ;_eedf ._defb =_cgbc ;_ebfd =false ;}else {_fbf ,_fegd :=_eedf .decodeIds ();
if _ec .Is (_fegd ,_d .ErrOOB ){break ;};if _fegd !=nil {return _fegd ;};if _cacae >=_eedf .NumberOfSymbolInstances {break ;};_eedf ._defb +=_fbf +int64 (_eedf .SbDsOffset );};_cecg ,_cdeac :=_eedf .decodeCurrentT ();if _cdeac !=nil {return _cdeac ;};_befg :=_fcba +_cecg ;
_cdbdc ,_cdeac :=_eedf .decodeID ();if _cdeac !=nil {return _cdeac ;};_eag ,_cdeac :=_eedf .decodeRI ();if _cdeac !=nil {return _cdeac ;};_gddg ,_cdeac :=_eedf .decodeIb (_eag ,_cdbdc );if _cdeac !=nil {return _cdeac ;};if _cdeac =_eedf .blit (_gddg ,_befg );
_cdeac !=nil {return _cdeac ;};_cacae ++;};};return nil ;};func (_acea *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_acea .SdHuffAggInstanceSelection {_deaa ,_feba :=_ece .GetStandardTable (1);if _feba !=nil {return 0,_feba ;};return _deaa .Decode (_acea ._dabd );
};if _acea ._afec ==nil {var (_fegbbd int ;_bbdb error ;);if _acea .SdHuffDecodeHeightSelection ==3{_fegbbd ++;};if _acea .SdHuffDecodeWidthSelection ==3{_fegbbd ++;};if _acea .SdHuffBMSizeSelection ==3{_fegbbd ++;};_acea ._afec ,_bbdb =_acea .getUserTable (_fegbbd );
if _bbdb !=nil {return 0,_bbdb ;};};return _acea ._afec .Decode (_acea ._dabd );};func (_gbbd *PatternDictionary )checkInput ()error {if _gbbd .HdpHeight < 1||_gbbd .HdpWidth < 1{return _ec .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 _gbbd .IsMMREncoded {if _gbbd .HDTemplate !=0{_age .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 (_fcag *TextRegion )initSymbols ()error {const _badaf ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_dadeb :=range _fcag .Header .RTSegments {if _dadeb ==nil {return _dg .Error (_badaf ,"\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 _dadeb .Type ==0{_ffcdf ,_ecab :=_dadeb .GetSegmentData ();if _ecab !=nil {return _dg .Wrap (_ecab ,_badaf ,"");};_gcgg ,_bdgc :=_ffcdf .(*SymbolDictionary );if !_bdgc {return _dg .Error (_badaf ,"\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");
};_gcgg ._fbac =_fcag ._eadb ;_dcbf ,_ecab :=_gcgg .GetDictionary ();if _ecab !=nil {return _dg .Wrap (_ecab ,_badaf ,"");};_fcag .Symbols =append (_fcag .Symbols ,_dcbf ...);};};_fcag .NumberOfSymbols =uint32 (len (_fcag .Symbols ));return nil ;};type OrganizationType uint8 ;
func (_aef *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _aef .RegionSegment };func (_aagc *TextRegion )decodeRdx ()(int64 ,error ){const _bgefg ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _aagc .IsHuffmanEncoded {if _aagc .SbHuffRDX ==3{if _aagc ._acgf ==nil {var (_fdbeb int ;
_agcf error ;);if _aagc .SbHuffFS ==3{_fdbeb ++;};if _aagc .SbHuffDS ==3{_fdbeb ++;};if _aagc .SbHuffDT ==3{_fdbeb ++;};if _aagc .SbHuffRDWidth ==3{_fdbeb ++;};if _aagc .SbHuffRDHeight ==3{_fdbeb ++;};_aagc ._acgf ,_agcf =_aagc .getUserTable (_fdbeb );
if _agcf !=nil {return 0,_dg .Wrap (_agcf ,_bgefg ,"");};};return _aagc ._acgf .Decode (_aagc ._bgge );};_cadg ,_daad :=_ece .GetStandardTable (14+int (_aagc .SbHuffRDX ));if _daad !=nil {return 0,_dg .Wrap (_daad ,_bgefg ,"");};return _cadg .Decode (_aagc ._bgge );
};_bdda ,_fega :=_aagc ._cefb .DecodeInt (_aagc ._aaba );if _fega !=nil {return 0,_dg .Wrap (_fega ,_bgefg ,"");};return int64 (_bdda ),nil ;};type TableSegment struct{_adbf *_c .Reader ;_egcdd int32 ;_beea int32 ;_baed int32 ;_gdb int32 ;_ggdc int32 ;
};func (_fccd *PatternDictionary )readGrayMax ()error {_adcce ,_gbbg :=_fccd ._ebcg .ReadBits (32);if _gbbg !=nil {return _gbbg ;};_fccd .GrayMax =uint32 (_adcce &_a .MaxUint32 );return nil ;};func (_dcad *TableSegment )Init (h *Header ,r *_c .Reader )error {_dcad ._adbf =r ;
return _dcad .parseHeader ();};func (_dcbg *SymbolDictionary )readRefinementAtPixels (_faeg int )error {_dcbg .SdrATX =make ([]int8 ,_faeg );_dcbg .SdrATY =make ([]int8 ,_faeg );var (_agde byte ;_fada error ;);for _eegfac :=0;_eegfac < _faeg ;_eegfac ++{_agde ,_fada =_dcbg ._dabd .ReadByte ();
if _fada !=nil {return _fada ;};_dcbg .SdrATX [_eegfac ]=int8 (_agde );_agde ,_fada =_dcbg ._dabd .ReadByte ();if _fada !=nil {return _fada ;};_dcbg .SdrATY [_eegfac ]=int8 (_agde );};return nil ;};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ;
PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader *_c .Reader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_ggee *PageInformationSegment )readIsLossless ()error {_cceg ,_dcba :=_ggee ._eade .ReadBit ();
if _dcba !=nil {return _dcba ;};if _cceg ==1{_ggee .IsLossless =true ;};return nil ;};func (_eea *GenericRefinementRegion )GetRegionBitmap ()(*_f .Bitmap ,error ){var _fg error ;_age .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 _fg !=nil {_age .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",_fg );
}else {_age .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 _eea .RegionBitmap !=nil {return _eea .RegionBitmap ,nil ;};_fa :=0;if _eea .ReferenceBitmap ==nil {_eea .ReferenceBitmap ,_fg =_eea .getGrReference ();if _fg !=nil {return nil ,_fg ;};};if _eea ._gaf ==nil {_eea ._gaf ,_fg =_cc .New (_eea ._bf );
if _fg !=nil {return nil ,_fg ;};};if _eea ._cd ==nil {_eea ._cd =_cc .NewStats (8192,1);};_eea .RegionBitmap =_f .New (int (_eea .RegionInfo .BitmapWidth ),int (_eea .RegionInfo .BitmapHeight ));if _eea .TemplateID ==0{if _fg =_eea .updateOverride ();
_fg !=nil {return nil ,_fg ;};};_da :=(_eea .RegionBitmap .Width +7)&-8;var _fe int ;if _eea .IsTPGROn {_fe =int (-_eea .ReferenceDY )*_eea .ReferenceBitmap .RowStride ;};_bg :=_fe +1;for _bb :=0;_bb < _eea .RegionBitmap .Height ;_bb ++{if _eea .IsTPGROn {_bdce ,_ac :=_eea .decodeSLTP ();
if _ac !=nil {return nil ,_ac ;};_fa ^=_bdce ;};if _fa ==0{_fg =_eea .decodeOptimized (_bb ,_eea .RegionBitmap .Width ,_eea .RegionBitmap .RowStride ,_eea .ReferenceBitmap .RowStride ,_da ,_fe ,_bg );if _fg !=nil {return nil ,_fg ;};}else {_fg =_eea .decodeTypicalPredictedLine (_bb ,_eea .RegionBitmap .Width ,_eea .RegionBitmap .RowStride ,_eea .ReferenceBitmap .RowStride ,_da ,_fe );
if _fg !=nil {return nil ,_fg ;};};};return _eea .RegionBitmap ,nil ;};func (_cgae *Header )GetSegmentData ()(Segmenter ,error ){var _cgg Segmenter ;if _cgae .SegmentData !=nil {_cgg =_cgae .SegmentData ;};if _cgg ==nil {_cae ,_ccfg :=_ddab [_cgae .Type ];
if !_ccfg {return nil ,_gb .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",_cgae .Type ,_cgae .Type );};_cgg =_cae ();
_age .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",_cgae .SegmentNumber ,_cgae .SegmentDataStartOffset );
_fab ,_cbad :=_cgae .subInputReader ();if _cbad !=nil {return nil ,_cbad ;};if _faeb :=_cgg .Init (_cgae ,_fab );_faeb !=nil {_age .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",_faeb ,_cgg );
return nil ,_faeb ;};_cgae .SegmentData =_cgg ;};return _cgg ,nil ;};func (_cccdd *Header )writeSegmentNumber (_bbgb _c .BinaryWriter )(_bacg int ,_affd error ){_abdg :=make ([]byte ,4);_b .BigEndian .PutUint32 (_abdg ,_cccdd .SegmentNumber );if _bacg ,_affd =_bbgb .Write (_abdg );
_affd !=nil {return 0,_dg .Wrap (_affd ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");};return _bacg ,nil ;};func (_eaaf *TextRegion )decodeDT ()(_dccc int64 ,_ddfb error ){if _eaaf .IsHuffmanEncoded {if _eaaf .SbHuffDT ==3{_dccc ,_ddfb =_eaaf ._bddg .Decode (_eaaf ._bgge );
if _ddfb !=nil {return 0,_ddfb ;};}else {var _ddfff _ece .Tabler ;_ddfff ,_ddfb =_ece .GetStandardTable (11+int (_eaaf .SbHuffDT ));if _ddfb !=nil {return 0,_ddfb ;};_dccc ,_ddfb =_ddfff .Decode (_eaaf ._bgge );if _ddfb !=nil {return 0,_ddfb ;};};}else {var _gcbaf int32 ;
_gcbaf ,_ddfb =_eaaf ._cefb .DecodeInt (_eaaf ._fecfa );if _ddfb !=nil {return 0,_ddfb ;};_dccc =int64 (_gcbaf );};_dccc *=int64 (_eaaf .SbStrips );return _dccc ,nil ;};func (_aaaa *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _aaaa ._cbfcb };
func (_gaba *Header )pageSize ()uint {if _gaba .PageAssociation <=255{return 1;};return 4;};func (_abgad *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _abgad .IsHuffmanEncoded {return _abgad .decodeHeightClassDeltaHeightWithHuffman ();
};_fdfa ,_fdca :=_abgad ._ded .DecodeInt (_abgad ._adbgg );if _fdca !=nil {return 0,_fdca ;};return int64 (_fdfa ),nil ;};func (_dcgc *Header )subInputReader ()(*_c .Reader ,error ){_fedd :=int (_dcgc .SegmentDataLength );if _dcgc .SegmentDataLength ==_a .MaxInt32 {_fedd =-1;
};return _dcgc .Reader .NewPartialReader (int (_dcgc .SegmentDataStartOffset ),_fedd ,false );};var _ templater =&template1 {};func (_febe *SymbolDictionary )addSymbol (_dfefc Regioner )error {_adfcb ,_ebac :=_dfefc .GetRegionBitmap ();if _ebac !=nil {return _ebac ;
};_febe ._ddae [_febe ._cec ]=_adfcb ;_febe ._ecac =append (_febe ._ecac ,_adfcb );_age .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",_adfcb );
return nil ;};
|