<?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>70475</bug_id>
          
          <creation_ts>2011-10-19 23:35:59 -0700</creation_ts>
          <short_desc>REGRESSION(r97917): number of crashes on Snow Leopard/Lion tests bots http://build.webkit.org/results/Lion%20Intel%20Release%20(Tests)/r97917%20(2020)/http/tests/inspector/extensions-network-redirect-crash-log.txt (Requested by loislo on #webkit).</short_desc>
          <delta_ts>2011-10-20 00:34:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>70276</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>darin</cc>
    
    <cc>loislo</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>487353</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 23:35:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/97917 broke the build:
number of crashes on Snow Leopard/Lion tests bots http://build.webkit.org/results/Lion%20Intel%20Release%20(Tests)/r97917%20(2020)/http/tests/inspector/extensions-network-redirect-crash-log.txt (Requested by loislo 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>487355</commentid>
    <comment_count>1</comment_count>
      <attachid>111728</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 23:36:24 -0700</bug_when>
    <thetext>Created attachment 111728
ROLLOUT of r97917

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>487380</commentid>
    <comment_count>2</comment_count>
      <attachid>111728</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-10-20 00:33:55 -0700</bug_when>
    <thetext>Comment on attachment 111728
ROLLOUT of r97917

Clearing flags on attachment: 111728

Committed r97946: &lt;http://trac.webkit.org/changeset/97946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487381</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-10-20 00:34:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111728</attachid>
            <date>2011-10-19 23:36:24 -0700</date>
            <delta_ts>2011-10-20 00:33:55 -0700</delta_ts>
            <desc>ROLLOUT of r97917</desc>
            <filename>bug-70475-20111020063623.patch</filename>
            <type>text/plain</type>
            <size>47490</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNDM4ZWE0Y2VmMjk2MWU0
