<?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>86831</bug_id>
          
          <creation_ts>2012-05-18 02:20:59 -0700</creation_ts>
          <short_desc>[V8] Remove V8Proxy::notHandledByInterceptor()</short_desc>
          <delta_ts>2012-08-03 09:54:10 -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>WebCore JavaScript</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>85330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>627506</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-18 02:20:59 -0700</bug_when>
    <thetext>As per the discussion in https://bugs.webkit.org/show_bug.cgi?id=85330, we replace &apos;return V8Proxy::notHandledByInterceptor()&apos; with &apos;return v8::Handle&lt;v8::Value&gt;()&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627509</commentid>
    <comment_count>1</comment_count>
      <attachid>142672</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-18 02:26:18 -0700</bug_when>
    <thetext>Created attachment 142672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627565</commentid>
    <comment_count>2</comment_count>
      <attachid>142672</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-18 04:43:08 -0700</bug_when>
    <thetext>Comment on attachment 142672
Patch

Death to the cargo cult.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627590</commentid>
    <comment_count>3</comment_count>
      <attachid>142672</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 05:33:44 -0700</bug_when>
    <thetext>Comment on attachment 142672
Patch

Rejecting attachment 142672 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;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 11551 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 11551.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/12721795</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627600</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-18 05:47:57 -0700</bug_when>
    <thetext>Sorry for the bad error messages:

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

I think this hit a merge conflict at the very end of the commit cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628671</commentid>
    <comment_count>5</comment_count>
      <attachid>142929</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 17:24:39 -0700</bug_when>
    <thetext>Created attachment 142929
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629863</commentid>
    <comment_count>6</comment_count>
      <attachid>142929</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-21 19:30:29 -0700</bug_when>
    <thetext>Comment on attachment 142929
patch for landing

Clearing flags on attachment: 142929

Committed r117873: &lt;http://trac.webkit.org/changeset/117873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686868</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 09:54:10 -0700</bug_when>
    <thetext>Looks like this landed a while ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142672</attachid>
            <date>2012-05-18 02:26:18 -0700</date>
            <delta_ts>2012-05-18 05:33:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86831-20120518182617.patch</filename>
            <type>text/plain</type>
            <size>36654</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFiZmZiOWY0Yjg2OGQz
