<?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>137570</bug_id>
          
          <creation_ts>2014-10-09 13:32:13 -0700</creation_ts>
          <short_desc>Remove CrossThreadTask</short_desc>
          <delta_ts>2014-10-10 05:15:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1040667</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-09 13:32:13 -0700</bug_when>
    <thetext>C++11 lambdas can be used instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040674</commentid>
    <comment_count>1</comment_count>
      <attachid>239565</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-09 13:37:24 -0700</bug_when>
    <thetext>Created attachment 239565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040697</commentid>
    <comment_count>2</comment_count>
      <attachid>239565</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-09 14:48:14 -0700</bug_when>
    <thetext>Comment on attachment 239565
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=239565&amp;action=review

&gt; Source/WebCore/ChangeLog:10
&gt; +        Replace uses of CrossThreadTask with C++11 lambdas. The initializations
&gt; +        of cross-thread copies are rather verbose at the moment, but should look
&gt; +        better once we can switch to using C++14 init capture for lambdas.

Anders is also working on a project that might lead to cross-thread-safe reference counting for String. If he succeeds, that will also make many of them considerably better.

&gt; Source/WebCore/loader/WorkerThreadableLoader.h:108
&gt; +                virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override;

Looks like this is indented four spaces too far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040897</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-10-10 05:15:53 -0700</bug_when>
    <thetext>Committed r174583: &lt;http://trac.webkit.org/changeset/174583&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239565</attachid>
            <date>2014-10-09 13:37:24 -0700</date>
            <delta_ts>2014-10-09 14:48:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137570-20141009223724.patch</filename>
            <type>text/plain</type>
            <size>38465</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZlNzlkODk2ZTdlNGU0