N2FiMDQ5NGY4NDEyMTJlOWJjMDZhMWNiLi41Nzg0ZTdjZDcyYjVkNDA1YmYwZjA3Nzg3YzE1Mzlk
OWE0YzMwYTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTEtMTAtMTkgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5NzkxNy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvOTc5MTcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcwNDc1CisKKyAgICAgICAgbnVtYmVyIG9mIGNyYXNoZXMgb24gU25vdyBMZW9wYXJk
L0xpb24gdGVzdHMgYm90cworICAgICAgICBodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9yZXN1bHRz
L0xpb24lMjBJbnRlbCUyMFJlbGVhc2UlMjAoVGVzdHMpL3I5NzkxNyUyMCgyMDIwKS9odHRwL3Rl
c3RzL2luc3BlY3RvcgorICAgICAgICAvZXh0ZW5zaW9ucy1uZXR3b3JrLXJlZGlyZWN0LWNyYXNo
LWxvZy50eHQgKFJlcXVlc3RlZCBieQorICAgICAgICBsb2lzbG8gb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6CisgICAgICAgICogZG9tL09wdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudDo6c2V0U2VsZWN0ZWRTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50OjpvcHRpb25JbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uTGFiZWxPclRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50Ojpub3JtYWxpemVUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGluZ0dy
b3VwTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudERhdGE6Ok9wdGlvbkVs
ZW1lbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnREYXRhOjp+T3B0aW9u
RWxlbWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6dG9PcHRpb25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OmlzT3B0aW9uRWxlbWVudCk6CisgICAgICAgICogZG9tL09wdGlvbkVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnQ6On5PcHRpb25FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1lbnREYXRhOjp2YWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpPcHRpb25FbGVtZW50RGF0YTo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
T3B0aW9uRWxlbWVudERhdGE6OmxhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkVsZW1l
bnREYXRhOjpzZXRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50RGF0YTo6
c2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudERhdGE6OnNldFNlbGVj
dGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpIVE1MT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6dGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT3B0aW9uRWxlbWVudDo6aW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlv
bkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxP
cHRpb25FbGVtZW50Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVu
dDo6c2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnNldFNl
bGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpzZXRTZWxlY3Rl
ZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpkZWZhdWx0U2Vs
ZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnNldERlZmF1bHRT
ZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6bGFiZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnRleHRJbmRlbnRlZFRvUmVzcGVj
dEdyb3VwTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6Omluc2Vy
dGVkSW50b1RyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpuZXh0VmFsaWRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6c2F2ZUxhc3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94T25DaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlY2FsY0xpc3RJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0ZWRJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uVG9MaXN0SW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RUb09wdGlvbkluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJv
bFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YXBw
ZW5kRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsYXN0U2VsZWN0ZWRM
aXN0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnR5cGVBaGVh
ZEZpbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vzc0tleVNl
dFNlbGVjdGVkSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxl
bmd0aCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y29weUltYWdlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0
Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94
OjphZGRGb2N1c1JpbmdSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpw
YWludEl0ZW1Gb3JlZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBh
aW50SXRlbUJhY2tncm91bmQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6dXBkYXRlT3B0aW9uc1dpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbU9wdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6aXRlbVRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6Oml0ZW1Jc1NlbGVjdGVkKToKKwogMjAxMS0xMC0xOSAg
S2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWVzc2FnZUV2
ZW50LmRhdGEgY2FuIGJlIHN0b3JlZCBhcyBTY3JpcHRWYWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggNDg3OTEyNWYwM2UwNDA4YWFiNGI2NTM4ODVkMmNlNDY0MDI3ZjUwNC4uNTQx
ODg2YTg2NzVjMzM1YTRiZjUyMzI2YjhhODJmNmIwYzE5OTcwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMC0xOSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjk3OTE3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC85Nzkx
NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NzUK
KworICAgICAgICBudW1iZXIgb2YgY3Jhc2hlcyBvbiBTbm93IExlb3BhcmQvTGlvbiB0ZXN0cyBi
b3RzCisgICAgICAgIGh0dHA6Ly9idWlsZC53ZWJraXQub3JnL3Jlc3VsdHMvTGlvbiUyMEludGVs
JTIwUmVsZWFzZSUyMChUZXN0cykvcjk3OTE3JTIwKDIwMjApL2h0dHAvdGVzdHMvaW5zcGVjdG9y
CisgICAgICAgIC9leHRlbnNpb25zLW5ldHdvcmstcmVkaXJlY3QtY3Jhc2gtbG9nLnR4dCAoUmVx
dWVzdGVkIGJ5CisgICAgICAgIGxvaXNsbyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHNyYy9X
ZWJPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6
ZGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6c2V0
RGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2VhcmNoYWJsZUZvcm1EYXRhLmNw
cDoKKyAgICAgICAgKEhUTUxOYW1lczo6SXNTZWxlY3RJbkRlZmF1bHRTdGF0ZSk6CisKIDIwMTEt
MTAtMTkgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUm91dGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRocm91Z2ggQ0NQcm94eSBpbiB0aHJlYWRl
ZCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDA1M2M1Njc5
YzEzYmRjOTY5MDRiY2E5NmUyODdjMzdhYWIyODU2NDkuLjI5Mjk3YTZhZjI1OTYyNGU3OWZlMmU5
MDVhYTE3MmIyZmI4ZTkyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CkBAIC0zNywxMCArMzcsMTAgQEAKICNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50QmFzZS5oIgog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNp
bmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQcm9ncmVzc0VsZW1l
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJO
b2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgpAQCAtMTExNCw3ICsxMTE0LDkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2Vs
ZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbCwgRWxlbWVudCogZSwgUHNldWRvSWQmIGQKICAgICAgICAg
ICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBlLT50b0lucHV0RWxlbWVu
dCgpOwogICAgICAgICAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQgJiYgaW5wdXRFbGVtZW50LT5z
aG91bGRBcHBlYXJDaGVja2VkKCkgJiYgIWlucHV0RWxlbWVudC0+aXNJbmRldGVybWluYXRlKCkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChl
LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgJiYgdG9IVE1MT3B0aW9uRWxlbWVudChlKS0+c2VsZWN0
ZWQoKSkKKworICAgICAgICAgICAgICAgIE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0
b09wdGlvbkVsZW1lbnQoZSk7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbkVsZW1lbnQgJiYg
b3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
T3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMWJlYmFiODRiYzc3YWNjNzNkNjY3N2Q0NTAwOTNhNWY5
YzUyMTQzZS4uYzkyMDdjZjY1NDI0NjU3NDg0MDJkMWE5YThhN2Y2MmUzN2YzYjljMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcApAQCAtMSArMSwxNDIgQEAKLS8vIEZJWE1FOiBE
ZWxldGUgdGhpcyBmaWxlIGFmdGVyIHVwZGF0aW5nIGFsbCB0aGUgcHJvamVjdCBmaWxlcy4KKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJI
VE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit2b2lkIE9wdGlvbkVsZW1lbnQ6OnNldFNlbGVjdGVkU3RhdGUoT3B0aW9uRWxlbWVudERhdGEm
IGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgc2VsZWN0ZWQpCit7CisgICAgaWYgKGRhdGEu
c2VsZWN0ZWQoKSA9PSBzZWxlY3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGF0YS5zZXRT
ZWxlY3RlZChzZWxlY3RlZCk7CisgICAgZWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwor
fQorCitpbnQgT3B0aW9uRWxlbWVudDo6b3B0aW9uSW5kZXgoSFRNTFNlbGVjdEVsZW1lbnQqIHNl
bGVjdEVsZW1lbnQsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFzZWxlY3RF
bGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIExldCdzIGRvIHRoaXMgZHluYW1p
Y2FsbHkuIE1pZ2h0IGJlIGEgYml0IHNsb3csIGJ1dCB3ZSdyZSBzdXJlCisgICAgLy8gd2Ugd29u
J3QgZm9yZ2V0IHRvIHVwZGF0ZSBhIG1lbWJlciB2YXJpYWJsZSBpbiBzb21lIGNhc2VzLi4uCisg
ICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gc2VsZWN0RWxlbWVudC0+bGlz
dEl0ZW1zKCk7CisgICAgaW50IGxlbmd0aCA9IGl0ZW1zLnNpemUoKTsKKyAgICBpbnQgb3B0aW9u
SW5kZXggPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgaWYgKCFpc09wdGlvbkVsZW1lbnQoaXRlbXNbaV0pKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGlmIChpdGVtc1tpXSA9PSBlbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIG9w
dGlvbkluZGV4OworICAgICAgICArK29wdGlvbkluZGV4OworICAgIH0KKworICAgIHJldHVybiAw
OworfQorCitTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbkxhYmVsT3JUZXh0KGNv
bnN0IE9wdGlvbkVsZW1lbnREYXRhJiBkYXRhLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQorewor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgU3RyaW5n
IHRleHQ7CisKKyAgICAvLyBXaW5JRSBkb2VzIG5vdCB1c2UgdGhlIGxhYmVsIGF0dHJpYnV0ZSwg
c28gYXMgYSBxdWlyaywgd2UgaWdub3JlIGl0LgorICAgIGlmICghZG9jdW1lbnQtPmluUXVpcmtz
TW9kZSgpKQorICAgICAgICB0ZXh0ID0gZGF0YS5sYWJlbCgpOworICAgIGlmICh0ZXh0LmlzRW1w
dHkoKSkKKyAgICAgICAgdGV4dCA9IGNvbGxlY3RPcHRpb25Jbm5lclRleHQoZWxlbWVudCk7Cisg
ICAgcmV0dXJuIG5vcm1hbGl6ZVRleHQoZG9jdW1lbnQsIHRleHQpOworfQorCitTdHJpbmcgT3B0
aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dChjb25zdCBFbGVtZW50KiBlbGVtZW50
KQoreworICAgIFN0cmluZyB0ZXh0OworICAgIE5vZGUqIG4gPSBlbGVtZW50LT5maXJzdENoaWxk
KCk7CisgICAgd2hpbGUgKG4pIHsKKyAgICAgICAgaWYgKG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6
VEVYVF9OT0RFIHx8IG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFKQor
ICAgICAgICAgICAgdGV4dCArPSBuLT5ub2RlVmFsdWUoKTsKKworICAgICAgICAvLyBza2lwIHNj
cmlwdCBjb250ZW50CisgICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9TY3JpcHRF
bGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKSkpCisgICAgICAgICAgICBuID0gbi0+dHJh
dmVyc2VOZXh0U2libGluZyhlbGVtZW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbiA9
IG4tPnRyYXZlcnNlTmV4dE5vZGUoZWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiB0ZXh0Owor
fQorCitTdHJpbmcgT3B0aW9uRWxlbWVudDo6bm9ybWFsaXplVGV4dChjb25zdCBEb2N1bWVudCog
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3JjKQoreworICAgIFN0cmluZyB0ZXh0ID0gZG9jdW1l
bnQtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3JjKTsKKworICAgIC8vIEluIFdp
bklFLCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGlzIGlnbm9yZWQgaW4gb3B0aW9u
cyBhbmQgb3B0Z3JvdXBzLiBXZSBtYXRjaCB0aGlzIGJlaGF2aW9yLgorICAgIHRleHQgPSB0ZXh0
LnN0cmlwV2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisKKyAgICAvLyBXZSB3YW50IHRvIGNvbGxh
cHNlIG91ciB3aGl0ZXNwYWNlIHRvby4gVGhpcyB3aWxsIG1hdGNoIG90aGVyIGJyb3dzZXJzLgor
ICAgIHRleHQgPSB0ZXh0LnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisKKyAgICBy
ZXR1cm4gdGV4dDsKK30KKworU3RyaW5nIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0
UmVzcGVjdGluZ0dyb3VwTGFiZWwoY29uc3QgT3B0aW9uRWxlbWVudERhdGEmIGRhdGEsIGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihlbGVtZW50LT5wYXJlbnROb2RlKCkpOworICAgIGlmIChwYXJlbnRF
bGVtZW50ICYmIHBhcmVudEVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQorICAgICAg
ICByZXR1cm4gIiAgICAiICsgY29sbGVjdE9wdGlvbkxhYmVsT3JUZXh0KGRhdGEsIGVsZW1lbnQp
OworCisgICAgcmV0dXJuIGNvbGxlY3RPcHRpb25MYWJlbE9yVGV4dChkYXRhLCBlbGVtZW50KTsK
K30KKworLy8gT3B0aW9uRWxlbWVudERhdGEKK09wdGlvbkVsZW1lbnREYXRhOjpPcHRpb25FbGVt
ZW50RGF0YSgpCisgICAgOiBtX3NlbGVjdGVkKGZhbHNlKQoreworfQorCitPcHRpb25FbGVtZW50
RGF0YTo6fk9wdGlvbkVsZW1lbnREYXRhKCkKK3sKK30KKworT3B0aW9uRWxlbWVudCogdG9PcHRp
b25FbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgaXNPcHRpb25FbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIGVsZW1lbnQtPmhhc0xvY2FsTmFtZShIVE1MTmFtZXM6Om9wdGlvblRh
Zyk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5oCmluZGV4IDgzMGU1NjIyNGMw
YzRjZTQwYjU5YTQzNzVhNWY0N2Q5NzlhOTI1MzAuLjk1ZjNlZTM5NzQwZmIwODVmM2VmMmNlNjdm
NWI4MWQ4ZjI5N2MxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuaApAQCAtMSwyICsx
LDgzIEBACi0vLyBGSVhNRTogRGVsZXRlIHRoaXMgZmlsZSBhZnRlciB1cGRhdGluZyBhbGwgdGhl
IHByb2plY3QgZmlsZXMuCi0jZXJyb3IKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgT3B0aW9uRWxlbWVudF9oCisjZGVmaW5lIE9wdGlvbkVsZW1lbnRf
aAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBFbGVtZW50OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBIVE1MU2VsZWN0RWxlbWVu
dDsKK2NsYXNzIE9wdGlvbkVsZW1lbnREYXRhOworCitjbGFzcyBPcHRpb25FbGVtZW50IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5PcHRpb25FbGVtZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJv
b2wgZGlzYWJsZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFN0YXRlKGJvb2wpID0gMDsKKworICAgIHZp
cnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdGV4dElu
ZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdGVkU3RhdGUoT3B0aW9uRWxlbWVudERhdGEmLCBFbGVtZW50KiwgYm9vbCBzZWxlY3RlZCk7
CisgICAgc3RhdGljIGludCBvcHRpb25JbmRleChIVE1MU2VsZWN0RWxlbWVudCosIGNvbnN0IEVs
ZW1lbnQqKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNvbGxlY3RPcHRpb25MYWJlbE9yVGV4dChjb25z
dCBPcHRpb25FbGVtZW50RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgU3RyaW5n
IGNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGluZ0dyb3VwTGFiZWwoY29uc3QgT3B0aW9uRWxlbWVu
dERhdGEmLCBjb25zdCBFbGVtZW50Kik7CisgICAgc3RhdGljIFN0cmluZyBjb2xsZWN0T3B0aW9u
VmFsdWUoY29uc3QgT3B0aW9uRWxlbWVudERhdGEmLCBjb25zdCBFbGVtZW50Kik7CisgICAgc3Rh
dGljIFN0cmluZyBjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KGNvbnN0IEVsZW1lbnQqKTsKK3ByaXZh
dGU6CisgICAgc3RhdGljIFN0cmluZyBub3JtYWxpemVUZXh0KGNvbnN0IERvY3VtZW50KiwgY29u
c3QgU3RyaW5nJik7Cit9OworCisvLyBIVE1MT3B0aW9uRWxlbWVudCBob2xkIHRoaXMgc3RydWN0
IGFzIG1lbWJlciB2YXJpYWJsZQorLy8gYW5kIHBhc3MgaXQgdG8gdGhlIHN0YXRpYyBoZWxwZXIg
ZnVuY3Rpb25zIGluIE9wdGlvbkVsZW1lbnQKK2NsYXNzIE9wdGlvbkVsZW1lbnREYXRhIHsKK3B1
YmxpYzoKKyAgICBPcHRpb25FbGVtZW50RGF0YSgpOworICAgIH5PcHRpb25FbGVtZW50RGF0YSgp
OworCisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFsdWU7IH0KKwor
ICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9CisKKyAgICBi
b29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQorICAgIHZvaWQgc2V0
U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkgeyBtX3NlbGVjdGVkID0gc2VsZWN0ZWQ7IH0KKworcHJp
dmF0ZToKKyAgICBTdHJpbmcgbV92YWx1ZTsKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBib29s
IG1fc2VsZWN0ZWQ7Cit9OworCitPcHRpb25FbGVtZW50KiB0b09wdGlvbkVsZW1lbnQoRWxlbWVu
dCopOworYm9vbCBpc09wdGlvbkVsZW1lbnQoRWxlbWVudCopOworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCBjNzFmNDMwYWFmY2Qy
M2UzMTc1OGYxZGNiZGEyYjIzZGM0NTE2ZmVmLi45NGY2MzZmN2M0M2FlMjFjNDMyNjk1NjcxZjM2
ZTYwMjY0MDYwMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cApAQCAtMzcsMTEgKzM3LDkgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
OSw3ICs0Nyw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIEhUTUxPcHRpb25FbGVt
ZW50OjpIVE1MT3B0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCi0gICAgLCBtX2lzU2VsZWN0ZWQo
ZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUob3B0aW9uVGFnKSk7CiB9CkBAIC03OCw4
ICs3NSw3IEBAIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50
OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50CiAKICAgICBpZiAoIXZhbHVlLmlzTnVs
bCgpKQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7Ci0gICAgaWYgKGRlZmF1bHRT
ZWxlY3RlZCkKLSAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgZW1w
dHlBdG9tKTsKKyAgICBlbGVtZW50LT5zZXREZWZhdWx0U2VsZWN0ZWQoZGVmYXVsdFNlbGVjdGVk
KTsKICAgICBlbGVtZW50LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKICAgICByZXR1cm4gZWxl
bWVudC5yZWxlYXNlKCk7CkBAIC0xMTcsMjIgKzExMyw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
SFRNTE9wdGlvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIFN0cmluZyBIVE1M
T3B0aW9uRWxlbWVudDo6dGV4dCgpIGNvbnN0CiB7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKTsKLSAgICBTdHJpbmcgdGV4dDsKLQotICAgIC8vIFdpbklFIGRvZXMg
bm90IHVzZSB0aGUgbGFiZWwgYXR0cmlidXRlLCBzbyBhcyBhIHF1aXJrLCB3ZSBpZ25vcmUgaXQu
Ci0gICAgaWYgKCFkb2N1bWVudC0+aW5RdWlya3NNb2RlKCkpCi0gICAgICAgIHRleHQgPSBmYXN0
R2V0QXR0cmlidXRlKGxhYmVsQXR0cik7Ci0KLSAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyB0
cmVhdHMgYW4gZWxlbWVudCB3aXRoIHRoZSBsYWJlbCBhdHRyaWJ1dGUgc2V0IHRvCi0gICAgLy8g
dGhlIGVtcHR5IHN0cmluZyB0aGUgc2FtZSBhcyBhbiBlbGVtZW50IHdpdGggbm8gbGFiZWwgYXR0
cmlidXRlIGF0IGFsbC4KLSAgICAvLyBJcyB0aGF0IGNvcnJlY3Q/IElmIGl0IGlzLCB0aGVuIHNo
b3VsZCB0aGUgbGFiZWwgZnVuY3Rpb24gd29yayB0aGUgc2FtZSB3YXk/Ci0gICAgaWYgKHRleHQu
aXNFbXB0eSgpKQotICAgICAgICB0ZXh0ID0gY29sbGVjdE9wdGlvbklubmVyVGV4dCgpOwotCi0g
ICAgLy8gRklYTUU6IElzIGRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcgaGVscGZ1bCBo
ZXJlPwotICAgIC8vIElmIGl0J3MgY29ycmVjdCBoZXJlLCB0aGVuIGlzbid0IGl0IG5lZWRlZCBp
biB0aGUgdmFsdWUgYW5kIGxhYmVsIGZ1bmN0aW9ucyB0b28/Ci0gICAgcmV0dXJuIGRvY3VtZW50
LT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHRleHQpLnN0cmlwV2hpdGVTcGFjZShp
c0hUTUxTcGFjZSkuc2ltcGxpZnlXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlKTsKKyAgICByZXR1cm4g
T3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbkxhYmVsT3JUZXh0KG1fZGF0YSwgdGhpcyk7CiB9
CiAKIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTE1Nyw0NyArMTM4LDI4IEBAIHZvaWQgSFRNTE9wdGlvbkVs
ZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQogCiBpbnQgSFRNTE9wdGlvbkVsZW1lbnQ6Omlu
ZGV4KCkgY29uc3QKIHsKLSAgICAvLyBJdCB3b3VsZCBiZSBmYXN0ZXIgdG8gY2FjaGUgdGhlIGlu
ZGV4LCBidXQgaGFyZGVyIHRvIGdldCBpdCByaWdodCBpbiBhbGwgY2FzZXMuCi0KLSAgICBIVE1M
U2VsZWN0RWxlbWVudCogc2VsZWN0RWxlbWVudCA9IG93bmVyU2VsZWN0RWxlbWVudCgpOwotICAg
IGlmICghc2VsZWN0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpbnQgb3B0aW9u
SW5kZXggPSAwOwotCi0gICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gc2Vs
ZWN0RWxlbWVudC0+bGlzdEl0ZW1zKCk7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IGl0ZW1zLnNpemUo
KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlm
ICghaXRlbXNbaV0tPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBpZiAoaXRlbXNbaV0gPT0gdGhpcykKLSAgICAgICAgICAgIHJldHVybiBvcHRp
b25JbmRleDsKLSAgICAgICAgKytvcHRpb25JbmRleDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gT3B0aW9uRWxlbWVudDo6b3B0aW9uSW5kZXgob3duZXJTZWxlY3RFbGVtZW50
KCksIHRoaXMpOwogfQogCiB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7Ci0gICAgaWYgKGF0dHItPm5hbWUoKSA9PSBzZWxlY3Rl
ZEF0dHIpIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBtYXRjaCB3aGF0IHRoZSBI
VE1MIHNwZWNpZmljYXRpb24gc2F5cy4KLSAgICAgICAgLy8gVGhlIHNwZWNpZmljYXRpb24gaW1w
bGllcyB0aGF0IHJlbW92aW5nIHRoZSBzZWxlY3RlZCBhdHRyaWJ1dGUgb3IKLSAgICAgICAgLy8g
Y2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgc2VsZWN0ZWQgYXR0cmlidXRlIHRoYXQgaXMgYWxyZWFk
eSBwcmVzZW50Ci0gICAgICAgIC8vIGhhcyBubyBlZmZlY3Qgb24gd2hldGhlciB0aGUgZWxlbWVu
dCBpcyBzZWxlY3RlZC4gRnVydGhlciwgaXQgc2VlbXMKLSAgICAgICAgLy8gdGhhdCB3ZSBuZWVk
IHRvIGRvIG1vcmUgdGhhbiBqdXN0IHNldCBtX2lzU2VsZWN0ZWQgdG8gc2VsZWN0IGluIHRoYXQK
LSAgICAgICAgLy8gY2FzZTsgd2UnZCBuZWVkIHRvIGRvIHRoZSBvdGhlciB3b3JrIGZyb20gdGhl
IHNldFNlbGVjdGVkIGZ1bmN0aW9uLgotICAgICAgICBtX2lzU2VsZWN0ZWQgPSAhYXR0ci0+aXNO
dWxsKCk7Ci0gICAgfSBlbHNlCisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBzZWxlY3RlZEF0dHIp
CisgICAgICAgIG1fZGF0YS5zZXRTZWxlY3RlZCghYXR0ci0+aXNOdWxsKCkpOworICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSB2YWx1ZUF0dHIpCisgICAgICAgIG1fZGF0YS5zZXRWYWx1ZShh
dHRyLT52YWx1ZSgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGFiZWxBdHRyKQor
ICAgICAgICBtX2RhdGEuc2V0TGFiZWwoYXR0ci0+dmFsdWUoKSk7CisgICAgZWxzZQogICAgICAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0K
IAogU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CiB7Ci0gICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUodmFsdWVBdHRyKTsKLSAgICBp
ZiAoIXZhbHVlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgcmV0dXJuIGNv
bGxlY3RPcHRpb25Jbm5lclRleHQoKS5zdHJpcFdoaXRlU3BhY2UoaXNIVE1MU3BhY2UpLnNpbXBs
aWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgaWYgKCFtX2RhdGEudmFsdWUoKS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIG1fZGF0YS52YWx1ZSgpOworCisgICAgcmV0dXJuIGNvbGxl
Y3RPcHRpb25Jbm5lclRleHQodGhpcykuc3RyaXBXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlKS5zaW1w
bGlmeVdoaXRlU3BhY2UoaXNIVE1MU3BhY2UpOworCiB9CiAKIHZvaWQgSFRNTE9wdGlvbkVsZW1l
bnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0yMDksMTUgKzE3MSwxNSBAQCBi
b29sIEhUTUxPcHRpb25FbGVtZW50OjpzZWxlY3RlZCgpCiB7CiAgICAgaWYgKEhUTUxTZWxlY3RF
bGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKSkKICAgICAgICAgc2VsZWN0LT51
cGRhdGVMaXN0SXRlbVNlbGVjdGVkU3RhdGVzKCk7Ci0gICAgcmV0dXJuIG1faXNTZWxlY3RlZDsK
KyAgICByZXR1cm4gbV9kYXRhLnNlbGVjdGVkKCk7CiB9CiAKIHZvaWQgSFRNTE9wdGlvbkVsZW1l
bnQ6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCiB7Ci0gICAgaWYgKG1faXNTZWxlY3RlZCA9
PSBzZWxlY3RlZCkKKyAgICBpZiAobV9kYXRhLnNlbGVjdGVkKCkgPT0gc2VsZWN0ZWQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGVkU3RhdGUoc2VsZWN0ZWQpOworICAgIE9wdGlv
bkVsZW1lbnQ6OnNldFNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBzZWxlY3RlZCk7CiAKICAg
ICBpZiAoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVudCgpKQog
ICAgICAgICBzZWxlY3QtPnNldFNlbGVjdGVkSW5kZXgoc2VsZWN0ZWQgPyBpbmRleCgpIDogLTEs
IGZhbHNlKTsKQEAgLTIyNSwxMSArMTg3LDcgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0
U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKIAogdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0U2Vs
ZWN0ZWRTdGF0ZShib29sIHNlbGVjdGVkKQogewotICAgIGlmIChtX2lzU2VsZWN0ZWQgPT0gc2Vs
ZWN0ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNTZWxlY3RlZCA9IHNlbGVjdGVkOwot
ICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBPcHRpb25FbGVtZW50OjpzZXRTZWxlY3Rl
ZFN0YXRlKG1fZGF0YSwgdGhpcywgc2VsZWN0ZWQpOwogfQogCiB2b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNo
YW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCkBAIC0yNTEsMTIg
KzIwOSwyNiBAQCBIVE1MU2VsZWN0RWxlbWVudCogSFRNTE9wdGlvbkVsZW1lbnQ6Om93bmVyU2Vs
ZWN0RWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHRvSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0
KTsKIH0KIAorYm9vbCBIVE1MT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShzZWxlY3RlZEF0dHIpOworfQorCit2b2lk
IEhUTUxPcHRpb25FbGVtZW50OjpzZXREZWZhdWx0U2VsZWN0ZWQoYm9vbCBiKQoreworICAgIHNl
dEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsIGIgPyAiIiA6IDApOworfQorCiBTdHJpbmcgSFRNTE9w
dGlvbkVsZW1lbnQ6OmxhYmVsKCkgY29uc3QKIHsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxh
YmVsID0gZmFzdEdldEF0dHJpYnV0ZShsYWJlbEF0dHIpOworICAgIFN0cmluZyBsYWJlbCA9IG1f
ZGF0YS5sYWJlbCgpOwogICAgIGlmICghbGFiZWwuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBs
YWJlbDsgCi0gICAgcmV0dXJuIGNvbGxlY3RPcHRpb25Jbm5lclRleHQoKS5zdHJpcFdoaXRlU3Bh
Y2UoaXNIVE1MU3BhY2UpLnNpbXBsaWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisgICAgICAg
IHJldHVybiBsYWJlbDsKKyAKKyAgICBsYWJlbCA9IGNvbGxlY3RPcHRpb25Jbm5lclRleHQodGhp
cykuc3RyaXBXaGl0ZVNwYWNlKGlzSFRNTFNwYWNlKTsKKyAgICBsYWJlbCA9IGxhYmVsLnNpbXBs
aWZ5V2hpdGVTcGFjZShpc0hUTUxTcGFjZSk7CisKKyAgICByZXR1cm4gbGFiZWw7CiB9CiAKIHZv
aWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCkBAIC0y
NzksMTAgKzI1MSw3IEBAIFJlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVy
ZXJSZW5kZXJTdHlsZSgpIGNvbnN0CiAKIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6dGV4dElu
ZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpIGNvbnN0CiB7Ci0gICAgQ29udGFpbmVyTm9kZSog
cGFyZW50ID0gcGFyZW50Tm9kZSgpOwotICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5oYXNUYWdO
YW1lKG9wdGdyb3VwVGFnKSkKLSAgICAgICAgcmV0dXJuICIgICAgIiArIHRleHQoKTsKLSAgICBy
ZXR1cm4gdGV4dCgpOworICAgIHJldHVybiBPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uVGV4
dFJlc3BlY3RpbmdHcm91cExhYmVsKG1fZGF0YSwgdGhpcyk7CiB9CiAKIGJvb2wgSFRNTE9wdGlv
bkVsZW1lbnQ6OmRpc2FibGVkKCkgY29uc3QKQEAgLTI5NCw5ICsyNjMsOCBAQCB2b2lkIEhUTUxP
cHRpb25FbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKIHsKICAgICBpZiAoSFRN
TFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVudCgpKSB7CiAgICAgICAg
IHNlbGVjdC0+c2V0UmVjYWxjTGlzdEl0ZW1zKCk7Ci0gICAgICAgIC8vIERvIG5vdCBjYWxsIHNl
bGVjdGVkKCkgc2luY2UgY2FsbGluZyB1cGRhdGVMaXN0SXRlbVNlbGVjdGVkU3RhdGVzKCkKLSAg
ICAgICAgLy8gYXQgdGhpcyB0aW1lIHdvbid0IGRvIHRoZSByaWdodCB0aGluZy4gKFdoeSwgZXhh
Y3RseT8pCi0gICAgICAgIGlmIChtX2lzU2VsZWN0ZWQpCisgICAgICAgIC8vIEF2b2lkIG91ciBz
ZWxlY3RlZCgpIGdldHRlciBzaW5jZSBpdCB3aWxsIHJlY2FsY3VsYXRlIGxpc3QgaXRlbXMgaW5j
b3JyZWN0bHkgZm9yIHVzLgorICAgICAgICBpZiAobV9kYXRhLnNlbGVjdGVkKCkpCiAgICAgICAg
ICAgICBzZWxlY3QtPnNldFNlbGVjdGVkSW5kZXgoaW5kZXgoKSwgZmFsc2UpOwogICAgICAgICBz
ZWxlY3QtPnNjcm9sbFRvU2VsZWN0aW9uKCk7CiAgICAgfQpAQCAtMzA0LDM1ICsyNzIsNCBAQCB2
b2lkIEhUTUxPcHRpb25FbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGRlZXApOwogfQogCi1TdHJp
bmcgSFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQoKSBjb25zdAotewot
ICAgIFN0cmluZ0J1aWxkZXIgdGV4dDsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdENoaWxk
KCk7IG5vZGU7ICkgewotICAgICAgICBpZiAobm9kZS0+aXNUZXh0Tm9kZSgpKQotICAgICAgICAg
ICAgdGV4dC5hcHBlbmQobm9kZS0+bm9kZVZhbHVlKCkpOwotICAgICAgICAvLyBUZXh0IG5vZGVz
IGluc2lkZSBzY3JpcHQgZWxlbWVudHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBvcHRpb24gdGV4dC4K
LSAgICAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b1NjcmlwdEVsZW1lbnQodG9F
bGVtZW50KG5vZGUpKSkKLSAgICAgICAgICAgIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHRTaWJs
aW5nKHRoaXMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBub2RlID0gbm9kZS0+dHJhdmVy
c2VOZXh0Tm9kZSh0aGlzKTsKLSAgICB9Ci0gICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKLX0K
LQotI2lmbmRlZiBOREVCVUcKLQotSFRNTE9wdGlvbkVsZW1lbnQqIHRvSFRNTE9wdGlvbkVsZW1l
bnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShv
cHRpb25UYWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihu
b2RlKTsKLX0KLQotY29uc3QgSFRNTE9wdGlvbkVsZW1lbnQqIHRvSFRNTE9wdGlvbkVsZW1lbnQo
Y29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFt
ZShvcHRpb25UYWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTE9wdGlvbkVs
ZW1lbnQqPihub2RlKTsKLX0KLQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggMTlhOGFiZDc2NGY3ZTI0M2U0YTM1NGI0
ZDkxOTBhM2ExMDdkODJmMi4uYzJmNTllNGI3ZGI4NDE2ODE2ODgzZDg4Y2IxYTM3ODUzOTQzY2U1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMSwxNyArMjEs
MjAgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLwotCiAjaWZuZGVm
IEhUTUxPcHRpb25FbGVtZW50X2gKICNkZWZpbmUgSFRNTE9wdGlvbkVsZW1lbnRfaAogCiAjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAot
Y2xhc3MgSFRNTE9wdGlvbkVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7
CitjbGFzcyBIVE1MT3B0aW9uRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
LCBwdWJsaWMgT3B0aW9uRWxlbWVudCB7CisgICAgZnJpZW5kIGNsYXNzIEhUTUxTZWxlY3RFbGVt
ZW50OworICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJNZW51TGlzdDsKKwogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCop
OwpAQCAtNDMsMTQgKzQ2LDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBpbmRleCgpIGNvbnN0Owog
Ci0gICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBj
b25zdDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgYm9vbCBzZWxl
Y3RlZCgpOworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RlZCgpOwogICAgIHZvaWQgc2V0U2VsZWN0
ZWQoYm9vbCk7CiAKICAgICBIVE1MU2VsZWN0RWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50KCkg
Y29uc3Q7CiAKKyAgICBib29sIGRlZmF1bHRTZWxlY3RlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0
RGVmYXVsdFNlbGVjdGVkKGJvb2wpOworCiAgICAgU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmKTsKIApAQCAtNTgsMTAgKzY0LDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBib29sIGRpc2FibGVkKCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgdGV4
dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRTZWxl
Y3RlZFN0YXRlKGJvb2wpOwotCiBwcml2YXRlOgogICAgIEhUTUxPcHRpb25FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKIApAQCAt
NzYsNiArNzgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFN0YXRl
KGJvb2wpOworCisgICAgdmlydHVhbCBTdHJpbmcgdGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBM
YWJlbCgpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sKTsKIApAQCAtODMsMzQgKzg5
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclJl
bmRlclN0eWxlKCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgY29sbGVjdE9wdGlvbklubmVyVGV4dCgp
IGNvbnN0OwotCi0gICAgU3RyaW5nIG1fdmFsdWU7Ci0gICAgU3RyaW5nIG1fbGFiZWw7Ci0gICAg
Ym9vbCBtX2lzU2VsZWN0ZWQ7CisgICAgT3B0aW9uRWxlbWVudERhdGEgbV9kYXRhOwogICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKIH07CiAKLUhUTUxPcHRpb25FbGVtZW50KiB0b0hU
TUxPcHRpb25FbGVtZW50KE5vZGUqKTsKLWNvbnN0IEhUTUxPcHRpb25FbGVtZW50KiB0b0hUTUxP
cHRpb25FbGVtZW50KGNvbnN0IE5vZGUqKTsKLXZvaWQgdG9IVE1MT3B0aW9uRWxlbWVudChjb25z
dCBIVE1MT3B0aW9uRWxlbWVudCopOyAvLyBUaGlzIG92ZXJsb2FkIHdpbGwgY2F0Y2ggYW55b25l
IGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi0KLSNpZmRlZiBOREVCVUcKLQotLy8gVGhlIGRl
YnVnIHZlcnNpb25zIG9mIHRoZXNlLCB3aXRoIGFzc2VydGlvbnMsIGFyZSBub3QgaW5saW5lZC4K
LQotaW5saW5lIEhUTUxPcHRpb25FbGVtZW50KiB0b0hUTUxPcHRpb25FbGVtZW50KE5vZGUqIG5v
ZGUpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obm9kZSk7
Ci19Ci0KLWlubGluZSBjb25zdCBIVE1MT3B0aW9uRWxlbWVudCogdG9IVE1MT3B0aW9uRWxlbWVu
dChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBIVE1M
T3B0aW9uRWxlbWVudCo+KG5vZGUpOwotfQotCi0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDI1
ODNhNDU2MDBmNjllMjU5ZDU0ZjZlMjgzZmY5Y2VmZDQyMjU5MTMuLjJhYzZiYWQzMTNmMTRkMDM5
OGZlNjViNGFhMmE0NzY5OWMwZjg0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCkBAIC03NSwxMiArNzUsNiBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4
U2VsZWN0SXRlbXMgPSAxMDAwMDsKIAogc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhl
YWRUaW1lb3V0ID0gMTAwMDsKIAotLy8gRklYTUU6IENoYW5nZSBhbGwgdGhlIGNhbGwgc2l0ZXMg
dG8gdXNlIGhhc1RhZ05hbWUgYW5kIHRvSFRNTE9wdGlvbkVsZW1lbnQgaW5zdGVhZC4KLXN0YXRp
YyBpbmxpbmUgSFRNTE9wdGlvbkVsZW1lbnQqIHRvT3B0aW9uRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50KQotewotICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgPyB0b0hU
TUxPcHRpb25FbGVtZW50KGVsZW1lbnQpIDogMDsKLX0KLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhU
TUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1fbGFzdENoYXJU
aW1lKDApCkBAIC00NTEsNyArNDQ1LDcgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpuZXh0VmFs
aWRJbmRleChpbnQgbGlzdEluZGV4LCBTa2lwRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW4KICAgICBp
bnQgc2l6ZSA9IGxpc3RJdGVtcy5zaXplKCk7CiAgICAgZm9yIChsaXN0SW5kZXggKz0gZGlyZWN0
aW9uOyBsaXN0SW5kZXggPj0gMCAmJiBsaXN0SW5kZXggPCBzaXplOyBsaXN0SW5kZXggKz0gZGly
ZWN0aW9uKSB7CiAgICAgICAgIC0tc2tpcDsKLSAgICAgICAgaWYgKCFsaXN0SXRlbXNbbGlzdElu
ZGV4XS0+ZGlzYWJsZWQoKSAmJiBsaXN0SXRlbXNbbGlzdEluZGV4XS0+aGFzVGFnTmFtZShvcHRp
b25UYWcpKSB7CisgICAgICAgIGlmICghbGlzdEl0ZW1zW2xpc3RJbmRleF0tPmRpc2FibGVkKCkg
JiYgaXNPcHRpb25FbGVtZW50KGxpc3RJdGVtc1tsaXN0SW5kZXhdKSkgewogICAgICAgICAgICAg
bGFzdEdvb2RJbmRleCA9IGxpc3RJbmRleDsKICAgICAgICAgICAgIGlmIChza2lwIDw9IDApCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01MzIsNyArNTI2LDcgQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6c2F2ZUxhc3RTZWxlY3Rpb24oKQogICAgIG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9u
LmNsZWFyKCk7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0
ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVt
ZW50KGl0ZW1zW2ldKTsKKyAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRv
T3B0aW9uRWxlbWVudChpdGVtc1tpXSk7CiAgICAgICAgIG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9u
LmFwcGVuZChvcHRpb25FbGVtZW50ICYmIG9wdGlvbkVsZW1lbnQtPnNlbGVjdGVkKCkpOwogICAg
IH0KIH0KQEAgLTU0Nyw3ICs1NDEsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRBY3Rp
dmVTZWxlY3Rpb25BbmNob3JJbmRleChpbnQgaW5kZXgpCiAKICAgICBjb25zdCBWZWN0b3I8SFRN
TEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9w
dGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoaXRlbXNbaV0pOworICAgICAgICBPcHRpb25F
bGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKICAgICAg
ICAgbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbi5hcHBlbmQob3B0aW9uRWxlbWVudCAm
JiBvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKTsKICAgICB9CiB9CkBAIC01NjcsNyArNTYxLDcg
QEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihib29sIGRl
c2VsZWN0T3RoZXJPcHRpb25zKQogCiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0
ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0g
dG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKKyAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9u
RWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSk7CiAgICAgICAgIGlmICghb3B0aW9u
RWxlbWVudCB8fCBpdGVtc1tpXS0+ZGlzYWJsZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CkBAIC01OTksNyArNTkzLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveE9uQ2hh
bmdlKCkKICAgICAvLyBVcGRhdGUgbV9sYXN0T25DaGFuZ2VTZWxlY3Rpb24gYW5kIGZpcmUgZGlz
cGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50LgogICAgIGJvb2wgZmlyZU9uQ2hhbmdlID0gZmFs
c2U7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50
KGl0ZW1zW2ldKTsKKyAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0
aW9uRWxlbWVudChpdGVtc1tpXSk7CiAgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSBvcHRpb25FbGVt
ZW50ICYmIG9wdGlvbkVsZW1lbnQtPnNlbGVjdGVkKCk7CiAgICAgICAgIGlmIChzZWxlY3RlZCAh
PSBtX2xhc3RPbkNoYW5nZVNlbGVjdGlvbltpXSkKICAgICAgICAgICAgIGZpcmVPbkNoYW5nZSA9
IHRydWU7CkBAIC02NzMsNyArNjY3LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVjYWxj
TGlzdEl0ZW1zKGJvb2wgdXBkYXRlU2VsZWN0ZWRTdGF0ZXMpIGNvbnN0CiAKICAgICBtX3Nob3Vs
ZFJlY2FsY0xpc3RJdGVtcyA9IGZhbHNlOwogCi0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIGZvdW5k
U2VsZWN0ZWQgPSAwOworICAgIE9wdGlvbkVsZW1lbnQqIGZvdW5kU2VsZWN0ZWQgPSAwOwogICAg
IGZvciAoTm9kZSogY3VycmVudE5vZGUgPSB0aGlzLT5maXJzdENoaWxkKCk7IGN1cnJlbnROb2Rl
OykgewogICAgICAgICBpZiAoIWN1cnJlbnROb2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKICAgICAg
ICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcodGhp
cyk7CkBAIC02OTMsNyArNjg3LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVjYWxjTGlz
dEl0ZW1zKGJvb2wgdXBkYXRlU2VsZWN0ZWRTdGF0ZXMpIGNvbnN0CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQg
PSB0b09wdGlvbkVsZW1lbnQoY3VycmVudCkpIHsKKyAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQq
IG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoY3VycmVudCkpIHsKICAgICAgICAgICAg
IG1fbGlzdEl0ZW1zLmFwcGVuZChjdXJyZW50KTsKIAogICAgICAgICAgICAgaWYgKHVwZGF0ZVNl
bGVjdGVkU3RhdGVzICYmICFtX211bHRpcGxlKSB7CkBAIC03MjcsNyArNzIxLDcgQEAgaW50IEhU
TUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZEluZGV4KCkgY29uc3QKICAgICAvLyBSZXR1cm4gdGhl
IG51bWJlciBvZiB0aGUgZmlyc3Qgb3B0aW9uIHNlbGVjdGVkLgogICAgIGNvbnN0IFZlY3RvcjxI
VE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50
KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKSkgeworICAgICAgICBp
ZiAoT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tp
XSkpIHsKICAgICAgICAgICAgIGlmIChvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBpbmRleDsKICAgICAgICAgICAgICsraW5kZXg7CkBAIC03NDgsNyAr
NzQyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChpbnQgb3B0
aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QsIGJvb2wgZmkKICAgICBpbnQgbGlzdEluZGV4ID0gb3B0
aW9uVG9MaXN0SW5kZXgob3B0aW9uSW5kZXgpOwogCiAgICAgRWxlbWVudCogZXhjbHVkZUVsZW1l
bnQgPSAwOwotICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IChsaXN0
SW5kZXggPj0gMCA/IHRvT3B0aW9uRWxlbWVudChpdGVtc1tsaXN0SW5kZXhdKSA6IDApKSB7Cisg
ICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSAobGlzdEluZGV4ID49IDAgPyB0
b09wdGlvbkVsZW1lbnQoaXRlbXNbbGlzdEluZGV4XSkgOiAwKSkgewogICAgICAgICBleGNsdWRl
RWxlbWVudCA9IGl0ZW1zW2xpc3RJbmRleF07CiAgICAgICAgIGlmIChtX2FjdGl2ZVNlbGVjdGlv
bkFuY2hvckluZGV4IDwgMCB8fCBkZXNlbGVjdCkKICAgICAgICAgICAgIHNldEFjdGl2ZVNlbGVj
dGlvbkFuY2hvckluZGV4KGxpc3RJbmRleCk7CkBAIC03OTQsNyArNzg4LDcgQEAgaW50IEhUTUxT
ZWxlY3RFbGVtZW50OjpvcHRpb25Ub0xpc3RJbmRleChpbnQgb3B0aW9uSW5kZXgpIGNvbnN0CiAK
ICAgICBpbnQgb3B0aW9uSW5kZXgyID0gLTE7CiAgICAgZm9yIChpbnQgbGlzdEluZGV4ID0gMDsg
bGlzdEluZGV4IDwgbGlzdFNpemU7ICsrbGlzdEluZGV4KSB7Ci0gICAgICAgIGlmIChpdGVtc1ts
aXN0SW5kZXhdLT5oYXNUYWdOYW1lKG9wdGlvblRhZykpIHsKKyAgICAgICAgaWYgKGlzT3B0aW9u
RWxlbWVudChpdGVtc1tsaXN0SW5kZXhdKSkgewogICAgICAgICAgICAgKytvcHRpb25JbmRleDI7
CiAgICAgICAgICAgICBpZiAob3B0aW9uSW5kZXgyID09IG9wdGlvbkluZGV4KQogICAgICAgICAg
ICAgICAgIHJldHVybiBsaXN0SW5kZXg7CkBAIC04MDcsMTMgKzgwMSwxMyBAQCBpbnQgSFRNTFNl
bGVjdEVsZW1lbnQ6Om9wdGlvblRvTGlzdEluZGV4KGludCBvcHRpb25JbmRleCkgY29uc3QKIGlu
dCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdFRvT3B0aW9uSW5kZXgoaW50IGxpc3RJbmRleCkgY29u
c3QKIHsKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMo
KTsKLSAgICBpZiAobGlzdEluZGV4IDwgMCB8fCBsaXN0SW5kZXggPj0gc3RhdGljX2Nhc3Q8aW50
PihpdGVtcy5zaXplKCkpIHx8ICFpdGVtc1tsaXN0SW5kZXhdLT5oYXNUYWdOYW1lKG9wdGlvblRh
ZykpCisgICAgaWYgKGxpc3RJbmRleCA8IDAgfHwgbGlzdEluZGV4ID49IHN0YXRpY19jYXN0PGlu
dD4oaXRlbXMuc2l6ZSgpKSB8fCAhaXNPcHRpb25FbGVtZW50KGl0ZW1zW2xpc3RJbmRleF0pKQog
ICAgICAgICByZXR1cm4gLTE7CiAKICAgICAvLyBBY3R1YWwgaW5kZXggb2Ygb3B0aW9uIG5vdCBj
b3VudGluZyBPUFRHUk9VUCBlbnRyaWVzIHRoYXQgbWF5IGJlIGluIGxpc3QuCiAgICAgaW50IG9w
dGlvbkluZGV4ID0gMDsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3RJbmRleDsgKytpKSB7
Ci0gICAgICAgIGlmIChpdGVtc1tpXS0+aGFzVGFnTmFtZShvcHRpb25UYWcpKQorICAgICAgICBp
ZiAoaXNPcHRpb25FbGVtZW50KGl0ZW1zW2ldKSkKICAgICAgICAgICAgICsrb3B0aW9uSW5kZXg7
CiAgICAgfQogCkBAIC04NDYsNyArODQwLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVz
ZWxlY3RJdGVtc1dpdGhvdXRWYWxpZGF0aW9uKEVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQogICAg
ICAgICBpZiAoaXRlbXNbaV0gPT0gZXhjbHVkZUVsZW1lbnQpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09w
dGlvbkVsZW1lbnQoaXRlbXNbaV0pKQorICAgICAgICBpZiAoT3B0aW9uRWxlbWVudCogb3B0aW9u
RWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSkpCiAgICAgICAgICAgICBvcHRpb25F
bGVtZW50LT5zZXRTZWxlY3RlZFN0YXRlKGZhbHNlKTsKICAgICB9CiB9CkBAIC04NTgsNyArODUy
LDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5n
JiB2YWx1ZSkgY29uc3QKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkobGVuZ3RoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0
b09wdGlvbkVsZW1lbnQoaXRlbXNbaV0pOworICAgICAgICBPcHRpb25FbGVtZW50KiBvcHRpb25F
bGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKICAgICAgICAgYm9vbCBzZWxlY3Rl
ZCA9IG9wdGlvbkVsZW1lbnQgJiYgb3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoc2VsZWN0ZWQgPyAnWCcgOiAnLicpOwogICAgIH0KQEAgLTg3NCw3ICs4
NjgsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBTdHJpbmcmIHN0YXRlKQogICAgIHNpemVfdCBsZW5ndGggPSBpdGVtcy5zaXplKCk7CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYg
KEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1z
W2ldKSkKKyAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlv
bkVsZW1lbnQoaXRlbXNbaV0pKQogICAgICAgICAgICAgb3B0aW9uRWxlbWVudC0+c2V0U2VsZWN0
ZWRTdGF0ZShzdGF0ZVtpXSA9PSAnWCcpOwogICAgIH0KIApAQCAtOTAxLDcgKzg5NSw3IEBAIGJv
b2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgbGlzdCwg
Ym9vbCkKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMo
KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgewot
ICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVu
dChpdGVtc1tpXSk7CisgICAgICAgIE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09w
dGlvbkVsZW1lbnQoaXRlbXNbaV0pOwogICAgICAgICBpZiAob3B0aW9uRWxlbWVudCAmJiBvcHRp
b25FbGVtZW50LT5zZWxlY3RlZCgpICYmICFvcHRpb25FbGVtZW50LT5kaXNhYmxlZCgpKSB7CiAg
ICAgICAgICAgICBsaXN0LmFwcGVuZERhdGEobmFtZSwgb3B0aW9uRWxlbWVudC0+dmFsdWUoKSk7
CiAgICAgICAgICAgICBzdWNjZXNzZnVsID0gdHJ1ZTsKQEAgLTkxNiwxMiArOTEwLDEyIEBAIGJv
b2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgbGlzdCwg
Ym9vbCkKIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogewotICAgIEhUTUxPcHRp
b25FbGVtZW50KiBmaXJzdE9wdGlvbiA9IDA7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGVj
dGVkT3B0aW9uID0gMDsKKyAgICBPcHRpb25FbGVtZW50KiBmaXJzdE9wdGlvbiA9IDA7CisgICAg
T3B0aW9uRWxlbWVudCogc2VsZWN0ZWRPcHRpb24gPSAwOwogCiAgICAgY29uc3QgVmVjdG9yPEhU
TUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBv
cHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKKyAgICAgICAgT3B0aW9u
RWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSk7CiAgICAg
ICAgIGlmICghb3B0aW9uRWxlbWVudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xMTIy
LDcgKzExMTYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZFN0YXRl
KGludCBsaXN0SW5kZXgsIGJvb2wgbXVsdGksIGJvb2wgc2hpZgogICAgIGJvb2wgbXVsdGlTZWxl
Y3QgPSBtX211bHRpcGxlICYmIG11bHRpICYmICFzaGlmdDsKIAogICAgIEVsZW1lbnQqIGNsaWNr
ZWRFbGVtZW50ID0gbGlzdEl0ZW1zKClbbGlzdEluZGV4XTsKLSAgICBIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gdG9PcHRpb25FbGVtZW50KGNsaWNrZWRFbGVtZW50KTsKKyAgICBPcHRpb25F
bGVtZW50KiBvcHRpb24gPSB0b09wdGlvbkVsZW1lbnQoY2xpY2tlZEVsZW1lbnQpOwogICAgIGlm
IChvcHRpb24pIHsKICAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGFjdGl2ZSBz
ZWxlY3Rpb24gKGxpa2UgZHVyaW5nIGRyYWcKICAgICAgICAgLy8gc2VsZWN0aW9uKSwgc2hvdWxk
IHNlbGVjdCBvciBkZXNlbGVjdC4KQEAgLTEzMTgsNyArMTMxMiw3IEBAIGludCBIVE1MU2VsZWN0
RWxlbWVudDo6bGFzdFNlbGVjdGVkTGlzdEluZGV4KCkgY29uc3QKIHsKICAgICBjb25zdCBWZWN0
b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gaXRlbXMuc2l6ZSgpOyBpOykgewotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9w
dGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoaXRlbXNbLS1pXSkpIHsKKyAgICAgICAgaWYg
KE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoaXRlbXNbLS1p
XSkpIHsKICAgICAgICAgICAgIGlmIChvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CkBAIC0xMzg0LDcgKzEzNzgsNyBAQCB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIC8vIHRvIHVzZSBzdGFydFdpdGggb25jZSB0aGF0IGlzIGZpeGVkLgogICAgIFN0cmluZyBw
cmVmaXhXaXRoQ2FzZUZvbGRlZChwcmVmaXguZm9sZENhc2UoKSk7CiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBpdGVtQ291bnQ7ICsraSwgaW5kZXggPSAoaW5kZXggKyAxKSAlIGl0ZW1Db3VudCkg
ewotICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxl
bWVudChpdGVtc1tpbmRleF0pOworICAgICAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50
ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2luZGV4XSk7CiAgICAgICAgIGlmICghb3B0aW9uRWxl
bWVudCB8fCBpdGVtc1tpbmRleF0tPmRpc2FibGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IApAQCAtMTQyMCw3ICsxNDE0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5
U2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgpCiAgICAgLy8gSWYgdGhpcyBpbmRleCBpcyBhbHJl
YWR5IHNlbGVjdGVkLCB1bnNlbGVjdC4gb3RoZXJ3aXNlIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgaW5k
ZXguCiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7
CiAgICAgaW50IGxpc3RJbmRleCA9IG9wdGlvblRvTGlzdEluZGV4KGluZGV4KTsKLSAgICBpZiAo
SFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSAobGlzdEluZGV4ID49IDAgPyB0b09w
dGlvbkVsZW1lbnQoaXRlbXNbbGlzdEluZGV4XSkgOiAwKSkgeworICAgIGlmIChPcHRpb25FbGVt
ZW50KiBvcHRpb25FbGVtZW50ID0gKGxpc3RJbmRleCA+PSAwID8gdG9PcHRpb25FbGVtZW50KGl0
ZW1zW2xpc3RJbmRleF0pIDogMCkpIHsKICAgICAgICAgaWYgKG9wdGlvbkVsZW1lbnQtPnNlbGVj
dGVkKCkpCiAgICAgICAgICAgICBvcHRpb25FbGVtZW50LT5zZXRTZWxlY3RlZFN0YXRlKGZhbHNl
KTsKICAgICAgICAgZWxzZQpAQCAtMTQ0MSw3ICsxNDM1LDcgQEAgdW5zaWduZWQgSFRNTFNlbGVj
dEVsZW1lbnQ6Omxlbmd0aCgpIGNvbnN0CiAKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQq
PiYgaXRlbXMgPSBsaXN0SXRlbXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRl
bXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGl0ZW1zW2ldLT5oYXNUYWdOYW1lKG9wdGlv
blRhZykpCisgICAgICAgIGlmIChpc09wdGlvbkVsZW1lbnQoaXRlbXNbaV0pKQogICAgICAgICAg
ICAgKytvcHRpb25zOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCBmYTA2YzFmZDkwNTY4YzQ3ODVm
ZmU1YmQzMDk5ZGIwNTFiN2UzNzk1Li5hNTk4ZmM4N2I3MDI3NzNmZDc5ZTVhMzM1ODVmZTlmOTMy
OWUxMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIEdyYXBoaWNzQ29udGV4dCog
SW1hZ2VCdWZmZXI6OmNvbnRleHQoKSBjb25zdAogCiBQYXNzUmVmUHRyPEltYWdlPiBJbWFnZUJ1
ZmZlcjo6Y29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yKSBjb25zdAogewot
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZShBZG9wdENGLCBjb3B5TmF0aXZlSW1hZ2Uo
Y29weUJlaGF2aW9yKSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gY29weU5h
dGl2ZUltYWdlKGNvcHlCZWhhdmlvcik7CiAKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBk
ZGY3OWMwZmI1ODU2NTAwZTQyNWU3MmZkY2E1MWNiNGE5ZGFjMDQxLi41NjYwM2ViMTZjNTJkMjY0
ODVmZDliZGRjMWI3Njg0ZWVhYzU1ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwCkBAIC00MywxMSArNDMsMTEgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
LSNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJPcHRp
b25FbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC0xMTEsMTEgKzExMSwxMSBAQCB2b2lkIFJlbmRl
ckxpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgCiAgICAgICAgIGZsb2F0IHdp
ZHRoID0gMDsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAg
ICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2ldOworICAgICAgICAgICAg
RWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tpXTsKICAgICAgICAgICAgIFN0cmluZyB0ZXh0
OwogICAgICAgICAgICAgRm9udCBpdGVtRm9udCA9IHN0eWxlKCktPmZvbnQoKTsKLSAgICAgICAg
ICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykpCi0gICAgICAgICAgICAgICAg
dGV4dCA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVj
dEdyb3VwTGFiZWwoKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVt
ZW50ID0gdG9PcHRpb25FbGVtZW50KGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIHRleHQgPSBv
cHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7CiAgICAgICAg
ICAgICBlbHNlIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSkgewogICAgICAg
ICAgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MT3B0R3JvdXBFbGVtZW50Kj4o
ZWxlbWVudCktPmdyb3VwTGFiZWxUZXh0KCk7CiAgICAgICAgICAgICAgICAgRm9udERlc2NyaXB0
aW9uIGQgPSBpdGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsKQEAgLTMyNyw4ICszMjcsOCBAQCB2
b2lkIFJlbmRlckxpc3RCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYg
cmVjdHMsIGNvbnN0IExheW91dFBvaQogICAgIGludCBzaXplID0gbnVtSXRlbXMoKTsKICAgICBj
b25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gc2VsZWN0LT5saXN0SXRlbXMo
KTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBIVE1MRWxl
bWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tpXTsKLSAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSAmJiAhdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+ZGlzYWJs
ZWQoKSkgeworICAgICAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25F
bGVtZW50KGxpc3RJdGVtc1tpXSk7CisgICAgICAgIGlmIChvcHRpb25FbGVtZW50ICYmICFvcHRp
b25FbGVtZW50LT5kaXNhYmxlZCgpKSB7CiAgICAgICAgICAgICByZWN0cy5hcHBlbmQoaXRlbUJv
dW5kaW5nQm94UmVjdChhZGRpdGlvbmFsT2Zmc2V0LCBpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KQEAgLTM3MSw3ICszNzEsOCBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50
SXRlbUZvcmVncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50Jgog
ICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogCiAg
ICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9IHRvSFRNTFNlbGVjdEVs
ZW1lbnQobm9kZSgpKS0+bGlzdEl0ZW1zKCk7Ci0gICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBs
aXN0SXRlbXNbbGlzdEluZGV4XTsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2xp
c3RJbmRleF07CisgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxl
bWVudChlbGVtZW50KTsKIAogICAgIFJlbmRlclN0eWxlKiBpdGVtU3R5bGUgPSBlbGVtZW50LT5y
ZW5kZXJTdHlsZSgpOwogICAgIGlmICghaXRlbVN0eWxlKQpAQCAtMzgxLDE1ICszODIsMTQgQEAg
dm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIGl0
ZW1UZXh0OwotICAgIGJvb2wgaXNPcHRpb25FbGVtZW50ID0gZWxlbWVudC0+aGFzVGFnTmFtZShv
cHRpb25UYWcpOwotICAgIGlmIChpc09wdGlvbkVsZW1lbnQpCi0gICAgICAgIGl0ZW1UZXh0ID0g
dG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBM
YWJlbCgpOworICAgIGlmIChvcHRpb25FbGVtZW50KQorICAgICAgICBpdGVtVGV4dCA9IG9wdGlv
bkVsZW1lbnQtPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKICAgICBlbHNlIGlm
IChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSkKICAgICAgICAgaXRlbVRleHQgPSBz
dGF0aWNfY2FzdDxjb25zdCBIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudCktPmdyb3VwTGFi
ZWxUZXh0KCk7CiAgICAgYXBwbHlUZXh0VHJhbnNmb3JtKHN0eWxlKCksIGl0ZW1UZXh0LCAnICcp
OwogCiAgICAgQ29sb3IgdGV4dENvbG9yID0gZWxlbWVudC0+cmVuZGVyU3R5bGUoKSA/IGVsZW1l
bnQtPnJlbmRlclN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9y
KSA6IHN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKLSAg
ICBpZiAoaXNPcHRpb25FbGVtZW50ICYmIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnNl
bGVjdGVkKCkpIHsKKyAgICBpZiAob3B0aW9uRWxlbWVudCAmJiBvcHRpb25FbGVtZW50LT5zZWxl
Y3RlZCgpKSB7CiAgICAgICAgIGlmIChmcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5k
QWN0aXZlKCkgJiYgZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKCkpCiAgICAgICAg
ICAgICB0ZXh0Q29sb3IgPSB0aGVtZSgpLT5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCk7CiAgICAgICAgIC8vIEhvbm9yIHRoZSBmb3JlZ3JvdW5kIGNvbG9yIGZvciBkaXNh
YmxlZCBpdGVtcwpAQCAtNDIyLDEwICs0MjIsMTEgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWlu
dEl0ZW1Gb3JlZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYK
IHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3VuZChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBpbnQgbGlzdEluZGV4KQogewog
ICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+JiBsaXN0SXRlbXMgPSB0b0hUTUxTZWxlY3RF
bGVtZW50KG5vZGUoKSktPmxpc3RJdGVtcygpOwotICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
bGlzdEl0ZW1zW2xpc3RJbmRleF07CisgICAgRWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1ts
aXN0SW5kZXhdOworICAgIE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVs
ZW1lbnQoZWxlbWVudCk7CiAKICAgICBDb2xvciBiYWNrQ29sb3I7Ci0gICAgaWYgKGVsZW1lbnQt
Pmhhc1RhZ05hbWUob3B0aW9uVGFnKSAmJiB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5z
ZWxlY3RlZCgpKSB7CisgICAgaWYgKG9wdGlvbkVsZW1lbnQgJiYgb3B0aW9uRWxlbWVudC0+c2Vs
ZWN0ZWQoKSkgewogICAgICAgICBpZiAoZnJhbWUoKS0+c2VsZWN0aW9uKCktPmlzRm9jdXNlZEFu
ZEFjdGl2ZSgpICYmIGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgPT0gbm9kZSgpKQogICAgICAg
ICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS0+YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcAppbmRleCBmNzVmZWI4Y2E3YTYxNThlYjgzMWIzMGRjN2MwOGJhZTgwNThi
YTliLi4xZmFlNTdiZmNlMWRiN2I0MjI5NTk3MGEzNmE5ZjcxMzBmMjk3Y2RmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTM0LDEwICszNCwxMCBA
QAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNp
bmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlJlbmRl
ckJSLmgiCkBAIC0xNTEsMTEgKzE1MSwxMiBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp1cGRhdGVP
cHRpb25zV2lkdGgoKQogICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdl
UHJldmVudGVyOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAg
ICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBsaXN0SXRlbXNbaV07Ci0gICAgICAgIGlmICghZWxl
bWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpKQorICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0g
bGlzdEl0ZW1zW2ldOworICAgICAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9P
cHRpb25FbGVtZW50KGVsZW1lbnQpOworICAgICAgICBpZiAoIW9wdGlvbkVsZW1lbnQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBTdHJpbmcgdGV4dCA9IHRvSFRNTE9wdGlvbkVs
ZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKKyAgICAg
ICAgU3RyaW5nIHRleHQgPSBvcHRpb25FbGVtZW50LT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91
cExhYmVsKCk7CiAgICAgICAgIGFwcGx5VGV4dFRyYW5zZm9ybShzdHlsZSgpLCB0ZXh0LCAnICcp
OwogICAgICAgICBpZiAodGhlbWUoKS0+cG9wdXBPcHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSkg
ewogICAgICAgICAgICAgLy8gQWRkIGluIHRoZSBvcHRpb24ncyB0ZXh0IGluZGVudC4gIFdlIGNh
bid0IGNhbGN1bGF0ZSBwZXJjZW50YWdlIHZhbHVlcyBmb3Igbm93LgpAQCAtMjAxLDggKzIwMiw4
IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNldFRleHRGcm9tT3B0aW9uKGludCBvcHRpb25JbmRl
eCkKICAgICBTdHJpbmcgdGV4dCA9ICIiOwogICAgIGlmIChpID49IDAgJiYgaSA8IHNpemUpIHsK
ICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tpXTsKLSAgICAgICAgaWYgKGVs
ZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkgewotICAgICAgICAgICAgdGV4dCA9IHRvSFRN
TE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwo
KTsKKyAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVs
ZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIHRleHQgPSBvcHRpb25FbGVtZW50LT50ZXh0
SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7CiAgICAgICAgICAgICBtX29wdGlvblN0eWxl
ID0gZWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM3Niw4ICsz
NzcsOCBAQCBTdHJpbmcgUmVuZGVyTWVudUxpc3Q6Oml0ZW1UZXh0KHVuc2lnbmVkIGxpc3RJbmRl
eCkgY29uc3QKICAgICBFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2xpc3RJbmRleF07CiAg
ICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQogICAgICAgICBpdGVtU3Ry
aW5nID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpLT5n
cm91cExhYmVsVGV4dCgpOwotICAgIGVsc2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9u
VGFnKSkKLSAgICAgICAgaXRlbVN0cmluZyA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCkt
PnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKKyAgICBlbHNlIGlmIChPcHRpb25F
bGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGVsZW1lbnQpKQorICAgICAg
ICBpdGVtU3RyaW5nID0gb3B0aW9uRWxlbWVudC0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBM
YWJlbCgpOwogCiAgICAgYXBwbHlUZXh0VHJhbnNmb3JtKHN0eWxlKCksIGl0ZW1TdHJpbmcsICcg
Jyk7CiAgICAgcmV0dXJuIGl0ZW1TdHJpbmc7CkBAIC01NTYsOCArNTU3LDkgQEAgYm9vbCBSZW5k
ZXJNZW51TGlzdDo6aXRlbUlzU2VsZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogICAg
IGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+JiBsaXN0SXRlbXMgPSB0b0hUTUxTZWxlY3RFbGVt
ZW50KG5vZGUoKSktPmxpc3RJdGVtcygpOwogICAgIGlmIChsaXN0SW5kZXggPj0gbGlzdEl0ZW1z
LnNpemUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEhUTUxFbGVtZW50KiBlbGVtZW50
ID0gbGlzdEl0ZW1zW2xpc3RJbmRleF07Ci0gICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUo
b3B0aW9uVGFnKSAmJiB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZWxlY3RlZCgpOwor
ICAgIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGxp
c3RJdGVtc1tsaXN0SW5kZXhdKSkKKyAgICAgICAgcmV0dXJuIG9wdGlvbkVsZW1lbnQtPnNlbGVj
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRU
ZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdEluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJPcHRpb25FbGVtZW50LmNwcAppbmRleCAzN2Q0OGI1YjgzM2VkZGI2OTg0Mjlm
YjI2ZmY2YzljMmQ2Nzc2NDlmLi40OWJmZjNiNWE3YTVjMTc5MmY1MTI5Yzc4YzdhOWEzYzMzYWQ2
M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJPcHRpb25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJPcHRpb25FbGVtZW50
LmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY0LDEyICs2MywxMiBAQCBXZWJTdHJpbmcgV2ViT3B0aW9u
RWxlbWVudDo6dGV4dCgpIGNvbnN0CiAKIGJvb2wgV2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNl
bGVjdGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1l
bnQ+KCktPmhhc0F0dHJpYnV0ZShzZWxlY3RlZEF0dHIpOworICAgIHJldHVybiBjb25zdFVud3Jh
cDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+ZGVmYXVsdFNlbGVjdGVkKCk7CiB9CiAKIHZvaWQgV2Vi
T3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKGJvb2wgbmV3U2VsZWN0ZWQpCiB7Ci0g
ICAgcmV0dXJuIHVud3JhcDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+c2V0QXR0cmlidXRlKHNlbGVj
dGVkQXR0ciwgbmV3U2VsZWN0ZWQgPyAiIiA6IDApOworICAgIHJldHVybiB1bndyYXA8SFRNTE9w
dGlvbkVsZW1lbnQ+KCktPnNldERlZmF1bHRTZWxlY3RlZChuZXdTZWxlY3RlZCk7CiB9CiAKIFdl
YlN0cmluZyBXZWJPcHRpb25FbGVtZW50OjpsYWJlbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWFyY2hhYmxlRm9ybURhdGEuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VhcmNoYWJsZUZvcm1EYXRhLmNwcAppbmRleCBiZTY2
YWY4ZWE0NDM3ZDc2YWU1MGJjODY1MjRjNjU4MDA3ZGM3ZDg2Li4xYjhhNzI3ZjZjNTM4Nzk5NWQ4
YWE0ZDNiYTk1ODA0OGJlMmFjNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZWFyY2hhYmxlRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNlYXJjaGFibGVGb3JtRGF0YS5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBib29s
IElzU2VsZWN0SW5EZWZhdWx0U3RhdGUoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCkKICAgICAg
ICAgICAgIGlmICghKCppKS0+aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBv
cHRpb25FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPigqaSk7Ci0gICAg
ICAgICAgICBpZiAob3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSAhPSBvcHRpb25FbGVtZW50LT5o
YXNBdHRyaWJ1dGUoc2VsZWN0ZWRBdHRyKSkKKyAgICAgICAgICAgIGlmIChvcHRpb25FbGVtZW50
LT5zZWxlY3RlZCgpICE9IG9wdGlvbkVsZW1lbnQtPmRlZmF1bHRTZWxlY3RlZCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIElzU2VsZWN0SW5EZWZhdWx0U3RhdGUoSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGVjdCkKICAgICAgICAgaWYgKCEoKmkpLT5oYXNMb2NhbE5hbWUoSFRNTE5h
bWVzOjpvcHRpb25UYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxPcHRp
b25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQq
PigqaSk7Ci0gICAgICAgIGlmIChvcHRpb25FbGVtZW50LT5oYXNBdHRyaWJ1dGUoc2VsZWN0ZWRB
dHRyKSkgeworICAgICAgICBpZiAob3B0aW9uRWxlbWVudC0+ZGVmYXVsdFNlbGVjdGVkKCkpIHsK
ICAgICAgICAgICAgIC8vIFRoZSBwYWdlIHNwZWNpZmllZCB0aGUgb3B0aW9uIHRvIHNlbGVjdC4K
ICAgICAgICAgICAgIGluaXRpYWxTZWxlY3RlZCA9IG9wdGlvbkVsZW1lbnQ7CiAgICAgICAgICAg
ICBicmVhazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>