<?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>109502</bug_id>
          
          <creation_ts>2013-02-11 15:28:05 -0800</creation_ts>
          <short_desc>Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG</short_desc>
          <delta_ts>2013-02-11 16:55:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107522</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830212</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 15:28:05 -0800</bug_when>
    <thetext>Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830216</commentid>
    <comment_count>1</comment_count>
      <attachid>187698</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 15:28:51 -0800</bug_when>
    <thetext>Created attachment 187698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830232</commentid>
    <comment_count>2</comment_count>
      <attachid>187698</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 15:36:23 -0800</bug_when>
    <thetext>Comment on attachment 187698
Patch

Rejecting attachment 187698 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 187698, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
urce/WebCore/html/parser/HTMLTokenizer.h
Hunk #2 FAILED at 120.
Hunk #3 FAILED at 207.
Hunk #4 FAILED at 245.
3 out of 4 hunks FAILED -- saving rejects to file Source/WebCore/html/parser/HTMLTokenizer.h.rej
patching file Source/WebCore/html/parser/HTMLTreeBuilder.cpp
patching file Source/WebCore/html/parser/TextViewSourceParser.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Tony Gentilcore&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16485608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830239</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 15:39:51 -0800</bug_when>
    <thetext>depends on bug 109499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830339</commentid>
    <comment_count>4</comment_count>
      <attachid>187698</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 16:55:23 -0800</bug_when>
    <thetext>Comment on attachment 187698
Patch

Clearing flags on attachment: 187698

Committed r142552: &lt;http://trac.webkit.org/changeset/142552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830340</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 16:55:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187698</attachid>
            <date>2013-02-11 15:28:51 -0800</date>
            <delta_ts>2013-02-11 16:55:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109502-20130211152521.patch</filename>
            <type>text/plain</type>
            <size>42584</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRjMjFiYzJkYWExY2Zi
