mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-01 22:17:29 +08:00
117 lines
36 KiB
Go
117 lines
36 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package license ;import (_ac "bytes";_d "compress/gzip";_f "crypto";_gc "crypto/aes";_dg "crypto/cipher";_gd "crypto/hmac";_df "crypto/rand";_ccb "crypto/rsa";_bc "crypto/sha256";_dga "crypto/sha512";_cc "crypto/x509";_cd "encoding/base64";_fa "encoding/hex";
|
|
_ba "encoding/json";_dd "encoding/pem";_g "errors";_gg "fmt";_af "github.com/unidoc/unipdf/v3/common";_c "io";_be "io/ioutil";_ce "net";_fc "net/http";_a "os";_bd "path/filepath";_e "sort";_ec "strings";_fe "sync";_dc "time";);type meteredUsageCheckinResp struct{Instance string `json:"inst"`;
|
|
Next string `json:"next"`;Success bool `json:"success"`;Message string `json:"message"`;RemainingDocs int `json:"rd"`;LimitDocs bool `json:"ld"`;};func (_egf defaultStateHolder )updateState (_ceb ,_fgg ,_dag string ,_cae int ,_ebdcd bool ,_ccc int ,_bcff int ,_debe _dc .Time ,_def map[string ]int )error {_cge ,_bfe :=_cadc ();
|
|
if _bfe !=nil {return _bfe ;};if len (_ceb )< 20{return _g .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_bbb :=[]byte (_ceb );_bce :=_dga .Sum512_256 (_bbb [:20]);_dgb :=_fa .EncodeToString (_bce [:]);_dfc :=_bd .Join (_cge ,_dgb );
|
|
var _bbe reportState ;_bbe .Docs =int64 (_cae );_bbe .NumErrors =int64 (_bcff );_bbe .LimitDocs =_ebdcd ;_bbe .RemainingDocs =int64 (_ccc );_bbe .LastWritten =_dc .Now ().UTC ();_bbe .LastReported =_debe ;_bbe .Instance =_fgg ;_bbe .Next =_dag ;_bbe .Usage =_def ;
|
|
_ee ,_bfe :=_ba .Marshal (_bbe );if _bfe !=nil {return _bfe ;};const _bcb ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_ee ,_bfe =_add ([]byte (_bcb ),_ee );if _bfe !=nil {return _bfe ;};_bfe =_be .WriteFile (_dfc ,_ee ,0600);
|
|
if _bfe !=nil {return _bfe ;};return nil ;};func _bac (_beb string ,_ead string )([]byte ,error ){var (_bg int ;_bge string ;);for _ ,_bge =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _bg =_ec .Index (_ead ,_bge );
|
|
_bg !=-1{break ;};};if _bg ==-1{return nil ,_gg .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u002c \u0073i\u0067n\u0061t\u0075\u0072\u0065\u0020\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u006f\u0072");};_gdf :=_ead [:_bg ];
|
|
_dfb :=_bg +len (_bge );_dfa :=_ead [_dfb :];if _gdf ==""||_dfa ==""{return nil ,_gg .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u0069n\u0070\u0075\u0074,\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0069\u0067\u0069n\u0061\u006c \u006f\u0072\u0020\u0073\u0069\u0067n\u0061\u0074u\u0072\u0065");
|
|
};_aa ,_fca :=_cd .StdEncoding .DecodeString (_gdf );if _fca !=nil {return nil ,_gg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_caa ,_fca :=_cd .StdEncoding .DecodeString (_dfa );
|
|
if _fca !=nil {return nil ,_gg .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_eg ,_ :=_dd .Decode ([]byte (_beb ));if _eg ==nil {return nil ,_gg .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
|
|
};_ge ,_fca :=_cc .ParsePKIXPublicKey (_eg .Bytes );if _fca !=nil {return nil ,_fca ;};_ae :=_ge .(*_ccb .PublicKey );if _ae ==nil {return nil ,_gg .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
|
|
};_gb :=_dga .New ();_gb .Write (_aa );_age :=_gb .Sum (nil );_fca =_ccb .VerifyPKCS1v15 (_ae ,_f .SHA512 ,_age ,_caa );if _fca !=nil {return nil ,_fca ;};return _aa ,nil ;};func (_cde defaultStateHolder )loadState (_deee string )(reportState ,error ){_fbg ,_cec :=_cadc ();
|
|
if _cec !=nil {return reportState {},_cec ;};_cec =_a .MkdirAll (_fbg ,0777);if _cec !=nil {return reportState {},_cec ;};if len (_deee )< 20{return reportState {},_g .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_bff :=[]byte (_deee );
|
|
_dec :=_dga .Sum512_256 (_bff [:20]);_gdc :=_fa .EncodeToString (_dec [:]);_bae :=_bd .Join (_fbg ,_gdc );_bab ,_cec :=_be .ReadFile (_bae );if _cec !=nil {if _a .IsNotExist (_cec ){return reportState {},nil ;};_af .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cec );
|
|
return reportState {},_g .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _fdcc ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_bab ,_cec =_acdb ([]byte (_fdcc ),_bab );if _cec !=nil {return reportState {},_cec ;
|
|
};var _cdg reportState ;_cec =_ba .Unmarshal (_bab ,&_cdg );if _cec !=nil {_af .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076",_cec );return reportState {},_g .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");
|
|
};return _cdg ,nil ;};const _ced ="U\u004eI\u0050\u0044\u0046\u005f\u0043\u0055\u0053\u0054O\u004d\u0045\u0052\u005fNA\u004d\u0045";var _gee stateLoader =defaultStateHolder {};func GetLicenseKey ()*LicenseKey {if _gbdb ==nil {return nil ;};_bcee :=*_gbdb ;
|
|
return &_bcee ;};type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;};func _add (_afbb ,_agea []byte )([]byte ,error ){_abfa ,_egg :=_gc .NewCipher (_afbb );if _egg !=nil {return nil ,_egg ;};_bgg :=make ([]byte ,_gc .BlockSize +len (_agea ));
|
|
_ccf :=_bgg [:_gc .BlockSize ];if _ ,_addb :=_c .ReadFull (_df .Reader ,_ccf );_addb !=nil {return nil ,_addb ;};_agb :=_dg .NewCFBEncrypter (_abfa ,_ccf );_agb .XORKeyStream (_bgg [_gc .BlockSize :],_agea );_faaf :=make ([]byte ,_cd .URLEncoding .EncodedLen (len (_bgg )));
|
|
_cd .URLEncoding .Encode (_faaf ,_bgg );return _faaf ,nil ;};func (_aaa *LicenseKey )Validate ()error {if _aaa ._acf {return nil ;};if len (_aaa .LicenseId )< 10{return _gg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020L\u0069\u0063\u0065n\u0073e\u0020\u0049\u0064");
|
|
};if len (_aaa .CustomerId )< 10{return _gg .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020C\u0075\u0073\u0074\u006f\u006d\u0065\u0072 \u0049\u0064");};if len (_aaa .CustomerName )< 1{return _gg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043u\u0073\u0074\u006f\u006d\u0065\u0072\u0020\u004e\u0061\u006d\u0065");
|
|
};if _bgf .After (_aaa .CreatedAt ){return _gg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064 \u0041\u0074\u0020\u0069\u0073 \u0069\u006ev\u0061\u006c\u0069\u0064");
|
|
};if _aaa .ExpiresAt ==nil {_acb :=_aaa .CreatedAt .AddDate (1,0,0);if _dgd .After (_acb ){_acb =_dgd ;};_aaa .ExpiresAt =&_acb ;};if _aaa .CreatedAt .After (*_aaa .ExpiresAt ){return _gg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064\u0020\u0041\u0074 \u0063a\u006e\u006e\u006f\u0074 \u0062\u0065 \u0047\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0045\u0078\u0070\u0069\u0072\u0065\u0073\u0020\u0041\u0074");
|
|
};if _aaa .isExpired (){_cdd :="\u0054\u0068\u0065\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064\u002e\u000a"+"\u0059o\u0075\u0020\u006d\u0061y\u0020n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0075\u0070d\u0061\u0074\u0065\u0020\u0074\u0068\u0065\u0020l\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020t\u006f\u0020\u0074\u0068\u0065\u0020\u006e\u0065\u0077\u0065s\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0066\u006f\u0072\u0020\u0079o\u0075\u0072\u0020\u006f\u0072\u0067\u0061\u006e\u0069\u007a\u0061\u0074i\u006fn\u002e\u000a"+"\u0054o\u0020\u0066\u0069\u006ed y\u006f\u0075\u0072\u0020n\u0065\u0077\u0065\u0073\u0074\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u006b\u0065\u0079\u002c\u0020\u0067\u006f\u0020\u0074\u006f\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063l\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064oc\u002e\u0069\u006f \u0061\u006e\u0064\u0020\u0067o\u0020t\u006f\u0020\u0074\u0068\u0065\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006d\u0065\u006e\u0075\u002e";
|
|
return _gg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0025\u0073",_cdd );};if len (_aaa .CreatorName )< 1{return _gg .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u0020na\u006d\u0065");
|
|
};if len (_aaa .CreatorEmail )< 1{return _gg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043r\u0065\u0061\u0074\u006f\u0072\u0020\u0065\u006d\u0061\u0069\u006c");};if _aaa .CreatedAt .After (_faf ){if !_aaa .UniPDF {return _gg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020k\u0065\u0079\u0020\u0069\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d \u0066\u006f\u0072\u0020\u0055\u006e\u0069\u0050\u0044\u0046");
|
|
};};return nil ;};func _cdfa (_efa []byte )(_c .Reader ,error ){_cfc :=new (_ac .Buffer );_abab :=_d .NewWriter (_cfc );_abab .Write (_efa );_ad :=_abab .Close ();if _ad !=nil {return nil ,_ad ;};return _cfc ,nil ;};var _dcg map[string ]struct{};type LicenseKey struct{LicenseId string `json:"license_id"`;
|
|
CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _dc .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt *_dc .Time `json:"-"`;ExpiresAtInt int64 `json:"expires_at"`;CreatedBy string `json:"created_by"`;
|
|
CreatorName string `json:"creator_name"`;CreatorEmail string `json:"creator_email"`;UniPDF bool `json:"unipdf"`;UniOffice bool `json:"unioffice"`;UniHTML bool `json:"unihtml"`;Trial bool `json:"trial"`;_acf bool ;_gda string ;_bb bool ;};func SetLicenseKey (content string ,customerName string )error {_bcea ,_cddf :=_acc (content );
|
|
if _cddf !=nil {_af .Log .Error ("\u004c\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020\u0065\u0072\u0072\u006f\u0072: \u0025\u0076",_cddf );return _cddf ;};if !_ec .EqualFold (_bcea .CustomerName ,customerName ){_af .Log .Error ("L\u0069ce\u006es\u0065 \u0063\u006f\u0064\u0065\u0020i\u0073\u0073\u0075e\u0020\u002d\u0020\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006da\u0074\u0063\u0068, e\u0078\u0070\u0065\u0063\u0074\u0065d\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067o\u0074 \u0027\u0025\u0073\u0027",_bcea .CustomerName ,customerName );
|
|
return _gg .Errorf ("\u0063\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061t\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074\u0020\u0027\u0025\u0073'",_bcea .CustomerName ,customerName );
|
|
};_cddf =_bcea .Validate ();if _cddf !=nil {_af .Log .Error ("\u004c\u0069\u0063\u0065\u006e\u0073e\u0020\u0063\u006f\u0064\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cddf );
|
|
return _cddf ;};_gbdb =&_bcea ;return nil ;};const _agdc ="\u000a\u002d\u002d\u002d\u002d\u002d\u0042\u0045\u0047\u0049\u004e \u0050\u0055\u0042\u004c\u0049\u0043\u0020\u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\u000a\u004d\u0049I\u0042\u0049\u006a\u0041NB\u0067\u006b\u0071\u0068\u006b\u0069G\u0039\u0077\u0030\u0042\u0041\u0051\u0045\u0046A\u0041\u004f\u0043\u0041\u0051\u0038\u0041\u004d\u0049\u0049\u0042\u0043\u0067\u004b\u0043\u0041\u0051\u0045A\u006dF\u0055\u0069\u0079\u0064\u0037\u0062\u0035\u0058\u006a\u0070\u006b\u0050\u0035\u0052\u0061\u0070\u0034\u0077\u000a\u0044\u0063\u0031d\u0079\u007a\u0049\u0051\u0034\u004c\u0065\u006b\u0078\u0072\u0076\u0079\u0074\u006e\u0045\u004d\u0070\u004e\u0055\u0062\u006f\u0036i\u0041\u0037\u0034\u0056\u0038\u0072\u0075\u005a\u004f\u0076\u0072\u0053\u0063\u0073\u0066\u0032\u0051\u0065\u004e9\u002f\u0071r\u0055\u0047\u0038\u0071\u0045\u0062\u0055\u0057\u0064\u006f\u0045\u0059\u0071+\u000a\u006f\u0074\u0046\u004e\u0041\u0046N\u0078\u006c\u0047\u0062\u0078\u0062\u0044\u0048\u0063\u0064\u0047\u0056\u0061\u004d\u0030\u004f\u0058\u0064\u0058g\u0044y\u004c5\u0061\u0049\u0045\u0061\u0067\u004c\u0030\u0063\u0035\u0070\u0077\u006a\u0049\u0064\u0050G\u0049\u006e\u0034\u0036\u0066\u0037\u0038\u0065\u004d\u004a\u002b\u004a\u006b\u0064\u0063\u0070\u0044\n\u0044\u004a\u0061\u0071\u0059\u0058d\u0072\u007a5\u004b\u0065\u0073\u0068\u006aS\u0069\u0049\u0061\u0061\u0037\u006d\u0065\u006e\u0042\u0049\u0041\u0058\u0053\u0034\u0055\u0046\u0078N\u0066H\u0068\u004e\u0030\u0048\u0043\u0059\u005a\u0059\u0071\u0051\u0047\u0037\u0062K+\u0073\u0035\u0072R\u0048\u006f\u006e\u0079\u0064\u004eW\u0045\u0047\u000a\u0048\u0038M\u0079\u0076\u00722\u0070\u0079\u0061\u0032K\u0072\u004d\u0075m\u0066\u006d\u0041\u0078\u0055\u0042\u0036\u0066\u0065\u006e\u0043\u002f4\u004f\u0030\u0057\u00728\u0067\u0066\u0050\u004f\u0055\u0038R\u0069\u0074\u006d\u0062\u0044\u0076\u0051\u0050\u0049\u0052\u0058\u004fL\u0034\u0076\u0054B\u0072\u0042\u0064\u0062a\u0041\u000a9\u006e\u0077\u004e\u0050\u002b\u0069\u002f\u002f\u0032\u0030\u004d\u00542\u0062\u0078\u006d\u0065\u0057\u0042\u002b\u0067\u0070\u0063\u0045\u0068G\u0070\u0058\u005a7\u0033\u0033\u0061\u007a\u0051\u0078\u0072\u0043\u0033\u004a\u0034\u0076\u0033C\u005a\u006d\u0045\u004eS\u0074\u0044\u004b\u002f\u004b\u0044\u0053\u0050\u004b\u0055\u0047\u0066\u00756\u000a\u0066\u0077I\u0044\u0041\u0051\u0041\u0042\u000a\u002d\u002d\u002d\u002d\u002dE\u004e\u0044\u0020\u0050\u0055\u0042\u004c\u0049\u0043 \u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\n";
|
|
func (_fdd *meteredClient )checkinUsage (_cbg meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_cbg .Package ="\u0075\u006e\u0069\u0070\u0064\u0066";_cbg .PackageVersion =_af .Version ;var _aeb meteredUsageCheckinResp ;_aga :=_fdd ._dee +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";
|
|
_aec ,_da :=_ba .Marshal (_cbg );if _da !=nil {return _aeb ,_da ;};_ef ,_da :=_cdfa (_aec );if _da !=nil {return _aeb ,_da ;};_ebdc ,_da :=_fc .NewRequest ("\u0050\u004f\u0053\u0054",_aga ,_ef );if _da !=nil {return _aeb ,_da ;};_ebdc .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
|
|
_ebdc .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_ebdc .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
|
|
_ebdc .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_fdd ._afe );_gbb ,_da :=_fdd ._cf .Do (_ebdc );if _da !=nil {return _aeb ,_da ;};defer _gbb .Body .Close ();if _gbb .StatusCode !=200{_dge ,_ged :=_gbcd (_gbb );if _ged !=nil {return _aeb ,_ged ;
|
|
};_ged =_ba .Unmarshal (_dge ,&_aeb );if _ged !=nil {return _aeb ,_ged ;};return _aeb ,_gg .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_gbb .StatusCode );
|
|
};_fdc :=_gbb .Header .Get ("\u0058\u002d\u0055\u0043\u002d\u0053\u0069\u0067\u006ea\u0074\u0075\u0072\u0065");_ffc :=_dbe (_cbg .MacAddress ,string (_aec ));if _ffc !=_fdc {_af .Log .Error ("I\u006e\u0076\u0061l\u0069\u0064\u0020\u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u002c\u0020\u0073\u0065t\u0020\u0074\u0068e\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0073\u0065\u0072\u0076e\u0072\u0020\u0074\u006f \u0068\u0074\u0074\u0070s\u003a\u002f\u002f\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069o\u002f\u0061\u0070\u0069");
|
|
return _aeb ,_g .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u0063\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0065\u0072\u0076\u0065\u0072 \u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065");
|
|
};_ed ,_da :=_gbcd (_gbb );if _da !=nil {return _aeb ,_da ;};_da =_ba .Unmarshal (_ed ,&_aeb );if _da !=nil {return _aeb ,_da ;};return _aeb ,nil ;};type defaultStateHolder struct{};func (_bfd *LicenseKey )TypeToString ()string {if _bfd ._acf {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";
|
|
};if _bfd .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";};if _bfd .Tier ==LicenseTierCommunity {return "\u0041\u0047PL\u0076\u0033\u0020O\u0070\u0065\u006e\u0020Sou\u0072ce\u0020\u0043\u006f\u006d\u006d\u0075\u006eit\u0079\u0020\u004c\u0069\u0063\u0065\u006es\u0065";
|
|
};if _bfd .Tier ==LicenseTierIndividual ||_bfd .Tier =="\u0069\u006e\u0064i\u0065"{return "\u0043\u006f\u006dm\u0065\u0072\u0063\u0069a\u006c\u0020\u004c\u0069\u0063\u0065\u006es\u0065\u0020\u002d\u0020\u0049\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";
|
|
};return "\u0043\u006fm\u006d\u0065\u0072\u0063\u0069\u0061\u006c\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u002d\u0020\u0042\u0075\u0073\u0069ne\u0073\u0073";};func _eac (_ebdf string ,_bda string ,_ddf bool )error {if _gbdb ==nil {return _g .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");
|
|
};if !_gbdb ._acf ||len (_gbdb ._gda )==0{return nil ;};if len (_ebdf )==0&&!_ddf {return _g .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_gbdg .Lock ();defer _gbdg .Unlock ();if _dcg ==nil {_dcg =map[string ]struct{}{};
|
|
};if _bee ==nil {_bee =map[string ]int {};};_fcgg :=0;if len (_ebdf )> 0{_ ,_dbc :=_dcg [_ebdf ];if !_dbc {_dcg [_ebdf ]=struct{}{};_fcgg ++;};};if _fcgg ==0&&!_ddf {return nil ;};_bee [_bda ]++;_efe :=_dc .Now ();_bec ,_cdea :=_gee .loadState (_gbdb ._gda );
|
|
if _cdea !=nil {_af .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdea );return _cdea ;};if _bec .Usage ==nil {_bec .Usage =map[string ]int {};};for _ede ,_fgb :=range _bee {if _ede !=""{_bec .Usage [_ede ]+=_fgb ;};};_bee =nil ;const _fbgd =24*_dc .Hour ;
|
|
const _eeg =3*24*_dc .Hour ;if len (_bec .Instance )==0||_efe .Sub (_bec .LastReported )> _fbgd ||(_bec .LimitDocs &&_bec .RemainingDocs <=_bec .Docs +int64 (_fcgg ))||_ddf {_caf ,_edc :=_a .Hostname ();if _edc !=nil {return _edc ;};_gdcd :=_bec .Docs ;
|
|
_cad ,_acdd ,_edc :=_gfe ();if _edc !=nil {_af .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u006c\u006fc\u0061\u006c\u0020\u0061\u0064\u0064\u0072\u0065\u0073\u0073\u003a\u0020\u0025\u0073",_edc .Error ());_cad =append (_cad ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");
|
|
_acdd =append (_acdd ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");}else {_e .Strings (_acdd );_e .Strings (_cad );_cbgg ,_gbdc :=_gae ();if _gbdc !=nil {return _gbdc ;};_eba :=false ;
|
|
for _ ,_dff :=range _acdd {if _dff ==_cbgg .String (){_eba =true ;};};if !_eba {_acdd =append (_acdd ,_cbgg .String ());};};_eae :=_cb ();_eae ._afe =_gbdb ._gda ;_gdcd +=int64 (_fcgg );_cga :=meteredUsageCheckinForm {Instance :_bec .Instance ,Next :_bec .Next ,UsageNumber :int (_gdcd ),NumFailed :_bec .NumErrors ,Hostname :_caf ,LocalIP :_ec .Join (_acdd ,"\u002c\u0020"),MacAddress :_ec .Join (_cad ,"\u002c\u0020"),Package :"\u0075\u006e\u0069\u0070\u0064\u0066",PackageVersion :_af .Version ,Usage :_bec .Usage ,IsPersistentCache :_gbdb ._bb ,Timestamp :_efe .Unix ()};
|
|
if len (_cad )==0{_cga .MacAddress ="\u006e\u006f\u006e\u0065";};_bagb :=int64 (0);_fdag :=_bec .NumErrors ;_gbde :=_efe ;_ddfe :=0;_aad :=_bec .LimitDocs ;_ga ,_edc :=_eae .checkinUsage (_cga );if _edc !=nil {if _efe .Sub (_bec .LastReported )> _eeg {if !_ga .Success {return _g .New (_ga .Message );
|
|
};return _g .New ("\u0074\u006f\u006f\u0020\u006c\u006f\u006e\u0067\u0020\u0073\u0069\u006e\u0063\u0065\u0020\u006c\u0061\u0073\u0074\u0020\u0073\u0075\u0063\u0063e\u0073\u0073\u0066\u0075\u006c \u0063\u0068e\u0063\u006b\u0069\u006e");};_bagb =_gdcd ;_fdag ++;
|
|
_gbde =_bec .LastReported ;}else {_aad =_ga .LimitDocs ;_ddfe =_ga .RemainingDocs ;_fdag =0;};if len (_ga .Instance )==0{_ga .Instance =_cga .Instance ;};if len (_ga .Next )==0{_ga .Next =_cga .Next ;};_edc =_gee .updateState (_eae ._afe ,_ga .Instance ,_ga .Next ,int (_bagb ),_aad ,_ddfe ,int (_fdag ),_gbde ,nil );
|
|
if _edc !=nil {return _edc ;};if !_ga .Success {return _gg .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_ga .Message );};}else {_cdea =_gee .updateState (_gbdb ._gda ,_bec .Instance ,_bec .Next ,int (_bec .Docs )+_fcgg ,_bec .LimitDocs ,int (_bec .RemainingDocs ),int (_bec .NumErrors ),_bec .LastReported ,_bec .Usage );
|
|
if _cdea !=nil {return _cdea ;};};return nil ;};const _efb ="\u0055N\u0049D\u004f\u0043\u005f\u004c\u0049C\u0045\u004eS\u0045\u005f\u0044\u0049\u0052";func GetMeteredState ()(MeteredStatus ,error ){if _gbdb ==nil {return MeteredStatus {},_g .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
|
};if !_gbdb ._acf ||len (_gbdb ._gda )==0{return MeteredStatus {},_g .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_bafe ,_ebdb :=_gee .loadState (_gbdb ._gda );if _ebdb !=nil {_af .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ebdb );
|
|
return MeteredStatus {},_ebdb ;};if _bafe .Docs > 0{_gde :=_eac ("","",true );if _gde !=nil {return MeteredStatus {},_gde ;};};_gbdg .Lock ();defer _gbdg .Unlock ();_cgf :=_cb ();_cgf ._afe =_gbdb ._gda ;_cfb ,_ebdb :=_cgf .getStatus ();if _ebdb !=nil {return MeteredStatus {},_ebdb ;
|
|
};if !_cfb .Valid {return MeteredStatus {},_g .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_aba :=MeteredStatus {OK :true ,Credits :_cfb .OrgCredits ,Used :_cfb .OrgUsed };return _aba ,nil ;};func TrackUse (useKey string ){if _gbdb ==nil {return ;
|
|
};if !_gbdb ._acf ||len (_gbdb ._gda )==0{return ;};if len (useKey )==0{return ;};_gbdg .Lock ();defer _gbdg .Unlock ();if _bee ==nil {_bee =map[string ]int {};};_bee [useKey ]++;};func (_bcd *LicenseKey )ToString ()string {if _bcd ._acf {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";
|
|
};_gce :=_gg .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bcd .LicenseId );_gce +=_gg .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bcd .CustomerId );
|
|
_gce +=_gg .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_bcd .CustomerName );_gce +=_gg .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_bcd .Tier );_gce +=_gg .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_af .UtcTimeFormat (_bcd .CreatedAt ));
|
|
if _bcd .ExpiresAt ==nil {_gce +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";}else {_gce +=_gg .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_af .UtcTimeFormat (*_bcd .ExpiresAt ));
|
|
};_gce +=_gg .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_bcd .CreatorName ,_bcd .CreatorEmail );return _gce ;};func _acc (_gbc string )(LicenseKey ,error ){var _gcb LicenseKey ;_bag ,_gbgc :=_db (_cdf ,_cg ,_gbc );
|
|
if _gbgc !=nil {return _gcb ,_gbgc ;};_gef ,_gbgc :=_bac (_agdc ,_bag );if _gbgc !=nil {return _gcb ,_gbgc ;};_gbgc =_ba .Unmarshal (_gef ,&_gcb );if _gbgc !=nil {return _gcb ,_gbgc ;};_gcb .CreatedAt =_dc .Unix (_gcb .CreatedAtInt ,0);if _gcb .ExpiresAtInt > 0{_gcd :=_dc .Unix (_gcb .ExpiresAtInt ,0);
|
|
_gcb .ExpiresAt =&_gcd ;};return _gcb ,nil ;};func _cb ()*meteredClient {_egb :=meteredClient {_dee :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_cf :&_fc .Client {Timeout :30*_dc .Second }};
|
|
if _bcf :=_a .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_ec .HasPrefix (_bcf ,"\u0068\u0074\u0074\u0070"){_egb ._dee =_bcf ;};return &_egb ;};type meteredStatusResp struct{Valid bool `json:"valid"`;
|
|
OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};const (_cdf ="\u002d\u002d\u002d--\u0042\u0045\u0047\u0049\u004e\u0020\u0055\u004e\u0049D\u004fC\u0020L\u0049C\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";
|
|
_cg ="\u002d\u002d\u002d\u002d\u002d\u0045\u004e\u0044\u0020\u0055\u004e\u0049\u0044\u004f\u0043 \u004cI\u0043\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";);func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_af .Log .Error ("\u004d\u0065\u0074\u0065\u0072e\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049 \u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079");
|
|
_af .Log .Error ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020\u006f\u006e\u0065\u0020\u0069\u006e\u0020\u0074h\u0065\u0020\u0046\u0072\u0065\u0065\u0020\u0054\u0069\u0065\u0072\u0020\u0061t\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006fud\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
|
return _gg .Errorf ("\u006de\u0074\u0065\u0072e\u0064\u0020\u006ci\u0063en\u0073\u0065\u0020\u0061\u0070\u0069\u0020k\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u003a\u0020\u0063\u0072\u0065\u0061\u0074\u0065 o\u006ee\u0020\u0061\u0074\u0020\u0068\u0074t\u0070\u0073\u003a\u002f\u002fc\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063.\u0069\u006f");
|
|
};if _gbdb !=nil &&(_gbdb ._acf ||_gbdb .Tier !=LicenseTierUnlicensed ){_af .Log .Error ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0043\u0061\u006e\u006eo\u0074 \u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0074\u0077\u0069c\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u006a\u0075\u0073\u0074\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065");
|
|
return _g .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_debd :=_cb ();_debd ._afe =apiKey ;_abf ,_ecb :=_debd .getStatus ();if _ecb !=nil {return _ecb ;};if !_abf .Valid {return _g .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");
|
|
};_baf :=&LicenseKey {_acf :true ,_gda :apiKey ,_bb :true };_gbdb =_baf ;return nil ;};func _db (_ab string ,_gca string ,_ddg string )(string ,error ){_gbg :=_ec .Index (_ddg ,_ab );if _gbg ==-1{return "",_gg .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
|
|
};_deb :=_ec .Index (_ddg ,_gca );if _deb ==-1{return "",_gg .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_geg :=_gbg +len (_ab )+1;return _ddg [_geg :_deb -1],nil ;};func SetMeteredKeyPersistentCache (val bool ){_gbdb ._bb =val };
|
|
var _gbdg =&_fe .Mutex {};func (_gefd *LicenseKey )isExpired ()bool {return _gefd .getExpiryDateToCompare ().After (*_gefd .ExpiresAt );};func _gbcd (_fcd *_fc .Response )([]byte ,error ){var _fgf []byte ;_bbg ,_bbea :=_cee (_fcd );if _bbea !=nil {return _fgf ,_bbea ;
|
|
};return _be .ReadAll (_bbg );};type meteredClient struct{_dee string ;_afe string ;_cf *_fc .Client ;};type meteredUsageCheckinForm struct{Instance string `json:"inst"`;Next string `json:"next"`;UsageNumber int `json:"usage_number"`;NumFailed int64 `json:"num_failed"`;
|
|
Hostname string `json:"hostname"`;LocalIP string `json:"local_ip"`;MacAddress string `json:"mac_address"`;Package string `json:"package"`;PackageVersion string `json:"package_version"`;Usage map[string ]int `json:"u"`;IsPersistentCache bool `json:"is_persistent_cache"`;
|
|
Timestamp int64 `json:"timestamp"`;};var _gbdb =MakeUnlicensedKey ();func _gfe ()([]string ,[]string ,error ){_abe ,_ddd :=_ce .Interfaces ();if _ddd !=nil {return nil ,nil ,_ddd ;};var _cbe []string ;var _bece []string ;for _ ,_dgbg :=range _abe {if _dgbg .Flags &_ce .FlagUp ==0||_ac .Equal (_dgbg .HardwareAddr ,nil ){continue ;
|
|
};_egd ,_fce :=_dgbg .Addrs ();if _fce !=nil {return nil ,nil ,_fce ;};_aebd :=0;for _ ,_ace :=range _egd {var _dae _ce .IP ;switch _acdc :=_ace .(type ){case *_ce .IPNet :_dae =_acdc .IP ;case *_ce .IPAddr :_dae =_acdc .IP ;};if _dae .IsLoopback (){continue ;
|
|
};if _dae .To4 ()==nil {continue ;};_bece =append (_bece ,_dae .String ());_aebd ++;};_ffcb :=_dgbg .HardwareAddr .String ();if _ffcb !=""&&_aebd > 0{_cbe =append (_cbe ,_ffcb );};};return _cbe ,_bece ,nil ;};const (LicenseTierUnlicensed ="\u0075\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";
|
|
LicenseTierCommunity ="\u0063o\u006d\u006d\u0075\u006e\u0069\u0074y";LicenseTierIndividual ="\u0069\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";LicenseTierBusiness ="\u0062\u0075\u0073\u0069\u006e\u0065\u0073\u0073";);var _faf =_dc .Date (2019,6,6,0,0,0,0,_dc .UTC );
|
|
func (_bf *LicenseKey )getExpiryDateToCompare ()_dc .Time {if _bf .Trial {return _dc .Now ().UTC ();};return _af .ReleasedAt ;};type reportState struct{Instance string `json:"inst"`;Next string `json:"n"`;Docs int64 `json:"d"`;NumErrors int64 `json:"e"`;
|
|
LimitDocs bool `json:"ld"`;RemainingDocs int64 `json:"rd"`;LastReported _dc .Time `json:"lr"`;LastWritten _dc .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};func _gae ()(_ce .IP ,error ){_egcg ,_dgf :=_ce .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");
|
|
if _dgf !=nil {return nil ,_dgf ;};defer _egcg .Close ();_bgb :=_egcg .LocalAddr ().(*_ce .UDPAddr );return _bgb .IP ,nil ;};func _cadc ()(string ,error ){_cbgf :=_ec .TrimSpace (_a .Getenv (_efb ));if _cbgf ==""{_af .Log .Debug ("\u0024\u0025\u0073\u0020e\u006e\u0076\u0069\u0072\u006f\u006e\u006d\u0065\u006e\u0074\u0020\u0076\u0061\u0072\u0069\u0061\u0062l\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020\u0057\u0069\u006c\u006c\u0020\u0075\u0073\u0065\u0020\u0068\u006f\u006d\u0065\u0020\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u0074\u006f\u0020s\u0074\u006f\u0072\u0065\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020in\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u002e",_efb );
|
|
_aeg :=_bead ();if len (_aeg )==0{return "",_gg .Errorf ("r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0024\u0025\u0073\u0020\u0065\u006e\u0076\u0069\u0072\u006f\u006e\u006d\u0065\u006e\u0074\u0020\u0076\u0061r\u0069a\u0062\u006c\u0065\u0020o\u0072\u0020h\u006f\u006d\u0065\u0020\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_efb );
|
|
};_cbgf =_bd .Join (_aeg ,"\u002eu\u006e\u0069\u0064\u006f\u0063");};_afb :=_a .MkdirAll (_cbgf ,0777);if _afb !=nil {return "",_afb ;};return _cbgf ,nil ;};func _cee (_ggg *_fc .Response )(_c .ReadCloser ,error ){var _ggb error ;var _facb _c .ReadCloser ;
|
|
switch _ec .ToLower (_ggg .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_facb ,_ggb =_d .NewReader (_ggg .Body );if _ggb !=nil {return _facb ,_ggb ;};defer _facb .Close ();
|
|
default:_facb =_ggg .Body ;};return _facb ,nil ;};var _bee map[string ]int ;func Track (docKey string ,useKey string )error {return _eac (docKey ,useKey ,!_gbdb ._bb )};func (_aed *meteredClient )getStatus ()(meteredStatusResp ,error ){var _ff meteredStatusResp ;
|
|
_bgc :=_aed ._dee +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _gbd meteredStatusForm ;_ebd ,_accb :=_ba .Marshal (_gbd );if _accb !=nil {return _ff ,_accb ;};_ggf ,_accb :=_cdfa (_ebd );if _accb !=nil {return _ff ,_accb ;
|
|
};_dde ,_accb :=_fc .NewRequest ("\u0050\u004f\u0053\u0054",_bgc ,_ggf );if _accb !=nil {return _ff ,_accb ;};_dde .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
|
|
_dde .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_dde .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
|
|
_dde .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_aed ._afe );_fd ,_accb :=_aed ._cf .Do (_dde );if _accb !=nil {return _ff ,_accb ;};defer _fd .Body .Close ();if _fd .StatusCode !=200{return _ff ,_gg .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_fd .StatusCode );
|
|
};_gdb ,_accb :=_gbcd (_fd );if _accb !=nil {return _ff ,_accb ;};_accb =_ba .Unmarshal (_gdb ,&_ff );if _accb !=nil {return _ff ,_accb ;};return _ff ,nil ;};type meteredStatusForm struct{};var _dgd =_dc .Date (2020,1,1,0,0,0,0,_dc .UTC );func init (){_dea :=_a .Getenv (_ffcg );
|
|
_ddae :=_a .Getenv (_ced );if len (_dea )==0||len (_ddae )==0{return ;};_aee ,_dgea :=_be .ReadFile (_dea );if _dgea !=nil {_af .Log .Error ("\u0055\u006eab\u006c\u0065\u0020t\u006f\u0020\u0072\u0065ad \u006cic\u0065\u006e\u0073\u0065\u0020\u0063\u006fde\u0020\u0066\u0069\u006c\u0065\u003a\u0020%\u0076",_dgea );
|
|
return ;};_dgea =SetLicenseKey (string (_aee ),_ddae );if _dgea !=nil {_af .Log .Error ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u006c\u006f\u0061\u0064\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_dgea );
|
|
return ;};};type stateLoader interface{loadState (_ega string )(reportState ,error );updateState (_gdd ,_ddc ,_acd string ,_eag int ,_fg bool ,_faa int ,_gf int ,_cea _dc .Time ,_fda map[string ]int )error ;};func MakeUnlicensedKey ()*LicenseKey {_gec :=LicenseKey {};
|
|
_gec .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_gec .Tier =LicenseTierUnlicensed ;_gec .CreatedAt =_dc .Now ().UTC ();_gec .CreatedAtInt =_gec .CreatedAt .Unix ();return &_gec ;};func (_ageb *LicenseKey )IsLicensed ()bool {return _ageb .Tier !=LicenseTierUnlicensed ||_ageb ._acf };
|
|
func _bead ()string {_aece :=_a .Getenv ("\u0048\u004f\u004d\u0045");if len (_aece )==0{_aece ,_ =_a .UserHomeDir ();};return _aece ;};func _acdb (_bdd ,_eef []byte )([]byte ,error ){_afd :=make ([]byte ,_cd .URLEncoding .DecodedLen (len (_eef )));_fef ,_bafb :=_cd .URLEncoding .Decode (_afd ,_eef );
|
|
if _bafb !=nil {return nil ,_bafb ;};_afd =_afd [:_fef ];_bbeb ,_bafb :=_gc .NewCipher (_bdd );if _bafb !=nil {return nil ,_bafb ;};if len (_afd )< _gc .BlockSize {return nil ,_g .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");
|
|
};_cgac :=_afd [:_gc .BlockSize ];_afd =_afd [_gc .BlockSize :];_abd :=_dg .NewCFBDecrypter (_bbeb ,_cgac );_abd .XORKeyStream (_afd ,_afd );return _afd ,nil ;};const _ffcg ="\u0055\u004e\u0049\u0050DF\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041\u0054\u0048";
|
|
var _bgf =_dc .Date (2010,1,1,0,0,0,0,_dc .UTC );func _eb (_ea string ,_ag []byte )(string ,error ){_eaa ,_ :=_dd .Decode ([]byte (_ea ));if _eaa ==nil {return "",_gg .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");
|
|
};_ca ,_de :=_cc .ParsePKCS1PrivateKey (_eaa .Bytes );if _de !=nil {return "",_de ;};_dda :=_dga .New ();_dda .Write (_ag );_fcg :=_dda .Sum (nil );_eaf ,_de :=_ccb .SignPKCS1v15 (_df .Reader ,_ca ,_f .SHA512 ,_fcg );if _de !=nil {return "",_de ;};_agd :=_cd .StdEncoding .EncodeToString (_ag );
|
|
_agd +="\u000a\u002b\u000a";_agd +=_cd .StdEncoding .EncodeToString (_eaf );return _agd ,nil ;};func _dbe (_bdbc ,_aab string )string {_ada :=[]byte (_bdbc );_gceg :=_gd .New (_bc .New ,_ada );_gceg .Write ([]byte (_aab ));return _cd .StdEncoding .EncodeToString (_gceg .Sum (nil ));
|
|
}; |