<?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>128514</bug_id>
          
          <creation_ts>2014-02-09 20:41:22 -0800</creation_ts>
          <short_desc>Add a few pseudo type to the selector compiler through function calls</short_desc>
          <delta_ts>2014-02-10 18:41:07 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978704</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-09 20:41:22 -0800</bug_when>
    <thetext>Add a few pseudo type to the selector compiler through function calls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978706</commentid>
    <comment_count>1</comment_count>
      <attachid>223671</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-09 20:50:25 -0800</bug_when>
    <thetext>Created attachment 223671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978713</commentid>
    <comment_count>2</comment_count>
      <attachid>223671</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-02-09 21:11:47 -0800</bug_when>
    <thetext>Comment on attachment 223671
Patch

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

&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:17
&gt; + * This library is free software; you can redistribute it and/or
&gt; + * modify it under the terms of the GNU Library General Public
&gt; + * License as published by the Free Software Foundation; either
&gt; + * version 2 of the License, or (at your option) any later version.
&gt; + *
&gt; + * This library is distributed in the hope that it will be useful,
&gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; + * Library General Public License for more details.
&gt; + *
&gt; + * You should have received a copy of the GNU Library General Public License
&gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; + * Boston, MA 02110-1301, USA.

Is this the right license for new files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979193</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-10 18:41:07 -0800</bug_when>
    <thetext>Committed r163853: &lt;http://trac.webkit.org/changeset/163853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223671</attachid>
            <date>2014-02-09 20:50:25 -0800</date>
            <delta_ts>2014-02-09 21:11:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128514-20140209205024.patch</filename>
            <type>text/plain</type>
            <size>29653</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjYjZmM2UxZDBiOThi
