<?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>101932</bug_id>
          
          <creation_ts>2012-11-12 05:24:45 -0800</creation_ts>
          <short_desc>[V8] Remove LIKELY()/UNLIKELY() from V8 binding cpp files</short_desc>
          <delta_ts>2013-05-02 11:47:21 -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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764300</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 05:24:45 -0800</bug_when>
    <thetext>It doesn&apos;t make sense to have LIKELY()/UNLIKELY() in cpp files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764302</commentid>
    <comment_count>1</comment_count>
      <attachid>173631</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 05:26:37 -0800</bug_when>
    <thetext>Created attachment 173631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764507</commentid>
    <comment_count>2</comment_count>
      <attachid>173631</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 09:44:02 -0800</bug_when>
    <thetext>Comment on attachment 173631
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        It doesn&apos;t make sense to have LIKELY()/UNLIKELY() in cpp files.

Why not?

&gt; Source/WebCore/bindings/v8/DOMDataStore.cpp:58
&gt; -    if (UNLIKELY(!!data-&gt;domDataStore()))
&gt; +    if (!!data-&gt;domDataStore())

You can get rid of the !! here as well.  That was just to make UNLIKELY happy.

&gt; Source/WebCore/bindings/v8/DOMDataStore.cpp:61
&gt; -    if (UNLIKELY(!!context))
&gt; +    if (!!context)

ditto

&gt; Source/WebCore/bindings/v8/V8Binding.cpp:324
&gt; -    if (UNLIKELY(!!(isolatedShell = V8DOMWindowShell::getEntered())))
&gt; +    if (!!(isolatedShell = V8DOMWindowShell::getEntered()))

here too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764508</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 09:44:31 -0800</bug_when>
    <thetext>Have you run any performance tests to verify that these aren&apos;t needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765031</commentid>
    <comment_count>4</comment_count>
      <attachid>173631</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 17:37:31 -0800</bug_when>
    <thetext>Comment on attachment 173631
Patch

&gt; Have you run any performance tests to verify that these aren&apos;t needed?

I should do it. I was just blindly believing that LIKELY/UNLIKELY would be meaningful in a part of inlined functions in headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883863</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-02 11:47:21 -0700</bug_when>
    <thetext>V8 is gone from WebKit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173631</attachid>
            <date>2012-11-12 05:26:37 -0800</date>
            <delta_ts>2012-11-12 17:37:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101932-20121112222439.patch</filename>
            <type>text/plain</type>
            <size>30367</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzZGUyOTViNTE2NjY2
