[Box Backup-dev] Proposal (patch): bbstored HousekeepingStyle mod

G. boxbackup-dev@fluffy.co.uk
Thu, 11 Jan 2007 08:26:47 -0800 (PST)


--0-838987114-1168532807=:52758
Content-Type: text/plain; charset=ascii
Content-Transfer-Encoding: quoted-printable

Hi everyone,=0A=0AI produced a patch for bbstored housekeeping, to allow fo=
r a bbstored.conf "HousekeepingStyle" choice of "AchieveSoftLimit" (the cur=
rent 0.10 implementation functionality), or a more thorough "RetainCurrentO=
nly" (deleting all old versions and deleted files during each housekeeping =
run).=0A=0AMy main rationale for this patch was the fact that not only old =
file versions were rather irrelevant in my backup scenario, but also keepin=
g a repository dist-clean gets rid of the problem when a large file diff ge=
ts rejected by bbstored, if its size is larger than the difference between =
the soft limit and the hard limit (if I remember correctly).=0A=0AA small p=
atch off 0.10 attached. Changes are almost trivial, not sure if you want to=
 have it in the main distribution. Feedback appreciated.=0A=0AGary=0A=0A=0A=
 =0A_______________________________________________________________________=
_____________=0AHave a burning question?  =0AGo to www.Answers.yahoo.com an=
d get answers from real people who know.
--0-838987114-1168532807=:52758
Content-Type: application/octet-stream; name="=?utf-8?q?housekeeping-styles.patch?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="=?utf-8?q?housekeeping-styles.patch?="