NzA1ZjBmNWMyZmVlNDNlNDU4YmE4ZGQ5My4uMDY3MjQ4NTI3ZTkyYWQxMmY5YWRlNWNmNDY3NzUx
MGQxNDgxOTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTAyLTA5ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYSBmZXcg
cHNldWRvIHR5cGUgdG8gdGhlIHNlbGVjdG9yIGNvbXBpbGVyIHRocm91Z2ggZnVuY3Rpb24gY2Fs
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODUx
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENlcnRh
aW4gcHNldWRvIHR5cGUgY2hlY2tlcnMgcmVseSBvbiB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxzLiBT
aW5jZSB0aG9zZSB0eXBlcworICAgICAgICBhcmUgdW5jb21tb24sIGFuZCB0aGlzIGNvZGUgZ2Vu
ZXJhdG9yIGNhbm5vdCBjdXJyZW50bHkgbWFrZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxzLAorICAg
ICAgICB0aGUgY2hlY2tlciBhcmUgYWRkZWQgYnkgZ2VuZXJhdGluZyBhIGZ1bmN0aW9uIGNhbGwg
dG8gYSB3cmFwcGVyIGZ1bmN0aW9uLgorCisgICAgICAgIFRvIGF2b2lkIGNvZGUgZHVwbGljYXRp
b24gYmV0d2VlbiBTZWxlY3RvckNoZWNrZXIgYW5kIHRoZSBjb21waWxlciwgYWxsIHRoZSByZWxl
dmFudCBjaGVja2luZworICAgICAgICBjb2RlIGhhcyBiZWVuIG1vdmVkIHRvIGEgY29tbW9uIGhl
YWRlciwgU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oLgorICAgICAgICBTZWxlY3RvckNo
ZWNrZXIgc3RpbGwgaW5saW5lIHRoZSBmdW5jdGlvbnMsIHdoaWxlIHRoZSBTZWxlY3RvckNvbXBp
bGVyIGdlbmVyYXRlIGxvY2FsIHN0YXRpYyBmdW5jdGlvbnMKKyAgICAgICAgYW5kIGdlbmVyYXRl
IGNhbGxzIHRvIHRoZW0gYXMgbmVlZGVkLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hl
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKToK
KyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmlzQXV0b2ZpbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjppc0RlZmF1
bHRCdXR0b25Gb3JGb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmlzRGlzYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2hlY2tlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjppc0ludmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6aXNPcHRpb25h
bEZvcm1Db250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OmlzUmVxdWlyZWRGb3JtQ29udHJvbCk6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNS
ZWFkT25seVBzZXVkb0NsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNSZWFkV3JpdGVQ
c2V1ZG9DbGFzcyk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBcHBlYXJJbmRldGVybWluYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNGdWxsU2NyZWVuUHNldWRvQ2xhc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6bWF0Y2hlc0Z1dHVyZUN1ZVBzZXVkb0NsYXNzKToKKyAgICAgICAgKFdl
YkNvcmU6Om1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MpOgorICAgICAgICAqIGNzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFk
ZFBzZXVkb1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6bm9uQ29u
c3RUZXN0RnVuY3Rpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGls
ZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpn
ZW5lcmF0ZUVsZW1lbnRGdW5jdGlvbkNhbGxUZXN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnRvSW5wdXRF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNWYWxpZEZvcm1Db250cm9s
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisKIDIw
MTQtMDItMDkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQgdG8gbW9yZSBjbGFzc2VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA4OGFkYzZmYWNmNTRiODk5ZjkxN2NlYmMyMjM4OTA3YzA0
NWZkOGFjLi41ZWI3ZWQ1MDQ0ZDZiYTNiNGEzNzQ2ZjIzOWE5NGM4MTM5MDEyYTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI2NzQsNiArMjY3NCw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguaCBcCisJU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yRmlsdGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAz
ZDljYWZhYTQ0ZmViOGZmMTBiNDhiZDYxNTVkM2JlMmMyNGEwNDAzLi5mNDRiMDQ4YzdiNTQ0YmZl
Yzc2NmVlYzRkNTk1N2E0NjdkZTNmNjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE5NjYyLDYgKzE5NjYyLDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxjc3NcUkdCQ29sb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xT
ZWxlY3RvckNoZWNrZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xTZWxl
Y3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxjc3NcU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cY3NzXFN0eWxlTWVkaWEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGNzc1xTdHlsZVByb3BlcnRpZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBmMTYxMWZmN2FmOTRm
ZTJjZTBkOGNmOWZmZmJjNGRhMWZlMDA5Y2U5Li5iMDM2MWIzOWZjYmRlMjE5M2ZmMzNjZWVlZDI4
Yjg1MDlkOTVkMjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC05MDgzLDYgKzkwODMsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFNlbGVjdG9yQ2hlY2tlci5oIj4KICAgICAgIDxGaWx0
ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxjc3NcU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oIj4KKyAgICAgIDxGaWx0ZXI+
Y3NzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxjc3NcU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcy5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDY0ZTliODk3NmI5YjJkOTAwNTRjN2UwYWI3
M2U1ZmYyMGUzMmFiNS4uZDk4ZDE2YmU3NjgyMzM2MmJiNDZlZjQ5NDI2MmUwZTQ1YjM3ZjJlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM5NSw2ICsxMzk1LDcgQEAKIAkJNDMxQTJGRDcxM0I3NzA3QTAwNzc5MUU0IC8qIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MzFBMkZENjEzQjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmNwcCAqLzsgfTsKIAkJNDMxQTMwMjExM0I4OURDQzAwNzc5MUU0IC8qIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzFBMzAyMDEzQjg5RENDMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCAqLzsgfTsKIAkJNDMxQTMwODgxM0I4Rjk3ODAwNzc5MUU0
IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MzFBMzA4NzEzQjhGOTc4MDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRC
b29sZWFuLmNwcCAqLzsgfTsKKwkJNDMyRDNGRTgxOEE4NjU4NDAwRDdEQzAzIC8qIFNlbGVjdG9y
Q2hlY2tlclRlc3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQzMkQzRkU3MThBODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJU
ZXN0RnVuY3Rpb25zLmggKi87IH07CiAJCTQzMzFBQzc4MTNCNjg3MDAwMEE5RTVBRSAvKiBTVkdB
bmltYXRlZE51bWJlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDMzMUFDNzcxM0I2ODcwMDAwQTlFNUFFIC8qIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHAgKi87IH07CiAJCTQzNThFODdDMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM1OEU4N0ExMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAgKi87IH07CiAJCTQzNThFODdEMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzNThFODdCMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuaCAqLzsgfTsKQEAgLTgyMjUsNiArODIyNiw3IEBACiAJCTQzMUEyRkQ2MTNCNzcwN0EwMDc3
OTFFNCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDMxQTMwMjAxM0I4OURDQzAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MzFBMzA4NzEzQjhGOTc4MDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRCb29sZWFu
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQm9v
bGVhbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMkQzRkU3MThBODY1ODQw
MEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMzMUFDNzcxM0I2ODcwMDAwQTlFNUFFIC8qIFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzU4RTg3QTEzNjBBMkVFMDBFNDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNThFODdCMTM2MEEy
RUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTU0Miw2ICsyMTU0NCw3IEBACiAJCQkJM0ZGRkY5QTYxNTlE
OUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi8sCiAJCQkJM0ZGRkY5
QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovLAogCQkJCTNG
MkIzM0UzMTY1QUJEMzUwMEUzOTg3QyAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsICovLAor
CQkJCTQzMkQzRkU3MThBODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rp
b25zLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0yNTkzMSw2ICsyNTkzNCw3IEBACiAJCQkJODNDMUQ0MzQxNzhENUFCNTAwMTQxRTY4
IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1NDE2RkU2MTg4MTBFRjgwMDA5RkM1RiAvKiBZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzJEM0ZFODE4QTg2NTg0MDBEN0RDMDMgLyog
U2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0
MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMTc2MkUwMTc2Njg2RDkwMEQ4MzZBOCAvKiBVcFNhbXBsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEMTc2MkU0MTc2Njg2RUEwMEQ4MzZBOCAvKiBEb3duU2FtcGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDBmNjEy
MzVlZjMzOTUyODU1YTQ1MDNmMWNhOTU5ZDVhY2JjMzE4ZDQuLjZiYmI1NmJmMWE4MWE2NDlhMDEx
NjkxMGI1MDY0MDU5N2FmMDRkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCkBAIC01MywxNCArNTMsMTEgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKKyNpbmNs
dWRlICJTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKLSNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi0jaW5jbHVkZSAiV2ViVlRURWxlbWVudC5oIgotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAg
LTU4NywxMSArNTg0LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNl
bGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0F1dG9maWxs
OgotICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IGVsZW1lbnQtPnRvSW5wdXRFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGlucHV0RWxlbWVudC0+aXNBdXRvZmlsbGVkKCk7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIHJldHVybiBpc0F1dG9maWxsZWQoZWxlbWVudCk7CiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0FueUxpbms6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0xpbms6CiAgICAgICAgICAgICAvLyA6dmlzaXRlZCBhbmQgOmxpbmsgbWF0Y2hlcyBhcmUg
c2VwYXJhdGVkIGxhdGVyIHdoZW4gYXBwbHlpbmcgdGhlIHN0eWxlLiBIZXJlIGJvdGggY2xhc3Nl
cyBtYXRjaCBhbGwgbGlua3MuLi4KQEAgLTY0MCw0NiArNjMzLDMwIEBAIGJvb2wgU2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCkg
Y29uc3QKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVkOgotICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmlzRm9y
bUNvbnRyb2xFbGVtZW50KCkgfHwgaXNIVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KSB8fCBpc0hU
TUxPcHRHcm91cEVsZW1lbnQoZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICFlbGVt
ZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgcmV0dXJuIGlzRW5hYmxlZChlbGVtZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvRnVsbFBhZ2VNZWRpYToKICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5kb2N1
bWVudCgpLmlzTWVkaWFEb2N1bWVudCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZWxlbWVu
dC0+aXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpOworICAgICAgICAgICAgcmV0dXJuIGlzRGVmYXVs
dEJ1dHRvbkZvckZvcm0oZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Rpc2FibGVkOgotICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50
KCkgfHwgaXNIVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KSB8fCBpc0hUTUxPcHRHcm91cEVsZW1l
bnQoZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gaXNE
aXNhYmxlZChlbGVtZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZE9u
bHk6Ci0gICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+bWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xh
c3MoKTsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaGVzUmVhZE9ubHlQc2V1ZG9DbGFzcyhlbGVt
ZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZFdyaXRlOgotICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnQtPm1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpOworICAg
ICAgICAgICAgcmV0dXJuIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcyhlbGVtZW50KTsKICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT3B0aW9uYWw6Ci0gICAgICAgICAgICByZXR1
cm4gZWxlbWVudC0+aXNPcHRpb25hbEZvcm1Db250cm9sKCk7CisgICAgICAgICAgICByZXR1cm4g
aXNPcHRpb25hbEZvcm1Db250cm9sKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9SZXF1aXJlZDoKLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5pc1JlcXVpcmVk
Rm9ybUNvbnRyb2woKTsKKyAgICAgICAgICAgIHJldHVybiBpc1JlcXVpcmVkRm9ybUNvbnRyb2wo
ZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1ZhbGlkOgotICAgICAg
ICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5zZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygp
OwotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPndpbGxWYWxpZGF0ZSgpICYmIGVsZW1lbnQt
PmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBpc1ZhbGlk
KGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgotICAg
ICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5zZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxl
cygpOwotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPndpbGxWYWxpZGF0ZSgpICYmICFlbGVt
ZW50LT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm4gaXNJ
bnZhbGlkKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2Vk
OgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8vIEV2ZW4gdGhvdWdoIFdpbklFIGFs
bG93cyBjaGVja2VkIGFuZCBpbmRldGVybWluYXRlIHRvIGNvLWV4aXN0LCB0aGUgQ1NTIHNlbGVj
dG9yIHNwZWMgc2F5cyB0aGF0Ci0gICAgICAgICAgICAgICAgLy8geW91IGNhbid0IGJlIGJvdGgg
Y2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZS4gV2Ugd2lsbCBiZWhhdmUgbGlrZSBXaW5JRSBiZWhp
bmQgdGhlIHNjZW5lcyBhbmQganVzdAotICAgICAgICAgICAgICAgIC8vIG9iZXkgdGhlIENTUyBz
cGVjIGhlcmUgaW4gdGhlIHRlc3QgZm9yIG1hdGNoaW5nIHRoZSBwc2V1ZG8uCi0gICAgICAgICAg
ICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gZWxlbWVudC0+dG9JbnB1dEVs
ZW1lbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoaW5wdXRFbGVtZW50ICYmIGlucHV0RWxlbWVu
dC0+c2hvdWxkQXBwZWFyQ2hlY2tlZCgpICYmICFpbnB1dEVsZW1lbnQtPnNob3VsZEFwcGVhcklu
ZGV0ZXJtaW5hdGUoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
ICAgICAgICAgaWYgKGlzSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCkgJiYgdG9IVE1MT3B0aW9u
RWxlbWVudChlbGVtZW50KS0+c2VsZWN0ZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gaXNDaGVja2VkKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9JbmRldGVybWluYXRlOgotICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnNob3VsZEFw
cGVhckluZGV0ZXJtaW5hdGUoKTsKKyAgICAgICAgICAgIHJldHVybiBzaG91bGRBcHBlYXJJbmRl
dGVybWluYXRlKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Sb290
OgogICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVu
dEVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTcwMiwxNSArNjc5
LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tp
bmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbjoK
LSAgICAgICAgICAgIC8vIFdoaWxlIGEgRG9jdW1lbnQgaXMgaW4gdGhlIGZ1bGxzY3JlZW4gc3Rh
dGUsIGFuZCB0aGUgZG9jdW1lbnQncyBjdXJyZW50IGZ1bGxzY3JlZW4KLSAgICAgICAgICAgIC8v
IGVsZW1lbnQgaXMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQsIHRoZSAnZnVsbC1zY3JlZW4n
IHBzZXVkb2NsYXNzIGFwcGxpZXMgdG8KLSAgICAgICAgICAgIC8vIHRoYXQgZWxlbWVudC4gQWxz
bywgYW4gPGlmcmFtZT4sIDxvYmplY3Q+IG9yIDxlbWJlZD4gZWxlbWVudCB3aG9zZSBjaGlsZCBi
cm93c2luZwotICAgICAgICAgICAgLy8gY29udGV4dCdzIERvY3VtZW50IGlzIGluIHRoZSBmdWxs
c2NyZWVuIHN0YXRlIGhhcyB0aGUgJ2Z1bGwtc2NyZWVuJyBwc2V1ZG9jbGFzcyBhcHBsaWVkLgot
ICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmlzRnJhbWVFbGVtZW50QmFzZSgpICYmIGVsZW1lbnQt
PmNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIGlmICghZWxlbWVudC0+ZG9jdW1lbnQoKS53ZWJraXRJc0Z1bGxTY3Jl
ZW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4g
ZWxlbWVudCA9PSBlbGVtZW50LT5kb2N1bWVudCgpLndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxl
bWVudCgpOworICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNGdWxsU2NyZWVuUHNldWRvQ2xhc3Mo
ZWxlbWVudCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FuaW1hdGluZ0Z1bGxT
Y3JlZW5UcmFuc2l0aW9uOgogICAgICAgICAgICAgaWYgKGVsZW1lbnQgIT0gZWxlbWVudC0+ZG9j
dW1lbnQoKS53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC03MzIsOSArNzAxLDkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6
OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAog
ICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmlzT3V0T2ZSYW5nZSgpOwogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlOgot
ICAgICAgICAgICAgcmV0dXJuIChlbGVtZW50LT5pc1dlYlZUVEVsZW1lbnQoKSAmJiAhdG9XZWJW
VFRFbGVtZW50KGVsZW1lbnQpLT5pc1Bhc3ROb2RlKCkpOworICAgICAgICAgICAgcmV0dXJuIG1h
dGNoZXNGdXR1cmVDdWVQc2V1ZG9DbGFzcyhlbGVtZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvUGFzdEN1ZToKLSAgICAgICAgICAgIHJldHVybiAoZWxlbWVudC0+aXNXZWJW
VFRFbGVtZW50KCkgJiYgdG9XZWJWVFRFbGVtZW50KGVsZW1lbnQpLT5pc1Bhc3ROb2RlKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MoZWxlbWVudCk7CiAj
ZW5kaWYKIAogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY29wZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4YmZlYTQ0NzdhZWQzZTdkNGQ0OTA4NmQ5ODM1ZjRkYzM3NDI2YTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5o
CkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25z
X2gKKyNkZWZpbmUgU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9uc19oCisKKyNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlIDx3dGYvQ29tcGlsZXIuaD4KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNsdWRl
ICJXZWJWVFRFbGVtZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBTFdB
WVNfSU5MSU5FIGJvb2wgaXNBdXRvZmlsbGVkKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgaWYgKGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGNv
bnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGVsZW1lbnQtPnRvSW5wdXRFbGVt
ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc0F1dG9maWxsZWQoKTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNEZWZh
dWx0QnV0dG9uRm9yRm9ybShjb25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBl
bGVtZW50LT5pc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCk7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9v
bCBpc0Rpc2FibGVkKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKGVsZW1lbnQt
PmlzRm9ybUNvbnRyb2xFbGVtZW50KCkgfHwgaXNIVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KSB8
fCBpc0hUTUxPcHRHcm91cEVsZW1lbnQoZWxlbWVudCkpCisgICAgICAgIHJldHVybiBlbGVtZW50
LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0FMV0FZ
U19JTkxJTkUgYm9vbCBpc0VuYWJsZWQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBp
ZiAoZWxlbWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSB8fCBpc0hUTUxPcHRpb25FbGVtZW50
KGVsZW1lbnQpIHx8IGlzSFRNTE9wdEdyb3VwRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgcmV0
dXJuICFlbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0NoZWNrZWQoRWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICAvLyBFdmVuIHRob3VnaCBXaW5JRSBhbGxvd3MgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0
ZSB0byBjby1leGlzdCwgdGhlIENTUyBzZWxlY3RvciBzcGVjIHNheXMgdGhhdAorICAgIC8vIHlv
dSBjYW4ndCBiZSBib3RoIGNoZWNrZWQgYW5kIGluZGV0ZXJtaW5hdGUuIFdlIHdpbGwgYmVoYXZl
IGxpa2UgV2luSUUgYmVoaW5kIHRoZSBzY2VuZXMgYW5kIGp1c3QKKyAgICAvLyBvYmV5IHRoZSBD
U1Mgc3BlYyBoZXJlIGluIHRoZSB0ZXN0IGZvciBtYXRjaGluZyB0aGUgcHNldWRvLgorICAgIGNv
bnN0IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGVsZW1lbnQtPnRvSW5wdXRFbGVt
ZW50KCk7CisgICAgaWYgKGlucHV0RWxlbWVudCAmJiBpbnB1dEVsZW1lbnQtPnNob3VsZEFwcGVh
ckNoZWNrZWQoKSAmJiAhaW5wdXRFbGVtZW50LT5zaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChpc0hUTUxPcHRpb25FbGVtZW50KGVsZW1l
bnQpICYmIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnNlbGVjdGVkKCkpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKworQUxXQVlTX0lOTElORSBib29s
IGlzSW52YWxpZChjb25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCkuc2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKTsKKyAgICByZXR1cm4gZWxlbWVu
dC0+d2lsbFZhbGlkYXRlKCkgJiYgIWVsZW1lbnQtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KTsKK30KKworQUxXQVlTX0lOTElORSBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbChjb25zdCBF
bGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LT5pc09wdGlvbmFsRm9ybUNv
bnRyb2woKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbChj
b25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LT5pc1JlcXVpcmVk
Rm9ybUNvbnRyb2woKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIGlzVmFsaWQoY29uc3QgRWxl
bWVudCogZWxlbWVudCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnNldENvbnRhaW5zVmFs
aWRpdHlTdHlsZVJ1bGVzKCk7CisgICAgcmV0dXJuIGVsZW1lbnQtPndpbGxWYWxpZGF0ZSgpICYm
IGVsZW1lbnQtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKK30KKworQUxXQVlTX0lOTElO
RSBib29sIG1hdGNoZXNSZWFkT25seVBzZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIGVsZW1lbnQtPm1hdGNoZXNSZWFkT25seVBzZXVkb0NsYXNzKCk7Cit9
CisKK0FMV0FZU19JTkxJTkUgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoY29uc3Qg
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+bWF0Y2hlc1JlYWRXcml0
ZVBzZXVkb0NsYXNzKCk7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBzaG91bGRBcHBlYXJJbmRl
dGVybWluYXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQt
PnNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUoKTsKK30KKworI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKK0FMV0FZU19JTkxJTkUgYm9vbCBtYXRjaGVzRnVsbFNjcmVlblBzZXVkb0NsYXNzKGNv
bnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgLy8gV2hpbGUgYSBEb2N1bWVudCBpcyBpbiB0
aGUgZnVsbHNjcmVlbiBzdGF0ZSwgYW5kIHRoZSBkb2N1bWVudCdzIGN1cnJlbnQgZnVsbHNjcmVl
bgorICAgIC8vIGVsZW1lbnQgaXMgYW4gZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQsIHRoZSAnZnVs
bC1zY3JlZW4nIHBzZXVkb2NsYXNzIGFwcGxpZXMgdG8KKyAgICAvLyB0aGF0IGVsZW1lbnQuIEFs
c28sIGFuIDxpZnJhbWU+LCA8b2JqZWN0PiBvciA8ZW1iZWQ+IGVsZW1lbnQgd2hvc2UgY2hpbGQg
YnJvd3NpbmcKKyAgICAvLyBjb250ZXh0J3MgRG9jdW1lbnQgaXMgaW4gdGhlIGZ1bGxzY3JlZW4g
c3RhdGUgaGFzIHRoZSAnZnVsbC1zY3JlZW4nIHBzZXVkb2NsYXNzIGFwcGxpZWQuCisgICAgaWYg
KGVsZW1lbnQtPmlzRnJhbWVFbGVtZW50QmFzZSgpICYmIGVsZW1lbnQtPmNvbnRhaW5zRnVsbFNj
cmVlbkVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKCFlbGVtZW50LT5k
b2N1bWVudCgpLndlYmtpdElzRnVsbFNjcmVlbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGVsZW1lbnQgPT0gZWxlbWVudC0+ZG9jdW1lbnQoKS53ZWJraXRDdXJyZW50RnVs
bFNjcmVlbkVsZW1lbnQoKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQor
QUxXQVlTX0lOTElORSBib29sIG1hdGNoZXNGdXR1cmVDdWVQc2V1ZG9DbGFzcyhjb25zdCBFbGVt
ZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiAoZWxlbWVudC0+aXNXZWJWVFRFbGVtZW50KCkg
JiYgIXRvV2ViVlRURWxlbWVudChlbGVtZW50KS0+aXNQYXN0Tm9kZSgpKTsKK30KKworQUxXQVlT
X0lOTElORSBib29sIG1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gKGVsZW1lbnQtPmlzV2ViVlRURWxlbWVudCgpICYmIHRvV2Vi
VlRURWxlbWVudChlbGVtZW50KS0+aXNQYXN0Tm9kZSgpKTsKK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25z
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCA2MzE2
MGVlYjJlYzBhNGY5MmNmZWEyMDQ3MzYzN2MyNjU3ZGUxODM2Li5hMzhiOGE1YWY0ZjNjZDQ5ZDZi
NmNkMWMyYmI5YWUxN2VhYjAxMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJBbGxvY2F0
b3IuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKKyNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9MaW5rQnVmZmVyLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXIuaD4KQEAgLTEzOSwxMCAr
MTQwLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gRWxlbWVudCBwcm9wZXJ0aWVzIG1hdGNoZXJzLgog
ICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFp
bHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50Jik7CiAgICAgdm9pZCBnZW5lcmF0ZUVs
ZW1lbnREYXRhTWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25z
dCBTZWxlY3RvckZyYWdtZW50Jik7CisgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRGdW5jdGlvbkNh
bGxUZXN0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgSlNDOjpGdW5jdGlvblB0
cik7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRIYXNUYWdOYW1lKEFzc2VtYmxlcjo6SnVtcExp
c3QmIGZhaWx1cmVDYXNlcywgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZVRvTWF0Y2gpOwogICAg
IHZvaWQgZ2VuZXJhdGVFbGVtZW50SGFzSWQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNh
c2VzLCBjb25zdCBMb2NhbFJlZ2lzdGVyJiBlbGVtZW50RGF0YUFkZHJlc3MsIGNvbnN0IEF0b21p
Y1N0cmluZyYgaWRUb01hdGNoKTsKICAgICB2b2lkIGdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMo
QXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBMb2NhbFJlZ2lzdGVyJiBl
bGVtZW50RGF0YUFkZHJlc3MsIGNvbnN0IFZlY3Rvcjxjb25zdCBBdG9taWNTdHJpbmdJbXBsKj4m
IGNsYXNzTmFtZXMpOwotICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50SXNGb2N1c2VkKEFzc2VtYmxl
cjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcyk7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJc0xp
bmsoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKIAogICAgIEFzc2VtYmxlciBt
X2Fzc2VtYmxlcjsKQEAgLTIwNiwxMiArMjA3LDMyIEBAIHN0YXRpYyBpbmxpbmUgRnVuY3Rpb25U
eXBlIGFkZFBzZXVkb1R5cGUoQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSwgSGFzaFNldDx1
CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55
TGluazoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgogICAgICAgICBwc2V1ZG9D
bGFzc2VzLmFkZChDU1NTZWxlY3Rvcjo6UHNldWRvTGluayk7CiAgICAgICAgIHJldHVybiBGdW5j
dGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9BdXRvZmlsbDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlZmF1bHQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRGlzYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxlZDoKICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1czoKLSAgICAgICAgcHNldWRvQ2xhc3Nlcy5h
ZGQoQ1NTU2VsZWN0b3I6OlBzZXVkb0ZvY3VzKTsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9JbmRldGVybWluYXRlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ludmFsaWQ6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9PcHRpb25hbDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkT25seToKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkV3JpdGU6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvUmVxdWlyZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6Cisj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1
bGxTY3JlZW46CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bh
c3RDdWU6CisjZW5kaWYKKyAgICAgICAgcHNldWRvQ2xhc3Nlcy5hZGQodHlwZSk7CiAgICAgICAg
IHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKKwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc3MSw2ICs3OTIsNDAgQEAgdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlQmFja3RyYWNraW5nVGFpbHNJZk5lZWRlZChjb25z
dCBTZWxlY3RvckZyYWcKICAgICB9CiB9CiAKK3N0cnVjdCBVbm9wdGltaXplZFBzZXVkb0NoZWNr
ZXIgeworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVkb0lkOworICAgIGJvb2wgKCp0
ZXN0RnVuY3Rpb24pKGNvbnN0IEVsZW1lbnQqKTsKK307CisKK3RlbXBsYXRlPGJvb2wgKCp0ZXN0
RnVuY3Rpb24pKEVsZW1lbnQqKT4KK2lubGluZSBib29sIG5vbkNvbnN0VGVzdEZ1bmN0aW9uV3Jh
cHBlcihjb25zdCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiB0ZXN0RnVuY3Rpb24o
Y29uc3RfY2FzdDxFbGVtZW50Kj4oZWxlbWVudCkpOworfQorCitzdGF0aWMgY29uc3QgVW5vcHRp
bWl6ZWRQc2V1ZG9DaGVja2VyIHVub3B0aW1pemVkUHNldWRvQ2hlY2tlcnNbXSA9IHsKKyAgICB7
IENTU1NlbGVjdG9yOjpQc2V1ZG9BdXRvZmlsbCwgaXNBdXRvZmlsbGVkIH0sCisgICAgeyBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZCwgbm9uQ29uc3RUZXN0RnVuY3Rpb25XcmFwcGVyPGlzQ2hl
Y2tlZD4gfSwKKyAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0LCBpc0RlZmF1bHRCdXR0
b25Gb3JGb3JtIH0sCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQsIGlzRGlzYWJs
ZWQgfSwKKyAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVkLCBpc0VuYWJsZWQgfSwKKyAg
ICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWluYXRlLCBzaG91bGRBcHBlYXJJbmRldGVy
bWluYXRlIH0sCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZCwgaXNJbnZhbGlkIH0s
CisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvRm9jdXMsIFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2hl
c0ZvY3VzUHNldWRvQ2xhc3MgfSwKKyAgICB7IENTU1NlbGVjdG9yOjpQc2V1ZG9PcHRpb25hbCwg
aXNPcHRpb25hbEZvcm1Db250cm9sIH0sCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZE9u
bHksIG1hdGNoZXNSZWFkT25seVBzZXVkb0NsYXNzIH0sCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNl
dWRvUmVhZFdyaXRlLCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MgfSwKKyAgICB7IENTU1Nl
bGVjdG9yOjpQc2V1ZG9SZXF1aXJlZCwgaXNSZXF1aXJlZEZvcm1Db250cm9sIH0sCisgICAgeyBD
U1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQsIGlzVmFsaWQgfSwKKyNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbiwgbWF0Y2hlc0Z1bGxT
Y3JlZW5Qc2V1ZG9DbGFzcyB9LAorI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAg
IHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZUN1ZSwgbWF0Y2hlc0Z1dHVyZUN1ZVBzZXVkb0Ns
YXNzIH0sCisgICAgeyBDU1NTZWxlY3Rvcjo6UHNldWRvUGFzdEN1ZSwgbWF0Y2hlc1Bhc3RDdWVQ
c2V1ZG9DbGFzcyB9LAorI2VuZGlmCit9OworCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2Vz
LCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKIHsKICAgICBpZiAoZnJhZ21lbnQu
cHNldWRvQ2xhc3Nlcy5jb250YWlucyhDU1NTZWxlY3Rvcjo6UHNldWRvTGluaykpCkBAIC03Nzks
OCArODM0LDEyIEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRN
YXRjaGluZyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlCiAgICAgaWYgKGZyYWdtZW50LnRh
Z05hbWUpCiAgICAgICAgIGdlbmVyYXRlRWxlbWVudEhhc1RhZ05hbWUoZmFpbHVyZUNhc2VzLCAq
KGZyYWdtZW50LnRhZ05hbWUpKTsKIAotICAgIGlmIChmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNv
bnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1cykpCi0gICAgICAgIGdlbmVyYXRlRWxlbWVu
dElzRm9jdXNlZChmYWlsdXJlQ2FzZXMpOworICAgIGlmICghZnJhZ21lbnQucHNldWRvQ2xhc3Nl
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJB
WV9MRU5HVEgodW5vcHRpbWl6ZWRQc2V1ZG9DaGVja2Vycyk7ICsraSkgeworICAgICAgICAgICAg
aWYgKGZyYWdtZW50LnBzZXVkb0NsYXNzZXMuY29udGFpbnModW5vcHRpbWl6ZWRQc2V1ZG9DaGVj
a2Vyc1tpXS5wc2V1ZG9JZCkpCisgICAgICAgICAgICAgICAgZ2VuZXJhdGVFbGVtZW50RnVuY3Rp
b25DYWxsVGVzdChmYWlsdXJlQ2FzZXMsIHVub3B0aW1pemVkUHNldWRvQ2hlY2tlcnNbaV0udGVz
dEZ1bmN0aW9uKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIGdlbmVyYXRlRWxlbWVudERhdGFN
YXRjaGluZyhmYWlsdXJlQ2FzZXMsIGZyYWdtZW50KTsKIH0KQEAgLTgwNCw2ICs4NjMsMTUgQEAg
dm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudERhdGFNYXRjaGluZyhB
c3NlbWJsZXI6Okp1bXBMaXN0JiBmYWkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SGFzQ2xhc3Nl
cyhmYWlsdXJlQ2FzZXMsIGVsZW1lbnREYXRhQWRkcmVzcywgZnJhZ21lbnQuY2xhc3NOYW1lcyk7
CiB9CiAKK3ZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRGdW5jdGlv
bkNhbGxUZXN0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgSlNDOjpGdW5jdGlv
blB0ciB0ZXN0RnVuY3Rpb24pCit7CisgICAgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGVsZW1lbnRB
ZGRyZXNzID0gZWxlbWVudEFkZHJlc3NSZWdpc3RlcjsKKyAgICBGdW5jdGlvbkNhbGwgZnVuY3Rp
b25DYWxsKG1fYXNzZW1ibGVyLCBtX3JlZ2lzdGVyQWxsb2NhdG9yLCBtX3N0YWNrQWxsb2NhdG9y
LCBtX2Z1bmN0aW9uQ2FsbHMpOworICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJlc3Mo
dGVzdEZ1bmN0aW9uKTsKKyAgICBmdW5jdGlvbkNhbGwuc2V0Rmlyc3RBcmd1bWVudChlbGVtZW50
QWRkcmVzcyk7CisgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlvbkNhbGwuY2FsbEFuZEJy
YW5jaE9uQ29uZGl0aW9uKEFzc2VtYmxlcjo6WmVybykpOworfQorCiBpbmxpbmUgdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudEhhc1RhZ05hbWUoQXNzZW1ibGVyOjpK
dW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lVG9NYXRjaCkK
IHsKICAgICBpZiAobmFtZVRvTWF0Y2ggPT0gYW55UU5hbWUoKSkKQEAgLTg3MywxNSArOTQxLDYg
QEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMo
QXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHUKICAgICB9CiB9CiAKLXZvaWQgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc0ZvY3VzZWQoQXNzZW1ibGVyOjpKdW1wTGlzdCYg
ZmFpbHVyZUNhc2VzKQotewotICAgIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBlbGVtZW50QWRkcmVz
cyA9IGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXI7Ci0gICAgRnVuY3Rpb25DYWxsIGZ1bmN0aW9uQ2Fs
bChtX2Fzc2VtYmxlciwgbV9yZWdpc3RlckFsbG9jYXRvciwgbV9zdGFja0FsbG9jYXRvciwgbV9m
dW5jdGlvbkNhbGxzKTsKLSAgICBmdW5jdGlvbkNhbGwuc2V0RnVuY3Rpb25BZGRyZXNzKFNlbGVj
dG9yQ2hlY2tlcjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MpOwotICAgIGZ1bmN0aW9uQ2FsbC5z
ZXRGaXJzdEFyZ3VtZW50KGVsZW1lbnRBZGRyZXNzKTsKLSAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KGZ1bmN0aW9uQ2FsbC5jYWxsQW5kQnJhbmNoT25Db25kaXRpb24oQXNzZW1ibGVyOjpaZXJvKSk7
Ci19Ci0KIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc0xpbmso
QXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKQogewogICAgIGZhaWx1cmVDYXNlcy5h
cHBlbmQobV9hc3NlbWJsZXIuYnJhbmNoVGVzdDMyKEFzc2VtYmxlcjo6WmVybywgQXNzZW1ibGVy
OjpBZGRyZXNzKGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIsIE5vZGU6Om5vZGVGbGFnc01lbW9yeU9m
ZnNldCgpKSwgQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoTm9kZTo6ZmxhZ0lzTGluaygpKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggZmNjZjA4ZjhhNGI2OWQxOWViYTdkMGY1MDg4NmVjNWYwMjAx
MDhjNS4uYjJiZTlhNTVjMjMyNmRhYzQ2YjYxZjdkY2I4ODY1NWE4MTM0NzAyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCkBAIC00ODIsNyArNDgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0luUmFuZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc091dE9mUmFuZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lRWxlbWVudEJhc2UoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZDFiMmI4ZDExZjg3Yzc2NjMz
YzQ2Njg1MTY0OTUxZjZhNmRjMmI1Zi4uZDhiNjZhYTAyOTU4OTFlOTAxNGRkNGVkNGMxOWYwNzA0
YjYxZTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01MDQsNiArNTA0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBOb2RlKiB0b05vZGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEhUTUxJbnB1dEVs
ZW1lbnQqIHRvSW5wdXRFbGVtZW50KCk7CisgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogdG9J
bnB1dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE5vZGUqPih0aGlzKS0+dG9J
bnB1dEVsZW1lbnQoKTsgfQogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIGZp
bmFsOyAvLyBJbXBsZW1lbnRlZCBpbiBEb2N1bWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA2Mzg4MTNkMmMxMTljZTY5ODQyY2I3
ZDIyOWM1M2ZkMDdmMmQ3NTY4Li44ZjdiZDk3MjkzYmJiOGEyYTk0MGQyZTQ2NWFiZTIzMTc0OTcz
NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTQxOSw3ICs0MTksNyBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNr
VmFsaWRpdHkoVmVjdG9yPFJlZlB0cjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQ+PgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc1ZhbGlkRm9ybUNv
bnRyb2xFbGVtZW50KCkKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNWYWxpZEZvcm1D
b250cm9sRWxlbWVudCgpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIGZvbGxvd2luZyBhc3NlcnRp
b24gZmFpbHMsIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpIGlzIG5vdCBjYWxsZWQKICAgICAvLyBj
b3JyZWN0bHkgd2hlbiBzb21ldGhpbmcgd2hpY2ggY2hhbmdlcyB2YWxpZGl0eSBpcyB1cGRhdGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA5
ODM5OGYwMDU0YjUxYmU3YmFiYWM2MDMyZWU2ZDJhNzJkOWQ5NTJlLi5mYmEwNDgwZTVmMGVhMDUy
MmIxMjUzNGI4NjZkZWY5YjQ3ZjZiYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHVwZGF0ZUFuY2VzdG9yRGlzYWJsZWRTdGF0ZSgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBIVE1MRWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIG92ZXJyaWRlIGZpbmFsIHsgcmV0
dXJuICp0aGlzOyB9Cg==
</data>
<flag name="review"
          id="247728"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>