MDJmY2U5YzZjOGZhZGIwM2JmNmRhZDZkZi4uZTljNjM0ODc5OWMxZjJjNWU1YThhMTA2MmZjM2Mx
MGYyOTFiNzI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBGb2xkIEhUTUxUb2tlbml6ZXJT
dGF0ZSBiYWNrIGludG8gSFRNTFRva2VuaXplciBub3cgdGhhdCBNYXJrdXBUb2tlbml6ZXJCYXNl
IGlzIFJGRworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SnVzdCBhIHNlYXJjaCByZXBsYWNlIG9mIEhUTUxUb2tlbml6ZXJTdGF0ZSB3aXRoIEhUTUxUb2tl
bml6ZXIgYW5kIG1vdmluZyB0aGUgZW51bS4KKyAgICAgICAgVGhpcyByZXN0b3JlcyB1cyB0byB0
aGUgcGVhY2VmdWxsIHdvcmxkIHByZS1ORVdfWE1MLgorCisgICAgICAgICogaHRtbC9wYXJzZXIv
QmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhU
TUxQYXJzZXI6OmZvcmNlUGxhaW50ZXh0Rm9yVGV4dERvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpzaW11bGF0ZVRyZWVCdWlsZGVyKToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9rZW5pemVyU3RhdGVGb3JDb250ZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OmZvcmNlUGxhaW50ZXh0Rm9yVGV4dERvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0VuZFRh
Z0J1ZmZlcmluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRva2VuaXplcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6
Zmx1c2hFbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRl
Rm9yKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgIChI
VE1MVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzaG91bGRTa2lwTnVsbENoYXJhY3Rl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6ZW1pdEVuZE9mRmlsZSk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NHZW5lcmljUkNEQVRBU3RhcnRUYWcpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzR2VuZXJpY1Jhd1RleHRTdGFy
dFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTY3JpcHRT
dGFydFRhZyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFZpZXdTb3VyY2VQYXJzZXI6OlRleHRWaWV3U291cmNl
UGFyc2VyKToKKworMjAxMy0wMi0xMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisK
ICAgICAgICAgRm9sZCBNYXJrdXBUb2tlbml6ZXJCYXNlIGludG8gSFRNTFRva2VuaXplciBub3cg
dGhhdCBpdCBpcyB0aGUgb25seSBzdWJjbGFzcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDk5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAppbmRleCA5YmExZDA1MjQ3YzgyNmFj
OGFjOWZhZTQ3YTk0ZjBkNDRhYzA0MzA3Li44Njc1ZGIwMGExMzMzYmQ3MzU4MDViOGUwMzc3MmVm
ZTE2OTA0ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3Jv
dW5kSFRNTFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6Zm9yY2VQbGFpbnRleHRGb3JUZXh0RG9jdW1lbnQoKQogICAgIC8vIFRoaXMgaXMg
b25seSB1c2VkIGJ5IHRoZSBUZXh0RG9jdW1lbnRQYXJzZXIgKGEgc3ViY2xhc3Mgb2YgSFRNTERv
Y3VtZW50UGFyc2VyKQogICAgIC8vIHRvIGZvcmNlIHVzIGludG8gdGhlIFBMQUlOVEVYVCBzdGF0
ZSB3L28gdXNpbmcgYSA8cGxhaW50ZXh0PiB0YWcuCiAgICAgLy8gVGhlIFRleHREb2N1bWVudFBh
cnNlciB1c2VzIGEgPHByZT4gdGFnIGZvciBoaXN0b3JpY2FsL2NvbXBhdGliaWxpdHkgcmVhc29u
cy4KLSAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplclN0YXRlOjpQTEFJTlRF
WFRTdGF0ZSk7CisgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlO
VEVYVFN0YXRlKTsKIH0KIAogdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6bWFya0VuZE9mRmls
ZSgpCkBAIC0xMjEsMTggKzEyMSwxOCBAQCBib29sIEJhY2tncm91bmRIVE1MUGFyc2VyOjpzaW11
bGF0ZVRyZWVCdWlsZGVyKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBjb3B5IG9mIFRva2VuaXplcjo6dXBkYXRlU3RhdGVG
b3Igd2hpY2ggdXNlcyB0aHJlYWRTYWZlTWF0Y2hlcy4KICAgICAgICAgaWYgKHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRp
dGxlVGFnKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
U3RhdGU6OlJDREFUQVN0YXRlKTsKKyAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShI
VE1MVG9rZW5pemVyOjpSQ0RBVEFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBwbGFpbnRleHRUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNl
dFN0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6UExBSU5URVhUU3RhdGUpOworICAgICAgICAgICAg
bV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKICAg
ICAgICAgZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCi0gICAg
ICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplclN0YXRlOjpTY3JpcHRE
YXRhU3RhdGUpOworICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6
ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBzdHlsZVRhZykKICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1l
LCBpZnJhbWVUYWcpCiAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgeG1w
VGFnKQogICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2VtYmVkVGFn
KSAmJiBtX29wdGlvbnMucGx1Z2luc0VuYWJsZWQpCiAgICAgICAgICAgICB8fCB0aHJlYWRTYWZl
TWF0Y2godGFnTmFtZSwgbm9mcmFtZXNUYWcpCiAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG5vc2NyaXB0VGFnKSAmJiBtX29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCi0g
ICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplclN0YXRlOjpSQVdU
RVhUU3RhdGUpOworICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6
ZXI6OlJBV1RFWFRTdGF0ZSk7CiAgICAgfQogCiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6RW5kVGFnKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBhOWMwOTI3NjdjY2ViZjM3Y2U1MTVlMTZiNjM1
NTk4YzJiNzY0YjRkLi43MmM3ZmI3Y2YyM2RjODQwOGY2ZDJlYTA0YTU0ZGM3OTM0ODBiNzcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5j
cHAKQEAgLTUyLDI3ICs1MiwyNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBU
aGlzIGlzIGEgZGlyZWN0IHRyYW5zY3JpcHRpb24gb2Ygc3RlcCA0IGZyb206CiAvLyBodHRwOi8v
d3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUt
ZW5kLmh0bWwjZnJhZ21lbnQtY2FzZQotc3RhdGljIEhUTUxUb2tlbml6ZXJTdGF0ZTo6U3RhdGUg
dG9rZW5pemVyU3RhdGVGb3JDb250ZXh0RWxlbWVudChFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Ym9vbCByZXBvcnRFcnJvcnMsIGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25zKQorc3Rh
dGljIEhUTUxUb2tlbml6ZXI6OlN0YXRlIHRva2VuaXplclN0YXRlRm9yQ29udGV4dEVsZW1lbnQo
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzLCBjb25zdCBIVE1MUGFy
c2VyT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIWNvbnRleHRFbGVtZW50KQotICAgICAg
ICByZXR1cm4gSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGU7CisgICAgICAgIHJldHVybiBI
VE1MVG9rZW5pemVyOjpEYXRhU3RhdGU7CiAKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250
ZXh0VGFnID0gY29udGV4dEVsZW1lbnQtPnRhZ1FOYW1lKCk7CiAKICAgICBpZiAoY29udGV4dFRh
Zy5tYXRjaGVzKHRpdGxlVGFnKSB8fCBjb250ZXh0VGFnLm1hdGNoZXModGV4dGFyZWFUYWcpKQot
ICAgICAgICByZXR1cm4gSFRNTFRva2VuaXplclN0YXRlOjpSQ0RBVEFTdGF0ZTsKKyAgICAgICAg
cmV0dXJuIEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlOwogICAgIGlmIChjb250ZXh0VGFnLm1h
dGNoZXMoc3R5bGVUYWcpCiAgICAgICAgIHx8IGNvbnRleHRUYWcubWF0Y2hlcyh4bXBUYWcpCiAg
ICAgICAgIHx8IGNvbnRleHRUYWcubWF0Y2hlcyhpZnJhbWVUYWcpCiAgICAgICAgIHx8IChjb250
ZXh0VGFnLm1hdGNoZXMobm9lbWJlZFRhZykgJiYgb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkKICAg
ICAgICAgfHwgKGNvbnRleHRUYWcubWF0Y2hlcyhub3NjcmlwdFRhZykgJiYgb3B0aW9ucy5zY3Jp
cHRFbmFibGVkKQogICAgICAgICB8fCBjb250ZXh0VGFnLm1hdGNoZXMobm9mcmFtZXNUYWcpKQot
ICAgICAgICByZXR1cm4gcmVwb3J0RXJyb3JzID8gSFRNTFRva2VuaXplclN0YXRlOjpSQVdURVhU
U3RhdGUgOiBIVE1MVG9rZW5pemVyU3RhdGU6OlBMQUlOVEVYVFN0YXRlOworICAgICAgICByZXR1
cm4gcmVwb3J0RXJyb3JzID8gSFRNTFRva2VuaXplcjo6UkFXVEVYVFN0YXRlIDogSFRNTFRva2Vu
aXplcjo6UExBSU5URVhUU3RhdGU7CiAgICAgaWYgKGNvbnRleHRUYWcubWF0Y2hlcyhzY3JpcHRU
YWcpKQotICAgICAgICByZXR1cm4gcmVwb3J0RXJyb3JzID8gSFRNTFRva2VuaXplclN0YXRlOjpT
Y3JpcHREYXRhU3RhdGUgOiBIVE1MVG9rZW5pemVyU3RhdGU6OlBMQUlOVEVYVFN0YXRlOworICAg
ICAgICByZXR1cm4gcmVwb3J0RXJyb3JzID8gSFRNTFRva2VuaXplcjo6U2NyaXB0RGF0YVN0YXRl
IDogSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGU7CiAgICAgaWYgKGNvbnRleHRUYWcubWF0
Y2hlcyhwbGFpbnRleHRUYWcpKQotICAgICAgICByZXR1cm4gSFRNTFRva2VuaXplclN0YXRlOjpQ
TEFJTlRFWFRTdGF0ZTsKLSAgICByZXR1cm4gSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGU7
CisgICAgICAgIHJldHVybiBIVE1MVG9rZW5pemVyOjpQTEFJTlRFWFRTdGF0ZTsKKyAgICByZXR1
cm4gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlOwogfQogCiBIVE1MRG9jdW1lbnRQYXJzZXI6OkhU
TUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9y
cykKQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6Zm9yY2VQbGFp
bnRleHRGb3JUZXh0RG9jdW1lbnQoKQogICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQo
KS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmZvcmNlUGxhaW50ZXh0Rm9y
VGV4dERvY3VtZW50LCBtX2JhY2tncm91bmRQYXJzZXIpKTsKICAgICB9IGVsc2UKICNlbmRpZgot
ICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplclN0YXRlOjpQTEFJTlRF
WFRTdGF0ZSk7CisgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQ
TEFJTlRFWFRTdGF0ZSk7CiB9CiAKIERvY3VtZW50KiBIVE1MRG9jdW1lbnRQYXJzZXI6OmNvbnRl
eHRGb3JQYXJzaW5nU2Vzc2lvbigpCkBAIC00MzMsNyArNDMzLDcgQEAgdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAgICAgICAgIG1f
cGFyc2VyU2NoZWR1bGVyLT5zY2hlZHVsZUZvclJlc3VtZSgpOwogCiAgICAgaWYgKGlzV2FpdGlu
Z0ZvclNjcmlwdHMoKSkgewotICAgICAgICBBU1NFUlQobV90b2tlbml6ZXItPnN0YXRlKCkgPT0g
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICBBU1NFUlQobV90b2tlbml6
ZXItPnN0YXRlKCkgPT0gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgaWYgKCFt
X3ByZWxvYWRTY2FubmVyKSB7CiAgICAgICAgICAgICBtX3ByZWxvYWRTY2FubmVyID0gYWRvcHRQ
dHIobmV3IEhUTUxQcmVsb2FkU2Nhbm5lcihtX29wdGlvbnMsIGRvY3VtZW50KCktPnVybCgpKSk7
CiAgICAgICAgICAgICBtX3ByZWxvYWRTY2FubmVyLT5hcHBlbmRUb0VuZChtX2lucHV0LmN1cnJl
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5p
emVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmlu
ZGV4IGU4NDY5ZGYwNWNmZTczOTU0YjhhYjcyZTI5YzgwY2M5ZWMzZmFhMGEuLjEwOTM4OWRmY2Fm
YzY5OGI4MGY0YzdjNzJiYzJmYWM0YmU1MzQ0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC04MiwyNyArODIsMjcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHZlY3RvckVxdWFsc1N0cmluZyhjb25zdCBWZWN0b3I8TENoYXIsIDMyPiYgdmVjdG9y
LCBjb25zdCBTdHIKICAgICByZXR1cm4gZXF1YWwoc3RyaW5nLmltcGwoKSwgdmVjdG9yLmRhdGEo
KSwgdmVjdG9yLnNpemUoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0VuZFRhZ0J1ZmZl
cmluZ1N0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6U3RhdGUgc3RhdGUpCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNFbmRUYWdCdWZmZXJpbmdTdGF0ZShIVE1MVG9rZW5pemVyOjpTdGF0ZSBzdGF0ZSkK
IHsKICAgICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2FzZSBIVE1MVG9rZW5pemVyU3RhdGU6OlJD
REFUQUVuZFRhZ09wZW5TdGF0ZToKLSAgICBjYXNlIEhUTUxUb2tlbml6ZXJTdGF0ZTo6UkNEQVRB
RW5kVGFnTmFtZVN0YXRlOgotICAgIGNhc2UgSFRNTFRva2VuaXplclN0YXRlOjpSQVdURVhURW5k
VGFnT3BlblN0YXRlOgotICAgIGNhc2UgSFRNTFRva2VuaXplclN0YXRlOjpSQVdURVhURW5kVGFn
TmFtZVN0YXRlOgotICAgIGNhc2UgSFRNTFRva2VuaXplclN0YXRlOjpTY3JpcHREYXRhRW5kVGFn
T3BlblN0YXRlOgotICAgIGNhc2UgSFRNTFRva2VuaXplclN0YXRlOjpTY3JpcHREYXRhRW5kVGFn
TmFtZVN0YXRlOgotICAgIGNhc2UgSFRNTFRva2VuaXplclN0YXRlOjpTY3JpcHREYXRhRXNjYXBl
ZEVuZFRhZ09wZW5TdGF0ZToKLSAgICBjYXNlIEhUTUxUb2tlbml6ZXJTdGF0ZTo6U2NyaXB0RGF0
YUVzY2FwZWRFbmRUYWdOYW1lU3RhdGU6CisgICAgY2FzZSBIVE1MVG9rZW5pemVyOjpSQ0RBVEFF
bmRUYWdPcGVuU3RhdGU6CisgICAgY2FzZSBIVE1MVG9rZW5pemVyOjpSQ0RBVEFFbmRUYWdOYW1l
U3RhdGU6CisgICAgY2FzZSBIVE1MVG9rZW5pemVyOjpSQVdURVhURW5kVGFnT3BlblN0YXRlOgor
ICAgIGNhc2UgSFRNTFRva2VuaXplcjo6UkFXVEVYVEVuZFRhZ05hbWVTdGF0ZToKKyAgICBjYXNl
IEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGU6CisgICAgY2FzZSBIVE1M
VG9rZW5pemVyOjpTY3JpcHREYXRhRW5kVGFnTmFtZVN0YXRlOgorICAgIGNhc2UgSFRNTFRva2Vu
aXplcjo6U2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuU3RhdGU6CisgICAgY2FzZSBIVE1MVG9r
ZW5pemVyOjpTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWVTdGF0ZToKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIAot
I2RlZmluZSBIVE1MX0JFR0lOX1NUQVRFKHN0YXRlTmFtZSkgQkVHSU5fU1RBVEUoSFRNTFRva2Vu
aXplclN0YXRlLCBzdGF0ZU5hbWUpCi0jZGVmaW5lIEhUTUxfUkVDT05TVU1FX0lOKHN0YXRlTmFt
ZSkgUkVDT05TVU1FX0lOKEhUTUxUb2tlbml6ZXJTdGF0ZSwgc3RhdGVOYW1lKQotI2RlZmluZSBI
VE1MX0FEVkFOQ0VfVE8oc3RhdGVOYW1lKSBBRFZBTkNFX1RPKEhUTUxUb2tlbml6ZXJTdGF0ZSwg
c3RhdGVOYW1lKQotI2RlZmluZSBIVE1MX1NXSVRDSF9UTyhzdGF0ZU5hbWUpIFNXSVRDSF9UTyhI
VE1MVG9rZW5pemVyU3RhdGUsIHN0YXRlTmFtZSkKKyNkZWZpbmUgSFRNTF9CRUdJTl9TVEFURShz
dGF0ZU5hbWUpIEJFR0lOX1NUQVRFKEhUTUxUb2tlbml6ZXIsIHN0YXRlTmFtZSkKKyNkZWZpbmUg
SFRNTF9SRUNPTlNVTUVfSU4oc3RhdGVOYW1lKSBSRUNPTlNVTUVfSU4oSFRNTFRva2VuaXplciwg
c3RhdGVOYW1lKQorI2RlZmluZSBIVE1MX0FEVkFOQ0VfVE8oc3RhdGVOYW1lKSBBRFZBTkNFX1RP
KEhUTUxUb2tlbml6ZXIsIHN0YXRlTmFtZSkKKyNkZWZpbmUgSFRNTF9TV0lUQ0hfVE8oc3RhdGVO
YW1lKSBTV0lUQ0hfVE8oSFRNTFRva2VuaXplciwgc3RhdGVOYW1lKQogCiBIVE1MVG9rZW5pemVy
OjpIVE1MVG9rZW5pemVyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25zKQogICAgIDog
bV9pbnB1dFN0cmVhbVByZXByb2Nlc3Nvcih0aGlzKQpAQCAtMTE3LDcgKzExNyw3IEBAIEhUTUxU
b2tlbml6ZXI6On5IVE1MVG9rZW5pemVyKCkKIAogdm9pZCBIVE1MVG9rZW5pemVyOjpyZXNldCgp
CiB7Ci0gICAgbV9zdGF0ZSA9IEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlOworICAgIG1f
c3RhdGUgPSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGU7CiAgICAgbV90b2tlbiA9IDA7CiAgICAg
bV9mb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQWxs
b3dDREFUQSA9IGZhbHNlOwpAQCAtMTkxLDcgKzE5MSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
Zmx1c2hCdWZmZXJlZEVuZFRhZyhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKIAogI2RlZmluZSBG
TFVTSF9BTkRfQURWQU5DRV9UTyhzdGF0ZU5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBtX3N0YXRlID0gSFRNTFRv
a2VuaXplclN0YXRlOjpzdGF0ZU5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICBtX3N0YXRlID0gSFRNTFRva2VuaXplcjo6c3RhdGVOYW1lOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgaWYgKGZsdXNoQnVmZmVyZWRFbmRUYWcoc291cmNlKSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVl
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKQEAgLTIwMSw3ICsyMDEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6
OmZsdXNoQnVmZmVyZWRFbmRUYWcoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgICAgIGdv
dG8gc3RhdGVOYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLWJvb2wgSFRNTFRva2VuaXplcjo6Zmx1
c2hFbWl0QW5kUmVzdW1lSW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbml6ZXJT
dGF0ZTo6U3RhdGUgc3RhdGUpCitib29sIEhUTUxUb2tlbml6ZXI6OmZsdXNoRW1pdEFuZFJlc3Vt
ZUluKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBzdGF0ZSkK
IHsKICAgICBtX3N0YXRlID0gc3RhdGU7CiAgICAgZmx1c2hCdWZmZXJlZEVuZFRhZyhzb3VyY2Up
OwpAQCAtMjIyLDcgKzIyMiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBtX2J1ZmZlcmVk
RW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAgICBtX2FwcHJvcHJpYXRlRW5kVGFnTmFtZS5jbGVh
cigpOwogICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5jbGVhcigpOwotICAgICAgICBpZiAobV9z
dGF0ZSA9PSBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSkgeworICAgICAgICBpZiAobV9z
dGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpIHsKICAgICAgICAgICAgIC8vIFdlJ3Jl
IGJhY2sgaW4gdGhlIGRhdGEgc3RhdGUsIHNvIHdlIG11c3QgYmUgZG9uZSB3aXRoIHRoZSB0YWcu
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMzY4LDkgKzM2OCw5IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAg
ICBIVE1MX0FEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAgICAgICAgZWxz
ZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAg
ICBlbHNlIGlmIChtX29wdGlvbnMudXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgJiYgY2MgPT0gJzwn
KQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25z
dW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUo
dG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhUYWdOYW1lU3Rh
dGUpOwpAQCAtNDM2LDcgKzQzNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVu
ZFRhZygpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChz
dGF0aWNfY2FzdDxMQ2hhcj4oY2MpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsdXNo
RW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4oc291cmNlLCBI
VE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOwpAQCAtNTAxLDcgKzUwMSw3IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAg
ICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oY2MpKTsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsdXNoRW1pdEFuZFJlc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcignPCcpOwpAQCAtNTcwLDcgKzU3MCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNBcHBy
b3ByaWF0ZUVuZFRhZygpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVy
LmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oY2MpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZsdXNoRW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOwpAQCAtNzE2LDcg
KzcxNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
PicpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hh
cj4oY2MpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsdXNoRW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpE
YXRhU3RhdGUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGJ1ZmZlckNoYXJhY3RlcignPCcpOwpAQCAtODM5LDkgKzgzOSw5IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0Vf
VE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4n
KQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChtX29w
dGlvbnMudXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgJiYgY2MgPT0gJzwnKQotICAgICAgICAgICAg
cmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBI
VE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChpc0FTQ0lJVXBwZXIo
Y2MpKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKICAgICAgICAg
ICAgIG1fdG9rZW4tPmJlZ2luQXR0cmlidXRlTmFtZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJz
Q29uc3VtZWQoKSk7CkBAIC04NzMsMTAgKzg3MywxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIEhUTUxfQURWQU5DRV9UTyhCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJp
YnV0ZU5hbWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwotICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1M
VG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKG1fb3B0aW9ucy51c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcyAmJiBjYyA9PSAnPCcpIHsKICAgICAgICAgICAgIG1fdG9rZW4t
PmVuZEF0dHJpYnV0ZU5hbWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwot
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYg
KGlzQVNDSUlVcHBlcihjYykpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmli
dXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEF0
dHJpYnV0ZU5hbWVTdGF0ZSk7CkBAIC05MDEsOSArOTAxLDkgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgIGVsc2UgaWYgKGNjID09ICc9JykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhC
ZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQot
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJT
dGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291
cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChtX29wdGlv
bnMudXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgJiYgY2MgPT0gJzwnKQotICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0
YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1M
VG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChpc0FTQ0lJVXBwZXIoY2Mp
KSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKICAgICAgICAgICAg
IG1fdG9rZW4tPmJlZ2luQXR0cmlidXRlTmFtZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29u
c3VtZWQoKSk7CkBAIC05MzcsNyArOTM3LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICBIVE1MX0FEVkFOQ0VfVE8oQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWRTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7Ci0g
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0
YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
a0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKQEAgLTk5Niw3ICs5OTYsNyBAQCBib29s
IEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRv
a2VuJiB0b2tlbikKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDaGFyYWN0ZXJSZWZlcmVu
Y2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+Jykg
ewogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9m
Q2hhcmFjdGVyc0NvbnN1bWVkKCkpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAg
IHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJpYnV0ZVZhbHVlKHNv
dXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKQEAgLTEwNDQsOSArMTA0NCw5IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAg
ICBIVE1MX0FEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAgICAgICAgZWxz
ZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAg
ICBlbHNlIGlmIChtX29wdGlvbnMudXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgJiYgY2MgPT0gJzwn
KQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25z
dW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwpAQCAtMTA2MCw3ICsxMDYw
LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShTZWxmQ2xvc2luZ1N0
YXJ0VGFnU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgbV90
b2tlbi0+c2V0U2VsZkNsb3NpbmcoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsK
ICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAg
ICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUp
OwpAQCAtMTA3OSw5ICsxMDc5LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBIVE1MX0JFR0lO
X1NUQVRFKENvbnRpbnVlQm9ndXNDb21tZW50U3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc+
JykKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5p
emVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRl
KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQo
Y2MpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKENvbnRpbnVlQm9ndXNDb21tZW50U3Rh
dGUpOwpAQCAtMTEyNywxMCArMTEyNywxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAg
IEhUTUxfQURWQU5DRV9UTyhDb21tZW50U3RhcnREYXNoU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0
ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwor
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKENvbW1lbnRT
dGF0ZSk7CkBAIC0xMTQzLDEwICsxMTQzLDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKENvbW1lbnRFbmRTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNj
ID09ICc+JykgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwotICAgICAgICAgICAgcmV0dXJu
IGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
KyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVy
OjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIp
IHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6
RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVu
ZFRvQ29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNj
KTsKQEAgLTExNjAsNyArMTE2MCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgSFRN
TF9BRFZBTkNFX1RPKENvbW1lbnRFbmREYXNoU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7Ci0gICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRl
OjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgSFRNTF9BRFZB
TkNFX1RPKENvbW1lbnRTdGF0ZSk7CkBAIC0xMTczLDcgKzExNzMsNyBAQCBib29sIEhUTUxUb2tl
bml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21tZW50RW5kU3RhdGUpOwogICAgICAg
ICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRS
ZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CkBAIC0xMTg0LDcgKzExODQsNyBA
QCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTFRva2VuJiB0b2tlbikKIAogICAgIEhUTUxfQkVHSU5fU1RBVEUoQ29tbWVudEVuZFN0YXRl
KSB7CiAgICAgICAgIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
c3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0
ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICchJykgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKENvbW1lbnRFbmRCYW5nU3RhdGUpOwpA
QCAtMTE5NCw3ICsxMTk0LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FE
VkFOQ0VfVE8oQ29tbWVudEVuZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsK
QEAgLTEyMTIsMTAgKzEyMTIsMTAgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rv
a2VuLT5hcHBlbmRUb0NvbW1lbnQoJyEnKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhD
b21tZW50RW5kRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpCi0gICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRl
OjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2Us
IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5k
VG9Db21tZW50KCctJyk7CkBAIC0xMjMzLDcgKzEyMzMsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6
Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luRE9DVFlQ
RSgpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVDT05TVU1FX0lOKEJlZm9yZURPQ1RZ
UEVOYW1lU3RhdGUpOwpAQCAtMTI1MSwxMiArMTI1MSwxMiBAQCBib29sIEhUTUxUb2tlbml6ZXI6
Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luRE9DVFlQ
RSgpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRv
a2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxl
TWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5iZWdpbkRPQ1RZUEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7
Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1
bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoY2MpOwogICAgICAgICAgICAgSFRN
TF9BRFZBTkNFX1RPKERPQ1RZUEVOYW1lU3RhdGUpOwpAQCAtMTI2OCwxNCArMTI2OCwxNCBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVzcGFjZShjYykpCiAg
ICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0ZXJET0NUWVBFTmFtZVN0YXRlKTsKICAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwog
ICAgICAgICBlbHNlIGlmIChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5hcHBlbmRUb05hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5D
RV9UTyhET0NUWVBFTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1
bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1l
KGNjKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhET0NUWVBFTmFtZVN0YXRlKTsKQEAg
LTEyODcsMTEgKzEyODcsMTEgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChpc1Rva2Vu
aXplcldoaXRlc3BhY2UoY2MpKQogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEFmdGVyRE9D
VFlQRU5hbWVTdGF0ZSk7CiAgICAgICAgIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUp
OworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIp
IHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZv
cmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJj
ZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVt
aXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHVi
bGljU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJwdWJsaWMiKSkpOwogICAgICAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIHN5c3RlbVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic3lzdGVt
IikpKTsKQEAgLTEzMzEsMTEgKzEzMzEsMTEgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAg
ICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVp
cmtzKCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRS
ZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwpAQCAtMTM1NiwxMSArMTM1NiwxMSBAQCBib29sIEhUTUxUb2tlbml6
ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3Rh
dGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1h
cmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+
c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAg
IG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CkBAIC0xMzc1LDExICsxMzc1LDExIEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBh
cnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRl
OjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2Us
IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
bV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVj
b25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
UHVibGljSWRlbnRpZmllcihjYyk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oRE9DVFlQ
RVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0ZSk7CkBAIC0xMzkzLDExICsxMzkzLDEx
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtz
KCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAg
ICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7
CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4t
PmFwcGVuZFRvUHVibGljSWRlbnRpZmllcihjYyk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0Vf
VE8oRE9DVFlQRVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWRTdGF0ZSk7CkBAIC0xNDA5LDcg
KzE0MDksNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVz
cGFjZShjYykpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQmV0d2VlbkRPQ1RZUEVQdWJs
aWNBbmRTeXN0ZW1JZGVudGlmaWVyc1N0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4n
KQotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9
PSAnIicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CkBAIC0xNDIxLDcgKzE0MjEsNyBA
QCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
bV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKQEAgLTE0MzQsNyArMTQzNCw3IEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICBpZiAoaXNUb2tlbml6ZXJXaGl0ZXNwYWNlKGNjKSkKICAgICAgICAg
ICAgIEhUTUxfQURWQU5DRV9UTyhCZXR3ZWVuRE9DVFlQRVB1YmxpY0FuZFN5c3RlbUlkZW50aWZp
ZXJzU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUp
OworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICciJykgewogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAgICAgICAg
ICAgIEhUTUxfQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFN0
YXRlKTsKQEAgLTE0NDQsNyArMTQ0NCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVs
c2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwpAQCAt
MTQ2NywxMSArMTQ2NywxMSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVy
U3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVp
cmtzKCk7CkBAIC0xNDkyLDExICsxNDkyLDExIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9
IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0
QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1
aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+
c2V0Rm9yY2VRdWlya3MoKTsKQEAgLTE1MTEsMTEgKzE1MTEsMTEgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgcGFyc2VFcnJvcigp
OwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0
ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9TeXN0ZW1JZGVu
dGlmaWVyKGNjKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRl
bnRpZmllckRvdWJsZVF1b3RlZFN0YXRlKTsKQEAgLTE1MjksMTEgKzE1MjksMTEgQEAgYm9vbCBI
VE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgcGFy
c2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAg
ICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6
OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBt
X3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNv
bnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKKyAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9T
eXN0ZW1JZGVudGlmaWVyKGNjKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhET0NUWVBF
U3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKQEAgLTE1NDUsMTEgKzE1NDUsMTEg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChpc1Rva2VuaXplcldoaXRlc3BhY2UoY2Mp
KQogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEFmdGVyRE9DVFlQRVN5c3RlbUlkZW50aWZp
ZXJTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7
CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXpl
cjo6RGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikg
ewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9y
Y2VRdWlya3MoKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNl
LCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxf
QURWQU5DRV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CkBAIC0xNTU5LDkgKzE1NTksOSBAQCBib29s
IEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRv
a2VuJiB0b2tlbikKIAogICAgIEhUTUxfQkVHSU5fU1RBVEUoQm9ndXNET0NUWVBFU3RhdGUpIHsK
ICAgICAgICAgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsK
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEJvZ3VzRE9D
VFlQRVN0YXRlKTsKICAgICB9CiAgICAgRU5EX1NUQVRFKCkKQEAgLTE2MTgsMTggKzE2MTgsMTgg
QEAgU3RyaW5nIEhUTUxUb2tlbml6ZXI6OmJ1ZmZlcmVkQ2hhcmFjdGVycygpIGNvbnN0CiB2b2lk
IEhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSkKIHsKICAgICBpZiAodGFnTmFtZSA9PSB0ZXh0YXJlYVRhZyB8fCB0YWdOYW1lID09IHRpdGxl
VGFnKQotICAgICAgICBzZXRTdGF0ZShIVE1MVG9rZW5pemVyU3RhdGU6OlJDREFUQVN0YXRlKTsK
KyAgICAgICAgc2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOwogICAgIGVsc2Ug
aWYgKHRhZ05hbWUgPT0gcGxhaW50ZXh0VGFnKQotICAgICAgICBzZXRTdGF0ZShIVE1MVG9rZW5p
emVyU3RhdGU6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICAgICAgc2V0U3RhdGUoSFRNTFRva2VuaXpl
cjo6UExBSU5URVhUU3RhdGUpOwogICAgIGVsc2UgaWYgKHRhZ05hbWUgPT0gc2NyaXB0VGFnKQot
ICAgICAgICBzZXRTdGF0ZShIVE1MVG9rZW5pemVyU3RhdGU6OlNjcmlwdERhdGFTdGF0ZSk7Cisg
ICAgICAgIHNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CiAgICAgZWxz
ZSBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZwogICAgICAgICB8fCB0YWdOYW1lID09IGlmcmFtZVRh
ZwogICAgICAgICB8fCB0YWdOYW1lID09IHhtcFRhZwogICAgICAgICB8fCAodGFnTmFtZSA9PSBu
b2VtYmVkVGFnICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkKICAgICAgICAgfHwgdGFnTmFt
ZSA9PSBub2ZyYW1lc1RhZwogICAgICAgICB8fCAodGFnTmFtZSA9PSBub3NjcmlwdFRhZyAmJiBt
X29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCi0gICAgICAgIHNldFN0YXRlKEhUTUxUb2tlbml6ZXJT
dGF0ZTo6UkFXVEVYVFN0YXRlKTsKKyAgICAgICAgc2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkFX
VEVYVFN0YXRlKTsKIH0KIAogaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6dGVtcG9yYXJ5QnVm
ZmVySXMoY29uc3QgU3RyaW5nJiBleHBlY3RlZFN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuaAppbmRleCA1YjExNzA3OGI0ZmZmNjQ2ZTkwYTY0ZDQxNzMy
NDY1MzVkNWIxNDM1Li45N2EyODBiMTk1NWM3YjIzYTI0M2JlMWM5ODYzZDM3NjhhMTI0YTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5oCkBAIC0zNCw4ICsz
NCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhUTUxUb2tlbml6ZXJTdGF0
ZSB7CitjbGFzcyBIVE1MVG9rZW5pemVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIVE1M
VG9rZW5pemVyKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc093blB0cjxIVE1MVG9rZW5pemVyPiBjcmVhdGUoY29uc3QgSFRNTFBhcnNlck9w
dGlvbnMmIG9wdGlvbnMpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVG9rZW5pemVyKG9wdGlv
bnMpKTsgfQorICAgIH5IVE1MVG9rZW5pemVyKCk7CisKKyAgICB2b2lkIHJlc2V0KCk7CisKICAg
ICBlbnVtIFN0YXRlIHsKICAgICAgICAgRGF0YVN0YXRlLAogICAgICAgICBDaGFyYWN0ZXJSZWZl
cmVuY2VJbkRhdGFTdGF0ZSwKQEAgLTExMywxOSArMTIwLDYgQEAgcHVibGljOgogICAgICAgICBD
REFUQVNlY3Rpb25SaWdodFNxdWFyZUJyYWNrZXRTdGF0ZSwKICAgICAgICAgQ0RBVEFTZWN0aW9u
RG91YmxlUmlnaHRTcXVhcmVCcmFja2V0U3RhdGUsCiAgICAgfTsKLX07Ci0KLWNsYXNzIEhUTUxU
b2tlbml6ZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhUTUxUb2tlbml6ZXIpOwotICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PEhUTUxUb2tlbml6ZXI+IGNyZWF0ZShjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucykg
eyByZXR1cm4gYWRvcHRQdHIobmV3IEhUTUxUb2tlbml6ZXIob3B0aW9ucykpOyB9Ci0gICAgfkhU
TUxUb2tlbml6ZXIoKTsKLQotICAgIHZvaWQgcmVzZXQoKTsKLQotICAgIC8vIEZJWE1FOiBIVE1M
VG9rZW5pemVyU3RhdGU6OlN0YXRlIHNob3VsZCBqdXN0IGJlIG1vdmVkIGJhY2sgaW50byB0aGlz
IGNsYXNzLgotICAgIHR5cGVkZWYgSFRNTFRva2VuaXplclN0YXRlOjpTdGF0ZSBTdGF0ZTsKIAog
I2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKIApAQCAtMjAwLDkgKzE5NCw5IEBAIHB1
YmxpYzoKICAgICBpbmxpbmUgYm9vbCBzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuICFtX2ZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50Ci0g
ICAgICAgICAgICAmJiAobV9zdGF0ZSA9PSBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZQot
ICAgICAgICAgICAgICAgIHx8IG1fc3RhdGUgPT0gSFRNTFRva2VuaXplclN0YXRlOjpSQ0RBVEFT
dGF0ZQotICAgICAgICAgICAgICAgIHx8IG1fc3RhdGUgPT0gSFRNTFRva2VuaXplclN0YXRlOjpS
QVdURVhUU3RhdGUpOworICAgICAgICAgICAgJiYgKG1fc3RhdGUgPT0gSFRNTFRva2VuaXplcjo6
RGF0YVN0YXRlCisgICAgICAgICAgICAgICAgfHwgbV9zdGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpS
Q0RBVEFTdGF0ZQorICAgICAgICAgICAgICAgIHx8IG1fc3RhdGUgPT0gSFRNTFRva2VuaXplcjo6
UkFXVEVYVFN0YXRlKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0yMzgsNyArMjMyLDcgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIGlmIChoYXZlQnVmZmVyZWRDaGFyYWN0ZXJUb2tlbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIG1fc3RhdGUgPSBIVE1MVG9rZW5pemVy
U3RhdGU6OkRhdGFTdGF0ZTsKKyAgICAgICAgbV9zdGF0ZSA9IEhUTUxUb2tlbml6ZXI6OkRhdGFT
dGF0ZTsKICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7CiAgICAg
ICAgIG1fdG9rZW4tPmNsZWFyKCk7CiAgICAgICAgIG1fdG9rZW4tPm1ha2VFbmRPZkZpbGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4
IDZjZGRkZGM1NjhiNmMxYzcyZTFlNGIwNmQwNjgwYzgxNjdkZWQzYjkuLmFiMDUxMzQ5OGQxODFh
NThiOGRhZDU4ZTM5MzMxZThlMjI3ZDljNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tl
bikKICAgICAgICAgcHJvY2Vzc0Zha2VQRW5kVGFnSWZQSW5CdXR0b25TY29wZSgpOwogICAgICAg
ICBtX3RyZWUuaW5zZXJ0SFRNTEVsZW1lbnQodG9rZW4pOwogICAgICAgICBpZiAobV9wYXJzZXIt
PnRva2VuaXplcigpKQotICAgICAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyU3RhdGU6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICAgICAgICAgIG1fcGFy
c2VyLT50b2tlbml6ZXIoKS0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi0+bmFtZSgpID09IGJ1dHRv
blRhZykgewpAQCAtODU0LDcgKzg1NCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICAgICAgbV90cmVl
Lmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsKICAgICAgICAgbV9zaG91bGRTa2lwTGVhZGluZ05l
d2xpbmUgPSB0cnVlOwogICAgICAgICBpZiAobV9wYXJzZXItPnRva2VuaXplcigpKQotICAgICAg
ICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyU3RhdGU6
OlJDREFUQVN0YXRlKTsKKyAgICAgICAgICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U3Rh
dGUoSFRNTFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOwogICAgICAgICBtX29yaWdpbmFsSW5zZXJ0
aW9uTW9kZSA9IG1faW5zZXJ0aW9uTW9kZTsKICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7
CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoVGV4dE1vZGUpOwpAQCAtMjE3Miw4ICsyMTcyLDgg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKICAgICAgICAgICAgICAgICAvLyBzZWxmLWNsb3Npbmcgc2NyaXB0IHRhZyB3YXMgZW5j
b3VudGVyZWQgYW5kIHByZS1IVE1MNSBwYXJzZXIKICAgICAgICAgICAgICAgICAvLyBxdWlya3Mg
YXJlIGVuYWJsZWQuIFdlIG11c3Qgc2V0IHRoZSB0b2tlbml6ZXIncyBzdGF0ZSB0bwogICAgICAg
ICAgICAgICAgIC8vIERhdGFTdGF0ZSBleHBsaWNpdGx5IGlmIHRoZSB0b2tlbml6ZXIgZGlkbid0
IGhhdmUgYSBjaGFuY2UgdG8uCi0gICAgICAgICAgICAgICAgQVNTRVJUKG1fcGFyc2VyLT50b2tl
bml6ZXIoKS0+c3RhdGUoKSA9PSBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSB8fCBtX29w
dGlvbnMudXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgfHwgbV9vcHRpb25zLnVzZVRocmVhZGluZyk7
Ci0gICAgICAgICAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0ZShIVE1MVG9r
ZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKG1fcGFyc2Vy
LT50b2tlbml6ZXIoKS0+c3RhdGUoKSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUgfHwgbV9v
cHRpb25zLnVzZVByZUhUTUw1UGFyc2VyUXVpcmtzIHx8IG1fb3B0aW9ucy51c2VUaHJlYWRpbmcp
OworICAgICAgICAgICAgICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U3RhdGUoSFRNTFRv
a2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtMjcxMyw3ICsyNzEzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NHZW5lcmljUkNEQVRBU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBB
U1NFUlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpOwogICAgIG1f
dHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiAgICAgaWYgKG1fcGFyc2VyLT50b2tlbml6
ZXIoKSkKLSAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0ZShIVE1MVG9rZW5p
emVyU3RhdGU6OlJDREFUQVN0YXRlKTsKKyAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5z
ZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpSQ0RBVEFTdGF0ZSk7CiAgICAgbV9vcmlnaW5hbEluc2Vy
dGlvbk1vZGUgPSBtX2luc2VydGlvbk1vZGU7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShUZXh0TW9k
ZSk7CiB9CkBAIC0yNzIzLDcgKzI3MjMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0dlbmVyaWNSYXdUZXh0U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBBU1NF
UlQodG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpOwogICAgIG1fdHJl
ZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7CiAgICAgaWYgKG1fcGFyc2VyLT50b2tlbml6ZXIo
KSkKLSAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
U3RhdGU6OlJBV1RFWFRTdGF0ZSk7CisgICAgICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0
U3RhdGUoSFRNTFRva2VuaXplcjo6UkFXVEVYVFN0YXRlKTsKICAgICBtX29yaWdpbmFsSW5zZXJ0
aW9uTW9kZSA9IG1faW5zZXJ0aW9uTW9kZTsKICAgICBzZXRJbnNlcnRpb25Nb2RlKFRleHRNb2Rl
KTsKIH0KQEAgLTI3MzMsNyArMjczMyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U2NyaXB0U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKICAgICBBU1NFUlQodG9rZW4t
PnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpOwogICAgIG1fdHJlZS5pbnNlcnRT
Y3JpcHRFbGVtZW50KHRva2VuKTsKICAgICBpZiAobV9wYXJzZXItPnRva2VuaXplcigpKQotICAg
ICAgICBtX3BhcnNlci0+dG9rZW5pemVyKCktPnNldFN0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6
U2NyaXB0RGF0YVN0YXRlKTsKKyAgICAgICAgbV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3RhdGUpOwogICAgIG1fb3JpZ2luYWxJbnNlcnRp
b25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOwogCiAgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0g
bV9wYXJzZXItPnRleHRQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwCmluZGV4IDM0M2IyM2MyOTA4MmQzNDc0MjYw
OTU4ODU2Y2M5N2NhYjg4ZGVmYjAuLmQ3ZTZlM2RmYzZkNTM3NjA0M2NhMWFjYWI3MmY5YzVmYTAy
ZjFiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHRWaWV3U291
cmNlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0Vmlld1Nv
dXJjZVBhcnNlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogVGV4
dFZpZXdTb3VyY2VQYXJzZXI6OlRleHRWaWV3U291cmNlUGFyc2VyKEhUTUxWaWV3U291cmNlRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRNTFZpZXdTb3VyY2VQYXJzZXIoZG9jdW1lbnQpCiB7
Ci0gICAgdG9rZW5pemVyKCktPnNldFN0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6UExBSU5URVhU
U3RhdGUpOworICAgIHRva2VuaXplcigpLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQTEFJTlRF
WFRTdGF0ZSk7CiB9CiAKIFRleHRWaWV3U291cmNlUGFyc2VyOjp+VGV4dFZpZXdTb3VyY2VQYXJz
ZXIoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>