<?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>173182</bug_id>
          
          <creation_ts>2017-06-09 14:35:30 -0700</creation_ts>
          <short_desc>Use WTF::Function instead of std::function in NetworkProcess code</short_desc>
          <delta_ts>2017-06-09 15:38:47 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317632</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 14:35:30 -0700</bug_when>
    <thetext>Use WTF::Function instead of std::function in NetworkProcess code to avoid unnecessary copying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317633</commentid>
    <comment_count>1</comment_count>
      <attachid>312490</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 14:36:40 -0700</bug_when>
    <thetext>Created attachment 312490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317634</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 14:39:15 -0700</bug_when>
    <thetext>Attachment 312490 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/NetworkProcess.h:173:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:112:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:51:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:65:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:113:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:182:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:228:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:259:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp:159:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:171:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:186:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 14 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317636</commentid>
    <comment_count>3</comment_count>
      <attachid>312491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 14:43:07 -0700</bug_when>
    <thetext>Created attachment 312491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317637</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 14:46:26 -0700</bug_when>
    <thetext>Attachment 312491 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/NetworkProcess.h:173:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:96:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:112:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:51:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:65:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:113:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:182:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:228:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:259:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp:159:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:171:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:186:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 14 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317673</commentid>
    <comment_count>5</comment_count>
      <attachid>312491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 15:38:45 -0700</bug_when>
    <thetext>Comment on attachment 312491
Patch

Clearing flags on attachment: 312491

Committed r218024: &lt;http://trac.webkit.org/changeset/218024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317674</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-09 15:38:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312490</attachid>
            <date>2017-06-09 14:36:40 -0700</date>
            <delta_ts>2017-06-09 14:43:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173182-20170609143640.patch</filename>
            <type>text/plain</type>
            <size>19618</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGMwYWE1OTUzNGFjNzc0