MGIwMmZlZjNkMjFjMGQxNjMzNzdlNDE1Mi4uOTVkM2JmZjViYmQ5ODViNDZhOTc3OGEzYTdlMGJl
Y2VmOTU4ODk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE0LTEwLTA5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgQ3Jvc3NU
aHJlYWRUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzc1NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXBsYWNlIHVzZXMgb2YgQ3Jvc3NUaHJlYWRUYXNrIHdpdGggQysrMTEgbGFtYmRhcy4gVGhl
IGluaXRpYWxpemF0aW9ucworICAgICAgICBvZiBjcm9zcy10aHJlYWQgY29waWVzIGFyZSByYXRo
ZXIgdmVyYm9zZSBhdCB0aGUgbW9tZW50LCBidXQgc2hvdWxkIGxvb2sKKyAgICAgICAgYmV0dGVy
IG9uY2Ugd2UgY2FuIHN3aXRjaCB0byB1c2luZyBDKysxNCBpbml0IGNhcHR1cmUgZm9yIGxhbWJk
YXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OkJyaWRnZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0Nyb3NzVGhyZWFk
VGFzay5oOiBSZW1vdmVkLgorICAgICAgICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJl
YWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRn
ZTo6ZGlkU2VuZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRl
cjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZFJlY2VpdmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJl
YWRCcmlkZ2U6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpkaWRGYWlsQWNj
ZXNzQ29udHJvbENoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVMb2Fk
ZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZEZhaWxSZWRpcmVjdENoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6On5NYWluVGhy
ZWFkQnJpZGdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVM
b2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Om1haW5UaHJlYWRDcmVhdGVMb2FkZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6bWFpblRocmVhZERlc3Ryb3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6bWFpblRocmVhZENhbmNlbCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp3b3JrZXJHbG9iYWxTY29wZURpZFNlbmREYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ondvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2
ZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ondvcmtlckdsb2JhbFNjb3Bl
RGlkUmVjZWl2ZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6d29ya2VyR2xvYmFs
U2NvcGVEaWRGaW5pc2hMb2FkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ondvcmtl
ckdsb2JhbFNjb3BlRGlkRmFpbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp3b3JrZXJH
bG9iYWxTY29wZURpZEZhaWxBY2Nlc3NDb250cm9sQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6d29ya2VyR2xvYmFsU2NvcGVEaWRGYWlsUmVkaXJlY3RDaGVjayk6IERlbGV0ZWQu
CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlc0lt
cGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFk
UmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6Y3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oOgorCiAyMDE0LTEwLTA5
ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEZvbnQg
TG9hZGluZ10gRGVjcmVtZW50IHRoZSBmb250IGxvYWRpbmcgY291bnQgYmVmb3JlIG5vdGlmeWlu
ZyBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmlu
ZGV4IDg5MGNiMWQ2ZDE2ZTRhZjY1NThkZGEzODg3OGQxMjBkODM3NDBiNjguLmEyZWRkZWY4OGY2
ZDAwZTk1ZDMzNWFkNjkyZDgxNDEzYzhkMDBkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAKICNpbmNsdWRlICJCbG9iLmgiCi0jaW5jbHVk
ZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmgiCkBAIC0zOTIsOCArMzkxLDE1IEBAIHZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6aW5pdGlhbGl6ZSgpCiAgICAgQVNTRVJU
KCFtX3BlZXIpOwogICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwogICAgIFJlZjxCcmlkZ2U+
IHByb3RlY3QoKnRoaXMpOwotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihDcm9z
c1RocmVhZFRhc2soJkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUsIEFsbG93Q3Jvc3NUaHJl
YWRBY2Nlc3MoJm1fbG9hZGVyUHJveHkpLCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIG1fdGFza01v
ZGUpKTsKKworICAgIFdvcmtlckxvYWRlclByb3h5KiBsb2FkZXJQcm94eSA9ICZtX2xvYWRlclBy
b3h5OworICAgIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+
IHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXI7CisgICAgU3RyaW5n
IHRhc2tNb2RlQ29weSA9IG1fdGFza01vZGUuaXNvbGF0ZWRDb3B5KCk7CisgICAgbV9sb2FkZXJQ
cm94eS5wb3N0VGFza1RvTG9hZGVyKFtsb2FkZXJQcm94eSwgd29ya2VyQ2xpZW50V3JhcHBlciwg
dGFza01vZGVDb3B5XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAg
ICBtYWluVGhyZWFkSW5pdGlhbGl6ZShjb250ZXh0LCBsb2FkZXJQcm94eSwgd29ya2VyQ2xpZW50
V3JhcHBlciwgdGFza01vZGVDb3B5KTsKKyAgICB9KTsKICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxl
dGlvbigpOworCiAgICAgLy8gbV9wZWVyIG1heSBiZSBudWxsIHdoZW4gdGhlIG5lc3RlZCBydW5s
b29wIGV4aXRlZCBiZWZvcmUgYSBwZWVyIGhhcyBjcmVhdGVkLgogICAgIG1fcGVlciA9IG1fd29y
a2VyQ2xpZW50V3JhcHBlci0+cGVlcigpOwogICAgIGlmICghbV9wZWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKaW5kZXggOGNmMGU2MTQ3ZGQ2ZjhiN2QwZTY0MTUzNzI3MTQ5NmY2NmRmNmQxMS4uYzRmZTYz
ZjBiY2Y0MTI0YzU4MThmNjQ0M2U5YWQwNDgyMTFiODY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBA
IC0yNDAwMCwxMyArMjQwMDAsOSBAQCBfX1pUVk43V2ViQ29yZTI1Q2hyb21lQ2xpZW50Q2FsbGJh
Y2tUaW1lckUKIF9fWlRWTjdXZWJDb3JlMjRBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VFCiBfX1pU
Vk43V2ViQ29yZTE4U3Vic3RpdHV0ZVJlc291cmNlRQogX19aVFZON1dlYkNvcmUxNUFyY2hpdmVS
ZXNvdXJjZUUKLV9fWlRWTjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2sySVBOU18xNUFzeW5jRmls
ZVN0cmVhbUVTMl9paUVFCiBfX1pUVk43V2ViQ29yZTE1RmlsZVRocmVhZFRhc2sySU5TXzE1QXN5
bmNGaWxlU3RyZWFtRVBjUzJfaWlFRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazJJ
UE5TXzE1QXN5bmNGaWxlU3RyZWFtRVMyX2JiRUUKIF9fWlRWTjdXZWJDb3JlMTVGaWxlVGhyZWFk
VGFzazNJTlNfMTVBc3luY0ZpbGVTdHJlYW1FTjNXVEY2U3RyaW5nRVJLUzNfeHh4eEVFCi1fX1pU
Vk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMklQTlNfMTVBc3luY0ZpbGVTdHJlYW1FUzJfeHhF
RQogX19aVFZON1dlYkNvcmUxNUZpbGVUaHJlYWRUYXNrMklOU18xNUFzeW5jRmlsZVN0cmVhbUVO
M1dURjZTdHJpbmdFUktTM19kZEVFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMUlQ
TlNfMTVBc3luY0ZpbGVTdHJlYW1FUzJfRUUKIF9fWlRWTjdXZWJDb3JlMTVGaWxlVGhyZWFkVGFz
azBJTlNfMTVBc3luY0ZpbGVTdHJlYW1FRUUKIF9fWlRWTjNXVEYyMU1lbW9yeUluc3RydW1lbnRh
dGlvbjdXcmFwcGVySU43V2ViQ29yZTROb2RlRUVFCiBfX1pUVk4zV1RGMTJGbG9hdDMyQXJyYXlF
CkBAIC0yNDEyNywxMSArMjQxMjMsOCBAQCBfX1pUVk4zV1RGMjFNZW1vcnlJbnN0cnVtZW50YXRp
b243V3JhcHBlcklON1dlYkNvcmUxM01lZGlhUXVlcnlTZXRFRUUKIF9fWlRWTjdXZWJDb3JlMjFT
dHlsZVNoZWV0Q1NTUnVsZUxpc3RFCiBfX1pUVk43V2ViQ29yZTE5U3RlcHNUaW1pbmdGdW5jdGlv
bkUKIF9fWlRWTjdXZWJDb3JlMjBMaW5lYXJUaW1pbmdGdW5jdGlvbkUKLV9fWlRWTjdXZWJDb3Jl
MTZDcm9zc1RocmVhZFRhc2sySU4zV1RGMTBQYXNzUmVmUHRySU5TXzI3U1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrRUVFUzRfTlMyX0lOU184U1FMRXJyb3JFRUVTNl9FRQogX19aVFZON1dlYkNv
cmUyNkRlbGl2ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrRQogX19aVFZON1dlYkNvcmUxNkRlcmVmQ29u
dGV4dFRhc2tFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrNUlOU18xM01lc3NhZ2VT
b3VyY2VFUzFfTlNfMTJNZXNzYWdlTGV2ZWxFUzJfTjNXVEY2U3RyaW5nRVJLUzRfUzRfUzZfaWpF
RQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazNJTjNXVEY2U3RyaW5nRVJLUzJfaWlT
Ml9TNF9FRQogX19aVFZON1dlYkNvcmUyM1NoYXJlZFdvcmtlckNvbm5lY3RUYXNrRQogX19aVFZO
N1dlYkNvcmU5RGVsYXlOb2RlRQogX19aVFZON1dlYkNvcmUxOVJlbW92ZVRhcmdldENvbW1hbmRF
CkBAIC0yNDI1Nyw3ICsyNDI1MCw2IEBAIF9fWlRWTjdXZWJDb3JlOFBPREFyZW5hMTlGYXN0TWFs
bG9jQWxsb2NhdG9yRQogX19aR1ZaTjNXVEYxOVBhcmFsbGVsRW52aXJvbm1lbnQ3ZXhlY3V0ZUVQ
aEUxMWdsb2JhbFF1ZXVlCiBfX1paTjNXVEYxOVBhcmFsbGVsRW52aXJvbm1lbnQ3ZXhlY3V0ZUVQ
aEUxMWdsb2JhbFF1ZXVlCiBfX1pUVk4zV1RGMTdVaW50OENsYW1wZWRBcnJheUUKLV9fWlRWTjdX
ZWJDb3JlMTZDcm9zc1RocmVhZFRhc2sxSVBOU18xMEZpbGVSZWFkZXJFUzJfRUUKIF9fWlRWTjdX
ZWJDb3JlMTRGaWxlUmVhZGVyU3luY0UKIF9fWlRWTjdXZWJDb3JlNkZpbHRlckUKIF9fWlRWTjNX
VEYyMU1lbW9yeUluc3RydW1lbnRhdGlvbjdXcmFwcGVySU43V2ViQ29yZThEb2N1bWVudEVFRQpA
QCAtMjYwNzksNyArMjYwNzEsNiBAQCBfX1pMMThzb2Z0TGlua1FUTWFrZVRpbWUKIF9fWlRWTjdX
ZWJDb3JlNVRpbWVySU5TXzIzTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXRFRUUKIF9fWlRWTjNXVEYy
MU1lbW9yeUluc3RydW1lbnRhdGlvbjdXcmFwcGVySU5TXzZWZWN0b3JJTlNfNk93blB0cklON1dl
YkNvcmUxM01lZGlhUXVlcnlFeHBFRUVMbTBFRUVFRQogX19aVFZOM1dURjIxTWVtb3J5SW5zdHJ1
bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMTNNZWRpYVF1ZXJ5RXhwRUVFCi1fX1pUVk43V2Vi
Q29yZTE2Q3Jvc3NUaHJlYWRUYXNrMUlOM1dURjZTdHJpbmdFUktTMl9FRQogX19aVFZOM1dURjIx
TWVtb3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTlMwXzExV3JhcHBlckJhc2VFRUUKIF9fWlRW
TjdXZWJDb3JlMTlOYW1lZEZsb3dDb2xsZWN0aW9uRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNf
MTlOYXZpZ2F0aW9uU2NoZWR1bGVyRUVFCkBAIC0yNjQxMCwxMSArMjY0MDEsNiBAQCBfX1pUVk43
V2ViQ29yZTI3UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrRQogX19aVFZON1dlYkNvcmUyNFRl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZEUKIF9fWlRWTjdXZWJDb3JlNVRpbWVySU5TXzEzVGV4dFRy
YWNrTGlzdEVFRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNfMTVUZXh0VHJhY2tMb2FkZXJFRUUK
LV9fWlRWTjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2s1SU4zV1RGMTBQYXNzUmVmUHRySU5TXzM5
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyRUVFUzRfbW1OU18yMldlYlNv
Y2tldENoYW5uZWxDbGllbnQzMkNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzRVM2X3R0
TlMxXzZTdHJpbmdFUktTN19FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazJJTjNX
VEYxMFBhc3NSZWZQdHJJTlNfMzlUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXJFRUVTNF9tbUVFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMklOM1dURjEwUGFz
c1JlZlB0cklOU18zOVRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlckVFRVM0
X05TMV8xMFBhc3NPd25QdHJJTlMxXzZWZWN0b3JJY0xtMEVFRUVFUzhfRUUKLV9fWlRWTjdXZWJD
b3JlMTZDcm9zc1RocmVhZFRhc2sySU4zV1RGMTBQYXNzUmVmUHRySU5TXzM5VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyRUVFUzRfTlMxXzZTdHJpbmdFUktTNV9FRQotX19a
VFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazFJTjNXVEYxMFBhc3NSZWZQdHJJTlNfMzlUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXJFRUVTNF9FRQogX19aTjdXZWJDb3Jl
TDIzdGhyZWFkVmlvbGF0aW9uQmVoYXZpb3JFCiBfX1pUVk43V2ViQ29yZTIxTWFpblRocmVhZFNo
YXJlZFRpbWVyRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNfOVRpbGVDYWNoZUVFRQpAQCAtMjY0
NzgsOSArMjY0NjQsNiBAQCBfX1pHVlpON1dlYkNvcmUxM1dpZHRoSXRlcmF0b3IxNWFkdmFuY2VJ
bnRlcm5hbElOU18xOExhdGluMVRleHRJdGVyYXRvckVFRWpSVF9QTgogX19aVFZON1dlYkNvcmUy
MkNsb3NlV29ya2VyR2xvYmFsU2NvcGVUYXNrRQogX19aTjdXZWJDb3JlMTlXb3JrZXJEZWJ1Z2dl
ckFnZW50MTZkZWJ1Z2dlclRhc2tNb2RlRQogX19aVFZON1dlYkNvcmUxNldvcmtlckV2ZW50UXVl
dWUxOUV2ZW50RGlzcGF0Y2hlclRhc2tFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNr
MUliYkVFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMUlQTlNfMjBXb3JrZXJNZXNz
YWdpbmdQcm94eUVTMl9FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazZJUE5TXzIw
V29ya2VyTWVzc2FnaW5nUHJveHlFUzJfTlNfMTNNZXNzYWdlU291cmNlRVMzX05TXzEyTWVzc2Fn
ZUxldmVsRVM0X04zV1RGNlN0cmluZ0VSS1M2X2lqUzZfUzhfRUUKIF9fWlRWTjdXZWJDb3JlMzBX
b3JrZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2tFCiBfX1pUVk43V2ViQ29yZTMwUG9zdE1lc3Nh
Z2VUb1BhZ2VJbnNwZWN0b3JUYXNrRQogX19aVFZON1dlYkNvcmUxOVdvcmtlclRlcm1pbmF0ZVRh
c2tFCkBAIC0yNjQ5MSwyNSArMjY0NzQsNiBAQCBfX1pUVk43V2ViQ29yZTE3TWVzc2FnZVdvcmtl
clRhc2tFCiBfX1pUVk43V2ViQ29yZTE3V29ya2VyU2hhcmVkVGltZXJFCiBfX1pUVk43V2ViQ29y
ZTI5V29ya2VyVGhyZWFkU2h1dGRvd25TdGFydFRhc2tFCiBfX1pUVk43V2ViQ29yZTMwV29ya2Vy
VGhyZWFkU2h1dGRvd25GaW5pc2hUYXNrRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFz
azFJTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjlUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlckVF
RU5TMV82UmVmUHRySVMzX0VFRUUKLV9fWlRWTjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2sySU4z
V1RGMTBQYXNzUmVmUHRySU5TXzI5VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXJFRUVTNF9O
U18xM1Jlc291cmNlRXJyb3JFUktTNV9FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFz
azJJTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjlUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlckVF
RU5TMV82UmVmUHRySVMzX0VFTlNfMTNSZXNvdXJjZUVycm9yRVJLUzdfRUUKLV9fWlRWTjdXZWJD
b3JlMTZDcm9zc1RocmVhZFRhc2szSU4zV1RGMTBQYXNzUmVmUHRySU5TXzI5VGhyZWFkYWJsZUxv
YWRlckNsaWVudFdyYXBwZXJFRUVOUzFfNlJlZlB0cklTM19FRW1tZGRFRQotX19aVFZON1dlYkNv
cmUxNkNyb3NzVGhyZWFkVGFzazJJTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjlUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50V3JhcHBlckVFRU5TMV82UmVmUHRySVMzX0VFTlMxXzEwUGFzc093blB0cklOUzFf
NlZlY3RvckljTG0wRUVFRUVTQV9FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazNJ
TjNXVEYxMFBhc3NSZWZQdHJJTlNfMjlUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlckVFRU5T
MV82UmVmUHRySVMzX0VFbW1OUzFfMTBQYXNzT3duUHRySU5TXzMxQ3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YUVFRVM5X0VFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrM0lO
M1dURjEwUGFzc1JlZlB0cklOU18yOVRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyRUVFTlMx
XzZSZWZQdHJJUzNfRUV5eXl5RUUKLV9fWlRWTjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2sxSVBO
U18yMldvcmtlclRocmVhZGFibGVMb2FkZXIxNk1haW5UaHJlYWRCcmlkZ2VFUzNfRUUKLV9fWlRW
TjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2s0SVBOU18yMldvcmtlclRocmVhZGFibGVMb2FkZXIx
Nk1haW5UaHJlYWRCcmlkZ2VFUzNfTjNXVEYxMFBhc3NPd25QdHJJTlNfMzBDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGFFRUVTN19OU18yM1RocmVhZGFibGVMb2FkZXJPcHRpb25zRVM4X05T
NF82U3RyaW5nRVJLUzlfRUUKLV9fWlRWTjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2szSVBOU18z
MldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsNFBlZXJFUzNfaWlOM1dURjZTdHJpbmdF
UktTNV9FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazFJUE5TXzMyV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw0UGVlckVTM19FRQotX19aVFZON1dlYkNvcmUxNkNyb3Nz
VGhyZWFkVGFzazRJUE5TXzMyV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw0UGVlckVT
M19OU180S1VSTEVSS1M0X04zV1RGNlN0cmluZ0VSS1M4X3l4RUUKLV9fWlRWTjdXZWJDb3JlMTZD
cm9zc1RocmVhZFRhc2sySVBOU18zMldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsNFBl
ZXJFUzNfTjNXVEYxMFBhc3NPd25QdHJJTlM0XzZWZWN0b3JJY0xtMEVFRUVFUzhfRUUKLV9fWlRW
TjdXZWJDb3JlMTZDcm9zc1RocmVhZFRhc2sySVBOU18zMldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsNFBlZXJFUzNfTjNXVEY2U3RyaW5nRVJLUzVfRUUKLV9fWlRWTjdXZWJDb3JlMTZD
cm9zc1RocmVhZFRhc2szSVBOU18zMldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsNFBl
ZXJFUzNfTlNfNEtVUkxFUktTNF9OM1dURjZTdHJpbmdFUktTOF9FRQotX19aVFZON1dlYkNvcmUx
NkNyb3NzVGhyZWFkVGFzazNJUE5TXzE3V29ya2VyTG9hZGVyUHJveHlFUzJfTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfMzlUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXJFRUVTNl9O
UzNfNlN0cmluZ0VSS1M3X0VFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMUlOM1dU
RjEwUGFzc093blB0cklOU18zMldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsNFBlZXJF
RUVTNV9FRQotX19aVFZON1dlYkNvcmUxNkNyb3NzVGhyZWFkVGFzazNJTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfMzlUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXJFRUVTNF9OUzFf
NlN0cmluZ0VSS1M1X1M1X1M3X0VFCi1fX1pUVk43V2ViQ29yZTE2Q3Jvc3NUaHJlYWRUYXNrMklO
M1dURjEwUGFzc1JlZlB0cklOU18zOVRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlckVFRVM0X05TXzI2VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwxMFNlbmRSZXN1bHRFUzZf
RUUKIF9fWlRWTjdXZWJDb3JlMzJXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDMwV29y
a2VyR2xvYmFsU2NvcGVEaWRJbml0aWFsaXplVGFza0UKIF9fWlpON1dlYkNvcmUxMFhMaW5rTmFt
ZXMxM2dldFhMaW5rQXR0cnNFdkU5WExpbmtBdHRyCiBfX1pUVk43V2ViQ29yZTE2UGVuZGluZ0Nh
bGxiYWNrczI5UGVuZGluZ0ludGVybmFsU3Vic2V0Q2FsbGJhY2tFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhNTFmYjU3OWYwNDAxMjlm
NWYyMDFjMWJkNWNjOTlhZGIzMDUzMDAwLi4wZTYzMGU4YzA3NjM3OWFlYWE3Mzc0OTYzNTE4Zjdh
YWNjNTgzNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKQEAgLTIwNDc0LDcgKzIwNDc0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxDb21wb3NpdGlvbkV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxkb21cQ29udGFpbmVyTm9kZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxkb21cQ3Jvc3NUaHJlYWRUYXNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxkb21cQ3VzdG9tRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxE
YXRhc2V0RE9NU3RyaW5nTWFwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21c
RGF0YVRyYW5zZmVyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZmYxNzQ0M2YwZjEzODgzZWUyNjlh
NTUzMjZmMmEwOWNjOTU4YmNlZS4uOTA2MjI1OWI1MGE1Zjc2ZWQ3NzY3NzU4NWI1M2YzZjhjN2U3
NTFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTAxNTUsOSArMTAxNTUsNiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZG9tXENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiPgogICAgICAg
PEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRvbVxDcm9zc1RocmVhZFRhc2suaCI+Ci0gICAgICA8RmlsdGVyPmRvbTwvRmls
dGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXEN1
c3RvbUV2ZW50LmgiPgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAyMzZmOWZhMjg3ZDU3YjM2YzU3NDE4MjYxZjkyOTE3ODAwMDc3NzQ0Li5kZjMyYjY0
NjQ4NWQ3NmU2MGZhMzNhMjg2NzYyYTdlMDg1YjYzODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTM3LDcgKzExMzcsNiBA
QAogCQkyRTNCQzEwODExN0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTNCQzEwNjExN0Q0Nzk4MDBC
OTQwOUEgLyogRE9NRmlsZUVycm9yLmggKi87IH07CiAJCTJFM0JDMTA5MTE3RDQ3OTgwMEI5NDA5
QSAvKiBET01GaWxlRXJyb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTNCQzEwNzExN0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9yLm1tICov
OyB9OwogCQkyRTNCQzEwQjExN0Q0N0M4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9ySW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFM0JDMTBB
MTE3RDQ3QzgwMEI5NDA5QSAvKiBET01GaWxlRXJyb3JJbnRlcm5hbC5oICovOyB9OwotCQkyRTNG
QUEwOTExQTM2QkYxMDA1NzY2MjQgLyogQ3Jvc3NUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTNGQUEwODExQTM2QkYxMDA1NzY2MjQg
LyogQ3Jvc3NUaHJlYWRUYXNrLmggKi87IH07CiAJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgKi87IH07CiAJCTJFNDM0
NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjM0MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIu
aCAqLzsgfTsKIAkJMkU0MzQ2NDgwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckdsb2JhbFNjb3Bl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0
NjM2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi87IH07CkBAIC04
MTM2LDcgKzgxMzUsNiBAQAogCQkyRTNCQzEwNjExN0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVy
cm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUZpbGVFcnJvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTNCQzEwNzExN0Q0Nzk4MDBCOTQwOUEgLyog
RE9NRmlsZUVycm9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RE9NRmlsZUVycm9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTNCQzEwQTEx
N0Q0N0M4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9ySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZUVycm9ySW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMkUzRkFBMDgxMUEzNkJGMTAwNTc2NjI0IC8qIENyb3NzVGhyZWFkVGFz
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXb3JrZXIu
Y3BwOyBwYXRoID0gd29ya2Vycy9Xb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRTQzNDYzNDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlci5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzUwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV29ya2VyLmlkbDsgcGF0aCA9IHdvcmtl
cnMvV29ya2VyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTI2LDcgKzIy
NTI0LDYgQEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFs
Z29yaXRobXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NjI3QjhDMTRGQjNDRUUwMDJDRENBMSAv
KiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAotCQkJCTJFM0ZBQTA4MTFBMzZCRjEw
MDU3NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCAqLywKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2
M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBB
NyAvKiBDdXN0b21FdmVudC5oICovLAogCQkJCTYyQ0QzMjU4MTE1N0U1N0MwMDYzQjBBNyAvKiBD
dXN0b21FdmVudC5pZGwgKi8sCkBAIC0yMzU2Nyw3ICsyMzU2NCw2IEBACiAJCQkJRTFDNDE2MTIw
RjY1NjJGRDAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFDNDE1REEwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjU5MEY1NDZBOTkwMEIwRjFC
QSAvKiBDcm9zc1RocmVhZENvcGllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkUzRkFBMDkxMUEz
NkJGMTAwNTc2NjI0IC8qIENyb3NzVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2
OTgwM0QxMTMzNTQyRDAwODk0MTE1IC8qIENSdW50aW1lT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzVDQTI4QjEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTcyQUY2RTE4MEYyNEM2MDBGQkFEQjkgLyogQ3J5cHRvQWxnb3JpdGhtLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZFRhc2su
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZFRhc2suaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTM3ZjBjYTE3MjEzNmQwODMwNzZlMTFkYWZhZjFiMmZiMDRhOWNiNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAq
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIENyb3NzVGhyZWFkVGFza19oCi0jZGVmaW5lIENyb3NzVGhyZWFkVGFza19o
Ci0KLSNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcm9zc1RocmVhZFRhc2sgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7Ci1wdWJsaWM6Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgTWV0aG9kLCB0eXBlbmFtZS4uLiBQYXJhbWV0ZXJzPgotICAgIENyb3NzVGhy
ZWFkVGFzayhNZXRob2QgbWV0aG9kLCBjb25zdCBQYXJhbWV0ZXJzJi4uLiBwYXJhbWV0ZXJzKQot
ICAgICAgICA6IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2soc3RkOjpiaW5kKG1ldGhvZCwg
c3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQYXJhbWV0
ZXJzPjo6VHlwZShDcm9zc1RocmVhZENvcGllcjxQYXJhbWV0ZXJzPjo6Y29weShwYXJhbWV0ZXJz
KSkuLi4pKQotICAgIHsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBDcm9zc1RocmVhZFRhc2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dv
cmtlclRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDg1Nzk1YThkYTMzZDFjZDhiMjViYTNjMzFk
ZmJjZmY4NDIzZTNiZGEuLjMwY2Y2Yjc5NzlmNzg3NzAzN2FjMWIwZDI2N2FjZTU0YjExODA1MjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTkxLDMyICs5MCwyMiBAQCBXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpNYWluVGhyZWFkQnJpZGdlKFBh
c3NSZWZQdHI8VGhyZWFkYWJsZQogICAgICwgbV90YXNrTW9kZSh0YXNrTW9kZS5pc29sYXRlZENv
cHkoKSkKIHsKICAgICBBU1NFUlQobV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpKTsKLSAgICBt
X2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoQ3Jvc3NUaHJlYWRUYXNrKCZNYWluVGhyZWFk
QnJpZGdlOjptYWluVGhyZWFkQ3JlYXRlTG9hZGVyLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRo
aXMpLCByZXF1ZXN0LCBvcHRpb25zLCBvdXRnb2luZ1JlZmVycmVyKSk7Ci19CiAKLVdvcmtlclRo
cmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6On5NYWluVGhyZWFkQnJpZGdlKCkKLXsK
LX0KKyAgICBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGEqIHJlcXVlc3REYXRhID0gcmVx
dWVzdC5jb3B5RGF0YSgpLmxlYWtQdHIoKTsKKyAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlckNv
cHkgPSBvdXRnb2luZ1JlZmVycmVyLmlzb2xhdGVkQ29weSgpOworICAgIG1fbG9hZGVyUHJveHku
cG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcmVxdWVzdERhdGEsIG9wdGlvbnMsIG91dGdvaW5nUmVm
ZXJyZXJDb3B5XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6
TWFpblRocmVhZEJyaWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBNYWluVGhyZWFkQnJpZGdlKiB0aGlzUHRyLCBQYXNzT3duUHRyPENy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEsIFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgb3V0Z29pbmdSZWZlcnJlcikKLXsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKLQotICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IHJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0OjphZG9wdChyZXF1ZXN0RGF0YSkpOwotICAgIHJlcXVlc3Qt
PnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVyKTsKLSAgICAvLyBGSVhNRTogSWYgdGhl
IGEgc2l0ZSByZXF1ZXN0cyBhIGxvY2FsIHJlc291cmNlLCB0aGVuIHRoaXMgd2lsbCByZXR1cm4g
YSBub24temVybyB2YWx1ZSBidXQgdGhlIHN5bmMgcGF0aAotICAgIC8vIHdpbGwgcmV0dXJuIGEg
MCB2YWx1ZS4gIEVpdGhlciB0aGlzIHNob3VsZCByZXR1cm4gMCBvciB0aGUgb3RoZXIgY29kZSBw
YXRoIHNob3VsZCBkbyBhIGNhbGxiYWNrIHdpdGgKLSAgICAvLyBhIGZhaWx1cmUuCi0gICAgdGhp
c1B0ci0+bV9tYWluVGhyZWFkTG9hZGVyID0gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUoZG9jdW1lbnQsICp0aGlzUHRyLCAqcmVxdWVzdCwgb3B0aW9ucyk7Ci0gICAgQVNTRVJUKHRo
aXNQdHItPm1fbWFpblRocmVhZExvYWRlcik7Ci19CisgICAgICAgIE93blB0cjxSZXNvdXJjZVJl
cXVlc3Q+IHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KGFkb3B0UHRyKHJlcXVlc3RE
YXRhKSk7CisgICAgICAgIHJlcXVlc3QtPnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVy
Q29weSk7CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6
bWFpblRocmVhZERlc3Ryb3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTWFpblRo
cmVhZEJyaWRnZSogdGhpc1B0cikKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc0RvY3VtZW50KCkpOwotICAgIGRlbGV0
ZSB0aGlzUHRyOworICAgICAgICAvLyBGSVhNRTogSWYgdGhlIGEgc2l0ZSByZXF1ZXN0cyBhIGxv
Y2FsIHJlc291cmNlLCB0aGVuIHRoaXMgd2lsbCByZXR1cm4gYSBub24temVybyB2YWx1ZSBidXQg
dGhlIHN5bmMgcGF0aAorICAgICAgICAvLyB3aWxsIHJldHVybiBhIDAgdmFsdWUuIEVpdGhlciB0
aGlzIHNob3VsZCByZXR1cm4gMCBvciB0aGUgb3RoZXIgY29kZSBwYXRoIHNob3VsZCBkbyBhIGNh
bGxiYWNrIHdpdGgKKyAgICAgICAgLy8gYSBmYWlsdXJlLgorICAgICAgICBtX21haW5UaHJlYWRM
b2FkZXIgPSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShkb2N1bWVudCwgKnRoaXMs
ICpyZXF1ZXN0LCBvcHRpb25zKTsKKyAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZExvYWRlcik7
CisgICAgfSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJy
aWRnZTo6ZGVzdHJveSgpCkBAIC0xMjUsMjMgKzExNCwyNSBAQCB2b2lkIFdvcmtlclRocmVhZGFi
bGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRlc3Ryb3koKQogICAgIGNsZWFyQ2xpZW50V3Jh
cHBlcigpOwogCiAgICAgLy8gImRlbGV0ZSB0aGlzIiBhbmQgbV9tYWluVGhyZWFkTG9hZGVyOjpk
ZXJlZigpIG9uIHRoZSB3b3JrZXIgb2JqZWN0J3MgdGhyZWFkLgotICAgIG1fbG9hZGVyUHJveHku
cG9zdFRhc2tUb0xvYWRlcihDcm9zc1RocmVhZFRhc2soJk1haW5UaHJlYWRCcmlkZ2U6Om1haW5U
aHJlYWREZXN0cm95LCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpKSk7CisgICAgbV9sb2Fk
ZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NF
UlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsKKyAgICAgICAgZGVsZXRl
IHRoaXM7CisgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRo
cmVhZEJyaWRnZTo6bWFpblRocmVhZENhbmNlbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBNYWluVGhyZWFkQnJpZGdlKiB0aGlzUHRyKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpjYW5jZWwoKQogewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzRG9jdW1lbnQoKSk7
CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsKIAot
ICAgIGlmICghdGhpc1B0ci0+bV9tYWluVGhyZWFkTG9hZGVyKQotICAgICAgICByZXR1cm47Ci0g
ICAgdGhpc1B0ci0+bV9tYWluVGhyZWFkTG9hZGVyLT5jYW5jZWwoKTsKLSAgICB0aGlzUHRyLT5t
X21haW5UaHJlYWRMb2FkZXIgPSAwOwotfQorICAgICAgICBpZiAoIW1fbWFpblRocmVhZExvYWRl
cikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9tYWluVGhyZWFkTG9hZGVyLT5jYW5j
ZWwoKTsKKyAgICAgICAgbV9tYWluVGhyZWFkTG9hZGVyID0gbnVsbHB0cjsKKyAgICB9KTsKIAot
dm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpjYW5jZWwoKQot
ewotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihDcm9zc1RocmVhZFRhc2soJk1h
aW5UaHJlYWRCcmlkZ2U6Om1haW5UaHJlYWRDYW5jZWwsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3Mo
dGhpcykpKTsKICAgICBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlciogY2xpZW50V3JhcHBl
ciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKTsKICAgICBpZiAoIWNsaWVudFdyYXBwZXIt
PmRvbmUoKSkgewogICAgICAgICAvLyBJZiB0aGUgY2xpZW50IGhhc24ndCByZWFjaGVkIGEgdGVy
bWluYXRpb24gc3RhdGUsIHRoZW4gdHJhbnNpdGlvbiBpdCBieSBzZW5kaW5nIGEgY2FuY2VsbGF0
aW9uIGVycm9yLgpAQCAtMTU4LDg0ICsxNDksNzQgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyOjpNYWluVGhyZWFkQnJpZGdlOjpjbGVhckNsaWVudFdyYXBwZXIoKQogICAgIG1fd29ya2Vy
Q2xpZW50V3JhcHBlci0+Y2xlYXJDbGllbnQoKTsKIH0KIAotc3RhdGljIHZvaWQgd29ya2VyR2xv
YmFsU2NvcGVEaWRTZW5kRGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQ
dHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVu
c2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVz
VG9CZVNlbnQpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzV29ya2Vy
R2xvYmFsU2NvcGUoKSk7Ci0gICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkU2VuZERhdGEoYnl0
ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOwotfQotCiB2b2lkIFdvcmtlclRocmVhZGFibGVM
b2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCiB7Ci0gICAg
bV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKENyb3NzVGhy
ZWFkVGFzaygmd29ya2VyR2xvYmFsU2NvcGVEaWRTZW5kRGF0YSwgbV93b3JrZXJDbGllbnRXcmFw
cGVyLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCksIG1fdGFza01vZGUpOwotfQotCi1z
dGF0aWMgdm9pZCB3b3JrZXJHbG9iYWxTY29wZURpZFJlY2VpdmVSZXNwb25zZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBw
ZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUGFzc093
blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiByZXNwb25zZURhdGEpCi17Ci0g
ICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7
Ci0gICAgT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2U6
OmFkb3B0KHJlc3BvbnNlRGF0YSkpOwotICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZFJlY2Vp
dmVSZXNwb25zZShpZGVudGlmaWVyLCAqcmVzcG9uc2UpOworICAgIFJlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50
V3JhcHBlcjsKKyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFs
U2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIsIGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICBBU1NFUlRfVU5V
U0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKKyAgICAgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkU2VuZERhdGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNl
bnQpOworICAgIH0sIG1fdGFza01vZGUpOwogfQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVMb2Fk
ZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIG1fbG9h
ZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShDcm9zc1RocmVhZFRh
c2soJndvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2ZVJlc3BvbnNlLCBtX3dvcmtlckNsaWVudFdy
YXBwZXIsIGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV90YXNrTW9kZSk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2ZURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiB3b3JrZXJD
bGllbnRXcmFwcGVyLCBQYXNzT3duUHRyPFZlY3RvcjxjaGFyPj4gdmVjdG9yRGF0YSkKLXsKLSAg
ICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
LSAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlRGF0YSh2ZWN0b3JEYXRhLT5kYXRh
KCksIHZlY3RvckRhdGEtPnNpemUoKSk7CisgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGll
bnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyOwor
ICAgIENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEqIHJlc3BvbnNlRGF0YSA9IHJlc3Bv
bnNlLmNvcHlEYXRhKCkubGVha1B0cigpOworICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JN
b2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciwgaWRlbnRpZmllciwg
cmVzcG9uc2VEYXRhXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAg
ICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsK
KyAgICAgICAgT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlKFJlc291cmNlUmVzcG9u
c2U6OmFkb3B0KGFkb3B0UHRyKHJlc3BvbnNlRGF0YSkpKTsKKyAgICAgICAgd29ya2VyQ2xpZW50
V3JhcHBlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGlkZW50aWZpZXIsICpyZXNwb25zZSk7CisgICAg
fSwgbV90YXNrTW9kZSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRo
cmVhZEJyaWRnZTo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgpCiB7Ci0gICAgT3duUHRyPFZlY3RvcjxjaGFyPj4gdmVjdG9yID0gYWRvcHRQdHIobmV3IFZl
Y3RvcjxjaGFyPihkYXRhTGVuZ3RoKSk7IC8vIG5lZWRzIHRvIGJlIGFuIE93blB0ciBmb3IgdXNh
Z2Ugd2l0aCBDcm9zc1RocmVhZFRhc2suCi0gICAgbWVtY3B5KHZlY3Rvci0+ZGF0YSgpLCBkYXRh
LCBkYXRhTGVuZ3RoKTsKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2Vy
R2xvYmFsU2NvcGUoQ3Jvc3NUaHJlYWRUYXNrKCZ3b3JrZXJHbG9iYWxTY29wZURpZFJlY2VpdmVE
YXRhLCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHZlY3Rvci5yZWxlYXNlKCkpLCBtX3Rhc2tNb2Rl
KTsKLX0KLQotc3RhdGljIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVEaWRGaW5pc2hMb2FkaW5nKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBkb3VibGUgZmluaXNoVGltZSkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRl
eHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRG
aW5pc2hMb2FkaW5nKGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOworICAgIFJlZlB0cjxUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xp
ZW50V3JhcHBlcjsKKyAgICBWZWN0b3I8Y2hhcj4qIHZlY3RvclB0ciA9IG5ldyBWZWN0b3I8Y2hh
cj4oZGF0YUxlbmd0aCk7CisgICAgbWVtY3B5KHZlY3RvclB0ci0+ZGF0YSgpLCBkYXRhLCBkYXRh
TGVuZ3RoKTsKKyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFs
U2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIsIHZlY3RvclB0cl0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0
LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CisgICAgICAgIE93blB0cjxWZWN0b3I8Y2hhcj4+IHZl
Y3RvciA9IGFkb3B0UHRyKHZlY3RvclB0cik7CisgICAgICAgIHdvcmtlckNsaWVudFdyYXBwZXIt
PmRpZFJlY2VpdmVEYXRhKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPnNpemUoKSk7CisgICAgfSwg
bV90YXNrTW9kZSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVh
ZEJyaWRnZTo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJs
ZSBmaW5pc2hUaW1lKQogewotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJHbG9iYWxTY29wZShDcm9zc1RocmVhZFRhc2soJndvcmtlckdsb2JhbFNjb3BlRGlkRmluaXNo
TG9hZGluZywgbV93b3JrZXJDbGllbnRXcmFwcGVyLCBpZGVudGlmaWVyLCBmaW5pc2hUaW1lKSwg
bV90YXNrTW9kZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlRGlkRmFpbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNs
aWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQotewotICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2Jh
bFNjb3BlKCkpOwotICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZEZhaWwoZXJyb3IpOworICAg
IFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBl
ciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKKyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIsIGlkZW50aWZpZXIs
IGZpbmlzaFRpbWVdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgICAg
IEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwor
ICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIs
IGZpbmlzaFRpbWUpOworICAgIH0sIG1fdGFza01vZGUpOwogfQogCiB2b2lkIFdvcmtlclRocmVh
ZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB7Ci0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckds
b2JhbFNjb3BlKENyb3NzVGhyZWFkVGFzaygmd29ya2VyR2xvYmFsU2NvcGVEaWRGYWlsLCBtX3dv
cmtlckNsaWVudFdyYXBwZXIsIGVycm9yKSwgbV90YXNrTW9kZSk7Ci19Ci0KLXN0YXRpYyB2b2lk
IHdvcmtlckdsb2JhbFNjb3BlRGlkRmFpbEFjY2Vzc0NvbnRyb2xDaGVjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFw
cGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsK
LSAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgp
KTsKLSAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRGYWlsQWNjZXNzQ29udHJvbENoZWNrKGVy
cm9yKTsKKyAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI+IHdvcmtlckNs
aWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXI7CisgICAgUmVzb3VyY2VFcnJvciBl
cnJvckNvcHkgPSBlcnJvci5jb3B5KCk7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1v
ZGVUb1dvcmtlckdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyLCBlcnJvckNvcHldIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQo
Y29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOworICAgICAgICB3b3JrZXJD
bGllbnRXcmFwcGVyLT5kaWRGYWlsKGVycm9yQ29weSk7CisgICAgfSwgbV90YXNrTW9kZSk7CiB9
CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkRmFp
bEFjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBt
X2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoQ3Jvc3NUaHJl
YWRUYXNrKCZ3b3JrZXJHbG9iYWxTY29wZURpZEZhaWxBY2Nlc3NDb250cm9sQ2hlY2ssIG1fd29y
a2VyQ2xpZW50V3JhcHBlciwgZXJyb3IpLCBtX3Rhc2tNb2RlKTsKLX0KLQotc3RhdGljIHZvaWQg
d29ya2VyR2xvYmFsU2NvcGVEaWRGYWlsUmVkaXJlY3RDaGVjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI+IHdvcmtl
ckNsaWVudFdyYXBwZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0Lmlz
V29ya2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkRmFpbFJl
ZGlyZWN0Q2hlY2soKTsKKyAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI+
IHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXI7CisgICAgUmVzb3Vy
Y2VFcnJvciBlcnJvckNvcHkgPSBlcnJvci5jb3B5KCk7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyLCBlcnJv
ckNvcHldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOworICAgICAg
ICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRGYWlsQWNjZXNzQ29udHJvbENoZWNrKGVycm9yQ29w
eSk7CisgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRl
cjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkRmFpbFJlZGlyZWN0Q2hlY2soKQogewotICAgIG1fbG9h
ZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShDcm9zc1RocmVhZFRh
c2soJndvcmtlckdsb2JhbFNjb3BlRGlkRmFpbFJlZGlyZWN0Q2hlY2ssIG1fd29ya2VyQ2xpZW50
V3JhcHBlciksIG1fdGFza01vZGUpOworICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKKyAg
ICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3dvcmtl
ckNsaWVudFdyYXBwZXJdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkp
OworICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRGYWlsUmVkaXJlY3RDaGVjaygpOwor
ICAgIH0sIG1fdGFza01vZGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAppbmRleCAwNTUxYWM1
NWMyZmVjOGI3YjMzN2U2YTI0YzY2MzU2NGIxNzRhN2RmLi5lOWMyZTQxMjFlN2Y5MDQ2NTNjMjBi
ZmMzYzc5YWMzYmMxYmM0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29y
a2VyVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJU
aHJlYWRhYmxlTG9hZGVyLmgKQEAgLTkwLDkgKzkwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAvLyBjYXNlIDIuIHhociBnZXRzIGFib3J0ZWQgYW5kIHRoZSB3b3JrZXIgY29udGV4
dCBjb250aW51ZXMgcnVubmluZy4KICAgICAgICAgLy8gICAgVGhlIFRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyIGhhcyB0aGUgdW5kZXJseWluZyBjbGllbnQgY2xlYXJlZCwgc28gbm8gbW9y
ZSBjYWxscwogICAgICAgICAvLyAgICBnbyB0aHJvdWdoIGl0LiAgQWxsIHRhc2tzIHBvc3RlZCBm
cm9tIHRoZSB3b3JrZXIgb2JqZWN0J3MgdGhyZWFkIHRvIHRoZSB3b3JrZXIgY29udGV4dCdzCi0g
ICAgICAgIC8vICAgIHRocmVhZCBkbyAiVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXI6OnJl
ZiIgKGF1dG9tYXRpY2FsbHkgaW5zaWRlIG9mIHRoZSBjcm9zcyB0aHJlYWQgY29weQotICAgICAg
ICAvLyAgICBkb25lIGluIENyb3NzVGhyZWFkVGFzayksIHNvIHRoZSBUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50V3JhcHBlciBpbnN0YW5jZSBpcyB0aGVyZSB1bnRpbCBhbGwKLSAgICAgICAgLy8gICAg
dGFza3MgYXJlIGV4ZWN1dGVkLgorICAgICAgICAvLyAgICB0aHJlYWQgY29udGFpbiB0aGUgUmVm
UHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiBvYmplY3QsIHNvIHRoZSAKKyAgICAg
ICAgLy8gICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudFdyYXBwZXIgaW5zdGFuY2UgaXMgdGhlcmUg
dW50aWwgYWxsIHRhc2tzIGFyZSBleGVjdXRlZC4KICAgICAgICAgY2xhc3MgTWFpblRocmVhZEJy
aWRnZSA6IHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IHsKICAgICAgICAgcHVibGljOgog
ICAgICAgICAgICAgLy8gQWxsIGV4ZWN1dGVkIG9uIHRoZSB3b3JrZXIgY29udGV4dCdzIHRocmVh
ZC4KQEAgLTEwNSwxMiArMTA0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAg
dm9pZCBjbGVhckNsaWVudFdyYXBwZXIoKTsKIAogICAgICAgICAgICAgLy8gQWxsIGV4ZWN1dGVk
IG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICAgICAgICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRE
ZXN0cm95KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNYWluVGhyZWFkQnJpZGdlKik7Ci0gICAg
ICAgICAgICB+TWFpblRocmVhZEJyaWRnZSgpOwotCiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBt
YWluVGhyZWFkQ3JlYXRlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNYWluVGhyZWFk
QnJpZGdlKiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+LCBUaHJl
YWRhYmxlTG9hZGVyT3B0aW9ucywgY29uc3QgU3RyaW5nJiBvdXRnb2luZ1JlZmVycmVyKTsKLSAg
ICAgICAgICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRDYW5jZWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIE1haW5UaHJlYWRCcmlkZ2UqKTsKLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcg
dG90YWxCeXRlc1RvQmVTZW50KSBvdmVycmlkZTsKKyAgICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9u
ZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGU7CiAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwogICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQgZGF0YUxlbmd0aCkgb3ZlcnJpZGU7CiAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDcxOGJmYzk5NDRjZjNjMTFjY2E1ZDYwMGVl
NWUzMWUxMTg5ZmEwMGMuLjNmMjM3OGQ1MWE2ZjdkNTZmODZkZTRhNjdkNDlhZjUxMjNjZDU4NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtMjgs
NyArMjgsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1
ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCkBAIC03NTQsMTUg
Kzc1MywxNCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNvbnRleHQp
OwogICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpKSB7Ci0gICAgICAgIGRv
d25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFkKCkud29ya2VyTG9hZGVy
UHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKENyb3NzVGhyZWFkVGFzaygmY3Jvc3NUaHJlYWRSZW1v
dmVSZXF1ZXN0RnJvbUNhY2hlLCByZXF1ZXN0LCBzZXNzaW9uSUQpKTsKKyAgICAgICAgQ3Jvc3NU
aHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhKiByZXF1ZXN0RGF0YSA9IHJlcXVlc3QuY29weURhdGEo
KS5sZWFrUHRyKCk7CisgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4
dCkudGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXF1ZXN0
RGF0YSwgc2Vzc2lvbklEXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAg
ICAgICAgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6
OmFkb3B0KGFkb3B0UHRyKHJlcXVlc3REYXRhKSkpOworICAgICAgICAgICAgcmVtb3ZlUmVxdWVz
dEZyb21DYWNoZSgmY29udGV4dCwgKnJlcXVlc3QsIHNlc3Npb25JRCk7CisgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwo
Y29udGV4dCwgcmVxdWVzdCwgc2Vzc2lvbklEKTsKLX0KLQotdm9pZCBNZW1vcnlDYWNoZTo6cmVt
b3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1
ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShy
ZXNvdXJjZSk7CiB9CkBAIC03NzEsMzIgKzc2OSwyMCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1v
dmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dAogewogICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+
KCpjb250ZXh0KSkgewotICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRl
eHQpLnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihDcm9zc1Ro
cmVhZFRhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzLCByZXF1
ZXN0KSk7CisgICAgICAgIENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YSogcmVxdWVzdERh
dGEgPSByZXF1ZXN0LmNvcHlEYXRhKCkubGVha1B0cigpOworICAgICAgICBkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9z
dFRhc2tUb0xvYWRlcihbcmVxdWVzdERhdGFdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KSB7CisgICAgICAgICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdDo6YWRvcHQoYWRvcHRQdHIocmVxdWVzdERhdGEpKSk7CisgICAgICAgICAgICBN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKCZjb250ZXh0LCAqcmVx
dWVzdCk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHJlbW92ZVJl
cXVlc3RGcm9tU2Vzc2lvbkNhY2hlc0ltcGwoY29udGV4dCwgcmVxdWVzdCk7Ci19CiAKLXZvaWQg
TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlc0ltcGwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKICAgICBm
b3IgKGF1dG8mIHJlc291cmNlcyA6IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291cmNlcykg
ewogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVzb3VyY2VzLnZhbHVlKSkKICAgICAg
ICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKICAgICB9CiB9CiAKLXZvaWQgTWVt
b3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3Vy
Y2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAg
T3duUHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KHJl
cXVlc3REYXRhKSk7Ci0gICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBs
KCZjb250ZXh0LCAqcmVxdWVzdCwgc2Vzc2lvbklEKTsKLX0KLQotdm9pZCBNZW1vcnlDYWNoZTo6
Y3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgUGFzc093blB0cjxXZWJDb3JlOjpDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE+IHJlcXVlc3REYXRhKQotewotICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0OjphZG9wdChyZXF1ZXN0RGF0YSkpOwotICAgIE1lbW9y
eUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoJmNvbnRleHQsICpyZXF1ZXN0
KTsKLX0KLQogdm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgY291bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmgKaW5kZXggZDMyZDc3NGQyNGJmOTJhMDNlMjUyMWRlZmMzYjFhNWI3
Nzg4ZjQwOS4uNDk5OGNlZDc5ZDUxNTUwNGQ1MGJhMWQ5MWVkODk1MTJhNmIzODA3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKQEAgLTIwNCwxMCArMjA0LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGV2aWN0KENhY2hlZFJlc291cmNlKik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOwotICAgIHN0YXRpYyB2b2lkIHJl
bW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVl
c3RGcm9tU2Vzc2lvbkNhY2hlc0ltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOwotICAgIHN0YXRpYyB2b2lkIGNyb3Nz
VGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pOwogCiAgICAg
Q2FjaGVkUmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAo=
</data>
<flag name="review"
          id="264295"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>