<?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>105048</bug_id>
          
          <creation_ts>2012-12-14 12:10:13 -0800</creation_ts>
          <short_desc>REGRESSION(r137570): Stale nodes in the touchEventTarget HashCountedSet are triggering crashes. Rolling out while I find the root cause. (Requested by leviw on #webkit).</short_desc>
          <delta_ts>2012-12-14 12:17:39 -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>103914</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>leviw</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>791754</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 12:10:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/137570 broke the build:
Stale nodes in the touchEventTarget HashCountedSet are triggering crashes. Rolling out while I find the root cause. (Requested by leviw 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>791756</commentid>
    <comment_count>1</comment_count>
      <attachid>179511</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 12:10:56 -0800</bug_when>
    <thetext>Created attachment 179511
ROLLOUT of r137570

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>791759</commentid>
    <comment_count>2</comment_count>
      <attachid>179511</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 12:17:35 -0800</bug_when>
    <thetext>Comment on attachment 179511
ROLLOUT of r137570

Clearing flags on attachment: 179511

Committed r137761: &lt;http://trac.webkit.org/changeset/137761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791760</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-14 12:17:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179511</attachid>
            <date>2012-12-14 12:10:56 -0800</date>
            <delta_ts>2012-12-14 12:17:35 -0800</delta_ts>
            <desc>ROLLOUT of r137570</desc>
            <filename>bug-105048-20121214201718.patch</filename>
            <type>text/plain</type>
            <size>36870</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRjZDdkYjk2NTk1MTMz
NDEzNDViYmJjZThhMDNhNzk5ZjE1OTQ4Yy4uZmQ0M2RlMDQ4YWVhYjA1YzNjZjQyZGI5OWNkZDBi
Y2NjZTQ0MmE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEyLTE0ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM3NTcwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzc1NzAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTA0OAorCisgICAgICAgIFN0YWxlIG5vZGVzIGluIHRoZSB0b3VjaEV2ZW50
VGFyZ2V0IEhhc2hDb3VudGVkU2V0IGFyZQorICAgICAgICB0cmlnZ2VyaW5nIGNyYXNoZXMuIFJv
bGxpbmcgb3V0IHdoaWxlIEkgZmluZCB0aGUgcm9vdCBjYXVzZS4KKyAgICAgICAgKFJlcXVlc3Rl
ZCBieSBsZXZpdyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpkaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcik6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dG91Y2hFdmVudEhhbmRsZXJDb3Vu
dCk6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6dHJ5QWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjp0cnlSZW1vdmVFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6On5I
VE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVw
ZGF0ZVR5cGUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0
RG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1
bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY2hy
b21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5oOgorICAgICAgICAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDaHJvbWl1bSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMTItMTQgIE1pY2hlbGFuZ2VsbyBE
ZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTIFNoYWRl
cnNdIFJlbW92ZSBjb2RlIGZvciB0aGUgb3RoZXIgbWVzaCBib3ggdHlwZXMgKGJvcmRlci1ib3gg
fCBwYWRkaW5nLWJveCB8IGNvbnRlbnQtYm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA3YWM2NGI0MmQxNjNiMGFjMjY0OTA1NTU2ZDg3NWE0MjQ3MzFhMjlkLi4yZmQ4YTBhY2NjOWZk
Y2RlNTAwMDg4ZWEwZDM1ZDczNmZmOThmNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM3NTcw
LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzc1NzAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTA0OAorCisgICAg
ICAgIFN0YWxlIG5vZGVzIGluIHRoZSB0b3VjaEV2ZW50VGFyZ2V0IEhhc2hDb3VudGVkU2V0IGFy
ZQorICAgICAgICB0cmlnZ2VyaW5nIGNyYXNoZXMuIFJvbGxpbmcgb3V0IHdoaWxlIEkgZmluZCB0
aGUgcm9vdCBjYXVzZS4KKyAgICAgICAgKFJlcXVlc3RlZCBieSBsZXZpdyBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpy
ZXF1ZXN0VG91Y2hFdmVudFR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisKIDIwMTItMTItMTQgIFN0ZXBoZW4g
V2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
IFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTM1OTc1YjUwYjNjNzIx
YWVhYjA1MDVjMTA0OTMzY2Q0MmRjNmRlZC4uMTU0YzIzMjUwMzZiMmMzODdmN2JlOTcxMTYwYWE2
NWIyYmJhODAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00OTgsNiArNDk4LDkgQEAg
RG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlz
WEhUTUwsIGJvb2wgaXNIVE1MKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChmYWxz
ZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25EZXB0aCgwKQogICAgICwgbV93aGVlbEV2ZW50SGFu
ZGxlckNvdW50KDApCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICAsIG1fdG91Y2hFdmVu
dEhhbmRsZXJDb3VudCgwKQorI2VuZGlmCiAgICAgLCBtX3BlbmRpbmdUYXNrc1RpbWVyKHRoaXMs
ICZEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJlZCkKICAgICAsIG1fc2NoZWR1bGVkVGFz
a3NBcmVTdXNwZW5kZWQoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkKHRydWUp
CkBAIC01NTk2LDU3ICs1NTk5LDMzIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJlbW92ZVdoZWVsRXZl
bnRIYW5kbGVyKCkKICAgICB3aGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCh0aGlzKTsKIH0K
IAotdm9pZCBEb2N1bWVudDo6ZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSogaGFuZGxlcikK
K3ZvaWQgRG9jdW1lbnQ6OmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCkKIHsKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIGlmICghbV90b3VjaEV2ZW50VGFyZ2V0cy5nZXQoKSkKLSAgICAg
ICAgbV90b3VjaEV2ZW50VGFyZ2V0cyA9IGFkb3B0UHRyKG5ldyBUb3VjaEV2ZW50VGFyZ2V0U2V0
KTsKLSAgICBtX3RvdWNoRXZlbnRUYXJnZXRzLT5hZGQoaGFuZGxlcik7Ci0gICAgaWYgKERvY3Vt
ZW50KiBwYXJlbnQgPSBwYXJlbnREb2N1bWVudCgpKSB7Ci0gICAgICAgIHBhcmVudC0+ZGlkQWRk
VG91Y2hFdmVudEhhbmRsZXIodGhpcyk7CisgICAgKyttX3RvdWNoRXZlbnRIYW5kbGVyQ291bnQ7
CisgICAgaWYgKG1fdG91Y2hFdmVudEhhbmRsZXJDb3VudCA+IDEpCiAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsKLSNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRfVFJBQ0tJTkcpCi0gICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciog
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnRvdWNoRXZlbnRUYXJnZXRSZWN0c0RpZENo
YW5nZSh0aGlzKTsKLSNlbmRpZgotICAgICAgICBpZiAobV90b3VjaEV2ZW50VGFyZ2V0cy0+c2l6
ZSgpID09IDEpCi0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm5lZWRUb3Vj
aEV2ZW50cyh0cnVlKTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShoYW5kbGVyKTsK
KyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5uZWVkVG91Y2hFdmVudHModHJ1ZSk7CiAjZW5kaWYKIH0KIAotdm9pZCBE
b2N1bWVudDo6ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoTm9kZSogaGFuZGxlcikKK3ZvaWQg
RG9jdW1lbnQ6OmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCkKIHsKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQotICAgIGlmICghbV90b3VjaEV2ZW50VGFyZ2V0cy5nZXQoKSkKKyAgICBBU1NF
UlQobV90b3VjaEV2ZW50SGFuZGxlckNvdW50KTsKKyAgICAtLW1fdG91Y2hFdmVudEhhbmRsZXJD
b3VudDsKKyAgICBpZiAobV90b3VjaEV2ZW50SGFuZGxlckNvdW50KQogICAgICAgICByZXR1cm47
Ci0gICAgQVNTRVJUKG1fdG91Y2hFdmVudFRhcmdldHMtPmNvbnRhaW5zKGhhbmRsZXIpKTsKLSAg
ICBtX3RvdWNoRXZlbnRUYXJnZXRzLT5yZW1vdmUoaGFuZGxlcik7Ci0gICAgaWYgKERvY3VtZW50
KiBwYXJlbnQgPSBwYXJlbnREb2N1bWVudCgpKSB7Ci0gICAgICAgIHBhcmVudC0+ZGlkUmVtb3Zl
VG91Y2hFdmVudEhhbmRsZXIodGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
OwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVF9UUkFDS0lORykKLSAgICBpZiAoU2Nyb2xsaW5nQ29v
cmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSkKLSAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnRvdWNoRXZlbnRUYXJnZXRSZWN0
c0RpZENoYW5nZSh0aGlzKTsKLSNlbmRpZgotICAgIGlmIChtX3RvdWNoRXZlbnRUYXJnZXRzLT5z
aXplKCkpCi0gICAgICAgIHJldHVybjsKICAgICBmb3IgKGNvbnN0IEZyYW1lKiBmcmFtZSA9IHBh
Z2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50
KCktPmhhc1RvdWNoRXZlbnRIYW5kbGVycygpKQorICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50
KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5uZWVk
VG91Y2hFdmVudHMoZmFsc2UpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlcik7CiAj
ZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBjZTJjODZkYjg4NzdmNWE4ZDQ2MmNm
MTkzMWVjNjkwNmNiMDVjZTgwLi5kOTk0ZjYxY2U1MzEyNTRjYzJmYjQ0ZTEwOWVmYzFhNTJjNzVm
NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjA3LDggKzIwNyw2IEBAIGVudW0gTm9kZUxp
c3RJbnZhbGlkYXRpb25UeXBlIHsKIH07CiBjb25zdCBpbnQgbnVtTm9kZUxpc3RJbnZhbGlkYXRp
b25UeXBlcyA9IEludmFsaWRhdGVPbkFueUF0dHJDaGFuZ2UgKyAxOwogCi10eXBlZGVmIEhhc2hD
b3VudGVkU2V0PE5vZGUqPiBUb3VjaEV2ZW50VGFyZ2V0U2V0OwotCiBjbGFzcyBEb2N1bWVudCA6
IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+
IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKQEAgLTExMjAsMTkgKzExMTgs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKTsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMo
KSBjb25zdCB7IHJldHVybiAobV90b3VjaEV2ZW50VGFyZ2V0cy5nZXQoKSkgPyBtX3RvdWNoRXZl
bnRUYXJnZXRzLT5zaXplKCkgOiBmYWxzZTsgfQorICAgIHVuc2lnbmVkIHRvdWNoRXZlbnRIYW5k
bGVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRIYW5kbGVyQ291bnQ7IH0KICNl
bHNlCi0gICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHVuc2lnbmVkIHRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKSBjb25zdCB7IHJldHVy
biAwOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSop
OwotICAgIHZvaWQgZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoTm9kZSopOwotCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLSAgICBjb25zdCBUb3VjaEV2ZW50VGFyZ2V0U2V0KiB0b3VjaEV2
ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hFdmVudFRhcmdldHMuZ2V0KCk7IH0K
LSNlbHNlCi0gICAgY29uc3QgVG91Y2hFdmVudFRhcmdldFNldCogdG91Y2hFdmVudFRhcmdldHMo
KSBjb25zdCB7IHJldHVybiAwOyB9Ci0jZW5kaWYKKyAgICB2b2lkIGRpZEFkZFRvdWNoRXZlbnRI
YW5kbGVyKCk7CisgICAgdm9pZCBkaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigpOwogCiAgICAg
Ym9vbCB2aXN1YWxVcGRhdGVzQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzdWFsVXBkYXRl
c0FsbG93ZWQ7IH0KIApAQCAtMTUxMSw3ICsxNTAzLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB1
bnNpZ25lZCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKLSAgICBPd25QdHI8VG91Y2hFdmVudFRhcmdldFNldD4gbV90b3VjaEV2ZW50VGFyZ2V0czsK
KyAgICB1bnNpZ25lZCBtX3RvdWNoRXZlbnRIYW5kbGVyQ291bnQ7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA4ZjA4NjMw
MWQ3YWRiMmQ0ODZlYWY5ODYyMGIxZjMwOWIxNzc5MDU4Li5lZjY0ZDAyM2RkNWJkN2RhZTU1MzM3
NTIxZWE5OTM1NWJjZTdiZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMTI1LDggKzIxMjUsOCBA
QCB2b2lkIE5vZGU6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvdWNoRXZlbnROYW1lcy5zaXplKCk7ICsraSkg
ewogICAgICAgICBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yJiBsaXN0ZW5lcnMgPSBnZXRFdmVu
dExpc3RlbmVycyh0b3VjaEV2ZW50TmFtZXNbaV0pOwogICAgICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaiA8IGxpc3RlbmVycy5zaXplKCk7ICsraikgewotICAgICAgICAgICAgb2xkRG9jdW1lbnQt
PmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKHRoaXMpOwotICAgICAgICAgICAgZG9jdW1lbnQo
KS0+ZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIodGhpcyk7CisgICAgICAgICAgICBvbGREb2N1bWVu
dC0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCkt
PmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIxNTUs
NyArMjE1NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlBZGRFdmVudExpc3RlbmVyKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlCiAgICAgICAgIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKICAgICAgICAgICAgIGRvY3VtZW50
LT5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOwogICAgICAgICBlbHNlIGlmIChldmVudE5hbWVz
KCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQotICAgICAgICAgICAgZG9jdW1lbnQtPmRp
ZEFkZFRvdWNoRXZlbnRIYW5kbGVyKHRhcmdldE5vZGUpOworICAgICAgICAgICAgZG9jdW1lbnQt
PmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC0yMTc3LDcgKzIxNzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0
ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKICAgICAgICAgICAgIGRv
Y3VtZW50LT5kaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOwogICAgICAgICBlbHNlIGlmIChl
dmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQotICAgICAgICAgICAgZG9j
dW1lbnQtPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKHRhcmdldE5vZGUpOworICAgICAgICAg
ICAgZG9jdW1lbnQtPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmluZGV4IDBl
MTE2OGI0YzlmYzdmNjZjYzFlNjU0NWJlYjc1OGQxNDUzZDRjMWUuLjliYWRjOTFkYTM4NWYyOTdm
NDBjYWEzNTYxM2M4OWJjMGQ0ZjA3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJh
bWUuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUo
KQogICAgIG1fZG9jdW1lbnQtPmVucXVldWVQb3BzdGF0ZUV2ZW50KGhpc3RvcnlJdGVtICYmIGhp
c3RvcnlJdGVtLT5zdGF0ZU9iamVjdCgpID8gaGlzdG9yeUl0ZW0tPnN0YXRlT2JqZWN0KCkgOiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpKTsKICAgICAKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQotICAgIGlmIChtX2RvY3VtZW50LT5oYXNUb3VjaEV2ZW50SGFuZGxlcnMoKSkK
KyAgICBpZiAobV9kb2N1bWVudC0+dG91Y2hFdmVudEhhbmRsZXJDb3VudCgpKQogICAgICAgICBt
X2RvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+bmVlZFRvdWNoRXZlbnRzKHRy
dWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmlu
ZGV4IDJmMjU1Yzk2MDI1MWU3YTU2ZjRiZTk3ZTI4ZWNhOTc0MDBiY2Y4MzkuLmI5MjdmZDM0OWU0
MDA1ZTBiNmQzZDIzOGM1ZmViYmI5MDNlN2Y1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIEhUTUxJbnB1dEVsZW1lbnQ6On5I
VE1MSW5wdXRFbGVtZW50KCkKICAgICAgICAgZG9jdW1lbnQoKS0+Zm9ybUNvbnRyb2xsZXIoKS0+
Y2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRvbih0aGlzKTsKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogICAgIGlmIChtX2hhc1RvdWNoRXZlbnRIYW5kbGVyKQotICAgICAgICBkb2N1
bWVudCgpLT5kaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcih0aGlzKTsKKyAgICAgICAgZG9jdW1l
bnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKICNlbmRpZgogfQogCkBAIC00ODks
OSArNDg5LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKICAgICBib29s
IGhhc1RvdWNoRXZlbnRIYW5kbGVyID0gbV9pbnB1dFR5cGUtPmhhc1RvdWNoRXZlbnRIYW5kbGVy
KCk7CiAgICAgaWYgKGhhc1RvdWNoRXZlbnRIYW5kbGVyICE9IG1faGFzVG91Y2hFdmVudEhhbmRs
ZXIpIHsKICAgICAgIGlmIChoYXNUb3VjaEV2ZW50SGFuZGxlcikKLSAgICAgICAgZG9jdW1lbnQo
KS0+ZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCktPmRp
ZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCkt
PmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLT5k
aWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigpOwogICAgICAgbV9oYXNUb3VjaEV2ZW50SGFuZGxl
ciA9IGhhc1RvdWNoRXZlbnRIYW5kbGVyOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCmluZGV4IDNkNzEwYTgyZjFlZjVhZjcwODM0NTIxMzZjMTE1ZDhjNmRhMWZlY2Eu
LjljOTE2MzJlMzdkMjE2MTZlMmRiOWQ2ZWQ2MGRmNTgzODI1MTYwYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKQEAgLTE1ODEsNyArMTU4MSw3IEBAIGJvb2wgRE9NV2luZG93OjphZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2
ZW50CiAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVu
dCkKICAgICAgICAgICAgIGRvY3VtZW50LT5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOwogICAg
ICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQot
ICAgICAgICAgICAgZG9jdW1lbnQtPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKGRvY3VtZW50KTsK
KyAgICAgICAgICAgIGRvY3VtZW50LT5kaWRBZGRUb3VjaEV2ZW50SGFuZGxlcigpOwogICAgICAg
ICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCkKICAgICAg
ICAgICAgIGRpZEFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIH0KQEAgLTE2MTIs
NyArMTYxMiw3IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKICAgICAgICAgICAgIGRvY3VtZW50
LT5kaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOwogICAgICAgICBlbHNlIGlmIChldmVudE5h
bWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQotICAgICAgICAgICAgZG9jdW1lbnQt
PmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKGRvY3VtZW50KTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LT5kaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigpOwogICAgIH0KIAogICAgIGlmIChldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLnVubG9hZEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDQxZGZjNDBkMzNlYjczOTA2NDUxNzVmMTA3MGVmN2UwYmFiZjdkMDEu
LjE0ZmFhZGIwNjQwZTkyZjQyMzE0ZDM3YjdjOTMwZmY1ZDAxMDJjODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM3NjksNyArMzc2OSw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIWRvYykKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIGlmICghZG9jLT5oYXNUb3VjaEV2ZW50SGFuZGxlcnMoKSkKKyAg
ICAgICAgICAgIGlmICghZG9jLT50b3VjaEV2ZW50SGFuZGxlckNvdW50KCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdl
dHMuc2V0KHRvdWNoUG9pbnRUYXJnZXRLZXksIG5vZGUpOwogICAgICAgICAgICAgdG91Y2hUYXJn
ZXQgPSBub2RlOwpAQCAtMzc5NCw3ICszNzk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgRG9j
dW1lbnQqIGRvYyA9IHRvdWNoVGFyZ2V0LT50b05vZGUoKS0+ZG9jdW1lbnQoKTsKICAgICAgICAg
aWYgKCFkb2MpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFkb2MtPmhhc1Rv
dWNoRXZlbnRIYW5kbGVycygpKQorICAgICAgICBpZiAoIWRvYy0+dG91Y2hFdmVudEhhbmRsZXJD
b3VudCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEZyYW1lKiB0YXJnZXRGcmFt
ZSA9IGRvYy0+ZnJhbWUoKTsKICAgICAgICAgaWYgKCF0YXJnZXRGcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKaW5kZXggZjBlMzNhNGQ2OWNjMzJiOGE3MzU1MzkxOWY3NGJjOTlkMzZiYWVkMi4uM2Q1
MjBmOGZlNGEyOTljOWFjMGU0ZGQ3ZTEzOThlMjk0NWE5YjY0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIEZyYW1lOjpzZXREb2N1bWVudChQYXNzUmVmUHRy
PERvY3VtZW50PiBuZXdEb2MpCiAgICAgaWYgKG1fcGFnZSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgp
ID09IHRoaXMpIHsKICAgICAgICAgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJD
b3VudENoYW5nZWQoKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICBpZiAobV9k
b2MgJiYgbV9kb2MtPmhhc1RvdWNoRXZlbnRIYW5kbGVycygpKQorICAgICAgICBpZiAobV9kb2Mg
JiYgbV9kb2MtPnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKSkKICAgICAgICAgICAgIG1fcGFnZS0+
Y2hyb21lKCktPmNsaWVudCgpLT5uZWVkVG91Y2hFdmVudHModHJ1ZSk7CiAjZW5kaWYKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKaW5kZXggOWUyYzg0ZDhhYjExNTMxYTIyZTk5MTBmMjY0OTA3N2RkOWQ5NmQ0
Yy4uNTBmZTE1MDAyNGJkMGU1YzA4ODBjN2UzOWU3YmJkMDBiMzBmZDIyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
IAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC0xNzcsNTQgKzE3Niw2IEBAIFJl
Z2lvbiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
KEZyYW1lKiBmcmFtZSwgY29uc3QKICAgICByZXR1cm4gbm9uRmFzdFNjcm9sbGFibGVSZWdpb247
CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRfVFJBQ0tJTkcpCi1zdGF0aWMgdm9pZCBhY2N1
bXVsYXRlUmVuZGVyZXJUb3VjaEV2ZW50VGFyZ2V0UmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0
cywgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBt
ZXRob2QgaXMgTyhOXjIpIGFzIGl0IHdhbGtzIHRoZSB0cmVlIHRvIHRoZSByb290IGZvciBldmVy
eSByZW5kZXJlci4gUmVuZGVyR2VvbWV0cnlNYXAgd291bGQgZml4IHRoaXMuCi0gICAgcmVjdHMu
YXBwZW5kKGVuY2xvc2luZ0ludFJlY3QocmVuZGVyZXItPmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KDApKSk7Ci0gICAgaWYgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkpIHsKLSAgICAg
ICAgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhyZW5kZXJlcik7Ci0g
ICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGJsb2NrLT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgYWNjdW11bGF0
ZVJlbmRlcmVyVG91Y2hFdmVudFRhcmdldFJlY3RzKHJlY3RzLCBjaGlsZCk7Ci0gICAgfQotfQot
Ci1zdGF0aWMgdm9pZCBhY2N1bXVsYXRlRG9jdW1lbnRFdmVudFRhcmdldFJlY3RzKFZlY3RvcjxJ
bnRSZWN0PiYgcmVjdHMsIGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBBU1NFUlQo
ZG9jdW1lbnQpOwotICAgIGlmICghZG9jdW1lbnQtPnRvdWNoRXZlbnRUYXJnZXRzKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvbnN0IFRvdWNoRXZlbnRUYXJnZXRTZXQqIHRhcmdldHMgPSBk
b2N1bWVudC0+dG91Y2hFdmVudFRhcmdldHMoKTsKLSAgICBmb3IgKFRvdWNoRXZlbnRUYXJnZXRT
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSB0YXJnZXRzLT5iZWdpbigpOyBpdGVyICE9IHRhcmdl
dHMtPmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgY29uc3QgTm9kZSogdG91Y2hUYXJnZXQgPSBp
dGVyLT5rZXk7Ci0gICAgICAgIGlmICh0b3VjaFRhcmdldCA9PSBkb2N1bWVudCkgewotICAgICAg
ICAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpKQotICAg
ICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KHZpZXctPmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KDApKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAodG91Y2hUYXJnZXQtPmlzRG9jdW1lbnROb2RlKCkgJiYgdG91Y2hU
YXJnZXQgIT0gZG9jdW1lbnQpIHsKLSAgICAgICAgICAgIGFjY3VtdWxhdGVEb2N1bWVudEV2ZW50
VGFyZ2V0UmVjdHMocmVjdHMsIHN0YXRpY19jYXN0PGNvbnN0IERvY3VtZW50Kj4odG91Y2hUYXJn
ZXQpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSB0b3VjaFRhcmdldC0+cmVuZGVyZXIoKSkKLSAgICAgICAg
ICAgIGFjY3VtdWxhdGVSZW5kZXJlclRvdWNoRXZlbnRUYXJnZXRSZWN0cyhyZWN0cywgcmVuZGVy
ZXIpOwotICAgIH0KLX0KLQotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0ZUFic29s
dXRlVG91Y2hFdmVudFRhcmdldFJlY3RzKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgVmVjdG9y
PEludFJlY3Q+JiByZWN0cykKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwotICAgIGlmICghZG9j
dW1lbnQtPnZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFRoZXNlIHJl
Y3RzIHdvbid0IGJlIHByb3Blcmx5IHVwZGF0ZWQgaWYgdGhlIHJlbmRlcmVycyBhcmUgaW4gYSBz
dWItdHJlZSB0aGF0IHNjcm9sbHMuCi0gICAgYWNjdW11bGF0ZURvY3VtZW50RXZlbnRUYXJnZXRS
ZWN0cyhyZWN0cywgZG9jdW1lbnQpOwotfQotI2VuZGlmCi0KIHVuc2lnbmVkIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpjb21wdXRlQ3VycmVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnQoKQogewogICAg
IHVuc2lnbmVkIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYzM4OGY5
ZTdkYTFjNzBkZTg4MGFmZTJhOWY0YTA3Y2RlNzdiNjg5Mi4uZjI1MTBjY2E1MTI3YmUwZmE4MmM4
OTVjZWY3ODlhOGI0ZThlNDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
QEAgLTUxLDcgKzUwLDYgQEAgdHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7CiAKIGVu
dW0gU2Nyb2xsaW5nTm9kZVR5cGUgeyBTY3JvbGxpbmdOb2RlLCBGaXhlZE5vZGUgfTsKIAotY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CkBAIC0xNTEsMTEgKzE0OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSosIEdyYXBo
aWNzTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJJc0NvbnRhaW5lckZvckZp
eGVkUG9zaXRpb25MYXllcnMoR3JhcGhpY3NMYXllciosIGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXllcklzRml4ZWRUb0NvbnRhaW5lckxheWVyKEdyYXBoaWNzTGF5ZXIqLCBib29s
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdG91Y2hFdmVudFRhcmdldFJlY3RzRGlkQ2hhbmdlKGNv
bnN0IERvY3VtZW50KikgeyB9Ci0KLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRfVFJBQ0tJTkcpCi0g
ICAgdm9pZCBjb21wdXRlQWJzb2x1dGVUb3VjaEV2ZW50VGFyZ2V0UmVjdHMoY29uc3QgRG9jdW1l
bnQqLCBWZWN0b3I8SW50UmVjdD4mKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIFN0cmluZyBtYWlu
VGhyZWFkU2Nyb2xsaW5nUmVhc29uc0FzVGV4dChNYWluVGhyZWFkU2Nyb2xsaW5nUmVhc29ucyk7
CiAgICAgU3RyaW5nIG1haW5UaHJlYWRTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxp
bmdDb29yZGluYXRvckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCmluZGV4IDgzMGE1MzNl
NmRkYWFiYzJmM2VhY2QxN2MyMDk0ZTNkM2MyYmUzOWIuLjk3NDMyODljMWYxMWRlMzk2YzgxMDIy
MGJhYjgxMjA0YmZmZDI2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hy
b21pdW0uY3BwCkBAIC0xMTUsMzAgKzExNSw2IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
aHJvbWl1bTo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcqKQogICAgIC8vIGZyYW1l
IHZpZXcgd2hvc2UgbGF5b3V0IHdhcyB1cGRhdGVkIGlzIG5vdCB0aGUgbWFpbiBmcmFtZS4KICAg
ICBSZWdpb24gbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSBjb21wdXRlTm9uRmFzdFNjcm9sbGFi
bGVSZWdpb24obV9wYWdlLT5tYWluRnJhbWUoKSwgSW50UG9pbnQoKSk7CiAgICAgc2V0Tm9uRmFz
dFNjcm9sbGFibGVSZWdpb24obm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOwotI2lmIEVOQUJMRShU
T1VDSF9FVkVOVF9UUkFDS0lORykKLSAgICBWZWN0b3I8SW50UmVjdD4gdG91Y2hFdmVudFRhcmdl
dFJlY3RzOwotICAgIGNvbXB1dGVBYnNvbHV0ZVRvdWNoRXZlbnRUYXJnZXRSZWN0cyhtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLCB0b3VjaEV2ZW50VGFyZ2V0UmVjdHMpOwotICAgIHNl
dFRvdWNoRXZlbnRUYXJnZXRSZWN0cyh0b3VjaEV2ZW50VGFyZ2V0UmVjdHMpOwotI2VuZGlmCi19
Ci0KLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6dG91Y2hFdmVudFRhcmdldFJl
Y3RzRGlkQ2hhbmdlKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRfVFJBQ0tJTkcpCi0gICAgLy8gV2FpdCB1bnRpbCBhZnRlciBsYXlvdXQgdG8gdXBk
YXRlLgotICAgIGlmIChtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPm5lZWRzTGF5b3V0KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFdlIHdvbid0IG5lY2Vzc2FyaWx5IGdldCBhIHNl
dFNjcm9sbExheWVyKCkgY2FsbCBiZWZvcmUgdGhpcyBvbmUsIHNvIGdyYWIgdGhlIHJvb3Qgb3Vy
c2VsdmVzLgotICAgIHNldFNjcm9sbExheWVyKHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KG1fcGFn
ZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkpOwotICAgIGlmIChtX3ByaXZhdGUtPnNjcm9sbExheWVy
KCkpIHsKLSAgICAgICAgVmVjdG9yPEludFJlY3Q+IHRvdWNoRXZlbnRUYXJnZXRSZWN0czsKLSAg
ICAgICAgY29tcHV0ZUFic29sdXRlVG91Y2hFdmVudFRhcmdldFJlY3RzKGRvY3VtZW50LCB0b3Vj
aEV2ZW50VGFyZ2V0UmVjdHMpOwotICAgICAgICBzZXRUb3VjaEV2ZW50VGFyZ2V0UmVjdHModG91
Y2hFdmVudFRhcmdldFJlY3RzKTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkb2N1
bWVudCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtOjpm
cmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcmFtZVZpZXcpCkBAIC0yMzMs
MTggKzIwOSw2IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6c2V0Tm9uRmFz
dFNjcm9sbGFibGVSZWdpb24oY29uc3QgUmVnaW9uJiByZWdpCiAgICAgfQogfQogCi12b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW06OnNldFRvdWNoRXZlbnRUYXJnZXRSZWN0cyhjb25z
dCBWZWN0b3I8SW50UmVjdD4mIGFic29sdXRlSGl0VGVzdFJlY3RzKQotewotICAgIC8vIFdlIHdv
bid0IG5lY2Vzc2FyaWx5IGdldCBhIHNldFNjcm9sbExheWVyKCkgY2FsbCBiZWZvcmUgdGhpcyBv
bmUsIHNvIGdyYWIgdGhlIHJvb3Qgb3Vyc2VsdmVzLgotICAgIHNldFNjcm9sbExheWVyKHNjcm9s
bExheWVyRm9yRnJhbWVWaWV3KG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkpOwotICAgIGlm
IChtX3ByaXZhdGUtPnNjcm9sbExheWVyKCkpIHsKLSAgICAgICAgV2ViVmVjdG9yPFdlYlJlY3Q+
IHdlYlJlY3RzKGFic29sdXRlSGl0VGVzdFJlY3RzLnNpemUoKSk7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgYWJzb2x1dGVIaXRUZXN0UmVjdHMuc2l6ZSgpOyArK2kpCi0gICAgICAg
ICAgICB3ZWJSZWN0c1tpXSA9IGFic29sdXRlSGl0VGVzdFJlY3RzW2ldOwotICAgICAgICBtX3By
aXZhdGUtPnNjcm9sbExheWVyKCktPnNldFRvdWNoRXZlbnRIYW5kbGVyUmVnaW9uKHdlYlJlY3Rz
KTsKLSAgICB9Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bTo6c2V0V2hl
ZWxFdmVudEhhbmRsZXJDb3VudCh1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNvdW50KQogewog
ICAgIC8vIFdlIHdvbid0IG5lY2Vzc2FyaWx5IGdldCBhIHNldFNjcm9sbExheWVyKCkgY2FsbCBi
ZWZvcmUgdGhpcyBvbmUsIHNvIGdyYWIgdGhlIHJvb3Qgb3Vyc2VsdmVzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Ny
b2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5oCmluZGV4IGFkMzZmMTE2MDcxOGMwZmE1NDlkZTI0
OTgxNTJhNzA1Nzk2MjEzYzIuLmY2OTQ4ZTI0MGE5YmMzZjc3MjFkYTg5OTViMTNjNWI2MGI3YjJj
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmgKQEAgLTY4LDE2
ICs2OCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUg
c2Nyb2xsYWJsZSBsYXllciBmb3IgdGhlIGdpdmVuIHNjcm9sbCBhcmVhIGNoYW5nZXMuCiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJs
ZUFyZWEqLCBHcmFwaGljc0xheWVyKik7CiAKLSAgICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5l
dmVyIHRvdWNoIGhhbmRsZXJzIGFyZSByZWdpc3RlcmVkLCByZW1vdmVkLCBvciBtb3ZlZC4KLSAg
ICB2aXJ0dWFsIHZvaWQgdG91Y2hFdmVudFRhcmdldFJlY3RzRGlkQ2hhbmdlKGNvbnN0IERvY3Vt
ZW50KikgT1ZFUlJJREU7Ci0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlY29tcHV0ZVdo
ZWVsRXZlbnRIYW5kbGVyQ291bnRGb3JGcmFtZVZpZXcoRnJhbWVWaWV3Kik7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQoTWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnMpOwogCiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFw
aGljc0xheWVyKik7CiAgICAgdm9pZCBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBS
ZWdpb24mKTsKLSAgICB2b2lkIHNldFRvdWNoRXZlbnRUYXJnZXRSZWN0cyhjb25zdCBWZWN0b3I8
SW50UmVjdD4mKTsKICAgICB2b2lkIHNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQodW5zaWduZWQp
OwogICAgIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJTY3JvbGxiYXJMYXllcj4gY3JlYXRlU2Nyb2xs
YmFyTGF5ZXIoU2Nyb2xsYmFyKiwgV2ViS2l0OjpXZWJMYXllciogc2Nyb2xsTGF5ZXIsIEdyYXBo
aWNzTGF5ZXIqIHNjcm9sbGJhckdyYXBoaWNzTGF5ZXIsIEZyYW1lVmlldyopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMGJmYzZhNmYxYWQ1NzU3ZjA4NzVhY2RjZjc3
NDg3YTg2YThmNWIwYi4uZDMzZjQwNGM0ZDhmZGRhOTY0NDQwNzgzMmQ5MGEwMWQwYjU1MzNlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNzMsNyArNzMsNiBAQAogI2lu
Y2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJTY3JvbGxpbmdD
b29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNlbGVjdFJ1bGVGZWF0dXJlU2V0LmgiCiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEy
MDEsMzggKzEyMDAsOCBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6OnRvdWNoRXZlbnRIYW5kbGVyQ291
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKLSAgICBjb25zdCBUb3VjaEV2ZW50VGFyZ2V0U2V0KiB0b3VjaEhhbmRsZXJz
ID0gZG9jdW1lbnQtPnRvdWNoRXZlbnRUYXJnZXRzKCk7Ci0gICAgaWYgKCF0b3VjaEhhbmRsZXJz
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHVuc2lnbmVkIGNvdW50ID0gMDsKLSAgICBmb3Ig
KFRvdWNoRXZlbnRUYXJnZXRTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSB0b3VjaEhhbmRsZXJz
LT5iZWdpbigpOyBpdGVyICE9IHRvdWNoSGFuZGxlcnMtPmVuZCgpOyArK2l0ZXIpCi0gICAgICAg
IGNvdW50ICs9IGl0ZXItPnZhbHVlOwotICAgIHJldHVybiBjb3VudDsKLX0KLQotI2lmIEVOQUJM
RShUT1VDSF9FVkVOVF9UUkFDS0lORykKLVBhc3NSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IEludGVy
bmFsczo6dG91Y2hFdmVudFRhcmdldENsaWVudFJlY3RzKERvY3VtZW50KiBkb2N1bWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXco
KSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGlmICghZG9jdW1lbnQtPnBhZ2UoKS0+
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAgICAgICAgcmV0dXJuIENsaWVudFJlY3RMaXN0Ojpj
cmVhdGUoKTsKLQotICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKLQotICAgIFZlY3RvcjxJbnRSZWN0PiBhYnNvbHV0ZVJlY3RzOwotICAgIGRvY3Vt
ZW50LT5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCktPmNvbXB1dGVBYnNvbHV0ZVRvdWNo
RXZlbnRUYXJnZXRSZWN0cyhkb2N1bWVudCwgYWJzb2x1dGVSZWN0cyk7Ci0gICAgVmVjdG9yPEZs
b2F0UXVhZD4gYWJzb2x1dGVRdWFkcyhhYnNvbHV0ZVJlY3RzLnNpemUoKSk7Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGFic29sdXRlUmVjdHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGFi
c29sdXRlUXVhZHNbaV0gPSBGbG9hdFF1YWQoYWJzb2x1dGVSZWN0c1tpXSk7Ci0KLSAgICByZXR1
cm4gQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZShhYnNvbHV0ZVF1YWRzKTsKKyAgICByZXR1cm4gZG9j
dW1lbnQtPnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIH0KLSNlbmRpZgogCiBQYXNzUmVmUHRy
PE5vZGVMaXN0PiBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqIGRvY3VtZW50LCBp
bnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywK
ICAgICB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZywgYm9vbCBp
Z25vcmVDbGlwcGluZywgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYjA2Nzk0OGMzNmZlZWJl
NWQ2ZDU5YjVkYWNlMzdiODNhMzQ1MTEyNi4uMjBiNmViYTkyODMzZjgxNjVhYTczMDRiOGUwOThj
OGE5YTJjNjUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNzEsOSArMTcx
LDYgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudChEb2N1
bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCB0b3VjaEV2ZW50SGFuZGxlckNv
dW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVF9U
UkFDS0lORykKLSAgICBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiB0b3VjaEV2ZW50VGFyZ2V0
Q2xpZW50UmVjdHMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7Ci0jZW5kaWYKIAogICAgIFBh
c3NSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqLCBpbnQgeCwgaW50IHks
IHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywKICAgICAgICAgdW5z
aWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xp
cHBpbmcsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDllZWM3YzI2MWEzZGY3YTc3NDk1
ZDRjZTIwMzM2NTljYjIzYTA4Mi4uZGRlM2E1NDcyZjJlMjBmMmJjMGFmOTE0ODE2OGVlM2JkMTY0
ZmNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTM5LDkgKzEzOSw2
IEBACiAKICAgICB1bnNpZ25lZCBsb25nIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQoaW4gRG9jdW1l
bnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB1bnNpZ25lZCBsb25nIHRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKLSNpZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVF9UUkFDS0lORykgJiYgRU5B
QkxFX1RPVUNIX0VWRU5UX1RSQUNLSU5HCi0gICAgQ2xpZW50UmVjdExpc3QgdG91Y2hFdmVudFRh
cmdldENsaWVudFJlY3RzKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7Ci0jZW5kaWYKIAogICAgIE5vZGVMaXN0IG5vZGVzRnJvbVJlY3QoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LAogICAgICAgICBpbiB1bnNpZ25lZCBsb25nIHRv
cFBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCBpbiB1bnNpZ25lZCBsb25n
IGJvdHRvbVBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggOTM2ZWEzZWIxNzU3MDZmNDhmYjQ5MDY3MmMxOGU4
YzRlM2Q4YTRmOC4uNzIxMzQwNWNjMjkyMWM0MDBiZDE5ZjhlZmFhZThlZjVhODM4MjZkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTE2LDcgKzExNiw2IEBACiAgICAg
ICAnRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQ9MScsCiAgICAgICAnRU5BQkxFX1RPVUNIX0VWRU5U
Uz08KGVuYWJsZV90b3VjaF9ldmVudHMpJywKICAgICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HPTwoZW5hYmxlX3RvdWNoX2ljb25fbG9hZGluZyknLAotICAgICAgJ0VOQUJMRV9UT1VDSF9F
VkVOVF9UUkFDS0lORz08KGVuYWJsZV90b3VjaF9ldmVudHMpJywKICAgICAgICdFTkFCTEVfVE9V
Q0hfU0xJREVSPTEnLAogICAgICAgJ0VOQUJMRV9VU0VSX1RJTUlORz0xJywKICAgICAgICdFTkFC
TEVfVjhfU0NSSVBUX0RFQlVHX1NFUlZFUj0xJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMGU0ZmM4ZWQ4NjVk
Yjg4YWM1NjJhOWZmYmMzZjJiMmYyZmFiMDU1OS4uYWMzMTZiMjk5NGM4YTU3NjQyYzYzMzIyZWVh
NTljM2E2NGQ5NjAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKQEAgLTUyNyw5ICs1MjcsOSBAQCB2b2lkIFdlYlBs
dWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3VjaEV2ZW50VHlwZShUb3VjaEV2ZW50UmVxdWVz
dFR5cGUgcmVxdWVzdAogICAgICAgICByZXR1cm47CiAgICAgbV90b3VjaEV2ZW50UmVxdWVzdFR5
cGUgPSByZXF1ZXN0VHlwZTsKICAgICBpZiAobV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgIT0gVG91
Y2hFdmVudFJlcXVlc3RUeXBlTm9uZSkKLSAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5k
aWRBZGRUb3VjaEV2ZW50SGFuZGxlcihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgZWxzZQotICAgICAgICBt
X2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKG1fZWxlbWVu
dCk7CisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhh
bmRsZXIoKTsKIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRXYW50c1doZWVs
RXZlbnRzKGJvb2wgd2FudHNXaGVlbEV2ZW50cykKQEAgLTY3Miw3ICs2NzIsNyBAQCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpXZWJQbHVnaW5Db250YWluZXJJbXBsKFdlYkNvcmU6OkhUTUxQbHVn
SW5FbGVtZW50KiBlbGVtZQogV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6fldlYlBsdWdpbkNvbnRh
aW5lckltcGwoKQogewogICAgIGlmIChtX3RvdWNoRXZlbnRSZXF1ZXN0VHlwZSAhPSBUb3VjaEV2
ZW50UmVxdWVzdFR5cGVOb25lKQotICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZFJl
bW92ZVRvdWNoRXZlbnRIYW5kbGVyKG1fZWxlbWVudCk7CisgICAgICAgIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9wbHVnaW5Mb2FkT2JzZXJ2ZXJzLnNpemUoKTsgKytpKQogICAgICAgICBt
X3BsdWdpbkxvYWRPYnNlcnZlcnNbaV0tPmNsZWFyUGx1Z2luQ29udGFpbmVyKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
M2ZlMTlkYTg5MTgwYTJjMjcxOTZlYjM2ODZlN2I3NDk4ZTUxOWM1Ny4uZGNjMmE3MTg1ZjBlMzhj
ZjJhMjQ2ZTVlOTkwNjc5OWU1MjdhMjMyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEy
LTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM3NTcwLgorICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xMzc1NzAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNTA0OAorCisgICAgICAgIFN0YWxlIG5vZGVzIGluIHRoZSB0
b3VjaEV2ZW50VGFyZ2V0IEhhc2hDb3VudGVkU2V0IGFyZQorICAgICAgICB0cmlnZ2VyaW5nIGNy
YXNoZXMuIFJvbGxpbmcgb3V0IHdoaWxlIEkgZmluZCB0aGUgcm9vdCBjYXVzZS4KKyAgICAgICAg
KFJlcXVlc3RlZCBieSBsZXZpdyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2NvbXBvc2l0b3ItdG91Y2gtaGl0LXJlY3RzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy90b3VjaC9jb21wb3NpdG9yLXRvdWNoLWhpdC1yZWN0cy5odG1sOiBSZW1vdmVkLgorCiAyMDEy
LTEyLTE0ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvY29tcG9zaXRvci10b3VjaC1oaXQtcmVjdHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
dG91Y2gvY29tcG9zaXRvci10b3VjaC1oaXQtcmVjdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNjE4NGMzZDg2MzNiMGM1NTQ5NzIwZDA5MTk5Mjk2ZTVlNmEw
MDVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2NvbXBvc2l0b3ItdG91
Y2gtaGl0LXJlY3RzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK
LVRoaXMgdGVzdHMgdmVyaWZpZXMgdGhlIGhpdCB0ZXN0IHJlZ2lvbnMgZ2l2ZW4gdG8gdGhlIGNv
bXBvc2l0b3IuIEl0IGNhbiBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4gVGhlIG91dHB1
dHRlZCByZWN0cyBzaG91bGQgY292ZXIgdGhlIGhpdCB0ZXN0IHJlZ2lvbnMgb2YgYWxsIHRoZSBs
aXN0ZWQgZWxlbWVudHMuCi0KLW5vcm1hbEZsb3dbMF06ICg4LCA3MiwgNzg0LCAxMCkKLW5vcm1h
bEZsb3dbMV06ICg4LCA3MiwgNzg0LCAxMCkKLW5vcm1hbEZsb3dbMl06ICgxMjgsIDcyLCAzMCwg
MTApCi1ub3JtYWxGbG93WzNdOiAoOCwgNzIsIDc4NCwgMTApCi1hYnNvbHV0ZUNoaWxkQ29udGFp
bmVyWzBdOiAoOCwgMTYyLCA3ODQsIDEwKQotYWJzb2x1dGVDaGlsZENvbnRhaW5lclsxXTogKDgs
IDE2MiwgNzg0LCAxMCkKLWFic29sdXRlQ2hpbGRDb250YWluZXJbMl06ICg4LCAxNjIsIDc4NCwg
MTApCi1hYnNvbHV0ZUNoaWxkQ29udGFpbmVyWzNdOiAoMTE4LCAzMDAsIDE0MCwgMTApCi1hYnNv
bHV0ZUNoaWxkQ29udGFpbmVyWzRdOiAoMTE4LCAzMDAsIDE0MCwgMTApCi1yZWxhdGl2ZUNoaWxk
Q29udGFpbmVyWzBdOiAoOCwgMjcyLCA3ODQsIDEwKQotcmVsYXRpdmVDaGlsZENvbnRhaW5lclsx
XTogKDgsIDI3MiwgNzg0LCAxMCkKLXJlbGF0aXZlQ2hpbGRDb250YWluZXJbMl06ICg4LCAyNzIs
IDc4NCwgMTApCi1yZWxhdGl2ZUNoaWxkQ29udGFpbmVyWzNdOiAoMTI4LCA0NzIsIDE0MCwgMTAp
Ci1vdmVyaGFuZ2luZ0NvbnRhaW5lclswXTogKDgsIDM2MiwgNzg0LCAxMCkKLW92ZXJoYW5naW5n
Q29udGFpbmVyWzFdOiAoOCwgMzYyLCAxMTAsIDgwKQotb3ZlcmhhbmdpbmdDb250YWluZXJbMl06
ICg4LCAzNjIsIDExMCwgODApCi10cmFuc2Zvcm1lZENoaWxkQ29udGFpbmVyWzBdOiAoNjIsIDQy
MSwgNjYxLCAzMikKLXRyYW5zZm9ybWVkQ2hpbGRDb250YWluZXJbMV06ICg2MiwgNDIxLCA2NjEs
IDMyKQotdHJhbnNmb3JtZWRDaGlsZENvbnRhaW5lclsyXTogKDgsIDQzMiwgNzY5LCAxMCkKLWNv
bnRpbnVhdGlvblswXTogKDEwOCwgNTAyLCAxMDAsIDEwKQotCi1UaGlzIHRlc3RzIHZlcmlmaWVz
IHRoZSBoaXQgdGVzdCByZWdpb25zIGdpdmVuIHRvIHRoZSBjb21wb3NpdG9yLiBJdCBjYW4gb25s
eSBiZSBydW4gaW4gRHVtcFJlbmRlclRyZWUuIFRoZSBvdXRwdXR0ZWQgcmVjdHMgc2hvdWxkIGNv
dmVyIHRoZSBoaXQgdGVzdCByZWdpb25zIG9mIGFsbCB0aGUgbGlzdGVkIGVsZW1lbnRzLgotCi1u
b3JtYWxGbG93WzBdOiAoOCwgNzIsIDc4NCwgMTApCi1ub3JtYWxGbG93WzFdOiAoOCwgNzIsIDc4
NCwgMTApCi1ub3JtYWxGbG93WzJdOiAoMTI4LCA3MiwgMzAsIDEwKQotbm9ybWFsRmxvd1szXTog
KDgsIDcyLCA3ODQsIDEwKQotYWJzb2x1dGVDaGlsZENvbnRhaW5lclswXTogKDgsIDE2MiwgNzg0
LCAxMCkKLWFic29sdXRlQ2hpbGRDb250YWluZXJbMV06ICg4LCAxNjIsIDc4NCwgMTApCi1hYnNv
bHV0ZUNoaWxkQ29udGFpbmVyWzJdOiAoOCwgMTYyLCA3ODQsIDEwKQotYWJzb2x1dGVDaGlsZENv
bnRhaW5lclszXTogKDExOCwgMzAwLCAxNDAsIDEwKQotYWJzb2x1dGVDaGlsZENvbnRhaW5lcls0
XTogKDExOCwgMzAwLCAxNDAsIDEwKQotcmVsYXRpdmVDaGlsZENvbnRhaW5lclswXTogKDgsIDI3
MiwgNzg0LCAxMCkKLXJlbGF0aXZlQ2hpbGRDb250YWluZXJbMV06ICg4LCAyNzIsIDc4NCwgMTAp
Ci1yZWxhdGl2ZUNoaWxkQ29udGFpbmVyWzJdOiAoOCwgMjcyLCA3ODQsIDEwKQotcmVsYXRpdmVD
aGlsZENvbnRhaW5lclszXTogKDEyOCwgNDcyLCAxNDAsIDEwKQotb3ZlcmhhbmdpbmdDb250YWlu
ZXJbMF06ICg4LCAzNjIsIDc4NCwgMTApCi1vdmVyaGFuZ2luZ0NvbnRhaW5lclsxXTogKDgsIDM2
MiwgMTEwLCA4MCkKLW92ZXJoYW5naW5nQ29udGFpbmVyWzJdOiAoOCwgMzYyLCAxMTAsIDgwKQot
dHJhbnNmb3JtZWRDaGlsZENvbnRhaW5lclswXTogKDYyLCA0MjEsIDY2MSwgMzIpCi10cmFuc2Zv
cm1lZENoaWxkQ29udGFpbmVyWzFdOiAoNjIsIDQyMSwgNjYxLCAzMikKLXRyYW5zZm9ybWVkQ2hp
bGRDb250YWluZXJbMl06ICg4LCA0MzIsIDc2OSwgMTApCi1jb250aW51YXRpb25bMF06ICgxMDgs
IDUwMiwgMTAwLCAxMCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvdG91Y2gvY29tcG9zaXRvci10b3VjaC1oaXQtcmVjdHMuaHRtbCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2NvbXBvc2l0b3It
dG91Y2gtaGl0LXJlY3RzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MDg3
ZGNhYzEzNDBkY2I4ZGZkZjU5MjBhZTA1MjE1MzI1M2IzYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvdG91Y2gvY29tcG9zaXRvci10b3VjaC1oaXQtcmVjdHMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDIwMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci0jdHJhbnNmb3JtZWRDaGlsZCB7Ci0JLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0
ZTNkKDAuMiwgMSwgMCwgMzVncmFkKTsKLX0KLSNhYnNvbHV0ZUNoaWxkIHsKLQlwb3NpdGlvbjog
YWJzb2x1dGU7Ci0JdG9wOiAzMDBweDsKLX0KLSNyZWxhdGl2ZUNoaWxkIHsKLQlwb3NpdGlvbjog
cmVsYXRpdmU7Ci0JdG9wOiAyMDBweDsKLX0KLSNvdmVyaGFuZ2luZ0NvbnRhaW5lciB7Ci0JaGVp
Z2h0OiAxMHB4OwotfQotI292ZXJoYW5naW5nRmxvYXRpbmdDaGlsZCB7Ci0Jd2lkdGg6IDEwMHB4
OwotCWZsb2F0OiBsZWZ0OwotfQotI3Rlc3RzIHsKLQlmb250OiAxMHB4IEFoZW07Ci19Ci08L3N0
eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgdmVy
aWZpZXMgdGhlIGhpdCB0ZXN0IHJlZ2lvbnMgZ2l2ZW4gdG8gdGhlIGNvbXBvc2l0b3IuIEl0IGNh
biBvbmx5IGJlIHJ1biBpbiBEdW1wUmVuZGVyVHJlZS4KLVRoZSBvdXRwdXR0ZWQgcmVjdHMgc2hv
dWxkIGNvdmVyIHRoZSBoaXQgdGVzdCByZWdpb25zIG9mIGFsbCB0aGUgbGlzdGVkIGVsZW1lbnRz
LjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08ZGl2IGlkPSJ0ZXN0cyI+Ci0JPGRp
diBpZD0ibm9ybWFsRmxvdyI+Ci0JCUxvcmVtIGlwc3VtCi0JCTxzcGFuPnN1bTwvc3Bhbj4uCi0J
PC9kaXY+Ci0JPGRpdiBpZD0iYWJzb2x1dGVDaGlsZENvbnRhaW5lciI+Ci0JCUxvcmVtIGlwc3Vt
Ci0JCTxzcGFuIGlkPSJhYnNvbHV0ZUNoaWxkIj5BYnNvbHV0ZSBjaGlsZDwvc3Bhbj4KLQk8L2Rp
dj4KLQk8ZGl2IGlkPSJyZWxhdGl2ZUNoaWxkQ29udGFpbmVyIj4KLQkJTG9yZW0gaXBzdW0KLQkJ
PHNwYW4gaWQ9InJlbGF0aXZlQ2hpbGQiPlJlbGF0aXZlIGNoaWxkPC9zcGFuPgotCTwvZGl2Pgot
CTxkaXYgaWQ9Im92ZXJoYW5naW5nQ29udGFpbmVyIj4KLQkJPGRpdiBpZD0ib3ZlcmhhbmdpbmdG
bG9hdGluZ0NoaWxkIj5PdmVyaGFuZ2luZyBmbG9hdCBvdmVyaGFuZ2luZyBmbG9hdCBvdmVyaGFu
Z2luZyBmbG9hdCBvdmVyaGFuZ2luZyBmbG9hdDwvZGl2PgotCTwvZGl2PgotCTxkaXYgaWQ9InRy
YW5zZm9ybWVkQ2hpbGRDb250YWluZXIiPgotCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZENoaWxkIj5U
cmFuc2Zvcm1lZDwvZGl2PgotCTwvZGl2PgotCTxkaXY+Ci0JCTxiIGlkPSJjb250aW51YXRpb24i
PlRoaXMgYiB0YWcKLQkJPGRpdj5jYXVzZXMgYTwvZGl2PgotCQljb250aW51YXRpb248L2I+Ci0J
PC9kaXY+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAoIXdpbmRvdy50ZXN0UnVubmVyKQotCXJldHVy
bjsKLQotd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsaXN0ZW5l
cigpIHsgfQotCi1mdW5jdGlvbiBsb2cobXNnKSB7Ci0JdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7Ci0JZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChzcGFuKTsKLSAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOwot
fQotCi1mdW5jdGlvbiBzb3J0UmVjdHMoYSwgYikgewotCXJldHVybiBhLnRvcCAtIGIudG9wOwot
fQotCi1mdW5jdGlvbiBsb2dSZWN0cyhpZCkgewotCWVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7Ci0JZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgbGlz
dGVuZXIsIGZhbHNlKTsKLQlyZWN0cyA9IHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudFRhcmdl
dENsaWVudFJlY3RzKGRvY3VtZW50KTsKLQl2YXIgc29ydGVkUmVjdHMgPSBuZXcgQXJyYXkoKTsK
LQlmb3IgKHZhciBpID0gMDsgaSA8IHJlY3RzLmxlbmd0aDsgKytpKQotCQlzb3J0ZWRSZWN0c1tp
XSA9IHJlY3RzW2ldOwotCXNvcnRlZFJlY3RzLnNvcnQoc29ydFJlY3RzKTsKLQlmb3IgKHZhciBp
ID0gMDsgaSA8IHJlY3RzLmxlbmd0aDsgKytpKQotCQlsb2coaWQgKyAiWyIgKyBpICsgIl06ICgi
ICsgc29ydGVkUmVjdHNbaV0ubGVmdCArICIsICIgKyBzb3J0ZWRSZWN0c1tpXS50b3AgKyAiLCAi
ICsgc29ydGVkUmVjdHNbaV0ud2lkdGggKyAiLCAiICsgc29ydGVkUmVjdHNbaV0uaGVpZ2h0ICsg
IikiKTsKLQllbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5l
ciwgZmFsc2UpOwotfQotCi1sb2dSZWN0cygibm9ybWFsRmxvdyIpOwotbG9nUmVjdHMoImFic29s
dXRlQ2hpbGRDb250YWluZXIiKTsKLWxvZ1JlY3RzKCJyZWxhdGl2ZUNoaWxkQ29udGFpbmVyIik7
Ci1sb2dSZWN0cygib3ZlcmhhbmdpbmdDb250YWluZXIiKTsKLWxvZ1JlY3RzKCJ0cmFuc2Zvcm1l
ZENoaWxkQ29udGFpbmVyIik7Ci1sb2dSZWN0cygiY29udGludWF0aW9uIik7Ci0KLXZhciB0ZXN0
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RzIik7Ci10ZXN0Q29udGFp
bmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7Ci0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotI3RyYW5z
Zm9ybWVkQ2hpbGQgewotCS13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLjIsIDEsIDAsIDM1
Z3JhZCk7Ci19Ci0jYWJzb2x1dGVDaGlsZCB7Ci0JcG9zaXRpb246IGFic29sdXRlOwotCXRvcDog
MzAwcHg7Ci19Ci0jcmVsYXRpdmVDaGlsZCB7Ci0JcG9zaXRpb246IHJlbGF0aXZlOwotCXRvcDog
MjAwcHg7Ci19Ci0jb3ZlcmhhbmdpbmdDb250YWluZXIgewotCWhlaWdodDogMTBweDsKLX0KLSNv
dmVyaGFuZ2luZ0Zsb2F0aW5nQ2hpbGQgewotCXdpZHRoOiAxMDBweDsKLQlmbG9hdDogbGVmdDsK
LX0KLSN0ZXN0cyB7Ci0JZm9udDogMTBweCBBaGVtOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxi
b2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3RzIHZlcmlmaWVzIHRoZSBoaXQgdGVz
dCByZWdpb25zIGdpdmVuIHRvIHRoZSBjb21wb3NpdG9yLiBJdCBjYW4gb25seSBiZSBydW4gaW4g
RHVtcFJlbmRlclRyZWUuCi1UaGUgb3V0cHV0dGVkIHJlY3RzIHNob3VsZCBjb3ZlciB0aGUgaGl0
IHRlc3QgcmVnaW9ucyBvZiBhbGwgdGhlIGxpc3RlZCBlbGVtZW50cy48L3A+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLQotPGRpdiBpZD0idGVzdHMiPgotCTxkaXYgaWQ9Im5vcm1hbEZsb3ci
PgotCQlMb3JlbSBpcHN1bQotCQk8c3Bhbj5zdW08L3NwYW4+LgotCTwvZGl2PgotCTxkaXYgaWQ9
ImFic29sdXRlQ2hpbGRDb250YWluZXIiPgotCQlMb3JlbSBpcHN1bQotCQk8c3BhbiBpZD0iYWJz
b2x1dGVDaGlsZCI+QWJzb2x1dGUgY2hpbGQ8L3NwYW4+Ci0JPC9kaXY+Ci0JPGRpdiBpZD0icmVs
YXRpdmVDaGlsZENvbnRhaW5lciI+Ci0JCUxvcmVtIGlwc3VtCi0JCTxzcGFuIGlkPSJyZWxhdGl2
ZUNoaWxkIj5SZWxhdGl2ZSBjaGlsZDwvc3Bhbj4KLQk8L2Rpdj4KLQk8ZGl2IGlkPSJvdmVyaGFu
Z2luZ0NvbnRhaW5lciI+Ci0JCTxkaXYgaWQ9Im92ZXJoYW5naW5nRmxvYXRpbmdDaGlsZCI+T3Zl
cmhhbmdpbmcgZmxvYXQgb3ZlcmhhbmdpbmcgZmxvYXQgb3ZlcmhhbmdpbmcgZmxvYXQgb3Zlcmhh
bmdpbmcgZmxvYXQ8L2Rpdj4KLQk8L2Rpdj4KLQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZENoaWxkQ29u
dGFpbmVyIj4KLQkJPGRpdiBpZD0idHJhbnNmb3JtZWRDaGlsZCI+VHJhbnNmb3JtZWQ8L2Rpdj4K
LQk8L2Rpdj4KLQk8ZGl2PgotCQk8YiBpZD0iY29udGludWF0aW9uIj5UaGlzIGIgdGFnCi0JCTxk
aXY+Y2F1c2VzIGE8L2Rpdj4KLQkJY29udGludWF0aW9uPC9iPgotCTwvZGl2PgotPC9kaXY+Ci08
c2NyaXB0PgotaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLQlyZXR1cm47Ci0KLXdpbmRvdy50ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gbGlzdGVuZXIoKSB7IH0KLQotZnVuY3Rp
b24gbG9nKG1zZykgewotCXZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OwotCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7
Ci0gICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKLX0KLQotZnVuY3Rpb24gc29y
dFJlY3RzKGEsIGIpIHsKLQlyZXR1cm4gYS50b3AgLSBiLnRvcDsKLX0KLQotZnVuY3Rpb24gbG9n
UmVjdHMoaWQpIHsKLQllbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotCWVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3RlbmVyLCBmYWxzZSk7Ci0J
cmVjdHMgPSB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRUYXJnZXRDbGllbnRSZWN0cyhkb2N1
bWVudCk7Ci0JdmFyIHNvcnRlZFJlY3RzID0gbmV3IEFycmF5KCk7Ci0JZm9yICh2YXIgaSA9IDA7
IGkgPCByZWN0cy5sZW5ndGg7ICsraSkKLQkJc29ydGVkUmVjdHNbaV0gPSByZWN0c1tpXTsKLQlz
b3J0ZWRSZWN0cy5zb3J0KHNvcnRSZWN0cyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCByZWN0cy5s
ZW5ndGg7ICsraSkKLQkJbG9nKGlkICsgIlsiICsgaSArICJdOiAoIiArIHNvcnRlZFJlY3RzW2ld
LmxlZnQgKyAiLCAiICsgc29ydGVkUmVjdHNbaV0udG9wICsgIiwgIiArIHNvcnRlZFJlY3RzW2ld
LndpZHRoICsgIiwgIiArIHNvcnRlZFJlY3RzW2ldLmhlaWdodCArICIpIik7Ci0JZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgbGlzdGVuZXIsIGZhbHNlKTsKLX0KLQot
bG9nUmVjdHMoIm5vcm1hbEZsb3ciKTsKLWxvZ1JlY3RzKCJhYnNvbHV0ZUNoaWxkQ29udGFpbmVy
Iik7Ci1sb2dSZWN0cygicmVsYXRpdmVDaGlsZENvbnRhaW5lciIpOwotbG9nUmVjdHMoIm92ZXJo
YW5naW5nQ29udGFpbmVyIik7Ci1sb2dSZWN0cygidHJhbnNmb3JtZWRDaGlsZENvbnRhaW5lciIp
OwotbG9nUmVjdHMoImNvbnRpbnVhdGlvbiIpOwotCi12YXIgdGVzdENvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0cyIpOwotdGVzdENvbnRhaW5lci5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKHRlc3RDb250YWluZXIpOwotCi08L3NjcmlwdD4KLTwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>