<?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>162857</bug_id>
          
          <creation_ts>2016-10-02 05:49:36 -0700</creation_ts>
          <short_desc>Remove FetchBody::m_isEmpty</short_desc>
          <delta_ts>2016-10-03 10:59:59 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235712</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-02 05:49:36 -0700</bug_when>
    <thetext>Following on bug 162841, we should remove m_isEmpty and handle null bodies at FetchBodyOwner level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235713</commentid>
    <comment_count>1</comment_count>
      <attachid>290467</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-02 05:57:39 -0700</bug_when>
    <thetext>Created attachment 290467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235787</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-03 09:31:28 -0700</bug_when>
    <thetext>Attachment 290467 did not pass style-queue:


ERROR: Source/WebCore/Modules/fetch/FetchBody.h:91:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:92:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:93:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:94:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:95:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:96:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/fetch/FetchBody.h:97:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 7 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235815</commentid>
    <comment_count>3</comment_count>
      <attachid>290467</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-03 10:59:54 -0700</bug_when>
    <thetext>Comment on attachment 290467
Patch

Clearing flags on attachment: 290467

Committed r206737: &lt;http://trac.webkit.org/changeset/206737&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235816</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-03 10:59:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290467</attachid>
            <date>2016-10-02 05:57:39 -0700</date>
            <delta_ts>2016-10-03 10:59:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162857-20161002145431.patch</filename>
            <type>text/plain</type>
            <size>32036</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE4MTUzNmY0YWJkODdl
