<?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>22587</bug_id>
          
          <creation_ts>2008-12-01 21:08:01 -0800</creation_ts>
          <short_desc>Remove unused (sampling only, and derivable) argument to JIT::emitCTICall.</short_desc>
          <delta_ts>2008-12-02 13:32:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100958</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-01 21:08:01 -0800</bug_when>
    <thetext>Remove unused (sampling only, and derivable) argument to JIT::emitCTICall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100960</commentid>
    <comment_count>1</comment_count>
      <attachid>25659</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-01 21:12:08 -0800</bug_when>
    <thetext>Created attachment 25659
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100966</commentid>
    <comment_count>2</comment_count>
      <attachid>25659</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-01 21:32:11 -0800</bug_when>
    <thetext>Comment on attachment 25659
The patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101061</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-12-02 13:32:22 -0800</bug_when>
    <thetext>Sending        JavaScriptCore/ChangeLog
Sending        JavaScriptCore/jit/JIT.cpp
Sending        JavaScriptCore/jit/JIT.h
Transmitting file data ...
Committed revision 38916.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25659</attachid>
            <date>2008-12-01 21:12:08 -0800</date>
            <delta_ts>2008-12-01 21:32:11 -0800</delta_ts>
            <desc>The patch</desc>
            <filename>patch.ctiCall.txt</filename>
            <type>text/plain</type>
            <size>57506</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODky
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDgtMTIt
MDEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB1bnVzZWQgKHNh
bXBsaW5nIG9ubHksIGFuZCBkZXJpdmFibGUpIGFyZ3VtZW50IHRvIEpJVDo6ZW1pdENUSUNhbGwu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4Nwor
CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdENUSUNhbGwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93U2NyaXB0Q2hlY2spOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVCaW5hcnlB
cml0aE9wU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBh
c3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAg
ICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6CisgICAgICAgICogaml0L0pJVC5oOgorCiAy
MDA4LTEyLTAxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLCB3aXRoIGhlbHAgZnJvbSBHYXZpbiBCYXJyYWNs
b3VnaC4KSW5kZXg6IGppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGppdC9KSVQuY3BwCShyZXZp
c2lvbiAzODg5MikKKysrIGppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsMTMzICsz
OTcsMTE5IEBAIEFMV0FZU19JTkxJTkUgIEptcFNyYyBKSVQ6OmVtaXROYWtlZEZhc3QKICAgICBy
ZXR1cm4gY2FsbDsKIH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJ
bnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfaiBoZWxw
ZXIpCitBTFdBWVNfSU5MSU5FIEptcFNyYyBKSVQ6OmVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgsIENUSUhlbHBlcl9qIGhlbHBlcikKIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBM
SU5HKQotICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNh
bXBsZSh2UEMsIHRydWUpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2UEMpOworICAgIF9fIG1vdmxfaTMybShtX2ludGVy
cHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZShtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
LmJlZ2luKCkgKyBieXRlY29kZUluZGV4LCB0cnVlKSwgbV9pbnRlcnByZXRlci0+c2FtcGxlcigp
LT5zYW1wbGVTbG90KCkpOwogI2VuZGlmCiAgICAgX18gcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNl
KCk7CiAgICAgZW1pdFB1dENUSVBhcmFtKFg4Njo6ZWRpLCBDVElfQVJHU19jYWxsRnJhbWUpOwog
ICAgIEptcFNyYyBjYWxsID0gX18gY2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNv
cmQoY2FsbCwgaGVscGVyLCBieXRlY29kZUluZGV4KSk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1Q
TElORykKLSAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVT
YW1wbGUodlBDLCBmYWxzZSksIG1faW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgp
KTsKKyAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1w
bGUobV9jb2RlQmxvY2stPmluc3RydWN0aW9ucy5iZWdpbigpICsgYnl0ZWNvZGVJbmRleCwgZmFs
c2UpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7CiAjZW5kaWYKICAg
ICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAKICAgICByZXR1cm4gY2FsbDsKIH0KIAotQUxX
QVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiogdlBDLCB1bnNp
Z25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfbyBoZWxwZXIpCitBTFdBWVNfSU5MSU5FIEpt
cFNyYyBKSVQ6OmVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9v
IGhlbHBlcikKIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQotICAgIF9fIG1vdmxfaTMy
bShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZSh2UEMsIHRydWUpLCBtX2lu
dGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTSh2UEMpOworICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVu
Y29kZVNhbXBsZShtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zLmJlZ2luKCkgKyBieXRlY29kZUlu
ZGV4LCB0cnVlKSwgbV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5zYW1wbGVTbG90KCkpOwogI2Vu
ZGlmCiAgICAgX18gcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCk7CiAgICAgZW1pdFB1dENUSVBh
cmFtKFg4Njo6ZWRpLCBDVElfQVJHU19jYWxsRnJhbWUpOwogICAgIEptcFNyYyBjYWxsID0gX18g
Y2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCwgaGVscGVyLCBieXRl
Y29kZUluZGV4KSk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBfXyBtb3ZsX2kz
Mm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUodlBDLCBmYWxzZSksIG1f
aW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgpKTsKKyAgICBfXyBtb3ZsX2kzMm0o
bV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUobV9jb2RlQmxvY2stPmluc3Ry
dWN0aW9ucy5iZWdpbigpICsgYnl0ZWNvZGVJbmRleCwgZmFsc2UpLCBtX2ludGVycHJldGVyLT5z
YW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7CiAjZW5kaWYKICAgICBraWxsTGFzdFJlc3VsdFJlZ2lz
dGVyKCk7CiAKICAgICByZXR1cm4gY2FsbDsKIH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklU
OjplbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBD
VElIZWxwZXJfcCBoZWxwZXIpCitBTFdBWVNfSU5MSU5FIEptcFNyYyBKSVQ6OmVtaXRDVElDYWxs
KHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9wIGhlbHBlcikKIHsKICNpZiBFTkFC
TEUoT1BDT0RFX1NBTVBMSU5HKQotICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1w
bGVyKCktPmVuY29kZVNhbXBsZSh2UEMsIHRydWUpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCkt
PnNhbXBsZVNsb3QoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2UEMpOworICAgIF9fIG1v
dmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZShtX2NvZGVCbG9j
ay0+aW5zdHJ1Y3Rpb25zLmJlZ2luKCkgKyBieXRlY29kZUluZGV4LCB0cnVlKSwgbV9pbnRlcnBy
ZXRlci0+c2FtcGxlcigpLT5zYW1wbGVTbG90KCkpOwogI2VuZGlmCiAgICAgX18gcmVzdG9yZUFy
Z3VtZW50UmVmZXJlbmNlKCk7CiAgICAgZW1pdFB1dENUSVBhcmFtKFg4Njo6ZWRpLCBDVElfQVJH
U19jYWxsRnJhbWUpOwogICAgIEptcFNyYyBjYWxsID0gX18gY2FsbCgpOwogICAgIG1fY2FsbHMu
YXBwZW5kKENhbGxSZWNvcmQoY2FsbCwgaGVscGVyLCBieXRlY29kZUluZGV4KSk7CiAjaWYgRU5B
QkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2Ft
cGxlcigpLT5lbmNvZGVTYW1wbGUodlBDLCBmYWxzZSksIG1faW50ZXJwcmV0ZXItPnNhbXBsZXIo
KS0+c2FtcGxlU2xvdCgpKTsKKyAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxl
cigpLT5lbmNvZGVTYW1wbGUobV9jb2RlQmxvY2stPmluc3RydWN0aW9ucy5iZWdpbigpICsgYnl0
ZWNvZGVJbmRleCwgZmFsc2UpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3Qo
KSk7CiAjZW5kaWYKICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAKICAgICByZXR1cm4g
Y2FsbDsKIH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJbnN0cnVj
dGlvbiogdlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfYiBoZWxwZXIpCitB
TFdBWVNfSU5MSU5FIEptcFNyYyBKSVQ6OmVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXgsIENUSUhlbHBlcl9iIGhlbHBlcikKIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQot
ICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZSh2
UEMsIHRydWUpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTSh2UEMpOworICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVy
LT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZShtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zLmJlZ2lu
KCkgKyBieXRlY29kZUluZGV4LCB0cnVlKSwgbV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5zYW1w
bGVTbG90KCkpOwogI2VuZGlmCiAgICAgX18gcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCk7CiAg
ICAgZW1pdFB1dENUSVBhcmFtKFg4Njo6ZWRpLCBDVElfQVJHU19jYWxsRnJhbWUpOwogICAgIEpt
cFNyYyBjYWxsID0gX18gY2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2Fs
bCwgaGVscGVyLCBieXRlY29kZUluZGV4KSk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykK
LSAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUo
dlBDLCBmYWxzZSksIG1faW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgpKTsKKyAg
ICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUobV9j
b2RlQmxvY2stPmluc3RydWN0aW9ucy5iZWdpbigpICsgYnl0ZWNvZGVJbmRleCwgZmFsc2UpLCBt
X2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7CiAjZW5kaWYKICAgICBraWxs
TGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAKICAgICByZXR1cm4gY2FsbDsKIH0KIAotQUxXQVlTX0lO
TElORSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4LCBDVElIZWxwZXJfdiBoZWxwZXIpCitBTFdBWVNfSU5MSU5FIEptcFNyYyBK
SVQ6OmVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl92IGhlbHBl
cikKIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQotICAgIF9fIG1vdmxfaTMybShtX2lu
dGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZSh2UEMsIHRydWUpLCBtX2ludGVycHJl
dGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2
UEMpOworICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNh
bXBsZShtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zLmJlZ2luKCkgKyBieXRlY29kZUluZGV4LCB0
cnVlKSwgbV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5zYW1wbGVTbG90KCkpOwogI2VuZGlmCiAg
ICAgX18gcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCk7CiAgICAgZW1pdFB1dENUSVBhcmFtKFg4
Njo6ZWRpLCBDVElfQVJHU19jYWxsRnJhbWUpOwogICAgIEptcFNyYyBjYWxsID0gX18gY2FsbCgp
OwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCwgaGVscGVyLCBieXRlY29kZUlu
ZGV4KSk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBfXyBtb3ZsX2kzMm0obV9p
bnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUodlBDLCBmYWxzZSksIG1faW50ZXJw
cmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgpKTsKKyAgICBfXyBtb3ZsX2kzMm0obV9pbnRl
cnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUobV9jb2RlQmxvY2stPmluc3RydWN0aW9u
cy5iZWdpbigpICsgYnl0ZWNvZGVJbmRleCwgZmFsc2UpLCBtX2ludGVycHJldGVyLT5zYW1wbGVy
KCktPnNhbXBsZVNsb3QoKSk7CiAjZW5kaWYKICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7
CiAKICAgICByZXR1cm4gY2FsbDsKIH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0
Q1RJQ2FsbChJbnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxw
ZXJfcyBoZWxwZXIpCitBTFdBWVNfSU5MSU5FIEptcFNyYyBKSVQ6OmVtaXRDVElDYWxsKHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9zIGhlbHBlcikKIHsKICNpZiBFTkFCTEUoT1BD
T0RFX1NBTVBMSU5HKQotICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCkt
PmVuY29kZVNhbXBsZSh2UEMsIHRydWUpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBs
ZVNsb3QoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2UEMpOworICAgIF9fIG1vdmxfaTMy
bShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZShtX2NvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25zLmJlZ2luKCkgKyBieXRlY29kZUluZGV4LCB0cnVlKSwgbV9pbnRlcnByZXRlci0+
c2FtcGxlcigpLT5zYW1wbGVTbG90KCkpOwogI2VuZGlmCiAgICAgX18gcmVzdG9yZUFyZ3VtZW50
UmVmZXJlbmNlKCk7CiAgICAgZW1pdFB1dENUSVBhcmFtKFg4Njo6ZWRpLCBDVElfQVJHU19jYWxs
RnJhbWUpOwogICAgIEptcFNyYyBjYWxsID0gX18gY2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5k
KENhbGxSZWNvcmQoY2FsbCwgaGVscGVyLCBieXRlY29kZUluZGV4KSk7CiAjaWYgRU5BQkxFKE9Q
Q09ERV9TQU1QTElORykKLSAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigp
LT5lbmNvZGVTYW1wbGUodlBDLCBmYWxzZSksIG1faW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2Ft
cGxlU2xvdCgpKTsKKyAgICBfXyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5l
bmNvZGVTYW1wbGUobV9jb2RlQmxvY2stPmluc3RydWN0aW9ucy5iZWdpbigpICsgYnl0ZWNvZGVJ
bmRleCwgZmFsc2UpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7CiAj
ZW5kaWYKICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAKICAgICByZXR1cm4gY2FsbDsK
IH0KIAotQUxXQVlTX0lOTElORSBKbXBTcmMgSklUOjplbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiog
dlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfMiBoZWxwZXIpCitBTFdBWVNf
SU5MSU5FIEptcFNyYyBKSVQ6OmVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENU
SUhlbHBlcl8yIGhlbHBlcikKIHsKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQotICAgIF9f
IG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmVuY29kZVNhbXBsZSh2UEMsIHRy
dWUpLCBtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTSh2UEMpOworICAgIF9fIG1vdmxfaTMybShtX2ludGVycHJldGVyLT5zYW1w
bGVyKCktPmVuY29kZVNhbXBsZShtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zLmJlZ2luKCkgKyBi
eXRlY29kZUluZGV4LCB0cnVlKSwgbV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5zYW1wbGVTbG90
KCkpOwogI2VuZGlmCiAgICAgX18gcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCk7CiAgICAgZW1p
dFB1dENUSVBhcmFtKFg4Njo6ZWRpLCBDVElfQVJHU19jYWxsRnJhbWUpOwogICAgIEptcFNyYyBj
YWxsID0gX18gY2FsbCgpOwogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCwgaGVs
cGVyLCBieXRlY29kZUluZGV4KSk7CiAjaWYgRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICBf
XyBtb3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUodlBDLCBm
YWxzZSksIG1faW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgpKTsKKyAgICBfXyBt
b3ZsX2kzMm0obV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUobV9jb2RlQmxv
Y2stPmluc3RydWN0aW9ucy5iZWdpbigpICsgYnl0ZWNvZGVJbmRleCwgZmFsc2UpLCBtX2ludGVy
cHJldGVyLT5zYW1wbGVyKCktPnNhbXBsZVNsb3QoKSk7CiAjZW5kaWYKICAgICBraWxsTGFzdFJl
c3VsdFJlZ2lzdGVyKCk7CiAKQEAgLTY0OCw3ICs2MzQsNyBAQCBKSVQ6OkpJVChKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGEsIENvZGVCCiAgICAgY2FzZSBuYW1lOiB7IFwKICAgICAgICAgZW1pdFB1
dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwg
MCwgWDg2OjplY3gpOyBcCiAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVy
KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4KTsgXAotICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfIyNuYW1lKTsg
XAorICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpXyMjbmFtZSk7IFwKICAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5k
KTsgXAogICAgICAgICBpICs9IDQ7IFwKICAgICAgICAgYnJlYWs7IFwKQEAgLTY1Nyw3ICs2NDMs
NyBAQCBKSVQ6OkpJVChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENvZGVCCiAjZGVmaW5lIENU
SV9DT01QSUxFX1VOQVJZX09QKG5hbWUpIFwKICAgICBjYXNlIG5hbWU6IHsgXAogICAgICAgICBl
bWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVy
YW5kLCAwLCBYODY6OmVjeCk7IFwKLSAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpXyMjbmFtZSk7IFwKKyAgICAgICAgZW1pdENUSUNhbGwoaSwg
SW50ZXJwcmV0ZXI6OmN0aV8jI25hbWUpOyBcCiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7IFwKICAgICAgICAgaSArPSAzOyBcCiAg
ICAgICAgIGJyZWFrOyBcCkBAIC03MzMsNyArNzE5LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGwoT3Bjb2RlSUQgb3Bjb2RlSQogICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNhbGxl
ZSwgWDg2OjplY3gsIGkpOwogICAgICAgICBjb21waWxlT3BDYWxsRXZhbFNldHVwQXJncyhpbnN0
cnVjdGlvbik7CiAKLSAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24sIGksIEludGVycHJl
dGVyOjpjdGlfb3BfY2FsbF9ldmFsKTsKKyAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9jYWxsX2V2YWwpOwogICAgICAgICBfXyBjbXBsX2kzMnIoYXNJbnRlZ2VyKEpT
SW1tZWRpYXRlOjppbXBvc3NpYmxlVmFsdWUoKSksIFg4Njo6ZWF4KTsKICAgICAgICAgd2FzRXZh
bCA9IF9fIGpuZSgpOwogICAgIH0KQEAgLTc1Niw3ICs3NDIsNyBAQCB2b2lkIEpJVDo6Y29tcGls
ZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJCiAKICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVj
eCwgMCk7CiAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKHByb3RvLCAx
MiwgWDg2OjplYXgpOwotICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiwgaSwgSW50ZXJw
cmV0ZXI6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1Y3QpOworICAgICAgICBlbWl0Q1RJQ2Fs
bChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2NvbnN0cnVjdF9KU0NvbnN0cnVjdCk7CiAgICAgICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIodGhpc1JlZ2lzdGVyKTsKICAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihjYWxsZWUsIFg4Njo6ZWN4LCBpKTsKICAgICB9CkBAIC04NDAsMTEgKzgy
NiwxMSBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wU3RyaWN0RXEoSW5zdHJ1Y3Rpb24qCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dTY3JpcHRD
aGVjayhJbnN0cnVjdGlvbiogdlBDLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KQordm9pZCBKSVQ6
OmVtaXRTbG93U2NyaXB0Q2hlY2sodW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKICAgICBfXyBz
dWJsX2k4cigxLCBYODY6OmVzaSk7CiAgICAgSm1wU3JjIHNraXBUaW1lb3V0ID0gX18gam5lKCk7
Ci0gICAgZW1pdENUSUNhbGwodlBDLCBieXRlY29kZUluZGV4LCBJbnRlcnByZXRlcjo6Y3RpX3Rp
bWVvdXRfY2hlY2spOworICAgIGVtaXRDVElDYWxsKGJ5dGVjb2RlSW5kZXgsIEludGVycHJldGVy
OjpjdGlfdGltZW91dF9jaGVjayk7CiAKICAgICBlbWl0R2V0Q1RJUGFyYW0oQ1RJX0FSR1NfZ2xv
YmFsRGF0YSwgWDg2OjplY3gpOwogICAgIF9fIG1vdmxfbXIoRklFTERfT0ZGU0VUKEpTR2xvYmFs
RGF0YSwgaW50ZXJwcmV0ZXIpLCBYODY6OmVjeCwgWDg2OjplY3gpOwpAQCAtMTA0NSw3ICsxMDMx
LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVCaW5hcnlBcml0aE9wKE9wY29kZUlEIAogICAgIH0KIH0K
IAotdm9pZCBKSVQ6OmNvbXBpbGVCaW5hcnlBcml0aE9wU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qIHZQ
QywgT3Bjb2RlSUQgb3Bjb2RlSUQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIsIHVuc2lnbmVkIGRzdCwgdW5zaWduZWQgc3JjMSwgdW5zaWduZWQgc3JjMiwgT3BlcmFuZFR5
cGVzIHR5cGVzLCB1bnNpZ25lZCBpKQordm9pZCBKSVQ6OmNvbXBpbGVCaW5hcnlBcml0aE9wU2xv
d0Nhc2UoT3Bjb2RlSUQgb3Bjb2RlSUQsIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIsIHVuc2lnbmVkIGRzdCwgdW5zaWduZWQgc3JjMSwgdW5zaWduZWQgc3JjMiwgT3BlcmFu
ZFR5cGVzIHR5cGVzLCB1bnNpZ25lZCBpKQogewogICAgIEptcERzdCBoZXJlID0gX18gbGFiZWwo
KTsKICAgICBfXyBsaW5rKGl0ZXItPmZyb20sIGhlcmUpOwpAQCAtMTA4MywxMiArMTA2OSwxMiBA
QCB2b2lkIEpJVDo6Y29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2FzZShJCiAgICAgZW1pdFB1dENU
SUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoc3JjMSwgMCwgWDg2OjplY3gpOwogICAgIGVtaXRQdXRD
VElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKHNyYzIsIDQsIFg4Njo6ZWN4KTsKICAgICBpZiAob3Bj
b2RlSUQgPT0gb3BfYWRkKQotICAgICAgICBlbWl0Q1RJQ2FsbCh2UEMsIGksIEludGVycHJldGVy
OjpjdGlfb3BfYWRkKTsKKyAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF9hZGQpOwogICAgIGVsc2UgaWYgKG9wY29kZUlEID09IG9wX3N1YikKLSAgICAgICAgZW1pdENU
SUNhbGwodlBDLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3N1Yik7CisgICAgICAgIGVtaXRDVElD
YWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bfc3ViKTsKICAgICBlbHNlIHsKICAgICAgICAgQVNT
RVJUKG9wY29kZUlEID09IG9wX211bCk7Ci0gICAgICAgIGVtaXRDVElDYWxsKHZQQywgaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9tdWwpOworICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRl
cjo6Y3RpX29wX211bCk7CiAgICAgfQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
IH0KQEAgLTExNDYsNyArMTEzMiw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNz
KCkKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgMCwg
WDg2OjplY3gpOwogICAgICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxS
ZWdpc3RlcihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA0LCBYODY6OmVjeCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9hZGQpOworICAgICAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRl
cnByZXRlcjo6Y3RpX29wX2FkZCk7CiAgICAgICAgICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQpAQCAtMTE1Niw3ICsxMTQyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZW5kOiB7CiAgICAg
ICAgICAgICBpZiAobV9jb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4pCi0gICAgICAgICAg
ICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29w
X2VuZCk7CisgICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF9lbmQpOwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kLCBYODY6OmVheCwgaSk7CiAgICAgICAgICAgICBfXyBwdXNobF9tKFJl
Z2lzdGVyRmlsZTo6UmV0dXJuUEMgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3Rlcikp
LCBYODY6OmVkaSk7CiAgICAgICAgICAgICBfXyByZXQoKTsKQEAgLTExODAsNyArMTE2Niw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcDogewotICAgICAgICAgICAgZW1pdFNsb3dT
Y3JpcHRDaGVjayhpbnN0cnVjdGlvbiArIGksIGkpOworICAgICAgICAgICAgZW1pdFNsb3dTY3Jp
cHRDaGVjayhpKTsKIAogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZDsKICAgICAgICAgICAgIG1fam1wVGFibGUuYXBwZW5kKEptcFRhYmxl
KF9fIGptcCgpLCBpICsgMSArIHRhcmdldCkpOwpAQCAtMTE4OCw3ICsxMTc0LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3M6IHsKLSAgICAgICAgICAgIGVtaXRTbG93
U2NyaXB0Q2hlY2soaW5zdHJ1Y3Rpb24gKyBpLCBpKTsKKyAgICAgICAgICAgIGVtaXRTbG93U2Ny
aXB0Q2hlY2soaSk7CiAKICAgICAgICAgICAgIHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9u
W2kgKyAzXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBKU1ZhbHVlKiBzcmMyaW1tID0gZ2V0Q29u
c3RhbnRJbW1lZGlhdGVOdW1lcmljQXJnKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQpOwpA
QCAtMTIwOCw3ICsxMTk0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xl
c3NlcTogewotICAgICAgICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpbnN0cnVjdGlvbiArIGks
IGkpOworICAgICAgICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpKTsKIAogICAgICAgICAgICAg
dW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZDsKICAgICAgICAg
ICAgIEpTVmFsdWUqIHNyYzJpbW0gPSBnZXRDb25zdGFudEltbWVkaWF0ZU51bWVyaWNBcmcoaW5z
dHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCk7CkBAIC0xMjI4LDcgKzEyMTQsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX25ld19vYmplY3Q6IHsKLSAgICAgICAgICAgIGVtaXRDVElDYWxs
KGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfb2JqZWN0KTsKKyAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X29iamVjdCk7
CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51
Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSAyOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0x
MzU4LDcgKzEzNDQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsg
Ml0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVu
dCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXJzW2luc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJh
bmRdKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0
PHVuc2lnbmVkPihpZGVudCksIDQpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rp
b24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2RlbF9ieV9pZCk7CisgICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2RlbF9ieV9pZCk7CiAgICAgICAgICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwog
ICAgICAgICAgICAgaSArPSA0OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzk3LDcgKzEzODMs
NyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIGNhc2Ugb3Bf
bmV3X2Z1bmM6IHsKICAgICAgICAgICAgIEZ1bmNEZWNsTm9kZSogZnVuYyA9IChtX2NvZGVCbG9j
ay0+ZnVuY3Rpb25zW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdKS5nZXQoKTsKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihm
dW5jKSwgMCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIElu
dGVycHJldGVyOjpjdGlfb3BfbmV3X2Z1bmMpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwg
SW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfZnVuYyk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSAr
PSAzOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNDUzLDE5ICsxNDM5LDE5IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Rl
YXJfb2ZmX2FjdGl2YXRpb246IHsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVh
bFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIDAsIFg4Njo6ZWN4KTsKLSAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0
aV9vcF90ZWFyX29mZl9hY3RpdmF0aW9uKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIElu
dGVycHJldGVyOjpjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbik7CiAgICAgICAgICAgICBpICs9
IDI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJf
b2ZmX2FyZ3VtZW50czogewotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyk7CisgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RlYXJfb2ZmX2FyZ3VtZW50cyk7
CiAgICAgICAgICAgICBpICs9IDE7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX3JldDogewogICAgICAgICAgICAgLy8gV2UgY291bGQgSklUIGdlbmVyYXRl
IHRoZSBkZXJlZiwgb25seSBjYWxsaW5nIG91dCB0byBDIHdoZW4gdGhlIHJlZmNvdW50IGhpdHMg
emVyby4KICAgICAgICAgICAgIGlmIChtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbikK
LSAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJl
dGVyOjpjdGlfb3BfcmV0X3Njb3BlQ2hhaW4pOworICAgICAgICAgICAgICAgIGVtaXRDVElDYWxs
KGksIEludGVycHJldGVyOjpjdGlfb3BfcmV0X3Njb3BlQ2hhaW4pOwogCiAgICAgICAgICAgICAv
LyBSZXR1cm4gdGhlIHJlc3VsdCBpbiAlZWF4LgogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCBYODY6OmVheCwgaSk7CkBAIC0x
NDg3LDcgKzE0NzMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgICAgICBfXyBsZWFsX21yKHNpemVvZihSZWdpc3RlcikgKiBpbnN0cnVjdGlvbltpICsgMl0u
dS5vcGVyYW5kLCBYODY6OmVkaSwgWDg2OjplZHgpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFy
ZyhYODY6OmVkeCwgMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoaW5zdHJ1
Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgNCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0
cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X2FycmF5KTsKKyAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X2FycmF5KTsKICAgICAg
ICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFu
ZCk7CiAgICAgICAgICAgICBpICs9IDQ7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE0OTUsNyAr
MTQ4MSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgY2Fz
ZSBvcF9yZXNvbHZlOiB7CiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2Rl
QmxvY2stPmlkZW50aWZpZXJzW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdKTsKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihp
ZGVudCksIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX3Jlc29sdmUpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwg
SW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9
IDM7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1NDAsNyArMTUyNiw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9yZXNvbHZlX2Z1bmM6IHsK
ICAgICAgICAgICAgIElkZW50aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmll
cnNbaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZF0pOwogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50KSwgMCk7Ci0gICAg
ICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlf
b3BfcmVzb2x2ZV9mdW5jKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVy
OjpjdGlfb3BfcmVzb2x2ZV9mdW5jKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgWDg2OjplZHgpOwogICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAg
ICAgICAgICAgIGkgKz0gNDsKQEAgLTE1ODIsNyArMTU2OCw3IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgfQogICAgICAgICBDVElfQ09NUElMRV9CSU5BUllf
T1Aob3BfbGVzc2VxKQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfdHJ1ZTogewotICAgICAgICAg
ICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpbnN0cnVjdGlvbiArIGksIGkpOworICAgICAgICAgICAg
ZW1pdFNsb3dTY3JpcHRDaGVjayhpKTsKIAogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0g
aW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgWDg2OjplYXgsIGkpOwpAQCAt
MTYwNCw3ICsxNTkwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAg
ICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZTogewogICAgICAgICAgICAgSWRlbnRpZmllciogaWRl
bnQgPSAmKG1fY29kZUJsb2NrLT5pZGVudGlmaWVyc1tpbnN0cnVjdGlvbltpICsgMl0udS5vcGVy
YW5kXSk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQocmVpbnRlcnByZXRfY2Fz
dDx1bnNpZ25lZD4oaWRlbnQpLCAwKTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0
aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlX2Jhc2UpOworICAgICAgICAg
ICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlX2Jhc2UpOwogICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVy
YW5kKTsKICAgICAgICAgICAgIGkgKz0gMzsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYyOSw3
ICsxNjE1LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAg
ICAgICAgIF9fIGxpbmsob3ZlcmZsb3csIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgICAgIF9f
IGxpbmsobm90SW1tZWRpYXRlLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0
Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCAw
LCBYODY6OmVjeCk7Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25lZ2F0ZSk7CisgICAgICAgICAgICAgICAgZW1pdENU
SUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZWdhdGUpOwogICAgICAgICAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFNsb3cgY2FzZSBpbW1lZGlhdGVz
CkBAIC0xNjYzLDcgKzE2NDksNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZp
ZXJzW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdKTsKICAgICAgICAgICAgIGVtaXRQdXRD
VElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihpZGVudCksIDApOwogICAg
ICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJh
bmQgKyBtX2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbiwgNCk7Ci0gICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcmVzb2x2
ZV9za2lwKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bf
cmVzb2x2ZV9za2lwKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1
Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDQ7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTE2OTMsNyArMTY3OSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1h
aW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChnbG9iYWxPYmplY3Qs
IDApOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQ+KGlkZW50KSwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQo
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oaW5zdHJ1Y3Rpb24gKyBpKSwgOCk7Ci0gICAgICAg
ICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3Bf
cmVzb2x2ZV9nbG9iYWwpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9yZXNvbHZlX2dsb2JhbCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgX18gbGluayhl
bmQsIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgaSArPSA2OwpAQCAtMTkxOSw3ICsxOTA1LDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBjYXNlIG9wX3Jl
c29sdmVfd2l0aF9iYXNlOiB7CiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9j
b2RlQmxvY2stPmlkZW50aWZpZXJzW2luc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmRdKTsKICAg
ICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVk
PihpZGVudCksIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBp
LCBJbnRlcnByZXRlcjo6Y3RpX29wX3Jlc29sdmVfd2l0aF9iYXNlKTsKKyAgICAgICAgICAgIGVt
aXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOwogICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVy
YW5kLCBYODY6OmVkeCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3Ry
dWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSA0OwpAQCAtMTkyOCw3
ICsxOTE0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBj
YXNlIG9wX25ld19mdW5jX2V4cDogewogICAgICAgICAgICAgRnVuY0V4cHJOb2RlKiBmdW5jID0g
KG1fY29kZUJsb2NrLT5mdW5jdGlvbkV4cHJlc3Npb25zW2luc3RydWN0aW9uW2kgKyAyXS51Lm9w
ZXJhbmRdKS5nZXQoKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVy
cHJldF9jYXN0PHVuc2lnbmVkPihmdW5jKSwgMCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChp
bnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X2Z1bmNfZXhwKTsKKyAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X2Z1bmNfZXhw
KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFd
LnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTIwMDUsNyArMTk5MSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgY2FzZSBvcF9uZXdfcmVnZXhwOiB7CiAgICAgICAgICAgICBSZWdFeHAqIHJlZ0V4cCA9
IG1fY29kZUJsb2NrLT5yZWdleHBzW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdLmdldCgp
OwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5z
aWduZWQ+KHJlZ0V4cCksIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24g
KyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25ld19yZWdleHApOworICAgICAgICAgICAgZW1p
dENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfcmVnZXhwKTsKICAgICAgICAgICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAg
ICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIwMjAsNyArMjAwNiw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3Rocm93OiB7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxS
ZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7Ci0gICAg
ICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlf
b3BfdGhyb3cpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF90aHJvdyk7CiAgICAgICAgICAgICBfXyBhZGRsX2k4cigweDIwLCBYODY6OmVzcCk7CiAgICAg
ICAgICAgICBfXyBwb3BsX3IoWDg2OjplYngpOwogICAgICAgICAgICAgX18gcG9wbF9yKFg4Njo6
ZWRpKTsKQEAgLTIwMzEsNyArMjAxNyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKCkKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9wbmFtZXM6IHsKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAyXS51
Lm9wZXJhbmQsIDAsIFg4Njo6ZWN4KTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0
aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9nZXRfcG5hbWVzKTsKKyAgICAgICAgICAg
IGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfZ2V0X3BuYW1lcyk7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OwogICAgICAgICAgICAgaSArPSAzOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDM5LDcgKzIw
MjUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIGNhc2Ug
b3BfbmV4dF9wbmFtZTogewogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVn
aXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOwogICAgICAg
ICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0
aV9vcF9uZXh0X3BuYW1lKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVy
OjpjdGlfb3BfbmV4dF9wbmFtZSk7CiAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwg
WDg2OjplYXgpOwogICAgICAgICAgICAgSm1wU3JjIGVuZE9mSXRlciA9IF9fIGplKCk7CiAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOwpAQCAtMjA1MCwxMiArMjAzNiwxMiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWlu
UGFzcygpCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXNoX3Njb3BlOiB7CiAgICAgICAg
ICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVj
dGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcHVzaF9zY29wZSk7CisgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1c2hfc2NvcGUpOwogICAgICAg
ICAgICAgaSArPSAyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9wb3Bfc2NvcGU6IHsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsg
aSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wb3Bfc2NvcGUpOworICAgICAgICAgICAgZW1pdENU
SUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wb3Bfc2NvcGUpOwogICAgICAgICAgICAgaSAr
PSAxOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIwOTksNyArMjA4NSw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9pbjog
ewogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rp
b25baSArIDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgNCwg
WDg2OjplY3gpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX2luKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVy
cHJldGVyOjpjdGlfb3BfaW4pOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMjEwOCw3ICsyMDk0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlTWFpblBhc3MoKQogICAgICAgICAgICAgSWRlbnRpZmllciogaWRlbnQgPSAmKG1fY29kZUJs
b2NrLT5pZGVudGlmaWVyc1tpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kXSk7CiAgICAgICAg
ICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oaWRl
bnQpLCAwKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGlu
c3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4KTsKLSAgICAgICAgICAgIGVt
aXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXNoX25l
d19zY29wZSk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29w
X3B1c2hfbmV3X3Njb3BlKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5z
dHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDQ7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTIxMjIsNyArMjEwOCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9qbXBfc2NvcGVzOiB7CiAgICAgICAgICAgICB1
bnNpZ25lZCBjb3VudCA9IGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoY291bnQsIDApOwotICAgICAgICAgICAgZW1pdENUSUNh
bGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2ptcF9zY29wZXMpOwor
ICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9qbXBfc2NvcGVz
KTsKICAgICAgICAgICAgIHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kgKyAyXS51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShfXyBqbXAoKSwg
aSArIDIgKyB0YXJnZXQpKTsKICAgICAgICAgICAgIGkgKz0gMzsKQEAgLTIxMzIsNyArMjExOCw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQ
dXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQs
IDAsIFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChpbnN0cnVj
dGlvbltpICsgMl0udS5vcGVyYW5kLCA0KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9t
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDgsIFg4Njo6ZWN4
KTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9wdXRfYnlfaW5kZXgpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9wdXRfYnlfaW5kZXgpOwogICAgICAgICAgICAgaSArPSA0OwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxNDgsNyArMjEzNCw3IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIAogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zy
b21WaXJ0dWFsUmVnaXN0ZXIoc2NydXRpbmVlLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICBl
bWl0UHV0Q1RJQXJnQ29uc3RhbnQodGFibGVJbmRleCwgNCk7Ci0gICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3Bfc3dpdGNoX2ltbSk7
CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3N3aXRjaF9p
bW0pOwogICAgICAgICAgICAgX18gam1wX3IoWDg2OjplYXgpOwogICAgICAgICAgICAgaSArPSA0
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTY1LDcgKzIxNTEsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmly
dHVhbFJlZ2lzdGVyKHNjcnV0aW5lZSwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdFB1
dENUSUFyZ0NvbnN0YW50KHRhYmxlSW5kZXgsIDQpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwo
aW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3N3aXRjaF9jaGFyKTsKKyAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bfc3dpdGNoX2NoYXIp
OwogICAgICAgICAgICAgX18gam1wX3IoWDg2OjplYXgpOwogICAgICAgICAgICAgaSArPSA0Owog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTgxLDcgKzIxNjcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVh
bFJlZ2lzdGVyKHNjcnV0aW5lZSwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0NvbnN0YW50KHRhYmxlSW5kZXgsIDQpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5z
dHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3N3aXRjaF9zdHJpbmcpOworICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9zd2l0Y2hfc3RyaW5n
KTsKICAgICAgICAgICAgIF9fIGptcF9yKFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGkgKz0gNDsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjE4OSw3ICsyMTc1LDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBjYXNlIG9wX2RlbF9ieV92YWw6IHsKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAy
XS51Lm9wZXJhbmQsIDAsIFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9t
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4
KTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9kZWxfYnlfdmFsKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVy
cHJldGVyOjpjdGlfb3BfZGVsX2J5X3ZhbCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSA0
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTk5LDcgKzIxODUsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYo
bV9jb2RlQmxvY2stPmlkZW50aWZpZXJzW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdKTsK
ICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2ln
bmVkPihpZGVudCksIDQpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVn
aXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgOCwgWDg2OjplY3gpOwotICAgICAg
ICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29w
X3B1dF9nZXR0ZXIpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0
aV9vcF9wdXRfZ2V0dGVyKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CkBAIC0yMjA4LDcgKzIxOTQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBJZGVudGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxv
Y2stPmlkZW50aWZpZXJzW2luc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmRdKTsKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihpZGVu
dCksIDQpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5z
dHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgOCwgWDg2OjplY3gpOwotICAgICAgICAgICAgZW1p
dENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9zZXR0
ZXIpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXRf
c2V0dGVyKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CkBAIC0yMjE3LDcgKzIyMDMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoaW5zdHJ1Y3Rpb25baSArIDJd
LnUub3BlcmFuZCwgMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoYXNJbnRl
Z2VyKG1lc3NhZ2UpLCA0KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChtX2Nv
ZGVCbG9jay0+bGluZU51bWJlckZvclZQQygmaW5zdHJ1Y3Rpb25baV0pLCA4KTsKLSAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9u
ZXdfZXJyb3IpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF9uZXdfZXJyb3IpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMjIyNiw3ICsyMjEyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KGluc3RydWN0aW9uW2kg
KyAxXS51Lm9wZXJhbmQsIDApOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KGlu
c3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDQpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFy
Z0NvbnN0YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDgpOwotICAgICAgICAgICAg
ZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2RlYnVn
KTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfZGVidWcp
OwogICAgICAgICAgICAgaSArPSA0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTIzMDksMTQgKzIyOTUsMTQgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBjb3VudDsgKytqKQogICAgICAgICAg
ICAgICAgIGVtaXRJbml0UmVnaXN0ZXIoaik7CiAKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGlu
c3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXNoX2FjdGl2YXRpb24pOwor
ICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXNoX2FjdGl2
YXRpb24pOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kKTsKIAogICAgICAgICAgICAgaSs9IDI7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hcmd1bWVudHM6IHsKLSAgICAg
ICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgKG1fY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzID09IDEpID8gSW50ZXJwcmV0ZXI6OmN0aV9vcF9jcmVhdGVfYXJndW1lbnRzX25v
X3BhcmFtcyA6IEludGVycHJldGVyOjpjdGlfb3BfY3JlYXRlX2FyZ3VtZW50cyk7CisgICAgICAg
ICAgICBlbWl0Q1RJQ2FsbChpLCAobV9jb2RlQmxvY2stPm51bVBhcmFtZXRlcnMgPT0gMSkgPyBJ
bnRlcnByZXRlcjo6Y3RpX29wX2NyZWF0ZV9hcmd1bWVudHNfbm9fcGFyYW1zIDogSW50ZXJwcmV0
ZXI6OmN0aV9vcF9jcmVhdGVfYXJndW1lbnRzKTsKICAgICAgICAgICAgIGkgKz0gMTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMzM2LDcgKzIzMjIsNyBAQCB2b2lkIEpJVDo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBjbXBsX2kzMm0oMCwgWDg2
OjplYXgpOwogICAgICAgICAgICAgSm1wU3JjIG5vUHJvZmlsZXIgPSBfXyBqZSgpOwogICAgICAg
ICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFd
LnUub3BlcmFuZCwgMCwgWDg2OjplYXgpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1
Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKKyAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcHJvZmlsZV93aWxs
X2NhbGwpOwogICAgICAgICAgICAgX18gbGluayhub1Byb2ZpbGVyLCBfXyBsYWJlbCgpKTsKIAog
ICAgICAgICAgICAgaSArPSAyOwpAQCAtMjM0Nyw3ICsyMzMzLDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgX18gY21wbF9pMzJtKDAsIFg4Njo6ZWF4
KTsKICAgICAgICAgICAgIEptcFNyYyBub1Byb2ZpbGVyID0gX18gamUoKTsKICAgICAgICAgICAg
IGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9w
ZXJhbmQsIDAsIFg4Njo6ZWF4KTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9u
ICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wcm9maWxlX2RpZF9jYWxsKTsKKyAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcHJvZmlsZV9kaWRfY2FsbCk7
CiAgICAgICAgICAgICBfXyBsaW5rKG5vUHJvZmlsZXIsIF9fIGxhYmVsKCkpOwogCiAgICAgICAg
ICAgICBpICs9IDI7CkBAIC0yMzg2LDcgKzIzNzIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVMaW5rUGFzcygpCiAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7IFwK
ICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOyBcCiAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9t
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4
KTsgXAotICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVy
OjpjdGlfIyNuYW1lKTsgXAorICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3Rp
XyMjbmFtZSk7IFwKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kKTsgXAogICAgICAgICBpICs9IDQ7IFwKICAgICAgICAgYnJlYWs7IFwK
QEAgLTIzOTgsNyArMjM4NCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCkK
ICAgICAgICAgX18gbGluaygoKytpdGVyKS0+ZnJvbSwgX18gbGFiZWwoKSk7ICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rp
b25baSArIDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOyBcCiAgICAgICAgIGVtaXRQdXRDVElB
cmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4
Njo6ZWN4KTsgXAotICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVy
cHJldGVyOjpjdGlfIyNuYW1lKTsgXAorICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRl
cjo6Y3RpXyMjbmFtZSk7IFwKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsgXAogICAgICAgICBpICs9IDQ7IFwKICAgICAgICAgYnJl
YWs7IFwKQEAgLTI0MjQsNyArMjQxMCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dD
YXNlcygpCiAgICAgICAgICAgICBfXyBsaW5rKGl0ZXItPmZyb20sIF9fIGxhYmVsKCkpOwogICAg
ICAgICAgICAgX18gbGluaygoKytpdGVyKS0+ZnJvbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAg
ICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGlu
c3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9jb252ZXJ0X3RoaXMpOworICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9jb252ZXJ0X3RoaXMp
OwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gMjsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MjQ0MCw3ICsyNDI2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAg
ICAgICAgICAgICAgICBfXyBsaW5rKG5vdEltbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICAg
ICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoc3JjMSwgMCwgWDg2OjplY3gpOwog
ICAgICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDQpOwotICAgICAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9h
ZGQpOworICAgICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bf
YWRkKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAg
ICAgICAgICB9IGVsc2UgaWYgKEpTVmFsdWUqIHZhbHVlID0gZ2V0Q29uc3RhbnRJbW1lZGlhdGVO
dW1lcmljQXJnKHNyYzIpKSB7CiAgICAgICAgICAgICAgICAgSm1wU3JjIG5vdEltbSA9IGl0ZXIt
PmZyb207CkBAIC0yNDQ5LDEyICsyNDM1LDEyIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNs
b3dDYXNlcygpCiAgICAgICAgICAgICAgICAgX18gbGluayhub3RJbW0sIF9fIGxhYmVsKCkpOwog
ICAgICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKHNyYzIsIDQsIFg4Njo6ZWN4KTsK
LSAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJl
dGVyOjpjdGlfb3BfYWRkKTsKKyAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnBy
ZXRlcjo6Y3RpX29wX2FkZCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihkc3QpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBPcGVyYW5kVHlw
ZXMgdHlwZXMgPSBPcGVyYW5kVHlwZXM6OmZyb21JbnQoaW5zdHJ1Y3Rpb25baSArIDRdLnUub3Bl
cmFuZCk7CiAgICAgICAgICAgICAgICAgaWYgKHR5cGVzLmZpcnN0KCkubWlnaHRCZU51bWJlcigp
ICYmIHR5cGVzLnNlY29uZCgpLm1pZ2h0QmVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAg
Y29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2FzZShpbnN0cnVjdGlvbiArIGksIG9wX2FkZCwgaXRl
ciwgZHN0LCBzcmMxLCBzcmMyLCB0eXBlcywgaSk7CisgICAgICAgICAgICAgICAgICAgIGNvbXBp
bGVCaW5hcnlBcml0aE9wU2xvd0Nhc2Uob3BfYWRkLCBpdGVyLCBkc3QsIHNyYzEsIHNyYzIsIHR5
cGVzLCBpKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgfQpAQCAtMjQ3Myw3ICsyNDU5LDcgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIGxpbmsobm90
SW1tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDAp
OwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7Ci0gICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfZ2V0X2J5
X3ZhbCk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2dl
dF9ieV92YWwpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIF9fIGxpbmsoX18gam1wKCksIG1fbGFi
ZWxzW2kgKyA0XSk7CiAKQEAgLTI0OTUsNyArMjQ4MSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX3N1YjogewotICAgICAgICAgICAgY29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2FzZShp
bnN0cnVjdGlvbiArIGksIG9wX3N1YiwgaXRlciwgaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFu
ZCwgaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgaW5zdHJ1Y3Rpb25baSArIDNdLnUub3Bl
cmFuZCwgT3BlcmFuZFR5cGVzOjpmcm9tSW50KGluc3RydWN0aW9uW2kgKyA0XS51Lm9wZXJhbmQp
LCBpKTsKKyAgICAgICAgICAgIGNvbXBpbGVCaW5hcnlBcml0aE9wU2xvd0Nhc2Uob3Bfc3ViLCBp
dGVyLCBpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltpICsgMl0udS5v
cGVyYW5kLCBpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCBPcGVyYW5kVHlwZXM6OmZyb21J
bnQoaW5zdHJ1Y3Rpb25baSArIDRdLnUub3BlcmFuZCksIGkpOwogICAgICAgICAgICAgaSArPSA1
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTI1MTAsNyArMjQ5Niw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAy
XS51Lm9wZXJhbmQsIDAsIFg4Njo6ZWN4KTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3Ry
dWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZWdhdGUpOworICAgICAgICAgICAg
ZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZWdhdGUpOwogICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAg
ICAgICAgICAgIGkgKz0gNDsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjUyMCw3ICsyNTA2LDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIGxp
bmsoKCsraXRlciktPmZyb20sIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFy
ZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWN4LCA0KTsK
LSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9yc2hpZnQpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9yc2hpZnQpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0
cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMjUzNCwxMyArMjUyMCwxMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18gbGluayhub3RJbW0yLCBfXyBsYWJlbCgpKTsK
ICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZyhYODY6OmVjeCwgNCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVj
dGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbHNoaWZ0KTsKKyAgICAgICAgICAgIGVt
aXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbHNoaWZ0KTsKICAgICAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAg
ICAgICAgICBpICs9IDQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2xvb3BfaWZfbGVzczogewotICAgICAgICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhp
bnN0cnVjdGlvbiArIGksIGkpOworICAgICAgICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpKTsK
IAogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDNdLnUub3Bl
cmFuZDsKICAgICAgICAgICAgIEpTVmFsdWUqIHNyYzJpbW0gPSBnZXRDb25zdGFudEltbWVkaWF0
ZU51bWVyaWNBcmcoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCk7CkBAIC0yNTQ4LDcgKzI1
MzQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAg
ICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICAgICAgZW1p
dFB1dENUSUFyZyhYODY6OmVkeCwgMCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zy
b21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgNCwgWDg2Ojpl
Y3gpOwotICAgICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9sb29wX2lmX2xlc3MpOworICAgICAgICAgICAgICAgIGVtaXRDVElD
YWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbG9vcF9pZl9sZXNzKTsKICAgICAgICAgICAgICAg
ICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAgICAgIF9fIGxp
bmsoX18gam5lKCksIG1fbGFiZWxzW2kgKyAzICsgdGFyZ2V0XSk7CiAgICAgICAgICAgICB9IGVs
c2UgewpAQCAtMjU1Niw3ICsyNTQyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKCkKICAgICAgICAgICAgICAgICBfXyBsaW5rKCgrK2l0ZXIpLT5mcm9tLCBfXyBsYWJlbCgp
KTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAg
ICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWR4LCA0KTsKLSAgICAgICAgICAgICAgICBlbWl0
Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbG9vcF9pZl9s
ZXNzKTsKKyAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29w
X2xvb3BfaWZfbGVzcyk7CiAgICAgICAgICAgICAgICAgX18gdGVzdGxfcnIoWDg2OjplYXgsIFg4
Njo6ZWF4KTsKICAgICAgICAgICAgICAgICBfXyBsaW5rKF9fIGpuZSgpLCBtX2xhYmVsc1tpICsg
MyArIHRhcmdldF0pOwogICAgICAgICAgICAgfQpAQCAtMjU3Miw3ICsyNTU4LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdD
b25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihpZGVudCksIDQpOwogICAgICAgICAg
ICAgZW1pdFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJn
KFg4Njo6ZWR4LCA4KTsKLSAgICAgICAgICAgIEptcFNyYyBjYWxsID0gZW1pdENUSUNhbGwoaW5z
dHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9ieV9pZCk7CisgICAgICAg
ICAgICBKbXBTcmMgY2FsbCA9IGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcHV0
X2J5X2lkKTsKIAogICAgICAgICAgICAgLy8gVHJhY2sgdGhlIGxvY2F0aW9uIG9mIHRoZSBjYWxs
OyB0aGlzIHdpbGwgYmUgdXNlZCB0byByZWNvdmVyIHJlcGF0Y2ggaW5mb3JtYXRpb24uCiAgICAg
ICAgICAgICBBU1NFUlQobV9jb2RlQmxvY2stPnByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW3By
b3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25JbmRleF0uYnl0ZWNvZGVJbmRleCA9PSBpKTsKQEAgLTI1
OTksNyArMjU4NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAg
ICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgIElkZW50aWZp
ZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmllcnNbaW5zdHJ1Y3Rpb25baSArIDNd
LnUub3BlcmFuZF0pOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJw
cmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50KSwgNCk7Ci0gICAgICAgICAgICBKbXBTcmMgY2FsbCA9
IGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9nZXRf
YnlfaWQpOworICAgICAgICAgICAgSm1wU3JjIGNhbGwgPSBlbWl0Q1RJQ2FsbChpLCBJbnRlcnBy
ZXRlcjo6Y3RpX29wX2dldF9ieV9pZCk7CiAgICAgICAgICAgICBBU1NFUlQoWDg2QXNzZW1ibGVy
OjpnZXREaWZmZXJlbmNlQmV0d2VlbkxhYmVscyhjb2xkUGF0aEJlZ2luLCBjYWxsKSA9PSByZXBh
dGNoT2Zmc2V0R2V0QnlJZFNsb3dDYXNlQ2FsbCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogCkBAIC0yNjEyLDcgKzI1
OTgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3NlcTogewotICAg
ICAgICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpbnN0cnVjdGlvbiArIGksIGkpOworICAgICAg
ICAgICAgZW1pdFNsb3dTY3JpcHRDaGVjayhpKTsKIAogICAgICAgICAgICAgdW5zaWduZWQgdGFy
Z2V0ID0gaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZDsKICAgICAgICAgICAgIEpTVmFsdWUq
IHNyYzJpbW0gPSBnZXRDb25zdGFudEltbWVkaWF0ZU51bWVyaWNBcmcoaW5zdHJ1Y3Rpb25baSAr
IDJdLnUub3BlcmFuZCk7CkBAIC0yNjIwLDcgKzI2MDYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18g
bGFiZWwoKSk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgMCk7CiAg
ICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rp
b25baSArIDJdLnUub3BlcmFuZCwgNCwgWDg2OjplY3gpOwotICAgICAgICAgICAgICAgIGVtaXRD
VElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9sb29wX2lmX2xl
c3NlcSk7CisgICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF9sb29wX2lmX2xlc3NlcSk7CiAgICAgICAgICAgICAgICAgX18gdGVzdGxfcnIoWDg2OjplYXgs
IFg4Njo6ZWF4KTsKICAgICAgICAgICAgICAgICBfXyBsaW5rKF9fIGpuZSgpLCBtX2xhYmVsc1tp
ICsgMyArIHRhcmdldF0pOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI2MjgsNyArMjYxNCw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICAgICAg
X18gbGluaygoKytpdGVyKS0+ZnJvbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICAgICAgZW1p
dFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhY
ODY6OmVkeCwgNCk7Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2xvb3BfaWZfbGVzc2VxKTsKKyAgICAgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2xvb3BfaWZfbGVzc2VxKTsKICAg
ICAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAg
ICAgICAgIF9fIGxpbmsoX18gam5lKCksIG1fbGFiZWxzW2kgKyAzICsgdGFyZ2V0XSk7CiAgICAg
ICAgICAgICB9CkBAIC0yNjQyLDcgKzI2MjgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVT
bG93Q2FzZXMoKQogICAgICAgICAgICAgX18gc3VibF9pOHIoZ2V0RGVUYWdnZWRDb25zdGFudElt
bWVkaWF0ZShKU0ltbWVkaWF0ZTo6b25lSW1tZWRpYXRlKCkpLCBYODY6OmVheCk7CiAgICAgICAg
ICAgICBfXyBsaW5rKG5vdEltbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJ
QXJnKFg4Njo6ZWF4LCAwKTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsg
aSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wcmVfaW5jKTsKKyAgICAgICAgICAgIGVtaXRDVElD
YWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcHJlX2luYyk7CiAgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCk7CiAgICAgICAgICAgICBpICs9IDI7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTI2NTgsNyArMjY0NCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNs
b3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgsIDQpOwogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZyhYODY6OmVjeCwgOCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiAr
IGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcHV0X2J5X3ZhbCk7CisgICAgICAgICAgICBlbWl0
Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9ieV92YWwpOwogICAgICAgICAgICAg
X18gbGluayhfXyBqbXAoKSwgbV9sYWJlbHNbaSArIDRdKTsKIAogICAgICAgICAgICAgLy8gc2xv
dyBjYXNlcyBmb3IgaW1tZWRpYXRlIGludCBhY2Nlc3NlcyB0byBhcnJheXMKQEAgLTI2NjgsMTcg
KzI2NTQsMTcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgZW1pdFB1dENUSUFy
ZyhYODY6OmVkeCwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWN4LCA4KTsK
LSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9wdXRfYnlfdmFsX2FycmF5KTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIElu
dGVycHJldGVyOjpjdGlfb3BfcHV0X2J5X3ZhbF9hcnJheSk7CiAKICAgICAgICAgICAgIGkgKz0g
NDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9p
Zl90cnVlOiB7Ci0gICAgICAgICAgICBlbWl0U2xvd1NjcmlwdENoZWNrKGluc3RydWN0aW9uICsg
aSwgaSk7CisgICAgICAgICAgICBlbWl0U2xvd1NjcmlwdENoZWNrKGkpOwogCiAgICAgICAgICAg
ICBfXyBsaW5rKGl0ZXItPmZyb20sIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZyhYODY6OmVheCwgMCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiAr
IGksIGksIEludGVycHJldGVyOjpjdGlfb3BfanRydWUpOworICAgICAgICAgICAgZW1pdENUSUNh
bGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9qdHJ1ZSk7CiAgICAgICAgICAgICBfXyB0ZXN0bF9y
cihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5z
dHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIF9fIGxpbmsoX18gam5lKCks
IG1fbGFiZWxzW2kgKyAyICsgdGFyZ2V0XSk7CkBAIC0yNjkyLDcgKzI2NzgsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18gYWRkbF9pOHIoZ2V0
RGVUYWdnZWRDb25zdGFudEltbWVkaWF0ZShKU0ltbWVkaWF0ZTo6b25lSW1tZWRpYXRlKCkpLCBY
ODY6OmVheCk7CiAgICAgICAgICAgICBfXyBsaW5rKG5vdEltbSwgX18gbGFiZWwoKSk7CiAgICAg
ICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKLSAgICAgICAgICAgIGVtaXRDVElD
YWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wcmVfZGVjKTsKKyAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcHJlX2RlYyk7CiAg
ICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCk7CiAgICAgICAgICAgICBp
ICs9IDI7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI3MDQsNyArMjY5MCw3IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICAgICAgX18gbGluayhpdGVy
LT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6
ZWR4LCAwKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3Rl
cihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCA0LCBYODY6OmVjeCk7Ci0gICAgICAgICAg
ICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29w
X2psZXNzKTsKKyAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3Rp
X29wX2psZXNzKTsKICAgICAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2Ojpl
YXgpOwogICAgICAgICAgICAgICAgIF9fIGxpbmsoX18gamUoKSwgbV9sYWJlbHNbaSArIDMgKyB0
YXJnZXRdKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNzEyLDcgKzI2OTgsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgICAgIF9fIGxpbmso
KCsraXRlciktPmZyb20sIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgICAgIGVtaXRQdXRDVElB
cmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgs
IDQpOwotICAgICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9qbGVzcyk7CisgICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwg
SW50ZXJwcmV0ZXI6OmN0aV9vcF9qbGVzcyk7CiAgICAgICAgICAgICAgICAgX18gdGVzdGxfcnIo
WDg2OjplYXgsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgICAgICBfXyBsaW5rKF9fIGplKCksIG1f
bGFiZWxzW2kgKyAzICsgdGFyZ2V0XSk7CiAgICAgICAgICAgICB9CkBAIC0yNzIzLDcgKzI3MDks
NyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18g
bGluayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIF9fIHhvcmxfaThyKEpT
SW1tZWRpYXRlOjpGdWxsVGFnVHlwZUJvb2wsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQ
dXRDVElBcmcoWDg2OjplYXgsIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rp
b24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25vdCk7CisgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25vdCk7CiAgICAgICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAg
aSArPSAzOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNzMxLDcgKzI3MTcsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBjYXNlIG9wX2pmYWxzZTogewog
ICAgICAgICAgICAgX18gbGluayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAg
IGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5z
dHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2p0cnVlKTsKKyAgICAgICAgICAg
IGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfanRydWUpOwogICAgICAgICAgICAg
X18gdGVzdGxfcnIoWDg2OjplYXgsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIHVuc2lnbmVkIHRh
cmdldCA9IGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBfXyBsaW5r
KF9fIGplKCksIG1fbGFiZWxzW2kgKyAyICsgdGFyZ2V0XSk7IC8vIGludmVydGVkIQpAQCAtMjc0
Myw3ICsyNzI5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAg
ICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICBfXyBs
aW5rKCgrK2l0ZXIpLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElB
cmcoWDg2OjplYXgsIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Bvc3RfaW5jKTsKKyAgICAgICAgICAgIGVtaXRDVElD
YWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcG9zdF9pbmMpOwogICAgICAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihzcmNEc3QsIFg4Njo6ZWR4KTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAg
ICBpICs9IDM7CkBAIC0yNzUyLDcgKzI3MzgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVT
bG93Q2FzZXMoKQogICAgICAgICBjYXNlIG9wX2JpdG5vdDogewogICAgICAgICAgICAgX18gbGlu
ayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2
OjplYXgsIDApOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX2JpdG5vdCk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX2JpdG5vdCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSAz
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNzY1LDE5ICsyNzUxLDE5IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICAgICAgX18gbGluayhpdGVyLT5m
cm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1
YWxSZWdpc3RlcihzcmMxLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dENU
SUFyZyhYODY6OmVheCwgNCk7Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rp
b24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdGFuZCk7CisgICAgICAgICAgICAgICAg
ZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9iaXRhbmQpOwogICAgICAgICAgICAg
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo
Z2V0Q29uc3RhbnRJbW1lZGlhdGVOdW1lcmljQXJnKHNyYzIpKSB7CiAgICAgICAgICAgICAgICAg
X18gbGluayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0
Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZp
cnR1YWxSZWdpc3RlcihzcmMyLCA0LCBYODY6OmVjeCk7Ci0gICAgICAgICAgICAgICAgZW1pdENU
SUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdGFuZCk7Cisg
ICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9iaXRhbmQp
OwogICAgICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgX18gbGluayhpdGVyLT5mcm9tLCBfXyBsYWJl
bCgpKTsKICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3Rlcihz
cmMxLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVk
eCwgNCk7Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX2JpdGFuZCk7CisgICAgICAgICAgICAgICAgZW1pdENUSUNhbGwo
aSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9iaXRhbmQpOwogICAgICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGkgKz0gNTsK
QEAgLTI3ODYsNyArMjc3Miw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAgICAgICAgIGNhc2Ugb3BfanRydWU6IHsKICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJv
bSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsK
LSAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9qdHJ1ZSk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6
Y3RpX29wX2p0cnVlKTsKICAgICAgICAgICAgIF9fIHRlc3RsX3JyKFg4Njo6ZWF4LCBYODY6OmVh
eCk7CiAgICAgICAgICAgICB1bnNpZ25lZCB0YXJnZXQgPSBpbnN0cnVjdGlvbltpICsgMl0udS5v
cGVyYW5kOwogICAgICAgICAgICAgX18gbGluayhfXyBqbmUoKSwgbV9sYWJlbHNbaSArIDIgKyB0
YXJnZXRdKTsKQEAgLTI3OTgsNyArMjc4NCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNs
b3dDYXNlcygpCiAgICAgICAgICAgICBfXyBsaW5rKGl0ZXItPmZyb20sIF9fIGxhYmVsKCkpOwog
ICAgICAgICAgICAgX18gbGluaygoKytpdGVyKS0+ZnJvbSwgX18gbGFiZWwoKSk7CiAgICAgICAg
ICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKLSAgICAgICAgICAgIGVtaXRDVElDYWxs
KGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wb3N0X2RlYyk7CisgICAg
ICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Bvc3RfZGVjKTsKICAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0LCBYODY6OmVkeCk7CiAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOwogICAgICAgICAgICAgaSArPSAzOwpAQCAtMjgwOCw3ICsyNzk0LDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJv
bSwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsK
ICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgsIDQpOwotICAgICAgICAgICAgZW1p
dENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdHhvcik7
CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdHhvcik7
CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51
Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSA1OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0y
ODE3LDcgKzI4MDMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAg
ICAgICAgICAgX18gbGluayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIGVt
aXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6
OmVkeCwgNCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIElu
dGVycHJldGVyOjpjdGlfb3BfYml0b3IpOworICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9iaXRvcik7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSA1Owog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yODI2LDcgKzI4MTIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18gbGluayhpdGVyLT5mcm9tLCBfXyBs
YWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAg
ICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7Ci0gICAgICAgICAgICBlbWl0Q1RJQ2Fs
bChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfZXEpOworICAgICAgICAg
ICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9lcSk7CiAgICAgICAgICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAg
ICAgICAgICAgaSArPSA0OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODM1LDcgKzI4MjEsNyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18gbGlu
ayhpdGVyLT5mcm9tLCBfXyBsYWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2
OjplYXgsIDApOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7Ci0gICAg
ICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlf
b3BfbmVxKTsKKyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bf
bmVxKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDQ7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTI4NDksNyArMjgzNSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMl0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJ
QXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA0LCBY
ODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgNF0udS5vcGVyYW5kLCA4LCBYODY6OmVjeCk7Ci0gICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfaW5zdGFu
Y2VvZik7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2lu
c3RhbmNlb2YpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMjg2NCw3ICsyODUwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKCkKICAgICAgICAgICAgIF9fIGxpbmsobm90SW1tMiwgX18gbGFiZWwoKSk7CiAgICAgICAg
ICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgIGVtaXRQdXRDVElB
cmcoWDg2OjplY3gsIDQpOwotICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX21vZCk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChp
LCBJbnRlcnByZXRlcjo6Y3RpX29wX21vZCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSA0
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODgyLDcgKzI4NjgsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGFuIGV4
dHJhIHNsb3cgY2FzZSBmb3IgKG9wMSAqIC1OKSBvciAoLU4gKiBvcDIpLCB0byBjaGVjayBmb3Ig
MCBzaW5jZSB0aGlzIHNob3VsZCBwcm9kdWNlIGEgcmVzdWx0IG9mIC0wLgogICAgICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKHNyYzEsIDAsIFg4Njo6ZWN4KTsK
ICAgICAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihzcmMyLCA0
LCBYODY6OmVjeCk7Ci0gICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBp
LCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX211bCk7CisgICAgICAgICAgICAgICAgZW1pdENUSUNh
bGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9tdWwpOwogICAgICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjMlZhbHVlICYm
ICgodmFsdWUgPSBKU0ltbWVkaWF0ZTo6aW50VmFsdWUoc3JjMlZhbHVlKSkgPiAwKSkgewogICAg
ICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7CkBAIC0yODkwLDEw
ICsyODc2LDEwIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAg
ICAgICAgICAgLy8gVGhlcmUgaXMgYW4gZXh0cmEgc2xvdyBjYXNlIGZvciAob3AxICogLU4pIG9y
ICgtTiAqIG9wMiksIHRvIGNoZWNrIGZvciAwIHNpbmNlIHRoaXMgc2hvdWxkIHByb2R1Y2UgYSBy
ZXN1bHQgb2YgLTAuCiAgICAgICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVn
aXN0ZXIoc3JjMSwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdG
cm9tVmlydHVhbFJlZ2lzdGVyKHNyYzIsIDQsIFg4Njo6ZWN4KTsKLSAgICAgICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbXVsKTsK
KyAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX211bCk7
CiAgICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgY29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2FzZShp
bnN0cnVjdGlvbiArIGksIG9wX211bCwgaXRlciwgZHN0LCBzcmMxLCBzcmMyLCBPcGVyYW5kVHlw
ZXM6OmZyb21JbnQoaW5zdHJ1Y3Rpb25baSArIDRdLnUub3BlcmFuZCksIGkpOworICAgICAgICAg
ICAgICAgIGNvbXBpbGVCaW5hcnlBcml0aE9wU2xvd0Nhc2Uob3BfbXVsLCBpdGVyLCBkc3QsIHNy
YzEsIHNyYzIsIE9wZXJhbmRUeXBlczo6ZnJvbUludChpbnN0cnVjdGlvbltpICsgNF0udS5vcGVy
YW5kKSwgaSk7CiAgICAgICAgICAgICBpICs9IDU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtMjkyMiw3ICsyOTA4LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKCkKIAogICAgICAgICAgICAgLy8gRmlyc3QsIGluIHRoZSBjYXNlIG9mIGEgY29uc3RydWN0
LCBhbGxvY2F0ZSB0aGUgbmV3IG9iamVjdC4KICAgICAgICAgICAgIGlmIChvcGNvZGVJRCA9PSBv
cF9jb25zdHJ1Y3QpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiwg
aSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9jb25zdHJ1Y3RfSlNDb25zdHJ1Y3QpOworICAgICAgICAg
ICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfY29uc3RydWN0X0pTQ29u
c3RydWN0KTsKICAgICAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlZ2lzdGVy
T2Zmc2V0IC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gYXJnQ291bnQpOwog
ICAgICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlLCBYODY6OmVjeCwg
aSk7CiAgICAgICAgICAgICB9CkBAIC0yOTU4LDcgKzI5NDQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgX18gbGluayhpc05vdE9iamVjdCwgbm90
SlNGdW5jdGlvbmxhYmVsKTsKICAgICAgICAgICAgIF9fIGxpbmsoY2FsbExpbmtGYWlsTm90T2Jq
ZWN0LCBub3RKU0Z1bmN0aW9ubGFiZWwpOwogICAgICAgICAgICAgX18gbGluayhjYWxsTGlua0Zh
aWxOb3RKU0Z1bmN0aW9uLCBub3RKU0Z1bmN0aW9ubGFiZWwpOwotICAgICAgICAgICAgZW1pdENU
SUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCAoKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCkgPyBJ
bnRlcnByZXRlcjo6Y3RpX29wX2NvbnN0cnVjdF9Ob3RKU0NvbnN0cnVjdCA6IEludGVycHJldGVy
OjpjdGlfb3BfY2FsbF9Ob3RKU0Z1bmN0aW9uKSk7CisgICAgICAgICAgICBlbWl0Q1RJQ2FsbChp
LCAoKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCkgPyBJbnRlcnByZXRlcjo6Y3RpX29wX2NvbnN0
cnVjdF9Ob3RKU0NvbnN0cnVjdCA6IEludGVycHJldGVyOjpjdGlfb3BfY2FsbF9Ob3RKU0Z1bmN0
aW9uKSk7CiAgICAgICAgICAgICBKbXBTcmMgd2FzTm90SlNGdW5jdGlvbiA9IF9fIGptcCgpOwog
CiAgICAgICAgICAgICAvLyBOZXh0LCBoYW5kbGUgSlNGdW5jdGlvbnMuLi4KQEAgLTI5NjYsNyAr
Mjk1Miw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAKICAgICAgICAg
ICAgIC8vIEZpcnN0LCBpbiB0aGUgY2FzZSBvZiBhIGNvbnN0cnVjdCwgYWxsb2NhdGUgdGhlIG5l
dyBvYmplY3QuCiAgICAgICAgICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0KSB7Ci0g
ICAgICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24sIGksIEludGVycHJldGVyOjpj
dGlfb3BfY29uc3RydWN0X0pTQ29uc3RydWN0KTsKKyAgICAgICAgICAgICAgICBlbWl0Q1RJQ2Fs
bChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2NvbnN0cnVjdF9KU0NvbnN0cnVjdCk7CiAgICAgICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZWdpc3Rlck9mZnNldCAtIFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGFyZ0NvdW50KTsKICAgICAgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNhbGxlZSwgWDg2OjplY3gsIGkpOwogICAgICAgICAgICAg
fQpAQCAtMjk5OCw3ICsyOTg0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2Vz
KCkKICAgICAgICAgICAgIF9fIGxpbmsoaXRlci0+ZnJvbSwgX18gbGFiZWwoKSk7CiAKICAgICAg
ICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwotICAgICAgICAgICAgZW1pdENUSUNh
bGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RvX2pzbnVtYmVyKTsK
KyAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfdG9fanNudW1i
ZXIpOwogCiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kg
KyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgaSArPSAzOwpAQCAtMzA1Miw3ICszMDM4LDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlKCkKIAogICAgIGlmIChtX2NvZGVCbG9jay0+Y29k
ZVR5cGUgPT0gRnVuY3Rpb25Db2RlKSB7CiAgICAgICAgIF9fIGxpbmsoc2xvd1JlZ2lzdGVyRmls
ZUNoZWNrLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgZW1pdENUSUNhbGwobV9jb2RlQmxvY2stPmlu
c3RydWN0aW9ucy5iZWdpbigpLCAwLCBJbnRlcnByZXRlcjo6Y3RpX3JlZ2lzdGVyX2ZpbGVfY2hl
Y2spOworICAgICAgICBlbWl0Q1RJQ2FsbCgwLCBJbnRlcnByZXRlcjo6Y3RpX3JlZ2lzdGVyX2Zp
bGVfY2hlY2spOwogICAgICAgICBKbXBTcmMgYmFja1RvQm9keSA9IF9fIGptcCgpOwogICAgICAg
ICBfXyBsaW5rKGJhY2tUb0JvZHksIGFmdGVyUmVnaXN0ZXJGaWxlQ2hlY2spOwogICAgIH0KSW5k
ZXg6IGppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBqaXQvSklULmgJKHJldmlzaW9uIDM4ODkyKQor
Kysgaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksNyArNDA5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgY29tcGlsZU9wU3RyaWN0RXEoSW5zdHJ1Y3Rpb24qIGluc3Ry
dWN0aW9uLCB1bnNpZ25lZCBpLCBDb21waWxlT3BTdHJpY3RFcVR5cGUgdHlwZSk7CiAgICAgICAg
IHZvaWQgcHV0RG91YmxlUmVzdWx0VG9KU051bWJlckNlbGxPckpTSW1tZWRpYXRlKFhNTVJlZ2lz
dGVySUQgeG1tU291cmNlLCBSZWdpc3RlcklEIGpzTnVtYmVyQ2VsbCwgdW5zaWduZWQgZHN0LCBK
bXBTcmMqIHdyb3RlSlNOdW1iZXJDZWxsLCAgWE1NUmVnaXN0ZXJJRCB0ZW1wWG1tLCBSZWdpc3Rl
cklEIHRlbXBSZWcxLCBSZWdpc3RlcklEIHRlbXBSZWcyKTsKICAgICAgICAgdm9pZCBjb21waWxl
QmluYXJ5QXJpdGhPcChPcGNvZGVJRCwgdW5zaWduZWQgZHN0LCB1bnNpZ25lZCBzcmMxLCB1bnNp
Z25lZCBzcmMyLCBPcGVyYW5kVHlwZXMgb3BpLCB1bnNpZ25lZCBpKTsKLSAgICAgICAgdm9pZCBj
b21waWxlQmluYXJ5QXJpdGhPcFNsb3dDYXNlKEluc3RydWN0aW9uKiwgT3Bjb2RlSUQsIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIsIHVuc2lnbmVkIGRzdCwgdW5zaWduZWQg
c3JjMSwgdW5zaWduZWQgc3JjMiwgT3BlcmFuZFR5cGVzIG9waSwgdW5zaWduZWQgaSk7CisgICAg
ICAgIHZvaWQgY29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2FzZShPcGNvZGVJRCwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlciwgdW5zaWduZWQgZHN0LCB1bnNpZ25lZCBzcmMx
LCB1bnNpZ25lZCBzcmMyLCBPcGVyYW5kVHlwZXMgb3BpLCB1bnNpZ25lZCBpKTsKIAogICAgICAg
ICB2b2lkIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaW50IHNyYywgUmVnaXN0ZXJJRCBkc3QsIHVu
c2lnbmVkIGkpOwogICAgICAgICB2b2lkIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGludCBzcmMx
LCBSZWdpc3RlcklEIGRzdDEsIGludCBzcmMyLCBSZWdpc3RlcklEIGRzdDIsIHVuc2lnbmVkIGkp
OwpAQCAtNDU3LDE4ICs0NTcsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEptcFNyYyBl
bWl0TmFrZWRDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFJlZ2lzdGVySUQpOwogICAgICAg
ICBKbXBTcmMgZW1pdE5ha2VkQ2FsbCh1bnNpZ25lZCBieXRlY29kZUluZGV4LCB2b2lkKiBmdW5j
dGlvbik7CiAgICAgICAgIEptcFNyYyBlbWl0TmFrZWRGYXN0Q2FsbCh1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCB2b2lkKik7Ci0gICAgICAgIEptcFNyYyBlbWl0Q1RJQ2FsbChJbnN0cnVjdGlvbios
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9qKTsKLSAgICAgICAgSm1wU3JjIGVt
aXRDVElDYWxsKEluc3RydWN0aW9uKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ1RJSGVscGVy
X28pOwotICAgICAgICBKbXBTcmMgZW1pdENUSUNhbGwoSW5zdHJ1Y3Rpb24qLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4LCBDVElIZWxwZXJfcCk7Ci0gICAgICAgIEptcFNyYyBlbWl0Q1RJQ2FsbChJ
bnN0cnVjdGlvbiosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl92KTsKLSAgICAg
ICAgSm1wU3JjIGVtaXRDVElDYWxsKEluc3RydWN0aW9uKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgQ1RJSGVscGVyX3MpOwotICAgICAgICBKbXBTcmMgZW1pdENUSUNhbGwoSW5zdHJ1Y3Rpb24q
LCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDVElIZWxwZXJfYik7Ci0gICAgICAgIEptcFNyYyBl
bWl0Q1RJQ2FsbChJbnN0cnVjdGlvbiosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBl
cl8yKTsKKyAgICAgICAgSm1wU3JjIGVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IENUSUhlbHBlcl9qKTsKKyAgICAgICAgSm1wU3JjIGVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgsIENUSUhlbHBlcl9vKTsKKyAgICAgICAgSm1wU3JjIGVtaXRDVElDYWxsKHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9wKTsKKyAgICAgICAgSm1wU3JjIGVtaXRDVElD
YWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl92KTsKKyAgICAgICAgSm1wU3Jj
IGVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9zKTsKKyAgICAg
ICAgSm1wU3JjIGVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENUSUhlbHBlcl9i
KTsKKyAgICAgICAgSm1wU3JjIGVtaXRDVElDYWxsKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENU
SUhlbHBlcl8yKTsKIAogICAgICAgICB2b2lkIGVtaXRHZXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVy
KFJlZ2lzdGVySUQgdmFyaWFibGVPYmplY3QsIGludCBpbmRleCwgUmVnaXN0ZXJJRCBkc3QpOwog
ICAgICAgICB2b2lkIGVtaXRQdXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVyKFJlZ2lzdGVySUQgc3Jj
LCBSZWdpc3RlcklEIHZhcmlhYmxlT2JqZWN0LCBpbnQgaW5kZXgpOwogICAgICAgICAKLSAgICAg
ICAgdm9pZCBlbWl0U2xvd1NjcmlwdENoZWNrKEluc3RydWN0aW9uKiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCk7CisgICAgICAgIHZvaWQgZW1pdFNsb3dTY3JpcHRDaGVjayh1bnNpZ25lZCBieXRl
Y29kZUluZGV4KTsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIHZvaWQgcHJpbnRCeXRlY29kZU9w
ZXJhbmRUeXBlcyh1bnNpZ25lZCBzcmMxLCB1bnNpZ25lZCBzcmMyKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="11968"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>