MGNiNzQ5ZDc5ZjUzZjY3OWIyNmJhN2FkOC4uZjc4NjIyNzk5NDJhNzBkNWUzY2Q4YTNhNzA5NTQ5
MTQ2ODVlNjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA2LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdURjo6RnVuY3Rpb24g
aW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uIGluIE5ldHdvcmtQcm9jZXNzIGNvZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzE4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBXVEY6OkZ1bmN0aW9u
IGluc3RlYWQgb2Ygc3RkOjpmdW5jdGlvbiBpbiBOZXR3b3JrUHJvY2VzcyBjb2RlIHRvIGF2b2lk
CisgICAgICAgIHVubmVjZXNzYXJ5IGNvcHlpbmcuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUlPQ2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OklPQ2hhbm5lbDo6cmVhZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFu
bmVsOjp3cml0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
SU9DaGFubmVsU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFu
bmVsOjpyZWFkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0NoYW5uZWw6OnJl
YWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5l
bDo6d3JpdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0YXRpc3RpY3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpjbGVhck5TVVJMQ2FjaGUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKToKKwogMjAxNy0wNi0wOSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0g
QWRkIGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxlIGNvbnRlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IGYwNTAwMzcwOGU2MGIyNmViMGRkZmNlODEyNzE0Zjk2OTQ1ZjM3MWQuLjI5MGYxZTYxZDg1OWMx
YzdhNTViMmUzMmE5MGE5ZDk0OTkzOWRkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdGFrZSBhIHNlc3Npb24gSUQgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIGRpc2sgY2Fj
aGUgdG8gZGVsZXRlLgotICAgIHZvaWQgY2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChXZWJD
b3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIHZvaWQgcmVzdW1lRG93
bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCmluZGV4IGYxOWRiNmZhMTJmYmU4
YzkwNDVmOTBmZDQzZTNlMjdmODI5NWNiN2IuLjIwNGNlZmQ0ZDA3N2Y2ODQxYzJlMjA5ODg0NmYx
ODE4MTlmZDBkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRhLmgi
Ci0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw4ICs0OCw4IEBAIHB1
YmxpYzoKIAogICAgIC8vIFVzaW5nIG51bGxwdHIgYXMgcXVldWUgc3VibWl0cyB0aGUgcmVzdWx0
IHRvIHRoZSBtYWluIHF1ZXVlLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIFdvcmtRdWV1
ZTo6bWFpbigpIGluc3RlYWQuCi0gICAgdm9pZCByZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCwg
V29ya1F1ZXVlKiwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4pOwotICAg
IHZvaWQgd3JpdGUoc2l6ZV90IG9mZnNldCwgY29uc3QgRGF0YSYsIFdvcmtRdWV1ZSosIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoaW50IGVycm9yKT4pOworICAgIHZvaWQgcmVhZChzaXplX3Qgb2Zmc2V0
LCBzaXplX3QsIFdvcmtRdWV1ZSosIEZ1bmN0aW9uPHZvaWQgKERhdGEmLCBpbnQgZXJyb3IpPiYm
KTsKKyAgICB2b2lkIHdyaXRlKHNpemVfdCBvZmZzZXQsIGNvbnN0IERhdGEmLCBXb3JrUXVldWUq
LCBGdW5jdGlvbjx2b2lkIChpbnQgZXJyb3IpPiYmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgcGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQpAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIElPQ2hhbm5lbChj
b25zdCBTdHJpbmcmIGZpbGVQYXRoLCBJT0NoYW5uZWw6OlR5cGUpOwogCiAjaWYgVVNFKFNPVVAp
Ci0gICAgdm9pZCByZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCwgV29ya1F1
ZXVlKiwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4pOworICAgIHZvaWQg
cmVhZFN5bmNJblRocmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3QsIFdvcmtRdWV1ZSosIEZ1bmN0
aW9uPHZvaWQgKERhdGEmLCBpbnQgZXJyb3IpPiYmKTsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1f
cGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KaW5kZXggOTlmMWM0MDRiNDE1
NjU4YjQyZDM3OWViNmQ2ZjgxOWQzOTliZDUyZS4uZTk3MTFiZjI0NDAzN2MzM2MxMzk1OTM4N2E4
ZTVmZTgzNDZmNjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlIDxtYWNoL3ZtX3BhcmFtLmg+CiAjaW5jbHVkZSA8c3lzL21t
YW4uaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05
MiwxMiArOTMsMTIgQEAgUmVmPElPQ2hhbm5lbD4gSU9DaGFubmVsOjpvcGVuKGNvbnN0IFN0cmlu
ZyYgZmlsZVBhdGgsIElPQ2hhbm5lbDo6VHlwZSB0eXBlKQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElPQ2hhbm5lbChmaWxlUGF0aCwgdHlwZSkpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6cmVh
ZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5j
dGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElP
Q2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1
ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbCh0aGlzKTsKICAgICBib29sIGRpZENh
bGxDb21wbGV0aW9uSGFuZGxlciA9IGZhbHNlOwogICAgIGF1dG8gZGlzcGF0Y2hRdWV1ZSA9IHF1
ZXVlID8gcXVldWUtPmRpc3BhdGNoUXVldWUoKSA6IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCk7
Ci0gICAgZGlzcGF0Y2hfaW9fcmVhZChtX2Rpc3BhdGNoSU8uZ2V0KCksIG9mZnNldCwgc2l6ZSwg
ZGlzcGF0Y2hRdWV1ZSwgW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyLCBkaWRDYWxsQ29tcGxl
dGlvbkhhbmRsZXJdKGJvb2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJy
b3IpIG11dGFibGUgeworICAgIGRpc3BhdGNoX2lvX3JlYWQobV9kaXNwYXRjaElPLmdldCgpLCBv
ZmZzZXQsIHNpemUsIGRpc3BhdGNoUXVldWUsIEJsb2NrUHRyPHZvaWQoYm9vbCwgZGlzcGF0Y2hf
ZGF0YV90LCBpbnQpPjo6ZnJvbUNhbGxhYmxlKFtjaGFubmVsLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBkaWRDYWxsQ29tcGxldGlvbkhhbmRsZXJdKGJv
b2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJyb3IpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGRvbmUsIGRvbmUgfHwgIWRpZENhbGxDb21wbGV0aW9uSGFu
ZGxlcik7CiAgICAgICAgIGlmIChkaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xMDUsMTggKzEwNiwxOCBAQCB2b2lkIElPQ2hhbm5lbDo6cmVhZChzaXpl
X3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlvbgog
ICAgICAgICBEYXRhIGRhdGEoZmlsZURhdGFQdHIpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihkYXRhLCBlcnJvcik7CiAgICAgICAgIGRpZENhbGxDb21wbGV0aW9uSGFuZGxlciA9IHRydWU7
Ci0gICAgfSk7CisgICAgfSkuZ2V0KCkpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6d3JpdGUoc2l6
ZV90IG9mZnNldCwgY29uc3QgRGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5j
dGlvbjx2b2lkIChpbnQgZXJyb3IpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgSU9DaGFubmVs
Ojp3cml0ZShzaXplX3Qgb2Zmc2V0LCBjb25zdCBEYXRhJiBkYXRhLCBXb3JrUXVldWUqIHF1ZXVl
LCBGdW5jdGlvbjx2b2lkIChpbnQgZXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFJlZlB0cjxJT0NoYW5uZWw+IGNoYW5uZWwodGhpcyk7CiAgICAgYXV0byBkaXNwYXRjaERhdGEg
PSBkYXRhLmRpc3BhdGNoRGF0YSgpOwogICAgIGF1dG8gZGlzcGF0Y2hRdWV1ZSA9IHF1ZXVlID8g
cXVldWUtPmRpc3BhdGNoUXVldWUoKSA6IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCk7Ci0gICAg
ZGlzcGF0Y2hfaW9fd3JpdGUobV9kaXNwYXRjaElPLmdldCgpLCBvZmZzZXQsIGRpc3BhdGNoRGF0
YSwgZGlzcGF0Y2hRdWV1ZSwgW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyXShib29sIGRvbmUs
IGRpc3BhdGNoX2RhdGFfdCBmaWxlRGF0YSwgaW50IGVycm9yKSB7CisgICAgZGlzcGF0Y2hfaW9f
d3JpdGUobV9kaXNwYXRjaElPLmdldCgpLCBvZmZzZXQsIGRpc3BhdGNoRGF0YSwgZGlzcGF0Y2hR
dWV1ZSwgQmxvY2tQdHI8dm9pZChib29sLCBkaXNwYXRjaF9kYXRhX3QsIGludCk+Ojpmcm9tQ2Fs
bGFibGUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGJvb2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJyb3IpIHsK
ICAgICAgICAgQVNTRVJUX1VOVVNFRChkb25lLCBkb25lKTsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZXJyb3IpOwotICAgIH0pOworICAgIH0pLmdldCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFu
bmVsU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxTb3VwLmNwcAppbmRleCBlN2NmMzAzNmZjYzdhZmYyOGRlZDlhNWQ1YmZi
MjI2YThmM2MzNTI4Li44Yjg2MGUyZDU3MTFjNDljZWQwMTNhOWM2NGNmZWY4MDZhNGY1ODg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHN0
cnVjdCBSZWFkQXN5bmNEYXRhIHsKICAgICBHUmVmUHRyPFNvdXBCdWZmZXI+IGJ1ZmZlcjsKICAg
ICBSZWZQdHI8V29ya1F1ZXVlPiBxdWV1ZTsKICAgICBzaXplX3QgYnl0ZXNUb1JlYWQ7Ci0gICAg
c3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXI7
CisgICAgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+IGNvbXBsZXRpb25IYW5kbGVy
OwogICAgIERhdGEgZGF0YTsKIH07CiAKQEAgLTE1MywxMSArMTUzLDExIEBAIHN0YXRpYyB2b2lk
IGlucHV0U3RyZWFtUmVhZFJlYWR5Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBzdHJlYW0sIEdBc3lu
Y1Jlc3VsdCogcmVzCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFj
az4oaW5wdXRTdHJlYW1SZWFkUmVhZHlDYWxsYmFjayksIGFzeW5jRGF0YS5yZWxlYXNlKCkpOwog
fQogCi12b2lkIElPQ2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29y
a1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIElPQ2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXpl
X3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJv
cik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5l
bCh0aGlzKTsKICAgICBpZiAoIW1faW5wdXRTdHJlYW0pIHsKLSAgICAgICAgcnVuVGFza0luUXVl
dWUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIHJ1blRhc2tJblF1ZXVl
KFtjaGFubmVsLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSB7CiAgICAgICAgICAgICBEYXRhIGRhdGE7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihkYXRhLCAtMSk7CiAgICAgICAgIH0sIHF1ZXVlKTsKQEAgLTE2NSwyNiArMTY1LDI2IEBAIHZv
aWQgSU9DaGFubmVsOjpyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUq
IHF1ZXVlLCBzdGQ6OmZ1bmN0aW9uCiAgICAgfQogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkg
ewotICAgICAgICByZWFkU3luY0luVGhyZWFkKG9mZnNldCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRp
b25IYW5kbGVyKTsKKyAgICAgICAgcmVhZFN5bmNJblRocmVhZChvZmZzZXQsIHNpemUsIHF1ZXVl
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IHN0ZDo6bWluKHNpemUsIGdEZWZhdWx0UmVhZEJ1ZmZl
clNpemUpOwogICAgIHVpbnQ4X3QqIGJ1ZmZlckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
ZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAgICAgR1JlZlB0cjxTb3VwQnVmZmVyPiBidWZmZXIg
PSBhZG9wdEdSZWYoc291cF9idWZmZXJfbmV3X3dpdGhfb3duZXIoYnVmZmVyRGF0YSwgYnVmZmVy
U2l6ZSwgYnVmZmVyRGF0YSwgZmFzdEZyZWUpKTsKLSAgICBSZWFkQXN5bmNEYXRhKiBhc3luY0Rh
dGEgPSBuZXcgUmVhZEFzeW5jRGF0YSB7IHRoaXMsIGJ1ZmZlci5nZXQoKSwgcXVldWUsIHNpemUs
IGNvbXBsZXRpb25IYW5kbGVyLCB7IH0gfTsKKyAgICBSZWFkQXN5bmNEYXRhKiBhc3luY0RhdGEg
PSBuZXcgUmVhZEFzeW5jRGF0YSB7IHRoaXMsIGJ1ZmZlci5nZXQoKSwgcXVldWUsIHNpemUsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB7IH0gfTsKIAogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb2Zmc2V0LgogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMobV9pbnB1dFN0cmVhbS5n
ZXQoKSwgY29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKSwgYnVmZmVyU2l6ZSwgUnVuTG9v
cFNvdXJjZVByaW9yaXR5OjpEaXNrQ2FjaGVSZWFkLCBudWxscHRyLAogICAgICAgICByZWludGVy
cHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KGlucHV0U3RyZWFtUmVhZFJlYWR5Q2FsbGJh
Y2spLCBhc3luY0RhdGEpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZChz
aXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlv
bjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElPQ2hh
bm5lbDo6cmVhZFN5bmNJblRocmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1
ZXVlKiBxdWV1ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQdHI8
SU9DaGFubmVsPiBjaGFubmVsKHRoaXMpOwotICAgIFRocmVhZDo6Y3JlYXRlKCJJT0NoYW5uZWw6
OnJlYWRTeW5jIiwgW2NoYW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0gewor
ICAgIFRocmVhZDo6Y3JlYXRlKCJJT0NoYW5uZWw6OnJlYWRTeW5jIiwgW2NoYW5uZWwsIHNpemUs
IHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7
CiAgICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gc3RkOjptaW4oc2l6ZSwgZ0RlZmF1bHRSZWFk
QnVmZmVyU2l6ZSk7CiAgICAgICAgIHVpbnQ4X3QqIGJ1ZmZlckRhdGEgPSBzdGF0aWNfY2FzdDx1
aW50OF90Kj4oZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAgICAgICAgIEdSZWZQdHI8U291cEJ1
ZmZlcj4gcmVhZEJ1ZmZlciA9IGFkb3B0R1JlZihzb3VwX2J1ZmZlcl9uZXdfd2l0aF9vd25lcihi
dWZmZXJEYXRhLCBidWZmZXJTaXplLCBidWZmZXJEYXRhLCBmYXN0RnJlZSkpOwpAQCAtMTk1LDcg
KzE5NSw3IEBAIHZvaWQgSU9DaGFubmVsOjpyZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQs
IHNpemVfdCBzaXplLCBXb3JrUXVldWUqIHF1ZXVlLCBzCiAgICAgICAgICAgICAvLyBGSVhNRTog
aW1wbGVtZW50IG9mZnNldC4KICAgICAgICAgICAgIGdzc2l6ZSBieXRlc1JlYWQgPSBnX2lucHV0
X3N0cmVhbV9yZWFkKGNoYW5uZWwtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGNvbnN0X2Nhc3Q8Y2hh
cio+KHJlYWRCdWZmZXItPmRhdGEpLCBieXRlc1RvUmVhZCwgbnVsbHB0ciwgbnVsbHB0cik7CiAg
ICAgICAgICAgICBpZiAoYnl0ZXNSZWFkID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgcnVuVGFz
a0luUXVldWUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgICAgICAgICAg
cnVuVGFza0luUXVldWUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgICAgICAgICAgRGF0YSBkYXRhOwogICAgICAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihkYXRhLCAtMSk7CiAgICAgICAgICAgICAg
ICAgfSwgcXVldWUpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgSU9DaGFubmVsOjpyZWFkU3lu
Y0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUqIHF1ZXVlLCBz
CiAgICAgICAgIH0gd2hpbGUgKHBlbmRpbmdCeXRlc1RvUmVhZCk7CiAKICAgICAgICAgR1JlZlB0
cjxTb3VwQnVmZmVyPiBidWZmZXJDYXB0dXJlID0gZGF0YS5zb3VwQnVmZmVyKCk7Ci0gICAgICAg
IHJ1blRhc2tJblF1ZXVlKFtjaGFubmVsLCBidWZmZXJDYXB0dXJlLCBjb21wbGV0aW9uSGFuZGxl
cl0geworICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgYnVmZmVyQ2FwdHVyZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAg
ICAgR1JlZlB0cjxTb3VwQnVmZmVyPiBidWZmZXIgPSBidWZmZXJDYXB0dXJlOwogICAgICAgICAg
ICAgRGF0YSBkYXRhID0geyBXVEZNb3ZlKGJ1ZmZlcikgfTsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGRhdGEsIDApOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0cnVjdCBXcml0ZUFzeW5j
RGF0YSB7CiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbDsKICAgICBHUmVmUHRyPFNvdXBC
dWZmZXI+IGJ1ZmZlcjsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBxdWV1ZTsKLSAgICBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKGludCBlcnJvcik+IGNvbXBsZXRpb25IYW5kbGVyOworICAgIEZ1bmN0aW9u
PHZvaWQgKGludCBlcnJvcik+IGNvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogc3RhdGljIHZvaWQg
b3V0cHV0U3RyZWFtV3JpdGVSZWFkeUNhbGxiYWNrKEdPdXRwdXRTdHJlYW0qIHN0cmVhbSwgR0Fz
eW5jUmVzdWx0KiByZXN1bHQsIGdwb2ludGVyIHVzZXJEYXRhKQpAQCAtMjU2LDExICsyNTYsMTEg
QEAgc3RhdGljIHZvaWQgb3V0cHV0U3RyZWFtV3JpdGVSZWFkeUNhbGxiYWNrKEdPdXRwdXRTdHJl
YW0qIHN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3lu
Y1JlYWR5Q2FsbGJhY2s+KG91dHB1dFN0cmVhbVdyaXRlUmVhZHlDYWxsYmFjayksIGFzeW5jRGF0
YS5yZWxlYXNlKCkpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6d3JpdGUoc2l6ZV90IG9mZnNldCwg
Y29uc3QgRGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChp
bnQgZXJyb3IpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgSU9DaGFubmVsOjp3cml0ZShzaXpl
X3Qgb2Zmc2V0LCBjb25zdCBEYXRhJiBkYXRhLCBXb3JrUXVldWUqIHF1ZXVlLCBGdW5jdGlvbjx2
b2lkIChpbnQgZXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFJlZlB0cjxJT0No
YW5uZWw+IGNoYW5uZWwodGhpcyk7CiAgICAgaWYgKCFtX291dHB1dFN0cmVhbSAmJiAhbV9pb1N0
cmVhbSkgewotICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgY29tcGxldGlvbkhhbmRs
ZXJdIHsKKyAgICAgICAgcnVuVGFza0luUXVldWUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKC0xKTsKICAgICAgICAgfSwgcXVldWUpOwogICAgICAgICByZXR1cm47CkBAIC0yNjgs
MTMgKzI2OCwxMyBAQCB2b2lkIElPQ2hhbm5lbDo6d3JpdGUoc2l6ZV90IG9mZnNldCwgY29uc3Qg
RGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdQogCiAgICAgR091dHB1dFN0cmVh
bSogc3RyZWFtID0gbV9vdXRwdXRTdHJlYW0gPyBtX291dHB1dFN0cmVhbS5nZXQoKSA6IGdfaW9f
c3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtKEdfSU9fU1RSRUFNKG1faW9TdHJlYW0uZ2V0KCkpKTsK
ICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgY29t
cGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgcnVuVGFza0luUXVldWUoW2NoYW5uZWwsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKC0xKTsKICAgICAgICAgfSwgcXVldWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV3JpdGVBc3luY0RhdGEqIGFzeW5jRGF0YSA9IG5ldyBXcml0ZUFz
eW5jRGF0YSB7IHRoaXMsIGRhdGEuc291cEJ1ZmZlcigpLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRs
ZXIgfTsKKyAgICBXcml0ZUFzeW5jRGF0YSogYXN5bmNEYXRhID0gbmV3IFdyaXRlQXN5bmNEYXRh
IHsgdGhpcywgZGF0YS5zb3VwQnVmZmVyKCksIHF1ZXVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSB9OwogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgb2Zmc2V0LgogICAgIGdfb3V0cHV0X3N0
cmVhbV93cml0ZV9hc3luYyhzdHJlYW0sIGFzeW5jRGF0YS0+YnVmZmVyLT5kYXRhLCBkYXRhLnNp
emUoKSwgUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpEaXNrQ2FjaGVXcml0ZSwgbnVsbHB0ciwKICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPihvdXRwdXRTdHJlYW1X
cml0ZVJlYWR5Q2FsbGJhY2spLCBhc3luY0RhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuaAppbmRleCBhM2ZlOTA2NjAwZjE1ZGNiNTQ2ZjkyY2E0MDlkZTdkMGUzNjkyODNjLi44
ZWIxN2ZkYjA4MmVmNjJmMDZhNzlhYmJkODVhOTRkMThjNDUzNTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgTmV0d29ya0Nh
Y2hlIHsKIGNsYXNzIFNwZWN1bGF0aXZlTG9hZCBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrTG9hZENs
aWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdHlwZWRl
ZiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5
Pik+IFJldmFsaWRhdGlvbkNvbXBsZXRpb25IYW5kbGVyOworICAgIHR5cGVkZWYgRnVuY3Rpb248
dm9pZCAoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+KT4gUmV2YWxpZGF0aW9u
Q29tcGxldGlvbkhhbmRsZXI7CiAgICAgU3BlY3VsYXRpdmVMb2FkKGNvbnN0IEdsb2JhbEZyYW1l
SUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NhY2hlOjpFbnRyeT4sIFJldmFsaWRhdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAg
ICAgdmlydHVhbCB+U3BlY3VsYXRpdmVMb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKaW5k
ZXggYjY3YzI2MGUxOTRkZTgzMGViZTMxYmM4OTIzZGQ3MDgwNzM0MWU4NS4uZGMzMTljNTQ2NTdm
OWMwM2ZkNDU1ZWM2NDUxYTg0YTRiNTkxNDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuaApA
QCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkU3RvcmVEZWNpc2lvbnNUb0Rh
dGFiYXNlKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBOZXR3b3JrQ2FjaGU6OlN0b3JlRGVjaXNpb24+
Jik7CiAgICAgdm9pZCB3cml0ZVRpbWVyRmlyZWQoKTsKIAotICAgIHR5cGVkZWYgc3RkOjpmdW5j
dGlvbjx2b2lkIChib29sIHdhc0V2ZXJSZXF1ZXN0ZWQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3Rv
cmVEZWNpc2lvbj4mKT4gUmVxdWVzdGVkQ29tcGxldGlvbkhhbmRsZXI7CisgICAgdHlwZWRlZiBG
dW5jdGlvbjx2b2lkIChib29sIHdhc0V2ZXJSZXF1ZXN0ZWQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
U3RvcmVEZWNpc2lvbj4mKT4gUmVxdWVzdGVkQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgZW51bSBj
bGFzcyBOZWVkVW5jYWNoZWRSZWFzb24geyBObywgWWVzIH07CiAgICAgdm9pZCBxdWVyeVdhc0V2
ZXJSZXF1ZXN0ZWQoY29uc3QgU3RyaW5nJiwgTmVlZFVuY2FjaGVkUmVhc29uLCBSZXF1ZXN0ZWRD
b21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIG1hcmtBc1JlcXVlc3RlZChjb25zdCBTdHJp
bmcmIGhhc2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggMTVlMjcxZDQzYTVmNDcxYjYwYjIz
NzNhNDAwYTQxNmIxMTcwMmI4My4uZTdjYTg4OTVhOThlYmI5ZThiNGVjZDY1YjEyYzBhMzU3M2Uz
NTBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTE2NywzNiArMTY4LDM2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFySFNUU0NhY2hlKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgc3RkCiAgICAgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzU2lu
Y2VEYXRlKHNlc3Npb24ucGxhdGZvcm1TZXNzaW9uKCksIChfX2JyaWRnZSBDRkRhdGVSZWYpZGF0
ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFyTlNVUkxDYWNoZShkaXNwYXRjaF9ncm91cF90IGdy
b3VwLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2Us
IGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mIGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGlj
IHZvaWQgY2xlYXJOU1VSTENhY2hlKGRpc3BhdGNoX2dyb3VwX3QgZ3JvdXAsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91
cCwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZB
VUxULCAwKSwgW21vZGlmaWVkU2luY2UsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgZGlzcGF0
Y2hfZ3JvdXBfYXN5bmMoZ3JvdXAsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hf
UVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIEJsb2NrUHRyPHZvaWQoKT46OmZyb21DYWxsYWJs
ZShbbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIE5TVVJMQ2FjaGUgKmNhY2hlID0gW05TVVJM
Q2FjaGUgc2hhcmVkVVJMQ2FjaGVdOwogCiAgICAgICAgIE5TVGltZUludGVydmFsIHRpbWVJbnRl
cnZhbCA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxk
b3VibGU+Pihtb2RpZmllZFNpbmNlLnRpbWVfc2luY2VfZXBvY2goKSkuY291bnQoKTsKICAgICAg
ICAgTlNEYXRlICpkYXRlID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDp0
aW1lSW50ZXJ2YWxdOwogICAgICAgICBbY2FjaGUgcmVtb3ZlQ2FjaGVkUmVzcG9uc2VzU2luY2VE
YXRlOmRhdGVdOwogCi0gICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIFtjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9tQ2FsbGFibGUoW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOworICAgICAgICB9
KS5nZXQoKSk7CisgICAgfSkuZ2V0KCkpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVh
ckRpc2tDYWNoZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVk
U2luY2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwKQogICAgICAgICBt
X2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7CiAKICNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBhdXRvIGdyb3VwID0gbV9jbGVhckNhY2hlRGlz
cGF0Y2hHcm91cDsKLSAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW2dyb3VwLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlcl0g
ewotICAgICAgICBOZXR3b3JrQ2FjaGU6OnNpbmdsZXRvbigpLmNsZWFyKG1vZGlmaWVkU2luY2Us
IFtncm91cCwgbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBkaXNwYXRj
aF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgQmxvY2tQdHI8
dm9pZCgpPjo6ZnJvbUNhbGxhYmxlKFtncm91cCwgbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAg
IE5ldHdvcmtDYWNoZTo6c2luZ2xldG9uKCkuY2xlYXIobW9kaWZpZWRTaW5jZSwgW2dyb3VwLCBt
b2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQcm9iYWJseSBub3QgbmVj
ZXNzYXJ5LgotICAgICAgICAgICAgY2xlYXJOU1VSTENhY2hlKGdyb3VwLCBtb2RpZmllZFNpbmNl
LCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgICAgICBjbGVhck5TVVJMQ2FjaGUoZ3JvdXAs
IG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgfSk7
Ci0gICAgfSk7CisgICAgfSkuZ2V0KCkpOwogI2Vsc2UKLSAgICBjbGVhck5TVVJMQ2FjaGUobV9j
bGVhckNhY2hlRGlzcGF0Y2hHcm91cCwgbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhhbmRsZXIp
OworICAgIGNsZWFyTlNVUkxDYWNoZShtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwLCBtb2RpZmll
ZFNpbmNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vz
c1NvdXAuY3BwCmluZGV4IGViNDhlMWZjZWFmNTQ2MjU3ODlmZGRmOTUwNzQ1YzM3MjVjNWJmODku
LjNkMmRlOTE5NWI5YjE5MzM1ZmViZDc3YTBlZWY3NTYzOWExM2E3ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckNhY2hl
Rm9yQWxsT3JpZ2lucyh1aW50MzJfdCBjYWNoZXNUb0NsZWFyKQogICAgIGNsZWFyRGlza0NhY2hl
KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ6Om1pbigpLCBbXSB7IH0pOwog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNo
ZShzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIEZ1
bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0d29ya0NhY2hl
OjpzaW5nbGV0b24oKS5jbGVhcihtb2RpZmllZFNpbmNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312491</attachid>
            <date>2017-06-09 14:43:07 -0700</date>
            <delta_ts>2017-06-09 15:38:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173182-20170609144306.patch</filename>
            <type>text/plain</type>
            <size>19629</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGMwYWE1OTUzNGFjNzc0