ZjI3YjU5OGZhZmU4N2I4ZmUyY2Q4MGY3Yi4uZmQ0NDMyNGYwZTYyMDhhY2UyOGFlODE4MzhmMjgw
Njk2YWJhMDY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE2LTEwLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgRmV0Y2hCb2R5
OjptX2lzRW1wdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2Mjg1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICBNb3ZpbmcgaGFuZGxpbmcgb2Yg
bnVsbCBib2RpZXMgaW4gRmV0Y2hCb2R5T3duZXIsIGJ5IGhhdmluZyBhbiBPcHRpb25hbDxGZXRj
aEJvZHk+IGluIEZldGNoQm9keU93bmVyLgorICAgICAgICBNb3Zpbmcgc3RvcmFnZSBvZiBtX2Nv
bnRlbnRUeXBlIGluIEZldGNoQm9keU93bmVyLgorCisgICAgICAgIE1vdmluZyBoZWFkZXIgc3Rv
cmFnZSBmcm9tIEZldGNoUmVzcG9uc2UvRmV0Y2hSZXF1ZXN0IHRvIEZldGNoQm9keU93bmVyLCBh
cyBpdCBoZWxwcyB1cGRhdGluZyBtX2NvbnRlbnRUeXBlLgorCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuY3BwOiByZW1vdmluZyBtX2lzRW1wdHkgYW5kIG1fY29udGVudFR5cGUu
CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmV4dHJhY3QpOiBDb21wdXRlcyB0aGUgZGVm
YXVsdCBjb250ZW50LXR5cGUgd2hpY2ggaXMgc3RvcmVkIGluIEZldGNoQm9keU93bmVyLgorICAg
ICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpibG9iKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNvbnN1bWVBc1N0
cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdTdWNjZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpib2R5Rm9ySW50ZXJuYWxSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y2xvbmUpOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5Lmg6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmxvYWRpbmdCb2R5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6RmV0Y2hCb2R5KToKKyAgICAgICAgKiBN
b2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keU93bmVyOjpGZXRjaEJvZHlPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlP
d25lcjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6YXJyYXlCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmJsb2IpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmNsb25lQm9keSk6IE5lZWRzIHRvIGNsb25lIG1fY29u
dGVudFR5cGUgYXMgd2VsbC4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpleHRy
YWN0Qm9keSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6dXBkYXRlQ29udGVu
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmNvbnN1bWVPbmNlTG9h
ZGluZ0ZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpmb3JtRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6anNvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlPd25lcjo6bG9hZEJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmJs
b2JMb2FkaW5nU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpi
bG9iTG9hZGluZ0ZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6Zmlu
aXNoQmxvYkxvYWRpbmcpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpib2R5KToKKyAgICAgICAgKFdl
YkNvcmU6OkZldGNoQm9keU93bmVyOjppc0JvZHlOdWxsKToKKyAgICAgICAgKiBNb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNl
dEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjppbnRlcm5hbFJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjbG9uZSk6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVz
dDo6RmV0Y2hSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6aW5pdGlhbGl6ZVdpdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6RmV0Y2hSZXNwb25zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpjbG9uZUZvckpTKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVzcG9uc2U6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OkJvZHlMb2FkZXI6OmRpZFN1Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25z
ZTo6Qm9keUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVzcG9uc2U6OmNyZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuaDoKKwogMjAxNi0xMC0wMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHRyYW5zaXRpb25zL2FuaW1h
dGlvbnMgb2YgYmFja2dyb3VuZC1wb3NpdGlvbiB3aXRoIHJpZ2h0L2JvdHRvbS1yZWxhdGl2ZSB2
YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAppbmRleCA5
ODY1YTY0MGI0MGY0OTUzOThkNmMzYjE1ZDQzMDY4NzQ0YzIyYzBhLi43OWNlNzgyZTZjZGFkZDcw
ZjJlZWQ3ZjIwZWI3MGI3YjQ5NmQ5NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHkuY3BwCkBAIC00Nyw5MCArNDcsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1GZXRjaEJvZHk6OkZldGNoQm9keShSZWY8Y29uc3QgQmxvYj4mJiBibG9iKQotICAgIDog
bV9kYXRhKFdURk1vdmUoYmxvYikpCi0gICAgLCBtX2NvbnRlbnRUeXBlKHRoaXMtPmJsb2JCb2R5
KCkudHlwZSgpKQorT3B0aW9uYWw8RmV0Y2hCb2R5PiBGZXRjaEJvZHk6OmV4dHJhY3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpT
VmFsdWUgdmFsdWUsIFN0cmluZyYgY29udGVudFR5cGUpCiB7Ci19Ci0KLUZldGNoQm9keTo6RmV0
Y2hCb2R5KERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDog
bV9kYXRhKEZvcm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoZm9ybURhdGEsIGZvcm1EYXRhLmVuY29k
aW5nKCksICZkb2N1bWVudCkpCi0gICAgLCBtX2NvbnRlbnRUeXBlKG1ha2VTdHJpbmcoIm11bHRp
cGFydC9mb3JtLWRhdGE7Ym91bmRhcnk9IiwgdGhpcy0+Zm9ybURhdGFCb2R5KCkuYm91bmRhcnko
KS5kYXRhKCkpKQotewotfQotCi1GZXRjaEJvZHk6OkZldGNoQm9keShTdHJpbmcmJiB0ZXh0KQot
ICAgIDogbV9kYXRhKFdURk1vdmUodGV4dCkpCi0gICAgLCBtX2NvbnRlbnRUeXBlKEFTQ0lJTGl0
ZXJhbCgidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IikpCi17Ci19Ci0KLUZldGNoQm9keTo6RmV0
Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4mJiBkYXRhKQotICAgIDogbV9kYXRhKFdURk1v
dmUoZGF0YSkpCi17Ci19Ci0KLUZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1
ZmZlclZpZXc+JiYgZGF0YVZpZXcpCi0gICAgOiBtX2RhdGEoV1RGTW92ZShkYXRhVmlldykpCi17
Ci19Ci0KLUZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxjb25zdCBVUkxTZWFyY2hQYXJhbXM+JiYg
dXJsKQotICAgIDogbV9kYXRhKFdURk1vdmUodXJsKSkKLSAgICAsIG1fY29udGVudFR5cGUoQVND
SUlMaXRlcmFsKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYt
OCIpKQotewotfQotCi1GZXRjaEJvZHk6OkZldGNoQm9keShjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlLCBjb25zdCBGZXRjaEJvZHlDb25zdW1lciYgY29uc3VtZXIpCi0gICAgOiBtX2NvbnRlbnRU
eXBlKGNvbnRlbnRUeXBlKQotICAgICwgbV9jb25zdW1lcihjb25zdW1lcikKLXsKLX0KLQotRmV0
Y2hCb2R5IEZldGNoQm9keTo6ZXh0cmFjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAo
dmFsdWUuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gRmV0Y2hCb2R5
KCpKU0Jsb2I6OnRvV3JhcHBlZCh2YWx1ZSkpOworICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0Js
b2I6OmluZm8oKSkpIHsKKyAgICAgICAgYXV0byYgYmxvYiA9ICpKU0Jsb2I6OnRvV3JhcHBlZCh2
YWx1ZSk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gYmxvYi50eXBlKCk7CisgICAgICAgIHJldHVy
biBGZXRjaEJvZHkoYmxvYik7CisgICAgfQogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTUZv
cm1EYXRhOjppbmZvKCkpKSB7CiAgICAgICAgIEFTU0VSVCghY29udGV4dC5pc1dvcmtlckdsb2Jh
bFNjb3BlKCkpOwotICAgICAgICByZXR1cm4gRmV0Y2hCb2R5KCpKU0RPTUZvcm1EYXRhOjp0b1dy
YXBwZWQodmFsdWUpLCBzdGF0aWNfY2FzdDxEb2N1bWVudCY+KGNvbnRleHQpKTsKKyAgICAgICAg
YXV0byYgZG9tRm9ybURhdGEgPSAqSlNET01Gb3JtRGF0YTo6dG9XcmFwcGVkKHZhbHVlKTsKKyAg
ICAgICAgYXV0byBmb3JtRGF0YSA9IEZvcm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoZG9tRm9ybURh
dGEsIGRvbUZvcm1EYXRhLmVuY29kaW5nKCksICZzdGF0aWNfY2FzdDxEb2N1bWVudCY+KGNvbnRl
eHQpKTsKKyAgICAgICAgY29udGVudFR5cGUgPSBtYWtlU3RyaW5nKCJtdWx0aXBhcnQvZm9ybS1k
YXRhO2JvdW5kYXJ5PSIsIGZvcm1EYXRhLT5ib3VuZGFyeSgpLmRhdGEoKSk7CisgICAgICAgIHJl
dHVybiBGZXRjaEJvZHkoV1RGTW92ZShmb3JtRGF0YSkpOwogICAgIH0KLSAgICBpZiAodmFsdWUu
aXNTdHJpbmcoKSkKKyAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkgeworICAgICAgICBjb250ZW50
VHlwZSA9IEFTQ0lJTGl0ZXJhbCgidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7CiAgICAgICAg
IHJldHVybiBGZXRjaEJvZHkodmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKSk7Ci0gICAgaWYgKHZh
bHVlLmluaGVyaXRzKEpTVVJMU2VhcmNoUGFyYW1zOjppbmZvKCkpKQorICAgIH0KKyAgICBpZiAo
dmFsdWUuaW5oZXJpdHMoSlNVUkxTZWFyY2hQYXJhbXM6OmluZm8oKSkpIHsKKyAgICAgICAgY29u
dGVudFR5cGUgPSBBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZDtjaGFyc2V0PVVURi04Iik7CiAgICAgICAgIHJldHVybiBGZXRjaEJvZHkoKkpTVVJMU2VhcmNo
UGFyYW1zOjp0b1dyYXBwZWQodmFsdWUpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNSZWFk
YWJsZVN0cmVhbTo6aW5mbygpKSkgewotICAgICAgICBGZXRjaEJvZHkgYm9keTsKLSAgICAgICAg
Ym9keS5tX2lzRW1wdHkgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuIGJvZHk7Ci0gICAgfSBpZiAo
dmFsdWUuaW5oZXJpdHMoSlNDOjpKU0FycmF5QnVmZmVyOjppbmZvKCkpKSB7CisgICAgfQorICAg
IGlmICh2YWx1ZS5pbmhlcml0cyhKU1JlYWRhYmxlU3RyZWFtOjppbmZvKCkpKQorICAgICAgICBy
ZXR1cm4gRmV0Y2hCb2R5KCk7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQzo6SlNBcnJheUJ1
ZmZlcjo6aW5mbygpKSkgewogICAgICAgICBBcnJheUJ1ZmZlciogZGF0YSA9IHRvQXJyYXlCdWZm
ZXIodmFsdWUpOwogICAgICAgICBBU1NFUlQoZGF0YSk7Ci0gICAgICAgIHJldHVybiB7ICpkYXRh
IH07CisgICAgICAgIHJldHVybiBGZXRjaEJvZHkoKmRhdGEpOwogICAgIH0KICAgICBpZiAodmFs
dWUuaW5oZXJpdHMoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkKLSAgICAgICAgcmV0
dXJuIHsgdG9BcnJheUJ1ZmZlclZpZXcodmFsdWUpLnJlbGVhc2VDb25zdE5vbk51bGwoKSB9Owot
Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotRmV0Y2hCb2R5IEZldGNoQm9keTo6ZXh0cmFjdEZyb21C
b2R5KEZldGNoQm9keSogYm9keSkKLXsKLSAgICBpZiAoIWJvZHkpCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICByZXR1cm4gRmV0Y2hCb2R5KFdURk1vdmUoKmJvZHkpKTsKLX0KKyAgICAgICAg
cmV0dXJuIEZldGNoQm9keSh0b0FycmF5QnVmZmVyVmlldyh2YWx1ZSkucmVsZWFzZUNvbnN0Tm9u
TnVsbCgpKTsKIAotdm9pZCBGZXRjaEJvZHk6OnVwZGF0ZUNvbnRlbnRUeXBlKEZldGNoSGVhZGVy
cyYgaGVhZGVycykKLXsKLSAgICBTdHJpbmcgY29udGVudFR5cGUgPSBoZWFkZXJzLmZhc3RHZXQo
SFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKTsKLSAgICBpZiAoIWNvbnRlbnRUeXBlLmlzTnVs
bCgpKSB7Ci0gICAgICAgIG1fY29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBpZiAoIW1fY29udGVudFR5cGUuaXNOdWxsKCkpCi0gICAgICAgIGhl
YWRlcnMuZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIG1fY29udGVudFR5cGUp
OworICAgIHJldHVybiBOdWxsb3B0OwogfQogCiB2b2lkIEZldGNoQm9keTo6YXJyYXlCdWZmZXIo
RmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCkBA
IC0xMzksMTAgKzg4LDEwIEBAIHZvaWQgRmV0Y2hCb2R5OjphcnJheUJ1ZmZlcihGZXRjaEJvZHlP
d25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzCiAgICAgY29uc3VtZShv
d25lciwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLXZvaWQgRmV0Y2hCb2R5OjpibG9iKEZldGNo
Qm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBG
ZXRjaEJvZHk6OmJsb2IoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgbV9jb25zdW1l
ci5zZXRUeXBlKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpCbG9iKTsKLSAgICBtX2NvbnN1bWVy
LnNldENvbnRlbnRUeXBlKEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlwZShleHRyYWN0TUlNRVR5
cGVGcm9tTWVkaWFUeXBlKG1fY29udGVudFR5cGUpKSk7CisgICAgbV9jb25zdW1lci5zZXRDb250
ZW50VHlwZShCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkpKTsKICAgICBjb25zdW1lKG93bmVyLCBXVEZNb3ZlKHByb21p
c2UpKTsKIH0KIApAQCAtMTk0LDE2ICsxNDMsMTIgQEAgdm9pZCBGZXRjaEJvZHk6OmNvbnN1bWUo
RmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAg
ICAgICAgIGNvbnN1bWVCbG9iKG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBpZiAobV9jb25zdW1lci5oYXNEYXRhKCkpIHsKLSAgICAgICAgbV9j
b25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSkpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQogICAgIGlmIChpc0Zvcm1EYXRhKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgY29u
c3VtaW5nIEZvcm1EYXRhLgogICAgICAgICBwcm9taXNlLT5yZWplY3QoMCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgbV9jb25zdW1lci5y
ZXNvbHZlKFdURk1vdmUocHJvbWlzZSkpOwogfQogCiAjaWYgRU5BQkxFKFJFQURBQkxFX1NUUkVB
TV9BUEkpCkBAIC0yMjcsMTIgKzE3MiwxMiBAQCB2b2lkIEZldGNoQm9keTo6Y29uc3VtZUFzU3Ry
ZWFtKEZldGNoQm9keU93bmVyJiBvd25lciwgRmV0Y2hSZXNwb25zZVNvdXJjZSYgc291cgogICAg
IH0gZWxzZSBpZiAoaXNCbG9iKCkpIHsKICAgICAgICAgb3duZXIubG9hZEJsb2IoYmxvYkJvZHko
KSwgbnVsbHB0cik7CiAgICAgICAgIG1fZGF0YSA9IG51bGxwdHI7Ci0gICAgfSBlbHNlIGlmICht
X2NvbnN1bWVyLmhhc0RhdGEoKSkKKyAgICB9IGVsc2UgaWYgKGlzRm9ybURhdGEoKSkKKyAgICAg
ICAgc291cmNlLmVycm9yKEFTQ0lJTGl0ZXJhbCgibm90IGltcGxlbWVudGVkIikpOworICAgIGVs
c2UgaWYgKG1fY29uc3VtZXIuaGFzRGF0YSgpKQogICAgICAgICBjbG9zZVN0cmVhbSA9IHNvdXJj
ZS5lbnF1ZXVlKG1fY29uc3VtZXIudGFrZUFzQXJyYXlCdWZmZXIoKSk7Ci0gICAgZWxzZSBpZiAo
aXNFbXB0eSgpKQotICAgICAgICBjbG9zZVN0cmVhbSA9IHRydWU7CiAgICAgZWxzZQotICAgICAg
ICBzb3VyY2UuZXJyb3IoQVNDSUlMaXRlcmFsKCJub3QgaW1wbGVtZW50ZWQiKSk7CisgICAgICAg
IGNsb3NlU3RyZWFtID0gdHJ1ZTsKIAogICAgIGlmIChjbG9zZVN0cmVhbSkKICAgICAgICAgc291
cmNlLmNsb3NlKCk7CkBAIC0yNzUsMTUgKzIyMCwxMiBAQCB2b2lkIEZldGNoQm9keTo6bG9hZGlu
Z0ZhaWxlZCgpCiAKIHZvaWQgRmV0Y2hCb2R5Ojpsb2FkaW5nU3VjY2VlZGVkKCkKIHsKLSAgICBt
X2lzRW1wdHkgPSAhbV9jb25zdW1lci5oYXNEYXRhKCk7CiAgICAgaWYgKG1fY29uc3VtZVByb21p
c2UpCiAgICAgICAgIG1fY29uc3VtZXIucmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VO
b25OdWxsKCkpOwogfQogCiBSZWZQdHI8Rm9ybURhdGE+IEZldGNoQm9keTo6Ym9keUZvckludGVy
bmFsUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAg
IGlmIChpc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChpc1RleHQo
KSkKICAgICAgICAgcmV0dXJuIEZvcm1EYXRhOjpjcmVhdGUoVVRGOEVuY29kaW5nKCkuZW5jb2Rl
KHRleHRCb2R5KCksIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKSk7CiAgICAgaWYgKGlzVVJMU2Vh
cmNoUGFyYW1zKCkpCkBAIC0zMTAsOCArMjUyLDcgQEAgUmVmUHRyPEZvcm1EYXRhPiBGZXRjaEJv
ZHk6OmJvZHlGb3JJbnRlcm5hbFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGUK
IEZldGNoQm9keSBGZXRjaEJvZHk6OmNsb25lKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIW1fY29u
c3VtZVByb21pc2UpOwotICAgIEZldGNoQm9keSBjbG9uZShtX2NvbnRlbnRUeXBlLCBtX2NvbnN1
bWVyKTsKLSAgICBjbG9uZS5tX2lzRW1wdHkgPSBtX2lzRW1wdHk7CisgICAgRmV0Y2hCb2R5IGNs
b25lKG1fY29uc3VtZXIpOwogCiAgICAgaWYgKGlzQXJyYXlCdWZmZXIoKSkKICAgICAgICAgY2xv
bmUubV9kYXRhID0gYXJyYXlCdWZmZXJCb2R5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHkuaAppbmRleCA5ZDVkN2ZhMThhOWIxYzAyYWZjMDg0ODY5NDkyNzlkM2U1YTEy
NDU0Li4yMzYzMTI1YTA0YmNjODc1ZTZhOWFkYzMwNTA1YjlhMDUyYzEzMzU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJGb3JtRGF0YS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIlVS
TFNlYXJjaFBhcmFtcy5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgRmV0Y2hCb2R5IHsKIHB1YmxpYzoKICAgICB2
b2lkIGFycmF5QnVmZmVyKEZldGNoQm9keU93bmVyJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7
Ci0gICAgdm9pZCBibG9iKEZldGNoQm9keU93bmVyJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7
CisgICAgdm9pZCBibG9iKEZldGNoQm9keU93bmVyJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBqc29uKEZldGNoQm9keU93bmVyJiwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCB0ZXh0KEZldGNoQm9keU93bmVyJiwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBmb3JtRGF0YShGZXRjaEJvZHlPd25lciYsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkgeyBwcm9taXNlLmdldCgpLnJlamVjdCgwKTsgfQpA
QCAtNjQsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25zdW1lQXNTdHJlYW0oRmV0Y2hC
b2R5T3duZXImLCBGZXRjaFJlc3BvbnNlU291cmNlJik7CiAjZW5kaWYKIAotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbXB0eTsgfQogICAgIGJvb2wgaXNCbG9iKCkgY29u
c3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxjb25z
dCBCbG9iPj4obV9kYXRhKTsgfQogICAgIGJvb2wgaXNGb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJu
IHN0ZDo6ZXhwZXJpbWVudGFsOjpob2xkc19hbHRlcm5hdGl2ZTxSZWY8Rm9ybURhdGE+PihtX2Rh
dGEpOyB9CiAgICAgYm9vbCBpc0FycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBl
cmltZW50YWw6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4+KG1fZGF0
YSk7IH0KQEAgLTcyLDEzICs3Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzVVJMU2VhcmNoUGFy
YW1zKCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZjxjb25zdCBVUkxTZWFyY2hQYXJhbXM+PihtX2RhdGEpOyB9CiAgICAgYm9vbCBpc1RleHQo
KSBjb25zdCB7IHJldHVybiBzdGQ6OmV4cGVyaW1lbnRhbDo6aG9sZHNfYWx0ZXJuYXRpdmU8U3Ry
aW5nPihtX2RhdGEpOyB9CiAKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRUeXBlKEZldGNoSGVhZGVy
cyYpOwotICAgIHZvaWQgc2V0Q29udGVudFR5cGUoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkg
eyBtX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGU7IH0KLSAgICBTdHJpbmcgY29udGVudFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlOyB9Ci0KLSAgICBzdGF0aWMgRmV0Y2hCb2R5
IGV4dHJhY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpK
U1ZhbHVlKTsKLSAgICBzdGF0aWMgRmV0Y2hCb2R5IGV4dHJhY3RGcm9tQm9keShGZXRjaEJvZHkq
KTsKLSAgICBGZXRjaEJvZHkoKSA6IG1faXNFbXB0eSh0cnVlKSB7IH0KKyAgICBzdGF0aWMgT3B0
aW9uYWw8RmV0Y2hCb2R5PiBleHRyYWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwgU3RyaW5nJik7CisgICAgc3RhdGljIEZldGNoQm9keSBs
b2FkaW5nQm9keSgpIHsgcmV0dXJuIHsgfTsgfQogCiAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKCk7
CiAgICAgdm9pZCBsb2FkaW5nU3VjY2VlZGVkKCk7CkBAIC05MywxMyArODgsMTQgQEAgcHVibGlj
OgogICAgIEZldGNoQm9keSBjbG9uZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEZldGNoQm9k
eShSZWY8Y29uc3QgQmxvYj4mJik7Ci0gICAgRmV0Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1ZmZl
cj4mJik7Ci0gICAgRmV0Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+JiYpOwotICAg
IEZldGNoQm9keShET01Gb3JtRGF0YSYsIERvY3VtZW50Jik7Ci0gICAgRmV0Y2hCb2R5KFN0cmlu
ZyYmKTsKLSAgICBGZXRjaEJvZHkoUmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4mJik7Ci0gICAg
RmV0Y2hCb2R5KGNvbnN0IFN0cmluZyYsIGNvbnN0IEZldGNoQm9keUNvbnN1bWVyJik7CisgICAg
ZXhwbGljaXQgRmV0Y2hCb2R5KFJlZjxjb25zdCBCbG9iPiYmIGRhdGEpIDogbV9kYXRhKFdURk1v
dmUoZGF0YSkpIHsgfQorICAgIGV4cGxpY2l0IEZldGNoQm9keShSZWY8Y29uc3QgQXJyYXlCdWZm
ZXI+JiYgZGF0YSkgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkgeyB9CisgICAgZXhwbGljaXQgRmV0
Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+JiYgZGF0YSkgOiBtX2RhdGEoV1RGTW92
ZShkYXRhKSkgeyB9CisgICAgZXhwbGljaXQgRmV0Y2hCb2R5KFJlZjxGb3JtRGF0YT4mJiBkYXRh
KSA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKSB7IH0KKyAgICBleHBsaWNpdCBGZXRjaEJvZHkoU3Ry
aW5nJiYgZGF0YSkgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkgeyB9CisgICAgZXhwbGljaXQgRmV0
Y2hCb2R5KFJlZjxjb25zdCBVUkxTZWFyY2hQYXJhbXM+JiYgZGF0YSkgOiBtX2RhdGEoV1RGTW92
ZShkYXRhKSkgeyB9CisgICAgZXhwbGljaXQgRmV0Y2hCb2R5KGNvbnN0IEZldGNoQm9keUNvbnN1
bWVyJiBjb25zdW1lcikgOiBtX2NvbnN1bWVyKGNvbnN1bWVyKSB7IH0KKyAgICBGZXRjaEJvZHko
KSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGNvbnN1bWUoRmV0Y2hCb2R5T3duZXImLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKIApAQCAtMTE4LDkgKzExNCw2IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgVVJMU2VhcmNoUGFyYW1zJiB1cmxTZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1cm4g
c3RkOjpleHBlcmltZW50YWw6OmdldDxSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRh
KS5nZXQoKTsgfQogCiAgICAgc3RkOjpleHBlcmltZW50YWw6OnZhcmlhbnQ8c3RkOjpudWxscHRy
X3QsIFJlZjxjb25zdCBCbG9iPiwgUmVmPEZvcm1EYXRhPiwgUmVmPGNvbnN0IEFycmF5QnVmZmVy
PiwgUmVmPGNvbnN0IEFycmF5QnVmZmVyVmlldz4sIFJlZjxjb25zdCBVUkxTZWFyY2hQYXJhbXM+
LCBTdHJpbmc+IG1fZGF0YSB7IG51bGxwdHIgfTsKLSAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsK
LQotICAgIGJvb2wgbV9pc0VtcHR5IHsgZmFsc2UgfTsKIAogICAgIEZldGNoQm9keUNvbnN1bWVy
IG1fY29uc3VtZXIgeyBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Tm9uZSB9OwogICAgIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+IG1fY29uc3VtZVByb21pc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCmluZGV4IDhjOTdjNDAzNmI2ZGUzODhh
MjVkMmMwMmU5OWFlZWJhYjdhNjU1ZWQuLjhiZjgyOWRmMGU0OTllZmVkY2E3MThkNzE3NDQ1ZGYw
ZGVhNjJiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5T3duZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
T3duZXIuY3BwCkBAIC00MCwxNiArNDAsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1G
ZXRjaEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgRmV0Y2hCb2R5JiYgYm9keSkKK0ZldGNoQm9keU93bmVyOjpGZXRjaEJvZHlPd25lcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9k
eSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZj
b250ZXh0KQogICAgICwgbV9ib2R5KFdURk1vdmUoYm9keSkpCisgICAgLCBtX2hlYWRlcnMoV1RG
TW92ZShoZWFkZXJzKSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBGZXRj
aEJvZHlPd25lcjo6c3RvcCgpCiB7Ci0gICAgbV9ib2R5LmNsZWFuQ29uc3VtZVByb21pc2UoKTsK
KyAgICBpZiAobV9ib2R5KQorICAgICAgICBtX2JvZHktPmNsZWFuQ29uc3VtZVByb21pc2UoKTsK
IAogICAgIGlmIChtX2Jsb2JMb2FkZXIpIHsKICAgICAgICAgYm9vbCBpc1VuaXF1ZVJlZmVyZW5j
ZSA9IGhhc09uZVJlZigpOwpAQCAtNzUsNyArNzcsNyBAQCBib29sIEZldGNoQm9keU93bmVyOjpp
c0Rpc3R1cmJlZE9yTG9ja2VkKCkgY29uc3QKIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6YXJyYXlC
dWZmZXIoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGlmIChtX2JvZHku
aXNFbXB0eSgpKSB7CisgICAgaWYgKGlzQm9keU51bGwoKSkgewogICAgICAgICBmdWxmaWxsUHJv
bWlzZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKHByb21pc2UpLCBudWxscHRyLCAwKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTg0LDEzICs4NiwxMyBAQCB2b2lkIEZldGNoQm9keU93bmVy
OjphcnJheUJ1ZmZlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7Ci0gICAgbV9ib2R5LmFycmF5
QnVmZmVyKCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2JvZHktPmFycmF5QnVmZmVy
KCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6Ymxv
YihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1fYm9keS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZShCbG9iOjpjcmVhdGUoVmVjdG9yPHVp
bnQ4X3Q+KCksIEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlwZShleHRyYWN0TUlNRVR5cGVGcm9t
TWVkaWFUeXBlKG1fYm9keS5jb250ZW50VHlwZSgpKSkpKTsKKyAgICBpZiAoaXNCb2R5TnVsbCgp
KSB7CisgICAgICAgIHByb21pc2UtPnJlc29sdmUoQmxvYjo6Y3JlYXRlKFZlY3Rvcjx1aW50OF90
PigpLCBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZShtX2NvbnRlbnRUeXBlKSkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAo
aXNEaXN0dXJiZWRPckxvY2tlZCgpKSB7CkBAIC05OCw3ICsxMDAsMzEgQEAgdm9pZCBGZXRjaEJv
ZHlPd25lcjo6YmxvYihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7Ci0gICAgbV9ib2R5LmJsb2Io
KnRoaXMsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fYm9keS0+YmxvYigqdGhpcywgV1RGTW92
ZShwcm9taXNlKSwgbV9jb250ZW50VHlwZSk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5T3duZXI6OmNs
b25lQm9keShjb25zdCBGZXRjaEJvZHlPd25lciYgb3duZXIpCit7CisgICAgbV9jb250ZW50VHlw
ZSA9IG93bmVyLm1fY29udGVudFR5cGU7CisgICAgaWYgKG93bmVyLmlzQm9keU51bGwoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fYm9keSA9IG93bmVyLm1fYm9keS0+Y2xvbmUoKTsKK30KKwor
dm9pZCBGZXRjaEJvZHlPd25lcjo6ZXh0cmFjdEJvZHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgbV9ib2R5ID0gRmV0Y2hCb2R5OjpleHRyYWN0KGNvbnRleHQsIHN0YXRlLCB2YWx1ZSwgbV9j
b250ZW50VHlwZSk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5T3duZXI6OnVwZGF0ZUNvbnRlbnRUeXBl
KCkKK3sKKyAgICBTdHJpbmcgY29udGVudFR5cGUgPSBtX2hlYWRlcnMtPmZhc3RHZXQoSFRUUEhl
YWRlck5hbWU6OkNvbnRlbnRUeXBlKTsKKyAgICBpZiAoIWNvbnRlbnRUeXBlLmlzTnVsbCgpKSB7
CisgICAgICAgIG1fY29udGVudFR5cGUgPSBXVEZNb3ZlKGNvbnRlbnRUeXBlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fY29udGVudFR5cGUuaXNOdWxsKCkpCisgICAgICAg
IG1faGVhZGVycy0+ZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIG1fY29udGVu
dFR5cGUpOwogfQogCiB2b2lkIEZldGNoQm9keU93bmVyOjpjb25zdW1lT25jZUxvYWRpbmdGaW5p
c2hlZChGZXRjaEJvZHlDb25zdW1lcjo6VHlwZSB0eXBlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCkBAIC0xMDgsMTIgKzEzNCwxMiBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpjb25z
dW1lT25jZUxvYWRpbmdGaW5pc2hlZChGZXRjaEJvZHlDb25zdW1lcjo6VHlwZSB0eXBlLCBSZQog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1faXNEaXN0dXJiZWQgPSB0cnVlOwotICAgIG1f
Ym9keS5jb25zdW1lT25jZUxvYWRpbmdGaW5pc2hlZCh0eXBlLCBXVEZNb3ZlKHByb21pc2UpKTsK
KyAgICBtX2JvZHktPmNvbnN1bWVPbmNlTG9hZGluZ0ZpbmlzaGVkKHR5cGUsIFdURk1vdmUocHJv
bWlzZSkpOwogfQogCiB2b2lkIEZldGNoQm9keU93bmVyOjpmb3JtRGF0YShSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKG1fYm9keS5pc0VtcHR5KCkpIHsKKyAgICBp
ZiAoaXNCb2R5TnVsbCgpKSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdCgwKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTEyMiwxMiArMTQ4LDEyIEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6
OmZvcm1EYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBtX2lzRGlzdHVyYmVkID0gdHJ1ZTsKLSAgICBtX2JvZHkuZm9ybURhdGEo
KnRoaXMsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fYm9keS0+Zm9ybURhdGEoKnRoaXMsIFdU
Rk1vdmUocHJvbWlzZSkpOwogfQogCiB2b2lkIEZldGNoQm9keU93bmVyOjpqc29uKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9ib2R5LmlzRW1wdHkoKSkgewor
ICAgIGlmIChpc0JvZHlOdWxsKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFNZTlRBWF9F
UlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTM2LDEyICsxNjIsMTIgQEAgdm9pZCBG
ZXRjaEJvZHlPd25lcjo6anNvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7Ci0gICAgbV9ib2R5
Lmpzb24oKnRoaXMsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fYm9keS0+anNvbigqdGhpcywg
V1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIHZvaWQgRmV0Y2hCb2R5T3duZXI6OnRleHQoUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGlmIChtX2JvZHkuaXNFbXB0eSgpKSB7
CisgICAgaWYgKGlzQm9keU51bGwoKSkgewogICAgICAgICBwcm9taXNlLT5yZXNvbHZlKFN0cmlu
ZygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1MCw3ICsxNzYsNyBAQCB2b2lkIEZl
dGNoQm9keU93bmVyOjp0ZXh0KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBtX2lzRGlzdHVyYmVkID0gdHJ1ZTsKLSAgICBtX2JvZHku
dGV4dCgqdGhpcywgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9ib2R5LT50ZXh0KCp0aGlzLCBX
VEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6bG9hZEJsb2IoY29u
c3QgQmxvYiYgYmxvYiwgRmV0Y2hCb2R5Q29uc3VtZXIqIGNvbnN1bWVyKQpAQCAtMTU4LDkgKzE4
NCwxMCBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpsb2FkQmxvYihjb25zdCBCbG9iJiBibG9iLCBG
ZXRjaEJvZHlDb25zdW1lciogY29uc3VtZXIpCiAgICAgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIG9u
Y2UgZm9yIGEgYm9keSBpbnN0YW5jZS4KICAgICBBU1NFUlQoaXNEaXN0dXJiZWQoKSk7CiAgICAg
QVNTRVJUKCFtX2Jsb2JMb2FkZXIpOworICAgIEFTU0VSVCghaXNCb2R5TnVsbCgpKTsKIAogICAg
IGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIG1fYm9keS5sb2FkaW5n
RmFpbGVkKCk7CisgICAgICAgIG1fYm9keS0+bG9hZGluZ0ZhaWxlZCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xNjksNyArMTk2LDcgQEAgdm9pZCBGZXRjaEJvZHlPd25lcjo6bG9h
ZEJsb2IoY29uc3QgQmxvYiYgYmxvYiwgRmV0Y2hCb2R5Q29uc3VtZXIqIGNvbnN1bWVyKQogCiAg
ICAgbV9ibG9iTG9hZGVyLT5sb2FkZXItPnN0YXJ0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IGJsb2IpOwogICAgIGlmICghbV9ibG9iTG9hZGVyLT5sb2FkZXItPmlzU3RhcnRlZCgpKSB7Ci0g
ICAgICAgIG1fYm9keS5sb2FkaW5nRmFpbGVkKCk7CisgICAgICAgIG1fYm9keS0+bG9hZGluZ0Zh
aWxlZCgpOwogICAgICAgICBtX2Jsb2JMb2FkZXIgPSBOdWxsb3B0OwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMTg2LDE4ICsyMTMsMjAgQEAgdm9pZCBGZXRjaEJvZHlPd25lcjo6ZmluaXNo
QmxvYkxvYWRpbmcoKQogCiB2b2lkIEZldGNoQm9keU93bmVyOjpibG9iTG9hZGluZ1N1Y2NlZWRl
ZCgpCiB7CisgICAgQVNTRVJUKCFpc0JvZHlOdWxsKCkpOwogI2lmIEVOQUJMRShSRUFEQUJMRV9T
VFJFQU1fQVBJKQogICAgIGlmIChtX3JlYWRhYmxlU3RyZWFtU291cmNlKSB7CiAgICAgICAgIG1f
cmVhZGFibGVTdHJlYW1Tb3VyY2UtPmNsb3NlKCk7CiAgICAgICAgIG1fcmVhZGFibGVTdHJlYW1T
b3VyY2UgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgotICAgIG1fYm9keS5sb2FkaW5nU3VjY2Vl
ZGVkKCk7CisgICAgbV9ib2R5LT5sb2FkaW5nU3VjY2VlZGVkKCk7CiAgICAgZmluaXNoQmxvYkxv
YWRpbmcoKTsKIH0KIAogdm9pZCBGZXRjaEJvZHlPd25lcjo6YmxvYkxvYWRpbmdGYWlsZWQoKQog
eworICAgIEFTU0VSVCghaXNCb2R5TnVsbCgpKTsKICNpZiBFTkFCTEUoUkVBREFCTEVfU1RSRUFN
X0FQSSkKICAgICBpZiAobV9yZWFkYWJsZVN0cmVhbVNvdXJjZSkgewogICAgICAgICBpZiAoIW1f
cmVhZGFibGVTdHJlYW1Tb3VyY2UtPmlzQ2FuY2VsbGluZygpKQpAQCAtMjA1LDcgKzIzNCw3IEBA
IHZvaWQgRmV0Y2hCb2R5T3duZXI6OmJsb2JMb2FkaW5nRmFpbGVkKCkKICAgICAgICAgbV9yZWFk
YWJsZVN0cmVhbVNvdXJjZSA9IG51bGxwdHI7CiAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAg
bV9ib2R5LmxvYWRpbmdGYWlsZWQoKTsKKyAgICAgICAgbV9ib2R5LT5sb2FkaW5nRmFpbGVkKCk7
CiAKICAgICBmaW5pc2hCbG9iTG9hZGluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCmluZGV4IDRiNDM2N2RiMGM0YTU5NDM4OWMwNmFmZjI3
YmY1MGVlYTliNGM0MzcuLmExMzg2OTc4MjE0MDA3MjJkN2VjYTJjNzI2ZDU4MDFhODM0MWY5ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUg
IkZldGNoQm9keS5oIgorI2luY2x1ZGUgIkZldGNoSGVhZGVycy5oIgogI2luY2x1ZGUgIkZldGNo
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRmV0Y2hMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGZXRj
aFJlc3BvbnNlU291cmNlLmgiCkBAIC00MSw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRmV0Y2hCb2R5T3duZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGZXRjaEJvZHlPd25l
cj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIEZldGNoQm9keU93bmVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaEJvZHkmJik7CisgICAgRmV0Y2hCb2R5T3du
ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZl
dGNoSGVhZGVycz4mJik7CiAKICAgICAvLyBFeHBvc2VkIEJvZHkgQVBJCiAgICAgYm9vbCBpc0Rp
c3R1cmJlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNEaXN0dXJiZWQ7IH07CkBAIC01OSw4ICs2MCwx
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuICEhbV9ibG9i
TG9hZGVyOyB9CiAKIHByb3RlY3RlZDoKLSAgICBjb25zdCBGZXRjaEJvZHkmIGJvZHkoKSBjb25z
dCB7IHJldHVybiBtX2JvZHk7IH0KLSAgICBGZXRjaEJvZHkmIGJvZHkoKSB7IHJldHVybiBtX2Jv
ZHk7IH0KKyAgICBjb25zdCBGZXRjaEJvZHkmIGJvZHkoKSBjb25zdCB7IHJldHVybiAqbV9ib2R5
OyB9CisgICAgRmV0Y2hCb2R5JiBib2R5KCkgeyByZXR1cm4gKm1fYm9keTsgfQorICAgIGJvb2wg
aXNCb2R5TnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2JvZHk7IH0KKyAgICB2b2lkIGNsb25lQm9k
eShjb25zdCBGZXRjaEJvZHlPd25lciYpOworCisgICAgdm9pZCBleHRyYWN0Qm9keShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpOworICAgIHZv
aWQgdXBkYXRlQ29udGVudFR5cGUoKTsKICAgICB2b2lkIGNvbnN1bWVPbmNlTG9hZGluZ0Zpbmlz
aGVkKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkKQEAgLTg5LDExICs5NSwxMyBAQCBwcml2YXRlOgog
ICAgIH07CiAKIHByb3RlY3RlZDoKLSAgICBGZXRjaEJvZHkgbV9ib2R5OworICAgIE9wdGlvbmFs
PEZldGNoQm9keT4gbV9ib2R5OworICAgIFN0cmluZyBtX2NvbnRlbnRUeXBlOwogICAgIGJvb2wg
bV9pc0Rpc3R1cmJlZCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKFJFQURBQkxFX1NUUkVBTV9BUEkp
CiAgICAgUmVmUHRyPEZldGNoUmVzcG9uc2VTb3VyY2U+IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2U7
CiAjZW5kaWYKKyAgICBSZWY8RmV0Y2hIZWFkZXJzPiBtX2hlYWRlcnM7CiAKIHByaXZhdGU6CiAg
ICAgT3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCmluZGV4IDc2N2YzNjNmYzhiMTM1MjUyYTAz
YjMzYWNiNTI2NTNhOWNiZTUyYzQuLjgwZjhiMTE4MDExZmM3NDU1MDUzNGM0OWNlMWRkNzU4Mjhh
MmI2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5j
cHAKQEAgLTI2MSwyMyArMjYxLDIxIEBAIHZvaWQgRmV0Y2hSZXF1ZXN0OjpzZXRCb2R5KEpTQzo6
RXhlY1N0YXRlJiBleGVjU3RhdGUsIEpTQzo6SlNWYWx1ZSBib2R5LCBGZXRjaFJlCiAgICAgICAg
IH0KIAogICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAg
bV9ib2R5ID0gRmV0Y2hCb2R5OjpleHRyYWN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGV4
ZWNTdGF0ZSwgYm9keSk7Ci0gICAgICAgIGlmIChtX2JvZHkuaXNFbXB0eSgpKSB7CisgICAgICAg
IGV4dHJhY3RCb2R5KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGV4ZWNTdGF0ZSwgYm9keSk7
CisgICAgICAgIGlmIChpc0JvZHlOdWxsKCkpIHsKICAgICAgICAgICAgIGVjID0gVHlwZUVycm9y
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgaWYgKHJl
cXVlc3QgJiYgIXJlcXVlc3QtPm1fYm9keS5pc0VtcHR5KCkpIHsKKyAgICB9IGVsc2UgaWYgKHJl
cXVlc3QgJiYgIXJlcXVlc3QtPmlzQm9keU51bGwoKSkgewogICAgICAgICBpZiAoIW1ldGhvZENh
bkhhdmVCb2R5KG1faW50ZXJuYWxSZXF1ZXN0KSkgewogICAgICAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX2JvZHkgPSBG
ZXRjaEJvZHk6OmV4dHJhY3RGcm9tQm9keSgmcmVxdWVzdC0+bV9ib2R5KTsKKyAgICAgICAgbV9i
b2R5ID0gV1RGTW92ZShyZXF1ZXN0LT5tX2JvZHkpOwogICAgICAgICByZXF1ZXN0LT5zZXREaXN0
dXJiZWQoKTsKICAgICB9Ci0KLSAgICBtX2JvZHkudXBkYXRlQ29udGVudFR5cGUobV9oZWFkZXJz
KTsKKyAgICB1cGRhdGVDb250ZW50VHlwZSgpOwogfQogCiBTdHJpbmcgRmV0Y2hSZXF1ZXN0Ojpy
ZWZlcnJlcigpIGNvbnN0CkBAIC0zMDIsNyArMzAwLDkgQEAgUmVzb3VyY2VSZXF1ZXN0IEZldGNo
UmVxdWVzdDo6aW50ZXJuYWxSZXF1ZXN0KCkgY29uc3QKIAogICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0ID0gbV9pbnRlcm5hbFJlcXVlc3QucmVxdWVzdDsKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZHMobV9oZWFkZXJzLT5pbnRlcm5hbEhlYWRlcnMoKSk7Ci0gICAgcmVxdWVzdC5z
ZXRIVFRQQm9keShib2R5KCkuYm9keUZvckludGVybmFsUmVxdWVzdCgqc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSk7CisKKyAgICBpZiAoIWlzQm9keU51bGwoKSkKKyAgICAgICAgcmVxdWVzdC5z
ZXRIVFRQQm9keShib2R5KCkuYm9keUZvckludGVybmFsUmVxdWVzdCgqc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTMxNCw3ICszMTQsOSBA
QCBSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBGZXRjaFJlcXVlc3Q6OmNsb25lKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIEV4Y2VwdAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoY29udGV4dCwgbV9ib2R5
LmNsb25lKCksIEZldGNoSGVhZGVyczo6Y3JlYXRlKG1faGVhZGVycy5nZXQoKSksIEZldGNoUmVx
dWVzdDo6SW50ZXJuYWxSZXF1ZXN0KG1faW50ZXJuYWxSZXF1ZXN0KSkpOworICAgIGF1dG8gY2xv
bmUgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBOdWxsb3B0LCBGZXRjaEhl
YWRlcnM6OmNyZWF0ZShtX2hlYWRlcnMuZ2V0KCkpLCBGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVx
dWVzdChtX2ludGVybmFsUmVxdWVzdCkpKTsKKyAgICBjbG9uZS0+Y2xvbmVCb2R5KCp0aGlzKTsK
KyAgICByZXR1cm4gV1RGTW92ZShjbG9uZSk7CiB9CiAKIGNvbnN0IGNoYXIqIEZldGNoUmVxdWVz
dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlcXVlc3QuaAppbmRleCAzNmIyMjY2ODBhOTVkZDAxMTRjNjg2MDBlYmI2YWZh
YTI0YzE3OWRhLi5mOTIyYzEyMmUzZGFmZGVlNTY3NmIxMjdlZmVmYTJlMWZkMDYwZWE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTMyLDcgKzMy
LDYgQEAKICNpZiBFTkFCTEUoRkVUQ0hfQVBJKQogCiAjaW5jbHVkZSAiRmV0Y2hCb2R5T3duZXIu
aCIKLSNpbmNsdWRlICJGZXRjaEhlYWRlcnMuaCIKICNpbmNsdWRlICJGZXRjaE9wdGlvbnMuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKIApAQCAtNDUsNyArNDQsNyBAQCB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGZXRjaFJlcXVlc3QgZmluYWwgOiBwdWJsaWMg
RmV0Y2hCb2R5T3duZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXF1ZXN0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGZXRjaFJlcXVlc3QoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRj
aEhlYWRlcnM6Okd1YXJkOjpSZXF1ZXN0KSwgeyB9KSk7IH0KKyAgICBzdGF0aWMgUmVmPEZldGNo
UmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQsIE51bGxvcHQsIEZldGNoSGVhZGVy
czo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0pKTsgfQogCiAgICAg
RmV0Y2hIZWFkZXJzKiBpbml0aWFsaXplV2l0aChGZXRjaFJlcXVlc3QmLCBjb25zdCBEaWN0aW9u
YXJ5JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEZldGNoSGVhZGVycyogaW5pdGlhbGl6ZVdpdGgo
Y29uc3QgU3RyaW5nJiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTk1
LDcgKzk0LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgaW50ZXJuYWxSZXF1ZXN0UmVm
ZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5yZWZlcnJlcjsgfQogCiBw
cml2YXRlOgotICAgIEZldGNoUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmV0Y2hC
b2R5JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIEludGVybmFsUmVxdWVzdCYmKTsKKyAgICBGZXRj
aFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbmFsPEZldGNoQm9keT4mJiwg
UmVmPEZldGNoSGVhZGVycz4mJiwgSW50ZXJuYWxSZXF1ZXN0JiYpOwogCiAgICAgdm9pZCBpbml0
aWFsaXplT3B0aW9ucyhjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0x
MDMsMTQgKzEwMiwxMiBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIFJlZjxGZXRjaEhlYWRlcnM+IG1faGVhZGVyczsK
ICAgICBJbnRlcm5hbFJlcXVlc3QgbV9pbnRlcm5hbFJlcXVlc3Q7CiAgICAgbXV0YWJsZSBTdHJp
bmcgbV9yZXF1ZXN0VVJMOwogfTsKIAotaW5saW5lIEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoQm9keSYmIGJvZHksIFJlZjxG
ZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgSW50ZXJuYWxSZXF1ZXN0JiYgaW50ZXJuYWxSZXF1ZXN0
KQotICAgIDogRmV0Y2hCb2R5T3duZXIoY29udGV4dCwgV1RGTW92ZShib2R5KSkKLSAgICAsIG1f
aGVhZGVycyhXVEZNb3ZlKGhlYWRlcnMpKQoraW5saW5lIEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1
ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbmFsPEZldGNoQm9keT4m
JiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIEludGVybmFsUmVxdWVzdCYmIGlu
dGVybmFsUmVxdWVzdCkKKyAgICA6IEZldGNoQm9keU93bmVyKGNvbnRleHQsIFdURk1vdmUoYm9k
eSksIFdURk1vdmUoaGVhZGVycykpCiAgICAgLCBtX2ludGVybmFsUmVxdWVzdChXVEZNb3ZlKGlu
dGVybmFsUmVxdWVzdCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcAppbmRleCA0MjQ2MzMyNDcyNmJkYTc2MjA0MmM2MzAxNjMyYzA4ZWU4
MzMyMWNjLi4zMzNlZGUxMDhiZGI2NWM1MzM1MTRkOGMwOGViMDljOGM2YzZiZDM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKQEAgLTgzLDE0
ICs4MywxMyBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OnNldFN0YXR1cyhpbnQgc3RhdHVzLCBjb25z
dCBTdHJpbmcmIHN0YXR1c1RleHQsIEV4Y2VwdGlvbkNvZAogdm9pZCBGZXRjaFJlc3BvbnNlOjpp
bml0aWFsaXplV2l0aChKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBKU0M6OkpTVmFsdWUgYm9k
eSkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2JvZHkg
PSBGZXRjaEJvZHk6OmV4dHJhY3QoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZXhlY1N0YXRl
LCBib2R5KTsKLSAgICBtX2JvZHkudXBkYXRlQ29udGVudFR5cGUobV9oZWFkZXJzKTsKKyAgICBl
eHRyYWN0Qm9keSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBleGVjU3RhdGUsIGJvZHkpOwor
ICAgIHVwZGF0ZUNvbnRlbnRUeXBlKCk7CiB9CiAKLUZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9u
c2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hCb2R5JiYgYm9keSwgUmVm
PEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCi0g
ICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0LCBXVEZNb3ZlKGJvZHkpKQorRmV0Y2hSZXNwb25z
ZTo6RmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25h
bDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCisgICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0LCBXVEZN
b3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpKQogICAgICwgbV9yZXNwb25zZShXVEZNb3ZlKHJl
c3BvbnNlKSkKLSAgICAsIG1faGVhZGVycyhXVEZNb3ZlKGhlYWRlcnMpKQogewogfQogCkBAIC05
OCwxMiArOTcsMTUgQEAgUmVmPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmNsb25lRm9y
SlMoKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VS
VCghaXNEaXN0dXJiZWRPckxvY2tlZCgpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRj
aFJlc3BvbnNlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fYm9keS5jbG9uZSgpLCBGZXRj
aEhlYWRlcnM6OmNyZWF0ZShoZWFkZXJzKCkpLCBSZXNvdXJjZVJlc3BvbnNlKG1fcmVzcG9uc2Up
KSk7CisKKyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIE51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKGhlYWRl
cnMoKSksIFJlc291cmNlUmVzcG9uc2UobV9yZXNwb25zZSkpKTsKKyAgICBjbG9uZS0+Y2xvbmVC
b2R5KCp0aGlzKTsKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6
ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0LCBGZXRjaFByb21pc2UmJiBwcm9taXNlKQogewotICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9w
dFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0
ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKKyAgICBhdXRvIHJlc3Bv
bnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIEZldGNoQm9keTo6bG9h
ZGluZ0JvZHkoKSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1t
dXRhYmxlKSwgeyB9KSk7CiAKICAgICAvLyBTZXR0aW5nIHBlbmRpbmcgYWN0aXZpdHkgdW50aWwg
Qm9keUxvYWRlciBkaWRGYWlsIG9yIGRpZFN1Y2NlZWQgY2FsbGJhY2sgaXMgY2FsbGVkLgogICAg
IHJlc3BvbnNlLT5zZXRQZW5kaW5nQWN0aXZpdHkocmVzcG9uc2UucHRyKCkpOwpAQCAtMTIzLDEw
ICsxMjUsMTAgQEAgY29uc3QgU3RyaW5nJiBGZXRjaFJlc3BvbnNlOjp1cmwoKSBjb25zdAogdm9p
ZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpkaWRTdWNjZWVkKCkKIHsKICAgICBBU1NFUlQo
bV9yZXNwb25zZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7Ci0gICAgbV9yZXNwb25zZS5tX2JvZHku
bG9hZGluZ1N1Y2NlZWRlZCgpOworICAgIG1fcmVzcG9uc2UubV9ib2R5LT5sb2FkaW5nU3VjY2Vl
ZGVkKCk7CiAKICNpZiBFTkFCTEUoUkVBREFCTEVfU1RSRUFNX0FQSSkKLSAgICBpZiAobV9yZXNw
b25zZS5tX3JlYWRhYmxlU3RyZWFtU291cmNlICYmIG1fcmVzcG9uc2UuYm9keSgpLmlzRW1wdHko
KSkgeworICAgIGlmIChtX3Jlc3BvbnNlLm1fcmVhZGFibGVTdHJlYW1Tb3VyY2UgJiYgIW1fcmVz
cG9uc2UuYm9keSgpLmNvbnN1bWVyKCkuaGFzRGF0YSgpKSB7CiAgICAgICAgIC8vIFdlIG9ubHkg
Y2xvc2UgdGhlIHN0cmVhbSBpZiBGZXRjaEJvZHkgYWxyZWFkeSBlbnF1ZXVlZCBhbGwgZGF0YS4K
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBGZXRjaEJvZHkgd2lsbCBjbG9zZSB0aGUgc3RyZWFtIGFm
dGVyIGVucXVldWluZyB0aGUgZGF0YS4KICAgICAgICAgbV9yZXNwb25zZS5tX3JlYWRhYmxlU3Ry
ZWFtU291cmNlLT5jbG9zZSgpOwpAQCAtMTc0LDcgKzE3Niw2IEBAIHZvaWQgRmV0Y2hSZXNwb25z
ZTo6Qm9keUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc291CiAKICAgICBtX3Jlc3BvbnNlLm1fcmVzcG9uc2UgPSByZXNvdXJjZVJlc3BvbnNlOwog
ICAgIG1fcmVzcG9uc2UubV9oZWFkZXJzLT5maWx0ZXJBbmRGaWxsKHJlc291cmNlUmVzcG9uc2Uu
aHR0cEhlYWRlckZpZWxkcygpLCBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXNwb25zZSk7Ci0gICAg
bV9yZXNwb25zZS5tX2JvZHkuc2V0Q29udGVudFR5cGUobV9yZXNwb25zZS5tX2hlYWRlcnMtPmZh
c3RHZXQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSk7CiAKICAgICBzdGQ6OmV4Y2hhbmdl
KG1fcHJvbWlzZSwgTnVsbG9wdCktPnJlc29sdmUobV9yZXNwb25zZSk7CiB9CkBAIC0xOTQsNyAr
MTk1LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKIAogYm9vbCBGZXRjaFJlc3BvbnNlOjpCb2R5
TG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRj
aFJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZl
dGNoTG9hZGVyPigqdGhpcywgJm1fcmVzcG9uc2UubV9ib2R5LmNvbnN1bWVyKCkpOworICAgIG1f
bG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGZXRjaExvYWRlcj4oKnRoaXMsICZtX3Jlc3BvbnNl
Lm1fYm9keS0+Y29uc3VtZXIoKSk7CiAgICAgbV9sb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVl
c3QpOwogICAgIHJldHVybiBtX2xvYWRlci0+aXNTdGFydGVkKCk7CiB9CkBAIC0yNzgsNyArMjc5
LDcgQEAgUmVhZGFibGVTdHJlYW1Tb3VyY2UqIEZldGNoUmVzcG9uc2U6OmNyZWF0ZVJlYWRhYmxl
U3RyZWFtU291cmNlKCkKICAgICBBU1NFUlQoIW1fcmVhZGFibGVTdHJlYW1Tb3VyY2UpOwogICAg
IEFTU0VSVCghbV9pc0Rpc3R1cmJlZCk7CiAKLSAgICBpZiAoYm9keSgpLmlzRW1wdHkoKSAmJiAh
aXNMb2FkaW5nKCkpCisgICAgaWYgKGlzQm9keU51bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJl
c3BvbnNlU291cmNlKCp0aGlzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXNwb25zZS5oCmluZGV4IGFkODg1MmM0NzhiZDA2ZTFhMDBiNjk3ZjhkNmJiNTVkMjdhZDg3
YTIuLjU5NmJiM2U3MjA5OGJkNDE1MzIyMGE4YmY4M2E2NjU3MDA1OWY5NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCkBAIC0zMSw3ICszMSw2IEBA
CiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkZldGNoQm9keU93bmVyLmgiCi0j
aW5jbHVkZSAiRmV0Y2hIZWFkZXJzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheXMuaD4KIApAQCAtNTMsNyArNTIsNyBAQCBjbGFz
cyBGZXRjaFJlc3BvbnNlIGZpbmFsIDogcHVibGljIEZldGNoQm9keU93bmVyIHsKIHB1YmxpYzoK
ICAgICB1c2luZyBUeXBlID0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTsKIAotICAgIHN0YXRpYyBS
ZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZldGNo
SGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlc3BvbnNlKSwgUmVzb3VyY2VS
ZXNwb25zZSgpKSk7IH0KKyAgICBzdGF0aWMgUmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNo
UmVzcG9uc2UoY29udGV4dCwgTnVsbG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFk
ZXJzOjpHdWFyZDo6UmVzcG9uc2UpLCBSZXNvdXJjZVJlc3BvbnNlKCkpKTsgfQogICAgIHN0YXRp
YyBSZWY8RmV0Y2hSZXNwb25zZT4gZXJyb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAg
IHN0YXRpYyBSZWZQdHI8RmV0Y2hSZXNwb25zZT4gcmVkaXJlY3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIGNvbnN0IFN0cmluZyYsIGludCwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC04OCw3ICs4
Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuICEhbV9i
b2R5TG9hZGVyOyB9CiAKIHByaXZhdGU6Ci0gICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgRmV0Y2hCb2R5JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIFJlc291cmNlUmVz
cG9uc2UmJik7CisgICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3B0
aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmLCBSZXNvdXJjZVJlc3BvbnNl
JiYpOwogCiAgICAgc3RhdGljIHZvaWQgc3RhcnRGZXRjaGluZyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hQcm9taXNlJiYpOwogCkBAIC0xMjEsNyAr
MTIwLDYgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3Bv
bnNlOwotICAgIFJlZjxGZXRjaEhlYWRlcnM+IG1faGVhZGVyczsKICAgICBPcHRpb25hbDxCb2R5
TG9hZGVyPiBtX2JvZHlMb2FkZXI7CiAgICAgbXV0YWJsZSBTdHJpbmcgbV9yZXNwb25zZVVSTDsK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>