YmVlNjE1ODQ2NTMxNTk4ZjgyMTZmZTQ2NC4uZDI4YWJjMDI1M2M1YjhkMGY2MGY5Zjg2ZDg0YzY5
NmZlZTliZjZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTA1LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbW92ZSBW
OFByb3h5Ojpub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjgzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgJ3JldHVybiBWOFBy
b3h5Ojpub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpJworICAgICAgICB3aXRoICdyZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCknLiBTZWUgdGhlIGRpc2N1c3Npb24gaW4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MzMwIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVPdmVybG9hZGVkRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhv
ZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9h
ZGVkTWV0aG9kMUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOENvbGxlY3Rpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3Rpb25OYW1lZFByb3BlcnR5R2V0dGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5wT2JqZWN0U2V0
UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6
OnRocm93RXJyb3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmll
d0N1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJh
eUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNldFdlYkdMQXJyYXlIZWxwZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFBy
b3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q1NTU3R5bGVEZWNsYXJhdGlvbjo6
bmFtZWRQcm9wZXJ0eVNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
U3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NU3RyaW5nTWFwOjpu
YW1lZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01X
aW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmluZGV4ZWRQ
cm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6bmFtZWRQcm9w
ZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEFsbENvbGxl
Y3Rpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MQWxsQ29sbGVjdGlvbjo6
bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MQ29sbGVjdGlv
bjo6bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTEZvcm1F
bGVtZW50OjppbmRleGVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1M
Rm9ybUVsZW1lbnQ6Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4ZWRQcm9wZXJ0
eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFBsdWdJbkVsZW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bnBPYmplY3ROYW1lZEdldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpucE9iamVjdE5hbWVkU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
Om5wT2JqZWN0SW5kZXhlZEdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpucE9iamVjdEluZGV4
ZWRTZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxlY3RFbGVt
ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTFNlbGVjdEVsZW1lbnQ6Omlu
ZGV4ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TmFtZWROb2RlTWFwOjpp
bmRleGVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhOYW1lZE5vZGVNYXA6
Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5v
ZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Tm9kZUxpc3Q6Om5hbWVkUHJv
cGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0b3JhZ2VDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RvcmFnZUdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpWOFN0b3JhZ2U6Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
c3RvcmFnZVNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVl
dExpc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhTdHlsZVNoZWV0TGlzdDo6bmFt
ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQ
YXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnZlcnRleEF0dHJp
YkFuZFVuaWZvcm1IZWxwZXJmKToKKyAgICAgICAgKFdlYkNvcmU6OnVuaWZvcm1IZWxwZXJpKToK
KyAgICAgICAgKFdlYkNvcmU6OnVuaWZvcm1NYXRyaXhIZWxwZXIpOgorCiAyMDEyLTA1LTE3ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdCBlcnJvbmVv
dXNseSBhZGQgMXB4IHBhZGRpbmcgaW4gaW5wdXQgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZDY2Zjg0ZTBj
NzMyNDI4ZGUwZTkwNTQ2ZDk4NDQxMjM5MjRjYmMzNC4uZjI2ZGNhNjZiYjI3OGM0YmU0MGIyNmUw
NjFjZjY2Zjk0ZTJjNDA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEzNDcsNyArMTM0Nyw3IEBAIEVORAogICAgIH0K
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiAgICAgVjhQcm94eTo6dGhyb3dU
eXBlRXJyb3IoKTsKLSAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiBFTkQKICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAifVxuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8v
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTE2
NTksNyArMTY1OSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAg
ICAgIGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICAk
cGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUlu
ZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhh
c0luc3RhbmNlKCRhcmdWYWx1ZSkpIHtcbiI7CiAgICAgICAgICAgICAgICAgICAgICRwYXJhbWV0
ZXJDaGVja1N0cmluZyAuPSAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIjsK
LSAgICAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIjsKKyAgICAgICAgICAgICAgICAgICAg
JHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTtcbiI7CiAgICAgICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAu
PSAiICAgIH1cbiI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApp
bmRleCBlMmQxMGNmYmM3MWU3Mjc0OTNlZjgzODVhOTk3N2Q5NGIwMDlmYjU2Li5lNTU3ZGVmNWU2
Mzc3M2Y0ZmIwYTA1MDU4YjIzYjkzNzM5ODFkYmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTc5Niw3ICsx
Nzk2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAoKGFyZ3MuTGVuZ3RoKCkg
PT0gMSAmJiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNBcnJheSgpKSkpCiAgICAg
ICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kN0NhbGxiYWNrKGFyZ3MpOwogICAgIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCk7Ci0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNsYXNzTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKQEAgLTE4NTQsNyArMTg1NCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
b3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAg
aWYgKChhcmdzLkxlbmd0aCgpID09IDEgJiYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8IGFyZ3NbMF0t
PklzVW5kZWZpbmVkKCkgfHwgYXJnc1swXS0+SXNTdHJpbmcoKSB8fCBhcmdzWzBdLT5Jc09iamVj
dCgpKSkpCiAgICAgICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kMTJDYWxsYmFjayhhcmdzKTsK
ICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgIHJldHVybiBub3RIYW5kbGVkQnlJ
bnRlcmNlcHRvcigpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OENvbGxlY3Rpb24uaAppbmRleCAxMzYyMDRkMDI5ZGY0YTFhMmM4MTU4Nzc5MTU3YWU0NTNiOTQy
YzdlLi42ZWFkZTk2MGUzNTA0NjQzYmQ1ODQ2YjZhY2I0N2JiMzg5ZDU0ZmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaApAQCAtNzQsOSArNzQsOSBAQCB0ZW1w
bGF0ZTxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBJdGVtVHlwZT4gc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBnZXROYW1lZAogdGVtcGxhdGU8Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3MgSXRl
bVR5cGU+IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29sbGVjdGlvbk5hbWVkUHJvcGVy
dHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgaWYgKCFpbmZvLkhvbGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0
eUluUHJvdG90eXBlQ2hhaW4obmFtZSkuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOwogICAgIGlmIChpbmZvLkhvbGRlcigpLT5IYXNSZWFsTmFtZWRDYWxsYmFja1Byb3BlcnR5
KG5hbWUpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIGdldE5hbWVk
UHJvcGVydHlPZkNvbGxlY3Rpb248Q29sbGVjdGlvbiwgSXRlbVR5cGU+KG5hbWUsIGluZm8uSG9s
ZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IDJjZDc5YTk3Mjk5ZTdiNjQwNDkyNTNlYjQ2ODY5YTUw
MjA1NmMwNGIuLjJjNGI5ZmYyNDcwYjkwM2MyM2QzMmNlMTViOWQxNzM5YTRkYjE0MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMjY1LDcgKzI2
NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdyYXBwZXI6OmNvbnZlcnRFdmVudFRh
cmdldFRvVjhPYmplY3QoRXZlbnRUYXJnZXQqIHRhCiAgICAgRE9NX0VWRU5UX1RBUkdFVF9JTlRF
UkZBQ0VTX0ZPUl9FQUNIKFRSWV9UT19XUkFQX1dJVEhfSU5URVJGQUNFKQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Cisg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiBQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+IFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCBpc0F0dHJpYnV0ZSwgTGlzdGVuZXJMb29rdXBUeXBlIGxvb2t1cCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKaW5kZXggNWE1OGQ4Mjcy
MjZhOTI3NmZhODdiZDg3NDE5OWJhMTljMzU4ZWVhMy4uNTBiYjU3ZWI4OTkwNjVjNGFmZmE0MzY0
ODNiODI0ODg1NDhhMDBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVj
dC5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5w
T2JqZWN0U2V0UHJvcGVydHkodjg6OkxvY2FsPHY4OjpPYmplY3Q+IHNlbGYsIE5QSQogICAgICAg
ICBpZiAoc3VjY2VzcykKICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgLy8gSW50ZXJjZXB0IHRo
ZSBjYWxsLgogICAgIH0KLSAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBiZDJjMDc4YzE0NmZiNjczOWJkNzFiYjdmOTUwZGE1
YTY4NDI4YmI3Li5lODEzY2FhODQ2YmExMjM0MTZjZjU0YjEwNmFmMGFiN2ZhZGExMWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtMzQyLDcgKzM0Miw3IEBAIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZSwgTm9kZSogbm9kCiB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpydW5T
Y3JpcHQodjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQpCiB7CiAgICAgaWYgKHNjcmlwdC5J
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAg
ICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsKIAogICAgIFY4R0NDb250cm9sbGVy
OjpjaGVja01lbW9yeVVzYWdlKCk7CiAgICAgaWYgKFY4UmVjdXJzaW9uU2NvcGU6OnJlY3Vyc2lv
bkxldmVsKCkgPj0ga01heFJlY3Vyc2lvbkRlcHRoKQpAQCAtMzY5LDExICszNjksMTEgQEAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNjcmlw
dD4gc2NyaXB0KQogICAgIC8vIEhhbmRsZSBWOCBpbnRlcm5hbCBlcnJvciBzaXR1YXRpb24gKE91
dC1vZi1tZW1vcnkpLgogICAgIGlmICh0cnlDYXRjaC5IYXNDYXVnaHQoKSkgewogICAgICAgICBB
U1NFUlQocmVzdWx0LklzRW1wdHkoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsKICAgICB9
CiAKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRC
eUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOwog
CiAgICAgaWYgKHY4OjpWODo6SXNEZWFkKCkpCiAgICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4
KCk7CkBAIC02MjcsNyArNjI3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UHJveHk6OnRo
cm93RXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHYKICAgICAgICAg
cmV0dXJuIHY4OjpUaHJvd0V4Y2VwdGlvbih2ODo6RXhjZXB0aW9uOjpFcnJvcih2OFN0cmluZyht
ZXNzYWdlLCBpc29sYXRlKSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4IGU1ZTk0NzEwM2MxNTNhOWU5OTU2OGNjOGRlNzZk
ZTBhOWE1NmI4ZjkuLjRiYzY5MDVhMmZiNjA2ODA4OTU4MDU2MzI1YTIzMDc2N2JlMmQ2ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKQEAgLTMxMywxMyArMzEzLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiB0b1Y4Q29udGV4
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3Js
ZENvbnRleHQpOwogCi0gICAgLy8gVXNlZCBieSBhbiBpbnRlcmNlcHRvciBjYWxsYmFjayB0aGF0
IGl0IGhhc24ndCBmb3VuZCBhbnl0aGluZyB0bwotICAgIC8vIGludGVyY2VwdC4KLSAgICBpbmxp
bmUgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
Ci0gICAgewotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgfQot
CiAgICAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlByaW1pdGl2ZT4gdGhyb3dFcnJvcihjb25zdCBj
aGFyKiBtZXNzYWdlLCBWOFByb3h5OjpFcnJvclR5cGUgdHlwZSwgdjg6Oklzb2xhdGUqIGlzb2xh
dGUgPSAwKQogICAgIHsKICAgICAgICAgaWYgKCF2ODo6Vjg6OklzRXhlY3V0aW9uVGVybWluYXRp
bmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFy
cmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggZTNjMjMxMjQyMThmZGMxZTIxMWRkMzEz
ZWU3YWIwYTgxNjNkOTEyOC4uMzdmN2M2NmM3MDI1MWI2YjAwMTEzMDRlZjE1MWQ3NzRiODRlYzlk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlC
dWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTgyLDcgKzgyLDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25z
dCB2ODo6QXJndW0KICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpj
cmVhdGUoYnVmLCBvZmZzZXQsIGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkgewogICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgLy8gVHJhbnNmb3JtIHRo
ZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCiAgICAgVjhET01X
cmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5LmdldCgpKTsK
QEAgLTE5MCw3ICsxOTAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xBcnJheUhl
bHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSkgewogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJn
cy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3Io
KTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KIAogICAg
IENQbHVzUGx1c0FycmF5VHlwZSogaW1wbCA9IEphdmFTY3JpcHRXcmFwcGVyQXJyYXlUeXBlOjp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ICAgIH0KIAogICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdl
dElzb2xhdGUoKSk7Ci0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFy
YXRpb25DdXN0b20uY3BwCmluZGV4IDUzMDhlZmU1MDM5OWQ4YTU1YjgyNjM2ODJiNjMzNGJlNGM1
MGQwMjUuLmVjNzMzMGZmOGM0NzZmZDIxN2IwZjE0Y2VlNjQwYzUyMjkzN2MyMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCkBAIC0xOTUsMTQgKzE5NSwxNCBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVy
KHY4OjpMb2NhbDx2ODo6UwogICAgIElOQ19TVEFUUygiRE9NLkNTU1N0eWxlRGVjbGFyYXRpb24u
TmFtZWRQcm9wZXJ0eUdldHRlciIpOwogICAgIC8vIEZpcnN0IGxvb2sgZm9yIEFQSSBkZWZpbmVk
IGF0dHJpYnV0ZXMgb24gdGhlIHN0eWxlIGRlY2xhcmF0aW9uIG9iamVjdC4KICAgICBpZiAoaW5m
by5Ib2xkZXIoKS0+SGFzUmVhbE5hbWVkQ2FsbGJhY2tQcm9wZXJ0eShuYW1lKSkKLSAgICAgICAg
cmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIC8vIFNlYXJjaCB0aGUgc3R5bGUgZGVjbGFyYXRpb24u
CiAgICAgQ1NTUHJvcGVydHlJbmZvKiBwcm9wSW5mbyA9IGNzc1Byb3BlcnR5SW5mbyhuYW1lKTsK
IAogICAgIC8vIERvIG5vdCBoYW5kbGUgbm9uLXByb3BlcnR5IG5hbWVzLgogICAgIGlmICghcHJv
cEluZm8pCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBDU1NTdHlsZURlY2xhcmF0
aW9uKiBpbXAgPSBWOENTU1N0eWxlRGVjbGFyYXRpb246OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUgPSBpbXAtPmdldFByb3BlcnR5Q1NTVmFs
dWVJbnRlcm5hbChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wSW5mby0+cHJvcElEKSk7
CkBAIC0yMjgsNyArMjI4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q1NTU3R5bGVEZWNs
YXJhdGlvbjo6bmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlMKICAgICBDU1NTdHls
ZURlY2xhcmF0aW9uKiBpbXAgPSBWOENTU1N0eWxlRGVjbGFyYXRpb246OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwogICAgIENTU1Byb3BlcnR5SW5mbyogcHJvcEluZm8gPSBjc3NQcm9wZXJ0eUlu
Zm8obmFtZSk7CiAgICAgaWYgKCFwcm9wSW5mbykKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRC
eUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
IAogICAgIFN0cmluZyBwcm9wZXJ0eVZhbHVlID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVj
ayh2YWx1ZSk7CiAgICAgaWYgKHByb3BJbmZvLT5oYWRQaXhlbE9yUG9zUHJlZml4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHAKaW5kZXggOTMzNWUwOTgwMTYwOWI4YTFjOGY4YjllYWQ4NGJmNjllMTUxNWFj
MS4uMjg0YzczZWNjMWI4Y2VmMTZhNTIyM2ViZGY1NWU1NjYxZTZiODAyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBD
dXN0b20uY3BwCkBAIC01MSw3ICs1MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVN0
cmluZ01hcDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICBJ
TkNfU1RBVFMoIkRPTS5ET01TdHJpbmdNYXAuTmFtZWRQcm9wZXJ0eUdldHRlciIpOwogICAgIFN0
cmluZyB2YWx1ZSA9IFY4RE9NU3RyaW5nTWFwOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKS0+aXRl
bSh0b1dlYkNvcmVTdHJpbmcobmFtZSkpOwogICAgIGlmICh2YWx1ZS5pc051bGwoKSkKLSAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICByZXR1cm4gdjhTdHJpbmdPclVuZGVmaW5lZCh2YWx1
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDJhYmNmM2NhNjIxOGI5YmYyZDM1Njc5ZDgxODZi
YzA4MGY4YjkwOTQuLjczMjA4YWI1MGViYTAwNDA4MjgwMWE2MGNmZjM3YzU5YTY0Y2U5ZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2lu
ZG93Q3VzdG9tLmNwcApAQCAtNDczLDE3ICs0NzMsMTcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4RE9NV2luZG93OjppbmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW5kZXgsIGNvbnN0
IHYKIAogICAgIERPTVdpbmRvdyogd2luZG93ID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwogICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwog
CiAgICAgRnJhbWUqIGZyYW1lID0gd2luZG93LT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCi0g
ICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBGcmFtZSogY2hpbGQgPSBmcmFtZS0+dHJl
ZSgpLT5zY29wZWRDaGlsZChpbmRleCk7CiAgICAgaWYgKGNoaWxkKQogICAgICAgICByZXR1cm4g
dG9WOChjaGlsZC0+ZG9tV2luZG93KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIAotICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKIH0KIAogCkBAIC00OTMsMTIgKzQ5MywxMiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhET01XaW5kb3c6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbQogCiAgICAgRE9NV2luZG93KiB3aW5kb3cgPSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CiAgICAgaWYgKCF3aW5kb3cpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7
CiAKICAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCk7CiAgICAgLy8gd2luZG93IGlz
IGRldGFjaGVkIGZyb20gYSBmcmFtZS4KICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpOwogCiAgICAgLy8gU2VhcmNoIHN1Yi1mcmFtZXMuCiAgICAgQXRvbWljU3RyaW5n
IHByb3BOYW1lID0gdjhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSk7CkBAIC01MDgs
NyArNTA4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NV2luZG93OjpuYW1lZFByb3Bl
cnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW0KIAogICAgIC8vIFNlYXJjaCBJREwg
ZnVuY3Rpb25zIGRlZmluZWQgaW4gdGhlIHByb3RvdHlwZQogICAgIGlmICghaW5mby5Ib2xkZXIo
KS0+R2V0UmVhbE5hbWVkUHJvcGVydHkobmFtZSkuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpOwogCiAgICAgLy8gU2VhcmNoIG5hbWVkIGl0ZW1zIGluIHRoZSBkb2N1bWVudC4K
ICAgICBEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CkBAIC01MjQsNyArNTI0LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NV2luZG93OjpuYW1lZFByb3BlcnR5R2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW0KICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggMGEwNTk0
ODMzZTZiN2JiMzM3ZjNiZWQ5YWQyYzE4OWU1ZWY3ZDZmMy4uYzk3YTYxMmQ3YzZhYTMwMWEzM2U5
MzE2N2U4YTgyZTkxZjA3MDhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAt
NzYsOSArNzYsOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MQWxsQ29sbGVjdGlvbjo6
bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAgIElOQ19TVEFUUygiRE9N
LkhUTUxBbGxDb2xsZWN0aW9uLk5hbWVkUHJvcGVydHlHZXR0ZXIiKTsKIAogICAgIGlmICghaW5m
by5Ib2xkZXIoKS0+R2V0UmVhbE5hbWVkUHJvcGVydHlJblByb3RvdHlwZUNoYWluKG5hbWUpLklz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAg
ICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICBpZiAoaW5mby5Ib2xkZXIo
KS0+SGFzUmVhbE5hbWVkQ2FsbGJhY2tQcm9wZXJ0eShuYW1lKSkKLSAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKIAogICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAgPSBWOEhUTUxBbGxDb2xsZWN0
aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhp
bXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKG5hbWUpLCBpbmZvLkdldElzb2xhdGUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggMmYxZWE1NGU4ZTI2ZTljNjNjM2EyMjY4
M2VlMjMzOWFjMzY3NDZlMi4uOTEwNzQ3YmVkZWY2Y2NmYzYxOGM5NzMyNGEwZjM2MjUxOTIyZTMy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENv
bGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNjUsOSArNjUsOSBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhIVE1MQ29sbGVjdGlvbjo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZwogICAgIElOQ19TVEFUUygiRE9NLkhUTUxDb2xsZWN0aW9uLk5hbWVkUHJv
cGVydHlHZXR0ZXIiKTsKIAogICAgIGlmICghaW5mby5Ib2xkZXIoKS0+R2V0UmVhbE5hbWVkUHJv
cGVydHlJblByb3RvdHlwZUNoYWluKG5hbWUpLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKICAgICBpZiAoaW5mby5Ib2xkZXIoKS0+SGFzUmVhbE5hbWVkQ2FsbGJhY2tQcm9w
ZXJ0eShuYW1lKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Cisg
ICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIEhUTUxDb2xsZWN0
aW9uKiBpbXAgPSBWOEhUTUxDb2xsZWN0aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAg
ICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5n
KG5hbWUpLCBpbmZvLkdldElzb2xhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcAppbmRl
eCBmODUyNGMxNjAwYWFjMjQxNTc4ZTY2NWQ0ZGY1Nzg1ZGZlZjYzODdiLi40ZTYyOTJkYjdiNmU2
MmU3ZWMxYTgyMzgwOTVkYmJmNTI5MTgwZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAK
QEAgLTQ4LDcgKzQ4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEZvcm1FbGVtZW50
OjppbmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW5kZXgsIGMKIAogICAgIFJlZlB0cjxO
b2RlPiBmb3JtRWxlbWVudCA9IGZvcm0tPmVsZW1lbnRzKCktPml0ZW0oaW5kZXgpOwogICAgIGlm
ICghZm9ybUVsZW1lbnQpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
OworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgcmV0dXJuIHRv
VjgoZm9ybUVsZW1lbnQucmVsZWFzZSgpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKQEAgLTY1
LDcgKzY1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEZvcm1FbGVtZW50OjpuYW1l
ZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW4KICAgICAgICAgVmVjdG9yPFJlZlB0
cjxOb2RlPiA+IGVsZW1lbnRzOwogICAgICAgICBpbXAtPmdldE5hbWVkRWxlbWVudHModiwgZWxl
bWVudHMpOwogICAgICAgICBpZiAoZWxlbWVudHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogCiAgICAgLy8gU2Vjb25kIGNhbGwgbWF5IHJldHVy
biBkaWZmZXJlbnQgcmVzdWx0cyBmcm9tIHRoZSBmaXJzdCBjYWxsLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEZyYW1lU2V0RWxlbWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRnJhbWVTZXRF
bGVtZW50Q3VzdG9tLmNwcAppbmRleCAxNmNkNTlkYWFhZjA2YWRlMGM0NTc4MDdkMzRmOTU1ZGUz
OWE1MjY0Li4xMzdmOTFiYmYzYjAwZmVkMDY0NDkwZDE2Zjk2MzVhNGVhMDM3NzljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRnJhbWVTZXRFbGVt
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4
OjpMb2NhbDx2ODo6UwogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jLT5mcmFtZSgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRvVjgoZnJhbWUtPmRvbVdpbmRvdygpLCBpbmZvLkdldElzb2xh
dGUoKSk7CiAgICAgfQotICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggZDU5NWQwZWVj
MjRlYmNlNGE5ZWQ4ZmM4NTFiYjg1MjQxZjA2YmU0ZC4uMmVjNmYxMTliY2JhM2E2YWZkZjdjMWFl
MDU2YmIxMjNjMzI1MTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3Bw
CkBAIC0xMjEsNyArMTIxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTE9wdGlvbnND
b2xsZWN0aW9uOjppbmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW4KIAogICAgIFJlZlB0
cjxOb2RlPiByZXN1bHQgPSBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KTsKICAgICBpZiAoIXJlc3Vs
dCkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIHJldHVybiB0b1Y4KHJlc3VsdC5y
ZWxlYXNlKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxQbHVnSW5FbGVtZW50Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxQbHVnSW5FbGVtZW50Q3VzdG9t
LmNwcAppbmRleCAxYzExNGM1ZjM1MGNjNDIyZDEwNDE2Y2IzYjJiMjk1ZTNkM2U0ZTUxLi5iM2Y3
ZDMyYzYxOGZhNDY5NDcwNjExYmU2NDViZmYzYmFlMzdiMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MUGx1Z0luRWxlbWVudEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFBsdWdJbkVsZW1l
bnRDdXN0b20uY3BwCkBAIC01MCwxMSArNTAsMTEgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBucE9iamVjdE5hbWVkR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb24K
ICAgICBIVE1MUGx1Z0luRWxlbWVudCogaW1wID0gQzo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CiAgICAgU2NyaXB0SW5zdGFuY2Ugc2NyaXB0SW5zdGFuY2UgPSBpbXAtPmdldEluc3RhbmNlKCk7
CiAgICAgaWYgKCFzY3JpcHRJbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAog
ICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5jZSA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0
Pjo6TmV3KHNjcmlwdEluc3RhbmNlLT5pbnN0YW5jZSgpKTsKICAgICBpZiAoaW5zdGFuY2UuSXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIG5wT2JqZWN0
R2V0TmFtZWRQcm9wZXJ0eShpbnN0YW5jZSwgbmFtZSk7CiB9CkBAIC02NSwxMSArNjUsMTEgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBucE9iamVjdE5hbWVkU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCB2ODoKICAgICBIVE1MUGx1Z0luRWxlbWVudCogaW1wID0gQzo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgU2NyaXB0SW5zdGFuY2Ugc2NyaXB0SW5zdGFu
Y2UgPSBpbXAtPmdldEluc3RhbmNlKCk7CiAgICAgaWYgKCFzY3JpcHRJbnN0YW5jZSkKLSAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5j
ZSA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6TmV3KHNjcmlwdEluc3RhbmNlLT5pbnN0YW5jZSgp
KTsKICAgICBpZiAoaW5zdGFuY2UuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
OwogCiAgICAgcmV0dXJuIG5wT2JqZWN0U2V0TmFtZWRQcm9wZXJ0eShpbnN0YW5jZSwgbmFtZSwg
dmFsdWUpOwogfQpAQCAtMTM1LDExICsxMzUsMTEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5w
T2JqZWN0SW5kZXhlZEdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3Qgdjg6OkFjY2Vzc29ySW4K
ICAgICBIVE1MUGx1Z0luRWxlbWVudCogaW1wID0gQzo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CiAgICAgU2NyaXB0SW5zdGFuY2Ugc2NyaXB0SW5zdGFuY2UgPSBpbXAtPmdldEluc3RhbmNlKCk7
CiAgICAgaWYgKCFzY3JpcHRJbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAog
ICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5jZSA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0
Pjo6TmV3KHNjcmlwdEluc3RhbmNlLT5pbnN0YW5jZSgpKTsKICAgICBpZiAoaW5zdGFuY2UuSXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIG5wT2JqZWN0
R2V0SW5kZXhlZFByb3BlcnR5KGluc3RhbmNlLCBpbmRleCk7CiB9CkBAIC0xNTEsMTEgKzE1MSwx
MSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3RJbmRleGVkU2V0dGVyKHVpbnQzMl90
IGluZGV4LCB2ODo6TG9jYWw8djg6OlZhbHVlPgogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBpbXAg
PSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3JpcHRJbnN0YW5jZSBzY3JpcHRJ
bnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKICAgICBpZiAoIXNjcmlwdEluc3RhbmNlKQot
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGlu
c3RhbmNlID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpOZXcoc2NyaXB0SW5zdGFuY2UtPmluc3Rh
bmNlKCkpOwogICAgIGlmIChpbnN0YW5jZS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiAKICAgICByZXR1cm4gbnBPYmplY3RTZXRJbmRleGVkUHJvcGVydHkoaW5zdGFuY2Us
IGluZGV4LCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTFk
NTkxNGFhNzAxZGVmOWY4NTBjYmNhNTA2NzA3MjQzNDQ0YTU2YS4uMDE1YmUzYTBjNjIyMWIxNDY1
ODY4MzQ1MDg3NzJhMzAyOTU1YTAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcApA
QCAtNTEsNyArNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MU2VsZWN0RWxlbWVu
dDo6aW5kZXhlZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90IGluZGV4LAogICAgIEFTU0VSVChWOERP
TVdyYXBwZXI6Om1heWJlRE9NV3JhcHBlcihpbmZvLkhvbGRlcigpKSk7CiAgICAgUmVmUHRyPE5v
ZGU+IHJlc3VsdCA9IFY4SFRNTFNlbGVjdEVsZW1lbnQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
LT5pdGVtKGluZGV4KTsKICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKIAogICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGluZm8uR2V0SXNvbGF0ZSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5h
bWVkTm9kZU1hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IGQ4NjlkYzNiNjA5YTFmNGUzNTlkZjNjODZk
ZjRjNzk0YWI4N2YzMjEuLjQ3ZmViMDQzNTUxODQ1YzY1Y2MyMzBiNWE4ZjlkYjcxMWQyZmIzN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9k
ZU1hcEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcApAQCAtNDksNyArNDksNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhOYW1lZE5vZGVNYXA6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcih1aW50MzJfdCBpbmRl
eCwgY29ucwogICAgIE5hbWVkTm9kZU1hcCogaW1wID0gVjhOYW1lZE5vZGVNYXA6OnRvTmF0aXZl
KGluZm8uSG9sZGVyKCkpOwogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQgPSBpbXAtPml0ZW0oaW5k
ZXgpOwogICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAg
cmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpAQCAt
NTksMTQgKzU5LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5hbWVkTm9kZU1hcDo6bmFt
ZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICBJTkNfU1RBVFMoIkRP
TS5OYW1lZE5vZGVNYXAuTmFtZWRQcm9wZXJ0eUdldHRlciIpOwogCiAgICAgaWYgKCFpbmZvLkhv
bGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0eUluUHJvdG90eXBlQ2hhaW4obmFtZSkuSXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIGlmIChpbmZvLkhvbGRlcigpLT5I
YXNSZWFsTmFtZWRDYWxsYmFja1Byb3BlcnR5KG5hbWUpKQotICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOwogCiAgICAgTmFtZWROb2RlTWFwKiBpbXAgPSBWOE5hbWVkTm9kZU1hcDo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7CiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IGltcC0+Z2V0TmFtZWRJ
dGVtKHRvV2ViQ29yZVN0cmluZyhuYW1lKSk7CiAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7CiAKICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCBpbmZv
LkdldElzb2xhdGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAKaW5kZXggYjFlNTgyNjFhMmE5NzcyNDJlMWVi
YjEyMzljNGZhYWZmZjA1YTE0MS4uNjU2YjlkNTEwNWQyMjRmMjAzMmRkMjQyMzRiMWEzYmI5NTcz
OWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9k
ZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE5vZGVMaXN0Q3VzdG9tLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhOb2RlTGlzdDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZQogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IGxpc3QtPml0ZW1XaXRoTmFtZShrZXkp
OwogICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0
dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNw
cAppbmRleCA0MjQ3ZmRlOTg5OTA1MThmNWI5ODgyMjk4YWI2MzA0ZWZlNGFkZDQxLi5mMjc5MzQ4
OWI1OTViYzQzYmUwODQ3ZmY4ZTkzODM3ZjA1ODBmN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcApAQCAtNjEsNyAr
NjEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0b3JhZ2VHZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IHY4TmFtZSwgY29uc3QgdgogICAgIGlmIChuYW1lICE9ICJsZW5ndGgi
ICYmIHN0b3JhZ2UtPmNvbnRhaW5zKG5hbWUpKQogICAgICAgICByZXR1cm4gdjhTdHJpbmcoc3Rv
cmFnZS0+Z2V0SXRlbShuYW1lKSk7CiAKLSAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFN0b3JhZ2U6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcih1aW50MzJfdCBp
bmRleCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAgLTc1LDcgKzc1LDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4U3RvcmFnZTo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5TdG9yYWdlLk5hbWVk
UHJvcGVydHlHZXR0ZXIiKTsKICAgICBpZiAoIWluZm8uSG9sZGVyKCktPkdldFJlYWxOYW1lZFBy
b3BlcnR5SW5Qcm90b3R5cGVDaGFpbihuYW1lKS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KCk7CiAgICAgcmV0dXJuIHN0b3JhZ2VHZXR0ZXIobmFtZSwgaW5mbyk7CiB9CiAKQEAg
LTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0b3JhZ2VTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IHY4TmFtZSwgdjg6OkxvYwogICAgICAgICByZXR1cm4g
djhWYWx1ZTsKIAogICAgIGlmICghaW5mby5Ib2xkZXIoKS0+R2V0UmVhbE5hbWVkUHJvcGVydHlJ
blByb3RvdHlwZUNoYWluKHY4TmFtZSkuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgc3RvcmFnZS0+c2V0SXRlbShu
YW1lLCB2YWx1ZSwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCmluZGV4IGUyODY2NTQ5MGY4
YzhkYmI2OGE2MmZlNDc1OTM2YzliMmVjZGNiNGYuLjg3OTQ0OTA0M2RkYjU2MDc1MGE5OTU1ZDUy
MjQ0NDU4Yzg3Yzk3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKQEAgLTQ0LDEzICs0NCwx
MyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTdHlsZVNoZWV0TGlzdDo6bmFtZWRQcm9wZXJ0
eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZwogICAgIElOQ19TVEFUUygiRE9NLlN0eWxlU2hl
ZXRMaXN0Lk5hbWVkUHJvcGVydHlHZXR0ZXIiKTsKIAogICAgIGlmIChpbmZvLkhvbGRlcigpLT5I
YXNSZWFsTmFtZWRQcm9wZXJ0eShuYW1lKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAog
ICAgIC8vIFNlYXJjaCBzdHlsZSBzaGVldC4KICAgICBTdHlsZVNoZWV0TGlzdCogaW1wID0gVjhT
dHlsZVNoZWV0TGlzdDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgSFRNTFN0eWxlRWxl
bWVudCogaXRlbSA9IGltcC0+Z2V0TmFtZWRJdGVtKHRvV2ViQ29yZVN0cmluZyhuYW1lKSk7CiAg
ICAgaWYgKCFpdGVtKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsK
KyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIHRv
VjgoaXRlbS0+c2hlZXQoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNDdhMzJlNTkzYWZkOGY3ZDZmYTBhZmYyNWJmMjlj
NDhhZmI1MWIzZS4uYjFjZjIwM2Q4OTdlMmFmMmViNWZkOWMzM2U5NDVjZGFmNWE1MjE5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hl
ZFNoYWRlcnNDYWxsYmFjayhjb25zdAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKICAgICAgICAgVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFy
Z3NbMF0pID8gVjhXZWJHTFByb2dyYW06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVyPiA+IHNo
YWRlcnM7CkBAIC0zNTgsNyArMzU4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2soY29uc3QKICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFp
c1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNl
KGFyZ3NbMF0pKSB7CiAgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7Ci0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IFY4
V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4V2ViR0xQcm9ncmFtOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7CiAgICAgdW5z
aWduZWQgcG5hbWUgPSB0b0ludDMyKGFyZ3NbMV0pOwpAQCAtMzg3LDcgKzM4Nyw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFyYW1l
dGVyQ2FsbGJhY2soY29uc3QKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhX
ZWJHTFNoYWRlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKICAgICAgICAgVjhQcm94eTo6dGhy
b3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgV2Vi
R0xTaGFkZXIqIHNoYWRlciA9IFY4V2ViR0xTaGFkZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8g
VjhXZWJHTFNoYWRlcjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdz
WzBdKSkgOiAwOwogICAgIHVuc2lnbmVkIHBuYW1lID0gdG9JbnQzMihhcmdzWzFdKTsKQEAgLTQz
MCwxMyArNDMwLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1CiAgICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRP
ck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkg
ewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOwogICAgIH0KICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBWOFdlYkdMUHJvZ3Jh
bTo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMUHJvZ3JhbTo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwOwogCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPiAxICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzFdKSAmJiAhVjhXZWJHTFVuaWZv
cm1Mb2NhdGlvbjo6SGFzSW5zdGFuY2UoYXJnc1sxXSkpIHsKICAgICAgICAgVjhQcm94eTo6dGhy
b3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgYm9v
bCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2Vi
R0xVbmlmb3JtTG9jYXRpb24oYXJnc1sxXSwgb2spOwpAQCAtNTA2LDcgKzUwNiw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmVydGV4QXR0cmliQW5kVW5pZm9ybUhlbHBlcmYoY29u
c3Qgdjg6OkFyZ3VtZW50cyYKICAgICBlbHNlIHsKICAgICAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKICAgICAgICAgICAgIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCk7Ci0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3Io
KTsKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICAgICAg
fQogICAgICAgICBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1swXSwgb2sp
OwogICAgIH0KQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHZlcnRleEF0dHJpYkFuZFVuaWZvcm1IZWxwZXJmKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAKICAg
ICBpZiAoYXJnc1sxXS5Jc0VtcHR5KCkgfHwgIWFyZ3NbMV0tPklzQXJyYXkoKSkgewogICAgICAg
ICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwog
ICAgIH0KICAgICB2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJyYXkgPQogICAgICAgdjg6OkxvY2Fs
PHY4OjpBcnJheT46OkNhc3QoYXJnc1sxXSk7CkBAIC01NDQsNyArNTQ0LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZihjb25zdCB2
ODo6QXJndW1lbnRzJgogICAgIGlmICghZGF0YSkgewogICAgICAgICAvLyBGSVhNRTogY29uc2lk
ZXIgZGlmZmVyZW50IC8gYmV0dGVyIGV4Y2VwdGlvbiB0eXBlLgogICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBz
d2l0Y2ggKGZ1bmN0aW9uVG9DYWxsKSB7CkBAIC01ODIsNyArNTgyLDcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtSGVscGVyaShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+
IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0
aW9uOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBib29sIG9rID0g
ZmFsc2U7CiAgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZv
cm1Mb2NhdGlvbihhcmdzWzBdLCBvayk7CkBAIC02MDUsNyArNjA1LDcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtSGVscGVyaShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LAogCiAgICAgaWYgKGFyZ3NbMV0uSXNFbXB0eSgpIHx8ICFhcmdzWzFdLT5Jc0FycmF5KCkpIHsK
ICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKICAgICB9CiAgICAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IGFycmF5ID0KICAgICAgIHY4
OjpMb2NhbDx2ODo6QXJyYXk+OjpDYXN0KGFyZ3NbMV0pOwpAQCAtNjE0LDcgKzYxNCw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybUhlbHBlcmkoY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncywKICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVy
IGRpZmZlcmVudCAvIGJldHRlciBleGNlcHRpb24gdHlwZS4KICAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgc3dp
dGNoIChmdW5jdGlvblRvQ2FsbCkgewpAQCAtNjk3LDcgKzY5Nyw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1hdHJpeEhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzLAogCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChh
cmdzWzBdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6SGFzSW5zdGFuY2UoYXJnc1swXSkp
IHsKICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKICAgICB9CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1swXSwgb2spOwpA
QCAtNzIwLDcgKzcyMCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1h
dHJpeEhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogCiAgICAgaWYgKGFyZ3NbMl0u
SXNFbXB0eSgpIHx8ICFhcmdzWzJdLT5Jc0FycmF5KCkpIHsKICAgICAgICAgVjhQcm94eTo6dGhy
b3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgdjg6
OkhhbmRsZTx2ODo6QXJyYXk+IGFycmF5ID0KICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+OjpD
YXN0KGFyZ3NbMl0pOwpAQCAtNzI5LDcgKzcyOSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdW5pZm9ybU1hdHJpeEhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogICAg
IGlmICghZGF0YSkgewogICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgZGlmZmVyZW50IC8gYmV0
dGVyIGV4Y2VwdGlvbiB0eXBlLgogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lO
VEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwog
ICAgIH0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBzd2l0Y2ggKG1hdHJpeFNpemUp
IHsK
</data>
<flag name="review"
          id="149057"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="149076"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142929</attachid>
            <date>2012-05-20 17:24:39 -0700</date>
            <delta_ts>2012-05-21 19:30:29 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-86831-20120521092437.patch</filename>
            <type>text/plain</type>
            <size>36626</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkYzY3YjMwMDhiOWM2
