<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>111484</bug_id>
          
          <creation_ts>2013-03-05 14:40:59 -0800</creation_ts>
          <short_desc>[WK2] Track sandbox extensions for blobs in NetworkProcess</short_desc>
          <delta_ts>2013-03-06 10:39:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848089</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-05 14:40:59 -0800</bug_when>
    <thetext>File blobs passed from WebProcess need sandbox extensions to be readable in NetworkProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848295</commentid>
    <comment_count>1</comment_count>
      <attachid>191614</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-05 17:22:08 -0800</bug_when>
    <thetext>Created attachment 191614
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848424</commentid>
    <comment_count>2</comment_count>
      <attachid>191644</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-05 20:42:45 -0800</bug_when>
    <thetext>Created attachment 191644
updated to apply to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849044</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-06 10:39:36 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/144945&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191614</attachid>
            <date>2013-03-05 17:22:08 -0800</date>
            <delta_ts>2013-03-05 20:42:45 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>BlobExtensions.txt</filename>
            <type>text/plain</type>
            <size>27022</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDg0OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFRyYWNrIHNhbmRib3ggZXh0
ZW5zaW9ucyBmb3IgYmxvYnMgaW4gTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTQ4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEk6IEFkZGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA6IEFkZGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkZWQgYSByZWdpc3RyeSB0aGF0IHdyYXBzIG5vcm1hbCBpbi1w
cm9jZXNzICJCbG9iUmVnaXN0cnlJbXBsIiwgYW5kIGFsc28gdHJhY2tzCisgICAgICAgIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgYmxvYnMuIEl0IHdpbGwgYWxzbyB0cmFjayBwcm9jZXNzIGNvbm5l
Y3Rpb25zLCBzbyB0aGF0CisgICAgICAgIGJsb2JzIGNvdWxkIGJlIHJlbW92ZWQgd2hlbiBhIHBy
b2Nlc3MgY3Jhc2hlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJCbG9iVVJM
KToKKyAgICAgICAgVXNlIE5ldHdvcmtCbG9iUmVnaXN0cnkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nj
aGVkdWxhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2NoZWR1bGFibGVMb2FkZXI6
OlNjaGVkdWxhYmxlTG9hZGVyKTogQWRkIGV4dGVuc2lvbnMgZm9yIGJsb2JzLCBib3RoIGluCisg
ICAgICAgIHJlcXVlc3QgVVJMIGFuZCBpbiByZXF1ZXN0IGRhdGEuCisgICAgICAgIChXZWJLaXQ6
OlNjaGVkdWxhYmxlTG9hZGVyOjpjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMpOiBSZXF1ZXN0IG1h
eSBub3cgaGF2ZSBtdWx0aXBsZQorICAgICAgICBleHRlbnNpb25zLgorICAgICAgICAoV2ViS2l0
OjpTY2hlZHVsYWJsZUxvYWRlcjo6aW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKTogRGl0dG8u
CisKKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA6IEZp
eGVkIGV4dGVuc2lvbiBjcmVhdGlvbiAtIGFjdHVhbGx5CisgICAgICAgIHN0b3JlIHRoZSByZXN1
bHQuCisKIDIwMTMtMDMtMDUgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtFRkxdIEJ1aWxkIGJyZWFrIHdpdGggbGF0ZXN0IEVGTCBsaWJyYXJpZXMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0NDc3MCkKKysrIFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTMgKzI4LDEzIEBACiAKICNpbmNsdWRlICJCbG9i
UmVnaXN0cmF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb25TdGFjay5oIgorI2luY2x1
ZGUgIk5ldHdvcmtCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Jsb2JEYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgpAQCAtMTgyLDE5ICsxODIsMjUgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGVsZQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBCbG9iUmVnaXN0cmF0aW9uRGF0
YSYgZGF0YSkKIHsKLSAgICAvLyBGSVhNRTogVHJhY2sgc2FuZGJveCBleHRlbnNpb25zLgogICAg
IC8vIEZJWE1FOiB1bnJlZ2lzdGVyIGFsbCBVUkxzIHdoZW4gcHJvY2VzcyBjb25uZWN0aW9uIGNs
b3Nlcy4KLSAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBkYXRhLnJlbGVh
c2VEYXRhKCkpOworCisgICAgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IGV4dGVu
c2lvbnM7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gZGF0YS5zYW5kYm94RXh0ZW5z
aW9ucygpLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPiBleHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoZGF0YS5z
YW5kYm94RXh0ZW5zaW9ucygpW2ldKSkKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4
dGVuc2lvbik7CisgICAgfQorCisgICAgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgZGF0YS5yZWxlYXNlRGF0YSgpLCBleHRlbnNpb25zKTsKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRnJvbVVS
TChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIHNyY1VSTCkKIHsKLSAgICBibG9iUmVnaXN0
cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOworICAgIE5ldHdvcmtCbG9iUmVnaXN0
cnk6OnNoYXJlZCgpLnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7CiB9CiAKIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IEtVUkwm
IHVybCkKIHsKLSAgICBibG9iUmVnaXN0cnkoKS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOworICAg
IE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNoYXJlZCgpLnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcAkocmV2aXNpb24gMTQ0NzcwKQor
KysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIk5ldHdvcmtCbG9iUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Zvcm1EYXRhLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogU2NoZWR1bGFibGVMb2FkZXI6OlNjaGVkdWxhYmxlTG9hZGVyKGNvbnN0IE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKQEAgLTQ2LDcgKzUxLDI1IEBAIFNjaGVkdWxhYmxl
TG9hZGVyOjpTY2hlZHVsYWJsZUxvYWRlcihjb24KICAgICAgICAgaWYgKFJlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBleHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUocGFyYW1ldGVy
cy5yZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zKClbaV0pKQogICAgICAgICAgICAgbV9yZXF1
ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24pOwogICAgIH0KLSAgICBt
X3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShwYXJh
bWV0ZXJzLnJlc291cmNlU2FuZGJveEV4dGVuc2lvbigpKTsKKworI2lmIEVOQUJMRShCTE9CKQor
ICAgIGlmIChtX3JlcXVlc3QuaHR0cEJvZHkoKSkgeworICAgICAgICBjb25zdCBWZWN0b3I8Rm9y
bURhdGFFbGVtZW50PiYgZWxlbWVudHMgPSBtX3JlcXVlc3QuaHR0cEJvZHkoKS0+ZWxlbWVudHMo
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gZWxlbWVudHMuc2l6ZSgpOyBp
IDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRzW2ldLm1fdHlwZSA9PSBG
b3JtRGF0YUVsZW1lbnQ6OmVuY29kZWRCbG9iKSB7CisgICAgICAgICAgICAgICAgVmVjdG9yPFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+IGJsb2JFbGVtZW50RXh0ZW5zaW9ucyA9IE5ldHdvcmtC
bG9iUmVnaXN0cnk6OnNoYXJlZCgpLnNhbmRib3hFeHRlbnNpb25zKGVsZW1lbnRzW2ldLm1fdXJs
KTsKKyAgICAgICAgICAgICAgICBtX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMuYXBwZW5k
KGJsb2JFbGVtZW50RXh0ZW5zaW9ucyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImJsb2IiKSkgeworICAgICAg
ICBBU1NFUlQoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShwYXJhbWV0ZXJzLnJlc291cmNlU2Fu
ZGJveEV4dGVuc2lvbigpKSk7CisgICAgICAgIG1fcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9ucyA9
IE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNoYXJlZCgpLnNhbmRib3hFeHRlbnNpb25zKG1fcmVxdWVz
dC51cmwoKSk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICBpZiAoUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+IHJlc291cmNlU2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZShwYXJhbWV0ZXJzLnJlc291cmNlU2FuZGJveEV4dGVuc2lvbigpKSkKKyAgICAgICAgbV9yZXNv
dXJjZVNhbmRib3hFeHRlbnNpb25zLmFwcGVuZChyZXNvdXJjZVNhbmRib3hFeHRlbnNpb24pOwog
fQogCiBTY2hlZHVsYWJsZUxvYWRlcjo6flNjaGVkdWxhYmxlTG9hZGVyKCkKQEAgLTY2LDggKzg5
LDggQEAgdm9pZCBTY2hlZHVsYWJsZUxvYWRlcjo6Y29uc3VtZVNhbmRib3hFeAogICAgIGZvciAo
c2l6ZV90IGkgPSAwLCBjb3VudCA9IG1fcmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9ucy5zaXpl
KCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBtX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lv
bnNbaV0tPmNvbnN1bWUoKTsKIAotICAgIGlmIChtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbikK
LSAgICAgICAgbV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMCwgY291bnQgPSBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbnMuc2l6ZSgp
OyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgbV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb25zW2ld
LT5jb25zdW1lKCk7CiB9CiAKIHZvaWQgU2NoZWR1bGFibGVMb2FkZXI6OmludmFsaWRhdGVTYW5k
Ym94RXh0ZW5zaW9ucygpCkBAIC03NSw4ICs5OCw4IEBAIHZvaWQgU2NoZWR1bGFibGVMb2FkZXI6
OmludmFsaWRhdGVTYW5kYm8KICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBtX3JlcXVl
c3RCb2R5U2FuZGJveEV4dGVuc2lvbnMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAg
bV9yZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zW2ldLT5pbnZhbGlkYXRlKCk7CiAKLSAgICBp
ZiAobV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb24pCi0gICAgICAgIG1fcmVzb3VyY2VTYW5kYm94
RXh0ZW5zaW9uLT5pbnZhbGlkYXRlKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0g
bV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb25zLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCisgICAg
ICAgIG1fcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uc1tpXS0+aW52YWxpZGF0ZSgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L1NjaGVkdWxhYmxlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAkocmV2aXNpb24gMTQ0NzcwKQorKysgU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNzgsNyArNzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pblByaXZhdGVCcm93c2lu
Z01vZGU7CiAKICAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4gbV9yZXF1ZXN0
Qm9keVNhbmRib3hFeHRlbnNpb25zOwotICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3Jl
c291cmNlU2FuZGJveEV4dGVuc2lvbjsKKyAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNp
b24+ID4gbV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb25zOwogCiAgICAgUmVmUHRyPE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb247CiAgICAgCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29y
a0Jsb2JSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtCbG9iUmVnaXN0cnkuaCIKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmV0
d29ya0Jsb2JSZWdpc3RyeSYgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoTmV0d29ya0Js
b2JSZWdpc3RyeSwgcmVnaXN0cnksICgpKTsKKyAgICByZXR1cm4gcmVnaXN0cnk7Cit9CisKK05l
dHdvcmtCbG9iUmVnaXN0cnk6Ok5ldHdvcmtCbG9iUmVnaXN0cnkoKQoreworfQorCit2b2lkIE5l
dHdvcmtCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NP
d25QdHI8QmxvYkRhdGE+IGRhdGEsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4gPiYgbmV3U2FuZGJveEV4dGVuc2lvbnMpCit7CisgICAgQVNTRVJUKCFtX3NhbmRib3hFeHRl
bnNpb25zLmNvbnRhaW5zKHVybC5zdHJpbmcoKSkpOworCisgICAgLy8gQ29tYmluZSBuZXcgZXh0
ZW5zaW9ucyBmb3IgRmlsZSB0aW1lcyBhbmQgZXhpc3RpbmcgZXh0ZW5zaW9ucyBmb3IgaW5uZXIg
QmxvYiBpdGVtcy4KKyAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4gc2FuZGJv
eEV4dGVuc2lvbnMgPSBuZXdTYW5kYm94RXh0ZW5zaW9uczsKKyAgICBjb25zdCBCbG9iRGF0YUl0
ZW1MaXN0JiBpdGVtcyA9IGRhdGEtPml0ZW1zKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNv
dW50ID0gaXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBpZiAoaXRlbXNb
aV0udHlwZSA9PSBCbG9iRGF0YUl0ZW06OkJsb2IpCisgICAgICAgICAgICBzYW5kYm94RXh0ZW5z
aW9ucy5hcHBlbmQobV9zYW5kYm94RXh0ZW5zaW9ucy5nZXQoaXRlbXNbaV0udXJsLnN0cmluZygp
KSk7CisgICAgfQorCisgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgZGF0
YSk7CisKKyAgICBpZiAoIXNhbmRib3hFeHRlbnNpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9ucy5hZGQodXJsLnN0cmluZygpLCBzYW5kYm94RXh0ZW5zaW9ucyk7Cit9
CisKK3ZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNv
cmU6OktVUkwmIHVybCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgc3JjVVJMKQoreworICAgIGJsb2JS
ZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7CisgICAgU2FuZGJveEV4dGVu
c2lvbk1hcDo6aXRlcmF0b3IgaXRlciA9IG1fc2FuZGJveEV4dGVuc2lvbnMuZmluZChzcmNVUkwu
c3RyaW5nKCkpOworICAgIGlmIChpdGVyICE9IG1fc2FuZGJveEV4dGVuc2lvbnMuZW5kKCkpCisg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbnMuYWRkKHVybC5zdHJpbmcoKSwgaXRlci0+dmFsdWUp
OworfQorCit2b2lkIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmIHVybCkKK3sKKyAgICBibG9iUmVnaXN0cnkoKS51bnJlZ2lzdGVyQmxv
YlVSTCh1cmwpOworICAgIG1fc2FuZGJveEV4dGVuc2lvbnMucmVtb3ZlKHVybC5zdHJpbmcoKSk7
Cit9CisKK2NvbnN0IFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gPiBOZXR3b3JrQmxv
YlJlZ2lzdHJ5OjpzYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwpCit7
CisgICAgcmV0dXJuIG1fc2FuZGJveEV4dGVuc2lvbnMuZ2V0KHVybC5zdHJpbmcoKSk7Cit9CisK
K30KKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0
d29ya0Jsb2JSZWdpc3RyeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBOZXR3b3JrQmxvYlJlZ2lzdHJ5X2gKKyNkZWZpbmUgTmV0d29ya0Jsb2JS
ZWdpc3RyeV9oCisKKyNpZiBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEJsb2JEYXRhOworY2xhc3MgS1VSTDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNhbmRib3hFeHRlbnNpb247CisKK2Ns
YXNzIE5ldHdvcmtCbG9iUmVnaXN0cnkgeworV1RGX01BS0VfTk9OQ09QWUFCTEUoTmV0d29ya0Js
b2JSZWdpc3RyeSk7CitwdWJsaWM6CisgICAgTmV0d29ya0Jsb2JSZWdpc3RyeSgpOworICAgIHN0
YXRpYyBOZXR3b3JrQmxvYlJlZ2lzdHJ5JiBzaGFyZWQoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBQYXNzT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRh
PiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiA+Jik7CisgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OktVUkwm
IHNyY1VSTCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJM
Jik7CisKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4gc2FuZGJv
eEV4dGVuc2lvbnMoY29uc3QgV2ViQ29yZTo6S1VSTCYpOworCitwcml2YXRlOgorICAgIH5OZXR3
b3JrQmxvYlJlZ2lzdHJ5KCk7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4gPiBTYW5kYm94RXh0ZW5zaW9uTWFwOworICAgIFNh
bmRib3hFeHRlbnNpb25NYXAgbV9zYW5kYm94RXh0ZW5zaW9uczsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8g
TmV0d29ya0Jsb2JSZWdpc3RyeV9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAkocmV2
aXNpb24gMTQ0NzcwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJhdGlvbkRhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMyArNTEsMTIgQEAgQmxvYlJl
Z2lzdHJhdGlvbkRhdGE6OkJsb2JSZWdpc3RyYXRpb25EYQogICAgICAgICAgICAgKytmaWxlQ291
bnQ7CiAgICAgfQogCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4
dGVuc2lvbnM7Ci0gICAgc2FuZGJveEV4dGVuc2lvbnMuYWxsb2NhdGUoZmlsZUNvdW50KTsKKyAg
ICBtX3NhbmRib3hFeHRlbnNpb25zLmFsbG9jYXRlKGZpbGVDb3VudCk7CiAgICAgc2l6ZV90IGV4
dGVuc2lvbkluZGV4ID0gMDsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5z
aXplKCk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIGNvbnN0IEJsb2JEYXRhSXRlbSYgaXRl
bSA9IGl0ZW1zW2ldOwogICAgICAgICBpZiAoaXRlbS50eXBlID09IEJsb2JEYXRhSXRlbTo6Rmls
ZSkKLSAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShpdGVtLnBhdGgs
IFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBzYW5kYm94RXh0ZW5zaW9uc1tleHRlbnNpb25J
bmRleCsrXSk7CisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoaXRl
bS5wYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkT25seSwgbV9zYW5kYm94RXh0ZW5zaW9uc1tl
eHRlbnNpb25JbmRleCsrXSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDQ3NzApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTIwOSw4ICsyMDksNiBAQAogCQkxQUEzRDc2MjE2NTFCN0QzMDA4NzEzRDAg
LyogUmVtb3RlTGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUEzRDc2MDE2NTFCN0QzMDA4NzEzRDAgLyogUmVtb3Rl
TGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmggKi87IH07CiAJCTFBQTQxN0NCMTJDMDBDQ0EwMDJCRTY3
QiAvKiBUZXh0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFBNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggKi87IH07
CiAJCTFBQTQxN0VGMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTQxN0VEMTJDMDBEODcw
MDJCRTY3QiAvKiBUZXh0Q2hlY2tlck1hYy5tbSAqLzsgfTsKLQkJMVpaNDE3RUYxMkMwMEQ4NzAw
MkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQkI0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4
dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLzsgfTsKLQkJMVFRNDE3Q0IxMkMwMENDQTAwMkJFNjdC
IC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUNDNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2Vy
Q29tcGxldGlvbi5oICovOyB9OwogCQkxQUE0MUFCNTEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9y
U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
QTQxQUI0MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oICovOyB9OwogCQkxQUE0Nzky
MzEyQTU5RkQ5MDA4MjM2QzMgLyogUGx1Z2luUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTQ3OTIyMTJBNTlGRDkwMDgyMzZDMyAv
KiBQbHVnaW5Qcm9jZXNzTWFjLm1tICovOyB9OwogCQkxQUE0NzlCMDEyQTVBNDM2MDA4MjM2QzMg
LyogQ2FyYm9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQTFDRDA2MTAwRkExQkEwMDc4REVCQyAvKiBDYXJib24uZnJhbWV3b3Jr
ICovOyB9OwpAQCAtMjkyLDYgKzI5MCw4IEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAv
KiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAq
LzsgfTsKIAkJMUNCQzk0NUUxNjUxNUVEMjAwRDY4QUFFIC8qIERvY2sucGRmIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JDOTQ1RDE2NTE1RUQyMDBE
NjhBQUUgLyogRG9jay5wZGYgKi87IH07CisJCTFRUTQxN0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBs
ZXRpb24uaCAqLzsgfTsKKwkJMVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2Vy
Q29tcGxldGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQkI0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNw
cCAqLzsgfTsKIAkJMjkzRUJFQUIxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkzRUJFQTkxNjI3RDlD
OTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKIAkJMjkzRUJFQUMxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5M0VCRUFB
MTYyN0Q5QzkwMDVGODlGMSAvKiBXS0RPTVRleHQubW0gKi87IH07CiAJCTI5NTAxNzI0MTYyQTQ1
MDQwMDRBOUQ3MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OTUwMTcyMzE2MkE0NTA0MDA0QTlENzEgLyogV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMTA1LDYgKzExMDUsOCBAQAogCQlFMTc5MDg5MDE2OUJBQTdGMDA2
OTA0QzcgLyogU2VjSXRlbVNoaW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5MTExNjlCNjY3QjAwOUI2NjcwIC8q
IFNlY0l0ZW1TaGltTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJRTE3OTA4OTExNjlCQUE4
MjAwNjkwNEM3IC8qIFNlY0l0ZW1TaGltTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEU2OTEyMTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJ
dGVtU2hpbU1lc3NhZ2VzLmggKi87IH07CiAJCUUxNzkwOTAxMTY5QkI0RjkwMDY5MDRDNyAvKiBT
ZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGlt
LmR5bGliICovOyB9OworCQlFMTc5OEM3OTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JS
ZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTc5OEM3NzE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAgKi87
IH07CisJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc5OEM3ODE2
RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oICovOyB9OwogCQlFMTc5RkQ5
QzEzNEQzODA2MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzlGRDlCMTM0RDM4MDYwMDE1Qjg4MyAv
KiBBcmd1bWVudENvZGVyc01hYy5oICovOyB9OwogCQlFMTc5RkQ5RjEzNEQzODI1MDAxNUI4ODMg
LyogQXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTc5RkQ5RTEzNEQzODI1MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNN
YWMubW0gKi87IH07CiAJCUUxN0FFMkMzMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTdBRTJDMjE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktp
dC5OZXR3b3JrUHJvY2Vzcy5zYiAqLzsgfTsKQEAgLTE1MDMsOCArMTUwNSw2IEBACiAJCTFBNTBE
QjFFMTEwQTNCREMwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzcy5hcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVSUNsaWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdD
NyAvKiBXZWJVSUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
SUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQkI0MTdDOTEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNUU0REEzMTJE
M0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRleHRDaGVja2VyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE2NDIwRTIxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY0MjBFMzEyRENFMkZGMDBDQUFFMkMgLyog
U2hhcmVhYmxlQml0bWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJl
YWJsZUJpdG1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY0OCw2ICsxNjQ4
LDcgQEAKIAkJMUFGMDVEODUxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQUYxQUM2OTE2NTE3NTlFMDBDMTdEN0YgLyogUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGMUFD
NkExNjUxNzU5RTAwQzE3RDdGIC8qIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAv
KiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUM3N0MxOTUxMjg4QTg3MjAwNkE3NDJGIC8qIFdlYkluc3BlY3RvclByb3h5Lm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkluc3BlY3RvclByb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzhFMjU2QTEyNzBERTM4MDBC
QzdCRDAgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUM4RTI1NkIxMjcwREUzODAwQkM3QkQwIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE2NjUsNiArMTY2Niw3IEBACiAJCTFDQThCOTQzMTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNCQzk0NUQxNjUxNUVEMjAwRDY4QUFFIC8qIERvY2sucGRmICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucGRmOyBuYW1lID0gRG9j
ay5wZGY7IHBhdGggPSBSZXNvdXJjZXMvRG9jay5wZGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJDb21wbGV0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VCRUE5MTYyN0Q5QzkwMDVGODlG
MSAvKiBXS0RPTVRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01U
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5M0VCRUFBMTYyN0Q5QzkwMDVG
ODlGMSAvKiBXS0RPTVRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS0RPTVRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5NTAxNzIz
MTYyQTQ1MDQwMDRBOUQ3MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NDgsNiArMjU1MCw4IEBACiAJCUUxNzA4NzZBMTZENkNBNjkw
MEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBCbG9iUmVnaXN0cnlQcm94eS5oOyBwYXRoID0gV2ViUHJvY2Vzcy9GaWxlQVBJL0Js
b2JSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNzA4NzZF
MTZENkNGRTQwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA7IHBhdGgg
PSBGaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTE3MDg3NkYxNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JSZWdpc3RyYXRpb25EYXRh
Lmg7IHBhdGggPSBGaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxNzk4Qzc3MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJl
Z2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtC
bG9iUmVnaXN0cnkuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxv
YlJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3OThDNzgxNkU2
ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya0Jsb2JSZWdpc3RyeS5oOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxNzlGRDlCMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcmd1bWVudENvZGVyc01hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTc5RkQ5RTEzNEQzODI1MDAxNUI4ODMgLyogQXJn
dW1lbnRDb2RlcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBcmd1bWVudENvZGVyc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3
QUUyQzExNkI5QzEzOTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Mu
c2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NzYsNiArMzQ4MCw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDODI4MzdDMTZCNDVEQTUwMEEyNzhGRSAvKiBF
bnRyeVBvaW50ICovLAorCQkJCUUxNzk4Qzc2MTZFNjgxNTUwMDI0MDEzOSAvKiBGaWxlQVBJICov
LAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCiAJCQkJNTEyQzA2ODYx
NjM4RjY3RTAwQUJCOTExIC8qIEhvc3RSZWNvcmQuY3BwICovLAogCQkJCTUxMkMwNjg3MTYzOEY2
N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggKi8sCkBAIC01MDA4LDYgKzUwMTMsMTUgQEAKIAkJ
CW5hbWUgPSBGaWxlQVBJOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTE3
OThDNzYxNkU2ODE1NTAwMjQwMTM5IC8qIEZpbGVBUEkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxNzk4Qzc3MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3
b3JrQmxvYlJlZ2lzdHJ5LmNwcCAqLywKKwkJCQlFMTc5OEM3ODE2RTY4MTg4MDAyNDAxMzkgLyog
TmV0d29ya0Jsb2JSZWdpc3RyeS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBGaWxlQVBJOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTE5OTg3NUIxNDJCRjlDRjAwQkIyREU3
IC8qIFBERiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01
NjA3LDYgKzU2MjEsNyBAQAogCQkJCUUxNzA4NzZDMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVn
aXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MDg3NzExNkQ2Q0ZFNTAwRjk5MjI2
IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTRBOTU0QTE2
RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY4MTIsNiArNjgyNyw3IEBACiAJCQkJRTE3MDg3
NkIxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxNzA4NzcwMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTRBOTU0OTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE3OThD
NzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191644</attachid>
            <date>2013-03-05 20:42:45 -0800</date>
            <delta_ts>2013-03-06 10:37:23 -0800</delta_ts>
            <desc>updated to apply to ToT</desc>
            <filename>BlobExtensions.txt</filename>
            <type>text/plain</type>
            <size>19919</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDg3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFRyYWNrIHNhbmRib3ggZXh0
