aboutsummaryrefslogtreecommitdiff
path: root/unipdf/model/mdp
diff options
context:
space:
mode:
Diffstat (limited to 'unipdf/model/mdp')
-rw-r--r--unipdf/model/mdp/mdp.go98
1 files changed, 98 insertions, 0 deletions
diff --git a/unipdf/model/mdp/mdp.go b/unipdf/model/mdp/mdp.go
new file mode 100644
index 0000000..9903518
--- /dev/null
+++ b/unipdf/model/mdp/mdp.go
@@ -0,0 +1,98 @@
+//
+// 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 mdp ;import (_f "errors";_gc "fmt";_fg "github.com/unidoc/unipdf/v4/core";);func (_cdg *defaultDiffPolicy )compareFields (_cc int ,_gb ,_cb []_fg .PdfObject )error {_aea :=make (map[int64 ]*_fg .PdfObjectDictionary );for _ ,_aeag :=range _gb {_eg ,_egf :=_fg .GetIndirect (_aeag );
+if !_egf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_ag ,_egf :=_fg .GetDict (_eg .PdfObject );if !_egf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");
+};_aea [_eg .ObjectNumber ]=_ag ;};for _ ,_abc :=range _cb {_gbb ,_bag :=_fg .GetIndirect (_abc );if !_bag {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");
+};_bge ,_bag :=_fg .GetDict (_gbb .PdfObject );if !_bag {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006cd\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};T :=_bge .Get ("\u0054");
+if _ ,_cgd :=_cdg ._gcb [_gbb .ObjectNumber ];_cgd {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T ));
+default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",T ));};};if _ ,_cgff :=_aea [_gbb .ObjectNumber ];!_cgff {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_bge .Get ("\u0054")));
+default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("\u0046i\u0065l\u0064\u0020\u0025\u0073\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_bge .Get ("\u0054")));};}else {delete (_aea ,_gbb .ObjectNumber );if _ ,_ef :=_cdg ._gcb [_gbb .ObjectNumber ];
+_ef {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_bge .Get ("\u0054")));default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0063\u0068\u0061ng\u0065\u0064",_bge .Get ("\u0054")));
+};};};if FT ,_cdf :=_fg .GetNameVal (_bge .Get ("\u0046\u0054"));_cdf {if FT =="\u0053\u0069\u0067"{if _dg ,_dag :=_fg .GetIndirect (_bge .Get ("\u0056"));_dag {if _ ,_gcg :=_cdg ._gcb [_dg .ObjectNumber ];_gcg {switch _cdg ._c {case NoRestrictions ,FillForms ,FillFormsAndAnnots :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T ));
+default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("\u0053\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0066\u006f\u0072\u0020%\u0073 \u0066i\u0065l\u0064\u0020\u0077\u0061\u0073\u0020\u0063\u0068\u0061\u006e\u0067\u0065\u0064",T ));};};};};
+};};for _ ,_daa :=range _aea {switch _cdg ._c {case NoRestrictions :_cdg ._e .addWarningWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_daa .Get ("\u0054")));default:_cdg ._e .addErrorWithDescription (_cc ,_gc .Sprintf ("F\u0069e\u006c\u0064\u0020\u0025\u0073\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_daa .Get ("\u0054")));
+};};return nil ;};
+
+// ReviewFile implementation of DiffPolicy interface
+// The default policy only checks the next types of objects:
+// Page, Pages (container for page objects), Annot, Annots (container for annotation objects), Field.
+// It checks adding, removing and modifying objects of these types.
+func (_a *defaultDiffPolicy )ReviewFile (oldParser *_fg .PdfParser ,newParser *_fg .PdfParser ,params *MDPParameters )(*DiffResults ,error ){if oldParser .GetRevisionNumber ()> newParser .GetRevisionNumber (){return nil ,_f .New ("\u006f\u006c\u0064\u0020\u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020\u006e\u0065\u0077\u0020r\u0065\u0076i\u0073\u0069\u006f\u006e");
+};if oldParser .GetRevisionNumber ()==newParser .GetRevisionNumber (){if oldParser !=newParser {return nil ,_f .New ("\u0073\u0061m\u0065\u0020\u0072\u0065v\u0069\u0073i\u006f\u006e\u0073\u002c\u0020\u0062\u0075\u0074 \u0064\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0074\u0020\u0070\u0061r\u0073\u0065\u0072\u0073");
+};return &DiffResults {},nil ;};if params ==nil {_a ._c =NoRestrictions ;}else {_a ._c =params .DocMDPLevel ;};_cf :=&DiffResults {};for _cg :=oldParser .GetRevisionNumber ()+1;_cg <=newParser .GetRevisionNumber ();_cg ++{_ad ,_ga :=newParser .GetRevision (_cg -1);
+if _ga !=nil {return nil ,_ga ;};_cgf ,_ga :=newParser .GetRevision (_cg );if _ga !=nil {return nil ,_ga ;};_d ,_ga :=_a .compareRevisions (_ad ,_cgf );if _ga !=nil {return nil ,_ga ;};_cf .Warnings =append (_cf .Warnings ,_d .Warnings ...);_cf .Errors =append (_cf .Errors ,_d .Errors ...);
+};return _cf ,nil ;};func (_cbe *defaultDiffPolicy )compareAnnots (_fga int ,_acd ,_feg []_fg .PdfObject )error {_fa :=make (map[int64 ]*_fg .PdfObjectDictionary );for _ ,_cba :=range _acd {_ccc ,_egfe :=_fg .GetIndirect (_cba );if !_egfe {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");
+};_deg ,_egfe :=_fg .GetDict (_ccc .PdfObject );if !_egfe {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_fa [_ccc .ObjectNumber ]=_deg ;
+};for _ ,_aa :=range _feg {_bab ,_cbeg :=_fg .GetIndirect (_aa );if !_cbeg {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_eea ,_cbeg :=_fg .GetDict (_bab .PdfObject );
+if !_cbeg {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0061\u006e\u006e\u006ft\u0027s\u0020\u0073\u0074\u0072\u0075\u0063\u0074u\u0072\u0065");};_gdc ,_ :=_fg .GetStringVal (_eea .Get ("\u0054"));_cca ,_ :=_fg .GetNameVal (_eea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));
+if _ ,_dd :=_fa [_bab .ObjectNumber ];!_dd {switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc ));
+default:_gab ,_bd :=_fg .GetDict (_bab .PdfObject );if !_bd {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_faa ,_bd :=_fg .GetNameVal (_gab .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));
+if !_bd {return _f .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065");};if _faa =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc ));
+default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc ));};}else {_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0020\u0025\u0073\u0020\u0077\u0061\u0073\u0020\u0061d\u0064\u0065\u0064",_cca ,_gdc ));
+};};}else {delete (_fa ,_bab .ObjectNumber );if _bgb ,_ece :=_cbe ._gcb [_bab .ObjectNumber ];_ece {switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc ));
+default:_cbc ,_aed :=_fg .GetIndirect (_bgb );if !_aed {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");};_dbag ,_aed :=_fg .GetDict (_cbc .PdfObject );if !_aed {return _f .New ("u\u006ed\u0065\u0066\u0069\u006e\u0065\u0064\u0020\u0061n\u006e\u006f\u0074\u0061ti\u006f\u006e");
+};_gbc ,_aed :=_fg .GetNameVal (_dbag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aed {return _f .New ("\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064\u0020a\u006e\u006e\u006f\u0074\u0061\u0074\u0069o\u006e\u0027\u0073\u0020\u0073\u0075\u0062\u0074\u0079\u0070\u0065");
+};if _gbc =="\u0057\u0069\u0064\u0067\u0065\u0074"{switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots ,FillForms :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc ));
+default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc ));};}else {_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0063\u0068\u0061\u006eg\u0065\u0064",_cca ,_gdc ));
+};};};};};for _ ,_ff :=range _fa {_abe ,_ :=_fg .GetStringVal (_ff .Get ("\u0054"));_aac ,_ :=_fg .GetNameVal (_ff .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));switch _cbe ._c {case NoRestrictions ,FillFormsAndAnnots :_cbe ._e .addWarningWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_aac ,_abe ));
+default:_cbe ._e .addErrorWithDescription (_fga ,_gc .Sprintf ("\u0025\u0073\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0025s\u0020w\u0061\u0073\u0020\u0072\u0065\u006d\u006fv\u0065\u0064",_aac ,_abe ));};};return nil ;};
+
+// DiffResult describes the warning or the error for the DiffPolicy results.
+type DiffResult struct{Revision int ;Description string ;};func (_egce *defaultDiffPolicy )comparePages (_eb int ,_ec ,_fca *_fg .PdfIndirectObject )error {if _ ,_gaf :=_egce ._gcb [_fca .ObjectNumber ];_gaf {_egce ._e .addErrorWithDescription (_eb ,"\u0050a\u0067e\u0073\u0020\u0077\u0065\u0072e\u0020\u0063h\u0061\u006e\u0067\u0065\u0064");
+};_bgf ,_ccf :=_fg .GetDict (_fca .PdfObject );_fb ,_dga :=_fg .GetDict (_ec .PdfObject );if !_ccf ||!_dga {return _f .New ("\u0075n\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061g\u0065\u0073\u0027\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
+};_fgc ,_ccf :=_fg .GetArray (_bgf .Get ("\u004b\u0069\u0064\u0073"));_gbg ,_dga :=_fg .GetArray (_fb .Get ("\u004b\u0069\u0064\u0073"));if !_ccf ||!_dga {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0050\u0061\u0067\u0065s\u0027 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079");
+};_dgg :=_fgc .Len ();if _dgg > _gbg .Len (){_dgg =_gbg .Len ();};for _agca :=0;_agca < _dgg ;_agca ++{_gfe ,_ded :=_fg .GetIndirect (_fg .ResolveReference (_gbg .Get (_agca )));_df ,_agf :=_fg .GetIndirect (_fg .ResolveReference (_fgc .Get (_agca )));
+if !_ded ||!_agf {return _f .New ("\u0075\u006e\u0065\u0078pe\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006f\u0062\u006a\u0065c\u0074");};if _gfe .ObjectNumber !=_df .ObjectNumber {_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("p\u0061\u0067\u0065\u0020#%\u0064 \u0077\u0061\u0073\u0020\u0072e\u0070\u006c\u0061\u0063\u0065\u0064",_agca ));
+};_dba ,_ded :=_fg .GetDict (_df );_fbb ,_agf :=_fg .GetDict (_gfe );if !_ded ||!_agf {return _f .New ("\u0075\u006e\u0065\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0070\u0061\u0067\u0065'\u0073 \u0064\u0069\u0063\u0074\u0069\u006f\u006ea\u0072\u0079");
+};_ecb ,_fcf :=_cce (_dba .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"));if _fcf !=nil {return _fcf ;};_cbf ,_fcf :=_cce (_fbb .Get ("\u0041\u006e\u006e\u006f\u0074\u0073"));if _fcf !=nil {return _fcf ;};if _eae :=_egce .compareAnnots (_eb ,_cbf ,_ecb );
+_eae !=nil {return _eae ;};};for _aba :=_dgg +1;_aba <=_fgc .Len ();_aba ++{_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("\u0070a\u0067e\u0020\u0023\u0025\u0064\u0020w\u0061\u0073 \u0061\u0064\u0064\u0065\u0064",_aba ));};for _bgd :=_dgg +1;_bgd <=_gbg .Len ();
+_bgd ++{_egce ._e .addErrorWithDescription (_eb ,_gc .Sprintf ("p\u0061g\u0065\u0020\u0023\u0025\u0064\u0020\u0077\u0061s\u0020\u0072\u0065\u006dov\u0065\u0064",_bgd ));};return nil ;};func (_eaf *DiffResults )addWarning (_adb *DiffResult ){if _eaf .Warnings ==nil {_eaf .Warnings =make ([]*DiffResult ,0);
+};_eaf .Warnings =append (_eaf .Warnings ,_adb );};func (_afd *DiffResults )addWarningWithDescription (_ddf int ,_cae string ){if _afd .Warnings ==nil {_afd .Warnings =make ([]*DiffResult ,0);};_afd .Warnings =append (_afd .Warnings ,&DiffResult {Revision :_ddf ,Description :_cae });
+};
+
+// DiffResults describes the results of the DiffPolicy.
+type DiffResults struct{Warnings []*DiffResult ;Errors []*DiffResult ;};func (_aegd *DiffResults )addErrorWithDescription (_bdb int ,_aec string ){if _aegd .Errors ==nil {_aegd .Errors =make ([]*DiffResult ,0);};_aegd .Errors =append (_aegd .Errors ,&DiffResult {Revision :_bdb ,Description :_aec });
+};type defaultDiffPolicy struct{_gcb map[int64 ]_fg .PdfObject ;_e *DiffResults ;_c DocMDPPermission ;};
+
+// IsPermitted returns true if changes permitted.
+func (_aeac *DiffResults )IsPermitted ()bool {return len (_aeac .Errors )==0};func (_dc *defaultDiffPolicy )compareRevisions (_fe *_fg .PdfParser ,_b *_fg .PdfParser )(*DiffResults ,error ){var _ae error ;_dc ._gcb ,_ae =_b .GetUpdatedObjects (_fe );if _ae !=nil {return &DiffResults {},_ae ;
+};if len (_dc ._gcb )==0{return &DiffResults {},nil ;};_ca :=_b .GetRevisionNumber ();_ge ,_fc :=_fg .GetIndirect (_fg .ResolveReference (_fe .GetTrailer ().Get ("\u0052\u006f\u006f\u0074")));_ab ,_bg :=_fg .GetIndirect (_fg .ResolveReference (_b .GetTrailer ().Get ("\u0052\u006f\u006f\u0074")));
+if !_fc ||!_bg {return &DiffResults {},_f .New ("\u0065\u0072\u0072o\u0072\u0020\u0077\u0068i\u006c\u0065\u0020\u0067\u0065\u0074\u0074i\u006e\u0067\u0020\u0072\u006f\u006f\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fgg ,_fc :=_fg .GetDict (_fg .ResolveReference (_ge .PdfObject ));
+_aef ,_bg :=_fg .GetDict (_fg .ResolveReference (_ab .PdfObject ));if !_fc ||!_bg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020a\u0020\u0072\u006f\u006f\u0074\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");
+};if _de ,_af :=_fg .GetIndirect (_aef .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_af {_gf ,_ac :=_fg .GetDict (_de );if !_ac {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072 \u0077\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
+};_db :=make ([]_fg .PdfObject ,0);if _cad ,_fec :=_fg .GetIndirect (_fgg .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d"));_fec {if _cgc ,_abg :=_fg .GetDict (_cad );_abg {if _gag ,_ba :=_fg .GetArray (_cgc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"));
+_ba {_db =_gag .Elements ();};};};_da ,_ac :=_fg .GetArray (_gf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"));if !_ac {return &DiffResults {},_f .New ("\u0065\u0072r\u006f\u0072\u0020\u0077h\u0069\u006ce\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067 \u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0027\u0073\u0020\u0066i\u0065\u006c\u0064\u0073");
+};if _bc :=_dc .compareFields (_ca ,_db ,_da .Elements ());_bc !=nil {return &DiffResults {},_bc ;};};_cd ,_aeg :=_fg .GetIndirect (_aef .Get ("\u0050\u0061\u0067e\u0073"));if !_aeg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074");
+};_gff ,_aeg :=_fg .GetIndirect (_fgg .Get ("\u0050\u0061\u0067e\u0073"));if !_aeg {return &DiffResults {},_f .New ("\u0065\u0072\u0072\u006f\u0072\u0020w\u0068\u0069\u006c\u0065\u0020\u0067\u0065\u0074\u0074\u0069\u006e\u0067\u0020p\u0061\u0067\u0065\u0073\u0027\u0020\u006fb\u006a\u0065\u0063\u0074");
+};if _ea :=_dc .comparePages (_ca ,_gff ,_cd );_ea !=nil {return &DiffResults {},_ea ;};return _dc ._e ,nil ;};
+
+// MDPParameters describes parameters for the MDP checks (now only DocMDP).
+type MDPParameters struct{DocMDPLevel DocMDPPermission ;};
+
+// DiffPolicy interface for comparing two revisions of the Pdf document.
+type DiffPolicy interface{
+
+// ReviewFile should check the revisions of the old and new parsers
+// and evaluate the differences between the revisions.
+// Each implementation of this interface must decide
+// how to handle cases where there are multiple revisions between the old and new revisions.
+ReviewFile (_cec *_fg .PdfParser ,_dgac *_fg .PdfParser ,_bad *MDPParameters )(*DiffResults ,error );};func NewDefaultDiffPolicy ()DiffPolicy {return &defaultDiffPolicy {_gcb :nil ,_e :&DiffResults {},_c :0};};const (NoRestrictions DocMDPPermission =0;
+NoChanges DocMDPPermission =1;FillForms DocMDPPermission =2;FillFormsAndAnnots DocMDPPermission =3;);func (_fab *DiffResults )addError (_cee *DiffResult ){if _fab .Errors ==nil {_fab .Errors =make ([]*DiffResult ,0);};_fab .Errors =append (_fab .Errors ,_cee );
+};func _cce (_bb _fg .PdfObject )([]_fg .PdfObject ,error ){_gef :=make ([]_fg .PdfObject ,0);if _bb !=nil {_fee :=_bb ;if _bgfa ,_aga :=_fg .GetIndirect (_bb );_aga {_fee =_bgfa .PdfObject ;};if _dgag ,_cfbe :=_fg .GetArray (_fee );_cfbe {_gef =_dgag .Elements ();
+}else {return nil ,_f .New ("\u0075n\u0065\u0078\u0070\u0065c\u0074\u0065\u0064\u0020\u0061n\u006eo\u0074s\u0027\u0020\u006f\u0062\u006a\u0065\u0063t");};};return _gef ,nil ;};
+
+// String returns the state of the warning.
+func (_fba *DiffResult )String ()string {return _gc .Sprintf ("\u0025\u0073\u0020\u0069n \u0072\u0065\u0076\u0069\u0073\u0069\u006f\u006e\u0073\u0020\u0023\u0025\u0064",_fba .Description ,_fba .Revision );};
+
+// DocMDPPermission is values for set up access permissions for DocMDP.
+// (Section 12.8.2.2, Table 254 - Entries in a signature dictionary p. 471 in PDF32000_2008).
+type DocMDPPermission int64 ; \ No newline at end of file