ZDM2OGU3MzQ5NDdlMjgzZGQ3NzI3Yjg0My4uNmVmMjMyZjQ5N2NiZmY4NmQ0N2MxOThhOWQ1ZmQ4
YmM2ZDJiNmY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTA1LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbW92ZSBW
OFByb3h5Ojpub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjgzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyAncmV0dXJuIFY4UHJveHk6
Om5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCknCisgICAgICAgIHdpdGggJ3JldHVybiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKScuIFNlZSB0aGUgZGlzY3Vzc2lvbiBpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMzAgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZU92
ZXJsb2FkZWRGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0No
ZWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdGlvbk5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TVdyYXBwZXI6OmNvbnZlcnRFdmVudFRhcmdldFRvVjhPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4TlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bnBPYmplY3RTZXRQcm9w
ZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOFByb3h5OjpydW5TY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6dGhy
b3dFcnJvcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3Vz
dG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVm
ZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0V2ViR0xBcnJheUhlbHBlcik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVy
dHlHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1l
ZFByb3BlcnR5U2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01TdHJpbmdNYXA6Om5hbWVk
UHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRv
d0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6aW5kZXhlZFByb3Bl
cnR5R2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpuYW1lZFByb3BlcnR5
R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29sbGVjdGlv
bkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1l
ZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29s
bGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxDb2xsZWN0aW9uOjpu
YW1lZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
Rm9ybUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MRm9ybUVsZW1l
bnQ6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxGb3Jt
RWxlbWVudDo6bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
OEhUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6aW5kZXhlZFByb3BlcnR5R2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MUGx1Z0luRWxlbWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpucE9iamVjdE5hbWVkR2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5wT2JqZWN0TmFtZWRTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnBP
YmplY3RJbmRleGVkR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6Om5wT2JqZWN0SW5kZXhlZFNl
dHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFNlbGVjdEVsZW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhl
ZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhOYW1lZE5vZGVNYXA6OmluZGV4
ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE5hbWVkTm9kZU1hcDo6bmFt
ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxp
c3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhOb2RlTGlzdDo6bmFtZWRQcm9wZXJ0
eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdG9yYWdlR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4U3RvcmFnZTo6bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpzdG9y
YWdlU2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFN0eWxlU2hlZXRMaXN0OjpuYW1lZFBy
b3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFt
ZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRVbmlmb3JtQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6dmVydGV4QXR0cmliQW5k
VW5pZm9ybUhlbHBlcmYpOgorICAgICAgICAoV2ViQ29yZTo6dW5pZm9ybUhlbHBlcmkpOgorICAg
ICAgICAoV2ViQ29yZTo6dW5pZm9ybU1hdHJpeEhlbHBlcik6CisKIDIwMTItMDUtMjAgIFBoaWxp
cCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBY2N1bXVsYXRlIFNWRyBhbmlt
YXRpb25zIGludG8gZmlyc3QgY29udHJpYnV0aW5nIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZDY2Zjg0ZTBj
NzMyNDI4ZGUwZTkwNTQ2ZDk4NDQxMjM5MjRjYmMzNC4uZjI2ZGNhNjZiYjI3OGM0YmU0MGIyNmUw
NjFjZjY2Zjk0ZTJjNDA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEzNDcsNyArMTM0Nyw3IEBAIEVORAogICAgIH0K
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiAgICAgVjhQcm94eTo6dGhyb3dU
eXBlRXJyb3IoKTsKLSAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiBFTkQKICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAifVxuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8v
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTE2
NTksNyArMTY1OSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAg
ICAgIGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICAk
cGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUlu
ZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhh
c0luc3RhbmNlKCRhcmdWYWx1ZSkpIHtcbiI7CiAgICAgICAgICAgICAgICAgICAgICRwYXJhbWV0
ZXJDaGVja1N0cmluZyAuPSAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIjsK
LSAgICAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIjsKKyAgICAgICAgICAgICAgICAgICAg
JHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTtcbiI7CiAgICAgICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAu
PSAiICAgIH1cbiI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApp
bmRleCBlMmQxMGNmYmM3MWU3Mjc0OTNlZjgzODVhOTk3N2Q5NGIwMDlmYjU2Li5lNTU3ZGVmNWU2
Mzc3M2Y0ZmIwYTA1MDU4YjIzYjkzNzM5ODFkYmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTc5Niw3ICsx
Nzk2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAoKGFyZ3MuTGVuZ3RoKCkg
PT0gMSAmJiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNBcnJheSgpKSkpCiAgICAg
ICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kN0NhbGxiYWNrKGFyZ3MpOwogICAgIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCk7Ci0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNsYXNzTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKQEAgLTE4NTQsNyArMTg1NCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
b3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAg
aWYgKChhcmdzLkxlbmd0aCgpID09IDEgJiYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8IGFyZ3NbMF0t
PklzVW5kZWZpbmVkKCkgfHwgYXJnc1swXS0+SXNTdHJpbmcoKSB8fCBhcmdzWzBdLT5Jc09iamVj
dCgpKSkpCiAgICAgICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kMTJDYWxsYmFjayhhcmdzKTsK
ICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgIHJldHVybiBub3RIYW5kbGVkQnlJ
bnRlcmNlcHRvcigpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OENvbGxlY3Rpb24uaAppbmRleCAxMzYyMDRkMDI5ZGY0YTFhMmM4MTU4Nzc5MTU3YWU0NTNiOTQy
YzdlLi42ZWFkZTk2MGUzNTA0NjQzYmQ1ODQ2YjZhY2I0N2JiMzg5ZDU0ZmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaApAQCAtNzQsOSArNzQsOSBAQCB0ZW1w
bGF0ZTxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBJdGVtVHlwZT4gc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBnZXROYW1lZAogdGVtcGxhdGU8Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3MgSXRl
bVR5cGU+IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29sbGVjdGlvbk5hbWVkUHJvcGVy
dHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgaWYgKCFpbmZvLkhvbGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0
eUluUHJvdG90eXBlQ2hhaW4obmFtZSkuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOwogICAgIGlmIChpbmZvLkhvbGRlcigpLT5IYXNSZWFsTmFtZWRDYWxsYmFja1Byb3BlcnR5
KG5hbWUpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIGdldE5hbWVk
UHJvcGVydHlPZkNvbGxlY3Rpb248Q29sbGVjdGlvbiwgSXRlbVR5cGU+KG5hbWUsIGluZm8uSG9s
ZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IDJjZDc5YTk3Mjk5ZTdiNjQwNDkyNTNlYjQ2ODY5YTUw
MjA1NmMwNGIuLjJjNGI5ZmYyNDcwYjkwM2MyM2QzMmNlMTViOWQxNzM5YTRkYjE0MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMjY1LDcgKzI2
NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdyYXBwZXI6OmNvbnZlcnRFdmVudFRh
cmdldFRvVjhPYmplY3QoRXZlbnRUYXJnZXQqIHRhCiAgICAgRE9NX0VWRU5UX1RBUkdFVF9JTlRF
UkZBQ0VTX0ZPUl9FQUNIKFRSWV9UT19XUkFQX1dJVEhfSU5URVJGQUNFKQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Cisg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiBQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+IFY4RE9NV3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcih2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCBpc0F0dHJpYnV0ZSwgTGlzdGVuZXJMb29rdXBUeXBlIGxvb2t1cCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKaW5kZXggNWE1OGQ4Mjcy
MjZhOTI3NmZhODdiZDg3NDE5OWJhMTljMzU4ZWVhMy4uNTBiYjU3ZWI4OTkwNjVjNGFmZmE0MzY0
ODNiODI0ODg1NDhhMDBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVj
dC5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5w
T2JqZWN0U2V0UHJvcGVydHkodjg6OkxvY2FsPHY4OjpPYmplY3Q+IHNlbGYsIE5QSQogICAgICAg
ICBpZiAoc3VjY2VzcykKICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsgLy8gSW50ZXJjZXB0IHRo
ZSBjYWxsLgogICAgIH0KLSAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBiZDJjMDc4YzE0NmZiNjczOWJkNzFiYjdmOTUwZGE1
YTY4NDI4YmI3Li5lODEzY2FhODQ2YmExMjM0MTZjZjU0YjEwNmFmMGFiN2ZhZGExMWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtMzQyLDcgKzM0Miw3IEBAIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZSwgTm9kZSogbm9kCiB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpydW5T
Y3JpcHQodjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQpCiB7CiAgICAgaWYgKHNjcmlwdC5J
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAg
ICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsKIAogICAgIFY4R0NDb250cm9sbGVy
OjpjaGVja01lbW9yeVVzYWdlKCk7CiAgICAgaWYgKFY4UmVjdXJzaW9uU2NvcGU6OnJlY3Vyc2lv
bkxldmVsKCkgPj0ga01heFJlY3Vyc2lvbkRlcHRoKQpAQCAtMzY5LDExICszNjksMTEgQEAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNjcmlw
dD4gc2NyaXB0KQogICAgIC8vIEhhbmRsZSBWOCBpbnRlcm5hbCBlcnJvciBzaXR1YXRpb24gKE91
dC1vZi1tZW1vcnkpLgogICAgIGlmICh0cnlDYXRjaC5IYXNDYXVnaHQoKSkgewogICAgICAgICBB
U1NFUlQocmVzdWx0LklzRW1wdHkoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsKICAgICB9
CiAKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRC
eUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOwog
CiAgICAgaWYgKHY4OjpWODo6SXNEZWFkKCkpCiAgICAgICAgIGhhbmRsZUZhdGFsRXJyb3JJblY4
KCk7CkBAIC02MjcsNyArNjI3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UHJveHk6OnRo
cm93RXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHYKICAgICAgICAg
cmV0dXJuIHY4OjpUaHJvd0V4Y2VwdGlvbih2ODo6RXhjZXB0aW9uOjpFcnJvcih2OFN0cmluZyht
ZXNzYWdlLCBpc29sYXRlKSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4IDhmMzMzNzY5ZTEzZjMzMWI5MTNlZTRkNGJmZmVj
OTMxNmUxOGYxM2YuLmViOGFjOGM3OWRiYTg4MDQ4MGZiZDRjZGRjZjJhY2NjODFlZGE0NWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKQEAgLTMxMywxMyArMzEzLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiB0b1Y4Q29udGV4
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3Js
ZENvbnRleHQpOwogCi0gICAgLy8gVXNlZCBieSBhbiBpbnRlcmNlcHRvciBjYWxsYmFjayB0aGF0
IGl0IGhhc24ndCBmb3VuZCBhbnl0aGluZyB0bwotICAgIC8vIGludGVyY2VwdC4KLSAgICBpbmxp
bmUgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
Ci0gICAgewotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgfQot
CiAgICAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlByaW1pdGl2ZT4gdGhyb3dFcnJvcihFeGNlcHRp
b25Db2RlIGVjLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApCiAgICAgewogICAgICAgICBpZiAo
IXY4OjpWODo6SXNFeGVjdXRpb25UZXJtaW5hdGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApp
bmRleCA4MGZhNWMwZjc2NGEzYmMwMTRiN2I0MzQ1NDNjZGFkNGIyYWU2MDk5Li5jMmZiMDNhNWMz
ZGY0OTEwZTZhYWQwNDJkMTdkNThlYWZjNjRlYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApA
QCAtODIsNyArODIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJh
eVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KGNvbnN0IHY4OjpBcmd1bQogICAgIFJlZlB0cjxBcnJh
eUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYsIG9mZnNldCwgbGVuZ3RoKTsK
ICAgICBpZiAoIWFycmF5KSB7CiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihJTkRF
WF9TSVpFX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
OwogICAgIH0KICAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmpl
Y3QgZm9yIHRoZSBhcnJheS4KICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5I
b2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKSB7CiAgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogCiAgICAgQ1BsdXNQbHVzQXJyYXlUeXBlKiBpbXBsID0g
SmF2YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVy
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgfQogCiAgICAgVjhQcm94eTo6c2V0RE9N
RXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKaW5kZXggNTMwOGVm
ZTUwMzk5ZDhhNTViODI2MzY4MmI2MzM0YmU0YzUwZDAyNS4uZWM3MzMwZmY4YzQ3NmZkMjE3YjBm
MTRjZWU2NDBjNTIyOTM3YzIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAK
QEAgLTE5NSwxNCArMTk1LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENTU1N0eWxlRGVj
bGFyYXRpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTCiAgICAgSU5DX1NU
QVRTKCJET00uQ1NTU3R5bGVEZWNsYXJhdGlvbi5OYW1lZFByb3BlcnR5R2V0dGVyIik7CiAgICAg
Ly8gRmlyc3QgbG9vayBmb3IgQVBJIGRlZmluZWQgYXR0cmlidXRlcyBvbiB0aGUgc3R5bGUgZGVj
bGFyYXRpb24gb2JqZWN0LgogICAgIGlmIChpbmZvLkhvbGRlcigpLT5IYXNSZWFsTmFtZWRDYWxs
YmFja1Byb3BlcnR5KG5hbWUpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgLy8g
U2VhcmNoIHRoZSBzdHlsZSBkZWNsYXJhdGlvbi4KICAgICBDU1NQcm9wZXJ0eUluZm8qIHByb3BJ
bmZvID0gY3NzUHJvcGVydHlJbmZvKG5hbWUpOwogCiAgICAgLy8gRG8gbm90IGhhbmRsZSBub24t
cHJvcGVydHkgbmFtZXMuCiAgICAgaWYgKCFwcm9wSW5mbykKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGltcCA9IFY4Q1NTU3R5bGVEZWNsYXJh
dGlvbjo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBjc3NW
YWx1ZSA9IGltcC0+Z2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHN0YXRpY19jYXN0PENTU1By
b3BlcnR5SUQ+KHByb3BJbmZvLT5wcm9wSUQpKTsKQEAgLTIyOCw3ICsyMjgsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5U2V0dGVy
KHY4OjpMb2NhbDx2ODo6UwogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGltcCA9IFY4Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgQ1NTUHJvcGVydHlJ
bmZvKiBwcm9wSW5mbyA9IGNzc1Byb3BlcnR5SW5mbyhuYW1lKTsKICAgICBpZiAoIXByb3BJbmZv
KQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0
dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgU3RyaW5nIHByb3BlcnR5VmFsdWUg
PSB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKHZhbHVlKTsKICAgICBpZiAocHJvcEluZm8t
PmhhZFBpeGVsT3JQb3NQcmVmaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAppbmRleCA5MzM1ZTA5ODAx
NjA5YjhhMWM4ZjhiOWVhZDg0YmY2OWUxNTE1YWMxLi4yODRjNzNlY2MxYjhjZWYxNmE1MjIzZWJk
ZjU1ZTU2NjFlNmI4MDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3BlcnR5R2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogICAgIElOQ19TVEFUUygiRE9NLkRPTVN0cmluZ01hcC5O
YW1lZFByb3BlcnR5R2V0dGVyIik7CiAgICAgU3RyaW5nIHZhbHVlID0gVjhET01TdHJpbmdNYXA6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpLT5pdGVtKHRvV2ViQ29yZVN0cmluZyhuYW1lKSk7CiAg
ICAgaWYgKHZhbHVlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIHJl
dHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
MmFiY2YzY2E2MjE4YjliZjJkMzU2NzlkODE4NmJjMDgwZjhiOTA5NC4uNzMyMDhhYjUwZWJhMDA0
MDgyODAxYTYwY2ZmMzdjNTlhNjRjZTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCkBAIC00NzMsMTcgKzQ3
MywxNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XaW5kb3c6OmluZGV4ZWRQcm9wZXJ0
eUdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3QgdgogCiAgICAgRE9NV2luZG93KiB3aW5kb3cg
PSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgaWYgKCF3aW5kb3cp
Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3ct
PmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAog
ICAgIEZyYW1lKiBjaGlsZCA9IGZyYW1lLT50cmVlKCktPnNjb3BlZENoaWxkKGluZGV4KTsKICAg
ICBpZiAoY2hpbGQpCiAgICAgICAgIHJldHVybiB0b1Y4KGNoaWxkLT5kb21XaW5kb3coKSwgaW5m
by5HZXRJc29sYXRlKCkpOwogCi0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiAKQEAgLTQ5MywxMiAr
NDkzLDEyIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6bmFtZWRQcm9wZXJ0
eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtCiAKICAgICBET01XaW5kb3cqIHdpbmRv
dyA9IFY4RE9NV2luZG93Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBpZiAoIXdpbmRv
dykKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIEZyYW1lKiBmcmFtZSA9IHdpbmRv
dy0+ZnJhbWUoKTsKICAgICAvLyB3aW5kb3cgaXMgZGV0YWNoZWQgZnJvbSBhIGZyYW1lLgogICAg
IGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwor
ICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICAvLyBTZWFyY2gg
c3ViLWZyYW1lcy4KICAgICBBdG9taWNTdHJpbmcgcHJvcE5hbWUgPSB2OFN0cmluZ1RvQXRvbWlj
V2ViQ29yZVN0cmluZyhuYW1lKTsKQEAgLTUwOCw3ICs1MDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhET01XaW5kb3c6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbQogCiAgICAgLy8gU2VhcmNoIElETCBmdW5jdGlvbnMgZGVmaW5lZCBpbiB0aGUgcHJv
dG90eXBlCiAgICAgaWYgKCFpbmZvLkhvbGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0eShuYW1l
KS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwor
ICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICAvLyBTZWFyY2gg
bmFtZWQgaXRlbXMgaW4gdGhlIGRvY3VtZW50LgogICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKQEAgLTUyNCw3ICs1MjQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhE
T01XaW5kb3c6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xs
ZWN0aW9uQ3VzdG9tLmNwcAppbmRleCAwYTA1OTQ4MzNlNmI3YmIzMzdmM2JlZDlhZDJjMTg5ZTVl
ZjdkNmYzLi5jOTdhNjEyZDdjNmFhMzAxYTMzZTkzMTY3ZThhODJlOTFmMDcwOGQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29sbGVjdGlv
bkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC03Niw5ICs3Niw5IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyCiAgICAgSU5DX1NUQVRTKCJET00uSFRNTEFsbENvbGxlY3Rpb24uTmFtZWRQcm9w
ZXJ0eUdldHRlciIpOwogCiAgICAgaWYgKCFpbmZvLkhvbGRlcigpLT5HZXRSZWFsTmFtZWRQcm9w
ZXJ0eUluUHJvdG90eXBlQ2hhaW4obmFtZSkuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOwogICAgIGlmIChpbmZvLkhvbGRlcigpLT5IYXNSZWFsTmFtZWRDYWxsYmFja1Byb3Bl
cnR5KG5hbWUpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgSFRNTEFsbENvbGxl
Y3Rpb24qIGltcCA9IFY4SFRNTEFsbENvbGxlY3Rpb246OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGltcCwgdjhTdHJpbmdUb0F0b21pY1dlYkNvcmVT
dHJpbmcobmFtZSksIGluZm8uR2V0SXNvbGF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApp
bmRleCAyZjFlYTU0ZThlMjZlOWM2M2MzYTIyNjgzZWUyMzM5YWMzNjc0NmUyLi45MTA3NDdiZWRl
ZjZjY2ZjNjE4Yzk3MzI0YTBmMzYyNTE5MjJlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENvbGxlY3Rpb25DdXN0b20uY3Bw
CkBAIC02NSw5ICs2NSw5IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxDb2xsZWN0aW9u
OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nCiAgICAgSU5DX1NUQVRT
KCJET00uSFRNTENvbGxlY3Rpb24uTmFtZWRQcm9wZXJ0eUdldHRlciIpOwogCiAgICAgaWYgKCFp
bmZvLkhvbGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0eUluUHJvdG90eXBlQ2hhaW4obmFtZSku
SXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIGlmIChpbmZvLkhvbGRl
cigpLT5IYXNSZWFsTmFtZWRDYWxsYmFja1Byb3BlcnR5KG5hbWUpKQotICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpOwogCiAgICAgSFRNTENvbGxlY3Rpb24qIGltcCA9IFY4SFRNTENvbGxlY3Rpb246
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGltcCwg
djhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSksIGluZm8uR2V0SXNvbGF0ZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxGb3Jt
RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IGY4NTI0YzE2MDBhYWMyNDE1NzhlNjY1ZDRk
ZjU3ODVkZmVmNjM4N2IuLjRlNjI5MmRiN2I2ZTYyZTdlYzFhODIzODA5NWRiYmY1MjkxODBmODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxGb3Jt
RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhIVE1MRm9ybUVsZW1lbnQ6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcih1aW50
MzJfdCBpbmRleCwgYwogCiAgICAgUmVmUHRyPE5vZGU+IGZvcm1FbGVtZW50ID0gZm9ybS0+ZWxl
bWVudHMoKS0+aXRlbShpbmRleCk7CiAgICAgaWYgKCFmb3JtRWxlbWVudCkKLSAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKTsKICAgICByZXR1cm4gdG9WOChmb3JtRWxlbWVudC5yZWxlYXNlKCksIGlu
Zm8uR2V0SXNvbGF0ZSgpKTsKIH0KIApAQCAtNjUsNyArNjUsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhIVE1MRm9ybUVsZW1lbnQ6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbgogICAgICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gZWxlbWVudHM7CiAgICAgICAg
IGltcC0+Z2V0TmFtZWRFbGVtZW50cyh2LCBlbGVtZW50cyk7CiAgICAgICAgIGlmIChlbGVtZW50
cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3Io
KTsKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAK
ICAgICAvLyBTZWNvbmQgY2FsbCBtYXkgcmV0dXJuIGRpZmZlcmVudCByZXN1bHRzIGZyb20gdGhl
IGZpcnN0IGNhbGwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDE2Y2Q1
OWRhYWFmMDZhZGUwYzQ1NzgwN2QzNGY5NTVkZTM5YTUyNjQuLjEzN2Y5MWJiZjNiMDBmZWQwNjQ0
OTBkMTZmOTYzNWE0ZWEwMzc3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3Bw
CkBAIC01Nyw3ICs1Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxGcmFtZVNldEVs
ZW1lbnQ6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTCiAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2MtPmZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gdG9WOChmcmFt
ZS0+ZG9tV2luZG93KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0
aW9uQ3VzdG9tLmNwcAppbmRleCBkNTk1ZDBlZWMyNGViY2U0YTllZDhmYzg1MWJiODUyNDFmMDZi
ZTRkLi4yZWM2ZjExOWJjYmEzYTZhZmRmN2MxYWUwNTZiYjEyM2MzMjUxNzZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4ZWRQcm9wZXJ0eUdl
dHRlcih1aW50MzJfdCBpbgogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IGNvbGxlY3Rpb24t
Pml0ZW0oaW5kZXgpOwogICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
OwogCiAgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgaW5mby5HZXRJc29sYXRlKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TFBsdWdJbkVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTFBsdWdJbkVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDFjMTE0YzVmMzUwY2M0MjJk
MTA0MTZjYjNiMmIyOTVlM2QzZTRlNTEuLmIzZjdkMzJjNjE4ZmE0Njk0NzA2MTFiZTY0NWJmZjNi
YWUzN2IyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhUTUxQbHVnSW5FbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MUGx1Z0luRWxlbWVudEN1c3RvbS5jcHAKQEAgLTUwLDExICs1MCwx
MSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5wT2JqZWN0TmFtZWRHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbgogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBpbXAg
PSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3JpcHRJbnN0YW5jZSBzY3JpcHRJ
bnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKICAgICBpZiAoIXNjcmlwdEluc3RhbmNlKQot
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGlu
c3RhbmNlID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpOZXcoc2NyaXB0SW5zdGFuY2UtPmluc3Rh
bmNlKCkpOwogICAgIGlmIChpbnN0YW5jZS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiAKICAgICByZXR1cm4gbnBPYmplY3RHZXROYW1lZFByb3BlcnR5KGluc3RhbmNlLCBu
YW1lKTsKIH0KQEAgLTY1LDExICs2NSwxMSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG5wT2JqZWN0TmFtZWRTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OgogICAg
IEhUTUxQbHVnSW5FbGVtZW50KiBpbXAgPSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAg
ICBTY3JpcHRJbnN0YW5jZSBzY3JpcHRJbnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKICAg
ICBpZiAoIXNjcmlwdEluc3RhbmNlKQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpO
ZXcoc2NyaXB0SW5zdGFuY2UtPmluc3RhbmNlKCkpOwogICAgIGlmIChpbnN0YW5jZS5Jc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICByZXR1cm4gbnBPYmplY3RTZXRO
YW1lZFByb3BlcnR5KGluc3RhbmNlLCBuYW1lLCB2YWx1ZSk7CiB9CkBAIC0xMzUsMTEgKzEzNSwx
MSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3RJbmRleGVkR2V0dGVyKHVpbnQzMl90
IGluZGV4LCBjb25zdCB2ODo6QWNjZXNzb3JJbgogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBpbXAg
PSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3JpcHRJbnN0YW5jZSBzY3JpcHRJ
bnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKICAgICBpZiAoIXNjcmlwdEluc3RhbmNlKQot
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGlu
c3RhbmNlID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpOZXcoc2NyaXB0SW5zdGFuY2UtPmluc3Rh
bmNlKCkpOwogICAgIGlmIChpbnN0YW5jZS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiAKICAgICByZXR1cm4gbnBPYmplY3RHZXRJbmRleGVkUHJvcGVydHkoaW5zdGFuY2Us
IGluZGV4KTsKIH0KQEAgLTE1MSwxMSArMTUxLDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBu
cE9iamVjdEluZGV4ZWRTZXR0ZXIodWludDMyX3QgaW5kZXgsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIGltcCA9IEM6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogICAgIFNjcmlwdEluc3RhbmNlIHNjcmlwdEluc3RhbmNlID0gaW1wLT5nZXRJbnN0YW5jZSgp
OwogICAgIGlmICghc2NyaXB0SW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJ
bnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAK
ICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFuY2UgPSB2ODo6TG9jYWw8djg6Ok9iamVj
dD46Ok5ldyhzY3JpcHRJbnN0YW5jZS0+aW5zdGFuY2UoKSk7CiAgICAgaWYgKGluc3RhbmNlLklz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAg
ICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIHJldHVybiBucE9iamVj
dFNldEluZGV4ZWRQcm9wZXJ0eShpbnN0YW5jZSwgaW5kZXgsIHZhbHVlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxlY3RFbGVtZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxTZWxl
Y3RFbGVtZW50Q3VzdG9tLmNwcAppbmRleCBlMWQ1OTE0YWE3MDFkZWY5Zjg1MGNiY2E1MDY3MDcy
NDM0NDRhNTZhLi4wMTViZTNhMGM2MjIxYjE0NjU4NjgzNDUwODc3MmEzMDI5NTVhMDMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MU2VsZWN0RWxl
bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCkBAIC01MSw3ICs1MSw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEhUTUxTZWxlY3RFbGVtZW50OjppbmRleGVkUHJvcGVydHlHZXR0ZXIodWlu
dDMyX3QgaW5kZXgsCiAgICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVyKGlu
Zm8uSG9sZGVyKCkpKTsKICAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gVjhIVE1MU2VsZWN0RWxl
bWVudDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSktPml0ZW0oaW5kZXgpOwogICAgIGlmICghcmVz
dWx0KQotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgcmV0dXJuIHRvVjgocmVzdWx0
LnJlbGVhc2UoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKaW5k
ZXggZDg2OWRjM2I2MDlhMWY0ZTM1OWRmM2M4NmRmNGM3OTRhYjg3ZjMyMS4uNDdmZWIwNDM1NTE4
NDVjNjVjYzIzMGI1YThmOWRiNzExZDJmYjM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkBAIC00
OSw3ICs0OSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5hbWVkTm9kZU1hcDo6aW5kZXhl
ZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90IGluZGV4LCBjb25zCiAgICAgTmFtZWROb2RlTWFwKiBp
bXAgPSBWOE5hbWVkTm9kZU1hcDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgUmVmUHRy
PE5vZGU+IHJlc3VsdCA9IGltcC0+aXRlbShpbmRleCk7CiAgICAgaWYgKCFyZXN1bHQpCi0gICAg
ICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgp
LCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CkBAIC01OSwxNCArNTksMTQgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4TmFtZWROb2RlTWFwOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPgogICAgIElOQ19TVEFUUygiRE9NLk5hbWVkTm9kZU1hcC5OYW1lZFByb3BlcnR5
R2V0dGVyIik7CiAKICAgICBpZiAoIWluZm8uSG9sZGVyKCktPkdldFJlYWxOYW1lZFByb3BlcnR5
SW5Qcm90b3R5cGVDaGFpbihuYW1lKS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KCk7CiAgICAgaWYgKGluZm8uSG9sZGVyKCktPkhhc1JlYWxOYW1lZENhbGxiYWNrUHJvcGVydHko
bmFtZSkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBOYW1lZE5vZGVNYXAqIGlt
cCA9IFY4TmFtZWROb2RlTWFwOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBSZWZQdHI8
Tm9kZT4gcmVzdWx0ID0gaW1wLT5nZXROYW1lZEl0ZW0odG9XZWJDb3JlU3RyaW5nKG5hbWUpKTsK
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9y
KCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIHJldHVy
biB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNw
cAppbmRleCBiMWU1ODI2MWEyYTk3NzI0MmUxZWJiMTIzOWM0ZmFhZmZmMDVhMTQxLi42NTZiOWQ1
MTA1ZDIyNGYyMDMyZGQyNDIzNGIxYTNiYjk1NzM5ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwCkBAIC01NCw3
ICs1NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGVMaXN0OjpuYW1lZFByb3BlcnR5
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lCiAKICAgICBSZWZQdHI8Tm9kZT4gcmVz
dWx0ID0gbGlzdC0+aXRlbVdpdGhOYW1lKGtleSk7CiAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCBp
bmZvLkdldElzb2xhdGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFN0b3JhZ2VDdXN0b20uY3BwCmluZGV4IDQyNDdmZGU5ODk5MDUxOGY1Yjk4
ODIyOThhYjYzMDRlZmU0YWRkNDEuLmYyNzkzNDg5YjU5NWJjNDNiZTA4NDdmZjhlOTM4MzdmMDU4
MGY3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0
b3JhZ2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFN0b3JhZ2VDdXN0b20uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gc3RvcmFnZUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhOYW1lLCBjb25z
dCB2CiAgICAgaWYgKG5hbWUgIT0gImxlbmd0aCIgJiYgc3RvcmFnZS0+Y29udGFpbnMobmFtZSkp
CiAgICAgICAgIHJldHVybiB2OFN0cmluZyhzdG9yYWdlLT5nZXRJdGVtKG5hbWUpKTsKIAotICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U3RvcmFnZTo6aW5k
ZXhlZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90IGluZGV4LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQpAQCAtNzUsNyArNzUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTdG9yYWdl
OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogewogICAg
IElOQ19TVEFUUygiRE9NLlN0b3JhZ2UuTmFtZWRQcm9wZXJ0eUdldHRlciIpOwogICAgIGlmICgh
aW5mby5Ib2xkZXIoKS0+R2V0UmVhbE5hbWVkUHJvcGVydHlJblByb3RvdHlwZUNoYWluKG5hbWUp
LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Cisg
ICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICByZXR1cm4gc3RvcmFn
ZUdldHRlcihuYW1lLCBpbmZvKTsKIH0KIApAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gc3RvcmFnZVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gdjhO
YW1lLCB2ODo6TG9jCiAgICAgICAgIHJldHVybiB2OFZhbHVlOwogCiAgICAgaWYgKCFpbmZvLkhv
bGRlcigpLT5HZXRSZWFsTmFtZWRQcm9wZXJ0eUluUHJvdG90eXBlQ2hhaW4odjhOYW1lKS5Jc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBzdG9yYWdlLT5zZXRJdGVtKG5hbWUsIHZhbHVlLCBlYyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAKaW5kZXggZTI4NjY1NDkwZjhjOGRiYjY4YTYyZmU0NzU5MzZjOWIyZWNkY2I0
Zi4uODc5NDQ5MDQzZGRiNTYwNzUwYTk5NTVkNTIyNDQ0NThjODdjOTdiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRM
aXN0Q3VzdG9tLmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFN0eWxlU2hlZXRMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
CiAgICAgSU5DX1NUQVRTKCJET00uU3R5bGVTaGVldExpc3QuTmFtZWRQcm9wZXJ0eUdldHRlciIp
OwogCiAgICAgaWYgKGluZm8uSG9sZGVyKCktPkhhc1JlYWxOYW1lZFByb3BlcnR5KG5hbWUpKQot
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgLy8gU2VhcmNoIHN0eWxlIHNoZWV0Lgog
ICAgIFN0eWxlU2hlZXRMaXN0KiBpbXAgPSBWOFN0eWxlU2hlZXRMaXN0Ojp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKICAgICBIVE1MU3R5bGVFbGVtZW50KiBpdGVtID0gaW1wLT5nZXROYW1lZEl0
ZW0odG9XZWJDb3JlU3RyaW5nKG5hbWUpKTsKICAgICBpZiAoIWl0ZW0pCi0gICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KCk7CiAKICAgICByZXR1cm4gdG9WOChpdGVtLT5zaGVldCgpLCBpbmZvLkdldElz
b2xhdGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA0
N2EzMmU1OTNhZmQ4ZjdkNmZhMGFmZjI1YmYyOWM0OGFmYjUxYjNlLi5iMWNmMjAzZDg5N2UyYWYy
ZWI1ZmQ5YzMzZTk0NWNkYWY1YTUyMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAKQEAgLTI3NSw3ICsyNzUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKGNvbnN0CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAh
aXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5j
ZShhcmdzWzBdKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAg
ICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpI
YW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBW
OFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMUHJvZ3JhbTo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAwOwogICAgIFZl
Y3RvcjxSZWZQdHI8V2ViR0xTaGFkZXI+ID4gc2hhZGVyczsKQEAgLTM1OCw3ICszNTgsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1Q
YXJhbWV0ZXJDYWxsYmFjayhjb25zdAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFWOFdlYkdMUHJvZ3JhbTo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKICAgICAgICAgVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKICAgICB9CiAg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gVjhXZWJHTFByb2dyYW06Okhhc0luc3RhbmNlKGFy
Z3NbMF0pID8gVjhXZWJHTFByb2dyYW06OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICB1bnNpZ25lZCBwbmFtZSA9IHRvSW50MzIoYXJnc1sx
XSk7CkBAIC0zODcsNyArMzg3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayhjb25zdAogICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5k
ZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMU2hhZGVyOjpIYXNJbnN0YW5jZShhcmdz
WzBdKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAgICByZXR1
cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpOwogICAgIH0KICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gVjhXZWJHTFNo
YWRlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFdlYkdMU2hhZGVyOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7CiAgICAgdW5zaWduZWQgcG5h
bWUgPSB0b0ludDMyKGFyZ3NbMV0pOwpAQCAtNDMwLDEzICs0MzAsMTMgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3UKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJHTFBy
b2dyYW06Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7CiAgICAgICAgIFY4UHJveHk6OnRocm93VHlw
ZUVycm9yKCk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAg
ICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogICAgIFdlYkdMUHJv
Z3JhbSogcHJvZ3JhbSA9IFY4V2ViR0xQcm9ncmFtOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4
V2ViR0xQcm9ncmFtOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3Nb
MF0pKSA6IDA7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDEgJiYgIWlzVW5kZWZpbmVkT3JO
dWxsKGFyZ3NbMV0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdz
WzFdKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAgICByZXR1
cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpOwogICAgIH0KICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgV2ViR0xVbmlm
b3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihhcmdzWzFdLCBv
ayk7CkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2ZXJ0
ZXhBdHRyaWJBbmRVbmlmb3JtSGVscGVyZihjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIGVsc2Ug
ewogICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFy
Z3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxvY2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkg
ewogICAgICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKLSAgICAgICAgICAgIHJl
dHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICAgICAgcmV0dXJuIHY4OjpI
YW5kbGU8djg6OlZhbHVlPigpOwogICAgICAgICB9CiAgICAgICAgIGxvY2F0aW9uID0gdG9XZWJH
TFVuaWZvcm1Mb2NhdGlvbihhcmdzWzBdLCBvayk7CiAgICAgfQpAQCAtNTM1LDcgKzUzNSw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmVydGV4QXR0cmliQW5kVW5pZm9ybUhlbHBl
cmYoY29uc3Qgdjg6OkFyZ3VtZW50cyYKIAogICAgIGlmIChhcmdzWzFdLklzRW1wdHkoKSB8fCAh
YXJnc1sxXS0+SXNBcnJheSgpKSB7CiAgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7
Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogICAgIHY4OjpIYW5kbGU8djg6OkFy
cmF5PiBhcnJheSA9CiAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2FzdChhcmdzWzFdKTsK
QEAgLTU0NCw3ICs1NDQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZlcnRleEF0
dHJpYkFuZFVuaWZvcm1IZWxwZXJmKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAgICAgaWYgKCFkYXRh
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkaWZmZXJlbnQgLyBiZXR0ZXIgZXhjZXB0
aW9uIHR5cGUuCiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBh
cmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRv
cigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHN3aXRjaCAoZnVuY3Rpb25Ub0NhbGwpIHsKQEAg
LTU4Miw3ICs1ODIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuaWZvcm1IZWxw
ZXJpKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJn
c1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRpb246Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7
CiAgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7Ci0gICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiAgICAgfQogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGFyZ3NbMF0sIG9rKTsKQEAg
LTYwNSw3ICs2MDUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuaWZvcm1IZWxw
ZXJpKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsCiAKICAgICBpZiAoYXJnc1sxXS5Jc0VtcHR5
KCkgfHwgIWFyZ3NbMV0tPklzQXJyYXkoKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICB2ODo6SGFuZGxl
PHY4OjpBcnJheT4gYXJyYXkgPQogICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QoYXJn
c1sxXSk7CkBAIC02MTQsNyArNjE0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1
bmlmb3JtSGVscGVyaShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogICAgIGlmICghZGF0YSkg
ewogICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgZGlmZmVyZW50IC8gYmV0dGVyIGV4Y2VwdGlv
biB0eXBlLgogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJn
cy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3Io
KTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBzd2l0Y2ggKGZ1bmN0aW9uVG9DYWxsKSB7CkBAIC02
OTcsNyArNjk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtTWF0cml4
SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsCiAKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA+IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFWOFdlYkdMVW5pZm9ybUxv
Y2F0aW9uOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5
cGVFcnJvcigpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBib29sIG9r
ID0gZmFsc2U7CiAgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVu
aWZvcm1Mb2NhdGlvbihhcmdzWzBdLCBvayk7CkBAIC03MjAsNyArNzIwLDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtTWF0cml4SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MsCiAKICAgICBpZiAoYXJnc1syXS5Jc0VtcHR5KCkgfHwgIWFyZ3NbMl0tPklzQXJy
YXkoKSkgewogICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwotICAgICAgICByZXR1
cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpOwogICAgIH0KICAgICB2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJyYXkgPQog
ICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QoYXJnc1syXSk7CkBAIC03MjksNyArNzI5
LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtTWF0cml4SGVscGVyKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsCiAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBjb25zaWRlciBkaWZmZXJlbnQgLyBiZXR0ZXIgZXhjZXB0aW9uIHR5cGUuCiAgICAgICAg
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7
Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgfQogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIHN3aXRjaCAobWF0cml4U2l6ZSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>