ZW5zaW9ucyBmb3IgYmxvYnMgaW4gTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTQ4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEk6IEFkZGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA6IEFkZGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkZWQgYSByZWdpc3RyeSB0aGF0IHdyYXBzIG5vcm1hbCBpbi1w
cm9jZXNzICJCbG9iUmVnaXN0cnlJbXBsIiwgYW5kIGFsc28gdHJhY2tzCisgICAgICAgIHNhbmRi
b3ggZXh0ZW5zaW9ucyBmb3IgYmxvYnMuIEl0IHdpbGwgYWxzbyB0cmFjayBwcm9jZXNzIGNvbm5l
Y3Rpb25zLCBzbyB0aGF0CisgICAgICAgIGJsb2JzIGNvdWxkIGJlIHJlbW92ZWQgd2hlbiBhIHBy
b2Nlc3MgY3Jhc2hlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJCbG9iVVJM
KToKKyAgICAgICAgVXNlIE5ldHdvcmtCbG9iUmVnaXN0cnkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nj
aGVkdWxhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2NoZWR1bGFibGVMb2FkZXI6
OlNjaGVkdWxhYmxlTG9hZGVyKTogQWRkIGV4dGVuc2lvbnMgZm9yIGJsb2JzLCBib3RoIGluCisg
ICAgICAgIHJlcXVlc3QgVVJMIGFuZCBpbiByZXF1ZXN0IGRhdGEuCisgICAgICAgIChXZWJLaXQ6
OlNjaGVkdWxhYmxlTG9hZGVyOjpjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMpOiBSZXF1ZXN0IG1h
eSBub3cgaGF2ZSBtdWx0aXBsZQorICAgICAgICBleHRlbnNpb25zLgorICAgICAgICAoV2ViS2l0
OjpTY2hlZHVsYWJsZUxvYWRlcjo6aW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKTogRGl0dG8u
CisKKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA6IEZp
eGVkIGV4dGVuc2lvbiBjcmVhdGlvbiAtIGFjdHVhbGx5CisgICAgICAgIHN0b3JlIHRoZSByZXN1
bHQuCisKIDIwMTMtMDMtMDUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFYWNoIHdlYiBwcm9jZXNzIHRydW5jYXRlcyB0aGUgZGlzayBjYWNoZSB0byB6ZXJv
IG9uIGxhdW5jaApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24g
MTQ0ODc1KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMyArMjgsMTMgQEAKIAog
I2luY2x1ZGUgIkJsb2JSZWdpc3RyYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvblN0
YWNrLmgiCisjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGEuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L0Jsb2JSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0xODIsMTkgKzE4MiwyNSBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxlCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEJsb2JS
ZWdpc3RyYXRpb25EYXRhJiBkYXRhKQogewotICAgIC8vIEZJWE1FOiBUcmFjayBzYW5kYm94IGV4
dGVuc2lvbnMuCiAgICAgLy8gRklYTUU6IHVucmVnaXN0ZXIgYWxsIFVSTHMgd2hlbiBwcm9jZXNz
IGNvbm5lY3Rpb24gY2xvc2VzLgotICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTCh1
cmwsIGRhdGEucmVsZWFzZURhdGEoKSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+ID4gZXh0ZW5zaW9uczsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBkYXRh
LnNhbmRib3hFeHRlbnNpb25zKCkuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBp
ZiAoUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZShkYXRhLnNhbmRib3hFeHRlbnNpb25zKClbaV0pKQorICAgICAgICAgICAgZXh0ZW5z
aW9ucy5hcHBlbmQoZXh0ZW5zaW9uKTsKKyAgICB9CisKKyAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5
OjpzaGFyZWQoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBkYXRhLnJlbGVhc2VEYXRhKCksIGV4dGVu
c2lvbnMpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3Rl
ckJsb2JVUkxGcm9tVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgS1VSTCYgc3JjVVJMKQogewot
ICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7CisgICAgTmV0
d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsK
IH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JV
UkwoY29uc3QgS1VSTCYgdXJsKQogewotICAgIGJsb2JSZWdpc3RyeSgpLnVucmVnaXN0ZXJCbG9i
VVJMKHVybCk7CisgICAgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkudW5yZWdpc3RlckJs
b2JVUkwodXJsKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCShyZXZp
c2lvbiAxNDQ4NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJs
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDExIEBACiAKICNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQogCisjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVM
b2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uKQpAQCAtNDYsNyArNTEsMjUg
QEAgU2NoZWR1bGFibGVMb2FkZXI6OlNjaGVkdWxhYmxlTG9hZGVyKGNvbgogICAgICAgICBpZiAo
UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZShwYXJhbWV0ZXJzLnJlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMoKVtpXSkpCiAgICAg
ICAgICAgICBtX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbik7
CiAgICAgfQotICAgIG1fcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlKHBhcmFtZXRlcnMucmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uKCkpOworCisjaWYg
RU5BQkxFKEJMT0IpCisgICAgaWYgKG1fcmVxdWVzdC5odHRwQm9keSgpKSB7CisgICAgICAgIGNv
bnN0IFZlY3RvcjxGb3JtRGF0YUVsZW1lbnQ+JiBlbGVtZW50cyA9IG1fcmVxdWVzdC5odHRwQm9k
eSgpLT5lbGVtZW50cygpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBlbGVt
ZW50cy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudHNb
aV0ubV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZW5jb2RlZEJsb2IpIHsKKyAgICAgICAgICAg
ICAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4gYmxvYkVsZW1lbnRFeHRlbnNp
b25zID0gTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkuc2FuZGJveEV4dGVuc2lvbnMoZWxl
bWVudHNbaV0ubV91cmwpOworICAgICAgICAgICAgICAgIG1fcmVxdWVzdEJvZHlTYW5kYm94RXh0
ZW5zaW9ucy5hcHBlbmQoYmxvYkVsZW1lbnRFeHRlbnNpb25zKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmIChtX3JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiYmxv
YiIpKSB7CisgICAgICAgIEFTU0VSVCghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKHBhcmFtZXRl
cnMucmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uKCkpKTsKKyAgICAgICAgbV9yZXNvdXJjZVNhbmRi
b3hFeHRlbnNpb25zID0gTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2hhcmVkKCkuc2FuZGJveEV4dGVu
c2lvbnMobV9yZXF1ZXN0LnVybCgpKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIGlmIChSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uID0gU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlKHBhcmFtZXRlcnMucmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uKCkpKQor
ICAgICAgICBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbnMuYXBwZW5kKHJlc291cmNlU2FuZGJv
eEV4dGVuc2lvbik7CiB9CiAKIFNjaGVkdWxhYmxlTG9hZGVyOjp+U2NoZWR1bGFibGVMb2FkZXIo
KQpAQCAtNjYsOCArODksOCBAQCB2b2lkIFNjaGVkdWxhYmxlTG9hZGVyOjpjb25zdW1lU2FuZGJv
eEV4CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gbV9yZXF1ZXN0Qm9keVNhbmRib3hF
eHRlbnNpb25zLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIG1fcmVxdWVzdEJvZHlT
YW5kYm94RXh0ZW5zaW9uc1tpXS0+Y29uc3VtZSgpOwogCi0gICAgaWYgKG1fcmVzb3VyY2VTYW5k
Ym94RXh0ZW5zaW9uKQotICAgICAgICBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbi0+Y29uc3Vt
ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IG1fcmVzb3VyY2VTYW5kYm94RXh0
ZW5zaW9ucy5zaXplKCk7IGkgPCBjb3VudDsgKytpKQorICAgICAgICBtX3Jlc291cmNlU2FuZGJv
eEV4dGVuc2lvbnNbaV0tPmNvbnN1bWUoKTsKIH0KIAogdm9pZCBTY2hlZHVsYWJsZUxvYWRlcjo6
aW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCkKQEAgLTc1LDggKzk4LDggQEAgdm9pZCBTY2hl
ZHVsYWJsZUxvYWRlcjo6aW52YWxpZGF0ZVNhbmRibwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBj
b3VudCA9IG1fcmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9ucy5zaXplKCk7IGkgPCBjb3VudDsg
KytpKQogICAgICAgICBtX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnNbaV0tPmludmFsaWRh
dGUoKTsKIAotICAgIGlmIChtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbikKLSAgICAgICAgbV9y
ZXNvdXJjZVNhbmRib3hFeHRlbnNpb24tPmludmFsaWRhdGUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMCwgY291bnQgPSBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbnMuc2l6ZSgpOyBpIDwgY291
bnQ7ICsraSkKKyAgICAgICAgbV9yZXNvdXJjZVNhbmRib3hFeHRlbnNpb25zW2ldLT5pbnZhbGlk
YXRlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oCShyZXZpc2lvbiAxNDQ4
NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lu
UHJpdmF0ZUJyb3dzaW5nTW9kZTsKIAogICAgIFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4gPiBtX3JlcXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnM7Ci0gICAgUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IG1fcmVzb3VyY2VTYW5kYm94RXh0ZW5zaW9uOworICAgIFZlY3RvcjxSZWZQdHI8
U2FuZGJveEV4dGVuc2lvbj4gPiBtX3Jlc291cmNlU2FuZGJveEV4dGVuc2lvbnM7CiAKICAgICBS
ZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvbjsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JS
ZWdpc3RyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgorCisjaWYgRU5BQkxFKEJMT0Ip
ICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitOZXR3b3JrQmxvYlJlZ2lzdHJ5JiBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaGFy
ZWQoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChOZXR3b3JrQmxvYlJlZ2lzdHJ5LCByZWdpc3RyeSwgKCkpOworICAgIHJldHVybiByZWdp
c3RyeTsKK30KKworTmV0d29ya0Jsb2JSZWdpc3RyeTo6TmV0d29ya0Jsb2JSZWdpc3RyeSgpCit7
Cit9CisKK3ZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IEtV
UkwmIHVybCwgUGFzc093blB0cjxCbG9iRGF0YT4gZGF0YSwgY29uc3QgVmVjdG9yPFJlZlB0cjxT
YW5kYm94RXh0ZW5zaW9uPiA+JiBuZXdTYW5kYm94RXh0ZW5zaW9ucykKK3sKKyAgICBBU1NFUlQo
IW1fc2FuZGJveEV4dGVuc2lvbnMuY29udGFpbnModXJsLnN0cmluZygpKSk7CisKKyAgICAvLyBD
b21iaW5lIG5ldyBleHRlbnNpb25zIGZvciBGaWxlIHRpbWVzIGFuZCBleGlzdGluZyBleHRlbnNp
b25zIGZvciBpbm5lciBCbG9iIGl0ZW1zLgorICAgIFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVu
c2lvbj4gPiBzYW5kYm94RXh0ZW5zaW9ucyA9IG5ld1NhbmRib3hFeHRlbnNpb25zOworICAgIGNv
bnN0IEJsb2JEYXRhSXRlbUxpc3QmIGl0ZW1zID0gZGF0YS0+aXRlbXMoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CisgICAg
ICAgIGlmIChpdGVtc1tpXS50eXBlID09IEJsb2JEYXRhSXRlbTo6QmxvYikKKyAgICAgICAgICAg
IHNhbmRib3hFeHRlbnNpb25zLmFwcGVuZChtX3NhbmRib3hFeHRlbnNpb25zLmdldChpdGVtc1tp
XS51cmwuc3RyaW5nKCkpKTsKKyAgICB9CisKKyAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJs
b2JVUkwodXJsLCBkYXRhKTsKKworICAgIGlmICghc2FuZGJveEV4dGVuc2lvbnMuaXNFbXB0eSgp
KQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25zLmFkZCh1cmwuc3RyaW5nKCksIHNhbmRib3hF
eHRlbnNpb25zKTsKK30KKwordm9pZCBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JV
UkwoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBzcmNVUkwp
Cit7CisgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsKKyAg
ICBTYW5kYm94RXh0ZW5zaW9uTWFwOjppdGVyYXRvciBpdGVyID0gbV9zYW5kYm94RXh0ZW5zaW9u
cy5maW5kKHNyY1VSTC5zdHJpbmcoKSk7CisgICAgaWYgKGl0ZXIgIT0gbV9zYW5kYm94RXh0ZW5z
aW9ucy5lbmQoKSkKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9ucy5hZGQodXJsLnN0cmluZygp
LCBpdGVyLT52YWx1ZSk7Cit9CisKK3ZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6dW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsKQoreworICAgIGJsb2JSZWdpc3RyeSgp
LnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9ucy5yZW1vdmUo
dXJsLnN0cmluZygpKTsKK30KKworY29uc3QgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9u
PiA+IE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFdlYkNvcmU6
OktVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gbV9zYW5kYm94RXh0ZW5zaW9ucy5nZXQodXJsLnN0
cmluZygpKTsKK30KKworfQorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Js
b2JSZWdpc3RyeS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5ldHdvcmtCbG9iUmVnaXN0cnlfaAorI2RlZmlu
ZSBOZXR3b3JrQmxvYlJlZ2lzdHJ5X2gKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQmxvYkRhdGE7
CitjbGFzcyBLVVJMOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2FuZGJveEV4
dGVuc2lvbjsKKworY2xhc3MgTmV0d29ya0Jsb2JSZWdpc3RyeSB7CitXVEZfTUFLRV9OT05DT1BZ
QUJMRShOZXR3b3JrQmxvYlJlZ2lzdHJ5KTsKK3B1YmxpYzoKKyAgICBOZXR3b3JrQmxvYlJlZ2lz
dHJ5KCk7CisgICAgc3RhdGljIE5ldHdvcmtCbG9iUmVnaXN0cnkmIHNoYXJlZCgpOworCisgICAg
dm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYsIFBhc3NPd25QdHI8V2Vi
Q29yZTo6QmxvYkRhdGE+LCBjb25zdCBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+ID4m
KTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3Qg
V2ViQ29yZTo6S1VSTCYgc3JjVVJMKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmKTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVu
c2lvbj4gPiBzYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBXZWJDb3JlOjpLVVJMJik7CisKK3ByaXZh
dGU6CisgICAgfk5ldHdvcmtCbG9iUmVnaXN0cnkoKTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxT
dHJpbmcsIFZlY3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gPiA+IFNhbmRib3hFeHRlbnNp
b25NYXA7CisgICAgU2FuZGJveEV4dGVuc2lvbk1hcCBtX3NhbmRib3hFeHRlbnNpb25zOworfTsK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisKKyNlbmRpZiAvLyBOZXR3b3JrQmxvYlJlZ2lzdHJ5X2gKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3Ry
eS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlv
bkRhdGEuY3BwCShyZXZpc2lvbiAxNDQ4NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmls
ZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDEzICs1
MSwxMiBAQCBCbG9iUmVnaXN0cmF0aW9uRGF0YTo6QmxvYlJlZ2lzdHJhdGlvbkRhCiAgICAgICAg
ICAgICArK2ZpbGVDb3VudDsKICAgICB9CiAKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVB
cnJheSBzYW5kYm94RXh0ZW5zaW9uczsKLSAgICBzYW5kYm94RXh0ZW5zaW9ucy5hbGxvY2F0ZShm
aWxlQ291bnQpOworICAgIG1fc2FuZGJveEV4dGVuc2lvbnMuYWxsb2NhdGUoZmlsZUNvdW50KTsK
ICAgICBzaXplX3QgZXh0ZW5zaW9uSW5kZXggPSAwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBj
b3VudCA9IGl0ZW1zLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgY29uc3QgQmxv
YkRhdGFJdGVtJiBpdGVtID0gaXRlbXNbaV07CiAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gQmxv
YkRhdGFJdGVtOjpGaWxlKQotICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKGl0ZW0ucGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9ubHksIHNhbmRib3hFeHRlbnNp
b25zW2V4dGVuc2lvbkluZGV4KytdKTsKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZShpdGVtLnBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBtX3NhbmRi
b3hFeHRlbnNpb25zW2V4dGVuc2lvbkluZGV4KytdKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE0NDg3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTEwNiw2ICsxMTA2LDggQEAKIAkJRTE3OTA4OTAx
NjlCQUE3RjAwNjkwNEM3IC8qIFNlY0l0ZW1TaGltTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEU2OTExMTY5QjY2N0Iw
MDlCNjY3MCAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUUxNzkw
ODkxMTY5QkFBODIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThFNjkxMjE2OUI2NjdCMDA5QjY2
NzAgLyogU2VjSXRlbVNoaW1NZXNzYWdlcy5oICovOyB9OwogCQlFMTc5MDkwMTE2OUJCNEY5MDA2
OTA0QzcgLyogU2VjSXRlbVNoaW0uZHlsaWIgaW4gQ29weSBTZWMgSXRlbSBTaGltICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBT
ZWNJdGVtU2hpbS5keWxpYiAqLzsgfTsKKwkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5l
dHdvcmtCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE3OThDNzcxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0
cnkuY3BwICovOyB9OworCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE3OThDNzgxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuaCAqLzsgfTsK
IAkJRTE3OUZEOUMxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc5RkQ5QjEzNEQzODA2
MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMuaCAqLzsgfTsKIAkJRTE3OUZEOUYxMzREMzgy
NTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3OUZEOUUxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3Vt
ZW50Q29kZXJzTWFjLm1tICovOyB9OwogCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi87IH07CkBAIC0yNTUwLDYgKzI1NTIsOCBA
QAogCQlFMTcwODc2QTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYlJlZ2lzdHJ5UHJveHkuaDsgcGF0aCA9
IFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMTcwODc2RTE2RDZDRkU0MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlv
bkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYlJlZ2lz
dHJhdGlvbkRhdGEuY3BwOyBwYXRoID0gRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNzA4NzZGMTZENkNGRTUwMEY5OTIyNiAv
KiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oOyBwYXRoID0gRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9u
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTc5OEM3NzE2RTY4MTg4MDAy
NDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9j
ZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxNzk4Qzc4MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtCbG9iUmVnaXN0cnku
aDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTc5RkQ5QjEzNEQzODA2MDAxNUI4ODMgLyog
QXJndW1lbnRDb2RlcnNNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJn
dW1lbnRDb2RlcnNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZEOUUx
MzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxN0FFMkMxMTZCOUMxMzkwMDFDNDJGMSAvKiBjb20uYXBwbGUu
V2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a1Byb2Nlc3Muc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDc4LDYgKzM0
ODIsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzgyODM3
QzE2QjQ1REE1MDBBMjc4RkUgLyogRW50cnlQb2ludCAqLywKKwkJCQlFMTc5OEM3NjE2RTY4MTU1
MDAyNDAxMzkgLyogRmlsZUFQSSAqLywKIAkJCQk1MTBDQzdEQzE2MTM4RTI5MDBEMDNFRDMgLyog
bWFjICovLAogCQkJCTUxMkMwNjg2MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmNwcCAq
LywKIAkJCQk1MTJDMDY4NzE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5oICovLApAQCAt
NTAxMSw2ICs1MDE2LDE1IEBACiAJCQluYW1lID0gRmlsZUFQSTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCUUxNzk4Qzc2MTZFNjgxNTUwMDI0MDEzOSAvKiBGaWxlQVBJICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMTc5OEM3NzE2
RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAgKi8sCisJCQkJRTE3OThD
NzgxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuaCAqLywKKwkJCSk7CisJ
CQluYW1lID0gRmlsZUFQSTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUUx
OTk4NzVCMTQyQkY5Q0YwMEJCMkRFNyAvKiBQREYgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtNTYxMSw2ICs1NjI1LDcgQEAKIAkJCQlFMTcwODc2QzE2RDZD
QTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
NzA4NzcxMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTc5OEM3QTE2RTY4MTg4MDAy
NDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02ODE2LDYg
KzY4MzEsNyBAQAogCQkJCUUxNzA4NzZCMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTcwODc3MDE2RDZDRkU1MDBGOTkyMjYgLyog
QmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE0QTk1NDkxNkUw
MTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUxNzk4Qzc5MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>
<flag name="review"
          id="212665"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>