<?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>120078</bug_id>
          
          <creation_ts>2013-08-20 12:45:01 -0700</creation_ts>
          <short_desc>Replace NodeRenderingContext with RenderStyle&amp; as rendererIsNeeded() argument</short_desc>
          <delta_ts>2013-09-16 11:27: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>DOM</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>
          <dependson>120094</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>919171</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-20 12:45:01 -0700</bug_when>
    <thetext>Simplify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919173</commentid>
    <comment_count>1</comment_count>
      <attachid>209219</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-20 12:51:11 -0700</bug_when>
    <thetext>Created attachment 209219
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919223</commentid>
    <comment_count>2</comment_count>
      <attachid>209219</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-20 14:10:35 -0700</bug_when>
    <thetext>Comment on attachment 209219
patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:558
&gt; +    return controls() ? HTMLElement::rendererIsNeeded(style) : false;

I like &amp;&amp; better than ? : for cases like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919234</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-20 14:27:06 -0700</bug_when>
    <thetext>https://trac.webkit.org/r154358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919251</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-20 15:09:19 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 120094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919275</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-20 16:01:20 -0700</bug_when>
    <thetext>The bot is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929827</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2013-09-16 11:27:21 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; https://trac.webkit.org/r154358

Substituted &quot;style&quot; for &quot;context&quot; in the call to UNUSED_PARAM() in HTMLMediaElement::rendererIsNeeded() to fix the build for ports that enable PLUGIN_PROXY_FOR_VIDEO, such as iOS WebKit, and committed this change in &lt;http://trac.webkit.org/changeset/155887&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209219</attachid>
            <date>2013-08-20 12:51:11 -0700</date>
            <delta_ts>2013-08-20 14:10:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>shouldCreateRenderer-style.patch</filename>
            <type>text/plain</type>
            <size>54565</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDM1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwOSBAQAorMjAxMy0wOC0yMCAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzEyMDA3OD4gUmVwbGFjZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB3aXRoIFJlbmRlclN0eWxl