MGNiNzQ5ZDc5ZjUzZjY3OWIyNmJhN2FkOC4uZjc4NjIyNzk5NDJhNzBkNWUzY2Q4YTNhNzA5NTQ5
MTQ2ODVlNjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA2LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdURjo6RnVuY3Rpb24g
aW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uIGluIE5ldHdvcmtQcm9jZXNzIGNvZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzE4MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBXVEY6OkZ1bmN0aW9u
IGluc3RlYWQgb2Ygc3RkOjpmdW5jdGlvbiBpbiBOZXR3b3JrUHJvY2VzcyBjb2RlIHRvIGF2b2lk
CisgICAgICAgIHVubmVjZXNzYXJ5IGNvcHlpbmcuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUlPQ2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OklPQ2hhbm5lbDo6cmVhZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFu
bmVsOjp3cml0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
SU9DaGFubmVsU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFu
bmVsOjpyZWFkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0NoYW5uZWw6OnJl
YWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5l
bDo6d3JpdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0YXRpc3RpY3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpjbGVhck5TVVJMQ2FjaGUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKToKKwogMjAxNy0wNi0wOSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIERuRF0g
QWRkIGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxlIGNvbnRlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IGYwNTAwMzcwOGU2MGIyNmViMGRkZmNlODEyNzE0Zjk2OTQ1ZjM3MWQuLjI5MGYxZTYxZDg1OWMx
YzdhNTViMmUzMmE5MGE5ZDk0OTkzOWRkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjbGVhckNhY2hlZENyZWRlbnRpYWxzKCk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdGFrZSBhIHNlc3Npb24gSUQgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIGRpc2sgY2Fj
aGUgdG8gZGVsZXRlLgotICAgIHZvaWQgY2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChXZWJD
b3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIHZvaWQgcmVzdW1lRG93
bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCmluZGV4IGYxOWRiNmZhMTJmYmU4
YzkwNDVmOTBmZDQzZTNlMjdmODI5NWNiN2IuLjIwNGNlZmQ0ZDA3N2Y2ODQxYzJlMjA5ODg0NmYx
ODE4MTlmZDBkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVEYXRhLmgi
Ci0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw4ICs0OCw4IEBAIHB1
YmxpYzoKIAogICAgIC8vIFVzaW5nIG51bGxwdHIgYXMgcXVldWUgc3VibWl0cyB0aGUgcmVzdWx0
IHRvIHRoZSBtYWluIHF1ZXVlLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIFdvcmtRdWV1
ZTo6bWFpbigpIGluc3RlYWQuCi0gICAgdm9pZCByZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCwg
V29ya1F1ZXVlKiwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4pOwotICAg
IHZvaWQgd3JpdGUoc2l6ZV90IG9mZnNldCwgY29uc3QgRGF0YSYsIFdvcmtRdWV1ZSosIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoaW50IGVycm9yKT4pOworICAgIHZvaWQgcmVhZChzaXplX3Qgb2Zmc2V0
LCBzaXplX3QsIFdvcmtRdWV1ZSosIEZ1bmN0aW9uPHZvaWQgKERhdGEmLCBpbnQgZXJyb3IpPiYm
KTsKKyAgICB2b2lkIHdyaXRlKHNpemVfdCBvZmZzZXQsIGNvbnN0IERhdGEmLCBXb3JrUXVldWUq
LCBGdW5jdGlvbjx2b2lkIChpbnQgZXJyb3IpPiYmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgcGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQpAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIElPQ2hhbm5lbChj
b25zdCBTdHJpbmcmIGZpbGVQYXRoLCBJT0NoYW5uZWw6OlR5cGUpOwogCiAjaWYgVVNFKFNPVVAp
Ci0gICAgdm9pZCByZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCwgV29ya1F1
ZXVlKiwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4pOworICAgIHZvaWQg
cmVhZFN5bmNJblRocmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3QsIFdvcmtRdWV1ZSosIEZ1bmN0
aW9uPHZvaWQgKERhdGEmLCBpbnQgZXJyb3IpPiYmKTsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1f
cGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KaW5kZXggOTlmMWM0MDRiNDE1
NjU4YjQyZDM3OWViNmQ2ZjgxOWQzOTliZDUyZS4uZTk3MTFiZjI0NDAzN2MzM2MxMzk1OTM4N2E4
ZTVmZTgzNDZmNjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlIDxtYWNoL3ZtX3BhcmFtLmg+CiAjaW5jbHVkZSA8c3lzL21t
YW4uaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05
MiwxMiArOTMsMTIgQEAgUmVmPElPQ2hhbm5lbD4gSU9DaGFubmVsOjpvcGVuKGNvbnN0IFN0cmlu
ZyYgZmlsZVBhdGgsIElPQ2hhbm5lbDo6VHlwZSB0eXBlKQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElPQ2hhbm5lbChmaWxlUGF0aCwgdHlwZSkpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6cmVh
ZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5j
dGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElP
Q2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1
ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbCh0aGlzKTsKICAgICBib29sIGRpZENh
bGxDb21wbGV0aW9uSGFuZGxlciA9IGZhbHNlOwogICAgIGF1dG8gZGlzcGF0Y2hRdWV1ZSA9IHF1
ZXVlID8gcXVldWUtPmRpc3BhdGNoUXVldWUoKSA6IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCk7
Ci0gICAgZGlzcGF0Y2hfaW9fcmVhZChtX2Rpc3BhdGNoSU8uZ2V0KCksIG9mZnNldCwgc2l6ZSwg
ZGlzcGF0Y2hRdWV1ZSwgW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyLCBkaWRDYWxsQ29tcGxl
dGlvbkhhbmRsZXJdKGJvb2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJy
b3IpIG11dGFibGUgeworICAgIGRpc3BhdGNoX2lvX3JlYWQobV9kaXNwYXRjaElPLmdldCgpLCBv
ZmZzZXQsIHNpemUsIGRpc3BhdGNoUXVldWUsIEJsb2NrUHRyPHZvaWQoYm9vbCwgZGlzcGF0Y2hf
ZGF0YV90LCBpbnQpPjo6ZnJvbUNhbGxhYmxlKFtjaGFubmVsLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBkaWRDYWxsQ29tcGxldGlvbkhhbmRsZXJdKGJv
b2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJyb3IpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGRvbmUsIGRvbmUgfHwgIWRpZENhbGxDb21wbGV0aW9uSGFu
ZGxlcik7CiAgICAgICAgIGlmIChkaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xMDUsMTggKzEwNiwxOCBAQCB2b2lkIElPQ2hhbm5lbDo6cmVhZChzaXpl
X3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlvbgog
ICAgICAgICBEYXRhIGRhdGEoZmlsZURhdGFQdHIpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihkYXRhLCBlcnJvcik7CiAgICAgICAgIGRpZENhbGxDb21wbGV0aW9uSGFuZGxlciA9IHRydWU7
Ci0gICAgfSk7CisgICAgfSkuZ2V0KCkpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6d3JpdGUoc2l6
ZV90IG9mZnNldCwgY29uc3QgRGF0YSYgZGF0YSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5j
dGlvbjx2b2lkIChpbnQgZXJyb3IpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgSU9DaGFubmVs
Ojp3cml0ZShzaXplX3Qgb2Zmc2V0LCBjb25zdCBEYXRhJiBkYXRhLCBXb3JrUXVldWUqIHF1ZXVl
LCBGdW5jdGlvbjx2b2lkIChpbnQgZXJyb3IpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFJlZlB0cjxJT0NoYW5uZWw+IGNoYW5uZWwodGhpcyk7CiAgICAgYXV0byBkaXNwYXRjaERhdGEg
PSBkYXRhLmRpc3BhdGNoRGF0YSgpOwogICAgIGF1dG8gZGlzcGF0Y2hRdWV1ZSA9IHF1ZXVlID8g
cXVldWUtPmRpc3BhdGNoUXVldWUoKSA6IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCk7Ci0gICAg
ZGlzcGF0Y2hfaW9fd3JpdGUobV9kaXNwYXRjaElPLmdldCgpLCBvZmZzZXQsIGRpc3BhdGNoRGF0
YSwgZGlzcGF0Y2hRdWV1ZSwgW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyXShib29sIGRvbmUs
IGRpc3BhdGNoX2RhdGFfdCBmaWxlRGF0YSwgaW50IGVycm9yKSB7CisgICAgZGlzcGF0Y2hfaW9f
d3JpdGUobV9kaXNwYXRjaElPLmdldCgpLCBvZmZzZXQsIGRpc3BhdGNoRGF0YSwgZGlzcGF0Y2hR
dWV1ZSwgQmxvY2tQdHI8dm9pZChib29sLCBkaXNwYXRjaF9kYXRhX3QsIGludCk+Ojpmcm9tQ2Fs
bGFibGUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGJvb2wgZG9uZSwgZGlzcGF0Y2hfZGF0YV90IGZpbGVEYXRhLCBpbnQgZXJyb3IpIHsK
ICAgICAgICAgQVNTRVJUX1VOVVNFRChkb25lLCBkb25lKTsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZXJyb3IpOwotICAgIH0pOworICAgIH0pLmdldCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFu
bmVsU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxTb3VwLmNwcAppbmRleCBlN2NmMzAzNmZjYzdhZmYyOGRlZDlhNWQ1YmZi
MjI2YThmM2MzNTI4Li4zYzQzZTg3ZDliNWVlNWNhYmZjNzVkNzg0NzU5YzRmMjI1ODE3OWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHN0
cnVjdCBSZWFkQXN5bmNEYXRhIHsKICAgICBHUmVmUHRyPFNvdXBCdWZmZXI+IGJ1ZmZlcjsKICAg
ICBSZWZQdHI8V29ya1F1ZXVlPiBxdWV1ZTsKICAgICBzaXplX3QgYnl0ZXNUb1JlYWQ7Ci0gICAg
c3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXI7
CisgICAgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+IGNvbXBsZXRpb25IYW5kbGVy
OwogICAgIERhdGEgZGF0YTsKIH07CiAKQEAgLTE1MywxMSArMTUzLDExIEBAIHN0YXRpYyB2b2lk
IGlucHV0U3RyZWFtUmVhZFJlYWR5Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBzdHJlYW0sIEdBc3lu
Y1Jlc3VsdCogcmVzCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFj
az4oaW5wdXRTdHJlYW1SZWFkUmVhZHlDYWxsYmFjayksIGFzeW5jRGF0YS5yZWxlYXNlKCkpOwog
fQogCi12b2lkIElPQ2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29y
a1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIElPQ2hhbm5lbDo6cmVhZChzaXplX3Qgb2Zmc2V0LCBzaXpl
X3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJv
cik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5l
bCh0aGlzKTsKICAgICBpZiAoIW1faW5wdXRTdHJlYW0pIHsKLSAgICAgICAgcnVuVGFza0luUXVl
dWUoW2NoYW5uZWwsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIHJ1blRhc2tJblF1ZXVl
KFtjaGFubmVsLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSB7CiAgICAgICAgICAgICBEYXRhIGRhdGE7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihkYXRhLCAtMSk7CiAgICAgICAgIH0sIHF1ZXVlKTsKQEAgLTE2NSwyNiArMTY1LDI2IEBAIHZv
aWQgSU9DaGFubmVsOjpyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUq
IHF1ZXVlLCBzdGQ6OmZ1bmN0aW9uCiAgICAgfQogCiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkg
ewotICAgICAgICByZWFkU3luY0luVGhyZWFkKG9mZnNldCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRp
b25IYW5kbGVyKTsKKyAgICAgICAgcmVhZFN5bmNJblRocmVhZChvZmZzZXQsIHNpemUsIHF1ZXVl
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IHN0ZDo6bWluKHNpemUsIGdEZWZhdWx0UmVhZEJ1ZmZl
clNpemUpOwogICAgIHVpbnQ4X3QqIGJ1ZmZlckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
ZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAgICAgR1JlZlB0cjxTb3VwQnVmZmVyPiBidWZmZXIg
PSBhZG9wdEdSZWYoc291cF9idWZmZXJfbmV3X3dpdGhfb3duZXIoYnVmZmVyRGF0YSwgYnVmZmVy
U2l6ZSwgYnVmZmVyRGF0YSwgZmFzdEZyZWUpKTsKLSAgICBSZWFkQXN5bmNEYXRhKiBhc3luY0Rh
dGEgPSBuZXcgUmVhZEFzeW5jRGF0YSB7IHRoaXMsIGJ1ZmZlci5nZXQoKSwgcXVldWUsIHNpemUs
IGNvbXBsZXRpb25IYW5kbGVyLCB7IH0gfTsKKyAgICBSZWFkQXN5bmNEYXRhKiBhc3luY0RhdGEg
PSBuZXcgUmVhZEFzeW5jRGF0YSB7IHRoaXMsIGJ1ZmZlci5nZXQoKSwgcXVldWUsIHNpemUsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB7IH0gfTsKIAogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQgb2Zmc2V0LgogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMobV9pbnB1dFN0cmVhbS5n
ZXQoKSwgY29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKSwgYnVmZmVyU2l6ZSwgUnVuTG9v
cFNvdXJjZVByaW9yaXR5OjpEaXNrQ2FjaGVSZWFkLCBudWxscHRyLAogICAgICAgICByZWludGVy
cHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KGlucHV0U3RyZWFtUmVhZFJlYWR5Q2FsbGJh
Y2spLCBhc3luY0RhdGEpOwogfQogCi12b2lkIElPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZChz
aXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgc3RkOjpmdW5jdGlv
bjx2b2lkIChEYXRhJiwgaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIElPQ2hh
bm5lbDo6cmVhZFN5bmNJblRocmVhZChzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1
ZXVlKiBxdWV1ZSwgRnVuY3Rpb248dm9pZCAoRGF0YSYsIGludCBlcnJvcik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQdHI8
SU9DaGFubmVsPiBjaGFubmVsKHRoaXMpOwotICAgIFRocmVhZDo6Y3JlYXRlKCJJT0NoYW5uZWw6
OnJlYWRTeW5jIiwgW2NoYW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0gewor
ICAgIFRocmVhZDo6Y3JlYXRlKCJJT0NoYW5uZWw6OnJlYWRTeW5jIiwgW2NoYW5uZWwsIHNpemUs
IHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihzaXplLCBn
RGVmYXVsdFJlYWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0YSA9IHN0
YXRpY19jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAgICAgR1Jl
ZlB0cjxTb3VwQnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVyX25ld193
aXRoX293bmVyKGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RGcmVlKSk7
CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBJT0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQoc2l6
ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSogcXVldWUsIHMKICAgICAgICAgICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgb2Zmc2V0LgogICAgICAgICAgICAgZ3NzaXplIGJ5dGVzUmVh
ZCA9IGdfaW5wdXRfc3RyZWFtX3JlYWQoY2hhbm5lbC0+bV9pbnB1dFN0cmVhbS5nZXQoKSwgY29u
c3RfY2FzdDxjaGFyKj4ocmVhZEJ1ZmZlci0+ZGF0YSksIGJ5dGVzVG9SZWFkLCBudWxscHRyLCBu
dWxscHRyKTsKICAgICAgICAgICAgIGlmIChieXRlc1JlYWQgPT0gLTEpIHsKLSAgICAgICAgICAg
ICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAg
ICAgICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAgICAgICAgICBEYXRhIGRh
dGE7CiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGRhdGEsIC0xKTsKICAg
ICAgICAgICAgICAgICB9LCBxdWV1ZSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBJT0NoYW5u
ZWw6OnJlYWRTeW5jSW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1
ZSogcXVldWUsIHMKICAgICAgICAgfSB3aGlsZSAocGVuZGluZ0J5dGVzVG9SZWFkKTsKIAogICAg
ICAgICBHUmVmUHRyPFNvdXBCdWZmZXI+IGJ1ZmZlckNhcHR1cmUgPSBkYXRhLnNvdXBCdWZmZXIo
KTsKLSAgICAgICAgcnVuVGFza0luUXVldWUoW2NoYW5uZWwsIGJ1ZmZlckNhcHR1cmUsIGNvbXBs
ZXRpb25IYW5kbGVyXSB7CisgICAgICAgIHJ1blRhc2tJblF1ZXVlKFtjaGFubmVsLCBidWZmZXJD
YXB0dXJlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSB7
CiAgICAgICAgICAgICBHUmVmUHRyPFNvdXBCdWZmZXI+IGJ1ZmZlciA9IGJ1ZmZlckNhcHR1cmU7
CiAgICAgICAgICAgICBEYXRhIGRhdGEgPSB7IFdURk1vdmUoYnVmZmVyKSB9OwogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZGF0YSwgMCk7CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RydWN0
IFdyaXRlQXN5bmNEYXRhIHsKICAgICBSZWZQdHI8SU9DaGFubmVsPiBjaGFubmVsOwogICAgIEdS
ZWZQdHI8U291cEJ1ZmZlcj4gYnVmZmVyOwogICAgIFJlZlB0cjxXb3JrUXVldWU+IHF1ZXVlOwot
ICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXI7Cisg
ICAgRnVuY3Rpb248dm9pZCAoaW50IGVycm9yKT4gY29tcGxldGlvbkhhbmRsZXI7CiB9OwogCiBz
dGF0aWMgdm9pZCBvdXRwdXRTdHJlYW1Xcml0ZVJlYWR5Q2FsbGJhY2soR091dHB1dFN0cmVhbSog
c3RyZWFtLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpCkBAIC0yNTYs
MTEgKzI1NiwxMSBAQCBzdGF0aWMgdm9pZCBvdXRwdXRTdHJlYW1Xcml0ZVJlYWR5Q2FsbGJhY2so
R091dHB1dFN0cmVhbSogc3RyZWFtLCBHQXN5bmNSZXN1bHQqCiAgICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8R0FzeW5jUmVhZHlDYWxsYmFjaz4ob3V0cHV0U3RyZWFtV3JpdGVSZWFkeUNhbGxiYWNr
KSwgYXN5bmNEYXRhLnJlbGVhc2UoKSk7CiB9CiAKLXZvaWQgSU9DaGFubmVsOjp3cml0ZShzaXpl
X3Qgb2Zmc2V0LCBjb25zdCBEYXRhJiBkYXRhLCBXb3JrUXVldWUqIHF1ZXVlLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKGludCBlcnJvcik+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBJT0NoYW5uZWw6
OndyaXRlKHNpemVfdCBvZmZzZXQsIGNvbnN0IERhdGEmIGRhdGEsIFdvcmtRdWV1ZSogcXVldWUs
IEZ1bmN0aW9uPHZvaWQgKGludCBlcnJvcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
UmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbCh0aGlzKTsKICAgICBpZiAoIW1fb3V0cHV0U3RyZWFt
ICYmICFtX2lvU3RyZWFtKSB7Ci0gICAgICAgIHJ1blRhc2tJblF1ZXVlKFtjaGFubmVsLCBjb21w
bGV0aW9uSGFuZGxlcl0geworICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hhbm5lbCwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoLTEpOwogICAgICAgICB9LCBxdWV1ZSk7CiAgICAgICAgIHJldHVy
bjsKQEAgLTI2OCwxMyArMjY4LDEzIEBAIHZvaWQgSU9DaGFubmVsOjp3cml0ZShzaXplX3Qgb2Zm
c2V0LCBjb25zdCBEYXRhJiBkYXRhLCBXb3JrUXVldWUqIHF1ZXVlLCBzdGQ6OmZ1CiAKICAgICBH
T3V0cHV0U3RyZWFtKiBzdHJlYW0gPSBtX291dHB1dFN0cmVhbSA/IG1fb3V0cHV0U3RyZWFtLmdl
dCgpIDogZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJlYW0oR19JT19TVFJFQU0obV9pb1N0cmVh
bS5nZXQoKSkpOwogICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIHJ1blRhc2tJblF1ZXVlKFtj
aGFubmVsLCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICBydW5UYXNrSW5RdWV1ZShbY2hh
bm5lbCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoLTEpOwogICAgICAgICB9LCBxdWV1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXcml0ZUFzeW5jRGF0YSogYXN5bmNEYXRhID0g
bmV3IFdyaXRlQXN5bmNEYXRhIHsgdGhpcywgZGF0YS5zb3VwQnVmZmVyKCksIHF1ZXVlLCBjb21w
bGV0aW9uSGFuZGxlciB9OworICAgIFdyaXRlQXN5bmNEYXRhKiBhc3luY0RhdGEgPSBuZXcgV3Jp
dGVBc3luY0RhdGEgeyB0aGlzLCBkYXRhLnNvdXBCdWZmZXIoKSwgcXVldWUsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpIH07CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCBvZmZzZXQuCiAgICAg
Z19vdXRwdXRfc3RyZWFtX3dyaXRlX2FzeW5jKHN0cmVhbSwgYXN5bmNEYXRhLT5idWZmZXItPmRh
dGEsIGRhdGEuc2l6ZSgpLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6OkRpc2tDYWNoZVdyaXRlLCBu
dWxscHRyLAogICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KG91
dHB1dFN0cmVhbVdyaXRlUmVhZHlDYWxsYmFjayksIGFzeW5jRGF0YSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZC5oCmluZGV4IGEzZmU5MDY2MDBmMTVkY2I1NDZmOTJjYTQwOWRlN2Qw
ZTM2OTI4M2MuLjhlYjE3ZmRiMDgyZWY2MmYwNmE3OWFiYmQ4NWE5NGQxOGM0NTM1MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFj
ZSBOZXR3b3JrQ2FjaGUgewogY2xhc3MgU3BlY3VsYXRpdmVMb2FkIGZpbmFsIDogcHVibGljIE5l
dHdvcmtMb2FkQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtD
YWNoZTo6RW50cnk+KT4gUmV2YWxpZGF0aW9uQ29tcGxldGlvbkhhbmRsZXI7CisgICAgdHlwZWRl
ZiBGdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4pPiBS
ZXZhbGlkYXRpb25Db21wbGV0aW9uSGFuZGxlcjsKICAgICBTcGVjdWxhdGl2ZUxvYWQoY29uc3Qg
R2xvYmFsRnJhbWVJRCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiwgUmV2YWxpZGF0aW9uQ29tcGxldGlvbkhhbmRs
ZXImJik7CiAKICAgICB2aXJ0dWFsIH5TcGVjdWxhdGl2ZUxvYWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuaAppbmRleCBiNjdjMjYwZTE5NGRlODMwZWJlMzFiYzg5MjNkZDcwODA3MzQxZTg1Li5k
YzMxOWM1NDY1N2Y5YzAzZmQ0NTVlYzY0NTFhODRhNGI1OTE0NzZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rh
dGlzdGljcy5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRTdG9yZURl
Y2lzaW9uc1RvRGF0YWJhc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIE5ldHdvcmtDYWNoZTo6U3Rv
cmVEZWNpc2lvbj4mKTsKICAgICB2b2lkIHdyaXRlVGltZXJGaXJlZCgpOwogCi0gICAgdHlwZWRl
ZiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGJvb2wgd2FzRXZlclJlcXVlc3RlZCwgY29uc3Qgc3RkOjpv
cHRpb25hbDxTdG9yZURlY2lzaW9uPiYpPiBSZXF1ZXN0ZWRDb21wbGV0aW9uSGFuZGxlcjsKKyAg
ICB0eXBlZGVmIEZ1bmN0aW9uPHZvaWQgKGJvb2wgd2FzRXZlclJlcXVlc3RlZCwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxTdG9yZURlY2lzaW9uPiYpPiBSZXF1ZXN0ZWRDb21wbGV0aW9uSGFuZGxlcjsK
ICAgICBlbnVtIGNsYXNzIE5lZWRVbmNhY2hlZFJlYXNvbiB7IE5vLCBZZXMgfTsKICAgICB2b2lk
IHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChjb25zdCBTdHJpbmcmLCBOZWVkVW5jYWNoZWRSZWFzb24s
IFJlcXVlc3RlZENvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgbWFya0FzUmVxdWVzdGVk
KGNvbnN0IFN0cmluZyYgaGFzaCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCAxNWUyNzFkNDNh
NWY0NzFiNjBiMjM3M2E0MDBhNDE2YjExNzAyYjgzLi5lN2NhODg5NWE5OGViYjllOGI0ZWNkNjVi
MTJjMGEzNTczZTM1MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNp
bXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTY3LDM2
ICsxNjgsMzYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJIU1RTQ2FjaGUoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBzdGQKICAgICBfQ0ZOZXR3b3JrUmVzZXRI
U1RTSG9zdHNTaW5jZURhdGUoc2Vzc2lvbi5wbGF0Zm9ybVNlc3Npb24oKSwgKF9fYnJpZGdlIENG
RGF0ZVJlZilkYXRlKTsKIH0KIAotc3RhdGljIHZvaWQgY2xlYXJOU1VSTENhY2hlKGRpc3BhdGNo
X2dyb3VwX3QgZ3JvdXAsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSwgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiYgY29tcGxldGlvbkhhbmRs
ZXIpCitzdGF0aWMgdm9pZCBjbGVhck5TVVJMQ2FjaGUoZGlzcGF0Y2hfZ3JvdXBfdCBncm91cCwg
c3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCBGdW5j
dGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGRpc3BhdGNoX2dyb3Vw
X2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BS
SU9SSVRZX0RFRkFVTFQsIDApLCBbbW9kaWZpZWRTaW5jZSwgY29tcGxldGlvbkhhbmRsZXJdIHsK
KyAgICBkaXNwYXRjaF9ncm91cF9hc3luYyhncm91cCwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1
ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgQmxvY2tQdHI8dm9pZCgpPjo6
ZnJvbUNhbGxhYmxlKFttb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgTlNVUkxDYWNoZSAqY2Fj
aGUgPSBbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV07CiAKICAgICAgICAgTlNUaW1lSW50ZXJ2
YWwgdGltZUludGVydmFsID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86
OmR1cmF0aW9uPGRvdWJsZT4+KG1vZGlmaWVkU2luY2UudGltZV9zaW5jZV9lcG9jaCgpKS5jb3Vu
dCgpOwogICAgICAgICBOU0RhdGUgKmRhdGUgPSBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFs
U2luY2UxOTcwOnRpbWVJbnRlcnZhbF07CiAgICAgICAgIFtjYWNoZSByZW1vdmVDYWNoZWRSZXNw
b25zZXNTaW5jZURhdGU6ZGF0ZV07CiAKLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW2NvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIEJsb2NrUHRyPHZvaWQoKT46OmZyb21D
YWxsYWJsZShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
CisgICAgICAgIH0pLmdldCgpKTsKKyAgICB9KS5nZXQoKSk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAp
CiAgICAgICAgIG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVh
dGUoKTsKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQogICAgIGF1dG8gZ3JvdXAgPSBtX2Ns
ZWFyQ2FjaGVEaXNwYXRjaEdyb3VwOwotICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbZ3JvdXAsIG1vZGlmaWVkU2luY2UsIGNvbXBsZXRp
b25IYW5kbGVyXSB7Ci0gICAgICAgIE5ldHdvcmtDYWNoZTo6c2luZ2xldG9uKCkuY2xlYXIobW9k
aWZpZWRTaW5jZSwgW2dyb3VwLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0aW9uSGFuZGxlcl0gewor
ICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9tQ2FsbGFibGUoW2dyb3VwLCBtb2RpZmllZFNpbmNlLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5jbGVhcihtb2RpZmllZFNpbmNl
LCBbZ3JvdXAsIG1vZGlmaWVkU2luY2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgLy8gRklYTUU6IFByb2Jh
Ymx5IG5vdCBuZWNlc3NhcnkuCi0gICAgICAgICAgICBjbGVhck5TVVJMQ2FjaGUoZ3JvdXAsIG1v
ZGlmaWVkU2luY2UsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICAgICAgICAgIGNsZWFyTlNVUkxD
YWNoZShncm91cCwgbW9kaWZpZWRTaW5jZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
ICAgICAgICB9KTsKLSAgICB9KTsKKyAgICB9KS5nZXQoKSk7CiAjZWxzZQotICAgIGNsZWFyTlNV
UkxDYWNoZShtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwLCBtb2RpZmllZFNpbmNlLCBjb21wbGV0
aW9uSGFuZGxlcik7CisgICAgY2xlYXJOU1VSTENhY2hlKG1fY2xlYXJDYWNoZURpc3BhdGNoR3Jv
dXAsIG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtQcm9jZXNzU291cC5jcHAKaW5kZXggZWI0OGUxZmNlYWY1NDYyNTc4OWZkZGY5NTA3NDVj
MzcyNWM1YmY4OS4uM2QyZGU5MTk1YjliMTkzMzVmZWJkNzdhMGVlZjc1NjM5YTEzYTdmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vz
c1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpCiAgICAgY2xl
YXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludDo6bWluKCks
IFtdIHsgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlKHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmNs
ZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZp
ZWRTaW5jZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBO
ZXR3b3JrQ2FjaGU6OnNpbmdsZXRvbigpLmNsZWFyKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>