ZGlmZiAtdXByIGJveGJhY2t1cC0wLjEwL1ZFUlNJT04udHh0IGJveGJhY2t1
cC0wLjEwLW1vZC9WRVJTSU9OLnR4dA0KLS0tIGJveGJhY2t1cC0wLjEwL1ZF
UlNJT04udHh0CTIwMDYtMDItMjMgMTU6NDc6MzguMDAwMDAwMDAwIC0wNTAw
DQorKysgYm94YmFja3VwLTAuMTAtbW9kL1ZFUlNJT04udHh0CTIwMDctMDEt
MDMgMTI6NDY6MDIuMDAwMDAwMDAwIC0wNTAwDQpAQCAtMSwyICsxLDIgQEAN
Ci0wLjEwDQorMC4xMC1tb2QtaG91c2VrZWVwaW5nLXN0eWxlDQogYm94YmFj
a3VwDQpkaWZmIC11cHIgYm94YmFja3VwLTAuMTAvYmluL2Jic3RvcmVkL0JC
U3RvcmVESG91c2VrZWVwaW5nLmNwcCBib3hiYWNrdXAtMC4xMC1tb2QvYmlu
L2Jic3RvcmVkL0JCU3RvcmVESG91c2VrZWVwaW5nLmNwcA0KLS0tIGJveGJh
Y2t1cC0wLjEwL2Jpbi9iYnN0b3JlZC9CQlN0b3JlREhvdXNla2VlcGluZy5j
cHAJMjAwNi0wMi0yMyAxNTo0NzozNy4wMDAwMDAwMDAgLTA1MDANCisrKyBi
b3hiYWNrdXAtMC4xMC1tb2QvYmluL2Jic3RvcmVkL0JCU3RvcmVESG91c2Vr
ZWVwaW5nLmNwcAkyMDA3LTAxLTAzIDEyOjQxOjU2LjAwMDAwMDAwMCAtMDUw
MA0KQEAgLTg2LDYgKzg2LDI5IEBAIHZvaWQgQmFja3VwU3RvcmVEYWVtb246
OkhvdXNla2VlcGluZ1Byb2MNCiAJCQlsYXN0SG91c2VrZWVwaW5nUnVuID0g
dGltZU5vdzsNCiAJCQk6OnN5c2xvZyhMT0dfSU5GTywgIlN0YXJ0aW5nIGhv
dXNla2VlcGluZyIpOw0KIA0KKwkJCS8vIEZpZ3VyZSBvdXQgaG91c2VrZWVw
aW5nIG1ldGhvZG9sb2d5DQorCQkJSG91c2VrZWVwU3RvcmVBY2NvdW50Ojpl
SG91c2VrZWVwaW5nU3R5bGUgYUhvdXNla2VlcGluZ1N0eWxlOw0KKwkJCXN0
ZDo6c3RyaW5nIGhvdXNla2VlcGluZ1N0eWxlID0gcmNvbmZpZy5LZXlFeGlz
dHMoIkhvdXNla2VlcGluZ1N0eWxlIikgPyByY29uZmlnLkdldEtleVZhbHVl
KCJIb3VzZWtlZXBpbmdTdHlsZSIpIDogIiI7DQorDQorCQkJaWYgKGhvdXNl
a2VlcGluZ1N0eWxlLmVtcHR5KCkgLyogZGVmYXVsdCAqLyB8fCBob3VzZWtl
ZXBpbmdTdHlsZS5jb21wYXJlKCJBY2hpZXZlU29mdExpbWl0IikgPT0gMCkN
CisJCQl7DQorCQkJCWFIb3VzZWtlZXBpbmdTdHlsZSA9IEhvdXNla2VlcFN0
b3JlQWNjb3VudDo6ZUFjaGlldmVTb2Z0TGltaXQ7DQorCQkJfQ0KKwkJCWVs
c2UgaWYgKGhvdXNla2VlcGluZ1N0eWxlLmNvbXBhcmUoIlJldGFpbkN1cnJl
bnRPbmx5IikgPT0gMCkNCisJCQl7DQorCQkJCWFIb3VzZWtlZXBpbmdTdHls
ZSA9IEhvdXNla2VlcFN0b3JlQWNjb3VudDo6ZVJldGFpbkN1cnJlbnRPbmx5
Ow0KKwkJCX0NCisJCQllbHNlDQorCQkJew0KKwkJCQk6OnN5c2xvZygNCisJ
CQkJCUxPR19XQVJOSU5HLA0KKwkJCQkJIlVucmVjb2duaXplZCBob3VzZWtl
ZXBpbmcgc3R5bGUgcmVxdWVzdGVkOiAlcywgZGVmYXVsdGluZyB0byBBY2hp
ZXZlU29mdExpbWl0IiwNCisJCQkJCWhvdXNla2VlcGluZ1N0eWxlLmNfc3Ry
KCkNCisJCQkJCSk7DQorDQorCQkJCWFIb3VzZWtlZXBpbmdTdHlsZSA9IEhv
dXNla2VlcFN0b3JlQWNjb3VudDo6ZUFjaGlldmVTb2Z0TGltaXQ7DQorCQkJ
fQ0KKw0KIAkJCS8vIEdldCB0aGUgbGlzdCBvZiBhY2NvdW50cw0KIAkJCXN0
ZDo6dmVjdG9yPGludDMyX3Q+IGFjY291bnRzOw0KIAkJCWlmKG1wQWNjb3Vu
dERhdGFiYXNlKQ0KQEAgLTEwOSw3ICsxMzIsNyBAQCB2b2lkIEJhY2t1cFN0
b3JlRGFlbW9uOjpIb3VzZWtlZXBpbmdQcm9jDQogCQkJCQkJDQogCQkJCQkJ
Ly8gRG8gaG91c2VrZWVwaW5nIG9uIHRoaXMgYWNjb3VudA0KIAkJCQkJCUhv
dXNla2VlcFN0b3JlQWNjb3VudCBob3VzZWtlZXBpbmcoKmksIHJvb3REaXIs
IGRpc2NTZXQsICp0aGlzKTsNCi0JCQkJCQlob3VzZWtlZXBpbmcuRG9Ib3Vz
ZWtlZXBpbmcoKTsNCisJCQkJCQlob3VzZWtlZXBpbmcuRG9Ib3VzZWtlZXBp
bmcoYUhvdXNla2VlcGluZ1N0eWxlKTsNCiAJCQkJCX0NCiAJCQkJfQ0KIAkJ
CQljYXRjaChCb3hFeGNlcHRpb24gJmUpDQpkaWZmIC11cHIgYm94YmFja3Vw
LTAuMTAvYmluL2Jic3RvcmVkL0hvdXNla2VlcFN0b3JlQWNjb3VudC5jcHAg
Ym94YmFja3VwLTAuMTAtbW9kL2Jpbi9iYnN0b3JlZC9Ib3VzZWtlZXBTdG9y
ZUFjY291bnQuY3BwDQotLS0gYm94YmFja3VwLTAuMTAvYmluL2Jic3RvcmVk
L0hvdXNla2VlcFN0b3JlQWNjb3VudC5jcHAJMjAwNi0wMi0yMyAxNTo0Nzoz
Ny4wMDAwMDAwMDAgLTA1MDANCisrKyBib3hiYWNrdXAtMC4xMC1tb2QvYmlu
L2Jic3RvcmVkL0hvdXNla2VlcFN0b3JlQWNjb3VudC5jcHAJMjAwNy0wMS0w
MyAxMjo0NToxNC4wMDAwMDAwMDAgLTA1MDANCkBAIC0xMTIsMTIgKzExMiwx
NiBAQCBIb3VzZWtlZXBTdG9yZUFjY291bnQ6On5Ib3VzZWtlZXBTdG9yZUFj
DQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLw0KIC8v
IEZ1bmN0aW9uDQotLy8JCU5hbWU6ICAgIEhvdXNla2VlcFN0b3JlQWNjb3Vu
dDo6RG9Ib3VzZWtlZXBpbmcoKQ0KKy8vCQlOYW1lOiAgICBIb3VzZWtlZXBT
dG9yZUFjY291bnQ6OkRvSG91c2VrZWVwaW5nKGVIb3VzZWtlZXBpbmdTdHls
ZSkNCiAvLwkJUHVycG9zZTogUGVyZm9ybSB0aGUgaG91c2VrZWVwaW5nDQor
Ly8NCisvLwkJZUFjaGlldmVTb2Z0TGltaXQ6IGFuIGFjY291bnQgaXMgY2xl
YW5lZCwgdW50aWwgdGhlIHNvZnQtbGltaXQgaGFzIGJlZW4gcmVhY2hlZA0K
Ky8vCQllUmV0YWluQ3VycmVudE9ubHk6IGFuIGFjY291bnQgaXMgY2xlYW5l
ZCwgdW50aWwgYWxsIG9sZCBhbmQgZGVsZXRlZCBmaWxlcyBhcmUgZ29uZQ0K
Ky8vDQogLy8JCUNyZWF0ZWQ6IDExLzEyLzAzDQogLy8NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLXZvaWQgSG91c2VrZWVwU3RvcmVB
Y2NvdW50OjpEb0hvdXNla2VlcGluZygpDQordm9pZCBIb3VzZWtlZXBTdG9y
ZUFjY291bnQ6OkRvSG91c2VrZWVwaW5nKGVIb3VzZWtlZXBpbmdTdHlsZSBh
SG91c2VrZWVwaW5nU3R5bGUpDQogew0KIAkvLyBBdHRlbXB0IHRvIGxvY2sg
dGhlIGFjY291bnQNCiAJc3RkOjpzdHJpbmcgd3JpdGVMb2NrRmlsZW5hbWU7
DQpAQCAtMTMzLDcgKzEzNywxNyBAQCB2b2lkIEhvdXNla2VlcFN0b3JlQWNj
b3VudDo6RG9Ib3VzZWtlZXBpDQogCXN0ZDo6YXV0b19wdHI8QmFja3VwU3Rv
cmVJbmZvPiBpbmZvKEJhY2t1cFN0b3JlSW5mbzo6TG9hZChtQWNjb3VudElE
LCBtU3RvcmVSb290LCBtU3RvcmVEaXNjU2V0LCBmYWxzZSAvKiBSZWFkL1dy
aXRlICovKSk7DQogDQogCS8vIENhbGN1bGF0ZSBob3cgbXVjaCBzaG91bGQg
YmUgZGVsZXRlZA0KLQltRGVsZXRpb25TaXplVGFyZ2V0ID0gaW5mby0+R2V0
QmxvY2tzVXNlZCgpIC0gaW5mby0+R2V0QmxvY2tzU29mdExpbWl0KCk7DQor
CUFTU0VSVChhSG91c2VrZWVwaW5nU3R5bGUgPT0gZUFjaGlldmVTb2Z0TGlt
aXQgfHwgYUhvdXNla2VlcGluZ1N0eWxlID09IGVSZXRhaW5DdXJyZW50T25s
eSk7DQorDQorCWlmIChhSG91c2VrZWVwaW5nU3R5bGUgPT0gZVJldGFpbkN1
cnJlbnRPbmx5KQ0KKwl7DQorCQltRGVsZXRpb25TaXplVGFyZ2V0ID0gaW5m
by0+R2V0QmxvY2tzSW5PbGRGaWxlcygpICsgaW5mby0+R2V0QmxvY2tzSW5E
ZWxldGVkRmlsZXMoKTsNCisJfQ0KKwllbHNlDQorCXsNCisJCW1EZWxldGlv
blNpemVUYXJnZXQgPSBpbmZvLT5HZXRCbG9ja3NVc2VkKCkgLSBpbmZvLT5H
ZXRCbG9ja3NTb2Z0TGltaXQoKTsNCisJfQ0KKw0KIAlpZihtRGVsZXRpb25T
aXplVGFyZ2V0IDwgMCkNCiAJew0KIAkJbURlbGV0aW9uU2l6ZVRhcmdldCA9
IDA7DQpkaWZmIC11cHIgYm94YmFja3VwLTAuMTAvYmluL2Jic3RvcmVkL0hv
dXNla2VlcFN0b3JlQWNjb3VudC5oIGJveGJhY2t1cC0wLjEwLW1vZC9iaW4v
YmJzdG9yZWQvSG91c2VrZWVwU3RvcmVBY2NvdW50LmgNCi0tLSBib3hiYWNr
dXAtMC4xMC9iaW4vYmJzdG9yZWQvSG91c2VrZWVwU3RvcmVBY2NvdW50LmgJ
MjAwNi0wMi0yMyAxNTo0NzozNy4wMDAwMDAwMDAgLTA1MDANCisrKyBib3hi
YWNrdXAtMC4xMC1tb2QvYmluL2Jic3RvcmVkL0hvdXNla2VlcFN0b3JlQWNj
b3VudC5oCTIwMDctMDEtMDMgMTI6MzY6MDEuMDAwMDAwMDAwIC0wNTAwDQpA
QCAtNjcsMTIgKzY3LDE2IEBAIGNsYXNzIEJhY2t1cFN0b3JlRGlyZWN0b3J5
Ow0KIGNsYXNzIEhvdXNla2VlcFN0b3JlQWNjb3VudA0KIHsNCiBwdWJsaWM6
DQorCWVudW0gZUhvdXNla2VlcGluZ1N0eWxlDQorCXsNCisJCWVBY2hpZXZl
U29mdExpbWl0ID0gMSwNCisJCWVSZXRhaW5DdXJyZW50T25seSA9IDIsDQor
CX07DQorcHVibGljOg0KIAlIb3VzZWtlZXBTdG9yZUFjY291bnQoaW50IEFj
Y291bnRJRCwgY29uc3Qgc3RkOjpzdHJpbmcgJnJTdG9yZVJvb3QsIGludCBT
dG9yZURpc2NTZXQsIEJhY2t1cFN0b3JlRGFlbW9uICZyRGFlbW9uKTsNCiAJ
fkhvdXNla2VlcFN0b3JlQWNjb3VudCgpOw0KIAkNCi0Jdm9pZCBEb0hvdXNl
a2VlcGluZygpOw0KLQkNCi0JDQorCXZvaWQgRG9Ib3VzZWtlZXBpbmcoZUhv
dXNla2VlcGluZ1N0eWxlIGFIb3VzZWtlZXBpbmdTdHlsZSk7DQogcHJpdmF0
ZToNCiAJLy8gdXRpbGl0eSBmdW5jdGlvbnMNCiAJdm9pZCBNYWtlT2JqZWN0
RmlsZW5hbWUoaW50NjRfdCBPYmplY3RJRCwgc3RkOjpzdHJpbmcgJnJGaWxl
bmFtZU91dCk7DQpkaWZmIC11cHIgYm94YmFja3VwLTAuMTAvY29uZmlndXJl
IGJveGJhY2t1cC0wLjEwLW1vZC9jb25maWd1cmUNCi0tLSBib3hiYWNrdXAt
MC4xMC9jb25maWd1cmUJMjAwNi0wMi0yMyAxNTo0NzozNy4wMDAwMDAwMDAg
LTA1MDANCisrKyBib3hiYWNrdXAtMC4xMC1tb2QvY29uZmlndXJlCTIwMDYt
MTItMjggMTI6NTE6MTkuMDAwMDAwMDAwIC0wNTAwDQpAQCAtMSw0MiArMSw0
IEBADQogIyEgL2Jpbi9zaA0KLSMgZGlzdHJpYnV0aW9uIGJveGJhY2t1cC0w
LjEwIChzdm4gdmVyc2lvbjogNDk0KQ0KLSMgIA0KLSMgQ29weXJpZ2h0IChj
KSAyMDAzIC0gMjAwNg0KLSMgICAgICBCZW4gU3VtbWVycyBhbmQgY29udHJp
YnV0b3JzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0jICANCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQot
IyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLg0KLSMgMy4gQWxsIHVzZSBvZiB0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtdXN0IA0K
LSMgICAgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50Og0K
LSMgICAgICAgIFRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZl
bG9wZWQgYnkgQmVuIFN1bW1lcnMuDQotIyA0LiBUaGUgbmFtZXMgb2YgdGhl
IEF1dGhvcnMgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZQ0KLSMgICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuDQotIyAgICBwZXJtaXNz
aW9uLg0KLSMgDQotIyBbV2hlcmUgbGVnYWxseSBpbXBlcm1pc3NpYmxlIHRo
ZSBBdXRob3JzIGRvIG5vdCBkaXNjbGFpbSBsaWFiaWxpdHkgZm9yIA0KLSMg
ZGlyZWN0IHBoeXNpY2FsIGluanVyeSBvciBkZWF0aCBjYXVzZWQgc29sZWx5
IGJ5IGRlZmVjdHMgaW4gdGhlIHNvZnR3YXJlIA0KLSMgdW5sZXNzIGl0IGlz
IG1vZGlmaWVkIGJ5IGEgdGhpcmQgcGFydHkuXQ0KLSMgDQotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1INCi0jIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEDQotIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFDQotIyBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULA0KLSMgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTDQotIyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1INCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULA0KLSMgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElODQotIyBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUNCi0jIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KLSMgIA0KLSMgIA0KLSMgIA0KICMgR3Vl
c3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQg
Y3JlYXRlIE1ha2VmaWxlcy4NCiAjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2Nv
bmYgMi41OSBmb3IgQm94IEJhY2t1cCAwLjA5Lg0KICMNCmRpZmYgLXVwciBi
b3hiYWNrdXAtMC4xMC9saWIvYmFja3Vwc3RvcmUvQmFja3VwU3RvcmVDb25m
aWdWZXJpZnkuY3BwIGJveGJhY2t1cC0wLjEwLW1vZC9saWIvYmFja3Vwc3Rv
cmUvQmFja3VwU3RvcmVDb25maWdWZXJpZnkuY3BwDQotLS0gYm94YmFja3Vw
LTAuMTAvbGliL2JhY2t1cHN0b3JlL0JhY2t1cFN0b3JlQ29uZmlnVmVyaWZ5
LmNwcAkyMDA2LTAyLTIzIDE1OjQ3OjM3LjAwMDAwMDAwMCAtMDUwMA0KKysr
IGJveGJhY2t1cC0wLjEwLW1vZC9saWIvYmFja3Vwc3RvcmUvQmFja3VwU3Rv
cmVDb25maWdWZXJpZnkuY3BwCTIwMDctMDEtMDMgMTM6MTE6NTkuMDAwMDAw
MDAwIC0wNTAwDQpAQCAtNzIsNiArNzIsNyBAQCBzdGF0aWMgY29uc3QgQ29u
ZmlndXJhdGlvblZlcmlmeUtleSB2ZXJpDQogew0KIAl7IkFjY291bnREYXRh
YmFzZSIsCTAsIENvbmZpZ1Rlc3RfRXhpc3RzLCAwfSwNCiAJeyJUaW1lQmV0
d2VlbkhvdXNla2VlcGluZyIsCTAsIENvbmZpZ1Rlc3RfRXhpc3RzIHwgQ29u
ZmlnVGVzdF9Jc0ludCwgMH0sDQorCXsiSG91c2VrZWVwaW5nU3R5bGUiLCAg
IEJPWF9GSUxFX0hPVVNFS0VFUElOR19ERUZBVUxUX0NPTkZJRywgMCwgMH0s
DQogCXsiRXh0ZW5kZWRMb2dnaW5nIiwJIm5vIiwgQ29uZmlnVGVzdF9Jc0Jv
b2wsIDB9LAkJCS8vIG1ha2UgdmFsdWUgInllcyIgdG8gZW5hYmxlIGluIGNv
bmZpZyBmaWxlDQogCXsiUmFpZEZpbGVDb25mIiwJQk9YX0ZJTEVfUkFJREZJ
TEVfREVGQVVMVF9DT05GSUcsIENvbmZpZ1Rlc3RfTGFzdEVudHJ5LCAJMH0N
CiB9Ow0KZGlmZiAtdXByIGJveGJhY2t1cC0wLjEwL2xpYi9jb21tb24vQm94
UG9ydHNBbmRGaWxlcy5oIGJveGJhY2t1cC0wLjEwLW1vZC9saWIvY29tbW9u
L0JveFBvcnRzQW5kRmlsZXMuaA0KLS0tIGJveGJhY2t1cC0wLjEwL2xpYi9j
b21tb24vQm94UG9ydHNBbmRGaWxlcy5oCTIwMDYtMDItMjMgMTU6NDc6MzUu
MDAwMDAwMDAwIC0wNTAwDQorKysgYm94YmFja3VwLTAuMTAtbW9kL2xpYi9j
b21tb24vQm94UG9ydHNBbmRGaWxlcy5oCTIwMDctMDEtMDMgMTM6MDA6MDgu
MDAwMDAwMDAwIC0wNTAwDQpAQCAtNzAsNSArNzAsOCBAQA0KIC8vIERlZmF1
bHQgbmFtZSBvZiB0aGUgbmFtZWQgcGlwZQ0KICNkZWZpbmUgQk9YX05BTUVE
X1BJUEVfTkFNRSBMIlxcXFwuXFxwaXBlXFxib3hiYWNrdXAiDQogDQorLy8g
RGVmYXVsdCBuYW1lIG9mIGhvdXNla2VlcGluZyBzdHlsZQ0KKyNkZWZpbmUg
Qk9YX0ZJTEVfSE9VU0VLRUVQSU5HX0RFRkFVTFRfQ09ORklHCSJBY2hpZXZl
U29mdExpbWl0Ig0KKw0KICNlbmRpZiAvLyBCT1hQT1JUU0FOREZJTEVTX19I
DQogDQo=

--0-838987114-1168532807=:52758--