JiBhcyBzaG91bGRDcmVhdGVSZW5kZXJlcigpIGFyZ3VtZW50CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBzaW1wbGlmaWVzIHRoZSBjb2RlLiBO
b2RlUmVuZGVyaW5nQ29udGV4dCB3YXMgb25seSB1c2VkIGZvciBnZXR0aW5nIHRoZSBSZW5kZXJT
dHlsZS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSZW5kZXJpbmdDb250ZXh0OjplbGVtZW50SW5zaWRlUmVnaW9uTmVlZHNSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JF
bGVtZW50SWZOZWVkZWQpOgorICAgICAgICAqIGRvbS9Qc2V1ZG9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAq
IGRvbS9Qc2V1ZG9FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZCk6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxG
b3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNl
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSUZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2Jq
ZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGV0YWlsc01hcmtlckNvbnRyb2w6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5z
ZXJ0aW9uUG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OnJlbmRl
cmVySXNOZWVkZWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1ldGVyU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZXRlcklubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cv
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzU2hh
ZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c0lubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Rlc2NFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhSZWZFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0hLZXJuRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTVkdFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTdG9wRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogc3ZnL1NW
R1N0b3BFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAg
ICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
U3BhbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFNwYW5FbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKToKKyAgICAgICAgKiBzdmcvU1ZHVFNwYW5FbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
UGF0aEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0
aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR1ZLZXJuRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5oOgor
CiAyMDEzLTA4LTIwICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXggYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1NDI2
MD4gKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTk0OSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTQzMjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNDIsOSArMTI0Miw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
RWxlbWVudDo6aW1hZ2VTb3VyY2UKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHNyY0F0dHIpOwog
fQogCi1ib29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmIGNvbnRleHQpCitib29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogewotICAgIHJldHVybiBjb250ZXh0LnN0eWxlKCktPmRpc3BsYXko
KSAhPSBOT05FOworICAgIHJldHVybiBzdHlsZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0KIAogUmVu
ZGVyT2JqZWN0KiBFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKiBzdHlsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAxLDcgKzMw
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxhenlSZWF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9
IFNldEF0dGFjaGVkKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgZGlkQWZmZWN0
U2VsZWN0b3IoQWZmZWN0ZWRTZWxlY3Rvck1hc2spOwogCiAgICAgU2hhZG93Um9vdCogc2hhZG93
Um9vdCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCShyZXZpc2lvbiAxNTQzMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDcgQEAgYm9v
bCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6ZWxlbWVudEluc2lkZQogICAgICAgICBlbGVtZW50SW5z
aWRlUmVnaW9uTmVlZHNSZW5kZXJlciA9IGVsZW1lbnQtPnNob3VsZE1vdmVUb0Zsb3dUaHJlYWQo
bV9zdHlsZS5nZXQoKSk7CiAKICAgICAgICAgLy8gQ2hpbGRyZW4gb2YgdGhpcyBlbGVtZW50IHdp
bGwgb25seSBiZSBhbGxvd2VkIHRvIGJlIGZsb3dlZCBpbnRvIG90aGVyIGZsb3ctdGhyZWFkcyBp
ZiBkaXNwbGF5IGlzIE5PVCBub25lLgotICAgICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXJJc05l
ZWRlZCgqdGhpcykpCisgICAgICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcklzTmVlZGVkKCptX3N0
eWxlKSkKICAgICAgICAgICAgIGVsZW1lbnQtPnNldElzSW5zaWRlUmVnaW9uKHRydWUpOwogICAg
IH0KICNlbmRpZgpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6
OmNyZWF0ZVJlbmRlcmUKIAogICAgIG1vdmVUb0Zsb3dUaHJlYWRJZk5lZWRlZCgpOwogCi0gICAg
aWYgKCFlbGVtZW50LT5yZW5kZXJlcklzTmVlZGVkKCp0aGlzKSkKKyAgICBpZiAoIWVsZW1lbnQt
PnJlbmRlcmVySXNOZWVkZWQoKm1fc3R5bGUpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZW5k
ZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gdGhpcy0+cGFyZW50UmVuZGVyZXIoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcs
OSArOTcsOSBAQCB2b2lkIFBzZXVkb0VsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCiAgICAg
fQogfQogCi1ib29sIFBzZXVkb0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCitib29sIFBzZXVkb0VsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIHJldHVybiBwc2V1ZG9FbGVt
ZW50UmVuZGVyZXJJc05lZWRlZChjb250ZXh0LnN0eWxlKCkpOworICAgIHJldHVybiBwc2V1ZG9F
bGVtZW50UmVuZGVyZXJJc05lZWRlZCgmc3R5bGUpOwogfQogCiB2b2lkIFBzZXVkb0VsZW1lbnQ6
OmRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
UHNldWRvRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9F
bGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9F
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKIAogICAgIC8vIEFzIHBlciBodHRwOi8vZGV2Lncz
Lm9yZy9jc3N3Zy9jc3MzLXJlZ2lvbnMvI2Zsb3ctaW50bywgcHNldWRvLWVsZW1lbnRzIHN1Y2gg
YXMgOjpmaXJzdC1saW5lLCA6OmZpcnN0LWxldHRlciwgOjpiZWZvcmUgb3IgOjphZnRlcgogICAg
IC8vIGNhbm5vdCBiZSBkaXJlY3RseSBjb2xsZWN0ZWQgaW50byBhIG5hbWVkIGZsb3cuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0
MzE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY3LDExICs2NywxMSBAQCB2b2lkIEhUTUxBcHBsZXRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogfQogCi1ib29sIEhUTUxBcHBsZXRFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBIVE1MQXBwbGV0
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAg
ICAgaWYgKCFmYXN0SGFzQXR0cmlidXRlKGNvZGVBdHRyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNv
bnRleHQpOworICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKHN0eWxlKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MQXBwbGV0RWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSogc3R5bGUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDcgKzM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAg
Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7CiAKICAgICB2
aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
NDksNyArNzQ5LDcgQEAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTEVsZW1lbnQ6Ogog
ICAgIHJldHVybiBlbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbihOb2RlQ2hpbGRyZW4pOwogfQog
Ci1ib29sIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JiBjb250ZXh0KQorYm9vbCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgaWYgKGhhc0xvY2FsTmFtZShub3NjcmlwdFRh
ZykpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKQEAgLTc2
MCw3ICs3NjAsNyBAQCBib29sIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0CiAg
ICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS0+YWxs
b3dQbHVnaW5zKE5vdEFib3V0VG9JbnN0YW50aWF0ZVBsdWdpbikpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnRleHQpOworICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KHN0eWxlKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgog
CiAgICAgYm9vbCBpZUZvcmJpZHNJbnNlcnRIVE1MKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKIAogICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1
YWxGb3JtKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDEwICsxNzAsMTAgQEAgdm9pZCBIVE1MRW1i
ZWRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1ZwogICAgIGxvYWRlci0+cmVxdWVzdE9iamVjdCh0
aGlzLCBtX3VybCwgZ2V0TmFtZUF0dHJpYnV0ZSgpLCBtX3NlcnZpY2VUeXBlLCBwYXJhbU5hbWVz
LCBwYXJhbVZhbHVlcyk7CiB9CiAKLWJvb2wgSFRNTEVtYmVkRWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK2Jvb2wgSFRNTEVtYmVk
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAg
ICAgaWYgKGlzSW1hZ2VUeXBlKCkpCi0gICAgICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAgICAgICByZXR1cm4gSFRNTFBsdWdJ
bkltYWdlRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiAKICAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCkBAIC0xOTYsNyArMTk2
LDcgQEAgYm9vbCBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgogCi0gICAgcmV0dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CisgICAgcmV0dXJuIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCiBib29sIEhUTUxFbWJlZEVsZW1l
bnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dCopIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
Tm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gMTU0MzE2KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
NSwxMCArOTUsMTAgQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OmZvcm1Xb3VsZEhhdmVTZWN1cgog
ICAgIHJldHVybiBkb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpLnByb3RvY29sSXMoImh0dHBz
Iik7CiB9CiAKLWJvb2wgSFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5v
ZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGlmICghbV93YXNE
ZW1vdGVkKQotICAgICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29u
dGV4dCk7CisgICAgICAgIHJldHVybiBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHls
ZSk7CiAKICAgICBDb250YWluZXJOb2RlKiBub2RlID0gcGFyZW50Tm9kZSgpOwogICAgIFJlbmRl
ck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwpAQCAtMTEyLDcgKzEx
Miw3IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGMKICAgICBpZiAo
IXBhcmVudElzVGFibGVFbGVtZW50UGFydCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBF
RGlzcGxheSBkaXNwbGF5ID0gY29udGV4dC5zdHlsZSgpLT5kaXNwbGF5KCk7CisgICAgRURpc3Bs
YXkgZGlzcGxheSA9IHN0eWxlLmRpc3BsYXkoKTsKICAgICBib29sIGZvcm1Jc1RhYmxlUGFydCA9
IGRpc3BsYXkgPT0gVEFCTEUgfHwgZGlzcGxheSA9PSBJTkxJTkVfVEFCTEUgfHwgZGlzcGxheSA9
PSBUQUJMRV9ST1dfR1JPVVAKICAgICAgICAgfHwgZGlzcGxheSA9PSBUQUJMRV9IRUFERVJfR1JP
VVAgfHwgZGlzcGxheSA9PSBUQUJMRV9GT09URVJfR1JPVVAgfHwgZGlzcGxheSA9PSBUQUJMRV9S
T1cKICAgICAgICAgfHwgZGlzcGxheSA9PSBUQUJMRV9DT0xVTU5fR1JPVVAgfHwgZGlzcGxheSA9
PSBUQUJMRV9DT0xVTU4gfHwgZGlzcGxheSA9PSBUQUJMRV9DRUxMCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBPVkVSUklERTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0MzI2KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDgsNyArNDgsNyBAQCBQYXNzUmVmUHRyPEhUTUxGcmFtZUVsZW1lbnQ+IEhUTUxGcmFt
ZUVsCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRnJhbWVFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKLWJvb2wgSFRNTEZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpCitib29sIEhUTUxGcmFtZUVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKQogewogICAgIC8vIEZvciBjb21wYXRpYmls
aXR5LCBmcmFtZXMgcmVuZGVyIGV2ZW4gd2hlbiBkaXNwbGF5OiBub25lIGlzIHNldC4KICAgICBy
ZXR1cm4gaXNVUkxBbGxvd2VkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7
CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsK
ICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBS
ZW5kZXJTdHlsZSopOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NDMyNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0OSwxMSArMTQ5LDExIEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIAotYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBIVE1MRnJhbWVT
ZXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsK
ICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgZnJhbWVzIHJlbmRlciBldmVuIHdoZW4gZGlzcGxh
eTogbm9uZSBpcyBzZXQuCiAgICAgLy8gSG93ZXZlciwgd2UgZGVsYXkgY3JlYXRpbmcgYSByZW5k
ZXJlciB1bnRpbCBzdHlsZXNoZWV0cyBoYXZlIGxvYWRlZC4gCi0gICAgcmV0dXJuIGNvbnRleHQu
c3R5bGUoKS0+aXNTdHlsZUF2YWlsYWJsZSgpOworICAgIHJldHVybiBzdHlsZS5pc1N0eWxlQXZh
aWxhYmxlKCk7CiB9CiAKIFJlbmRlck9iamVjdCAqSFRNTEZyYW1lU2V0RWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBSZW5kZXJTdHlsZSAqc3R5bGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkocmV2aXNpb24gMTU0MzI2
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOwogCiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwor
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAg
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVu
ZGVyU3R5bGUqKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw5ICs5MSw5IEBAIHZvaWQgSFRNTElGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGMKICAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6
cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK2Jv
b2wgSFRNTElGcmFtZUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlKQogewotICAgIHJldHVybiBpc1VSTEFsbG93ZWQoKSAmJiBjb250ZXh0LnN0eWxlKCkt
PmRpc3BsYXkoKSAhPSBOT05FOworICAgIHJldHVybiBpc1VSTEFsbG93ZWQoKSAmJiBzdHlsZS5k
aXNwbGF5KCkgIT0gTk9ORTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MSUZyYW1lRWxlbWVudDo6
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0
KikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBO
b2RlUmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzg2
LDkgKzc4Niw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWwKICAg
ICB9CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBO
b2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG1f
aW5wdXRUeXBlLT5yZW5kZXJlcklzTmVlZGVkKCkgJiYgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5y
ZW5kZXJlcklzTmVlZGVkKCkgJiYgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoc3R5bGUpOwogfQogCiBSZW5kZXJPYmplY3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0aW9u
KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2Rl
UmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0
dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5k
ZXJlcnMoKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWwKICNlbmRpZgogfQogCi1ib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQm
IGNvbnRleHQpCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQogewogI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVP
KQogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKQEAgLTU1NSw3ICs1NTUsNyBAQCBib29sIEhU
TUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoCiAKICAgICByZXR1cm4gdHJ1ZTsKICNl
bHNlCi0gICAgcmV0dXJuIGNvbnRyb2xzKCkgPyBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChjb250ZXh0KSA6IGZhbHNlOworICAgIHJldHVybiBjb250cm9scygpID8gSFRNTEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpIDogZmFsc2U7CiAjZW5kaWYKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MzIsNyArNDMyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNM
b2dpYygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2Rl
UmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsMTQg
KzMyNCwxNCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1CiAgICAg
ICAgIHJlbmRlckZhbGxiYWNrQ29udGVudCgpOwogfQogCi1ib29sIEhUTUxPYmplY3RFbGVtZW50
OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQor
Ym9vbCBIVE1MT2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgc2hvdWxkIG5vdCBiZSBuZWVk
ZWQsIGRldGFjaGVkIGRvY3VtZW50cyBuZXZlciByZW5kZXIhCiAgICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChjb250ZXh0KTsKKyAgICByZXR1cm4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZChzdHlsZSk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
SFRNTE9iamVjdEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Q
b2ludCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgJKHJldmlz
aW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSopIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlKikgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERv
Y3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5n
ZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgJKHJldmlzaW9u
IDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBpc0ZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmlu
Z0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBA
IHByaXZhdGU6CiAgICAgSFRNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5n
Q29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bERldGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDkg
QEAgUGFzc1JlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiBIVE1MVmlkZW9FbAogICAgIHJldHVybiB2
aWRlb0VsZW1lbnQucmVsZWFzZSgpOwogfQogCi1ib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpIAorYm9vbCBI
VE1MVmlkZW9FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkgCiB7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQp
OyAKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyAKIH0K
IAogI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxWaWRlb0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAjaWYgIUVOQUJMRShQTFVHSU5f
UFJPWFlfRk9SX1ZJREVPKQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAJKHJldmlz
aW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBAQCBSZW5kZXJPYmplY3Qq
IERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
ckRldGFpbHNNYXJrZXIodGhpcyk7CiB9CiAKLWJvb2wgRGV0YWlsc01hcmtlckNvbnRyb2w6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCitib29s
IERldGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSkKIHsKLSAgICByZXR1cm4gc3VtbWFyeUVsZW1lbnQoKS0+aXNNYWluU3VtbWFyeSgp
ICYmIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAgIHJldHVy
biBzdW1tYXJ5RWxlbWVudCgpLT5pc01haW5TdW1tYXJ5KCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIERldGFpbHNN
YXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgJKHJldmlzaW9uIDE1
NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9s
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKik7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OwogCiAgICAgSFRNTFN1bW1hcnlFbGVtZW50KiBzdW1tYXJ5RWxl
bWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBv
aW50LmNwcAkocmV2aXNpb24gMTU0MzI3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SW5zZXJ0aW9uUG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgYm9v
bCBJbnNlcnRpb25Qb2ludDo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIEluc2VydGlvblBvaW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJp
bmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBJbnNlcnRpb25Qb2ludDo6cmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0gICAgcmV0dXJuICFpc1NoYWRvd0JvdW5k
YXJ5KCkgJiYgSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CisgICAgcmV0
dXJuICFpc1NoYWRvd0JvdW5kYXJ5KCkgJiYgSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQo
c3R5bGUpOwogfQogCiB2b2lkIEluc2VydGlvblBvaW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBj
aGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGlu
dCBjaGlsZENvdW50RGVsdGEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNl
cnRpb25Qb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0lu
c2VydGlvblBvaW50LmgJKHJldmlzaW9uIDE1NDMyNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0luc2VydGlvblBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0aW9uUG9pbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNo
YW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29u
dGFpbmVyTm9kZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250
YWluZXJOb2RlKikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDEwICs1NCwxMCBAQCBIVE1MTWV0ZXJFbGVtZW50KiBNZXRlclNoYWRvd0VsZW1l
bnQ6Om1lCiAgICAgcmV0dXJuIHRvSFRNTE1ldGVyRWxlbWVudChzaGFkb3dIb3N0KCkpOwogfQog
Ci1ib29sIE1ldGVyU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK2Jvb2wgTWV0ZXJTaGFkb3dFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBSZW5kZXJPYmplY3Qq
IHJlbmRlciA9IG1ldGVyRWxlbWVudCgpLT5yZW5kZXJlcigpOwotICAgIHJldHVybiByZW5kZXIg
JiYgIXJlbmRlci0+dGhlbWUoKS0+c3VwcG9ydHNNZXRlcihyZW5kZXItPnN0eWxlKCktPmFwcGVh
cmFuY2UoKSkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7Cisg
ICAgcmV0dXJuIHJlbmRlciAmJiAhcmVuZGVyLT50aGVtZSgpLT5zdXBwb3J0c01ldGVyKHJlbmRl
ci0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpKSAmJiBIVE1MRGl2RWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChzdHlsZSk7CiB9CiAKIE1ldGVySW5uZXJFbGVtZW50OjpNZXRlcklubmVyRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCkBAIC02NywxMyArNjcsMTMgQEAgTWV0ZXJJbm5lckVsZW1lbnQ6
Ok1ldGVySW5uZXJFbGVtZW50KERvYwogICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiB9CiAKLWJv
b2wgTWV0ZXJJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmlu
Z0NvbnRleHQmIGNvbnRleHQpCitib29sIE1ldGVySW5uZXJFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBpZiAobWV0ZXJFbGVtZW50KCkt
Pmhhc0F1dGhvclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAgICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXIgPSBt
ZXRlckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gcmVuZGVyICYmICFyZW5kZXIt
PnRoZW1lKCktPnN1cHBvcnRzTWV0ZXIocmVuZGVyLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkpICYm
IEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAgIHJldHVybiBy
ZW5kZXIgJiYgIXJlbmRlci0+dGhlbWUoKS0+c3VwcG9ydHNNZXRlcihyZW5kZXItPnN0eWxlKCkt
PmFwcGVhcmFuY2UoKSkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUp
OwogfQogCiBSZW5kZXJPYmplY3QqIE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgSFRNTE1ldGVyRWxlbWVudCog
bWV0ZXJFbGVtZW50KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgTWV0
ZXJJbm5lckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWV0ZXJTaGFkb3dFbGVtZW50IHsKQEAgLTU2
LDcgKzU2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZXRlcklubmVyRWxlbWVudChEb2N1
bWVudCopOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7
CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUwLDEwICs1MCwxMCBAQCBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBQcm9ncmVzc1NoYWRvd0VsZW1l
CiAgICAgcmV0dXJuIHRvSFRNTFByb2dyZXNzRWxlbWVudChzaGFkb3dIb3N0KCkpOwogfQogCi1i
b29sIFByb2dyZXNzU2hhZG93RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK2Jvb2wgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICBSZW5kZXJPYmpl
Y3QqIHByb2dyZXNzUmVuZGVyZXIgPSBwcm9ncmVzc0VsZW1lbnQoKS0+cmVuZGVyZXIoKTsKLSAg
ICByZXR1cm4gcHJvZ3Jlc3NSZW5kZXJlciAmJiAhcHJvZ3Jlc3NSZW5kZXJlci0+c3R5bGUoKS0+
aGFzQXBwZWFyYW5jZSgpICYmIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRl
eHQpOworICAgIHJldHVybiBwcm9ncmVzc1JlbmRlcmVyICYmICFwcm9ncmVzc1JlbmRlcmVyLT5z
dHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpOwogfQogCiBQcm9ncmVzc0lubmVyRWxlbWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNjYsMTMgKzY2LDEzIEBAIFJlbmRlck9iamVjdCog
UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWEKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
UHJvZ3Jlc3ModGhpcyk7CiB9CiAKLWJvb2wgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCitib29sIFByb2dy
ZXNzSW5uZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkKIHsKICAgICBpZiAocHJvZ3Jlc3NFbGVtZW50KCktPmhhc0F1dGhvclNoYWRvd1Jvb3QoKSkK
LSAgICAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQp
OworICAgICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUp
OwogCiAgICAgUmVuZGVyT2JqZWN0KiBwcm9ncmVzc1JlbmRlcmVyID0gcHJvZ3Jlc3NFbGVtZW50
KCktPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIgJiYgIXByb2dyZXNz
UmVuZGVyZXItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiBIVE1MRGl2RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZChjb250ZXh0KTsgICAgCisgICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIg
JiYgIXByb2dyZXNzUmVuZGVyZXItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiBIVE1MRGl2
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7ICAgIAogfQogCiBQcm9ncmVzc0JhckVs
ZW1lbnQ6OlByb2dyZXNzQmFyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAko
cmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
ICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIHByb2dyZXNzRWxlbWVudCgpIGNvbnN0OwogCiBwcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgUHJvZ3Jlc3NJbm5lckVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50IHsKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToK
ICAgICBQcm9ncmVzc0lubmVyRWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVy
aW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJik7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVu
dD4gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdEZXNjRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJu
IGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgUmVuZGVyU3R5bGUqIHZpcnR1YWxDb21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVk
b0VsZW1lbnRTcGVjaWZpZXIgPSBOT1BTRVVETykgeyByZXR1cm4gY29tcHV0ZWRTdHlsZShwc2V1
ZG9FbGVtZW50U3BlY2lmaWVyKTsgfQogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVjYWxjU3R5bGUo
U3R5bGU6OkNoYW5nZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiBmYWxzZTsg
fQogCiAgICAgdmlydHVhbCBib29sIGlzU3VwcG9ydGVkKFN0cmluZ0ltcGwqIGZlYXR1cmUsIFN0
cmluZ0ltcGwqIHZlcnNpb24pIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAko
cmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NiwxMCArMTQ2LDEw
IEBAIFJlbmRlck9iamVjdCogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmQKICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUodGhpcyk7CiB9CiAK
LWJvb2wgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpyZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKQogewogICAgIGlmIChwYXJlbnROb2RlKCkgJiYgKHBhcmVudE5vZGUoKS0+
aGFzVGFnTmFtZShTVkdOYW1lczo6ZmlsdGVyVGFnKSkpCi0gICAgICAgIHJldHVybiBTVkdTdHls
ZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAgICAgICByZXR1cm4gU1ZH
U3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiAKICAgICByZXR1cm4gZmFs
c2U7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNGaWx0ZXJFZmZlY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5k
ZXJpbmdDb250ZXh0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9ICAKKyAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZh
bHNlOyB9ICAKIAogICAgIHZvaWQgZW5zdXJlR2x5cGhDYWNoZSgpOwogICAgIHZvaWQgcmVnaXN0
ZXJMaWdhdHVyZXNJbkdseXBoQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0
MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQ6OmNoaWxkU2hvdWwKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6Y2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihjaGlsZENvbnRleHQpOwogfQogCi1ib29sIFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250
ZXh0KQorYm9vbCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgLy8gU3VwcHJlc3MgZm9yZWlnbk9iamVjdCBy
ZW5kZXJlcnMgaW4gU1ZHIGhpZGRlbiBjb250YWluZXJzLgogICAgIC8vIChodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcyOTcpCkBAIC0xNTcsNyArMTU3LDcgQEAgYm9v
bCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJcwogICAgICAgICBhbmNlc3RvciA9
IGFuY2VzdG9yLT5wYXJlbnRFbGVtZW50KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFNWR0dyYXBo
aWNzRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb250ZXh0KTsKKyAgICByZXR1cm4gU1ZHR3Jh
cGhpY3NFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAogYm9vbCBTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkocmV2aXNpb24g
MTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4
dCYpIGNvbnN0OwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmNwcAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw3IEBAIFJlbmRl
ck9iamVjdCogU1ZHR0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmUKICAgICByZXR1cm4gbmV3IChhcmVu
YSkgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcih0aGlzKTsKIH0KIAotYm9vbCBTVkdH
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpCiti
b29sIFNWR0dFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKIHsK
ICAgICAvLyBVbmxpa2UgU1ZHU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCgpLCB3ZSBz
dGlsbCBjcmVhdGUgcmVuZGVyZXJzLCBldmVuIGlmCiAgICAgLy8gZGlzcGxheSBpcyBzZXQgdG8g
J25vbmUnIC0gd2hpY2ggaXMgc3BlY2lhbCB0byBTVkcgPGc+IGNvbnRhaW5lciBlbGVtZW50cy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsK
KyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwog
CiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dFbGVtZW50KQogICAg
ICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
bHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhF
bGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlw
aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWlu
ZXJOb2RlKikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlR2x5cGhDYWNoZSgpOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0dseXBoUmVmRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMoU1ZHR2x5cGhSZWZFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1NUUklORyhI
cmVmLCBocmVmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAkocmV2aXNp
b24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnNlcnRp
b25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJp
bmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwg
Tm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRD
b3VudERlbHRhID0gMCk7CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBBZmZpbmVU
cmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yCiAgICAgcmV0dXJuIHRyYW5zZm9ybS5t
dWx0aXBseSh2aWV3Qm94VHJhbnNmb3JtKTsKIH0KIAotYm9vbCBTVkdTVkdFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBT
VkdTVkdFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkK
IHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlc3BlY3QgZGlzcGxheTogbm9uZSBvbiB0aGUg
ZG9jdW1lbnRFbGVtZW50IHN2ZyBlbGVtZW50CiAgICAgLy8gYnV0IG1hbnkgdGhpbmdzIGluIEZy
YW1lVmlldyBhbmQgU1ZHSW1hZ2UgZGVwZW5kIG9uIHRoZSBSZW5kZXJTVkdSb290IHdoZW4KQEAg
LTQ4NSw3ICs0ODUsNyBAQCBib29sIFNWR1NWR0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29u
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzQ5Mwog
ICAgIGlmIChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b250ZXh0KTsKKyAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHls
ZSk7CiB9CiAKIFJlbmRlck9iamVjdCogU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmgJKHJldmlzaW9uIDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw3ICsxNDQsNyBAQCBwcml2YXRlOgogICAg
IAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKIAogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1
LDcgQEAgUmVuZGVyT2JqZWN0KiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlUmVuZAogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJTVkdHcmFkaWVudFN0b3AodGhpcyk7CiB9CiAKLWJvb2wgU1ZH
U3RvcEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQm
KQorYm9vbCBTVkdTdG9wRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RvcEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXNHcmFkaWVudFN0b3AoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqLCBSZW5kZXJTdHlsZSopOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKIAogICAgIEJFR0lO
X0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTdG9wRWxlbWVudCkKICAgICAgICAgREVD
TEFSRV9BTklNQVRFRF9OVU1CRVIoT2Zmc2V0LCBvZmZzZXQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw3ICsx
MTUsNyBAQCBTdHJpbmcgU1ZHU3R5bGVkRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIAotYm9vbCBTVkdTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBTVkdTdHlsZWRFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKICAgICAv
LyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvZXh0ZW5kLmh0bWwjUHJpdmF0ZURhdGEKICAgICAv
LyBQcmV2ZW50IGFueXRoaW5nIG90aGVyIHRoYW4gU1ZHIHJlbmRlcmVycyBmcm9tIGFwcGVhcmlu
ZyBpbiBvdXIgcmVuZGVyIHRyZWUKQEAgLTEyMyw3ICsxMjMsNyBAQCBib29sIFNWR1N0eWxlZEVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoCiAgICAgLy8gd2l0aCB0aGUgU1ZHIGNvbnRlbnQuIElu
IGdlbmVyYWwsIHRoZSBTVkcgdXNlciBhZ2VudCB3aWxsIGluY2x1ZGUgdGhlIHVua25vd24KICAg
ICAvLyBlbGVtZW50cyBpbiB0aGUgRE9NIGJ1dCB3aWxsIG90aGVyd2lzZSBpZ25vcmUgdW5rbm93
biBlbGVtZW50cy4gCiAgICAgaWYgKCFwYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCkgfHwgcGFy
ZW50T3JTaGFkb3dIb3N0RWxlbWVudCgpLT5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
IFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CisgICAgICAgIHJldHVy
biBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIAogICAgIHJldHVybiBm
YWxzZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNp
b24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDogCiAgICAg
U1ZHU3R5bGVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBDb25zdHJ1
Y3Rpb25UeXBlID0gQ3JlYXRlU1ZHRWxlbWVudCk7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKKyAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsNyArMjMxLDcgQEAg
Ym9vbCBTVkdUUmVmRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZQogICAgIHJldHVybiBjaGls
ZENvbnRleHQubm9kZSgpLT5pc0luU2hhZG93VHJlZSgpOwogfQogCi1ib29sIFNWR1RSZWZFbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
KQorYm9vbCBTVkdUUmVmRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKQogICAgICAgICAmJiAocGFyZW50Tm9k
ZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjphVGFnKQpAQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wg
U1ZHVFJlZkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY28KICAgICAgICAgICAgIHx8IHBhcmVu
dE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRhZykKICAgICAgICAgICAgIHx8IHBh
cmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFBhdGhUYWcpCiAgICAgICAgICAg
ICB8fCBwYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkpCi0gICAg
ICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOworICAg
ICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiAKICAg
ICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAko
cmV2aXNpb24gMTU0MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAKICAgICB2aXJ0dWFsIEluc2VydGlvbk5v
dGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NDMx
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgU1ZHVFNwYW5FbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgU1ZHVFNwYW5FbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQorYm9vbCBT
VkdUU3BhbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KQogewogICAgIGlmIChwYXJlbnROb2RlKCkKICAgICAgICAgJiYgKHBhcmVudE5vZGUoKS0+aGFz
VGFnTmFtZShTVkdOYW1lczo6YVRhZykKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBTVkdUU3BhbkVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoYwogICAgICAgICAgICAgfHwgcGFyZW50Tm9kZSgpLT5o
YXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0VGFnKQogICAgICAgICAgICAgfHwgcGFyZW50Tm9kZSgp
LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0UGF0aFRhZykKICAgICAgICAgICAgIHx8IHBhcmVu
dE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dHNwYW5UYWcpKSkKLSAgICAgICAgcmV0dXJu
IFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CisgICAgICAgIHJldHVy
biBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIAogICAgIHJldHVybiBm
YWxzZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgJKHJldmlzaW9u
IDE1NDMxNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CisgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDEyICsxNDUsMTIgQEAgYm9vbCBTVkdUZXh0
UGF0aEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmlu
Z0NvbnRleHQmIGNvbnRleHQpCitib29sIFNWR1RleHRQYXRoRWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKQog
ICAgICAgICAmJiAocGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjphVGFnKQogICAg
ICAgICAgICAgfHwgcGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0VGFnKSkp
Ci0gICAgICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQp
OworICAgICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7
CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CisgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCShyZXZpc2lvbiAxNTQzMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcg
KzM3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBj
aGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0
ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAkocmV2aXNpb24gMTU0MzE2KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jikg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkocmV2aXNpb24gMTU0
MzE2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwog
Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIEJFR0lOX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdWaWV3RWxlbWVudCkKICAgICAgICAgREVDTEFS
RV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQpCg==
</data>
<flag name="review"
          id="231206"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>