NjU2NGY2YzkyYjNlNTY4MGFkZmUwY2E4Ny4uMjQxZDU1MmVmNzE1NmRjZTlmM2U1MjkzMGIzZTUw
N2JjMzZkYTc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTExLTEyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbW92ZSBM
SUtFTFkoKS9VTkxJS0VMWSgpIGZyb20gVjggYmluZGluZyBjcHAgZmlsZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTkzMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGRvZXNuJ3QgbWFrZSBzZW5z
ZSB0byBoYXZlIExJS0VMWSgpL1VOTElLRUxZKCkgaW4gY3BwIGZpbGVzLgorCisgICAgICAgIE5v
IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRl
cik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIpOgorICAgICAgICAoR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAoR2VuZXJhdGVUb1Y4Q29udmVydGVycyk6Cisg
ICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZyk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
RmxvYXQ2NEFycmF5Ojp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RB
Y3RpdmVET01PYmplY3Q6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RFdmVudFRhcmdldFY4SW50ZXJuYWw6Oml0ZW1DYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0RXZlbnRUYXJnZXRWOEludGVybmFsOjpkaXNwYXRjaEV2ZW50Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4VGVzdEV4Y2VwdGlvbjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbE1ldGhvZDJDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFRlc3RJbnRlcmZhY2U6OndyYXBTbG93KToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwU2xv
dyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3Jh
cFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5vZGU6OndyYXBTbG93KToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0ckdl
dHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFRoYXRSZXF1aXJlc0Fs
bEFyZ3NBbmRUaHJvd3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6bWV0aG9kV2l0aEV4Y2VwdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZU9iakV4
Y2VwdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0FycmF5RnVu
Y3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Z2V0
U1ZHRG9jdW1lbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6c3RyaWN0RnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6
OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcFNsb3cpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01EYXRhU3Rv
cmU6OmN1cnJlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbklzb2xhdGVk
V29ybGQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwZXJDb250ZXh0RGF0YUZvckN1cnJlbnRXb3JsZCk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmxkQ29u
dGV4dEhhbmRsZTo6V29ybGRDb250ZXh0SGFuZGxlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3
OjpnZXRJbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Z2V0VWlu
dDhDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3OjpzZXRJbnQ4Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6c2V0VWludDhDYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhMb2NhdGlvbjo6cHJvdG9jb2xBY2Nlc3NvclNldHRlcik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHTGVuZ3RoQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4U1ZHTGVuZ3RoOjp2YWx1ZUFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4U1ZHTGVuZ3RoOjp2YWx1ZUFjY2Vzc29yU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0c0NhbGxiYWNrKToKKwogMjAxMi0x
MS0xMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4
XSBBZGQgQVNTRVJUKCkgdG8gZ3VhcmFudGVlIHRoYXQgd2UgZG9uJ3Qgc3RvcmUgTlVMTCBwb2lu
dGVycyB0byBWOCBpbnRlcm5hbCBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMTRmNDRiNzdkOWU1NGY5ZTI4NDNm
ZTc0N2NlODE3YjdjMDAxMjNjMC4uNDc1OGQ2N2E5YjRkYjZiMTBiNDg1ZmQ3ZWFmNWQ3YTVlNzJk
Yjg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KQEAgLTk5Niw3ICs5OTYsNyBAQCBFTkQKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJG5hdGl2ZVR5cGUgdiA9ICRn
ZXR0ZXJTdHJpbmc7XG4iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgIGlmIChVTkxJS0VMWShlYykpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIiAgICBpZiAoZWMpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkp
O1xuIik7CiAKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNv
bnRhaW5zKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxX
aXRoIn0sICJTY3JpcHRTdGF0ZSIpKSB7CkBAIC0xMzAxLDcgKzEzMDEsNyBAQCBFTkQKICAgICB9
CiAKICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICBpZiAoVU5MSUtFTFkoZWMpKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgaWYgKGVjKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7
CiAgICAgfQogCkBAIC0xODQxLDcgKzE4NDEsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hl
Y2sKICAgICAgICAgfQogCiAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSXNJbmRleCJ9KSB7Ci0gICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0g
IiAgICBpZiAoVU5MSUtFTFkoJHBhcmFtZXRlck5hbWUgPCAwKSkge1xuIjsKKyAgICAgICAgICAg
ICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgIGlmICgkcGFyYW1ldGVyTmFtZSA8IDApIHtc
biI7CiAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAgICAgZWMgPSBJ
TkRFWF9TSVpFX0VSUjtcbiI7CiAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0g
IiAgICAgICAgZ290byBmYWlsO1xuIjsKICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmlu
ZyAuPSAiICAgIH1cbiI7CkBAIC0zNDQyLDcgKzM0NDIsNyBAQCBFTkQKICAgICBpZiAoIWNvbnRl
eHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAKLSAgICBpZiAoVU5MSUtF
TFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3Jh
cHBlciwgaW1wbC5nZXQoKSk7CkBAIC0zNTU0LDcgKzM1NTQsNyBAQCBzdWIgR2VuZXJhdGVGdW5j
dGlvbkNhbGxTdHJpbmcoKQogICAgIH0KIAogICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhj
ZXB0aW9uc30pIHsKLSAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gImlmIChVTkxJS0VMWShl
YykpXG4iOworICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiaWYgKGVjKVxuIjsKICAgICAg
ICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICBnb3RvIGZhaWw7XG4iOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2
NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZs
b2F0NjRBcnJheS5jcHAKaW5kZXggZjM1YmE4N2YwYjkyMDEyNjFlMzNlMGRiZjM5YWY1OTU3OGE5
YmMwMC4uZTkzODk5MzRhYWEyNWMzMmY0MGE4N2YzMTg2MzRkYWEyZWE0Y2NhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9h
dDY0QXJyYXkuY3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBW
OEZsb2F0NjRBcnJheTo6d3JhcFNsb3coUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IGltcGwsIHYK
ICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAK
LSAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3cmFwcGVyLklz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4
dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuY3BwCmluZGV4IGE1YjBiZTJlYjk0ZDlmODAyNzNlZDhiOTFhZDNjOTA1ZDQ1Y2RlMWYu
LmZkMmY3OTAxZTkzNjc1YjBiMTE2YzgzOWJmMTBjNjc1MDUwMWQ2NDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xOTYsNyArMTk2LDcgQEAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBWOFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEFj
dGl2ZURPTU8KICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5F
eGl0KCk7CiAKLSAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3
cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA4ZGUwNDI4Zjc0YjYwZTQ1MGFiMGJmNTAyMTU3
ODc3ODlkNGEwNTE2Li4wYjFiM2M3YWEzMzgzYzBkNmIwOGEzOGM5ZmQwZWMzM2RjNGMwYjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTEzMCw3ICsxMzAsNyBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3RDdXN0b21OYQogICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAg
ICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAotICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1w
dHkoKSkpCisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gd3JhcHBl
cjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCBiNmM3MGI5OWNjZTFk
MjRhNzQwM2QxNDJlNTUzOWU3MGJhM2QxOTUxLi5kMzhmYjE2ZjY3ZDY5NzNkYmU4ZTY2ZTQ0ZjY5
Mjk2YzI4ZGYzMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0x
NjcsNyArMTY3LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVudENvbnN0cnVj
dG9yOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFdmVudENvbnMKICAgICBpZiAoIWNvbnRleHQu
SXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAKLSAgICBpZiAoVU5MSUtFTFko
d3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBl
ciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA5ZDlmZDYxYjI4
YWE3YTU5ZTBiNzA2N2M0N2UzYjdhMTc0M2Q5YzljLi5mMjFhOTA5OTViMjE4MjdlYTY1NTg5ODJl
ZGI3NTMzM2E1MDAyMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKQEAgLTUwLDcgKzUw
LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpdGVtQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB7CiAgICAg
RVhDRVBUSU9OX0JMT0NLKGludCwgaW5kZXgsIHRvVUludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpZiAoVU5MSUtFTFkoaW5k
ZXggPCAwKSkgeworICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpF
X0VSUjsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkaXNwYXRjaEV2ZW50Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKICAgICB7CiAgICAgRVhDRVBUSU9OX0JMT0NLKEV2ZW50KiwgZXZ0LCBW
OEV2ZW50OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSA/IFY4RXZlbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpIDogMCk7CiAgICAgYm9vbCByZXN1bHQgPSBpbXAtPmRpc3BhdGNoRXZlbnQoZXZ0LCBl
Yyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICBpZiAoZWMpCiAgICAgICAgIGdvdG8gZmFp
bDsKICAgICByZXR1cm4gdjhCb29sZWFuKHJlc3VsdCwgYXJncy5HZXRJc29sYXRlKCkpOwogICAg
IH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50
VGFyZ2V0Ojp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFdmVudFRhcmdldD4gaQogICAgIGlmICgh
Y29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAotICAgIGlmIChV
TkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGll
cyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggMDdlODgw
Zjc0YmFhZGQ0YjU0ODliYmRjYzhiYmRiMjg5OWM5ZWM5NS4uOTk2NzcyNjE4NGViY2IxOWQ0MTVh
MTEyMmU2MmI2NmE3NTViNTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTEyMSw3ICsx
MjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV4Y2VwdGlvbjo6d3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0RXhjZXB0aW9uPiBpbXBsLAogICAgIGlmICghY29udGV4dC5Jc0VtcHR5
KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAotICAgIGlmIChVTkxJS0VMWSh3cmFwcGVy
LklzRW1wdHkoKSkpCisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
d3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBs
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNmI1NmM5MjhkZTYwYjcwMzJiZWEx
NzlkMzRkYWE0NGJlOGQzZDJiNS4uNmJmYzE2ZWMwOWY5ZWViNzg3NDM4MTg5OGQ0MmQ0NjA3MWJh
ZDc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbE1ldGhvZDJDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcgogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKSA6IDApOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRl
eHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgUmVmUHRyPFRlc3RPYmo+IHJl
c3VsdCA9IFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoc2NyaXB0Q29udGV4
dCwgaW1wLCBzdHJBcmcsIG9iakFyZywgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCisgICAg
aWYgKGVjKQogICAgICAgICBnb3RvIGZhaWw7CiAgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVh
c2UoKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIH0KQEAgLTM2MCw3
ICszNjAsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6d3JhcFNs
b3coUGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNlPiBpbXBsLAogICAgIGlmICghY29udGV4dC5Jc0Vt
cHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAotICAgIGlmIChVTkxJS0VMWSh3cmFw
cGVyLklzRW1wdHkoKSkpCisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBp
bXBsLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAppbmRleCA1M2Q1Zjk5M2YyZTliZGVjNjgzMTgyODA2ODMxZWJlM2ZhNDQwYTlkLi41MDUyMTI1
NmFmMDg0YzYzZmZhOTcyNWVkOTdkZWQ0NThlNDA3OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwU2xvdyhQYXNz
UmVmUHRyPFRlc3RNZWQKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250
ZXh0LT5FeGl0KCk7CiAKLSAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAg
IGlmICh3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2NkOWYyMDA5ZDhhZDc2YzVkYzMxYjdk
ZjM3YjA4YWJjOTBjYmQ4YS4uMTlmNzgzNTFiYTdlYWY4YTE3OTM4MWNlMWRiYjhjNGFjY2MyZWNj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMTcwLDcgKzE3MCw3
IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcFNs
b3coUGFzc1JlZlB0cjxUZXN0TmFtZWRDb25zCiAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkK
ICAgICAgICAgY29udGV4dC0+RXhpdCgpOwogCi0gICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNF
bXB0eSgpKSkKKyAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogCiAgICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5vZGUuY3BwCmluZGV4IDEzZWJjNjVhZTRiZThkZjlhMmI1ZTJiOWViMjYyYTFkOGMz
Y2ZkMGIuLjE0NTc3YmJjM2JhZDZhMTc5MzM4Y2I4MmI0ZWU3YjM5N2I5NzZmOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9k
ZS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5v
ZGU6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE5vZGU+IGltcGwsIHY4OjpIYW5kbAogICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAotICAgIGlm
IChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCisgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVy
dGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggNTU5ZDY2NDMwMWRkNDM1
ZmU1ZDg3ZTJhMzJhN2FkMTE4N2I3OWY0NS4uMjA0OGU1YTA0ZmQ1OTNjZmIwYWIzYzFlNWEyODkz
ZGQ4MzUwZjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTQ0Miw3ICs0NDIsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0ckdldHRlcih2ODo6TG9j
YWw8djg6OlN0cgogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaW50IHYgPSBpbXAtPmF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRl
KCkpOwogICAgIHJldHVybiB2OEludGVnZXIodiwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpAQCAt
NDcwLDcgKzQ3MCw3IEBAIHN0YXRpYyB2b2lkIGF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvCiAgICAgaW50IHYgPSB0b0lu
dDMyKHZhbHVlKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpbXAtPnNldEF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlm
IChlYykKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CiAg
ICAgcmV0dXJuOwogfQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyKHY4OjpMb2NhbDx2
CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTdHJpbmcgdiA9IGltcC0+c3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUo
KSk7CiAgICAgcmV0dXJuIHY4U3RyaW5nKHYsIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KQEAgLTUw
OSw3ICs1MDksNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgU1RSSU5HX1RPX1Y4UEFS
QU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVlKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlmIChlYykKICAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJu
OwogfQpAQCAtNTY1LDcgKzU2NSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0ckdldHRlcih2ODo6TG9jYWw8CiAgICAgaWYg
KCFzdGF0ZSkKICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgUmVmUHRyPFRlc3RP
Ymo+IHYgPSBpbXAtPndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgZWMpOwot
ICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gc2V0RE9N
RXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSwgaW5m
by5HZXRJc29sYXRlKCkpOwpAQCAtNTkzLDcgKzU5Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyR2V0
dGVyCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBSZWZQ
dHI8VGVzdE9iaj4gdiA9IGltcC0+d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVS
YWlzZXMoc2NyaXB0Q29udGV4dCwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUo
KSk7CiAgICAgcmV0dXJuIHRvVjgodi5yZWxlYXNlKCksIGluZm8uSG9sZGVyKCksIGluZm8uR2V0
SXNvbGF0ZSgpKTsKIH0KQEAgLTY0NCw3ICs2NDQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YQogICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIFJl
ZlB0cjxUZXN0T2JqPiB2ID0gaW1wLT53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBzY3JpcHRDb250ZXh0LCBlYyk7Ci0gICAgaWYg
KFVOTElLRUxZKGVjKSkKKyAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRp
b24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElz
b2xhdGUoKSk7CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NDYWxsYmFjayhjb25zdCB2OAog
ICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwg
c3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpI
YXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkg
OiAwKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5tZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZ
KGVjKSkKKyAgICBpZiAoZWMpCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICByZXR1cm4gdG9WOChy
ZXN1bHQucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAg
fQpAQCAtMTE4Nyw3ICsxMTg3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRo
b2RXaXRoRXhjZXB0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKICAgICB7CiAgICAgaW1wLT5tZXRob2RXaXRoRXhjZXB0aW9uKGVj
KTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlmIChlYykKICAgICAgICAgZ290byBmYWls
OwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogICAgIH0KQEAgLTEyNDcsNyArMTI0Nyw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlv
bkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1CiAgICAgewogICAgIEVtcHR5U2NyaXB0U3RhdGUgc3Rh
dGU7CiAgICAgaW1wLT53aXRoU2NyaXB0U3RhdGVWb2lkRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwot
ICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgaWYgKGVjKQogICAgICAgICBnb3RvIGZhaWw7CiAg
ICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihz
dGF0ZS5leGNlcHRpb24oKSwgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMTI2NSw3ICsxMjY1LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRp
b25DYWxsYmFjayhjb25zdCB2ODo6QXJndW0KICAgICB7CiAgICAgRW1wdHlTY3JpcHRTdGF0ZSBz
dGF0ZTsKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT53aXRoU2NyaXB0U3RhdGVP
YmpFeGNlcHRpb24oJnN0YXRlLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICBpZiAo
ZWMpCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBhcmdzLkdldElzb2xh
dGUoKSk7CkBAIC0xMzA1LDcgKzEzMDUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpbwogICAg
IEVtcHR5U2NyaXB0U3RhdGUgc3RhdGU7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBSZWZQdHI8VGVz
dE9iaj4gcmVzdWx0ID0gaW1wLT53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlT2JqRXhjZXB0aW9uKCZzdGF0ZSwgc2NyaXB0Q29udGV4dCwgZWMpOwotICAgIGlmIChVTkxJ
S0VMWShlYykpCisgICAgaWYgKGVjKQogICAgICAgICBnb3RvIGZhaWw7CiAgICAgaWYgKHN0YXRl
LmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRp
b24oKSwgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMTc4OCw3ICsxNzg4LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJpbmdBcnJheUZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXIKICAgICB7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxET01TdHJp
bmdMaXN0PiwgdmFsdWVzLCB0b0RPTVN0cmluZ0xpc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFJlZlB0cjxET01TdHJpbmdMaXN0
PiByZXN1bHQgPSBpbXAtPnN0cmluZ0FycmF5RnVuY3Rpb24odmFsdWVzLCBlYyk7Ci0gICAgaWYg
KFVOTElLRUxZKGVjKSkKKyAgICBpZiAoZWMpCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICByZXR1
cm4gdjhBcnJheShyZXN1bHQucmVsZWFzZSgpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfQpA
QCAtMTgwNSw3ICsxODA1LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRTVkdE
b2N1bWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKCFCaW5k
aW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKEJpbmRpbmdTdGF0ZTo6aW5zdGFu
Y2UoKSwgaW1wLT5nZXRTVkdEb2N1bWVudChlYykpKQogICAgICAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KHY4OjpOdWxsKGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgUmVmUHRyPFNW
R0RvY3VtZW50PiByZXN1bHQgPSBpbXAtPmdldFNWR0RvY3VtZW50KGVjKTsKLSAgICBpZiAoVU5M
SUtFTFkoZWMpKQorICAgIGlmIChlYykKICAgICAgICAgZ290byBmYWlsOwogICAgIHJldHVybiB0
b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICB9CkBAIC0xODkxLDcgKzE4OTEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHN0cmljdEZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBF
WENFUFRJT05fQkxPQ0soZmxvYXQsIGEsIHN0YXRpY19jYXN0PGZsb2F0PihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLT5OdW1iZXJWYWx1ZSgpKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgYiwgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgUmVmUHRyPGJvb2w+IHJl
c3VsdCA9IGltcC0+c3RyaWN0RnVuY3Rpb24oc3RyLCBhLCBiLCBlYyk7Ci0gICAgaWYgKFVOTElL
RUxZKGVjKSkKKyAgICBpZiAoZWMpCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICByZXR1cm4gdG9W
OChyZXN1bHQucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAg
ICAgfQpAQCAtMjM3Myw3ICsyMzczLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RP
Ymo6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE9iaj4gaW1wbCwgdjg6OkhhbmRsZTwKICAgICBp
ZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAKLSAgICBp
ZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3cmFwcGVyLklzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3Bl
cnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDljNmYzNmI4MGI3ZGMxYjhh
MDZjMGU3NDM5MWE3NzYxOTU2NTQ2NDMuLjQ2ZmQ4NmZmMTBkOWMyYWI3YjE5Yjk2YWFlNzhlMjlh
MDc3MzdjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXBTbG93KFBhc3NS
ZWZQdHIKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0
KCk7CiAKLSAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQorICAgIGlmICh3cmFw
cGVyLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVy
Q29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcAppbmRleCA4MzljNDM5NzQzOTVkY2JlYzg1ZWNl
ZjAyODMxMzhlY2U5YWRkYmZkLi5jYmMxMjVjNzFlOTA3MjFhZDQ5M2FmOWY0YTdjM2FmZDJiZWVi
OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAKQEAg
LTU1LDEwICs1NSwxMCBAQCBET01EYXRhU3RvcmUqIERPTURhdGFTdG9yZTo6Y3VycmVudCh2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERPTURhdGFTdG9y
ZSwgbWFpbldvcmxkRE9NRGF0YVN0b3JlLCAoTWFpbldvcmxkKSk7CiAgICAgVjhQZXJJc29sYXRl
RGF0YSogZGF0YSA9IGlzb2xhdGUgPyBWOFBlcklzb2xhdGVEYXRhOjpmcm9tKGlzb2xhdGUpIDog
VjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOwotICAgIGlmIChVTkxJS0VMWSghIWRhdGEtPmRv
bURhdGFTdG9yZSgpKSkKKyAgICBpZiAoISFkYXRhLT5kb21EYXRhU3RvcmUoKSkKICAgICAgICAg
cmV0dXJuIGRhdGEtPmRvbURhdGFTdG9yZSgpOwogICAgIFY4RE9NV2luZG93U2hlbGwqIGNvbnRl
eHQgPSBWOERPTVdpbmRvd1NoZWxsOjpnZXRFbnRlcmVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKCEh
Y29udGV4dCkpCisgICAgaWYgKCEhY29udGV4dCkKICAgICAgICAgcmV0dXJuIGNvbnRleHQtPndv
cmxkKCktPmlzb2xhdGVkV29ybGRET01EYXRhU3RvcmUoKTsKICAgICByZXR1cm4gJm1haW5Xb3Js
ZERPTURhdGFTdG9yZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggYjUzMDZiYTY3NjI5NDhjYTc4MTBiNThmOTljNThmYzg2ODEz
ODg4YS4uMDRhYmNiYTZhZmMwYTk2OTAzY2ZkNmI1MzhjNzgzYjdkZGI4NDQzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM4MSw3
ICszODEsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Jc29sYXRlZFdvcmxk
KGludCB3b3JsZElELCBjb25zdCBWZWN0b3I8U2NyaXB0UwogewogICAgIC8vIEV4Y2VwdCBpbiB0
aGUgdGVzdCBydW5uZXIsIHdvcmxkSUQgc2hvdWxkIGJlIG5vbiAwIGFzIGl0IGNvbmZsaWN0cyB3
aXRoIHRoZSBtYWluV29ybGRJZC4KICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoZSB0ZXN0IHJ1bm5l
ciB0byBwZXJmb3JtIHRoaXMgc3dhcCBhbmQgbWFrZSB0aGlzIGFuIEFTU0VSVC4KLSAgICBpZiAo
VU5MSUtFTFkoIXdvcmxkSUQpKQorICAgIGlmICghd29ybGRJRCkKICAgICAgICAgd29ybGRJRCA9
IERPTVdyYXBwZXJXb3JsZDo6dW5pbml0aWFsaXplZFdvcmxkSWQ7CiAKICAgICB2ODo6SGFuZGxl
U2NvcGUgaGFuZGxlU2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNw
cAppbmRleCA2ZTkzMDc5OGUyMTI4OGQ4YWViOTRkYTIzMDVjNDU4NTBhM2U0MjIwLi45Y2I2MTdl
Y2I3MmJmNDliYjQyNzYzNDAwN2I0MGM0NzQyZjg5NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5jcHAKQEAgLTMyMSw3ICszMjEsNyBAQCB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+IHRvVjhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFdvcmxkQwogVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERhdGFGb3JDdXJyZW50V29ybGQo
RnJhbWUqIGZyYW1lKQogewogICAgIFY4RE9NV2luZG93U2hlbGwqIGlzb2xhdGVkU2hlbGw7Ci0g
ICAgaWYgKFVOTElLRUxZKCEhKGlzb2xhdGVkU2hlbGwgPSBWOERPTVdpbmRvd1NoZWxsOjpnZXRF
bnRlcmVkKCkpKSkKKyAgICBpZiAoISEoaXNvbGF0ZWRTaGVsbCA9IFY4RE9NV2luZG93U2hlbGw6
OmdldEVudGVyZWQoKSkpCiAgICAgICAgIHJldHVybiBpc29sYXRlZFNoZWxsLT5wZXJDb250ZXh0
RGF0YSgpOwogICAgIFY4RE9NV2luZG93U2hlbGwqIG1haW5TaGVsbCA9IGZyYW1lLT5zY3JpcHQo
KS0+ZXhpc3RpbmdXaW5kb3dTaGVsbChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgcmV0
dXJuIG1haW5TaGVsbCA/IG1haW5TaGVsbC0+cGVyQ29udGV4dERhdGEoKSA6IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JsZENvbnRleHRIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmNwcAppbmRleCAz
NGI5YzE5YmY1OTgwODUxZjJmMjZiMmZiYTNjYjRlNzM4MjY1OWY5Li4yNmUzZDNkZmJmYmRiMjE5
NTk5OTRiMDA3MzQxMGNhNTNhZDAzYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JsZENvbnRleHRIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmxkQ29udGV4dEhhbmRsZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgV29ybGRDb250
ZXh0SGFuZGxlOjpXb3JsZENvbnRleHRIYW5kbGUoV29ybGRUb1VzZSB3b3JsZFRvVXNlKQogICAg
IGlmICh2ODo6Q29udGV4dDo6SW5Db250ZXh0KCkpIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gY29udGV4dCA9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCk7CiAgICAgICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghVjhET01X
cmFwcGVyOjppc1dyYXBwZXJPZlR5cGUodG9Jbm5lckdsb2JhbE9iamVjdChjb250ZXh0KSwgJlY4
RE9NV2luZG93OjppbmZvKSkpIHsKKyAgICAgICAgICAgIGlmICghVjhET01XcmFwcGVyOjppc1dy
YXBwZXJPZlR5cGUodG9Jbm5lckdsb2JhbE9iamVjdChjb250ZXh0KSwgJlY4RE9NV2luZG93Ojpp
bmZvKSkgewogICAgICAgICAgICAgICAgIG1fd29ybGRUb1VzZSA9IFVzZVdvcmtlcldvcmxkOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTU4LDcgKzU4LDcgQEAg
V29ybGRDb250ZXh0SGFuZGxlOjpXb3JsZENvbnRleHRIYW5kbGUoV29ybGRUb1VzZSB3b3JsZFRv
VXNlKQogI2VuZGlmCiAKICAgICBWOERPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IFY4RE9NV2luZG93
U2hlbGw6OmdldEVudGVyZWQoKTsKLSAgICBpZiAoTElLRUxZKCFzaGVsbCkpIHsKKyAgICBpZiAo
IXNoZWxsKSB7CiAgICAgICAgIG1fd29ybGRUb1VzZSA9IFVzZU1haW5Xb3JsZDsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCA2ZGU5Y2U4ZTJkYzM1YzUxNjlhM2RlY2I4
ZmNlYzE2ODQ3Mjc5NTc5Li5jMzJjNjI2OWM4YTczNzRmZmViZmZmMWMxZDk3MjU5MDgzMmM4MDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmll
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0
YVZpZXdDdXN0b20uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5
dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKICAgICBpbnQ4X3QgcmVzdWx0ID0gaW1wLT5n
ZXRJbnQ4KGJ5dGVPZmZzZXQsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIHJldHVybiB2OEludGVnZXIocmVzdWx0LCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CkBA
IC04OCw3ICs4OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRVaW50
OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQz
MihhcmdzWzBdKSk7CiAgICAgdWludDhfdCByZXN1bHQgPSBpbXAtPmdldFVpbnQ4KGJ5dGVPZmZz
ZXQsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybiB2
OEludGVnZXIocmVzdWx0LCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CkBAIC0xMDQsNyArMTA0LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OnNldEludDhDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNpZ25lZCwgYnl0
ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIHZh
bHVlLCB0b0ludDMyKGFyZ3NbMV0pKTsKICAgICBpbXAtPnNldEludDgoYnl0ZU9mZnNldCwgc3Rh
dGljX2Nhc3Q8aW50OF90Pih2YWx1ZSksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29s
YXRlKCkpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtMTIwLDcgKzEyMCw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpzZXRVaW50OENhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRl
T2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgdmFs
dWUsIHRvSW50MzIoYXJnc1sxXSkpOwogICAgIGltcC0+c2V0VWludDgoYnl0ZU9mZnNldCwgc3Rh
dGljX2Nhc3Q8dWludDhfdD4odmFsdWUpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKKyAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA3
ODMzZWE0YmM3YjIwYWQzZGE0NTVjY2MzYzkwZjlhMjdmOWY2ZjE2Li42NDRmMzc5NWM0ODE0NDk1
MzEyMjg4ZDljODYxNDliNTU1NTFkMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCkBAIC0xMjgsNyArMTI4LDcg
QEAgdm9pZCBWOExvY2F0aW9uOjpwcm90b2NvbEFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djgKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwog
ICAgIGltcGwtPnNldFByb3RvY29sKHByb3RvY29sLCBhY3RpdmVET01XaW5kb3coc3RhdGUpLCBm
aXJzdERPTVdpbmRvdyhzdGF0ZSksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlm
IChlYykKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNWR0xl
bmd0aEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdM
ZW5ndGhDdXN0b20uY3BwCmluZGV4IGY0OTRhZGNiMDViMGZkOTFlNGI2MjczM2NiNmQzYzM1YzIw
ZjJkNTcuLmJkNDJhMzBhYmMzMDMzZTExZmYwNjNmMDQyNjAyMDY5OWYzYmExMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNWR0xlbmd0aEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHTGVuZ3RoQ3Vz
dG9tLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTVkdMZW5n
dGg6OnZhbHVlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbQogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCh3
cmFwcGVyLT5jb250ZXh0RWxlbWVudCgpKTsKICAgICBmbG9hdCB2YWx1ZSA9IGltcC52YWx1ZShs
ZW5ndGhDb250ZXh0LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAg
ICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHZhbHVlKTsKIH0KQEAgLTcxLDcgKzcxLDcgQEAgdm9p
ZCBWOFNWR0xlbmd0aDo6dmFsdWVBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjoKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTVkdM
ZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQod3JhcHBlci0+Y29udGV4dEVsZW1lbnQoKSk7CiAg
ICAgaW1wLnNldFZhbHVlKHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUoKSks
IGxlbmd0aENvbnRleHQsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgIGlmIChlYykK
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgZWxz
ZQogICAgICAgICB3cmFwcGVyLT5jb21taXRDaGFuZ2UoKTsKQEAgLTkyLDcgKzkyLDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0c0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmcKICAgICBFWENFUFRJT05fQkxPQ0soaW50LCB1bml0VHlwZSwg
dG9VSW50MzIoYXJnc1swXSkpOwogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCh3
cmFwcGVyLT5jb250ZXh0RWxlbWVudCgpKTsKICAgICBpbXAuY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5pdFR5cGUsIGxlbmd0aENvbnRleHQsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQor
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJ
c29sYXRlKCkpOwogCiAgICAgd3JhcHBlci0+Y29tbWl0Q2hhbmdlKCk7Cg==
</data>
<flag name="review"
          id="188383"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>