<?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>48557</bug_id>
          
          <creation_ts>2010-10-28 13:37:57 -0700</creation_ts>
          <short_desc>REGRESSION(r70800): Breaks inspector console tests. (Requested by pfeldman on #webkit).</short_desc>
          <delta_ts>2010-10-28 14:10:37 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>48532</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>commit-queue</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301295</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-28 13:37:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70800 broke the build:
Breaks inspector console tests. (Requested by pfeldman 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>301297</commentid>
    <comment_count>1</comment_count>
      <attachid>72228</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-28 13:38:44 -0700</bug_when>
    <thetext>Created attachment 72228
ROLLOUT of r70800

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301303</commentid>
    <comment_count>2</comment_count>
      <attachid>72228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-28 13:43:26 -0700</bug_when>
    <thetext>Comment on attachment 72228
ROLLOUT of r70800

Rejecting patch 72228 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, 72228]&quot; exit_code: 2
Last 500 characters of output:
etching: https://bugs.webkit.org/show_bug.cgi?id=48557&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 72228 from bug 48557.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 9
Parsed 12 diffs from patch file(s).
patching file WebCore/ChangeLog
only literal type is supported now at /Projects/CommitQueue/WebKitTools/Scripts/svn-apply line 248.

Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 9

Full output: http://queues.webkit.org/results/4845061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301323</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-28 14:10:37 -0700</bug_when>
    <thetext>Landed manually as r70805.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72228</attachid>
            <date>2010-10-28 13:38:44 -0700</date>
            <delta_ts>2010-10-28 13:43:26 -0700</delta_ts>
            <desc>ROLLOUT of r70800</desc>
            <filename>bug-48557-20101028203839.patch</filename>
            <type>text/plain</type>
            <size>46629</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjhiNDJhN2ViZWQ5NTFmZmYyZGY4ZWFhZDFhMDJiMGUwM2ExNGNkMi4uOGMwZWMzYWI0YzAwOGFl
MDg1MWZkMWY3NzdhY2Q3MmI1NmJjYWQyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxMC0xMC0yOCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjcwODAwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC83MDgwMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDg1NTcKKworICAgICAgICBCcmVha3MgaW5zcGVjdG9yIGNvbnNvbGUgdGVzdHMu
IChSZXF1ZXN0ZWQgYnkgcGZlbGRtYW4gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNTU1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0
b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6On5JbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OnJlc291cmNlVHJhY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpyZWxlYXNlRnJvbnRlbmRMaWZldGltZUFnZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6dW5iaW5kQWxsUmVz
b3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnBydW5lUmVz
b3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1p
dExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZnJhbWVEZXRh
Y2hlZEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
cmVzb3VyY2VGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6bWFya1Jlc291cmNlQXNDYWNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3Vy
Y2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OnNldFJlc291cmNlVHJhY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZVdlYlNv
Y2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OmJyZWFrcG9pbnRzU2V0dGluZ0tleSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpnZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VDb250ZW50Rm9yVVJMKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZTo6
dXBkYXRlU2NyaXB0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
OjptYXJrRmFpbGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwb3B1bGF0ZU9iamVjdFdpdGhGcmFtZVJlc291cmNlcyk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fdXBkYXRlV2l0aENvb2tpZXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX2ZpbHRlckNvb2tp
ZXNGb3JEb21haW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9taW1lVHlwZUlzQ29u
c2lzdGVudFdpdGhUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuX2NoZWNrV2FybmluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3Rv
dHlwZS5fdXBkYXRlUmVzb3VyY2VXaXRoUmVzcG9uc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmZv
ckFsbFJlc291cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IudXBkYXRlUmVzb3VyY2UpOgor
CiAyMDEwLTEwLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IGM0MzJmNzNmNGFmZDQ2YmJhYmM3NDUzOGNjZmZhNzk1YTY2
YTQyMDIuLjc0MDNiMjI1NzNiNGZlODFhZjVhNTUwZDI5ZGZlYTM2NGUxM2YzYjAgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgOQpSY21jYUttSEUqYDxfKFdkMDAwPkExdj54JAoKZGVsdGEg
NDI0CnpjbWFEZmtAP2I4PF8oV2RPbnpha1RKT2U/JGRKajkhO3MzNSFsMXhWIWpLT25iQVYoYm18
cH1HRjl6flQ4SHlOXgp6Zm92PEZ0U1Y0TWk2SXVxdklTeCMyNjljWFg1ZURUblhEKElPb2tndTcm
M3NhUTJARm03M2lgdUZzVDQhZm1+WXYKemJaO0tlXiQ7SkcxQVBabHRwTX45TlBQKkFFJj0rZDd8
Nj9LTkNUM3BsYTJUITJpZ3JuVTxZWXsxNkxDbXNLQ0doCkUwRENBO25FKEkpCgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IGI3NWYxMWJhOWUxYWViNTUzMTgxNmNm
MzNjYjBhZmY2NDJmMGMwZWMuLmUwYjY1OGZkNDcyNTc3YjMyN2NkYWJlOTkzZTlmM2FlMmM2Y2Yw
ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTQ0LDcgKzQ0
LDYgQEAKICNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2UuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xNDMsNyArMTQy
LDcgQEAgU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjpzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxl
U2hlZXRJZCkKIAogYm9vbCBJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3VyY2VTdHlsZVNoZWV0VGV4
dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBTdHJpbmcqIHJlc3VsdCkKIHsKLSAgICByZXR1
cm4gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KHN0eWxlU2hlZXQtPmRv
Y3VtZW50KCktPmZyYW1lKCksIHN0eWxlU2hlZXQtPmZpbmFsVVJMKCksIHJlc3VsdCk7CisgICAg
cmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzb3VyY2VDb250ZW50Rm9yVVJMKHN0eWxl
U2hlZXQtPmZpbmFsVVJMKCksIHN0eWxlU2hlZXQtPmRvY3VtZW50KCksIHJlc3VsdCk7CiB9CiAK
IFN0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVT
aGVldCogc3R5bGVTaGVldCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggMjY5MDdhNDc4NzhiNGNmODQ1ZWZmOWJkYzFiY2M5NzJhZGVmNTIwMi4uMzFmNDUw
NTljMTRmMzY4YjVhYmQ1NTcyNjI4NGJjZDE1MGJjNzVlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZENsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0b3JhZ2VBZ2Vu
dC5oIgpAQCAtMTAwLDExICsxMDEsNiBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgotCi0jaWYgTEVHQUNZX1JFU09VUkNFX1RS
QUNLSU5HX0VOQUJMRUQKLSNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgotI2VuZGlmCiAK
ICNpZiBFTkFCTEUoREFUQUJBU0UpCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKQEAgLTE0NCw3ICsx
NDAsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAg
ICwgbV9vcGVuaW5nRnJvbnRlbmQoZmFsc2UpCiAgICAgLCBtX2Nzc1N0b3JlKG5ldyBJbnNwZWN0
b3JDU1NTdG9yZSh0aGlzKSkKLSAgICAsIG1fbWFpblJlc291cmNlSWRlbnRpZmllcigwKQogICAg
ICwgbV9sb2FkRXZlbnRUaW1lKC0xLjApCiAgICAgLCBtX2RvbUNvbnRlbnRFdmVudFRpbWUoLTEu
MCkKICAgICAsIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQoMCkKQEAgLTE3Myw5ICsxNjgs
NyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjp+SW5zcGVjdG9yQ29udHJvbGxlcigpCiAgICAgQVNT
RVJUKCFtX2luc3BlY3RlZFBhZ2UpOwogICAgIEFTU0VSVCghbV9oaWdobGlnaHRlZE5vZGUpOwog
Ci0jaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICBkZWxldGVBbGxWYWx1
ZXMobV9mcmFtZVJlc291cmNlcyk7Ci0jZW5kaWYKIAogICAgIHJlbGVhc2VGcm9udGVuZExpZmV0
aW1lQWdlbnRzKCk7CiAKQEAgLTIzMiwxMiArMjI1LDEwIEBAIGJvb2wgSW5zcGVjdG9yQ29udHJv
bGxlcjo6c2VhcmNoaW5nRm9yTm9kZUluUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3RhdGUt
PmdldEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6OnNlYXJjaGluZ0Zvck5vZGUpOwogfQogCi0jaWYg
TEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxl
cjo6cmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0YXRl
LT5nZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjpyZXNvdXJjZVRyYWNraW5nRW5hYmxlZCk7CiB9
Ci0jZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRJbnNwZWN0b3JTdGF0ZShS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogc3RhdGUpCiB7CkBAIC00OTEsMTAgKzQ4Miw4IEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKICAgICByZWxlYXNlRnJv
bnRlbmRMaWZldGltZUFnZW50cygpOwogICAgIG1fZnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJv
bnRlbmQobV9jbGllbnQpOwogICAgIG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JET01BZ2VudDo6Y3Jl
YXRlKG1fY3NzU3RvcmUuZ2V0KCksIG1fZnJvbnRlbmQuZ2V0KCkpOwotCi0jaWYgIUxFR0FDWV9S
RVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECi0gICAgbV9yZXNvdXJjZUFnZW50ID0gSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zcGVjdGVkUGFnZSwgbV9mcm9udGVuZC5nZXQoKSk7
Ci0jZW5kaWYKKyAgICAvLyBGSVhNRTogZW5hYmxlIHJlc291cmNlIGFnZW50IG9uY2UgZnJvbnQt
ZW5kIGlzIHJlYWR5LgorICAgIC8vIG1fcmVzb3VyY2VBZ2VudCA9IEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmNyZWF0ZShtX2luc3BlY3RlZFBhZ2UsIG1fZnJvbnRlbmQuZ2V0KCkpOwogCiAjaWYg
RU5BQkxFKERBVEFCQVNFKQogICAgIG1fc3RvcmFnZUFnZW50ID0gSW5zcGVjdG9yU3RvcmFnZUFn
ZW50OjpjcmVhdGUobV9mcm9udGVuZC5nZXQoKSk7CkBAIC02MDIsOSArNTkxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQogCiB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OnJlbGVhc2VGcm9udGVuZExpZmV0aW1lQWdlbnRzKCkKIHsKLSNpZiAhTEVH
QUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICBtX3Jlc291cmNlQWdlbnQuY2xlYXIo
KTsKLSNlbmRpZgogCiAgICAgLy8gbV9kb21BZ2VudCBpcyBSZWZQdHIuIFJlbW92ZSBET00gbGlz
dGVuZXJzIGZpcnN0IHRvIGVuc3VyZSB0aGF0IHRoZXJlIGFyZQogICAgIC8vIG5vIHJlZmVyZW5j
ZXMgdG8gdGhlIERPTSBhZ2VudCBmcm9tIHRoZSBET00gdHJlZS4KQEAgLTYzOSwxMiArNjI2LDkg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKQogICAg
ICAgICBtX2Zyb250ZW5kLT5wcm9maWxlcldhc0VuYWJsZWQoKTsKICNlbmRpZgogCi0jaWYgTEVH
QUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICBSZXNvdXJjZXNNYXA6Oml0ZXJhdG9y
IHJlc291cmNlc0VuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwogICAgIGZvciAoUmVzb3VyY2VzTWFw
OjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IHJlc291cmNlc0VuZDsg
KytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQu
Z2V0KCkpOwotI2VuZGlmCi0KICAgICBpZiAobV9kb21Db250ZW50RXZlbnRUaW1lICE9IC0xLjAp
CiAgICAgICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKG1fZG9tQ29udGVudEV2
ZW50VGltZSk7CiAgICAgaWYgKG1fbG9hZEV2ZW50VGltZSAhPSAtMS4wKQpAQCAtNzA3LDEyICs2
OTEsMTAgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN0b3JlUHJvZmlsZXIoKQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnVuYmluZEFsbFJlc291cmNlcygpCiB7Ci0jaWYgTEVH
QUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICBSZXNvdXJjZXNNYXA6Oml0ZXJhdG9y
IHJlc291cmNlc0VuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwogICAgIGZvciAoUmVzb3VyY2VzTWFw
OjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IHJlc291cmNlc0VuZDsg
KytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+cmVsZWFzZVNjcmlwdE9iamVjdCgwKTsKLSNlbmRp
ZgotICAgIAorCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIERhdGFiYXNlUmVzb3VyY2VzTWFw
OjppdGVyYXRvciBkYXRhYmFzZXNFbmQgPSBtX2RhdGFiYXNlUmVzb3VyY2VzLmVuZCgpOwogICAg
IGZvciAoRGF0YWJhc2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kYXRhYmFzZVJlc291
cmNlcy5iZWdpbigpOyBpdCAhPSBkYXRhYmFzZXNFbmQ7ICsraXQpCkBAIC03MjcsNyArNzA5LDYg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp1bmJpbmRBbGxSZXNvdXJjZXMoKQogICAgICAg
ICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0KCk7CiB9CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJB
Q0tJTkdfRU5BQkxFRAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpwcnVuZVJlc291cmNlcyhS
ZXNvdXJjZXNNYXAqIHJlc291cmNlTWFwLCBEb2N1bWVudExvYWRlciogbG9hZGVyVG9LZWVwKQog
ewogICAgIEFTU0VSVF9BUkcocmVzb3VyY2VNYXAsIHJlc291cmNlTWFwKTsKQEAgLTc0NiwxNyAr
NzI3LDE1IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cHJ1bmVSZXNvdXJjZXMoUmVzb3Vy
Y2VzTWFwKiByZXNvdXJjZU1hcCwgRG9jdW1lbnRMb2FkCiAgICAgICAgIH0KICAgICB9CiB9Ci0j
ZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21taXRMb2FkKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAotI2lmICFMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAotICAgIG1fcmVzb3VyY2VB
Z2VudC0+ZGlkQ29tbWl0TG9hZChsb2FkZXIpOwotI2VuZGlmCi0gICAgCisgICAgaWYgKG1fcmVz
b3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5kaWRDb21taXRMb2FkKGxvYWRl
cik7CisKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsKIAogICAgIGlmIChsb2FkZXItPmZy
YW1lKCkgPT0gbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSkgewpAQCAtODAzLDcgKzc4Miw2
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogI2VuZGlmCiAKICAgICAgICAgaWYgKG1fZnJvbnRlbmQpIHsKLSNpZiBMRUdB
Q1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAogICAgICAgICAgICAgaWYgKCFsb2FkZXItPmZy
YW1lTG9hZGVyKCktPmlzTG9hZGluZ0Zyb21DYWNoZWRQYWdlKCkpIHsKICAgICAgICAgICAgICAg
ICBBU1NFUlQobV9tYWluUmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmlzU2FtZUxvYWRlcihs
b2FkZXIpKTsKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBhZGQgdGhlIG1haW4gcmVzb3Vy
Y2UgdW50aWwgaXRzIGxvYWQgaXMgY29tbWl0dGVkLiBUaGlzIGlzCkBAIC04MTcsMTggKzc5NSwx
NCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcikKICAgICAgICAgICAgICAgICAvLyBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVl
c3QuCiAgICAgICAgICAgICAgICAgbV9tYWluUmVzb3VyY2UgPSAwOwogICAgICAgICAgICAgfQot
I2VuZGlmCi0gICAgICAgICAgICBtX21haW5SZXNvdXJjZUlkZW50aWZpZXIgPSAwOwogICAgICAg
ICAgICAgbV9mcm9udGVuZC0+ZGlkQ29tbWl0TG9hZCgpOwogICAgICAgICAgICAgbV9kb21BZ2Vu
dC0+c2V0RG9jdW1lbnQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKSk7
CiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxF
RAogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbG9hZGVyLT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobG9hZGVyLT5mcmFtZSgpKSkKICAgICAgICAg
aWYgKFJlc291cmNlc01hcCogcmVzb3VyY2VNYXAgPSBtX2ZyYW1lUmVzb3VyY2VzLmdldChmcmFt
ZSkpCiAgICAgICAgICAgICBwcnVuZVJlc291cmNlcyhyZXNvdXJjZU1hcCwgbG9hZGVyKTsKLSNl
bmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmZyYW1lRGV0YWNoZWRGcm9tUGFy
ZW50KEZyYW1lKiByb290RnJhbWUpCkBAIC04MzYsMTYgKzgxMCwxNCBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKiByb290RnJhbWUpCiAg
ICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIExFR0FDWV9SRVNPVVJD
RV9UUkFDS0lOR19FTkFCTEVECisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9y
ZXNvdXJjZUFnZW50LT5mcmFtZURldGFjaGVkRnJvbVBhcmVudChyb290RnJhbWUpOworCiAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSByb290RnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRyYXZlcnNlTmV4dChyb290RnJhbWUpKQogICAgICAgICBpZiAoUmVzb3VyY2VzTWFwKiBy
ZXNvdXJjZU1hcCA9IG1fZnJhbWVSZXNvdXJjZXMuZ2V0KGZyYW1lKSkKICAgICAgICAgICAgIHJl
bW92ZUFsbFJlc291cmNlcyhyZXNvdXJjZU1hcCk7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VBZ2Vu
dC0+ZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQocm9vdEZyYW1lKTsKLSNlbmRpZgogfQogCi0jaWYg
TEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6YWRkUmVzb3VyY2UoSW5zcGVjdG9yUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIG1fcmVz
b3VyY2VzLnNldChyZXNvdXJjZS0+aWRlbnRpZmllcigpLCByZXNvdXJjZSk7CkBAIC05MDEsMTQg
Kzg3MywyNCBAQCBJbnNwZWN0b3JSZXNvdXJjZSogSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0VHJh
Y2tlZFJlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZgogCiAgICAgcmV0dXJuIDA7CiB9Ci0j
ZW5kaWYKKworSW5zcGVjdG9yUmVzb3VyY2UqIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlc291cmNl
Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIGZvciAoSW5zcGVjdG9yQ29udHJvbGxl
cjo6UmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNJdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IHJl
c0l0ICE9IG1fcmVzb3VyY2VzLmVuZCgpOyArK3Jlc0l0KSB7CisgICAgICAgIGlmIChyZXNJdC0+
c2Vjb25kLT5yZXF1ZXN0VVJMKCkuc3RyaW5nKCkgPT0gdXJsKQorICAgICAgICAgICAgcmV0dXJu
IHJlc0l0LT5zZWNvbmQuZ2V0KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQogCiB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBjb25zdCBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7
CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIExFR0FDWV9SRVNP
VVJDRV9UUkFDS0lOR19FTkFCTEVECisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAg
bV9yZXNvdXJjZUFnZW50LT5kaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUobG9hZGVyLCBj
YWNoZWRSZXNvdXJjZSk7CisKICAgICAvLyBJZiB0aGUgcmVzb3VyY2UgVVJMIGlzIGFscmVhZHkg
a25vd24sIHdlIGRvbid0IG5lZWQgdG8gYWRkIGl0IGFnYWluIHNpbmNlIHRoaXMgaXMganVzdCBh
IGNhY2hlZCBsb2FkLgogICAgIGlmIChtX2tub3duUmVzb3VyY2VzLmNvbnRhaW5zKGNhY2hlZFJl
c291cmNlLT51cmwoKSkpCiAgICAgICAgIHJldHVybjsKQEAgLTkzMCw5ICs5MTIsNiBAQCB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1
bWVudExvYWRlciogbG9hZGVyLAogCiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAgICAgIHJlc291
cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7Ci0jZWxzZQotICAgIG1f
cmVzb3VyY2VBZ2VudC0+ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKGxvYWRlciwgY2Fj
aGVkUmVzb3VyY2UpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aWRl
bnRpZmllckZvckluaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtOTQx
LDExICs5MjAsMTAgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppZGVudGlmaWVyRm9ySW5p
dGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogICAgICAgICByZXR1cm47CiAg
ICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAKLSAgICBib29sIGlzTWFpblJlc291cmNlID0g
aXNNYWluUmVzb3VyY2VMb2FkZXIobG9hZGVyLCByZXF1ZXN0LnVybCgpKTsKLSAgICBpZiAoaXNN
YWluUmVzb3VyY2UpCi0gICAgICAgIG1fbWFpblJlc291cmNlSWRlbnRpZmllciA9IGlkZW50aWZp
ZXI7CisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5p
ZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QoaWRlbnRpZmllciwgcmVxdWVzdC51cmwoKSwgbG9h
ZGVyKTsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECisgICAgYm9vbCBp
c01haW5SZXNvdXJjZSA9IGlzTWFpblJlc291cmNlTG9hZGVyKGxvYWRlciwgcmVxdWVzdC51cmwo
KSk7CiAKICAgICBlbnN1cmVTZXR0aW5nc0xvYWRlZCgpOwogICAgIGlmICghaXNNYWluUmVzb3Vy
Y2UgJiYgIXJlc291cmNlVHJhY2tpbmdFbmFibGVkKCkpCkBAIC05NjIsOSArOTQwLDYgQEAgdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjppZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLAogCiAgICAgaWYgKG1fZnJvbnRlbmQgJiYgbG9hZGVyLT5mcmFt
ZUxvYWRlcigpLT5pc0xvYWRpbmdGcm9tQ2FjaGVkUGFnZSgpICYmIHJlc291cmNlID09IG1fbWFp
blJlc291cmNlKQogICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRl
bmQuZ2V0KCkpOwotI2Vsc2UKLSAgICBtX3Jlc291cmNlQWdlbnQtPmlkZW50aWZpZXJGb3JJbml0
aWFsUmVxdWVzdChpZGVudGlmaWVyLCByZXF1ZXN0LnVybCgpLCBsb2FkZXIpOwotI2VuZGlmCiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6bWFpblJlc291cmNlRmlyZWRET01Db250ZW50
RXZlbnQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgS1VSTCYgdXJsKQpAQCAtMTAwMSwy
MiArOTc2LDIzIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgaWYgKCFlbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcXVlc3Quc2V0UmVwb3J0TG9hZFRpbWluZyh0cnVl
KTsKLSAgICAvLyBPbmx5IGVuYWJsZSByYXcgaGVhZGVycyBpZiBmcm9udC1lbmQgaXMgYXR0YWNo
ZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFjawotICAgIC8vIHBlcm1pc3Npb25zIHRvIGZldGNo
IHRoZSBoZWFkZXJzLgotICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICByZXF1ZXN0LnNldFJl
cG9ydFJhd0hlYWRlcnModHJ1ZSk7Ci0KLSAgICBib29sIGlzTWFpblJlc291cmNlID0gbV9tYWlu
UmVzb3VyY2VJZGVudGlmaWVyID09IGlkZW50aWZpZXI7CisgICAgaWYgKG1fcmVzb3VyY2VBZ2Vu
dCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT53aWxsU2VuZFJlcXVlc3QoaWRlbnRpZmllciwg
cmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKKyAgICBib29sIGlzTWFpblJlc291cmNlID0g
KG1fbWFpblJlc291cmNlICYmIG1fbWFpblJlc291cmNlLT5pZGVudGlmaWVyKCkgPT0gaWRlbnRp
Zmllcik7CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1lbGluZUFnZW50
LT53aWxsU2VuZFJlc291cmNlUmVxdWVzdChpZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSwgcmVx
dWVzdCk7CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAogICAgIFJlZlB0
cjxJbnNwZWN0b3JSZXNvdXJjZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRp
Zmllcik7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgcmVxdWVz
dC5zZXRSZXBvcnRMb2FkVGltaW5nKHRydWUpOworICAgIC8vIE9ubHkgZW5hYmxlIHJhdyBoZWFk
ZXJzIGlmIGZyb250LWVuZCBpcyBhdHRhY2hlZCwgYXMgb3RoZXJ3aXNlIHdlIG1heSBsYWNrCisg
ICAgLy8gcGVybWlzc2lvbnMgdG8gZmV0Y2ggdGhlIGhlYWRlcnMuCisgICAgaWYgKG1fZnJvbnRl
bmQpCisgICAgICAgIHJlcXVlc3Quc2V0UmVwb3J0UmF3SGVhZGVycyh0cnVlKTsKKwogICAgIGlm
ICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkgewogICAgICAgICAvLyBSZWRpcmVjdCBtYXkg
aGF2ZSBlbXB0eSBVUkwgYW5kIHdlJ2QgbGlrZSB0byBub3QgY3Jhc2ggd2l0aCBpbnZhbGlkIEhh
c2hNYXAgZW50cnkuCiAgICAgICAgIC8vIFNlZSBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwKQEAgLTEwNDIsOSArMTAxOCw2IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAKICAgICBpZiAocmVzb3VyY2UgIT0gbV9tYWluUmVz
b3VyY2UgJiYgbV9mcm9udGVuZCkKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVj
dChtX2Zyb250ZW5kLmdldCgpKTsKLSNlbHNlCi0gICAgbV9yZXNvdXJjZUFnZW50LT53aWxsU2Vu
ZFJlcXVlc3QoaWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjptYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpCkBAIC0xMDUyLDEyICsxMDI1LDExIEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6bWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyKQogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBMRUdBQ1lf
UkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAorICAgIGlmIChtX3Jlc291cmNlQWdlbnQpCisgICAg
ICAgIG1fcmVzb3VyY2VBZ2VudC0+bWFya1Jlc291cmNlQXNDYWNoZWQoaWRlbnRpZmllcik7CisK
ICAgICBpZiAoUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRS
ZXNvdXJjZShpZGVudGlmaWVyKSkKICAgICAgICAgcmVzb3VyY2UtPm1hcmtBc0NhY2hlZCgpOwot
I2Vsc2UKLSAgICBtX3Jlc291cmNlQWdlbnQtPm1hcmtSZXNvdXJjZUFzQ2FjaGVkKGlkZW50aWZp
ZXIpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC0xMDY1LDE3ICsxMDM3LDE5IEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgRG9jdW1lbnRMCiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECisgICAgaWYgKG1f
cmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5kaWRSZWNlaXZlUmVzcG9u
c2UoaWRlbnRpZmllciwgbG9hZGVyLCByZXNwb25zZSk7CisKICAgICBpZiAoUmVmUHRyPEluc3Bl
Y3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdldFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKSkg
ewogICAgICAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9uc2UocmVzcG9uc2UpOwogCiAgICAgICAg
IGlmIChyZXNvdXJjZSAhPSBtX21haW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQogICAgICAgICAg
ICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKICAgICB9
Ci0gICAgVU5VU0VEX1BBUkFNKGxvYWRlcik7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VBZ2VudC0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKGlkZW50aWZpZXIsIGxvYWRlciwgcmVzcG9uc2UpOwotI2VuZGlm
CisgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7CisgICAgICAgIFN0
cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBz
ZXJ2ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgIiwgU3RyaW5nOjpudW1iZXIocmVzcG9u
c2UuaHR0cFN0YXR1c0NvZGUoKSksICIgKCIsIHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCksICcp
Jyk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIHJlc3BvbnNlLnVybCgp
LnN0cmluZygpKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVj
ZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpCkBAIC0xMDgzLDcgKzEwNTcsOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50CiAgICAg
aWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9U
UkFDS0lOR19FTkFCTEVECisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNv
dXJjZUFnZW50LT5kaWRSZWNlaXZlQ29udGVudExlbmd0aChpZGVudGlmaWVyLCBsZW5ndGhSZWNl
aXZlZCk7CisKICAgICBSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNlID0gZ2V0VHJh
Y2tlZFJlc291cmNlKGlkZW50aWZpZXIpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJl
dHVybjsKQEAgLTEwOTIsOSArMTA2OCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQKIAogICAg
IGlmIChyZXNvdXJjZSAhPSBtX21haW5SZXNvdXJjZSAmJiBtX2Zyb250ZW5kKQogICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwotI2Vsc2UKLSAg
ICBtX3Jlc291cmNlQWdlbnQtPmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGlkZW50aWZpZXIsIGxl
bmd0aFJlY2VpdmVkKTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGlt
ZSkKQEAgLTExMDIsMTAgKzEwNzUsMTIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmkKICAgICBp
ZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fcmVzb3VyY2VBZ2Vu
dCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIs
IGZpbmlzaFRpbWUpOworCiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1l
bGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZp
bmlzaFRpbWUpOwogCi0jaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICBS
ZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNlID0gZ2V0VHJhY2tlZFJlc291cmNlKGlk
ZW50aWZpZXIpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybjsKQEAgLTExMTUs
OSArMTA5MCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pCiAgICAgLy8gTm8gbmVlZCB0byBt
dXRlIHRoaXMgZXZlbnQgZm9yIG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBk
aWQgY29tbWl0IGxvYWQuCiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAgICAgIHJlc291cmNlLT51
cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7Ci0jZWxzZQotICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKLSNlbmRp
ZgogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC0xMTI1LDIz
ICsxMDk3LDI3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjCiAgICAgaWYgKCFlbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX3Jlc291cmNlQWdlbnQpCisgICAgICAgIG1f
cmVzb3VyY2VBZ2VudC0+ZGlkRmFpbExvYWRpbmcoaWRlbnRpZmllciwgZXJyb3IpOworCiAgICAg
aWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1lbGluZUFnZW50LT5kaWRGaW5pc2hM
b2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgdHJ1ZSwgMCk7CiAKLSNpZiBMRUdBQ1lfUkVTT1VS
Q0VfVFJBQ0tJTkdfRU5BQkxFRAorICAgIFN0cmluZyBtZXNzYWdlID0gIkZhaWxlZCB0byBsb2Fk
IHJlc291cmNlIjsKKyAgICBpZiAoIWVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkuaXNFbXB0
eSgpKQorICAgICAgICBtZXNzYWdlICs9ICI6ICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGVycm9yLmZhaWxpbmdVUkwo
KSk7CisKICAgICBSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2U+IHJlc291cmNlID0gZ2V0VHJhY2tl
ZFJlc291cmNlKGlkZW50aWZpZXIpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHJlc291cmNlLT5tYXJrRmFpbGVkKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9u
KCkpOworICAgIHJlc291cmNlLT5tYXJrRmFpbGVkKCk7CiAgICAgcmVzb3VyY2UtPmVuZFRpbWlu
ZygwKTsKIAogICAgIC8vIE5vIG5lZWQgdG8gbXV0ZSB0aGlzIGV2ZW50IGZvciBtYWluIHJlc291
cmNlIHNpbmNlIGl0IGhhcHBlbnMgYWZ0ZXIgZGlkIGNvbW1pdCBsb2FkLgogICAgIGlmIChtX2Zy
b250ZW5kKQogICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQu
Z2V0KCkpOwotI2Vsc2UKLSAgICBtX3Jlc291cmNlQWdlbnQtPmRpZEZhaWxMb2FkaW5nKGlkZW50
aWZpZXIsIGVycm9yKTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKQEAgLTExNDksMTAgKzExMjUs
MTIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0
cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGkKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJj
ZUFnZW50LT5zZXRPdmVycmlkZUNvbnRlbnQoaWRlbnRpZmllciwgc291cmNlU3RyaW5nLCBJbnNw
ZWN0b3JSZXNvdXJjZTo6WEhSKTsKKwogICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKEluc3Bl
Y3RvclN0YXRlOjptb25pdG9yaW5nWEhSKSkKICAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShK
U01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsICJYSFIgZmlu
aXNoZWQgbG9hZGluZzogXCIiICsgdXJsICsgIlwiLiIsIHNlbmRMaW5lTnVtYmVyLCBzZW5kVVJM
KTsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECiAgICAgaWYgKCFyZXNv
dXJjZVRyYWNraW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTExNjQsOSArMTE0
Miw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0
dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpCiAKICAgICBpZiAobV9mcm9udGVuZCkKICAg
ICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKLSNl
bHNlCi0gICAgbV9yZXNvdXJjZUFnZW50LT5zZXRPdmVycmlkZUNvbnRlbnQoaWRlbnRpZmllciwg
c291cmNlU3RyaW5nLCBJbnNwZWN0b3JSZXNvdXJjZTo6WEhSKTsKLSNlbmRpZgogfQogCiB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCkBAIC0xMTc0LDcgKzExNDksOSBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNjcmlwdEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJgogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAorICAgIGlmIChtX3Jl
c291cmNlQWdlbnQpCisgICAgICAgIG1fcmVzb3VyY2VBZ2VudC0+c2V0T3ZlcnJpZGVDb250ZW50
KGlkZW50aWZpZXIsIHNvdXJjZVN0cmluZywgSW5zcGVjdG9yUmVzb3VyY2U6OlNjcmlwdCk7CisK
ICAgICBpZiAoIXJlc291cmNlVHJhY2tpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMTE4NiwxMiArMTE2Myw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2NyaXB0SW1w
b3J0ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmCiAKICAgICBpZiAo
bV9mcm9udGVuZCkKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250
ZW5kLmdldCgpKTsKLSNlbHNlCi0gICAgbV9yZXNvdXJjZUFnZW50LT5zZXRPdmVycmlkZUNvbnRl
bnQoaWRlbnRpZmllciwgc291cmNlU3RyaW5nLCBJbnNwZWN0b3JSZXNvdXJjZTo6U2NyaXB0KTsK
LSNlbmRpZgogfQogCi0jaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0UmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoYm9vbCBlbmFi
bGUpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCkBAIC0xMjAwLDExICsxMTczLDkgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpzZXRSZXNvdXJjZVRyYWNraW5nRW5hYmxlZChib29sIGVuYWJs
ZSkKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFu
KEluc3BlY3RvclN0YXRlOjpyZXNvdXJjZVRyYWNraW5nRW5hYmxlZCwgZW5hYmxlKTsKIH0KLSNl
bmRpZgogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFJlc291cmNlVHJhY2tpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlLCBib29sIGFsd2F5cywgYm9vbCogbmV3U3RhdGUpCiB7Ci0jaWYgTEVH
QUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQKICAgICAqbmV3U3RhdGUgPSBlbmFibGU7CiAK
ICAgICBpZiAoYWx3YXlzKQpAQCAtMTIxOCwxMSArMTE4OSw2IEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2V0UmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoYm9vbCBlbmFibGUsIGJvb2wgYWx3
YXlzLCBiCiAKICAgICBpZiAoZW5hYmxlKQogICAgICAgICByZWxvYWRQYWdlKCk7Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwotICAgIFVOVVNFRF9QQVJBTShhbHdheXMpOwotICAg
IFVOVVNFRF9QQVJBTShuZXdTdGF0ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjplbnN1cmVTZXR0aW5nc0xvYWRlZCgpCkBAIC0xMzgyLDM1ICsxMzQ4LDMzIEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0Q29va2llcyhSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
KiBjb29raWVzLCBXVEY6OlN0cmluCiAgICAgLy8gYWx3YXlzIHJldHVybiB0aGUgc2FtZSB0cnVl
L2ZhbHNlIHZhbHVlLgogICAgIGJvb2wgcmF3Q29va2llc0ltcGxlbWVudGVkID0gZmFsc2U7CiAK
LSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3BlY3RlZFBhZ2Ut
Pm1haW5GcmFtZSgpKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9j
dW1lbnQoKTsKLSAgICAgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVz
b3VyY2VNYXAmIGFsbFJlc291cmNlcyA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5hbGxDYWNoZWRSZXNvdXJjZXMoKTsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRv
Y3VtZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFsbFJlc291cmNlcy5lbmQo
KTsKLSAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1h
cDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhbGxSZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgICAgICBWZWN0b3I8Q29va2llPiBkb2NDb29raWVzTGlzdDsKLSAgICAg
ICAgICAgIHJhd0Nvb2tpZXNJbXBsZW1lbnRlZCA9IGdldFJhd0Nvb2tpZXMoZG9jdW1lbnQsIEtV
UkwoUGFyc2VkVVJMU3RyaW5nLCBpdC0+c2Vjb25kLT51cmwoKSksIGRvY0Nvb2tpZXNMaXN0KTsK
LQotICAgICAgICAgICAgaWYgKCFyYXdDb29raWVzSW1wbGVtZW50ZWQpIHsKLSAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2UgbmVlZCBkdXBsaWNhdGlvbiBjaGVja2luZyBmb3IgdGhlIFN0cmlu
ZyByZXByZXNlbnRhdGlvbiBvZiBjb29raWVzLgotICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgICAgICAgICAgICAgIHN0cmluZ0Nvb2tpZXNMaXN0ICs9IGRvY3VtZW50
LT5jb29raWUoZWMpOwotICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlvbnMgYXJlIHRocm93biBi
eSBjb29raWUoKSBpbiBzYW5kYm94ZWQgZnJhbWVzLiBUaGF0IHdvbid0IGhhcHBlbiBoZXJlCi0g
ICAgICAgICAgICAgICAgLy8gYmVjYXVzZSAiZG9jdW1lbnQiIGlzIHRoZSBkb2N1bWVudCBvZiB0
aGUgbWFpbiBmcmFtZSBvZiB0aGUgcGFnZS4KLSAgICAgICAgICAgICAgICBBU1NFUlQoIWVjKTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaW50IGNvb2tpZXNTaXplID0g
ZG9jQ29va2llc0xpc3Quc2l6ZSgpOwotICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgY29va2llc1NpemU7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXJhd0Nvb2tp
ZXNMaXN0LmNvbnRhaW5zKGRvY0Nvb2tpZXNMaXN0W2ldKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJhd0Nvb2tpZXNMaXN0LmFkZChkb2NDb29raWVzTGlzdFtpXSk7Ci0gICAgICAgICAgICAg
ICAgfQorICAgIFJlc291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5kID0gbV9yZXNvdXJj
ZXMuZW5kKCk7CisgICAgZm9yIChSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJj
ZXMuYmVnaW4oKTsgaXQgIT0gcmVzb3VyY2VzRW5kOyArK2l0KSB7CisgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGl0LT5zZWNvbmQtPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgIFZl
Y3RvcjxDb29raWU+IGRvY0Nvb2tpZXNMaXN0OworICAgICAgICByYXdDb29raWVzSW1wbGVtZW50
ZWQgPSBnZXRSYXdDb29raWVzKGRvY3VtZW50LCBpdC0+c2Vjb25kLT5yZXF1ZXN0VVJMKCksIGRv
Y0Nvb2tpZXNMaXN0KTsKKworICAgICAgICBpZiAoIXJhd0Nvb2tpZXNJbXBsZW1lbnRlZCkgewor
ICAgICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgZHVwbGljYXRpb24gY2hlY2tpbmcgZm9yIHRo
ZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgY29va2llcy4KKyAgICAgICAgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgICAgICAgICAgc3RyaW5nQ29va2llc0xpc3QgKz0gZG9jdW1lbnQt
PmNvb2tpZShlYyk7CisgICAgICAgICAgICAvLyBFeGNlcHRpb25zIGFyZSB0aHJvd24gYnkgY29v
a2llKCkgaW4gc2FuZGJveGVkIGZyYW1lcy4gVGhhdCB3b24ndCBoYXBwZW4gaGVyZQorICAgICAg
ICAgICAgLy8gYmVjYXVzZSAiZG9jdW1lbnQiIGlzIHRoZSBkb2N1bWVudCBvZiB0aGUgbWFpbiBm
cmFtZSBvZiB0aGUgcGFnZS4KKyAgICAgICAgICAgIEFTU0VSVCghZWMpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaW50IGNvb2tpZXNTaXplID0gZG9jQ29va2llc0xpc3Quc2l6ZSgp
OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb29raWVzU2l6ZTsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFyYXdDb29raWVzTGlzdC5jb250YWlucyhkb2NDb29raWVzTGlz
dFtpXSkpCisgICAgICAgICAgICAgICAgICAgIHJhd0Nvb2tpZXNMaXN0LmFkZChkb2NDb29raWVz
TGlzdFtpXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAocmF3
Q29va2llc0ltcGxlbWVudGVkKQogICAgICAgICAqY29va2llcyA9IGJ1aWxkQXJyYXlGb3JDb29r
aWVzKHJhd0Nvb2tpZXNMaXN0KTsKLSAgICBlbHNlCisgICAgZWxzZSB7CiAgICAgICAgICpjb29r
aWVzU3RyaW5nID0gc3RyaW5nQ29va2llc0xpc3Q7CisgICAgfQogfQogCiBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBJbnNwZWN0b3JDb250cm9sbGVyOjpidWlsZEFycmF5Rm9yQ29va2llcyhM
aXN0SGFzaFNldDxDb29raWU+JiBjb29raWVzTGlzdCkKQEAgLTE0NDIsMTQgKzE0MDYsMTEgQEAg
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxkT2Jq
ZWN0Rm9yQ29va2llKGNvbnN0IENvb2sKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkZWxl
dGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbikK
IHsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3BlY3RlZFBh
Z2UtPm1haW5GcmFtZSgpKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKLSAgICAgICAgaWYgKGRvY3VtZW50LT51cmwoKS5ob3N0KCkgIT0gZG9tYWlu
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpEb2N1bWVudFJlc291cmNlTWFwJiBhbGxSZXNvdXJjZXMgPSBkb2N1bWVudC0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+YWxsQ2FjaGVkUmVzb3VyY2VzKCk7Ci0gICAgICAgIENhY2hlZFJl
c291cmNlTG9hZGVyOjpEb2N1bWVudFJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBh
bGxSZXNvdXJjZXMuZW5kKCk7Ci0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRv
Y3VtZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYWxsUmVzb3VyY2VzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShk
b2N1bWVudCwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIGl0LT5zZWNvbmQtPnVybCgpKSwgY29va2ll
TmFtZSk7CisgICAgUmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNvdXJjZXNFbmQgPSBtX3Jlc291
cmNlcy5lbmQoKTsKKyAgICBmb3IgKFJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291
cmNlcy5iZWdpbigpOyBpdCAhPSByZXNvdXJjZXNFbmQ7ICsraXQpIHsKKyAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gaXQtPnNlY29uZC0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAg
aWYgKGRvY3VtZW50LT51cmwoKS5ob3N0KCkgPT0gZG9tYWluKQorICAgICAgICAgICAgV2ViQ29y
ZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCBpdC0+c2Vjb25kLT5yZXF1ZXN0VVJMKCksIGNvb2tp
ZU5hbWUpOwogICAgIH0KIH0KIApAQCAtMTU0NywyMSArMTUwOCwyMSBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpZENyZWF0ZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IEtVUgogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7
CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAorICAgIGlmIChtX3Jlc291
cmNlQWdlbnQpCisgICAgICAgIG1fcmVzb3VyY2VBZ2VudC0+ZGlkQ3JlYXRlV2ViU29ja2V0KGlk
ZW50aWZpZXIsIHJlcXVlc3RVUkwpOworCiAgICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiBy
ZXNvdXJjZSA9IEluc3BlY3RvclJlc291cmNlOjpjcmVhdGVXZWJTb2NrZXQoaWRlbnRpZmllciwg
cmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogICAgIGFkZFJlc291cmNlKHJlc291cmNlLmdldCgp
KTsKIAogICAgIGlmIChtX2Zyb250ZW5kKQogICAgICAgICByZXNvdXJjZS0+dXBkYXRlU2NyaXB0
T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwotI2Vsc2UKLSAgICBtX3Jlc291cmNlQWdlbnQtPmRp
ZENyZWF0ZVdlYlNvY2tldChpZGVudGlmaWVyLCByZXF1ZXN0VVJMKTsKLSAgICBVTlVTRURfUEFS
QU0oZG9jdW1lbnRVUkwpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSNpZiBMRUdB
Q1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAorICAgIGlmIChtX3Jlc291cmNlQWdlbnQpCisg
ICAgICAgIG1fcmVzb3VyY2VBZ2VudC0+d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0
KGlkZW50aWZpZXIsIHJlcXVlc3QpOworCiAgICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiBy
ZXNvdXJjZSA9IGdldFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKTsKICAgICBpZiAoIXJlc291
cmNlKQogICAgICAgICByZXR1cm47CkBAIC0xNTY5LDE0ICsxNTMwLDEzIEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpCiAgICAgcmVzb3VyY2UtPnVwZGF0ZVdlYlNvY2tldFJlcXVlc3QocmVxdWVz
dCk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRP
YmplY3QobV9mcm9udGVuZC5nZXQoKSk7Ci0jZWxzZQotICAgIG1fcmVzb3VyY2VBZ2VudC0+d2ls
bFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29ja2V0
SGFuZHNoYWtlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFD
S0lOR19FTkFCTEVECisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJj
ZUFnZW50LT5kaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoaWRlbnRpZmllciwg
cmVzcG9uc2UpOworCiAgICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiByZXNvdXJjZSA9IGdl
dFRyYWNrZWRSZXNvdXJjZShpZGVudGlmaWVyKTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAg
ICByZXR1cm47CkBAIC0xNTg2LDE0ICsxNTQ2LDEzIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRl
CiAgICAgcmVzb3VyY2UtPnVwZGF0ZVdlYlNvY2tldFJlc3BvbnNlKHJlc3BvbnNlKTsKICAgICBp
ZiAobV9mcm9udGVuZCkKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zy
b250ZW5kLmdldCgpKTsKLSNlbHNlCi0gICAgbV9yZXNvdXJjZUFnZW50LT5kaWRSZWNlaXZlV2Vi
U29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoaWRlbnRpZmllciwgcmVzcG9uc2UpOwotI2VuZGlmCiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ2xvc2VXZWJTb2NrZXQodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKQogewotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVE
CisgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5kaWRD
bG9zZVdlYlNvY2tldChpZGVudGlmaWVyKTsKKwogICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJj
ZT4gcmVzb3VyY2UgPSBnZXRUcmFja2VkUmVzb3VyY2UoaWRlbnRpZmllcik7CiAgICAgaWYgKCFy
ZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTYwMSw5ICsxNTYwLDYgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaWRDbG9zZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIpCiAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygwKTsKICAgICBpZiAobV9mcm9udGVuZCkKICAg
ICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKLSNl
bHNlCi0gICAgbV9yZXNvdXJjZUFnZW50LT5kaWRDbG9zZVdlYlNvY2tldChpZGVudGlmaWVyKTsK
LSNlbmRpZgogfQogI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykKIApAQCAtMTgxNyw3ICsx
NzczLDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRFdmFsdWF0ZUZvclRlc3RJbkZy
b250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcKIFN0cmluZyBJbnNwZWN0b3JDb250cm9s
bGVyOjpicmVha3BvaW50c1NldHRpbmdLZXkoKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBrZXlQcmVmaXgsICgiYnJlYWtwb2ludHM6IikpOwotICAgIHJldHVybiBrZXlQcmVm
aXggKyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjptZDVCYXNlMTYobV9pbnNwZWN0ZWRQYWdlLT5t
YWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsKKyAgICBpZiAoIW1fbWFpblJl
c291cmNlKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIGtleVByZWZpeCArIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6Om1kNUJhc2UxNihtX21haW5SZXNvdXJjZS0+cmVxdWVzdFVSTCgp
KTsKIH0KIAogUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gSW5zcGVjdG9yQ29udHJvbGxlcjo6
bG9hZEJyZWFrcG9pbnRzKCkKQEAgLTIxNDksMTggKzIxMDcsNTUgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpzZXRJbnNwZWN0b3JFeHRlbnNpb25BUEkoY29uc3QgU3RyaW5nJiBzb3VyY2Up
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0UmVzb3VyY2VDb250ZW50KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgYm9vbCBlbmNvZGUsIFN0cmluZyogY29udGVudCkKIHsKLSNpZiBM
RUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAogICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNv
dXJjZT4gcmVzb3VyY2UgPSBtX3Jlc291cmNlcy5nZXQoaWRlbnRpZmllcik7CiAgICAgaWYgKCFy
ZXNvdXJjZSkgewogICAgICAgICAqY29udGVudCA9IFN0cmluZygpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgICpjb250ZW50ID0gZW5jb2RlID8gcmVzb3VyY2UtPnNvdXJjZUJ5dGVzKCkg
OiByZXNvdXJjZS0+c291cmNlU3RyaW5nKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShpZGVu
dGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZW5jb2RlKTsKLSAgICBVTlVTRURfUEFSQU0oY29u
dGVudCk7Ci0jZW5kaWYKK30KKworYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNvdXJjZUNv
bnRlbnRGb3JVUkwoY29uc3QgS1VSTCYgdXJsLCBEb2N1bWVudCogZnJhbWVEb2N1bWVudCwgU3Ry
aW5nKiByZXN1bHQpCit7CisgICAgaWYgKCFmcmFtZURvY3VtZW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIo
dXJsLCBmcmFtZURvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+
cmVxdWVzdFVSTCgpKSkgeworICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gZnJhbWVEb2N1bWVu
dC0+aW5wdXRFbmNvZGluZygpOworICAgICAgICBidWZmZXIgPSBmcmFtZURvY3VtZW50LT5mcmFt
ZSgpLT5sb2FkZXIoKS0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VE
YXRhKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcgPSB1
cmwuc3RyaW5nKCk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IGZy
YW1lRG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhY2hlZFJlc291cmNlKHVybFN0
cmluZyk7CisgICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCisgICAgICAgICAgICBjYWNoZWRS
ZXNvdXJjZSA9IGNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybFN0cmluZyk7CisKKyAgICAgICAg
QVNTRVJUKGNhY2hlZFJlc291cmNlKTsgLy8gRklYTUUoYXBhdmxvdik6IFRoaXMgbWlnaHQgYmUg
dG9vIGFnZ3Jlc3NpdmUuCisKKyAgICAgICAgYm9vbCBpc1VucHVyZ2VhYmxlID0gdHJ1ZTsKKyAg
ICAgICAgaWYgKGNhY2hlZFJlc291cmNlLT5pc1B1cmdlYWJsZSgpKSB7CisgICAgICAgICAgICAv
LyBJZiB0aGUgcmVzb3VyY2UgaXMgcHVyZ2VhYmxlIHRoZW4gbWFrZSBpdCB1bnB1cmdlYWJsZSB0
byBnZXQKKyAgICAgICAgICAgIC8vIGl0cyBkYXRhLiBUaGlzIG1pZ2h0IGZhaWwsIGluIHdoaWNo
IGNhc2Ugd2UgcmV0dXJuIGFuCisgICAgICAgICAgICAvLyBlbXB0eSBTdHJpbmcuCisgICAgICAg
ICAgICBpZiAoIWNhY2hlZFJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkKKyAgICAgICAg
ICAgICAgICBpc1VucHVyZ2VhYmxlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlz
VW5wdXJnZWFibGUpIHsKKyAgICAgICAgICAgIHRleHRFbmNvZGluZ05hbWUgPSBjYWNoZWRSZXNv
dXJjZS0+ZW5jb2RpbmcoKTsKKyAgICAgICAgICAgIGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5k
YXRhKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgIFRl
eHRFbmNvZGluZyBlbmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgaWYgKCFlbmNv
ZGluZy5pc1ZhbGlkKCkpCisgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNv
ZGluZygpOworICAgICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgp
LCBidWZmZXItPnNpemUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZWxvYWRQYWdlKCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA5MTc5NjhjMTQxOTVl
ZWMwOGE2NmYyMTllNTNkOGYzOTEwNmI3ZjZjLi4xOGRiMDdmOTcxMGY3ZmYyYjcwYjNkNjc0ZmI1
MDFmMjhiYThlZDY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBA
IC02Nyw2ICs2Nyw3IEBAIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JQ
cm9maWxlckFnZW50OworY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnNwZWN0b3JTdG9y
YWdlQWdlbnQ7CkBAIC04NiwxMiArODcsNiBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBT
dG9yYWdlOwogY2xhc3MgU3RvcmFnZUFyZWE7CiAKLSNkZWZpbmUgTEVHQUNZX1JFU09VUkNFX1RS
QUNLSU5HX0VOQUJMRUQgMQotCi0jaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VOQUJMRUQK
LWNsYXNzIEluc3BlY3RvclJlc291cmNlOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Owog
I2VuZGlmCkBAIC0xMDMsMTAgKzk4LDggQEAgY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9u
c2U7CiAKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewog
cHVibGljOgotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECiAgICAgdHlwZWRl
ZiBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gPiBSZXNv
dXJjZXNNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxGcmFtZT4sIFJlc291cmNlc01h
cCo+IEZyYW1lUmVzb3VyY2VzTWFwOwotI2VuZGlmCiAgICAgdHlwZWRlZiBIYXNoTWFwPGludCwg
UmVmUHRyPEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+ID4gRGF0YWJhc2VSZXNvdXJjZXNNYXA7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZT4gPiBET01TdG9yYWdlUmVzb3VyY2VzTWFwOwogCkBAIC0xNzYsMTEgKzE2OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcik7
CiAgICAgdm9pZCBzY3JpcHRJbXBvcnRlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlU3RyaW5nKTsKIAotICAgIHZvaWQgc2V0UmVzb3VyY2VUcmFja2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBib29sIGFsd2F5cywgYm9vbCogbmV3U3RhdGUpOwotI2lmIExF
R0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECiAgICAgdm9pZCBzZXRSZXNvdXJjZVRyYWNr
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpOworICAgIHZvaWQgc2V0UmVzb3VyY2VUcmFja2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBib29sIGFsd2F5cywgYm9vbCogbmV3U3RhdGUpOwogICAgIGJv
b2wgcmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgdm9pZCBl
bnN1cmVTZXR0aW5nc0xvYWRlZCgpOwogCkBAIC0yMjMsMTAgKzIxNCw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAjZW5k
aWYKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECiAgICAgY29uc3QgUmVz
b3VyY2VzTWFwJiByZXNvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlczsgfQotI2Vu
ZGlmCi0KKyAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgU3RyaW5n
JiB1cmwpOworICAgIGJvb2wgcmVzb3VyY2VDb250ZW50Rm9yVVJMKGNvbnN0IEtVUkwmIHVybCwg
RG9jdW1lbnQqIGxvYWRlckRvY3VtZW50LCBTdHJpbmcqIHJlc3VsdCk7CiAgICAgYm9vbCBoYXNG
cm9udGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbnRlbmQ7IH0KIAogICAgIHZvaWQgZHJhd05v
ZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CkBAIC0zMjYsMTQgKzMxNiwxMyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShQYXNzT3duUHRyPENvbnNv
bGVNZXNzYWdlPik7CiAKLSNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJTkdfRU5BQkxFRAogICAg
IHZvaWQgYWRkUmVzb3VyY2UoSW5zcGVjdG9yUmVzb3VyY2UqKTsKICAgICB2b2lkIHJlbW92ZVJl
c291cmNlKEluc3BlY3RvclJlc291cmNlKik7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2UqIGdldFRy
YWNrZWRSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgIHZvaWQgZ2V0UmVz
b3VyY2VDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBlbmNvZGUsIFN0cmlu
ZyogY29udGVudCk7CisKICAgICB2b2lkIHBydW5lUmVzb3VyY2VzKFJlc291cmNlc01hcCosIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXJUb0tlZXAgPSAwKTsKICAgICB2b2lkIHJlbW92ZUFsbFJlc291
cmNlcyhSZXNvdXJjZXNNYXAqIG1hcCkgeyBwcnVuZVJlc291cmNlcyhtYXApOyB9Ci0jZW5kaWYK
LSAgICB2b2lkIGdldFJlc291cmNlQ29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJv
b2wgZW5jb2RlLCBTdHJpbmcqIGNvbnRlbnQpOwogCiAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxv
YWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBLVVJMJiByZXF1ZXN0VXJsKTsKIApA
QCAtMzUyLDYgKzM0MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX29wZW5pbmdGcm9udGVuZDsK
ICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+IG1fZnJvbnRlbmQ7CiAgICAgUmVmUHRyPElu
c3BlY3RvckRPTUFnZW50PiBtX2RvbUFnZW50OworICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50PiBtX3Jlc291cmNlQWdlbnQ7CiAgICAgUmVmUHRyPEluc3BlY3RvclN0b3JhZ2VBZ2Vu
dD4gbV9zdG9yYWdlQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckNTU1N0b3JlPiBtX2Nzc1N0
b3JlOwogICAgIE93blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7
CkBAIC0zNjAsMTUgKzM1MCwxMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgT3duUHRyPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4g
bV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQ7CiAjZW5kaWYKKwogICAgIFJlZlB0cjxOb2RlPiBtX25v
ZGVUb0ZvY3VzOwotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECiAgICAgUmVm
UHRyPEluc3BlY3RvclJlc291cmNlPiBtX21haW5SZXNvdXJjZTsKICAgICBSZXNvdXJjZXNNYXAg
bV9yZXNvdXJjZXM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fa25vd25SZXNvdXJjZXM7CiAgICAg
RnJhbWVSZXNvdXJjZXNNYXAgbV9mcmFtZVJlc291cmNlczsKLSNlbmRpZgotICAgIFJlZlB0cjxJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50PiBtX3Jlc291cmNlQWdlbnQ7Ci0gICAgdW5zaWduZWQgbG9u
ZyBtX21haW5SZXNvdXJjZUlkZW50aWZpZXI7CiAgICAgZG91YmxlIG1fbG9hZEV2ZW50VGltZTsK
ICAgICBkb3VibGUgbV9kb21Db250ZW50RXZlbnRUaW1lOwogICAgIFZlY3RvcjxPd25QdHI8Q29u
c29sZU1lc3NhZ2U+ID4gbV9jb25zb2xlTWVzc2FnZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZS5jcHAKaW5kZXggOWIzZjk1ZGZjNmY3ZjlmNGQ3YjYyZjgyNmExOTZlZjc3YTAy
YzExOC4uMDViMWJmZjhiZjAwNDkyYjk0Y2MxYzVlMTBlN2E2OGNjOGU0NDVjZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAtMzAyLDcgKzMwMiw2IEBAIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCiAKICAgICBpZiAobV9jaGFuZ2VzLmhhc0NoYW5nZShDb21wbGV0aW9uQ2hhbmdl
KSkgewogICAgICAgICBqc29uT2JqZWN0LT5zZXRCb29sZWFuKCJmYWlsZWQiLCBtX2ZhaWxlZCk7
Ci0gICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZygibG9jYWxpemVkRmFpbERlc2NyaXB0aW9u
IiwgbV9sb2NhbGl6ZWRGYWlsRGVzY3JpcHRpb24pOwogICAgICAgICBqc29uT2JqZWN0LT5zZXRC
b29sZWFuKCJmaW5pc2hlZCIsIG1fZmluaXNoZWQpOwogICAgICAgICBqc29uT2JqZWN0LT5zZXRC
b29sZWFuKCJkaWRDb21wbGV0aW9uQ2hhbmdlIiwgdHJ1ZSk7CiAgICAgfQpAQCAtNDM3LDEwICs0
MzYsOSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlOjplbmRUaW1pbmcoZG91YmxlIGFjdHVhbEVu
ZFRpbWUpCiAgICAgbV9jaGFuZ2VzLnNldChDb21wbGV0aW9uQ2hhbmdlKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZTo6bWFya0ZhaWxlZChjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2Ny
aXB0aW9uKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6bWFya0ZhaWxlZCgpCiB7CiAgICAgbV9m
YWlsZWQgPSB0cnVlOwotICAgIG1fbG9jYWxpemVkRmFpbERlc2NyaXB0aW9uID0gbG9jYWxpemVk
RGVzY3JpcHRpb247CiAgICAgbV9jaGFuZ2VzLnNldChDb21wbGV0aW9uQ2hhbmdlKTsKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmgKaW5kZXggYWE0YzNiMWNjYmRiMzUxYjll
NGM1MGJiYTAyZGMzZTE2N2IzNWNjZC4uYWE2MDAxZmYyZDIxYjgwNTI4MTg2YzEyZDFhOTlmYmZm
NWMyZTEyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2Uu
aAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC0xMTYsNyAr
MTE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHN0YXJ0VGltaW5nKCk7
CiAgICAgICAgIHZvaWQgZW5kVGltaW5nKGRvdWJsZSBhY3R1YWxFbmRUaW1lKTsKIAotICAgICAg
ICB2b2lkIG1hcmtGYWlsZWQoY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbik7Cisg
ICAgICAgIHZvaWQgbWFya0ZhaWxlZCgpOwogICAgICAgICB2b2lkIGFkZExlbmd0aChpbnQgbGVu
Z3RoUmVjZWl2ZWQpOwogCiAgICAgcHJpdmF0ZToKQEAgLTE3NSw3ICsxNzUsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9jYWNoZWQ7CiAgICAgICAgIGJvb2wgbV9maW5p
c2hlZDsKICAgICAgICAgYm9vbCBtX2ZhaWxlZDsKLSAgICAgICAgU3RyaW5nIG1fbG9jYWxpemVk
RmFpbERlc2NyaXB0aW9uOwogICAgICAgICBpbnQgbV9sZW5ndGg7CiAgICAgICAgIGludCBtX3Jl
c3BvbnNlU3RhdHVzQ29kZTsKICAgICAgICAgU3RyaW5nIG1fcmVzcG9uc2VTdGF0dXNUZXh0Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCAyZTk2
NWI2MzU1ZTg0ZDIwN2M2YzdkODNkNjM3Y2NjZmMzNmNhODExLi45ZjgwNjJmOGI0MGNkYWYzZThj
YWRkNDA4MTE2MjIzMmJmMjJmZTIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcApAQCAtMjYzLDggKzI2MywxMCBAQCBzdGF0aWMgdm9pZCBwb3B1bGF0
ZU9iamVjdFdpdGhGcmFtZVJlc291cmNlcyhGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8SW5zcGVj
dG9yTwogICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEb2N1bWVudFJlc291cmNlTWFwOjpjb25z
dF9pdGVyYXRvciBlbmQgPSBhbGxSZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhbGxS
ZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIENhY2hlZFJlc291
cmNlKiBjYWNoZWRSZXNvdXJjZSA9IGl0LT5zZWNvbmQuZ2V0KCk7Ci0gICAgICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGNhY2hlZFJlc291cmNlT2JqZWN0ID0gYnVpbGRPYmplY3RGb3JDYWNo
ZWRSZXNvdXJjZShmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCksICpjYWNoZWRSZXNv
dXJjZSk7Ci0gICAgICAgIHN1YnJlc291cmNlcy0+cHVzaFZhbHVlKGNhY2hlZFJlc291cmNlT2Jq
ZWN0KTsKKyAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7CisgICAgICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBjYWNoZWRSZXNvdXJjZU9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yQ2Fj
aGVkUmVzb3VyY2UoZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCAqY2FjaGVkUmVz
b3VyY2UpOworICAgICAgICAgICAgc3VicmVzb3VyY2VzLT5wdXNoVmFsdWUoY2FjaGVkUmVzb3Vy
Y2VPYmplY3QpOworICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwppbmRleCBiMmRhODc1NDA1NTYzMDU5MzdiMzI5
ZDA1Zjk1Mzg2OGIwY2Y2ZWE4Li40ZTI1MGM0Y2ZmYTZjY2QyNGRmMzRjMzJlNDk0OTQzNGRhOTY0
NzEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNW
aWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcu
anMKQEAgLTIwOCw2ICsyMDgsNyBAQCBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2ZpbHRlckNvb2tpZXNGb3JEb21haW4oYWxsQ29v
a2llcyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXMgPSBhbGxDb29r
aWVzOworCiAgICAgICAgIGlmICghdGhpcy5fY29va2llcy5sZW5ndGgpIHsKICAgICAgICAgICAg
IC8vIE5vdGhpbmcgdG8gc2hvdy4KICAgICAgICAgICAgIHRoaXMuX2VtcHR5TXNnRWxlbWVudC5y
ZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKQEAgLTI1NCw3ICsyNTUsNyBAQCBXZWJJbnNwZWN0
b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICh1cmwgJiYg
dXJsLmhvc3QgPT0gdGhpcy5fY29va2llRG9tYWluKQogICAgICAgICAgICAgICAgIHJlc291cmNl
VVJMc0ZvckRvY3VtZW50VVJMLnB1c2gocmVzb3VyY2UudXJsKTsKICAgICAgICAgfQotICAgICAg
ICBXZWJJbnNwZWN0b3IuZm9yQWxsUmVzb3VyY2VzKHBvcHVsYXRlUmVzb3VyY2VzRm9yRG9jdW1l
bnRzLmJpbmQodGhpcykpOworICAgICAgICBXZWJJbnNwZWN0b3IuZm9yQWxsUmVzb3VyY2VzKHBv
cHVsYXRlUmVzb3VyY2VzRm9yRG9jdW1lbnRzKTsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFsbENvb2tpZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBwdXNoZWQgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwppbmRleCBjMmYzYmVk
MzFjZWJlOTg4MmM3ZDg5MmZhZDc0NjE4ZmI3YjU2MmZhLi4yZGY3YjczNmM1MGE4ZDA3YzBkYmYy
MmRhY2NhNjQ5MTRkYjVmZDhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
LmpzCkBAIC01NjUsOSArNTY1LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9
IHsKICAgICAgICAgIHx8IHRoaXMudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUu
V2ViU29ja2V0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgaWYgKCF0aGlz
Lm1pbWVUeXBlKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIE1pZ2h0IGJlIG5vdCBrbm93
biBmb3IgY2FjaGVkIHJlc291cmNlcyB3aXRoIG51bGwgcmVzcG9uc2VzLgotCiAgICAgICAgIGlm
ICh0aGlzLm1pbWVUeXBlIGluIFdlYkluc3BlY3Rvci5NSU1FVHlwZXMpCiAgICAgICAgICAgICBy
ZXR1cm4gdGhpcy50eXBlIGluIFdlYkluc3BlY3Rvci5NSU1FVHlwZXNbdGhpcy5taW1lVHlwZV07
CiAKQEAgLTU4NSw3ICs1ODIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgbXNnOwogICAgICAgICBzd2l0Y2ggKHdhcm5pbmcuaWQpIHsKICAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLldhcm5pbmdzLkluY29ycmVjdE1JTUVUeXBlLmlkOgot
ICAgICAgICAgICAgICAgIGlmICghdGhpcy5fbWltZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlwZSgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9taW1lVHlwZUlzQ29uc2lzdGVudFdpdGhU
eXBlKCkpCiAgICAgICAgICAgICAgICAgICAgIG1zZyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuT3RoZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZVR5cGUuTG9nLCAKICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZywKQEAgLTU5NiwzNSArNTkzLDYgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAg
IFN0cmluZy5zcHJpbnRmKFdlYkluc3BlY3Rvci5XYXJuaW5ncy5JbmNvcnJlY3RNSU1FVHlwZS5t
ZXNzYWdlLCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS50b1VJU3RyaW5nKHRoaXMudHlwZSks
IHRoaXMubWltZVR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgIG51bGwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLldhcm5pbmdzLkZhaWxlZFRv
TG9hZC5pZDoKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5mYWlsZWQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbXNnID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csIAotICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VM
ZXZlbC5FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy51cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICBudWxsLAotICAgICAg
ICAgICAgICAgICAgICAgICAgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5zcHJp
bnRmKFdlYkluc3BlY3Rvci5XYXJuaW5ncy5GYWlsZWRUb0xvYWQubWVzc2FnZSwgdGhpcy5sb2Nh
bGl6ZWRGYWlsRGVzY3JpcHRpb24pLAotICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLldhcm5pbmdzLkZh
aWxlZFRvTG9hZFdpdGhTdGF0dXMuaWQ6Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVz
Q29kZSA+PSA0MDApIHsKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gbmV3IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZShXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJj
ZS5PdGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZS5NZXNzYWdlVHlwZS5Mb2csIAotICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgMSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFN0cmluZy5zcHJpbnRmKFdlYkluc3BlY3Rvci5XYXJuaW5ncy5GYWls
ZWRUb0xvYWRXaXRoU3RhdHVzLm1lc3NhZ2UsIHRoaXMuc3RhdHVzQ29kZSwgdGhpcy5zdGF0dXNU
ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBudWxsKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlTWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFn
ZXIuanMKaW5kZXggNDNhNjU1ZTg0NDg5NDU4YWU5YTJiZmY3OWM4NzY3MDY1ZTdhNTJmYi4uYjE4
MTk1OGJmNmZkOThmZjNmZmU2NmMyZTVhYmFmYzg1YTIwM2Y5MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC0xNTQsOSArMTU0LDYgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICBfdXBkYXRl
UmVzb3VyY2VXaXRoUmVzcG9uc2U6IGZ1bmN0aW9uKHJlc291cmNlLCByZXNwb25zZSkKICAgICB7
Ci0gICAgICAgIGlmIChyZXNvdXJjZS5pc051bGwpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAg
ICAgICAgcmVzb3VyY2UubWltZVR5cGUgPSByZXNwb25zZS5taW1lVHlwZTsKICAgICAgICAgcmVz
b3VyY2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoID0gcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVu
Z3RoOwogICAgICAgICByZXNvdXJjZS50ZXh0RW5jb2RpbmdOYW1lID0gcmVzcG9uc2UudGV4dEVu
Y29kaW5nTmFtZTsKQEAgLTIxMyw3ICsyMTAsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5h
Z2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICByZXNvdXJj
ZS5mYWlsZWQgPSB0cnVlOwotICAgICAgICByZXNvdXJjZS5sb2NhbGl6ZWRGYWlsRGVzY3JpcHRp
b24gPSBsb2NhbGl6ZWREZXNjcmlwdGlvbjsKICAgICAgICAgcmVzb3VyY2UuZmluaXNoZWQgPSB0
cnVlOwogICAgICAgICByZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZjUyZjc0ZWM0OGFkYTZjMzNlZGQ5N2Y4YjEw
NjM2ZWJhOWU0OGJiZS4uODVjYTNmNjMzY2E2OWRmYTY3OTRjMjhhMjZlYWE3YTIzZWZmNzY4ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00NjYsOCArNDY2
LDggQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5ldHdv
cmtQYW5lbEVuYWJsZWQpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VNYW5hZ2Vy
LmZvckFsbFJlc291cmNlcyhjYWxsYmFjayk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
Zm9yICh2YXIgaWQgaW4gdGhpcy5yZXNvdXJjZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2Fs
bGJhY2sodGhpcy5yZXNvdXJjZXNbaWRdKSkKKyAgICAgICAgICAgIGZvciAodmFyIGlkIGluIFdl
Ykluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnJlc291cmNlcykgeworICAgICAgICAgICAgICAg
IGlmIChjYWxsYmFjayhXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5yZXNvdXJjZXNbaWRd
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9
CkBAIC01ODMsOSArNTgzLDcgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9u
KCkKICAgICB9OwogCiAgICAgdGhpcy5XYXJuaW5ncyA9IHsKLSAgICAgICAgSW5jb3JyZWN0TUlN
RVR5cGU6IHtpZDogMCwgbWVzc2FnZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSBp
bnRlcnByZXRlZCBhcyAlcyBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgJXMuIil9LAot
ICAgICAgICBGYWlsZWRUb0xvYWQ6IHtpZDogMSwgbWVzc2FnZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTogJXMiKX0sCi0gICAgICAgIEZhaWxlZFRvTG9h
ZFdpdGhTdGF0dXM6IHtpZDogMiwgbWVzc2FnZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGYWls
ZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBv
ZiAlcyAoJXMpIil9CisgICAgICAgIEluY29ycmVjdE1JTUVUeXBlOiB7aWQ6IDAsIG1lc3NhZ2U6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVzb3VyY2UgaW50ZXJwcmV0ZWQgYXMgJXMgYnV0IHRy
YW5zZmVycmVkIHdpdGggTUlNRSB0eXBlICVzLiIpfQogICAgIH07CiAKICAgICB0aGlzLmFkZE1h
aW5FdmVudExpc3RlbmVycyhkb2N1bWVudCk7CkBAIC0xMzIwLDcgKzEzMTgsNiBAQCBXZWJJbnNw
ZWN0b3IudXBkYXRlUmVzb3VyY2UgPSBmdW5jdGlvbihwYXlsb2FkKQogCiAgICAgaWYgKHBheWxv
YWQuZGlkQ29tcGxldGlvbkNoYW5nZSkgewogICAgICAgICByZXNvdXJjZS5mYWlsZWQgPSBwYXls
b2FkLmZhaWxlZDsKLSAgICAgICAgcmVzb3VyY2UubG9jYWxpemVkRmFpbERlc2NyaXB0aW9uID0g
cGF5bG9hZC5sb2NhbGl6ZWRGYWlsRGVzY3JpcHRpb247CiAgICAgICAgIHJlc291cmNlLmZpbmlz
aGVkID0gcGF5bG9hZC5maW5pc2hlZDsKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmF1ZGl0cykK
ICAgICAgICAgICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZUZpbmlzaGVkKHJlc291cmNl
KTsK
</data>
<flag name="commit-queue"
          id="62441"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>