<?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>76518</bug_id>
          
          <creation_ts>2012-01-17 23:19:54 -0800</creation_ts>
          <short_desc>REGRESSION(r105244): broke Chromium Mac (Requested by rolandsteiner on #webkit).</short_desc>
          <delta_ts>2012-01-17 23:37:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>73460</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>rolandsteiner</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537655</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 23:19:54 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/105244 broke the build:
broke Chromium Mac (Requested by rolandsteiner on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537656</commentid>
    <comment_count>1</comment_count>
      <attachid>122878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 23:20:33 -0800</bug_when>
    <thetext>Created attachment 122878
ROLLOUT of r105244

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537658</commentid>
    <comment_count>2</comment_count>
      <attachid>122878</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-01-17 23:37:02 -0800</bug_when>
    <thetext>Comment on attachment 122878
ROLLOUT of r105244

Clearing flags on attachment: 122878

Committed r105246: &lt;http://trac.webkit.org/changeset/105246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537659</commentid>
    <comment_count>3</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-01-17 23:37:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122878</attachid>
            <date>2012-01-17 23:20:33 -0800</date>
            <delta_ts>2012-01-17 23:37:02 -0800</delta_ts>
            <desc>ROLLOUT of r105244</desc>
            <filename>bug-76518-20120118072135.patch</filename>
            <type>text/plain</type>
            <size>60312</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQzMzc3MjgzMTZkMGE2
MzU3M2U4NzllOTRlMTMwYzgzNDA2OGY3YS4uZWJjNGVjOTU2NDVjZDFmZThjM2Y3NWU1MGYwNzgw
YTYwNzAzMGEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTE3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTA1MjQ0LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMDUyNDQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2NTE4CisKKyAgICAgICAgYnJva2UgQ2hyb21pdW0gTWFjIChSZXF1ZXN0ZWQg
Ynkgcm9sYW5kc3RlaW5lciBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpjaGVja2JveE9yUmFkaW9WYWx1ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3Lmg6CisKIDIwMTItMDEtMTcgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0ludGVybmFsc10gU2hvdWxkIGJlIGFibGUgdG8gYWNjZXNzIGNv
cnJlc3BvbmRpbmcgRG9jdW1lbnQgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA0ZTcxODAzMjJmNDU4ZDU3ZTYwZWExYWIyNDY4ZjEzYjM5NGVjZWQzLi5kOWQzMzk2N2U5M2M0
MjU5NmZkZDI0ZDRmY2FjZWJhZWY3Y2JhNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAxLTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA1MjQ0
LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDUyNDQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTE4CisKKyAgICAg
ICAgYnJva2UgQ2hyb21pdW0gTWFjIChSZXF1ZXN0ZWQgYnkgcm9sYW5kc3RlaW5lciBvbiAjd2Vi
a2l0KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAg
ICAgICogc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorCiAyMDEyLTAxLTE3ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFjY2Vzc2liaWxp
dHk6IENocm9taXVtIG5lZWRzIG1ldGhvZHMgdG8gc2Nyb2xsIGFuIG9iamVjdCBpbnRvIHZpZXcg
b3IgdG8gYSBzcGVjaWZpYyBsb2NhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDczZGYzMzZlYjhhZWFlNWM5
NmZhZGE1Yzc5NmQzMjgwMGUyY2I3NjQuLjJkYjAyMjJlMTdiYzQ5NjlkYzc2MjNiMmYzZTRkZDE2
YTAxMjVhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTUwNSwxNzkgKzE1MDUsNSBAQCBBY2Nlc3NpYmlsaXR5
QnV0dG9uU3RhdGUgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2hlY2tib3hPclJhZGlvVmFsdWUoKSBj
b25zdAogICAgIAogICAgIHJldHVybiBCdXR0b25TdGF0ZU9mZjsKIH0KLQotLy8gVGhpcyBpcyBh
IDEtZGltZW5zaW9uYWwgc2Nyb2xsIG9mZnNldCBoZWxwZXIgZnVuY3Rpb24gdGhhdCdzIGFwcGxp
ZWQKLS8vIHNlcGFyYXRlbHkgaW4gdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGRpcmVjdGlv
bnMsIGJlY2F1c2UgdGhlCi0vLyBsb2dpYyBpcyB0aGUgc2FtZS4gVGhlIGdvYWwgaXMgdG8gY29t
cHV0ZSB0aGUgYmVzdCBzY3JvbGwgb2Zmc2V0Ci0vLyBpbiBvcmRlciB0byBtYWtlIGFuIG9iamVj
dCB2aXNpYmxlIHdpdGhpbiBhIHZpZXdwb3J0LgotLy8KLS8vIEluIGNhc2UgdGhlIHdob2xlIG9i
amVjdCBjYW5ub3QgZml0LCB5b3UgY2FuIHNwZWNpZnkgYQotLy8gc3ViZm9jdXMgLSBhIHNtYWxs
ZXIgcmVnaW9uIHdpdGhpbiB0aGUgb2JqZWN0IHRoYXQgc2hvdWxkCi0vLyBiZSBwcmlvcml0aXpl
ZC4gSWYgdGhlIHdob2xlIG9iamVjdCBjYW4gZml0LCB0aGUgc3ViZm9jdXMgaXMKLS8vIGlnbm9y
ZWQuCi0vLwotLy8gRXhhbXBsZTogdGhlIHZpZXdwb3J0IGlzIHNjcm9sbGVkIHRvIHRoZSByaWdo
dCBqdXN0IGVub3VnaAotLy8gdGhhdCB0aGUgb2JqZWN0IGlzIGluIHZpZXcuCi0vLyAgIEJlZm9y
ZToKLS8vICAgKy0tLS0tLS0tLS1WaWV3cG9ydC0tLS0tLS0tLSsKLS8vICAgICAgICAgICAgICAg
ICAgICAgICAgICstLS1PYmplY3QtLS0rCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICArLS1T
dWJGb2N1cy0tKwotLy8KLS8vICAgQWZ0ZXI6Ci0vLyAgICAgICAgICArLS0tLS0tLS0tLVZpZXdw
b3J0LS0tLS0tLS0tKwotLy8gICAgICAgICAgICAgICAgICAgICAgICAgKy0tLU9iamVjdC0tLSsK
LS8vICAgICAgICAgICAgICAgICAgICAgICAgICstLVN1YkZvY3VzLS0rCi0vLwotLy8gV2hlbiBj
b25zdHJhaW50cyBjYW5ub3QgYmUgZnVsbHkgc2F0aXNmaWVkLCB0aGUgbWluCi0vLyAobGVmdC90
b3ApIHBvc2l0aW9uIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgbWF4IChyaWdodC9ib3R0b20p
LgotLy8KLS8vIE5vdGUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIHJlcHJlc2VudHMgdGhlIGlkZWFs
IG5ldyBzY3JvbGwgb2Zmc2V0LgotLy8gVGhpcyBtYXkgYmUgb3V0IG9mIHJhbmdlIC0gdGhlIGNh
bGxpbmcgZnVuY3Rpb24gc2hvdWxkIGNsaXAgdGhpcwotLy8gdG8gdGhlIGF2YWlsYWJsZSByYW5n
ZS4KLXN0YXRpYyBpbnQgY29tcHV0ZUJlc3RTY3JvbGxPZmZzZXQoaW50IGN1cnJlbnRTY3JvbGxP
ZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdWJmb2N1c01p
biwgaW50IHN1YmZvY3VzTWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgb2JqZWN0TWluLCBpbnQgb2JqZWN0TWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgdmlld3BvcnRNaW4sIGludCB2aWV3cG9ydE1heCkgewotICAgIGludCB2aWV3
cG9ydFNpemUgPSB2aWV3cG9ydE1heCAtIHZpZXdwb3J0TWluOwotCi0gICAgLy8gSWYgdGhlIGZv
Y3VzIHNpemUgaXMgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0IHNpemUsIHNocmluayBpdCBpbiB0
aGUKLSAgICAvLyBkaXJlY3Rpb24gb2Ygc3ViZm9jdXMuCi0gICAgaWYgKG9iamVjdE1heCAtIG9i
amVjdE1pbiA+IHZpZXdwb3J0U2l6ZSkgewotICAgICAgICAvLyBTdWJmb2N1cyBtdXN0IGJlIHdp
dGhpbiBmb2N1czoKLSAgICAgICAgc3ViZm9jdXNNaW4gPSBzdGQ6Om1heChzdWJmb2N1c01pbiwg
b2JqZWN0TWluKTsKLSAgICAgICAgc3ViZm9jdXNNYXggPSBzdGQ6Om1pbihzdWJmb2N1c01heCwg
b2JqZWN0TWF4KTsKLQotICAgICAgICAvLyBTdWJmb2N1cyBtdXN0IGJlIG5vIGxhcmdlciB0aGFu
IHRoZSB2aWV3cG9ydCBzaXplOyBmYXZvciB0b3AvbGVmdC4KLSAgICAgICAgaWYgKHN1YmZvY3Vz
TWF4IC0gc3ViZm9jdXNNaW4gPiB2aWV3cG9ydFNpemUpCi0gICAgICAgICAgICBzdWJmb2N1c01h
eCA9IHN1YmZvY3VzTWluICsgdmlld3BvcnRTaXplOwotCi0gICAgICAgIGlmIChzdWJmb2N1c01p
biArIHZpZXdwb3J0U2l6ZSA+IG9iamVjdE1heCkKLSAgICAgICAgICAgIG9iamVjdE1pbiA9IG9i
amVjdE1heCAtIHZpZXdwb3J0U2l6ZTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBvYmpl
Y3RNaW4gPSBzdWJmb2N1c01pbjsKLSAgICAgICAgICAgIG9iamVjdE1heCA9IHN1YmZvY3VzTWlu
ICsgdmlld3BvcnRTaXplOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRXhpdCBub3cgaWYg
dGhlIGZvY3VzIGlzIGFscmVhZHkgd2l0aGluIHRoZSB2aWV3cG9ydC4KLSAgICBpZiAob2JqZWN0
TWluIC0gY3VycmVudFNjcm9sbE9mZnNldCA+PSB2aWV3cG9ydE1pbgotICAgICAgICAmJiBvYmpl
Y3RNYXggLSBjdXJyZW50U2Nyb2xsT2Zmc2V0IDw9IHZpZXdwb3J0TWF4KQotICAgICAgICByZXR1
cm4gY3VycmVudFNjcm9sbE9mZnNldDsKLQotICAgIC8vIFNjcm9sbCBsZWZ0IGlmIHdlJ3JlIHRv
byBmYXIgdG8gdGhlIHJpZ2h0LgotICAgIGlmIChvYmplY3RNYXggLSBjdXJyZW50U2Nyb2xsT2Zm
c2V0ID4gdmlld3BvcnRNYXgpCi0gICAgICAgIHJldHVybiBvYmplY3RNYXggLSB2aWV3cG9ydE1h
eDsKLQotICAgIC8vIFNjcm9sbCByaWdodCBpZiB3ZSdyZSB0b28gZmFyIHRvIHRoZSBsZWZ0Lgot
ICAgIGlmIChvYmplY3RNaW4gLSBjdXJyZW50U2Nyb2xsT2Zmc2V0IDwgdmlld3BvcnRNaW4pCi0g
ICAgICAgIHJldHVybiBvYmplY3RNaW4gLSB2aWV3cG9ydE1pbjsKLQotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotCi0gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLgotICAgIHJldHVybiBj
dXJyZW50U2Nyb2xsT2Zmc2V0OwotfQotCi12b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9s
bFRvTWFrZVZpc2libGUoKSBjb25zdAotewotICAgIEludFJlY3Qgb2JqZWN0UmVjdCA9IGJvdW5k
aW5nQm94UmVjdCgpOwotICAgIG9iamVjdFJlY3QubW92ZSgtb2JqZWN0UmVjdC54KCksIC1vYmpl
Y3RSZWN0LnkoKSk7Ci0gICAgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhvYmplY3RS
ZWN0KTsKLX0KLQotdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxUb01ha2VWaXNpYmxl
V2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmIHN1YmZvY3VzKSBjb25zdAotewotICAgIC8vIFNl
YXJjaCB1cCB0aGUgcGFyZW50IGNoYWluIHVudGlsIHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0
J3Mgc2Nyb2xsYWJsZS4KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBzY3JvbGxQYXJlbnQgPSBw
YXJlbnRPYmplY3QoKTsKLSAgICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWE7Ci0gICAg
Zm9yIChzY3JvbGxhYmxlQXJlYSA9IDA7Ci0gICAgICAgICBzY3JvbGxQYXJlbnQgJiYgIShzY3Jv
bGxhYmxlQXJlYSA9IHNjcm9sbFBhcmVudC0+Z2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUo
KSk7Ci0gICAgICAgICBzY3JvbGxQYXJlbnQgPSBzY3JvbGxQYXJlbnQtPnBhcmVudE9iamVjdCgp
KSB7IH0KLSAgICBpZiAoIXNjcm9sbGFibGVBcmVhKQotICAgICAgICByZXR1cm47Ci0KLSAgICBM
YXlvdXRSZWN0IG9iamVjdFJlY3QgPSBib3VuZGluZ0JveFJlY3QoKTsKLSAgICBJbnRQb2ludCBz
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpOwotICAgIElu
dFJlY3Qgc2Nyb2xsVmlzaWJsZVJlY3QgPSBzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCk7Ci0KLSAgICBpbnQgZGVzaXJlZFggPSBjb21wdXRlQmVzdFNjcm9sbE9mZnNldCgKLSAg
ICAgICAgc2Nyb2xsUG9zaXRpb24ueCgpLAotICAgICAgICBvYmplY3RSZWN0LngoKSArIHN1YmZv
Y3VzLngoKSwgb2JqZWN0UmVjdC54KCkgKyBzdWJmb2N1cy5tYXhYKCksCi0gICAgICAgIG9iamVj
dFJlY3QueCgpLCBvYmplY3RSZWN0Lm1heFgoKSwKLSAgICAgICAgMCwgc2Nyb2xsVmlzaWJsZVJl
Y3Qud2lkdGgoKSk7Ci0gICAgaW50IGRlc2lyZWRZID0gY29tcHV0ZUJlc3RTY3JvbGxPZmZzZXQo
Ci0gICAgICAgIHNjcm9sbFBvc2l0aW9uLnkoKSwKLSAgICAgICAgb2JqZWN0UmVjdC55KCkgKyBz
dWJmb2N1cy55KCksIG9iamVjdFJlY3QueSgpICsgc3ViZm9jdXMubWF4WSgpLAotICAgICAgICBv
YmplY3RSZWN0LnkoKSwgb2JqZWN0UmVjdC5tYXhZKCksCi0gICAgICAgIDAsIHNjcm9sbFZpc2li
bGVSZWN0LmhlaWdodCgpKTsKLQotICAgIHNjcm9sbFBhcmVudC0+c2Nyb2xsVG8oSW50UG9pbnQo
ZGVzaXJlZFgsIGRlc2lyZWRZKSk7Ci0KLSAgICAvLyBSZWN1cnNpdmVseSBtYWtlIHN1cmUgdGhl
IHNjcm9sbCBwYXJlbnQgaXRzZWxmIGlzIHZpc2libGUuCi0gICAgaWYgKHNjcm9sbFBhcmVudC0+
cGFyZW50T2JqZWN0KCkpCi0gICAgICAgIHNjcm9sbFBhcmVudC0+c2Nyb2xsVG9NYWtlVmlzaWJs
ZSgpOwotfQotCi12b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvR2xvYmFsUG9pbnQo
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvaW50KSBjb25zdAotewotICAgIC8vIFNlYXJjaCB1cCB0
aGUgcGFyZW50IGNoYWluIGFuZCBjcmVhdGUgYSB2ZWN0b3Igb2YgYWxsIHNjcm9sbGFibGUgcGFy
ZW50IG9iamVjdHMKLSAgICAvLyBhbmQgZW5kaW5nIHdpdGggdGhpcyBvYmplY3QgaXRzZWxmLgot
ICAgIFZlY3Rvcjxjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4gb2JqZWN0czsKLSAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3Q7Ci0gICAgZm9yIChwYXJlbnRPYmplY3QgPSB0
aGlzLT5wYXJlbnRPYmplY3QoKTsgcGFyZW50T2JqZWN0OyBwYXJlbnRPYmplY3QgPSBwYXJlbnRP
YmplY3QtPnBhcmVudE9iamVjdCgpKSB7Ci0gICAgICAgIGlmIChwYXJlbnRPYmplY3QtPmdldFNj
cm9sbGFibGVBcmVhSWZTY3JvbGxhYmxlKCkpCi0gICAgICAgICAgICBvYmplY3RzLnByZXBlbmQo
cGFyZW50T2JqZWN0KTsKLSAgICB9Ci0gICAgb2JqZWN0cy5hcHBlbmQodGhpcyk7Ci0KLSAgICAv
LyBTdGFydCB3aXRoIHRoZSBvdXRlcm1vc3Qgc2Nyb2xsYWJsZSAodGhlIG1haW4gd2luZG93KSBh
bmQgdHJ5IHRvIHNjcm9sbCB0aGUKLSAgICAvLyBuZXh0IGlubmVybW9zdCBvYmplY3QgdG8gdGhl
IGdpdmVuIHBvaW50LgotICAgIGludCBvZmZzZXRYID0gMCwgb2Zmc2V0WSA9IDA7Ci0gICAgSW50
UG9pbnQgcG9pbnQgPSBnbG9iYWxQb2ludDsKLSAgICBzaXplX3QgbGV2ZWxzID0gb2JqZWN0cy5z
aXplKCkgLSAxOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGV2ZWxzOyBpKyspIHsKLSAg
ICAgICAgY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCogb3V0ZXIgPSBvYmplY3RzW2ldOwotICAg
ICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBpbm5lciA9IG9iamVjdHNbaSArIDFdOwot
Ci0gICAgICAgIFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSA9IG91dGVyLT5nZXRTY3Jv
bGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpOwotCi0gICAgICAgIExheW91dFJlY3QgaW5uZXJSZWN0
ID0gaW5uZXItPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSA/IGlubmVyLT5wYXJlbnRPYmpl
Y3QoKS0+Ym91bmRpbmdCb3hSZWN0KCkgOiBpbm5lci0+Ym91bmRpbmdCb3hSZWN0KCk7Ci0gICAg
ICAgIExheW91dFJlY3Qgb2JqZWN0UmVjdCA9IGlubmVyUmVjdDsKLSAgICAgICAgSW50UG9pbnQg
c2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oKTsKLSAgICAg
ICAgSW50UmVjdCBzY3JvbGxWaXNpYmxlUmVjdCA9IHNjcm9sbGFibGVBcmVhLT52aXNpYmxlQ29u
dGVudFJlY3QoKTsKLQotICAgICAgICAvLyBDb252ZXJ0IHRoZSBvYmplY3QgcmVjdCBpbnRvIGxv
Y2FsIGNvb3JkaW5hdGVzLgotICAgICAgICBvYmplY3RSZWN0Lm1vdmUob2Zmc2V0WCwgb2Zmc2V0
WSk7Ci0gICAgICAgIGlmICghb3V0ZXItPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKLSAg
ICAgICAgICAgIG9iamVjdFJlY3QubW92ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0
aW9uLnkoKSk7Ci0KLSAgICAgICAgaW50IGRlc2lyZWRYID0gY29tcHV0ZUJlc3RTY3JvbGxPZmZz
ZXQoCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgb2JqZWN0UmVjdC54KCksIG9iamVjdFJl
Y3QubWF4WCgpLAotICAgICAgICAgICAgb2JqZWN0UmVjdC54KCksIG9iamVjdFJlY3QubWF4WCgp
LAotICAgICAgICAgICAgcG9pbnQueCgpLCBwb2ludC54KCkpOwotICAgICAgICBpbnQgZGVzaXJl
ZFkgPSBjb21wdXRlQmVzdFNjcm9sbE9mZnNldCgKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAg
ICBvYmplY3RSZWN0LnkoKSwgb2JqZWN0UmVjdC5tYXhZKCksCi0gICAgICAgICAgICBvYmplY3RS
ZWN0LnkoKSwgb2JqZWN0UmVjdC5tYXhZKCksCi0gICAgICAgICAgICBwb2ludC55KCksIHBvaW50
LnkoKSk7Ci0gICAgICAgIG91dGVyLT5zY3JvbGxUbyhJbnRQb2ludChkZXNpcmVkWCwgZGVzaXJl
ZFkpKTsKLQotICAgICAgICBpZiAob3V0ZXItPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSAm
JiAhaW5uZXItPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkgewotICAgICAgICAgICAgLy8g
SWYgb3V0ZXIgb2JqZWN0IHdlIGp1c3Qgc2Nyb2xsZWQgaXMgYSBzY3JvbGwgdmlldyAobWFpbiB3
aW5kb3cgb3IgaWZyYW1lKSBidXQgdGhlCi0gICAgICAgICAgICAvLyBpbm5lciBvYmplY3QgaXMg
bm90LCBrZWVwIHRyYWNrIG9mIHRoZSBjb29yZGluYXRlIHRyYW5zZm9ybWF0aW9uIHRvIGFwcGx5
IHRvCi0gICAgICAgICAgICAvLyBmdXR1cmUgbmVzdGVkIGNhbGN1bGF0aW9ucy4KLSAgICAgICAg
ICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCk7Ci0g
ICAgICAgICAgICBvZmZzZXRYIC09IChzY3JvbGxQb3NpdGlvbi54KCkgKyBwb2ludC54KCkpOwot
ICAgICAgICAgICAgb2Zmc2V0WSAtPSAoc2Nyb2xsUG9zaXRpb24ueSgpICsgcG9pbnQueSgpKTsK
LSAgICAgICAgICAgIHBvaW50Lm1vdmUoc2Nyb2xsUG9zaXRpb24ueCgpIC0gaW5uZXJSZWN0Lngo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb24ueSgpIC0gaW5uZXJSZWN0
LnkoKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5uZXItPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKSkgewotICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB0aGUgaW5uZXIgb2JqZWN0IGlz
IGEgc2Nyb2xsIHZpZXcsIHJlc2V0IHRoZSBjb29yZGluYXRlIHRyYW5zZm9ybWF0aW9uLgotICAg
ICAgICAgICAgb2Zmc2V0WCA9IDA7Ci0gICAgICAgICAgICBvZmZzZXRZID0gMDsKLSAgICAgICAg
fQotICAgIH0KLX0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggYmQ1NzQx
YzNjM2E1ZmVmNGVlZDRlNjQ3NmU4NzgyOWM4NDBhZWY3MC4uNzM3ZTJkZmYxMjk0MzNlNTgxOTRl
NThlOTEyODYzNzg5MzBlODdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTg0LDcgKzg0LDYgQEAgY2xhc3MgTm9kZTsK
IGNsYXNzIFBhZ2U7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJMaXN0SXRlbTsK
LWNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFdp
ZGdldDsKIApAQCAtNjQzLDE0ICs2NDIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gQ1NTMyBT
cGVlY2ggcHJvcGVydGllcy4KICAgICB2aXJ0dWFsIEVTcGVhayBzcGVha1Byb3BlcnR5KCkgY29u
c3QgeyByZXR1cm4gU3BlYWtOb3JtYWw7IH0KLQotICAgIC8vIE1ha2UgdGhpcyBvYmplY3Qgdmlz
aWJsZSBieSBzY3JvbGxpbmcgYXMgbWFueSBuZXN0ZWQgc2Nyb2xsYWJsZSB2aWV3cyBhcyBuZWVk
ZWQuCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGUoKSBjb25zdDsKLSAgICAv
LyBTYW1lLCBidXQgaWYgdGhlIHdob2xlIG9iamVjdCBjYW4ndCBiZSBtYWRlIHZpc2libGUsIHRy
eSBmb3IgdGhpcyBzdWJyZWN0LCBpbiBsb2NhbCBjb29yZGluYXRlcy4KLSAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhjb25zdCBJbnRSZWN0JikgY29uc3Q7
Ci0gICAgLy8gU2Nyb2xsIHRoaXMgb2JqZWN0IHRvIGEgZ2l2ZW4gcG9pbnQgaW4gZ2xvYmFsIGNv
b3JkaW5hdGVzIG9mIHRoZSB0b3AtbGV2ZWwgd2luZG93LgotICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxUb0dsb2JhbFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0KKyAgICAKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyKiB3cmFwcGVyKCkgY29uc3Q7CkBAIC02ODQsMTAgKzY3Niw2IEBAIHByb3RlY3Rl
ZDoKICAgICBtdXRhYmxlIGJvb2wgbV9oYXZlQ2hpbGRyZW47CiAgICAgQWNjZXNzaWJpbGl0eVJv
bGUgbV9yb2xlOwogICAgIAotICAgIC8vIElmIHRoaXMgb2JqZWN0IGl0c2VsZiBzY3JvbGxzLCBy
ZXR1cm4gaXRzIFNjcm9sbGFibGVBcmVhLgotICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGdl
dFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxlKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IHsgfQotCiAgICAgdmly
dHVhbCBib29sIGlzRGV0YWNoZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGlj
IGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSopOwogICAgIHN0YXRpYyBib29sIGlzQWNj
ZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJp
bGl0eVNlYXJjaENyaXRlcmlhKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBkYzBkMzNiOTMx
NGFhMDUyM2RiYWE5Nzc0YTBmOWUxMGVhNDBhZmZhLi45NDJmMjAwZTJmZGQ1N2E3OTUwMjVlOGIw
NmM0OTRhNzY0NDEwNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTM5MzcsMzMgKzM5Mzcs
NCBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb2xlVmFs
dWVGb3JNU0FBKCkgY29uc3QKICAgICByZXR1cm4gbV9yb2xlRm9yTVNBQTsKIH0KIAotU2Nyb2xs
YWJsZUFyZWEqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmdldFNjcm9sbGFibGVBcmVhSWZT
Y3JvbGxhYmxlKCkgY29uc3QKLXsKLSAgICAvLyBJZiB0aGUgcGFyZW50IGlzIGEgc2Nyb2xsIHZp
ZXcsIHRoZW4gdGhpcyBvYmplY3QgaXNuJ3QgcmVhbGx5IHNjcm9sbGFibGUsIHRoZSBwYXJlbnQg
U2Nyb2xsVmlldyBzaG91bGQgaGFuZGxlIHRoZSBzY3JvbGxpbmcuCi0gICAgaWYgKHBhcmVudE9i
amVjdCgpICYmIHBhcmVudE9iamVjdCgpLT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5p
c0JveCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFJlbmRlckJveCogYm94ID0gdG9SZW5k
ZXJCb3gobV9yZW5kZXJlcik7Ci0gICAgaWYgKCFib3gtPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3Jv
bGxhYmxlQXJlYSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBib3gtPmxheWVy
KCk7Ci19Ci0KLXZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2Nyb2xsVG8oY29uc3Qg
SW50UG9pbnQmIHBvaW50KSBjb25zdAotewotICAgIGlmICghbV9yZW5kZXJlciB8fCAhbV9yZW5k
ZXJlci0+aXNCb3goKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyQm94KiBib3ggPSB0
b1JlbmRlckJveChtX3JlbmRlcmVyKTsKLSAgICBpZiAoIWJveC0+Y2FuQmVTY3JvbGxlZEFuZEhh
c1Njcm9sbGFibGVBcmVhKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlckxheWVyKiBs
YXllciA9IGJveC0+bGF5ZXIoKTsKLSAgICBsYXllci0+c2Nyb2xsVG9PZmZzZXQocG9pbnQueCgp
LCBwb2ludC55KCksIFJlbmRlckxheWVyOjpTY3JvbGxPZmZzZXRDbGFtcGVkKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCAzZWE1ODA5MjVlZDMzOTc2
MjZkOWQ4MDE0ZDA1N2Y4MjhhYjQyZTg2Li5lNjUxODA1OTY4MGJmNzExMGUzYzg4N2IyMDExNmIw
NTc4NzBjMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjY2LDggKzI2Niw2IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHNldFJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSB7IG1f
cmVuZGVyZXIgPSByZW5kZXJlcjsgfQogICAgIHZvaWQgYXJpYUxhYmVsZWRCeUVsZW1lbnRzKFZl
Y3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKSBjb25zdDsKICAgICBib29sIG5lZWRzVG9VcGRhdGVD
aGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW5EaXJ0eTsgfQotICAgIFNjcm9sbGFi
bGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0OwotICAgIHZvaWQg
c2Nyb2xsVG8oY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
aXNEZXRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuICFtX3JlbmRlcmVyOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5j
cHAKaW5kZXggNTM3YjA5NDQ1ZmFiZGVkYTEyMGUzNjIzZWEwMzljMDc4YTc3NzRmMC4uMzBiZTFi
MTQwNGIyY2Y4NDBiOGJiMWQwMmI1YWI3YTgwMGUzZGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKQEAg
LTIxNCwxNCArMjE0LDQgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXc6OnBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAot
U2Nyb2xsYWJsZUFyZWEqIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpnZXRTY3JvbGxhYmxlQXJl
YUlmU2Nyb2xsYWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2Nyb2xsVmlldy5nZXQoKTsK
LX0KLQotdm9pZCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6c2Nyb2xsVG8oY29uc3QgSW50UG9p
bnQmIHBvaW50KSBjb25zdAotewotICAgIG1fc2Nyb2xsVmlldy0+c2V0U2Nyb2xsUG9zaXRpb24o
cG9pbnQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4
IGM2NWIyNjI2YzQ4M2I0ZDAyYzlmNWQwZThiNmQyMzM1NTlmODBmYTQuLjM0ODZmOWI3NTI5YmQ4
NzUyNDk1Y2JmNGZkNmI4OWIwODYwMmUwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTM5LDEwICszOSw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dz4gY3JlYXRlKFNjcm9sbFZpZXcqKTsgICAgCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBTY3JvbGxBcmVhUm9sZTsgfQogICAgIFNjcm9s
bFZpZXcqIHNjcm9sbFZpZXcoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFZpZXcuZ2V0KCk7IH0K
LQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVB
cmVhSWZTY3JvbGxhYmxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvKGNvbnN0
IEludFBvaW50JikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3KFNjcm9sbFZpZXcqKTsKQEAgLTkwLDMgKzg2LDQgQEAgaW5saW5lIEFjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3KiB0b0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG8KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGM1MmI4MzBhOTNkNzU2YTQ4MjlhZGUzMWNk
MTI1OGZlNWVlNTMzYTAuLjljNjdiNzc2NjcxZTAwNWQzZjVjNzlhOTk0YTdmZjExZGZmY2VhMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKQEAgLTE2NCwxMyArMTY0LDYgQEAgcHVibGljOgogICAgIFdFQktJVF9F
WFBPUlQgdW5zaWduZWQgY2VsbFJvd0luZGV4KCkgY29uc3Q7CiAgICAgV0VCS0lUX0VYUE9SVCB1
bnNpZ25lZCBjZWxsUm93U3BhbigpIGNvbnN0OwogCi0gICAgLy8gTWFrZSB0aGlzIG9iamVjdCB2
aXNpYmxlIGJ5IHNjcm9sbGluZyBhcyBtYW55IG5lc3RlZCBzY3JvbGxhYmxlIHZpZXdzIGFzIG5l
ZWRlZC4KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0
OwotICAgIC8vIFNhbWUsIGJ1dCBpZiB0aGUgd2hvbGUgb2JqZWN0IGNhbid0IGJlIG1hZGUgdmlz
aWJsZSwgdHJ5IGZvciB0aGlzIHN1YnJlY3QsIGluIGxvY2FsIGNvb3JkaW5hdGVzLgotICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IFdl
YlJlY3QmKSBjb25zdDsKLSAgICAvLyBTY3JvbGwgdGhpcyBvYmplY3QgdG8gYSBnaXZlbiBwb2lu
dCBpbiBnbG9iYWwgY29vcmRpbmF0ZXMgb2YgdGhlIHRvcC1sZXZlbCB3aW5kb3cuCi0gICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHNjcm9sbFRvR2xvYmFsUG9pbnQoY29uc3QgV2ViUG9pbnQmKSBjb25z
dDsKLQogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3QoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q+Jik7
CiAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb3BlcmF0b3I9KGNvbnN0IFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA0ODkz
NDdiZjI2YWU0Mzk4NTg2MmZmYWFiNTM1ODY1ZmJhZjU4ODI3Li44MDZiZmQ4MDkwOTM4MzA3ODc1
YmQ1MWU3MmQzOTQ1MzhlYzllMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtODcwLDI0ICs4NzAsNiBAQCB1
bnNpZ25lZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjZWxsUm93U3BhbigpIGNvbnN0CiAgICAg
cmV0dXJuIHJvd1JhbmdlLnNlY29uZDsKIH0KIAotdm9pZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkgY29uc3QKLXsKLSAgICBtX3ByaXZhdGUtPnVwZGF0ZUJh
Y2tpbmdTdG9yZSgpOwotICAgIG1fcHJpdmF0ZS0+c2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwotfQot
Ci12b2lkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3Vi
Rm9jdXMoY29uc3QgV2ViUmVjdCYgc3ViZm9jdXMpIGNvbnN0Ci17Ci0gICAgbV9wcml2YXRlLT51
cGRhdGVCYWNraW5nU3RvcmUoKTsKLSAgICBtX3ByaXZhdGUtPnNjcm9sbFRvTWFrZVZpc2libGVX
aXRoU3ViRm9jdXMoc3ViZm9jdXMpOwotfQotCi12b2lkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnNjcm9sbFRvR2xvYmFsUG9pbnQoY29uc3QgV2ViUG9pbnQmIHBvaW50KSBjb25zdAotewotICAg
IG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7Ci0gICAgbV9wcml2YXRlLT5zY3JvbGxU
b0dsb2JhbFBvaW50KHBvaW50KTsKLX0KLQogV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6V2ViQWNj
ZXNzaWJpbGl0eU9iamVjdChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdD4mIG9iamVjdCkKICAgICA6IG1fcHJpdmF0ZShvYmplY3QpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGNjNTFhNmIxMGEz
MGJkMjU3NDIxZGI5YzBhOGM4ZjVlMzRkOGJkZi4uMWMzMWVhMGQwODY5NWIwZTdkMjEwMWU3Yjli
ZmFiOTEzNDljYjJjMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTA1MjQ0LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDUy
NDQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTE4
CisKKyAgICAgICAgYnJva2UgQ2hyb21pdW0gTWFjIChSZXF1ZXN0ZWQgYnkgcm9sYW5kc3RlaW5l
ciBvbiAjd2Via2l0KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpyZW1vdmVTZWxlY3Rpb24pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbik6CisKIDIwMTItMDEtMTcgIERvbWluaWMgTWF6em9uaSAg
PGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWNjZXNzaWJpbGl0eTogQ2hyb21pdW0g
bmVlZHMgbWV0aG9kcyB0byBzY3JvbGwgYW4gb2JqZWN0IGludG8gdmlldyBvciB0byBhIHNwZWNp
ZmljIGxvY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCmluZGV4IGNkNmZlZTBjNzRmYzIyNzYwNGI1ZmVlZTg2NjJjMTNiOGExNzRjYmYuLjM4
ZDM1Y2Y1ODMyNGU1NWJlZTYxNmJhNTNkZjk3MGM3NWIyMmJhMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTIxNiwxMSArMjE2LDcgQEAg
cHVibGljOgogICAgIEpTU3RyaW5nUmVmIHN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKik7CiAgICAgaW50IHRleHRNYXJrZXJSYW5nZUxlbmd0aChB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKik7CiAgICAgYm9vbCBhdHRyaWJ1dGVkU3RyaW5n
Rm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UqKTsKLQotICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgp
OwotICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQgeCwgaW50IHks
IGludCB3aWR0aCwgaW50IGhlaWdodCk7Ci0gICAgdm9pZCBzY3JvbGxUb0dsb2JhbFBvaW50KGlu
dCB4LCBpbnQgeSk7Ci0KKyAgICAKICAgICAvLyBOb3RpZmljYXRpb25zCiAgICAgLy8gRnVuY3Rp
b24gY2FsbGJhY2sgc2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgbmFtZSBvZiB0aGUgbm90
aWZpY2F0aW9uLgogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoSlNPYmplY3RSZWYg
ZnVuY3Rpb25DYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDU4MzgwNjU4NWI0ODFlZTE0
MWFiZTQ4NGI3ZTI0ODRlODg0N2VjMTguLjNjYTFlZTcyYTAzMGNkYjgxMDZmMGQ5NzJmNjc4NTYx
YjU2ZjIzOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRl
ICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ1N0cmlu
Zy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViUmVjdC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CkBAIC0zNTYsOSArMzU1LDYgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBv
YmoKICAgICBiaW5kTWV0aG9kKCJhZGROb3RpZmljYXRpb25MaXN0ZW5lciIsICZBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKTsKICAgICBiaW5k
TWV0aG9kKCJyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lciIsICZBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9k
KCJ0YWtlRm9jdXMiLCAmQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzQ2FsbGJhY2sp
OwotICAgIGJpbmRNZXRob2QoInNjcm9sbFRvTWFrZVZpc2libGUiLCAmQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZUNhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJz
Y3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzIiwgJkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXNDYWxsYmFjayk7Ci0gICAgYmluZE1ldGhv
ZCgic2Nyb2xsVG9HbG9iYWxQb2ludCIsICZBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxU
b0dsb2JhbFBvaW50Q2FsbGJhY2spOwogCiAgICAgYmluZEZhbGxiYWNrTWV0aG9kKCZBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpmYWxsYmFja0NhbGxiYWNrKTsKIH0KQEAgLTc2Nyw0NyArNzYzLDYg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlRm9jdXNDYWxsYmFjayhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW4KICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAot
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlQ2FsbGJhY2so
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGFjY2Vz
c2liaWxpdHlPYmplY3QoKS5zY3JvbGxUb01ha2VWaXNpYmxlKCk7Ci0gICAgcmVzdWx0LT5zZXRO
dWxsKCk7Ci19Ci0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlz
aWJsZVdpdGhTdWJGb2N1c0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0KLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSAhPSA0Ci0gICAgICAgIHx8ICFhcmd1bWVudHNbMF0uaXNOdW1i
ZXIoKQotICAgICAgICB8fCAhYXJndW1lbnRzWzFdLmlzTnVtYmVyKCkKLSAgICAgICAgfHwgIWFy
Z3VtZW50c1syXS5pc051bWJlcigpCi0gICAgICAgIHx8ICFhcmd1bWVudHNbM10uaXNOdW1iZXIo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IHggPSBhcmd1bWVudHNbMF0udG9JbnQzMigp
OwotICAgIGludCB5ID0gYXJndW1lbnRzWzFdLnRvSW50MzIoKTsKLSAgICBpbnQgd2lkdGggPSBh
cmd1bWVudHNbMl0udG9JbnQzMigpOwotICAgIGludCBoZWlnaHQgPSBhcmd1bWVudHNbM10udG9J
bnQzMigpOwotICAgIGFjY2Vzc2liaWxpdHlPYmplY3QoKS5zY3JvbGxUb01ha2VWaXNpYmxlV2l0
aFN1YkZvY3VzKFdlYlJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwotICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwotfQotCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFRvR2xvYmFs
UG9pbnRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotCi0gICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgIT0gMgotICAgICAgICB8fCAhYXJndW1lbnRzWzBdLmlzTnVtYmVyKCkKLSAgICAg
ICAgfHwgIWFyZ3VtZW50c1sxXS5pc051bWJlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
bnQgeCA9IGFyZ3VtZW50c1swXS50b0ludDMyKCk7Ci0gICAgaW50IHkgPSBhcmd1bWVudHNbMV0u
dG9JbnQzMigpOwotCi0gICAgYWNjZXNzaWJpbGl0eU9iamVjdCgpLnNjcm9sbFRvR2xvYmFsUG9p
bnQoV2ViUG9pbnQoeCwgeSkpOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmZhbGxiYWNrQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRM
aXN0ICYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKaW5kZXggOGFlNmQ0MTJmZjE5ZDFlOWRiMDMzYTk1M2ViNjQwMWQ1NDdj
ODk5MS4uYjVmY2U4NmYwOTk0ZDJlYjNiNWU5ZTBhYjkzNWVjMTcyZDY1MjExMiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaApAQCAtMTI2LDkgKzEyNiw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGROb3RpZmljYXRp
b25MaXN0ZW5lckNhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
ICAgICB2b2lkIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgdGFrZUZvY3VzQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2Nyb2xsVG9NYWtl
VmlzaWJsZUNhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAg
ICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXNDYWxsYmFjayhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzY3JvbGxUb0dsb2JhbFBvaW50
Q2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgdm9p
ZCBmYWxsYmFja0NhbGxiYWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRHdGsuY3BwCmluZGV4IDU2ZDNhNGU2YjBkZjIyYjVmNjg5NjM4NTIxZTBiYTg3YjJiYjlk
NzQuLmZlNjliODUzNGRmZmE3OTM4Y2Q0MWYzODYyODYxYTMzNTBiYzBkMjIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5j
cHAKQEAgLTgyNSwxOCArODI1LDMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVTZWxlY3Rpb24oKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KLQotdm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKLXsKLSAgICAvLyBGSVhN
RTogaW1wbGVtZW50Ci19Ci0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9N
YWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo
dCkKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KLXZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2Nyb2xsVG9HbG9iYWxQb2ludChpbnQgeCwgaW50IHkpCi17Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudAotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBjNTU0NWY2NWZhMzg0NGYzYjYyYmJkYzgw
ODM1YWFhMmUzOWQxZTJlLi45MzYwZWYxZTdlMDQzODkxNzU5ODA1ODdhYTg0NzRiZWMzYWQ2ZWM2
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQpAQCAtMTM5MiwxOCArMTM5MiwzIEBAIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFy
a2VyCiB9CiAKICNlbmRpZiAvLyBTVVBQT1JUU19BWF9URVhUTUFSS0VSUwotCi12b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFRvTWFrZVZpc2libGUoKQotewotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKLX0KLQotdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01h
a2VWaXNpYmxlV2l0aFN1YkZvY3VzKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQotdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzY3JvbGxUb0dsb2JhbFBvaW50KGludCB4LCBpbnQgeSkKLXsKLSAgICAvLyBGSVhN
RTogaW1wbGVtZW50Ci19CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKaW5kZXggM2I3NzY4MGNkODVjMzE3MGUyM2EyMGI0
Y2Q4MmQ2NWVjZmUwOTA2Zi4uMjg2M2I1Y2ZkMmIyODgwYzg4YjNiMGFlMjI0ZjM3ODM0MjE2MzJh
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V2luLmNwcApAQCAtNjk2LDE4ICs2OTYsMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbigpCiB7CiAgICAgbV9lbGVtZW50LT5hY2NTZWxlY3Qo
U0VMRkxBR19SRU1PVkVTRUxFQ1RJT04sIHNlbGYoKSk7CiB9Ci0KLXZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCi17Ci0gICAgLy8gRklYTUU6IGltcGxl
bWVudAotfQotCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFRvTWFrZVZpc2li
bGVXaXRoU3ViRm9jdXMoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCi17Ci0g
ICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCi12b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFRvR2xvYmFsUG9pbnQoaW50IHgsIGludCB5KQotewotICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBkNWU4N2FmNmI5MTJlYjJhNWI0N2M1NDZiM2JhMjY4ZDVmYjNhZWRk
Li42ZGNiMDI2Nzg3ZDAxYjNkYjc5YTYzNzZhNjg1NmM4YTUwNjNhNDc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTItMDEtMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDUyNDQuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwNTI0NAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MTgKKworICAgICAgICBicm9r
ZSBDaHJvbWl1bSBNYWMgKFJlcXVlc3RlZCBieSByb2xhbmRzdGVpbmVyIG9uICN3ZWJraXQpLgor
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xv
YmFsLXBvaW50LWlmcmFtZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LWlmcmFtZS1u
ZXN0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWdsb2JhbC1wb2ludC1pZnJhbWUtbmVzdGVkLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3Jv
bGwtdG8tZ2xvYmFsLXBvaW50LWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWdsb2JhbC1wb2ludC1tYWluLXdp
bmRvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
YWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW1haW4td2luZG93Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwt
dG8tZ2xvYmFsLXBvaW50LW5lc3RlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW5l
c3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2li
aWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS1kaXYtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xs
LXRvLW1ha2UtdmlzaWJsZS1kaXYtb3ZlcmZsb3cuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtaWZy
YW1lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9h
Y2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtaWZyYW1lLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFr
ZS12aXNpYmxlLW1haW4td2luZG93LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtbWFp
bi13aW5kb3cuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nl
c3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtbmVzdGVkLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10
by1tYWtlLXZpc2libGUtbmVzdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLXdpdGgtc3ViZm9j
dXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Fj
Y2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS13aXRoLXN1YmZvY3VzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTItMDEtMTcgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQWNjZXNzaWJpbGl0eTogQ2hyb21pdW0gbmVlZHMgbWV0aG9kcyB0byBz
Y3JvbGwgYW4gb2JqZWN0IGludG8gdmlldyBvciB0byBhIHNwZWNpZmljIGxvY2F0aW9uLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3Jv
bGwtdG8tZ2xvYmFsLXBvaW50LWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1l
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI3MDcyZDYzMmVh
NzAzNGNiOWY1ZGNmOTliYWVlMjkyZjQ0NGNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3RzIHRoYXQgc2Nyb2xsaW5nIHRvIG1vdmUgYW4g
ZWxlbWVudCB0byBhIHNwZWNpZmljIHBvaW50IHN1Y2Nlc3NmdWxseSBzY3JvbGxzIGFuIGlmcmFt
ZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLTUwMDAtcGl4ZWwgYm94Ci0KLTUw
MDAtcGl4ZWwgYm94Ci1QQVNTIHdpbmRvdy5wYWdlWU9mZnNldCBpcyAwCi1QQVNTIGZyYW1lV2lu
ZG93LnBhZ2VZT2Zmc2V0IGlzIDAKLVBBU1MgdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LnRvcCBpcyAwCi1QQVNTIHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgaXMgMzAw
Ci1QQVNTIHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgaXMgMzAwMAotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWds
b2JhbC1wb2ludC1pZnJhbWUtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWdsb2JhbC1wb2ludC1pZnJhbWUt
bmVzdGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE0MzVh
M2RhMGFiN2YyOWViYzgxMTU5ZjRlNDFjNmU3ZWE3YzFiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9h
Y2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1lLW5lc3RlZC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UZXN0cyB0aGF0IHNjcm9sbGlu
ZyB0byBtb3ZlIGFuIGVsZW1lbnQgdG8gYSBzcGVjaWZpYyBwb2ludCBzdWNjZXNzZnVsbHkgc2Ny
b2xscyBib3RoIGFuIGlmcmFtZSBhbmQgYSBkaXYgd2l0aCBvdmVyZmxvdy4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLTUwMDAtcGl4ZWwgYm94Ci0KLTUwMDAtcGl4ZWwgYm94Ci1Q
QVNTIHdpbmRvdy5wYWdlWU9mZnNldCBpcyAwCi1QQVNTIGZyYW1lV2luZG93LnBhZ2VZT2Zmc2V0
IGlzIDAKLVBBU1MgY29udGFpbmVyLnNjcm9sbFRvcCBpcyAwCi1QQVNTIHRhcmdldC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS50b3AgaXMgMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkudG9wIGlzIDMwMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9w
IGlzIDMwMDAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmls
aXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1lLW5lc3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50
LWlmcmFtZS1uZXN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDczNDAy
OWMxNmIyMDkzYTAzMDRhNmZkYmVhYmE1OWQ2NDQyZTFlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9h
Y2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1lLW5lc3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLQotPGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAw
cHg7Ij41MDAwLXBpeGVsIGJveDwvZGl2PgotCi08IS0tIFRoZSBjb250ZW50cyBvZiB0aGlzIGlm
cmFtZSwgbW9yZSBuaWNlbHkgZm9ybWF0dGVkOgotIDxib2R5PgotICAgPGRpdiBzdHlsZT0nYm9y
ZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Jz41MDAwLXBpeGVsIGJveDwvZGl2
PgotICAgPGRpdiBpZD0nY29udGFpbmVyJyBzdHlsZT0naGVpZ2h0OiAxMDBweDsgb3ZlcmZsb3c6
IHNjcm9sbCc+Ci0gICAgIDxkaXYgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkICMwMDA7IGhlaWdo
dDogNTAwMHB4Oyc+NTAwMC1waXhlbCBib3g8L2Rpdj4KLSAgICAgPGJ1dHRvbiBpZD0ndGFyZ2V0
Jz5UYXJnZXQ8L2J1dHRvbj4KLSAgICAgPGRpdiBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgIzAw
MDsgaGVpZ2h0OiA1MDAwcHg7Jz41MDAwLXBpeGVsIGJveDwvZGl2PgotICAgPC9kaXY+Ci0gICA8
ZGl2IHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsnPjUwMDAt
cGl4ZWwgYm94PC9kaXY+Ci0gIDwvYm9keT4KLSAtLT4KLTxpZnJhbWUgaWQ9ImZyYW1lIiBzcmM9
ImRhdGE6dGV4dC9odG1sLDxib2R5PjxkaXYgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkICMwMDA7
IGhlaWdodDogNTAwMHB4Oyc+NTAwMC1waXhlbCBib3g8L2Rpdj48ZGl2IGlkPSdjb250YWluZXIn
IHN0eWxlPSdoZWlnaHQ6IDEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsJz48ZGl2IHN0eWxlPSdib3Jk
ZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsnPjUwMDAtcGl4ZWwgYm94PC9kaXY+
PGJ1dHRvbiBpZD0ndGFyZ2V0Jz5UYXJnZXQ8L2J1dHRvbj48ZGl2IHN0eWxlPSdib3JkZXI6IDFw
eCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsnPjUwMDAtcGl4ZWwgYm94PC9kaXY+PC9kaXY+
PGRpdiBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Jz41MDAw
LXBpeGVsIGJveDwvZGl2PjwvYm9keT4iPjwvaWZyYW1lPgotCi08ZGl2IHN0eWxlPSJib3JkZXI6
IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci0K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgc2Nyb2xsaW5nIHRvIG1vdmUgYW4gZWxlbWVudCB0byBhIHNwZWNpZmljIHBvaW50IHN1
Y2Nlc3NmdWxseSBzY3JvbGxzIGJvdGggYW4gaWZyYW1lIGFuZCBhIGRpdiB3aXRoIG92ZXJmbG93
LiIpOwotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cuZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZnJhbWUiKTsKLSAgICB3aW5kb3cuZnJhbWVXaW5kb3cgPSBmcmFt
ZS5jb250ZW50V2luZG93OwotICAgIHdpbmRvdy5mcmFtZURvYyA9IGZyYW1lV2luZG93LmRvY3Vt
ZW50OwotICAgIHdpbmRvdy5jb250YWluZXIgPSBmcmFtZURvYy5nZXRFbGVtZW50QnlJZCgiY29u
dGFpbmVyIik7Ci0gICAgd2luZG93LnRhcmdldCA9IGZyYW1lRG9jLmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAg
ICAgICAgdGFyZ2V0LmZvY3VzKCk7Ci0gICAgICAgIHZhciB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgfQotCi0gICAg
Ly8gUmVzZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBjYWxsaW5nIGZvY3Vz
KCkgY2FuIHNjcm9sbCB0aGUgcGFnZSB0b28pLgotICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsK
LSAgICBmcmFtZVdpbmRvdy5zY3JvbGxUbygwLCAwKTsKLSAgICBjb250YWluZXIuc2Nyb2xsVG9w
ID0gMDsKLSAgICBzaG91bGRCZSgid2luZG93LnBhZ2VZT2Zmc2V0IiwgIjAiKTsKLSAgICBzaG91
bGRCZSgiZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQiLCAiMCIpOwotICAgIHNob3VsZEJlKCJjb250
YWluZXIuc2Nyb2xsVG9wIiwgIjAiKTsKLQotICAgIC8vIFNjcm9sbCB0byB2YXJpb3VzIGxvY2F0
aW9ucyBhbmQgY2hlY2suCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikK
LSAgICAgICAgdGFyZ2V0QWNjZXNzaWJsZU9iamVjdC5zY3JvbGxUb0dsb2JhbFBvaW50KDAsIDAp
OwotICAgIHNob3VsZEJlKCJ0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIiwgIjAi
KTsKLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJn
ZXRBY2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMzAwKTsKLSAgICBzaG91
bGRCZSgidGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCIsICIzMDAiKTsKLSAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJnZXRBY2Nlc3Np
YmxlT2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMzAwMCk7Ci0gICAgc2hvdWxkQmUoInRh
cmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMzAwMCIpOwotCi0gICAgZmluaXNo
SlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24o
KSB7Ci0gICAgc2V0VGltZW91dChydW5UZXN0LCAxMCk7Ci19LCBmYWxzZSk7Ci0KLTwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWdsb2JhbC1wb2ludC1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkv
c2Nyb2xsLXRvLWdsb2JhbC1wb2ludC1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDlhNDg4NzA1ZjIzYjgwYzE4MTU0NzRiMWQyYTE0NWQwMjhiOGFmYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtaWZyYW1l
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgotCi08ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWln
aHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci0KLTxpZnJhbWUgaWQ9ImZyYW1lIiBz
cmM9ImRhdGE6dGV4dC9odG1sLDxib2R5PjxkaXYgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkICMw
MDA7IGhlaWdodDogNTAwMHB4Oyc+NTAwMC1waXhlbCBib3g8L2Rpdj48YnV0dG9uIGlkPSd0YXJn
ZXQnPlRhcmdldDwvYnV0dG9uPjxkaXYgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkICMwMDA7IGhl
aWdodDogNTAwMHB4Oyc+NTAwMC1waXhlbCBib3g8L2Rpdj48L2JvZHk+Ij48L2lmcmFtZT4KLQot
PGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Ij41MDAw
LXBpeGVsIGJveDwvZGl2PgotCi08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHNjcm9sbGluZyB0byBtb3ZlIGFuIGVsZW1lbnQgdG8g
YSBzcGVjaWZpYyBwb2ludCBzdWNjZXNzZnVsbHkgc2Nyb2xscyBhbiBpZnJhbWUuIik7Ci0KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdpbmRvdy5mcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJmcmFtZSIpOwotICAgIHdpbmRvdy5mcmFtZVdpbmRvdyA9IGZyYW1lLmNvbnRlbnRX
aW5kb3c7Ci0gICAgd2luZG93LmZyYW1lRG9jID0gZnJhbWVXaW5kb3cuZG9jdW1lbnQ7Ci0gICAg
d2luZG93LnRhcmdldCA9IGZyYW1lRG9jLmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLQotICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgdGFyZ2V0LmZv
Y3VzKCk7Ci0gICAgICAgIHZhciB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgfQotCi0gICAgLy8gUmVzZXQgdGhlIGlu
aXRpYWwgc2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBjYWxsaW5nIGZvY3VzKCkgY2FuIHNjcm9sbCB0
aGUgcGFnZSB0b28pLgotICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKLSAgICBmcmFtZVdpbmRv
dy5zY3JvbGxUbygwLCAwKTsKLSAgICBzaG91bGRCZSgid2luZG93LnBhZ2VZT2Zmc2V0IiwgIjAi
KTsKLSAgICBzaG91bGRCZSgiZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQiLCAiMCIpOwotCi0gICAg
Ly8gU2Nyb2xsIHRvIHZhcmlvdXMgbG9jYXRpb25zIGFuZCBjaGVjay4KLSAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0
LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMCk7Ci0gICAgc2hvdWxkQmUoInRhcmdldC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMCIpOwotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpCi0gICAgICAgIHRhcmdldEFjY2Vzc2libGVPYmplY3Quc2Nyb2xsVG9HbG9i
YWxQb2ludCgwLCAzMDApOwotICAgIHNob3VsZEJlKCJ0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkudG9wIiwgIjMwMCIpOwotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpCi0gICAgICAgIHRhcmdldEFjY2Vzc2libGVPYmplY3Quc2Nyb2xsVG9HbG9iYWxQb2ludCgw
LCAzMDAwKTsKLSAgICBzaG91bGRCZSgidGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRv
cCIsICIzMDAwIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKLSAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDEw
KTsKLX0sIGZhbHNlKTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0
eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW1haW4td2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLWdsb2JhbC1w
b2ludC1tYWluLXdpbmRvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQyMjg3NDA0NzgzM2U3YWU5ZDQ2M2ZiMzUxODU0NGM1Y2Q4NDY4NzAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW1haW4td2luZG93
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RzIHRoYXQg
c2Nyb2xsaW5nIGFuIGVsZW1lbnQgdG8gYSBzcGVjaWZpYyBwb2ludCBzdWNjZXNzZnVsbHkgc2Ny
b2xscyB0aGUgbWFpbiB3aW5kb3cuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi01
MDAwLXBpeGVsIGJveAotVGFyZ2V0Ci01MDAwLXBpeGVsIGJveAotUEFTUyB3aW5kb3cucGFnZVlP
ZmZzZXQgaXMgMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIGlzIDAK
LVBBU1MgdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCBpcyAzMDAKLVBBU1MgdGFy
Z2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCBpcyAzMDAwCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50
LW1haW4td2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3Np
YmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtbWFpbi13aW5kb3cuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWIxNzExMDZjN2QwNGQzMTU0MmFmYjdjYWRhOTRjYWZlYWFj
NmNkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwt
cG9pbnQtbWFpbi13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0KLTxkaXYgc3R5bGU9ImJvcmRlcjogMXB4
IHNvbGlkICMwMDA7IGhlaWdodDogNTAwMHB4OyI+NTAwMC1waXhlbCBib3g8L2Rpdj4KLTxidXR0
b24gaWQ9InRhcmdldCI+VGFyZ2V0PC9idXR0b24+Ci08ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBz
b2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci0KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
c2Nyb2xsaW5nIGFuIGVsZW1lbnQgdG8gYSBzcGVjaWZpYyBwb2ludCBzdWNjZXNzZnVsbHkgc2Ny
b2xscyB0aGUgbWFpbiB3aW5kb3cuIik7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLQotICAgIGlmICh3
aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgdGFyZ2V0LmZvY3VzKCk7
Ci0gICAgICAgIHZhciB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0ID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgfQotCi0gICAgLy8gUmVzZXQgdGhlIGluaXRpYWwg
c2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBjYWxsaW5nIGZvY3VzKCkgY2FuIHNjcm9sbCB0aGUgcGFn
ZSB0b28pLgotICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKLSAgICBzaG91bGRCZSgid2luZG93
LnBhZ2VZT2Zmc2V0IiwgIjAiKTsKLQotICAgIC8vIFNjcm9sbCB0byB2YXJpb3VzIGxvY2F0aW9u
cyBhbmQgY2hlY2suCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKLSAg
ICAgICAgdGFyZ2V0QWNjZXNzaWJsZU9iamVjdC5zY3JvbGxUb0dsb2JhbFBvaW50KDAsIDApOwot
ICAgIHNob3VsZEJlKCJ0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIiwgIjAiKTsK
LSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJnZXRB
Y2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMzAwKTsKLSAgICBzaG91bGRC
ZSgidGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCIsICIzMDAiKTsKLSAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJnZXRBY2Nlc3NpYmxl
T2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMzAwMCk7Ci0gICAgc2hvdWxkQmUoInRhcmdl
dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMzAwMCIpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19Ci0KLXJ1blRlc3QoKTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNj
ZXNzaWJpbGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW5lc3RlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9i
YWwtcG9pbnQtbmVzdGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTgxYTFmZDc0OTA4YzVhZjE0ZGJlMTRiNDFmNzNjN2YwZWI4NGQzOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtbmVzdGVkLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHRoYXQgc2Nyb2xs
aW5nIGFuIGVsZW1lbnQgdG8gYSBzcGVjaWZpYyBwb2ludCBjYW4gc3VjY2Vzc2Z1bGx5IHNjcm9s
bCBtdWx0aXBsZSBuZXN0ZWQgc2Nyb2xsaW5nIHZpZXdzJy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLTUwMDAtcGl4ZWwgYm94Ci01MDAwLXBpeGVsIGJveAotNTAwMC1waXhlbCBi
b3gKLVRhcmdldAotNTAwMC1waXhlbCBib3gKLTUwMDAtcGl4ZWwgYm94Ci01MDAwLXBpeGVsIGJv
eAotUEFTUyB3aW5kb3cucGFnZVlPZmZzZXQgaXMgMAotUEFTUyBvdXRlckNvbnRhaW5lci5zY3Jv
bGxUb3AgaXMgMAotUEFTUyBpbm5lckNvbnRhaW5lci5zY3JvbGxUb3AgaXMgMAotUEFTUyB0YXJn
ZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIGlzID49IDE1MDAwCi1QQVNTIHRhcmdldC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgaXMgMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkudG9wIGlzIDMwMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkudG9wIGlzIDMwMDAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nl
c3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1nbG9iYWwtcG9pbnQt
bmVzdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNmVhODIyOTYxNmEy
OThiNWI1MzcwMjlmYTY3M2Q4MTliYzdjODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJp
bGl0eS9zY3JvbGwtdG8tZ2xvYmFsLXBvaW50LW5lc3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLQotPGRpdiBz
dHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Ij41MDAwLXBpeGVs
IGJveDwvZGl2PgotCi08ZGl2IGlkPSJvdXRlcl9jb250YWluZXIiIHN0eWxlPSJoZWlnaHQ6IDEw
MHB4OyBvdmVyZmxvdzogc2Nyb2xsIj4KLSAgPGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQg
IzAwMDsgaGVpZ2h0OiA1MDAwcHg7Ij41MDAwLXBpeGVsIGJveDwvZGl2PgotICA8ZGl2IGlkPSJp
bm5lcl9jb250YWluZXIiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsIj4K
LSAgICA8ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsi
PjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci0gICAgPGJ1dHRvbiBpZD0idGFyZ2V0Ij5UYXJnZXQ8L2J1
dHRvbj4KLSAgICA8ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUw
MDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci0gIDwvZGl2PgotICA8ZGl2IHN0eWxlPSJib3Jk
ZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+
Ci08L2Rpdj4KLQotPGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1
MDAwcHg7Ij41MDAwLXBpeGVsIGJveDwvZGl2PgotCi08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHNjcm9sbGluZyBhbiBlbGVtZW50
IHRvIGEgc3BlY2lmaWMgcG9pbnQgY2FuIHN1Y2Nlc3NmdWxseSBzY3JvbGwgbXVsdGlwbGUgbmVz
dGVkIHNjcm9sbGluZyB2aWV3cycuIik7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgd2lu
ZG93Lm91dGVyQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGVyX2NvbnRh
aW5lciIpOwotICAgIHdpbmRvdy5pbm5lckNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbm5lcl9jb250YWluZXIiKTsKLSAgICB3aW5kb3cudGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwotCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotICAgICAgICB0YXJnZXQuZm9jdXMoKTsKLSAgICAgICAgdmFyIHRhcmdldEFj
Y2Vzc2libGVPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
LSAgICB9Ci0KLSAgICAvLyBSZXNldCB0aGUgaW5pdGlhbCBzY3JvbGwgcG9zaXRpb25zIChzaW5j
ZSBjYWxsaW5nIGZvY3VzKCkgY2FuIHNjcm9sbCB0aGUgcGFnZSB0b28pLgotICAgIHdpbmRvdy5z
Y3JvbGxUbygwLCAwKTsKLSAgICBvdXRlckNvbnRhaW5lci5zY3JvbGxUb3AgPSAwOwotICAgIGlu
bmVyQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7Ci0gICAgc2hvdWxkQmUoIndpbmRvdy5wYWdlWU9m
ZnNldCIsICIwIik7Ci0gICAgc2hvdWxkQmUoIm91dGVyQ29udGFpbmVyLnNjcm9sbFRvcCIsICIw
Iik7Ci0gICAgc2hvdWxkQmUoImlubmVyQ29udGFpbmVyLnNjcm9sbFRvcCIsICIwIik7Ci0gICAg
c2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS50b3AiLCAiMTUwMDAiKTsKLQotICAgIC8vIFNjcm9sbCB0byB2YXJpb3VzIGxvY2F0aW9ucyBh
bmQgY2hlY2suCi0KLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAg
ICAgICB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMCk7Ci0g
ICAgc2hvdWxkQmUoInRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMCIpOwot
Ci0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKLSAgICAgICAgdGFyZ2V0
QWNjZXNzaWJsZU9iamVjdC5zY3JvbGxUb0dsb2JhbFBvaW50KDAsIDMwMCk7Ci0gICAgc2hvdWxk
QmUoInRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMzAwIik7Ci0KLSAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB0YXJnZXRBY2Nlc3Np
YmxlT2JqZWN0LnNjcm9sbFRvR2xvYmFsUG9pbnQoMCwgMzAwMCk7Ci0gICAgc2hvdWxkQmUoInRh
cmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiMzAwMCIpOwotCi0gIGZpbmlzaEpT
VGVzdCgpOwotfQotCi1ydW5UZXN0KCk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Fj
Y2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS1kaXYtb3ZlcmZsb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwt
dG8tbWFrZS12aXNpYmxlLWRpdi1vdmVyZmxvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGNjMmVhNjA2ZGJiZjdlOTcxNzVmNGFiMDE4NmQ5OGRmZjg4OGFjYWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxl
LWRpdi1vdmVyZmxvdy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci1UZXN0cyB0aGF0IHNjcm9sbGluZyB0byBtYWtlIGFuIGVsZW1lbnQgdmlzaWJsZSBzdWNjZXNz
ZnVsbHkgc2Nyb2xscyBhbiBhcmJpdHJhcnkgSFRNTCBlbGVtZW50IHRoYXQgaGFzIENTUyBvdmVy
ZmxvdyBzZXQgdG8gJ3Njcm9sbCcuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1V
cHBlciBUYXJnZXQKLTUwMDAtcGl4ZWwgYm94Ci1Mb3dlciBUYXJnZXQKLVBBU1MgY29udGFpbmVy
LnNjcm9sbFRvcCBpcyAwCi1QQVNTIGNvbnRhaW5lci5zY3JvbGxUb3AgaXMgPj0gNDk1MgotUEFT
UyA1MDMwIGlzID49IGNvbnRhaW5lci5zY3JvbGxUb3AKLVBBU1MgY29udGFpbmVyLnNjcm9sbFRv
cCBpcyA+PSAtNzYKLVBBU1MgMiBpcyA+PSBjb250YWluZXIuc2Nyb2xsVG9wCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12
aXNpYmxlLWRpdi1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
YWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLWRpdi1vdmVyZmxvdy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzNjYmIxMmJlMjQxMGFjYjMyZDE2NWNmZGZl
MTdjZWU2MmMwNjhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRv
LW1ha2UtdmlzaWJsZS1kaXYtb3ZlcmZsb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRh
aW5lciIgc3R5bGU9ImhlaWdodDogMTAwcHg7IG92ZXJmbG93OiBzY3JvbGwiPgotICA8YnV0dG9u
IGlkPSJ1cHBlcl90YXJnZXQiPlVwcGVyIFRhcmdldDwvYnV0dG9uPgotICA8ZGl2IHN0eWxlPSJi
b3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9k
aXY+Ci0gIDxidXR0b24gaWQ9Imxvd2VyX3RhcmdldCI+TG93ZXIgVGFyZ2V0PC9idXR0b24+Ci08
L2Rpdj4KLQotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBzY3JvbGxpbmcgdG8gbWFrZSBhbiBlbGVtZW50IHZpc2libGUgc3VjY2Vz
c2Z1bGx5IHNjcm9sbHMgYW4gYXJiaXRyYXJ5IEhUTUwgZWxlbWVudCB0aGF0IGhhcyBDU1Mgb3Zl
cmZsb3cgc2V0IHRvICdzY3JvbGwnLiIpOwotCi1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdp
bmRvdy5jb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7Ci0g
ICAgdmFyIHVwcGVyVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwcGVyX3Rhcmdl
dCIpOwotICAgIHZhciBsb3dlclRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb3dl
cl90YXJnZXQiKTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsK
LSAgICAgICAgbG93ZXJUYXJnZXQuZm9jdXMoKTsKLSAgICAgICAgdmFyIGxvd2VyVGFyZ2V0QWNj
ZXNzaWJsZU9iamVjdCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50Owot
ICAgICAgICB1cHBlclRhcmdldC5mb2N1cygpOwotICAgICAgICB2YXIgdXBwZXJUYXJnZXRBY2Nl
c3NpYmxlT2JqZWN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0g
ICAgfQotCi0gICAgLy8gUmVzZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBj
YWxsaW5nIGZvY3VzKCkgY2FuIHNjcm9sbCB0aGUgcGFnZSB0b28pLgotICAgIGNvbnRhaW5lci5z
Y3JvbGxUb3AgPSAwOwotICAgIHNob3VsZEJlKCJjb250YWluZXIuc2Nyb2xsVG9wIiwgIjAiKTsK
LQotICAgIC8vIFNjcm9sbCB0byBtYWtlIGxvd2VyIHRhcmdldCB2aXNpYmxlIGFuZCBjaGVjay4K
LSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICBsb3dlclRh
cmdldEFjY2Vzc2libGVPYmplY3Quc2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwotICAgIHZhciB0b3Ag
PSBsb3dlclRhcmdldC5vZmZzZXRUb3AgLSBjb250YWluZXIub2Zmc2V0VG9wOwotICAgIHZhciBt
aW5ZT2Zmc2V0ID0gdG9wICsgbG93ZXJUYXJnZXQub2Zmc2V0SGVpZ2h0IC0gY29udGFpbmVyLm9m
ZnNldEhlaWdodDsKLSAgICB2YXIgbWF4WU9mZnNldCA9IHRvcDsKLSAgICBzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCgiY29udGFpbmVyLnNjcm9sbFRvcCIsICIiICsgbWluWU9mZnNldCk7Ci0g
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoIiIgKyBtYXhZT2Zmc2V0LCAiY29udGFpbmVy
LnNjcm9sbFRvcCIpOwotCi0gICAgLy8gU2Nyb2xsIHRvIG1ha2UgdXBwZXIgdGFyZ2V0IHZpc2li
bGUgYW5kIGNoZWNrLgotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCi0g
ICAgICAgIHVwcGVyVGFyZ2V0QWNjZXNzaWJsZU9iamVjdC5zY3JvbGxUb01ha2VWaXNpYmxlKCk7
Ci0gICAgdG9wID0gdXBwZXJUYXJnZXQub2Zmc2V0VG9wIC0gY29udGFpbmVyLm9mZnNldFRvcDsK
LSAgICBtaW5ZT2Zmc2V0ID0gdG9wICsgdXBwZXJUYXJnZXQub2Zmc2V0SGVpZ2h0IC0gY29udGFp
bmVyLm9mZnNldEhlaWdodDsKLSAgICBtYXhZT2Zmc2V0ID0gdG9wOwotICAgIHNob3VsZEJlR3Jl
YXRlclRoYW5PckVxdWFsKCJjb250YWluZXIuc2Nyb2xsVG9wIiwgIiIgKyBtaW5ZT2Zmc2V0KTsK
LSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiIiArIG1heFlPZmZzZXQsICJjb250YWlu
ZXIuc2Nyb2xsVG9wIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotcnVuVGVzdCgpOwot
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtl
LXZpc2libGUtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjEzMDI4NmMwMDY3MzcyZjdhZDJj
ZjIxYjY5NGE5NDdhMmQzNDNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Ny
b2xsLXRvLW1ha2UtdmlzaWJsZS1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTUgKzAsMCBAQAotVGVzdHMgdGhhdCBzY3JvbGxpbmcgdG8gbWFrZSBhbiBlbGVtZW50IHZp
c2libGUgc3VjY2Vzc2Z1bGx5IHNjcm9sbHMgYW4gaWZyYW1lLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotCi1QQVNTIGZyYW1lV2luZG93LnBhZ2VZT2Zmc2V0IGlzIDAKLVBBU1Mg
ZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQgaXMgPj0gNDkxMAotUEFTUyA1MDM4IGlzID49IGZyYW1l
V2luZG93LnBhZ2VZT2Zmc2V0Ci1QQVNTIGZyYW1lV2luZG93LnBhZ2VZT2Zmc2V0IGlzID49IC0x
MTgKLVBBU1MgMTAgaXMgPj0gZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2li
bGUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmls
aXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQxYTBlMzljYzA5MmEyMTQyNDYzMjQ5YTQwODY1OTI5YWM5NzAzMzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLWlm
cmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KLQotPGlmcmFtZSBpZD0iZnJhbWUiIHNyYz0iZGF0YTp0ZXh0L2h0
bWwsPGJvZHk+PGJ1dHRvbiBpZD0ndXBwZXJfdGFyZ2V0Jz5VcHBlciBUYXJnZXQ8L2J1dHRvbj48
ZGl2IHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCAjMDAwOyBoZWlnaHQ6IDUwMDBweDsnPjUwMDAt
cGl4ZWwgYm94PC9kaXY+PGJ1dHRvbiBpZD0nbG93ZXJfdGFyZ2V0Jz5Mb3dlciBUYXJnZXQ8L2J1
dHRvbj48L2JvZHk+Ij48L2lmcmFtZT4KLQotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzY3JvbGxpbmcgdG8gbWFrZSBhbiBlbGVt
ZW50IHZpc2libGUgc3VjY2Vzc2Z1bGx5IHNjcm9sbHMgYW4gaWZyYW1lLiIpOwotCi1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZnVuY3Rp
b24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cuZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZnJhbWUiKTsKLSAgICB3aW5kb3cuZnJhbWVXaW5kb3cgPSBmcmFtZS5jb250ZW50V2luZG93
OwotICAgIHdpbmRvdy5mcmFtZURvYyA9IGZyYW1lV2luZG93LmRvY3VtZW50OwotCi0gICAgdmFy
IHVwcGVyVGFyZ2V0ID0gZnJhbWVEb2MuZ2V0RWxlbWVudEJ5SWQoInVwcGVyX3RhcmdldCIpOwot
ICAgIHZhciBsb3dlclRhcmdldCA9IGZyYW1lRG9jLmdldEVsZW1lbnRCeUlkKCJsb3dlcl90YXJn
ZXQiKTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAg
ICAgbG93ZXJUYXJnZXQuZm9jdXMoKTsKLSAgICAgICAgdmFyIGxvd2VyVGFyZ2V0QWNjZXNzaWJs
ZU9iamVjdCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotICAgICAg
ICB1cHBlclRhcmdldC5mb2N1cygpOwotICAgICAgICB2YXIgdXBwZXJUYXJnZXRBY2Nlc3NpYmxl
T2JqZWN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgfQot
Ci0gICAgLy8gUmVzZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBjYWxsaW5n
IGZvY3VzKCkgY2FuIHNjcm9sbCB0aGUgcGFnZSB0b28pLgotICAgIGZyYW1lV2luZG93LnNjcm9s
bFRvKDAsIDApOwotICAgIHNob3VsZEJlKCJmcmFtZVdpbmRvdy5wYWdlWU9mZnNldCIsICIwIik7
Ci0KLSAgICAvLyBTY3JvbGwgdG8gbWFrZSBsb3dlciB0YXJnZXQgdmlzaWJsZSBhbmQgY2hlY2su
Ci0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKLSAgICAgICAgbG93ZXJU
YXJnZXRBY2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvTWFrZVZpc2libGUoKTsKLSAgICB2YXIgbWlu
WU9mZnNldCA9IGxvd2VyVGFyZ2V0Lm9mZnNldFRvcCArIGxvd2VyVGFyZ2V0Lm9mZnNldEhlaWdo
dCAtIGZyYW1lV2luZG93LmlubmVySGVpZ2h0OwotICAgIHZhciBtYXhZT2Zmc2V0ID0gbG93ZXJU
YXJnZXQub2Zmc2V0VG9wOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJmcmFtZVdp
bmRvdy5wYWdlWU9mZnNldCIsICIiICsgbWluWU9mZnNldCk7Ci0gICAgc2hvdWxkQmVHcmVhdGVy
VGhhbk9yRXF1YWwoIiIgKyBtYXhZT2Zmc2V0LCAiZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQiKTsK
LQotICAgIC8vIFNjcm9sbCB0byBtYWtlIHVwcGVyIHRhcmdldCB2aXNpYmxlIGFuZCBjaGVjay4K
LSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB1cHBlclRh
cmdldEFjY2Vzc2libGVPYmplY3Quc2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwotICAgIG1pbllPZmZz
ZXQgPSB1cHBlclRhcmdldC5vZmZzZXRUb3AgKyB1cHBlclRhcmdldC5vZmZzZXRIZWlnaHQgLSBm
cmFtZVdpbmRvdy5pbm5lckhlaWdodDsKLSAgICBtYXhZT2Zmc2V0ID0gdXBwZXJUYXJnZXQub2Zm
c2V0VG9wOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJmcmFtZVdpbmRvdy5wYWdl
WU9mZnNldCIsICIiICsgbWluWU9mZnNldCk7Ci0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwoIiIgKyBtYXhZT2Zmc2V0LCAiZnJhbWVXaW5kb3cucGFnZVlPZmZzZXQiKTsKLQotICAgIGZp
bmlzaEpTVGVzdCgpOwotfQotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uKCkgewotICAgIHNldFRpbWVvdXQocnVuVGVzdCwgMTApOwotfSwgZmFsc2UpOwotCi08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2li
bGUtbWFpbi13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLW1haW4td2luZG93LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU2MTgxMmRjYzMwM2U3MTY5
NzU4Nzc5YzIwMjFlZGE0NzhmMWZjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5
L3Njcm9sbC10by1tYWtlLXZpc2libGUtbWFpbi13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGVzdHMgdGhhdCBzY3JvbGxpbmcgdG8gbWFrZSBhbiBl
bGVtZW50IHZpc2libGUgc3VjY2Vzc2Z1bGx5IHNjcm9sbHMgdGhlIG1haW4gd2luZG93LgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVXBwZXIgVGFyZ2V0Ci01MDAwLXBpeGVsIGJv
eAotTG93ZXIgVGFyZ2V0Ci1QQVNTIHdpbmRvdy5wYWdlWU9mZnNldCBpcyAwCi1QQVNTIHdpbmRv
dy5wYWdlWU9mZnNldCBpcyA+PSA0NTMyCi1QQVNTIDUxMTAgaXMgPj0gd2luZG93LnBhZ2VZT2Zm
c2V0Ci1QQVNTIHdpbmRvdy5wYWdlWU9mZnNldCBpcyA+PSAtNDk2Ci1QQVNTIDgyIGlzID49IHdp
bmRvdy5wYWdlWU9mZnNldAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Fj
Y2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS1tYWluLXdpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12
aXNpYmxlLW1haW4td2luZG93Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4
M2JkMTM0MDIyNWY5ZmM5OWE0YTM5NGQ4MWIxYmQxYTkwZjNhOWIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLW1haW4td2luZG93Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgotCi08YnV0dG9uIGlkPSJ1cHBlcl90YXJnZXQiPlVwcGVyIFRhcmdldDwvYnV0dG9u
PgotPGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Ij41
MDAwLXBpeGVsIGJveDwvZGl2PgotPGJ1dHRvbiBpZD0ibG93ZXJfdGFyZ2V0Ij5Mb3dlciBUYXJn
ZXQ8L2J1dHRvbj4KLQotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBzY3JvbGxpbmcgdG8gbWFrZSBhbiBlbGVtZW50IHZpc2libGUg
c3VjY2Vzc2Z1bGx5IHNjcm9sbHMgdGhlIG1haW4gd2luZG93LiIpOwotCi1mdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgIHZhciB1cHBlclRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1
cHBlcl90YXJnZXQiKTsKLSAgICB2YXIgbG93ZXJUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibG93ZXJfdGFyZ2V0Iik7Ci0KLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7Ci0gICAgICAgIGxvd2VyVGFyZ2V0LmZvY3VzKCk7Ci0gICAgICAgIHZhciBsb3dl
clRhcmdldEFjY2Vzc2libGVPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsKLSAgICAgICAgdXBwZXJUYXJnZXQuZm9jdXMoKTsKLSAgICAgICAgdmFyIHVwcGVy
VGFyZ2V0QWNjZXNzaWJsZU9iamVjdCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OwotICAgIH0KLQotICAgIC8vIFJlc2V0IHRoZSBpbml0aWFsIHNjcm9sbCBwb3NpdGlv
biAoc2luY2UgY2FsbGluZyBmb2N1cygpIGNhbiBzY3JvbGwgdGhlIHBhZ2UgdG9vKS4KLSAgICB3
aW5kb3cuc2Nyb2xsVG8oMCwgMCk7Ci0gICAgc2hvdWxkQmUoIndpbmRvdy5wYWdlWU9mZnNldCIs
ICIwIik7Ci0KLSAgICAvLyBTY3JvbGwgdG8gbWFrZSBsb3dlciB0YXJnZXQgdmlzaWJsZSBhbmQg
Y2hlY2suCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKLSAgICAgICAg
bG93ZXJUYXJnZXRBY2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvTWFrZVZpc2libGUoKTsKLSAgICB2
YXIgbWluWU9mZnNldCA9IGxvd2VyVGFyZ2V0Lm9mZnNldFRvcCArIGxvd2VyVGFyZ2V0Lm9mZnNl
dEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodDsKLSAgICB2YXIgbWF4WU9mZnNldCA9IGxvd2Vy
VGFyZ2V0Lm9mZnNldFRvcDsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgid2luZG93
LnBhZ2VZT2Zmc2V0IiwgIiIgKyBtaW5ZT2Zmc2V0KTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbCgiIiArIG1heFlPZmZzZXQsICJ3aW5kb3cucGFnZVlPZmZzZXQiKTsKLQotICAgIC8v
IFNjcm9sbCB0byBtYWtlIHVwcGVyIHRhcmdldCB2aXNpYmxlIGFuZCBjaGVjay4KLSAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQotICAgICAgICB1cHBlclRhcmdldEFjY2Vz
c2libGVPYmplY3Quc2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwotICAgIG1pbllPZmZzZXQgPSB1cHBl
clRhcmdldC5vZmZzZXRUb3AgKyB1cHBlclRhcmdldC5vZmZzZXRIZWlnaHQgLSB3aW5kb3cuaW5u
ZXJIZWlnaHQ7Ci0gICAgbWF4WU9mZnNldCA9IHVwcGVyVGFyZ2V0Lm9mZnNldFRvcDsKLSAgICBz
aG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgid2luZG93LnBhZ2VZT2Zmc2V0IiwgIiIgKyBtaW5Z
T2Zmc2V0KTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiIiArIG1heFlPZmZzZXQs
ICJ3aW5kb3cucGFnZVlPZmZzZXQiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1ydW5U
ZXN0KCk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xs
LXRvLW1ha2UtdmlzaWJsZS1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLW5lc3RlZC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZGYwOWY2MWU4ZjBi
ZTcyZTk4NDZiYzIyZThmZWI0MjNjNDQ3ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJp
bGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLW5lc3RlZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UZXN0cyB0aGF0IHNjcm9sbGluZyB0byBtYWtlIGFuIGVs
ZW1lbnQgdmlzaWJsZSBzdWNjZXNzZnVsbHkgc2Nyb2xscyBtdWx0aXBsZSBuZXN0ZWQgc2Nyb2xs
aW5nIHZpZXdzJy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLTUwMDAtcGl4ZWwg
Ym94Ci01MDAwLXBpeGVsIGJveAotNTAwMC1waXhlbCBib3gKLVRhcmdldAotUEFTUyB3aW5kb3cu
cGFnZVlPZmZzZXQgaXMgMAotUEFTUyBvdXRlckNvbnRhaW5lci5zY3JvbGxUb3AgaXMgMAotUEFT
UyBpbm5lckNvbnRhaW5lci5zY3JvbGxUb3AgaXMgMAotUEFTUyB0YXJnZXQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkudG9wIGlzID49IDE1MDAwCi1QQVNTIHdpbmRvdy5pbm5lckhlaWdodCBpcyA+
PSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxl
LW5lc3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0
eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLW5lc3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxYzU2ODMyNGIzYjgzMTc5NDY4ZjEwMDg0NWQwMmZkMjUwMjYzMGVlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS1uZXN0
ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci0KLTxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICMwMDA7IGhl
aWdodDogNTAwMHB4OyI+NTAwMC1waXhlbCBib3g8L2Rpdj4KLQotPGRpdiBpZD0ib3V0ZXJfY29u
dGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbCI+Ci0gIDxkaXYg
c3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICMwMDA7IGhlaWdodDogNTAwMHB4OyI+NTAwMC1waXhl
bCBib3g8L2Rpdj4KLSAgPGRpdiBpZD0iaW5uZXJfY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAx
MDBweDsgb3ZlcmZsb3c6IHNjcm9sbCI+Ci0gICAgPGRpdiBzdHlsZT0iYm9yZGVyOiAxcHggc29s
aWQgIzAwMDsgaGVpZ2h0OiA1MDAwcHg7Ij41MDAwLXBpeGVsIGJveDwvZGl2PgotICAgIDxidXR0
b24gaWQ9InRhcmdldCI+VGFyZ2V0PC9idXR0b24+Ci0gIDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
c2Nyb2xsaW5nIHRvIG1ha2UgYW4gZWxlbWVudCB2aXNpYmxlIHN1Y2Nlc3NmdWxseSBzY3JvbGxz
IG11bHRpcGxlIG5lc3RlZCBzY3JvbGxpbmcgdmlld3MnLiIpOwotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIHdpbmRvdy5vdXRlckNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRlcl9jb250YWluZXIiKTsKLSAgICB3aW5kb3cuaW5uZXJDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW5uZXJfY29udGFpbmVyIik7Ci0gICAgd2luZG93LnRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLQotICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgdGFyZ2V0LmZvY3VzKCk7Ci0gICAgICAg
IHZhciB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9j
dXNlZEVsZW1lbnQ7Ci0gICAgfQotCi0gICAgLy8gUmVzZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHBv
c2l0aW9ucyAoc2luY2UgY2FsbGluZyBmb2N1cygpIGNhbiBzY3JvbGwgdGhlIHBhZ2UgdG9vKS4K
LSAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7Ci0gICAgb3V0ZXJDb250YWluZXIuc2Nyb2xsVG9w
ID0gMDsKLSAgICBpbm5lckNvbnRhaW5lci5zY3JvbGxUb3AgPSAwOwotICAgIHNob3VsZEJlKCJ3
aW5kb3cucGFnZVlPZmZzZXQiLCAiMCIpOwotICAgIHNob3VsZEJlKCJvdXRlckNvbnRhaW5lci5z
Y3JvbGxUb3AiLCAiMCIpOwotICAgIHNob3VsZEJlKCJpbm5lckNvbnRhaW5lci5zY3JvbGxUb3Ai
LCAiMCIpOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0YXJnZXQuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkudG9wIiwgIjE1MDAwIik7Ci0KLSAgICAvLyBTY3JvbGwgdG8gbWFrZSB0
YXJnZXQgdmlzaWJsZS4KLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQot
ICAgICAgICB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0LnNjcm9sbFRvTWFrZVZpc2libGUoKTsKLQot
ICAgIC8vIEluc3RlYWQgb2YgdGVzdGluZyB0aGUgZXhhY3Qgc2Nyb2xsIG9mZnNldHMgb2YgdGhl
IHR3byBjb250YWluZXJzLCBqdXN0IHRlc3QgdGhhdAotICAgIC8vIHRoZSBuZXcgYWJzb2x1dGUg
cG9zaXRpb24gb2YgdGhlIHRhcmdldCBpcyBvbi1zY3JlZW4uCi0gICAgc2hvdWxkQmVHcmVhdGVy
VGhhbk9yRXF1YWwoIndpbmRvdy5pbm5lckhlaWdodCIsICJ0YXJnZXQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkuYm90dG9tIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotcnVuVGVzdCgp
OwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1t
YWtlLXZpc2libGUtd2l0aC1zdWJmb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1tYWtlLXZpc2libGUtd2l0aC1z
dWJmb2N1cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZjZl
MzM2ZDE3YWQ3NjUwZGJkMDUyYTgxYWI3ZDAyYzVhZDMzMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
YWNjZXNzaWJpbGl0eS9zY3JvbGwtdG8tbWFrZS12aXNpYmxlLXdpdGgtc3ViZm9jdXMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgdGhhdCBzY3JvbGxp
bmcgdG8gbWFrZSBhIGNlcnRhaW4gcmVnaW9uIHdpdGhpbiBhbiBlbGVtZW50IHZpc2libGUgc3Vj
Y2Vzc2Z1bGx5IHNjcm9sbHMgdGhlIG1haW4gd2luZG93LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotNTAwMC1waXhlbCBib3gKLVRhcmdldAotUEFTUyB3aW5kb3cucGFnZVlPZmZz
ZXQgaXMgMAotUEFTUyB3aW5kb3cucGFnZVlPZmZzZXQgaXMgPj0gNjk4MgotUEFTUyA3NTgyIGlz
ID49IHdpbmRvdy5wYWdlWU9mZnNldAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS13aXRoLXN1YmZvY3VzLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9hY2Nlc3NpYmlsaXR5L3Njcm9sbC10
by1tYWtlLXZpc2libGUtd2l0aC1zdWJmb2N1cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxM2JiZWZiYjBmMzBjMDU5YzVmOWY1MGIxNDQzMGUwMDVlNTQ5ZGEwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLXRvLW1ha2UtdmlzaWJsZS13aXRoLXN1
YmZvY3VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgotCi08ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCAjMDAw
OyBoZWlnaHQ6IDUwMDBweDsiPjUwMDAtcGl4ZWwgYm94PC9kaXY+Ci08YnV0dG9uIGlkPSJ0YXJn
ZXQiIHN0eWxlPSJoZWlnaHQ6IDUwMDBweDsiPlRhcmdldDwvYnV0dG9uPgotCi08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHNjcm9s
bGluZyB0byBtYWtlIGEgY2VydGFpbiByZWdpb24gd2l0aGluIGFuIGVsZW1lbnQgdmlzaWJsZSBz
dWNjZXNzZnVsbHkgc2Nyb2xscyB0aGUgbWFpbiB3aW5kb3cuIik7Ci0KLWZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAg
dGFyZ2V0LmZvY3VzKCk7Ci0gICAgICAgIHZhciB0YXJnZXRBY2Nlc3NpYmxlT2JqZWN0ID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7Ci0gICAgfQotCi0gICAgLy8gUmVz
ZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIChzaW5jZSBjYWxsaW5nIGZvY3VzKCkgY2Fu
IHNjcm9sbCB0aGUgcGFnZSB0b28pLgotICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTsKLSAgICBz
aG91bGRCZSgid2luZG93LnBhZ2VZT2Zmc2V0IiwgIjAiKTsKLQotICAgIC8vIFNjcm9sbCB0byBt
YWtlIHRoZSBtaWRwb2ludCBvZiB0aGUgdGFyZ2V0IHZpc2libGUgYW5kIGNoZWNrLgotICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCi0gICAgICAgIHRhcmdldEFjY2Vzc2li
bGVPYmplY3Quc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cygwLCAyNTAwLCAxMDAsIDI2
MDApOwotICAgIHZhciBtaW5ZT2Zmc2V0ID0gdGFyZ2V0Lm9mZnNldFRvcCArIDI1MDAgLSB3aW5k
b3cuaW5uZXJIZWlnaHQ7Ci0gICAgdmFyIG1heFlPZmZzZXQgPSB0YXJnZXQub2Zmc2V0VG9wICsg
MjUwMDsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgid2luZG93LnBhZ2VZT2Zmc2V0
IiwgIiIgKyBtaW5ZT2Zmc2V0KTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgiIiAr
IG1heFlPZmZzZXQsICJ3aW5kb3cucGFnZVlPZmZzZXQiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgp
OwotfQotCi1ydW5UZXN0KCk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>