<?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>20759</bug_id>
          
          <creation_ts>2008-09-09 19:48:25 -0700</creation_ts>
          <short_desc>Remove MacroAssembler</short_desc>
          <delta_ts>2008-09-09 20:22:24 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>90723</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-09 19:48:25 -0700</bug_when>
    <thetext>MacroAssembler isn&apos;t really doing that much, and its relationship with X86Assembler is a bit confusing. I have a patch to remove it and move its small amount of functionality to X86Assembler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90724</commentid>
    <comment_count>1</comment_count>
      <attachid>23312</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-09 19:59:30 -0700</bug_when>
    <thetext>Created attachment 23312
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90725</commentid>
    <comment_count>2</comment_count>
      <attachid>23312</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-09 20:11:18 -0700</bug_when>
    <thetext>Comment on attachment 23312
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90726</commentid>
    <comment_count>3</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-09-09 20:22:24 -0700</bug_when>
    <thetext>Landed in r36311.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23312</attachid>
            <date>2008-09-09 19:59:30 -0700</date>
            <delta_ts>2008-09-09 20:11:18 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>MacroAssembler.diff</filename>
            <type>text/plain</type>
            <size>47383</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2MzEwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMDgtMDktMDkgIENhbWVyb24g
WndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIwNzU5OiBSZW1vdmUgTWFjcm9Bc3NlbWJs
ZXIKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc1
OT4KKworICAgICAgICBSZW1vdmUgTWFjcm9Bc3NlbWJsZXIgYW5kIG1vdmUgaXRzIGZ1bmN0aW9u
YWxpdHkgdG8gWDg2QXNzZW1ibGVyLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFZNL0NUSS5jcHA6
CisgICAgICAgIChKU0M6OkNUSTo6ZW1pdEdldEFyZyk6CisgICAgICAgIChKU0M6OkNUSTo6ZW1p
dEdldFB1dEFyZyk6CisgICAgICAgIChKU0M6OkNUSTo6ZW1pdFB1dEFyZyk6CisgICAgICAgIChK
U0M6OkNUSTo6ZW1pdFB1dENUSVBhcmFtKToKKyAgICAgICAgKEpTQzo6Q1RJOjplbWl0R2V0Q1RJ
UGFyYW0pOgorICAgICAgICAoSlNDOjpDVEk6OmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcik6Cisg
ICAgICAgIChKU0M6OkNUSTo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIpOgorICAgICAgICAo
SlNDOjpDVEk6OmVtaXRQdXRSZXN1bHQpOgorICAgICAgICAoSlNDOjpDVEk6OmVtaXREZWJ1Z0V4
Y2VwdGlvbkNoZWNrKToKKyAgICAgICAgKEpTQzo6Q1RJOjplbWl0SnVtcFNsb3dDYXNlSWZOb3RJ
bW0pOgorICAgICAgICAoSlNDOjpDVEk6OmVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbXMpOgorICAg
ICAgICAoSlNDOjpDVEk6OmVtaXRGYXN0QXJpdGhEZVRhZ0ltbWVkaWF0ZSk6CisgICAgICAgIChK
U0M6OkNUSTo6ZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKToKKyAgICAgICAgKEpTQzo6Q1RJ
OjplbWl0RmFzdEFyaXRoUG90ZW50aWFsbHlSZVRhZ0ltbWVkaWF0ZSk6CisgICAgICAgIChKU0M6
OkNUSTo6ZW1pdEZhc3RBcml0aEltbVRvSW50KToKKyAgICAgICAgKEpTQzo6Q1RJOjplbWl0RmFz
dEFyaXRoSW50VG9JbW1PclNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6Q1RJOjplbWl0RmFzdEFy
aXRoSW50VG9JbW1Ob0NoZWNrKToKKyAgICAgICAgKEpTQzo6Q1RJOjpjb21waWxlT3BDYWxsKToK
KyAgICAgICAgKEpTQzo6Q1RJOjplbWl0U2xvd1NjcmlwdENoZWNrKToKKyAgICAgICAgKEpTQzo6
Q1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6Q1RJOjpwcml2YXRl
Q29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0ZUNvbXBpbGUpOgor
ICAgICAgICAoSlNDOjpDVEk6OnByaXZhdGVDb21waWxlR2V0QnlJZFNlbGYpOgorICAgICAgICAo
SlNDOjpDVEk6OnByaXZhdGVDb21waWxlR2V0QnlJZFByb3RvKToKKyAgICAgICAgKEpTQzo6Q1RJ
Ojpwcml2YXRlQ29tcGlsZUdldEJ5SWRDaGFpbik6CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0
ZUNvbXBpbGVQdXRCeUlkUmVwbGFjZSk6CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0ZUFycmF5
TGVuZ3RoVHJhbXBvbGluZSk6CisgICAgICAgIChKU0M6OkNUSTo6cHJpdmF0ZVN0cmluZ0xlbmd0
aFRyYW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpDVEk6OmNvbXBpbGVSZWdFeHApOgorICAgICAg
ICAqIFZNL0NUSS5oOgorICAgICAgICAoSlNDOjpDYWxsUmVjb3JkOjpDYWxsUmVjb3JkKToKKyAg
ICAgICAgKEpTQzo6Sm1wVGFibGU6OkptcFRhYmxlKToKKyAgICAgICAgKEpTQzo6U2xvd0Nhc2VF
bnRyeTo6U2xvd0Nhc2VFbnRyeSk6CisgICAgICAgIChKU0M6OkNUSTo6SlNSSW5mbzo6SlNSSW5m
byk6CisgICAgICAgICogbWFzbS9NYWNyb0Fzc2VtYmxlci5oOiBSZW1vdmVkLgorICAgICAgICAq
IG1hc20vTWFjcm9Bc3NlbWJsZXJXaW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIG1hc20vWDg2
QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6ZW1pdENvbnZlcnRUb0Zh
c3RDYWxsKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjplbWl0UmVzdG9yZUFyZ3VtZW50
UmVmZXJlbmNlKToKKyAgICAgICAgKiB3cmVjL1dSRUMuaDoKKyAgICAgICAgKEpTQzo6V1JFQ0dl
bmVyYXRvcjo6V1JFQ0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OldSRUNQYXJzZXI6OldSRUNQ
YXJzZXIpOgorCiAyMDA4LTA5LTA5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgpJbmRleDogSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAzNjMxMCkKKysrIEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNDksMTQgKzEzNDksNiBAQAogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5cbWFzbVxYODZBc3NlbWJsZXIuaCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXG1hc21cTWFjcm9Bc3Nl
bWJsZXIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXG1hc21cTWFjcm9Bc3NlbWJsZXJXaW4uY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxl
Pg0KIAkJPC9GaWx0ZXI+DQogCQk8RmlsdGVyDQogCQkJTmFtZT0id3JlYyINCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDM2MzEwKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzEx
NCw2IEBACiAJCUE3MjcwMUI2MERBREU5NDkwMEU1NDhENyAvKiBFeGNlcHRpb25IZWxwZXJzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjcwMUI0
MERBREU5NDkwMEU1NDhENyAvKiBFeGNlcHRpb25IZWxwZXJzLmNwcCAqLzsgfTsKIAkJQTcyNzAx
QjkwREFERTk0OTAwRTU0OEQ3IC8qIEV4Y2VwdGlvbkhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjcwMUIzMERBREU5NDkwMEU1NDhENyAv
KiBFeGNlcHRpb25IZWxwZXJzLmggKi87IH07CiAJCUE3MjdGRjZCMERBMzA5MjIwMEU1NDhENyAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjdGRjY2MERBMzA1M0IwMEU1NDhENyAvKiBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmNwcCAqLzsgfTsKLQkJQTc2M0Y3OUQwRTcwRTBGRTAwQkMxNTFFIC8qIE1h
Y3JvQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzYzRjc5QzBFNzBFMEZFMDBCQzE1MUUgLyogTWFjcm9Bc3NlbWJsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0MzMURBQTBEQkVC
QTQzMDBGREY4RUIgLyogU2VnbWVudGVkVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0MzMURBODBEQkVCQTQzMDBGREY4RUIgLyogU2VnbWVu
dGVkVmVjdG9yLmggKi87IH07CiAJCUJDMDJFOTBEMEUxODM5REIwMDBGOTI5NyAvKiBFcnJvckNv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzAyRTkwNTBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5oICovOyB9Owog
CQlCQzAyRTkwRjBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JQcm90b3R5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDJFOTA3MEUxODM5REIwMDBG
OTI5NyAvKiBFcnJvclByb3RvdHlwZS5oICovOyB9OwpAQCAtNjM5LDcgKzYzOCw2IEBACiAJCUE3
MjcwMUI0MERBREU5NDkwMEU1NDhENyAvKiBFeGNlcHRpb25IZWxwZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV4Y2VwdGlvbkhlbHBlcnMuY3BwOyBwYXRoID0g
Vk0vRXhjZXB0aW9uSGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
MjdGRjY1MERBMzA1M0IwMEU1NDhENyAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDsgcGF0
aCA9IFZNL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcyN0ZGNjYwREEzMDUzQjAwRTU0OEQ3IC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5jcHA7IHBhdGggPSBWTS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc2M0Y3OUMwRTcwRTBGRTAwQkMxNTFFIC8qIE1hY3Jv
QXNzZW1ibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY3JvQXNzZW1i
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QzMxREE4MERCRUJBNDMwMEZE
RjhFQiAvKiBTZWdtZW50ZWRWZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU2VnbWVudGVkVmVjdG9yLmg7IHBhdGggPSBWTS9TZWdtZW50ZWRWZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdFNDJDMTgwRTM5Mzg4MzAwNjVBNTQ0IC8qIEpTU3Rh
dGljU2NvcGVPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdGF0
aWNTY29wZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0U0MkMxOTBF
MzkzODgzMDA2NUE1NDQgLyogSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0YXRpY1Njb3BlT2JqZWN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTYsNyArMTMxNCw2IEBACiAJCTg2OTA4MTNGMEU2NDBD
ODkwMDBEMzZFRCAvKiBtYXNtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQlBNzYzRjc5QzBFNzBFMEZFMDBCQzE1MUUgLyogTWFjcm9Bc3NlbWJsZXIuaCAq
LywKIAkJCQk4NjkwODE0MDBFNjQwQzg5MDAwRDM2RUQgLyogWDg2QXNzZW1ibGVyLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IG1hc207CkBAIC0xNTg4LDcgKzE1ODUsNiBAQAogCQkJCTg2OTA4MzE2
MEU2NTE4RDcwMDBEMzZFRCAvKiBXUkVDLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwNDAwNDBF
NkE3NDk0MDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RF
M0FCODBFNkM4MkY1MDAxNDUzQTcgLyogU3RydWN0dXJlSUQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE3NjNGNzlEMEU3MEUwRkUwMEJDMTUxRSAvKiBNYWNyb0Fzc2VtYmxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQ3QjgzQUMwRTZEQjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0
aW1pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDdCODQ2MzBFNkRFNkIxMDA0Nzc1QTQgLyog
UHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9WTS9DVEkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NUSS5jcHAJ
KHJldmlzaW9uIDM2MzEwKQorKysgSmF2YVNjcmlwdENvcmUvVk0vQ1RJLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIGV4dGVybiAiQyIKIAogCiAvLyBnZXQgYXJnIHB1dHMg
YW4gYXJnIGZyb20gdGhlIFNGIHJlZ2lzdGVyIGFycmF5IGludG8gYSBoL3cgcmVnaXN0ZXIKLUFM
V0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRHZXRBcmcodW5zaWduZWQgc3JjLCBNYWNyb0Fzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRCBkc3QpCitBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0R2V0QXJn
KHVuc2lnbmVkIHNyYywgWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklEIGRzdCkKIHsKICAgICAvLyBU
T0RPOiB3ZSB3YW50IHRvIHJldXNlIHZhbHVlcyB0aGF0IGFyZSBhbHJlYWR5IGluIHJlZ2lzdGVy
cyBpZiB3ZSBjYW4gLSBhZGQgYSByZWdpc3RlciBhbGxvY2F0b3IhCiAgICAgaWYgKHNyYyA8IG1f
Y29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVycy5zaXplKCkpIHsKQEAgLTExOCw3ICsxMTgsNyBA
QCBBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0R2V0QXJnKHVuc2lnCiB9CiAKIC8vIGdldCBh
cmcgcHV0cyBhbiBhcmcgZnJvbSB0aGUgU0YgcmVnaXN0ZXIgYXJyYXkgb250byB0aGUgc3RhY2ss
IGFzIGFuIGFyZyB0byBhIGNvbnRleHQgdGhyZWFkZWQgZnVuY3Rpb24uCi1BTFdBWVNfSU5MSU5F
IHZvaWQgQ1RJOjplbWl0R2V0UHV0QXJnKHVuc2lnbmVkIHNyYywgdW5zaWduZWQgb2Zmc2V0LCBN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBzY3JhdGNoKQorQUxXQVlTX0lOTElORSB2b2lkIENU
STo6ZW1pdEdldFB1dEFyZyh1bnNpZ25lZCBzcmMsIHVuc2lnbmVkIG9mZnNldCwgWDg2QXNzZW1i
bGVyOjpSZWdpc3RlcklEIHNjcmF0Y2gpCiB7CiAgICAgaWYgKHNyYyA8IG1fY29kZUJsb2NrLT5j
b25zdGFudFJlZ2lzdGVycy5zaXplKCkpIHsKICAgICAgICAgSlNWYWx1ZSoganMgPSBtX2NvZGVC
bG9jay0+Y29uc3RhbnRSZWdpc3RlcnNbc3JjXS5qc1ZhbHVlKG1fZXhlYyk7CkBAIC0xMzAsNyAr
MTMwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdEdldFB1dEFyZyh1bgogfQogCiAv
LyBwdXRzIGFuIGFyZyBvbnRvIHRoZSBzdGFjaywgYXMgYW4gYXJnIHRvIGEgY29udGV4dCB0aHJl
YWRlZCBmdW5jdGlvbi4KLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRQdXRBcmcoTWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQgc3JjLCB1bnNpZ25lZCBvZmZzZXQpCitBTFdBWVNfSU5MSU5F
IHZvaWQgQ1RJOjplbWl0UHV0QXJnKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBzcmMsIHVuc2ln
bmVkIG9mZnNldCkKIHsKICAgICBtX2ppdC5tb3ZsX3JtKHNyYywgb2Zmc2V0ICsgc2l6ZW9mKHZv
aWQqKSwgWDg2Ojplc3ApOwogfQpAQCAtMTQ5LDI3ICsxNDksMjcgQEAgQUxXQVlTX0lOTElORSBK
U1ZhbHVlKiBDVEk6OmdldENvbnN0YW50SQogICAgIHJldHVybiAwOwogfQogCi1BTFdBWVNfSU5M
SU5FIHZvaWQgQ1RJOjplbWl0UHV0Q1RJUGFyYW0oTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQg
ZnJvbSwgdW5zaWduZWQgbmFtZSkKK0FMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRQdXRDVElQ
YXJhbShYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgZnJvbSwgdW5zaWduZWQgbmFtZSkKIHsKICAg
ICBtX2ppdC5tb3ZsX3JtKGZyb20sIG5hbWUgKiBzaXplb2Yodm9pZCopLCBYODY6OmVzcCk7CiB9
CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRHZXRDVElQYXJhbSh1bnNpZ25lZCBuYW1l
LCBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCB0bykKK0FMV0FZU19JTkxJTkUgdm9pZCBDVEk6
OmVtaXRHZXRDVElQYXJhbSh1bnNpZ25lZCBuYW1lLCBYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQg
dG8pCiB7CiAgICAgbV9qaXQubW92bF9tcihuYW1lICogc2l6ZW9mKHZvaWQqKSwgWDg2Ojplc3As
IHRvKTsKIH0KIAotQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdFB1dFRvQ2FsbEZyYW1lSGVh
ZGVyKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZy
YW1lSGVhZGVyRW50cnkgZW50cnkpCitBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0UHV0VG9D
YWxsRnJhbWVIZWFkZXIoWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklEIGZyb20sIFJlZ2lzdGVyRmls
ZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCiB7CiAgICAgbV9qaXQubW92bF9ybShmcm9t
LCAtKChtX2NvZGVCbG9jay0+bnVtTG9jYWxzICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFk
ZXJTaXplKSAtIGVudHJ5KSAqIHNpemVvZihSZWdpc3RlciksIFg4Njo6ZWRpKTsKIH0KIAotQUxX
QVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJG
aWxlOjpDYWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSwgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgdG8pCitBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRl
cihSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5LCBYODZBc3NlbWJsZXI6
OlJlZ2lzdGVySUQgdG8pCiB7CiAgICAgbV9qaXQubW92bF9tcigtKChtX2NvZGVCbG9jay0+bnVt
TG9jYWxzICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplKSAtIGVudHJ5KSAqIHNp
emVvZihSZWdpc3RlciksIFg4Njo6ZWRpLCB0byk7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBD
VEk6OmVtaXRQdXRSZXN1bHQodW5zaWduZWQgZHN0LCBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCBmcm9tKQorQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdFB1dFJlc3VsdCh1bnNpZ25lZCBk
c3QsIFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBmcm9tKQogewogICAgIG1faml0Lm1vdmxfcm0o
ZnJvbSwgZHN0ICogc2l6ZW9mKFJlZ2lzdGVyKSwgWDg2OjplZGkpOwogICAgIC8vIEZJWE1FOiAj
aWZuZGVmIE5ERUJVRywgV3JpdGUgdGhlIGNvcnJlY3QgbV90eXBlIHRvIHRoZSByZWdpc3Rlci4K
QEAgLTIwMSw3ICsyMDEsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0RGVidWdFeGNl
cHRpCiB7CiAgICAgZW1pdEdldENUSVBhcmFtKENUSV9BUkdTX2V4ZWMsIFg4Njo6ZWN4KTsKICAg
ICBtX2ppdC5jbXBsX2kzMm0oMCwgT0JKRUNUX09GRlNFVChFeGVjU3RhdGUsIG1fZXhjZXB0aW9u
KSwgWDg2OjplY3gpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgbm9FeGNlcHRpb24gPSBt
X2ppdC5lbWl0VW5saW5rZWRKZSgpOworICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIG5vRXhjZXB0
aW9uID0gbV9qaXQuZW1pdFVubGlua2VkSmUoKTsKICAgICBtX2ppdC5lbWl0SW50MygpOwogICAg
IG1faml0Lmxpbmsobm9FeGNlcHRpb24sIG1faml0LmxhYmVsKCkpOwogfQpAQCAtMzAyLDEzICsz
MDIsMTMgQEAgQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdENhbGwodW5zaWduZQogI2VuZGlm
CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbShN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcsIHVuc2lnbmVkIG9wY29kZUluZGV4KQorQUxX
QVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tKFg4NkFzc2VtYmxl
cjo6UmVnaXN0ZXJJRCByZWcsIHVuc2lnbmVkIG9wY29kZUluZGV4KQogewogICAgIG1faml0LnRl
c3RsX2kzMnIoSlNJbW1lZGlhdGU6OlRhZ0JpdFR5cGVJbnRlZ2VyLCByZWcpOwogICAgIG1fc2xv
d0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KG1faml0LmVtaXRVbmxpbmtlZEplKCksIG9wY29k
ZUluZGV4KSk7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEltbXMoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnMSwgTWFjcm9Bc3NlbWJsZXI6
OlJlZ2lzdGVySUQgcmVnMiwgdW5zaWduZWQgb3Bjb2RlSW5kZXgpCitBTFdBWVNfSU5MSU5FIHZv
aWQgQ1RJOjplbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1zKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCByZWcxLCBYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnMiwgdW5zaWduZWQgb3Bjb2RlSW5k
ZXgpCiB7CiAgICAgbV9qaXQubW92bF9ycihyZWcxLCBYODY6OmVjeCk7CiAgICAgbV9qaXQuYW5k
bF9ycihyZWcyLCBYODY6OmVjeCk7CkBAIC0zMjEsMzUgKzMyMSwzNSBAQCBBTFdBWVNfSU5MSU5F
IHVuc2lnbmVkIENUSTo6Z2V0RGVUYWdnZWRDCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQ+KGltbSkgJiB+SlNJbW1lZGlhdGU6OlRhZ0JpdFR5cGVJbnRlZ2VyOwogfQogCi1B
TFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0RmFzdEFyaXRoRGVUYWdJbW1lZGlhdGUoTWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnKQorQUxXQVlTX0lOTElORSB2b2lkIENUSTo6ZW1pdEZh
c3RBcml0aERlVGFnSW1tZWRpYXRlKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcpCiB7CiAg
ICAgLy8gb3BfbW9kIHJlbGllcyBvbiB0aGlzIGJlaW5nIGEgc3ViIC0gc2V0dGluZyB6ZiBpZiBy
ZXN1bHQgaXMgMC4KICAgICBtX2ppdC5zdWJsX2k4cihKU0ltbWVkaWF0ZTo6VGFnQml0VHlwZUlu
dGVnZXIsIHJlZyk7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0QXJpdGhS
ZVRhZ0ltbWVkaWF0ZShNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcpCitBTFdBWVNfSU5M
SU5FIHZvaWQgQ1RJOjplbWl0RmFzdEFyaXRoUmVUYWdJbW1lZGlhdGUoWDg2QXNzZW1ibGVyOjpS
ZWdpc3RlcklEIHJlZykKIHsKICAgICBtX2ppdC5hZGRsX2k4cihKU0ltbWVkaWF0ZTo6VGFnQml0
VHlwZUludGVnZXIsIHJlZyk7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0
QXJpdGhQb3RlbnRpYWxseVJlVGFnSW1tZWRpYXRlKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IHJlZykKK0FMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0QXJpdGhQb3RlbnRpYWxseVJl
VGFnSW1tZWRpYXRlKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcpCiB7CiAgICAgbV9qaXQu
b3JsX3JyKEpTSW1tZWRpYXRlOjpUYWdCaXRUeXBlSW50ZWdlciwgcmVnKTsKIH0KIAotQUxXQVlT
X0lOTElORSB2b2lkIENUSTo6ZW1pdEZhc3RBcml0aEltbVRvSW50KE1hY3JvQXNzZW1ibGVyOjpS
ZWdpc3RlcklEIHJlZykKK0FMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0QXJpdGhJbW1U
b0ludChYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnKQogewogICAgIG1faml0LnNhcmxfaThy
KDEsIHJlZyk7CiB9CiAKLUFMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0QXJpdGhJbnRU
b0ltbU9yU2xvd0Nhc2UoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmVnLCB1bnNpZ25lZCBv
cGNvZGVJbmRleCkKK0FMV0FZU19JTkxJTkUgdm9pZCBDVEk6OmVtaXRGYXN0QXJpdGhJbnRUb0lt
bU9yU2xvd0Nhc2UoWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklEIHJlZywgdW5zaWduZWQgb3Bjb2Rl
SW5kZXgpCiB7CiAgICAgbV9qaXQuYWRkbF9ycihyZWcsIHJlZyk7CiAgICAgbV9zbG93Q2FzZXMu
YXBwZW5kKFNsb3dDYXNlRW50cnkobV9qaXQuZW1pdFVubGlua2VkSm8oKSwgb3Bjb2RlSW5kZXgp
KTsKICAgICBlbWl0RmFzdEFyaXRoUmVUYWdJbW1lZGlhdGUocmVnKTsKIH0KIAotQUxXQVlTX0lO
TElORSB2b2lkIENUSTo6ZW1pdEZhc3RBcml0aEludFRvSW1tTm9DaGVjayhNYWNyb0Fzc2VtYmxl
cjo6UmVnaXN0ZXJJRCByZWcpCitBTFdBWVNfSU5MSU5FIHZvaWQgQ1RJOjplbWl0RmFzdEFyaXRo
SW50VG9JbW1Ob0NoZWNrKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWcpCiB7CiAgICAgbV9q
aXQuYWRkbF9ycihyZWcsIHJlZyk7CiAgICAgZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKHJl
Zyk7CkBAIC0zOTYsNyArMzk2LDcgQEAgdm9pZCBDVEk6OmNvbXBpbGVPcENhbGwoSW5zdHJ1Y3Rp
b24qIGlucwogICAgICAgICAgICAgZW1pdEdldFB1dEFyZyh0aGlzVmFsLCA0LCBYODY6OmVjeCk7
CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyB3YXNFdmFsOworICAgIFg4NkFz
c2VtYmxlcjo6Sm1wU3JjIHdhc0V2YWw7CiAgICAgaWYgKHR5cGUgPT0gT3BDYWxsRXZhbCkgewog
ICAgICAgICBlbWl0R2V0UHV0QXJnKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDAsIFg4
Njo6ZWN4KTsKICAgICAgICAgZW1pdENhbGwoaSwgTWFjaGluZTo6Y3RpX29wX2NhbGxfZXZhbCk7
CkBAIC00MTcsMTYgKzQxNywxNiBAQCB2b2lkIENUSTo6Y29tcGlsZU9wQ2FsbChJbnN0cnVjdGlv
biogaW5zCiAKICAgICAvLyBGYXN0IGNoZWNrIGZvciBKUyBmdW5jdGlvbi4KICAgICBtX2ppdC50
ZXN0bF9pMzJyKEpTSW1tZWRpYXRlOjpUYWdNYXNrLCBYODY6OmVjeCk7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXI6OkptcFNyYyBpc05vdE9iamVjdCA9IG1faml0LmVtaXRVbmxpbmtlZEpuZSgpOworICAg
IFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGlzTm90T2JqZWN0ID0gbV9qaXQuZW1pdFVubGlua2VkSm5l
KCk7CiAgICAgbV9qaXQuY21wbF9pMzJtKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KG1fbWFj
aGluZS0+bV9qc0Z1bmN0aW9uVnB0ciksIFg4Njo6ZWN4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
Sm1wU3JjIGlzSlNGdW5jdGlvbiA9IG1faml0LmVtaXRVbmxpbmtlZEplKCk7CisgICAgWDg2QXNz
ZW1ibGVyOjpKbXBTcmMgaXNKU0Z1bmN0aW9uID0gbV9qaXQuZW1pdFVubGlua2VkSmUoKTsKICAg
ICBtX2ppdC5saW5rKGlzTm90T2JqZWN0LCBtX2ppdC5sYWJlbCgpKTsKIAogICAgIC8vIFRoaXMg
aGFuZGxlcyBob3N0IGZ1bmN0aW9ucwogICAgIGVtaXRDYWxsKGksICgodHlwZSA9PSBPcENvbnN0
cnVjdCkgPyBNYWNoaW5lOjpjdGlfb3BfY29uc3RydWN0X05vdEpTQ29uc3RydWN0IDogTWFjaGlu
ZTo6Y3RpX29wX2NhbGxfTm90SlNGdW5jdGlvbikpOwogICAgIGVtaXRHZXRDVElQYXJhbShDVElf
QVJHU19yLCBYODY6OmVkaSk7IC8vIGVkaSA6PSByCiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6
OkptcFNyYyB3YXNOb3RKU0Z1bmN0aW9uID0gbV9qaXQuZW1pdFVubGlua2VkSm1wKCk7CisgICAg
WDg2QXNzZW1ibGVyOjpKbXBTcmMgd2FzTm90SlNGdW5jdGlvbiA9IG1faml0LmVtaXRVbmxpbmtl
ZEptcCgpOwogICAgIG1faml0LmxpbmsoaXNKU0Z1bmN0aW9uLCBtX2ppdC5sYWJlbCgpKTsKIAog
ICAgIC8vIFRoaXMgaGFuZGxlcyBKU0Z1bmN0aW9ucwpAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQg
Q1RJOjpjb21waWxlT3BDYWxsKEluc3RydWN0aW9uKiBpbnMKICAgICBtX2ppdC5jYWxsX3IoWDg2
OjplYXgpOwogICAgIGVtaXRHZXRDVElQYXJhbShDVElfQVJHU19yLCBYODY6OmVkaSk7IC8vIGVk
aSA6PSByCiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wRHN0IGVuZCA9IG1faml0LmxhYmVsKCk7
CisgICAgWDg2QXNzZW1ibGVyOjpKbXBEc3QgZW5kID0gbV9qaXQubGFiZWwoKTsKICAgICBtX2pp
dC5saW5rKHdhc05vdEpTRnVuY3Rpb24sIGVuZCk7CiAgICAgaWYgKHR5cGUgPT0gT3BDYWxsRXZh
bCkKICAgICAgICAgbV9qaXQubGluayh3YXNFdmFsLCBlbmQpOwpAQCAtNDQ1LDcgKzQ0NSw3IEBA
IHZvaWQgQ1RJOjpjb21waWxlT3BDYWxsKEluc3RydWN0aW9uKiBpbnMKIHZvaWQgQ1RJOjplbWl0
U2xvd1NjcmlwdENoZWNrKHVuc2lnbmVkIG9wY29kZUluZGV4KQogewogICAgIG1faml0LnN1Ymxf
aThyKDEsIFg4Njo6ZXNpKTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIHNraXBUaW1lb3V0
ID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CisgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgc2tp
cFRpbWVvdXQgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKICAgICBlbWl0Q2FsbChvcGNvZGVJ
bmRleCwgTWFjaGluZTo6Y3RpX3RpbWVvdXRfY2hlY2spOwogCiAgICAgZW1pdEdldENUSVBhcmFt
KENUSV9BUkdTX2V4ZWMsIFg4Njo6ZWN4KTsKQEAgLTc1NCw3ICs3NTQsNyBAQCB2b2lkIENUSTo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0R2V0QXJnKGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWF4KTsKIAogICAgICAgICAgICAgbV9qaXQuY21w
bF9pMzJyKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjp6ZXJvSW1tZWRp
YXRlKCkpLCBYODY6OmVheCk7Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGlz
WmVybyA9IG1faml0LmVtaXRVbmxpbmtlZEplKCk7CisgICAgICAgICAgICBYODZBc3NlbWJsZXI6
OkptcFNyYyBpc1plcm8gPSBtX2ppdC5lbWl0VW5saW5rZWRKZSgpOwogICAgICAgICAgICAgbV9q
aXQudGVzdGxfaTMycihKU0ltbWVkaWF0ZTo6VGFnQml0VHlwZUludGVnZXIsIFg4Njo6ZWF4KTsK
ICAgICAgICAgICAgIG1fam1wVGFibGUuYXBwZW5kKEptcFRhYmxlKG1faml0LmVtaXRVbmxpbmtl
ZEpuZSgpLCBpICsgMiArIHRhcmdldCkpOwogCkBAIC04MzgsNyArODM4LDcgQEAgdm9pZCBDVEk6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgbV9qaXQuY21wbF9pMzJyKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjp6ZXJvSW1tZWRpYXRlKCkpLCBY
ODY6OmVheCk7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShtX2ppdC5l
bWl0VW5saW5rZWRKZSgpLCBpICsgMiArIHRhcmdldCkpOwogICAgICAgICAgICAgbV9qaXQudGVz
dGxfaTMycihKU0ltbWVkaWF0ZTo6VGFnQml0VHlwZUludGVnZXIsIFg4Njo6ZWF4KTsKLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgaXNOb25aZXJvID0gbV9qaXQuZW1pdFVubGlu
a2VkSm5lKCk7CisgICAgICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNyYyBpc05vblplcm8gPSBt
X2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKIAogICAgICAgICAgICAgbV9qaXQuY21wbF9pMzJyKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Q+KEpTSW1tZWRpYXRlOjpmYWxzZUltbWVkaWF0ZSgpKSwg
WDg2OjplYXgpOwogICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUobV9qaXQu
ZW1pdFVubGlua2VkSmUoKSwgaSArIDIgKyB0YXJnZXQpKTsKQEAgLTg3Miw5ICs4NzIsOSBAQCB2
b2lkIENUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBpbnQgcmV0QWRk
ckRzdCA9IGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgdGFy
Z2V0ID0gaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIG1faml0Lm1v
dmxfaTMybSgwLCBzaXplb2YoUmVnaXN0ZXIpICogcmV0QWRkckRzdCwgWDg2OjplZGkpOwotICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcERzdCBhZGRyUG9zaXRpb24gPSBtX2ppdC5sYWJl
bCgpOworICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBEc3QgYWRkclBvc2l0aW9uID0gbV9q
aXQubGFiZWwoKTsKICAgICAgICAgICAgIG1fam1wVGFibGUuYXBwZW5kKEptcFRhYmxlKG1faml0
LmVtaXRVbmxpbmtlZEptcCgpLCBpICsgMiArIHRhcmdldCkpOwotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkptcERzdCBzcmV0VGFyZ2V0ID0gbV9qaXQubGFiZWwoKTsKKyAgICAgICAgICAg
IFg4NkFzc2VtYmxlcjo6Sm1wRHN0IHNyZXRUYXJnZXQgPSBtX2ppdC5sYWJlbCgpOwogICAgICAg
ICAgICAgbV9qc3JTaXRlcy5hcHBlbmQoSlNSSW5mbyhhZGRyUG9zaXRpb24sIHNyZXRUYXJnZXQp
KTsKICAgICAgICAgICAgIGkgKz0gMzsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgxLDcgKzk4
MSw3IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVt
aXRHZXRBcmcoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgWDg2OjplYXgpOwogCiAgICAg
ICAgICAgICBtX2ppdC5jbXBsX2kzMnIocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdD4oSlNJbW1l
ZGlhdGU6Onplcm9JbW1lZGlhdGUoKSksIFg4Njo6ZWF4KTsKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKbXBTcmMgaXNaZXJvID0gbV9qaXQuZW1pdFVubGlua2VkSmUoKTsKKyAgICAgICAg
ICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGlzWmVybyA9IG1faml0LmVtaXRVbmxpbmtlZEplKCk7
CiAgICAgICAgICAgICBtX2ppdC50ZXN0bF9pMzJyKEpTSW1tZWRpYXRlOjpUYWdCaXRUeXBlSW50
ZWdlciwgWDg2OjplYXgpOwogICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUo
bV9qaXQuZW1pdFVubGlua2VkSm5lKCksIGkgKyAyICsgdGFyZ2V0KSk7CiAKQEAgLTEwNjMsNyAr
MTA2Myw3IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAg
IHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBlbWl0Q2FsbChpLCBNYWNoaW5lOjpjdGlfb3BfbmV4dF9wbmFtZSk7CiAgICAgICAgICAg
ICBtX2ppdC50ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkptcFNyYyBlbmRPZkl0ZXIgPSBtX2ppdC5lbWl0VW5saW5rZWRKZSgpOworICAg
ICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgZW5kT2ZJdGVyID0gbV9qaXQuZW1pdFVubGlu
a2VkSmUoKTsKICAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoaW5zdHJ1Y3Rpb25baSArIDFdLnUu
b3BlcmFuZCk7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShtX2ppdC5l
bWl0VW5saW5rZWRKbXAoKSwgaSArIDMgKyB0YXJnZXQpKTsKICAgICAgICAgICAgIG1faml0Lmxp
bmsoZW5kT2ZJdGVyLCBtX2ppdC5sYWJlbCgpKTsKQEAgLTEyODMsNyArMTI4Myw3IEBAIHZvaWQg
Q1RJOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBpZiAoc3JjMiA8IG1f
Y29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVycy5zaXplKCkpIHsKICAgICAgICAgICAgICAgICBK
U1ZhbHVlKiB2YWx1ZSA9IG1fY29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVyc1tzcmMyXS5qc1Zh
bHVlKG1fZXhlYyk7CiAgICAgICAgICAgICAgICAgaWYgKEpTSW1tZWRpYXRlOjppc051bWJlcih2
YWx1ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBub3RJ
bW0gPSBpdGVyLT5mcm9tOworICAgICAgICAgICAgICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNy
YyBub3RJbW0gPSBpdGVyLT5mcm9tOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5saW5rKCgr
K2l0ZXIpLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKICAgICAgICAgICAgICAgICAgICAgbV9qaXQu
c3VibF9pMzJyKGdldERlVGFnZ2VkQ29uc3RhbnRJbW1lZGlhdGUodmFsdWUpLCBYODY6OmVheCk7
CiAgICAgICAgICAgICAgICAgICAgIG1faml0Lmxpbmsobm90SW1tLCBtX2ppdC5sYWJlbCgpKTsK
QEAgLTEyOTgsNyArMTI5OCw3IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAKICAgICAgICAgICAgIEFTU0VSVCghKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnN0cnVjdGlv
bltpICsgMl0udS5vcGVyYW5kKSA8IG1fY29kZUJsb2NrLT5jb25zdGFudFJlZ2lzdGVycy5zaXpl
KCkpKTsKIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBub3RJbW0gPSBpdGVy
LT5mcm9tOworICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgbm90SW1tID0gaXRlci0+
ZnJvbTsKICAgICAgICAgICAgIG1faml0LmxpbmsoKCsraXRlciktPmZyb20sIG1faml0LmxhYmVs
KCkpOwogICAgICAgICAgICAgbV9qaXQuc3VibF9ycihYODY6OmVkeCwgWDg2OjplYXgpOwogICAg
ICAgICAgICAgZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKFg4Njo6ZWF4KTsKQEAgLTEzMTEs
NyArMTMxMSw3IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKLSAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgbm90SW1tID0gaXRlci0+ZnJvbTsKKyAg
ICAgICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIG5vdEltbSA9IGl0ZXItPmZyb207CiAgICAg
ICAgICAgICBtX2ppdC5saW5rKCgrK2l0ZXIpLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKICAgICAg
ICAgICAgIG1faml0LmxpbmsoKCsraXRlciktPmZyb20sIG1faml0LmxhYmVsKCkpOwogICAgICAg
ICAgICAgbV9qaXQubGluaygoKytpdGVyKS0+ZnJvbSwgbV9qaXQubGFiZWwoKSk7CkBAIC0xMzI1
LDcgKzEzMjUsNyBAQCB2b2lkIENUSTo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zdWI6IHsKLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgbm90SW1tID0gaXRlci0+ZnJvbTsKKyAgICAgICAg
ICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIG5vdEltbSA9IGl0ZXItPmZyb207CiAgICAgICAgICAg
ICBtX2ppdC5saW5rKCgrK2l0ZXIpLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKICAgICAgICAgICAg
IG1faml0LmFkZGxfcnIoWDg2OjplZHgsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIG1faml0Lmxp
bmsobm90SW1tLCBtX2ppdC5sYWJlbCgpKTsKQEAgLTEzNDcsOCArMTM0Nyw4IEBAIHZvaWQgQ1RJ
Ojpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX2xzaGlmdDogewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkptcFNyYyBub3RJbW0xID0gaXRlci0+ZnJvbTsKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKbXBTcmMgbm90SW1tMiA9ICgrK2l0ZXIpLT5mcm9tOworICAgICAgICAgICAgWDg2QXNzZW1i
bGVyOjpKbXBTcmMgbm90SW1tMSA9IGl0ZXItPmZyb207CisgICAgICAgICAgICBYODZBc3NlbWJs
ZXI6OkptcFNyYyBub3RJbW0yID0gKCsraXRlciktPmZyb207CiAgICAgICAgICAgICBtX2ppdC5s
aW5rKCgrK2l0ZXIpLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKICAgICAgICAgICAgIGVtaXRHZXRB
cmcoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgWDg2OjplYXgpOwogICAgICAgICAgICAg
ZW1pdEdldEFyZyhpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCBYODY6OmVjeCk7CkBAIC0x
Mzg3LDcgKzEzODcsNyBAQCB2b2lkIENUSTo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJlX2luYzogewogICAgICAgICAgICAgdW5zaWduZWQg
c3JjRHN0ID0gaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZDsKLSAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKbXBTcmMgbm90SW1tID0gaXRlci0+ZnJvbTsKKyAgICAgICAgICAgIFg4NkFz
c2VtYmxlcjo6Sm1wU3JjIG5vdEltbSA9IGl0ZXItPmZyb207CiAgICAgICAgICAgICBtX2ppdC5s
aW5rKCgrK2l0ZXIpLT5mcm9tLCBtX2ppdC5sYWJlbCgpKTsKICAgICAgICAgICAgIG1faml0LnN1
YmxfaThyKGdldERlVGFnZ2VkQ29uc3RhbnRJbW1lZGlhdGUoSlNJbW1lZGlhdGU6Om9uZUltbWVk
aWF0ZSgpKSwgWDg2OjplYXgpOwogICAgICAgICAgICAgbV9qaXQubGluayhub3RJbW0sIG1faml0
LmxhYmVsKCkpOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBDVEk6OnByaXZhdGVDb21waWxl
U2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfcHV0X2J5X3ZhbDogewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBub3RJ
bW0gPSBpdGVyLT5mcm9tOworICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgbm90SW1t
ID0gaXRlci0+ZnJvbTsKICAgICAgICAgICAgIG1faml0LmxpbmsoKCsraXRlciktPmZyb20sIG1f
aml0LmxhYmVsKCkpOwogICAgICAgICAgICAgbV9qaXQubGluaygoKytpdGVyKS0+ZnJvbSwgbV9q
aXQubGFiZWwoKSk7CiAgICAgICAgICAgICBtX2ppdC5saW5rKCgrK2l0ZXIpLT5mcm9tLCBtX2pp
dC5sYWJlbCgpKTsKQEAgLTE0MjUsNyArMTQyNSw3IEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcygpCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcmVfZGVjOiB7CiAgICAg
ICAgICAgICB1bnNpZ25lZCBzcmNEc3QgPSBpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kOwot
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBub3RJbW0gPSBpdGVyLT5mcm9tOwor
ICAgICAgICAgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgbm90SW1tID0gaXRlci0+ZnJvbTsKICAg
ICAgICAgICAgIG1faml0LmxpbmsoKCsraXRlciktPmZyb20sIG1faml0LmxhYmVsKCkpOwogICAg
ICAgICAgICAgbV9qaXQuYWRkbF9pOHIoZ2V0RGVUYWdnZWRDb25zdGFudEltbWVkaWF0ZShKU0lt
bWVkaWF0ZTo6b25lSW1tZWRpYXRlKCkpLCBYODY6OmVheCk7CiAgICAgICAgICAgICBtX2ppdC5s
aW5rKG5vdEltbSwgbV9qaXQubGFiZWwoKSk7CkBAIC0xNTYzLDggKzE1NjMsOCBAQCB2b2lkIENU
STo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9tb2Q6IHsKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
bXBTcmMgbm90SW1tMSA9IGl0ZXItPmZyb207Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Sm1wU3JjIG5vdEltbTIgPSAoKytpdGVyKS0+ZnJvbTsKKyAgICAgICAgICAgIFg4NkFzc2VtYmxl
cjo6Sm1wU3JjIG5vdEltbTEgPSBpdGVyLT5mcm9tOworICAgICAgICAgICAgWDg2QXNzZW1ibGVy
OjpKbXBTcmMgbm90SW1tMiA9ICgrK2l0ZXIpLT5mcm9tOwogICAgICAgICAgICAgbV9qaXQubGlu
aygoKytpdGVyKS0+ZnJvbSwgbV9qaXQubGFiZWwoKSk7CiAgICAgICAgICAgICBlbWl0RmFzdEFy
aXRoUmVUYWdJbW1lZGlhdGUoWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdEZhc3RBcml0aFJl
VGFnSW1tZWRpYXRlKFg4Njo6ZWN4KTsKQEAgLTE2MzcsMTMgKzE2MzcsMTMgQEAgdm9pZCBDVEk6
OnByaXZhdGVDb21waWxlKCkKICAgICAvLyBjb3VsZCBiZSBmYXN0ZXIgaWYgd2UgY291bGQgZG8g
c29tZXRoaW5nIGxpa2UgdGhpczoKICAgICAvLyBtX2NvZGVCbG9jay0+Y3RpUmV0dXJuQWRkcmVz
c1ZQQ01hcC5ncm93KG1fY2FsbHMuc2l6ZSgpKTsKICAgICBmb3IgKFZlY3RvcjxDYWxsUmVjb3Jk
Pjo6aXRlcmF0b3IgaXRlciA9IG1fY2FsbHMuYmVnaW4oKTsgaXRlciAhPSBtX2NhbGxzLmVuZCgp
OyArK2l0ZXIpIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgaXRlci0+ZnJv
bSwgaXRlci0+dG8pOworICAgICAgICBYODZBc3NlbWJsZXI6OmxpbmsoY29kZSwgaXRlci0+ZnJv
bSwgaXRlci0+dG8pOwogICAgICAgICBtX2NvZGVCbG9jay0+Y3RpUmV0dXJuQWRkcmVzc1ZQQ01h
cC5hZGQobV9qaXQuZ2V0UmVsb2NhdGVkQWRkcmVzcyhjb2RlLCBpdGVyLT5mcm9tKSwgaXRlci0+
b3Bjb2RlSW5kZXgpOwogICAgIH0KIAogICAgIC8vIExpbmsgYWJzb2x1dGUgYWRkcmVzc2VzIGZv
ciBqc3IKICAgICBmb3IgKFZlY3RvcjxKU1JJbmZvPjo6aXRlcmF0b3IgaXRlciA9IG1fanNyU2l0
ZXMuYmVnaW4oKTsgaXRlciAhPSBtX2pzclNpdGVzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpsaW5rQWJzb2x1dGVBZGRyZXNzKGNvZGUsIGl0ZXItPmFkZHJQb3NpdGlv
biwgaXRlci0+dGFyZ2V0KTsKKyAgICAgICAgWDg2QXNzZW1ibGVyOjpsaW5rQWJzb2x1dGVBZGRy
ZXNzKGNvZGUsIGl0ZXItPmFkZHJQb3NpdGlvbiwgaXRlci0+dGFyZ2V0KTsKIAogICAgIG1fY29k
ZUJsb2NrLT5jdGlDb2RlID0gY29kZTsKIH0KQEAgLTE2NTIsOSArMTY1Miw5IEBAIHZvaWQqIENU
STo6cHJpdmF0ZUNvbXBpbGVHZXRCeUlkU2VsZihTdHIKIHsKICAgICAvLyBDaGVjayBlYXggaXMg
YW4gb2JqZWN0IG9mIHRoZSByaWdodCBTdHJ1Y3R1cmVJRC4KICAgICBtX2ppdC50ZXN0bF9pMzJy
KEpTSW1tZWRpYXRlOjpUYWdNYXNrLCBYODY6OmVheCk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okpt
cFNyYyBmYWlsdXJlQ2FzZXMxID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CisgICAgWDg2QXNz
ZW1ibGVyOjpKbXBTcmMgZmFpbHVyZUNhc2VzMSA9IG1faml0LmVtaXRVbmxpbmtlZEpuZSgpOwog
ICAgIG1faml0LmNtcGxfaTMybShyZWludGVycHJldF9jYXN0PHVpbnQzMl90PihzdHJ1Y3R1cmVJ
RCksIE9CSkVDVF9PRkZTRVQoSlNDZWxsLCBtX3N0cnVjdHVyZUlEKSwgWDg2OjplYXgpOwotICAg
IE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgZmFpbHVyZUNhc2VzMiA9IG1faml0LmVtaXRVbmxpbmtl
ZEpuZSgpOworICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczIgPSBtX2ppdC5l
bWl0VW5saW5rZWRKbmUoKTsKIAogICAgIC8vIENoZWNrcyBvdXQgb2theSEgLSBnZXREaXJlY3RP
ZmZzZXQKICAgICBtX2ppdC5tb3ZsX21yKE9CSkVDVF9PRkZTRVQoSlNPYmplY3QsIG1fcHJvcGVy
dHlTdG9yYWdlKSwgWDg2OjplYXgsIFg4Njo6ZWF4KTsKQEAgLTE2NjQsOCArMTY2NCw4IEBAIHZv
aWQqIENUSTo6cHJpdmF0ZUNvbXBpbGVHZXRCeUlkU2VsZihTdHIKICAgICB2b2lkKiBjb2RlID0g
bV9qaXQuY29weSgpOwogICAgIEFTU0VSVChjb2RlKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjps
aW5rKGNvZGUsIGZhaWx1cmVDYXNlczEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6
OmN0aV9vcF9nZXRfYnlfaWRfZmFpbCkpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUs
IGZhaWx1cmVDYXNlczIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9n
ZXRfYnlfaWRfZmFpbCkpOworICAgIFg4NkFzc2VtYmxlcjo6bGluayhjb2RlLCBmYWlsdXJlQ2Fz
ZXMxLCByZWludGVycHJldF9jYXN0PHZvaWQqPihNYWNoaW5lOjpjdGlfb3BfZ2V0X2J5X2lkX2Zh
aWwpKTsKKyAgICBYODZBc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMiwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CiAgICAg
CiAgICAgbV9jb2RlQmxvY2stPnN0cnVjdHVyZUlEQWNjZXNzU3R1YnMuYXBwZW5kKGNvZGUpOwog
ICAgIApAQCAtMTY4MiwxNCArMTY4MiwxNCBAQCB2b2lkKiBDVEk6OnByaXZhdGVDb21waWxlR2V0
QnlJZFByb3RvKFN0CiAKICAgICAvLyBjaGVjayBlYXggaXMgYW4gb2JqZWN0IG9mIHRoZSByaWdo
dCBTdHJ1Y3R1cmVJRC4KICAgICBtX2ppdC50ZXN0bF9pMzJyKEpTSW1tZWRpYXRlOjpUYWdNYXNr
LCBYODY6OmVheCk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBmYWlsdXJlQ2FzZXMxID0g
bV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CisgICAgWDg2QXNzZW1ibGVyOjpKbXBTcmMgZmFpbHVy
ZUNhc2VzMSA9IG1faml0LmVtaXRVbmxpbmtlZEpuZSgpOwogICAgIG1faml0LmNtcGxfaTMybShy
ZWludGVycHJldF9jYXN0PHVpbnQzMl90PihzdHJ1Y3R1cmVJRCksIE9CSkVDVF9PRkZTRVQoSlND
ZWxsLCBtX3N0cnVjdHVyZUlEKSwgWDg2OjplYXgpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBT
cmMgZmFpbHVyZUNhc2VzMiA9IG1faml0LmVtaXRVbmxpbmtlZEpuZSgpOworICAgIFg4NkFzc2Vt
Ymxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczIgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKIAog
ICAgIC8vIENoZWNrIHRoZSBwcm90b3R5cGUgb2JqZWN0J3MgU3RydWN0dXJlSUQgaGFkIG5vdCBj
aGFuZ2VkLgogICAgIFN0cnVjdHVyZUlEKiogcHJvdG9TdHJ1Y3R1cmVJREFkZHJlc3MgPSAmKHBy
b3RvT2JqZWN0LT5tX3N0cnVjdHVyZUlEKTsKICAgICBtX2ppdC5jbXBsX2kzMm0ocmVpbnRlcnBy
ZXRfY2FzdDx1aW50MzJfdD4ocHJvdG90eXBlU3RydWN0dXJlSUQpLCBzdGF0aWNfY2FzdDx2b2lk
Kj4ocHJvdG9TdHJ1Y3R1cmVJREFkZHJlc3MpKTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3Jj
IGZhaWx1cmVDYXNlczMgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKKyAgICBYODZBc3NlbWJs
ZXI6OkptcFNyYyBmYWlsdXJlQ2FzZXMzID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CiAKICAg
ICAvLyBDaGVja3Mgb3V0IG9rYXkhIC0gZ2V0RGlyZWN0T2Zmc2V0CiAgICAgbV9qaXQubW92bF9t
cihjYWNoZWRPZmZzZXQgKiBzaXplb2YoSlNWYWx1ZSopLCBYODY6OmVkeCwgWDg2OjplYXgpOwpA
QCAtMTY5OSw5ICsxNjk5LDkgQEAgdm9pZCogQ1RJOjpwcml2YXRlQ29tcGlsZUdldEJ5SWRQcm90
byhTdAogICAgIHZvaWQqIGNvZGUgPSBtX2ppdC5jb3B5KCk7CiAgICAgQVNTRVJUKGNvZGUpOwog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMSwgcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7Ci0gICAgTWFj
cm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMiwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7Ci0gICAgTWFjcm9Bc3NlbWJs
ZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oTWFj
aGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CisgICAgWDg2QXNzZW1ibGVyOjpsaW5rKGNv
ZGUsIGZhaWx1cmVDYXNlczEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9v
cF9nZXRfYnlfaWRfZmFpbCkpOworICAgIFg4NkFzc2VtYmxlcjo6bGluayhjb2RlLCBmYWlsdXJl
Q2FzZXMyLCByZWludGVycHJldF9jYXN0PHZvaWQqPihNYWNoaW5lOjpjdGlfb3BfZ2V0X2J5X2lk
X2ZhaWwpKTsKKyAgICBYODZBc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMywgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CiAK
ICAgICBtX2NvZGVCbG9jay0+c3RydWN0dXJlSURBY2Nlc3NTdHVicy5hcHBlbmQoY29kZSk7CiAK
QEAgLTE3MTIsNyArMTcxMiw3IEBAIHZvaWQqIENUSTo6cHJpdmF0ZUNvbXBpbGVHZXRCeUlkQ2hh
aW4oU3QKIHsKICAgICBBU1NFUlQoY291bnQpOwogICAgIAotICAgIFZlY3RvcjxNYWNyb0Fzc2Vt
Ymxlcjo6Sm1wU3JjPiBidWNrZXRzT2ZGYWlsOworICAgIFZlY3RvcjxYODZBc3NlbWJsZXI6Okpt
cFNyYz4gYnVja2V0c09mRmFpbDsKIAogICAgIC8vIENoZWNrIGVheCBpcyBhbiBvYmplY3Qgb2Yg
dGhlIHJpZ2h0IFN0cnVjdHVyZUlELgogICAgIG1faml0LnRlc3RsX2kzMnIoSlNJbW1lZGlhdGU6
OlRhZ01hc2ssIFg4Njo6ZWF4KTsKQEAgLTE3NDUsNyArMTc0NSw3IEBAIHZvaWQqIENUSTo6cHJp
dmF0ZUNvbXBpbGVHZXRCeUlkQ2hhaW4oU3QKICAgICBBU1NFUlQoY29kZSk7CiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVja2V0c09mRmFpbC5zaXplKCk7ICsraSkKLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgYnVja2V0c09mRmFpbFtpXSwgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CisgICAgICAgIFg4
NkFzc2VtYmxlcjo6bGluayhjb2RlLCBidWNrZXRzT2ZGYWlsW2ldLCByZWludGVycHJldF9jYXN0
PHZvaWQqPihNYWNoaW5lOjpjdGlfb3BfZ2V0X2J5X2lkX2ZhaWwpKTsKICAgICBtX2NvZGVCbG9j
ay0+c3RydWN0dXJlSURBY2Nlc3NTdHVicy5hcHBlbmQoY29kZSk7CiAgICAgcmV0dXJuIGNvZGU7
CiB9CkBAIC0xNzU0LDkgKzE3NTQsOSBAQCB2b2lkKiBDVEk6OnByaXZhdGVDb21waWxlUHV0QnlJ
ZFJlcGxhY2UoCiB7CiAgICAgLy8gY2hlY2sgZWF4IGlzIGFuIG9iamVjdCBvZiB0aGUgcmlnaHQg
U3RydWN0dXJlSUQuCiAgICAgbV9qaXQudGVzdGxfaTMycihKU0ltbWVkaWF0ZTo6VGFnTWFzaywg
WDg2OjplYXgpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgZmFpbHVyZUNhc2VzMSA9IG1f
aml0LmVtaXRVbmxpbmtlZEpuZSgpOworICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVD
YXNlczEgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKICAgICBtX2ppdC5jbXBsX2kzMm0ocmVp
bnRlcnByZXRfY2FzdDx1aW50MzJfdD4oc3RydWN0dXJlSUQpLCBPQkpFQ1RfT0ZGU0VUKEpTQ2Vs
bCwgbV9zdHJ1Y3R1cmVJRCksIFg4Njo6ZWF4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3Jj
IGZhaWx1cmVDYXNlczIgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKKyAgICBYODZBc3NlbWJs
ZXI6OkptcFNyYyBmYWlsdXJlQ2FzZXMyID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CiAKICAg
ICAvLyBjaGVja3Mgb3V0IG9rYXkhIC0gcHV0RGlyZWN0T2Zmc2V0CiAgICAgbV9qaXQubW92bF9t
cihPQkpFQ1RfT0ZGU0VUKEpTT2JqZWN0LCBtX3Byb3BlcnR5U3RvcmFnZSksIFg4Njo6ZWF4LCBY
ODY6OmVheCk7CkBAIC0xNzY2LDggKzE3NjYsOCBAQCB2b2lkKiBDVEk6OnByaXZhdGVDb21waWxl
UHV0QnlJZFJlcGxhY2UoCiAgICAgdm9pZCogY29kZSA9IG1faml0LmNvcHkoKTsKICAgICBBU1NF
UlQoY29kZSk7CiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNh
c2VzMSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX3B1dF9ieV9pZF9m
YWlsKSk7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMiwgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oTWFjaGluZTo6Y3RpX29wX3B1dF9ieV9pZF9mYWlsKSk7Cisg
ICAgWDg2QXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZhaWx1cmVDYXNlczEsIHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9wdXRfYnlfaWRfZmFpbCkpOworICAgIFg4NkFzc2Vt
Ymxlcjo6bGluayhjb2RlLCBmYWlsdXJlQ2FzZXMyLCByZWludGVycHJldF9jYXN0PHZvaWQqPihN
YWNoaW5lOjpjdGlfb3BfcHV0X2J5X2lkX2ZhaWwpKTsKIAogICAgIG1fY29kZUJsb2NrLT5zdHJ1
Y3R1cmVJREFjY2Vzc1N0dWJzLmFwcGVuZChjb2RlKTsKICAgICAKQEAgLTE3NzgsMTYgKzE3Nzgs
MTYgQEAgdm9pZCogQ1RJOjpwcml2YXRlQXJyYXlMZW5ndGhUcmFtcG9saW5lKAogewogICAgIC8v
IENoZWNrIGVheCBpcyBhbiBhcnJheQogICAgIG1faml0LnRlc3RsX2kzMnIoSlNJbW1lZGlhdGU6
OlRhZ01hc2ssIFg4Njo6ZWF4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVD
YXNlczEgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKKyAgICBYODZBc3NlbWJsZXI6OkptcFNy
YyBmYWlsdXJlQ2FzZXMxID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CiAgICAgbV9qaXQuY21w
bF9pMzJtKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KG1fbWFjaGluZS0+bV9qc0FycmF5VnB0
ciksIFg4Njo6ZWF4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczIg
PSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKKyAgICBYODZBc3NlbWJsZXI6OkptcFNyYyBmYWls
dXJlQ2FzZXMyID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CiAKICAgICAvLyBDaGVja3Mgb3V0
IG9rYXkhIC0gZ2V0IHRoZSBsZW5ndGggZnJvbSB0aGUgc3RvcmFnZQogICAgIG1faml0Lm1vdmxf
bXIoT0JKRUNUX09GRlNFVChKU0FycmF5LCBtX3N0b3JhZ2UpLCBYODY6OmVheCwgWDg2OjplYXgp
OwogICAgIG1faml0Lm1vdmxfbXIoT0JKRUNUX09GRlNFVChBcnJheVN0b3JhZ2UsIG1fbGVuZ3Ro
KSwgWDg2OjplYXgsIFg4Njo6ZWF4KTsKIAogICAgIG1faml0LmFkZGxfcnIoWDg2OjplYXgsIFg4
Njo6ZWF4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczMgPSBtX2pp
dC5lbWl0VW5saW5rZWRKbygpOworICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNl
czMgPSBtX2ppdC5lbWl0VW5saW5rZWRKbygpOwogICAgIG1faml0LmFkZGxfaThyKDEsIFg4Njo6
ZWF4KTsKICAgICAKICAgICBtX2ppdC5yZXQoKTsKQEAgLTE3OTUsOSArMTc5NSw5IEBAIHZvaWQq
IENUSTo6cHJpdmF0ZUFycmF5TGVuZ3RoVHJhbXBvbGluZSgKICAgICB2b2lkKiBjb2RlID0gbV9q
aXQuY29weSgpOwogICAgIEFTU0VSVChjb2RlKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5r
KGNvZGUsIGZhaWx1cmVDYXNlczEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0
aV9vcF9nZXRfYnlfaWRfZmFpbCkpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZh
aWx1cmVDYXNlczIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9nZXRf
YnlfaWRfZmFpbCkpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZhaWx1cmVDYXNl
czMsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9nZXRfYnlfaWRfZmFp
bCkpOworICAgIFg4NkFzc2VtYmxlcjo6bGluayhjb2RlLCBmYWlsdXJlQ2FzZXMxLCByZWludGVy
cHJldF9jYXN0PHZvaWQqPihNYWNoaW5lOjpjdGlfb3BfZ2V0X2J5X2lkX2ZhaWwpKTsKKyAgICBY
ODZBc3NlbWJsZXI6OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMiwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oTWFjaGluZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CisgICAgWDg2QXNzZW1ibGVy
OjpsaW5rKGNvZGUsIGZhaWx1cmVDYXNlczMsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hp
bmU6OmN0aV9vcF9nZXRfYnlfaWRfZmFpbCkpOwogICAgIAogICAgIHJldHVybiBjb2RlOwogfQpA
QCAtMTgwNiwxNiArMTgwNiwxNiBAQCB2b2lkKiBDVEk6OnByaXZhdGVTdHJpbmdMZW5ndGhUcmFt
cG9saW5lCiB7CiAgICAgLy8gQ2hlY2sgZWF4IGlzIGEgc3RyaW5nCiAgICAgbV9qaXQudGVzdGxf
aTMycihKU0ltbWVkaWF0ZTo6VGFnTWFzaywgWDg2OjplYXgpOwotICAgIE1hY3JvQXNzZW1ibGVy
OjpKbXBTcmMgZmFpbHVyZUNhc2VzMSA9IG1faml0LmVtaXRVbmxpbmtlZEpuZSgpOworICAgIFg4
NkFzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczEgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUo
KTsKICAgICBtX2ppdC5jbXBsX2kzMm0ocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4obV9tYWNo
aW5lLT5tX2pzU3RyaW5nVnB0ciksIFg4Njo6ZWF4KTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1w
U3JjIGZhaWx1cmVDYXNlczIgPSBtX2ppdC5lbWl0VW5saW5rZWRKbmUoKTsKKyAgICBYODZBc3Nl
bWJsZXI6OkptcFNyYyBmYWlsdXJlQ2FzZXMyID0gbV9qaXQuZW1pdFVubGlua2VkSm5lKCk7CiAK
ICAgICAvLyBDaGVja3Mgb3V0IG9rYXkhIC0gZ2V0IHRoZSBsZW5ndGggZnJvbSB0aGUgVXN0cmlu
Zy4KICAgICBtX2ppdC5tb3ZsX21yKE9CSkVDVF9PRkZTRVQoSlNTdHJpbmcsIG1fdmFsdWUpICsg
T0JKRUNUX09GRlNFVChVU3RyaW5nLCBtX3JlcCksIFg4Njo6ZWF4LCBYODY6OmVheCk7CiAgICAg
bV9qaXQubW92bF9tcihPQkpFQ1RfT0ZGU0VUKFVTdHJpbmc6OlJlcCwgbGVuKSwgWDg2OjplYXgs
IFg4Njo6ZWF4KTsKIAogICAgIG1faml0LmFkZGxfcnIoWDg2OjplYXgsIFg4Njo6ZWF4KTsKLSAg
ICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczMgPSBtX2ppdC5lbWl0VW5saW5r
ZWRKbygpOworICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZhaWx1cmVDYXNlczMgPSBtX2ppdC5l
bWl0VW5saW5rZWRKbygpOwogICAgIG1faml0LmFkZGxfaThyKDEsIFg4Njo6ZWF4KTsKICAgICAK
ICAgICBtX2ppdC5yZXQoKTsKQEAgLTE4MjMsOSArMTgyMyw5IEBAIHZvaWQqIENUSTo6cHJpdmF0
ZVN0cmluZ0xlbmd0aFRyYW1wb2xpbmUKICAgICB2b2lkKiBjb2RlID0gbV9qaXQuY29weSgpOwog
ICAgIEFTU0VSVChjb2RlKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZhaWx1
cmVDYXNlczEsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9nZXRfYnlf
aWRfZmFpbCkpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZhaWx1cmVDYXNlczIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9nZXRfYnlfaWRfZmFpbCkp
OwotICAgIE1hY3JvQXNzZW1ibGVyOjpsaW5rKGNvZGUsIGZhaWx1cmVDYXNlczMsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9nZXRfYnlfaWRfZmFpbCkpOworICAgIFg4
NkFzc2VtYmxlcjo6bGluayhjb2RlLCBmYWlsdXJlQ2FzZXMxLCByZWludGVycHJldF9jYXN0PHZv
aWQqPihNYWNoaW5lOjpjdGlfb3BfZ2V0X2J5X2lkX2ZhaWwpKTsKKyAgICBYODZBc3NlbWJsZXI6
OmxpbmsoY29kZSwgZmFpbHVyZUNhc2VzMiwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oTWFjaGlu
ZTo6Y3RpX29wX2dldF9ieV9pZF9mYWlsKSk7CisgICAgWDg2QXNzZW1ibGVyOjpsaW5rKGNvZGUs
IGZhaWx1cmVDYXNlczMsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KE1hY2hpbmU6OmN0aV9vcF9n
ZXRfYnlfaWRfZmFpbCkpOwogCiAgICAgcmV0dXJuIGNvZGU7CiB9CkBAIC0xODQwLDcgKzE4NDAs
NyBAQCB2b2lkKiBDVEk6OmNvbXBpbGVSZWdFeHAoRXhlY1N0YXRlKiBleGVjCiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyIGppdChleGVjLT5tYWNoaW5lKCkt
PmppdENvZGVCdWZmZXIoKSk7CisgICAgWDg2QXNzZW1ibGVyIGppdChleGVjLT5tYWNoaW5lKCkt
PmppdENvZGVCdWZmZXIoKSk7CiAgICAgV1JFQ1BhcnNlciBwYXJzZXIocGF0dGVybiwgaWdub3Jl
Q2FzZSwgbXVsdGlsaW5lLCBqaXQpOwogICAgIAogICAgIGppdC5lbWl0Q29udmVydFRvRmFzdENh
bGwoKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL0NUSS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL1ZNL0NUSS5oCShyZXZpc2lvbiAzNjMxMCkKKysrIEphdmFTY3JpcHRDb3JlL1ZN
L0NUSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiT3Bjb2Rl
LmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgi
Ci0jaW5jbHVkZSA8bWFzbS9NYWNyb0Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPG1hc20vWDg2QXNz
ZW1ibGVyLmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZXIuaD4KICNpbmNsdWRlIDx3dGYv
QWx3YXlzSW5saW5lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTE0LDcgKzExNCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGV4dGVybiBPcGNvZGVJRCB3aGF0OwogCiAgICAgc3Ry
dWN0IENhbGxSZWNvcmQgewotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGZyb207Cisg
ICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZyb207CiAgICAgICAgIHZvaWQqIHRvOwogICAg
ICAgICB1bnNpZ25lZCBvcGNvZGVJbmRleDsKIApAQCAtMTIyLDM1ICsxMjIsMzUgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIENhbGxSZWNvcmQoTWFj
cm9Bc3NlbWJsZXI6OkptcFNyYyBmLCBDVElIZWxwZXJfaiB0LCB1bnNpZ25lZCBpKQorICAgICAg
ICBDYWxsUmVjb3JkKFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGYsIENUSUhlbHBlcl9qIHQsIHVuc2ln
bmVkIGkpCiAgICAgICAgICAgICA6IGZyb20oZikKICAgICAgICAgICAgICwgdG8oKHZvaWQqKXQp
CiAgICAgICAgICAgICAsIG9wY29kZUluZGV4KGkpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0g
ICAgICAgIENhbGxSZWNvcmQoTWFjcm9Bc3NlbWJsZXI6OkptcFNyYyBmLCBDVElIZWxwZXJfcCB0
LCB1bnNpZ25lZCBpKQorICAgICAgICBDYWxsUmVjb3JkKFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGYs
IENUSUhlbHBlcl9wIHQsIHVuc2lnbmVkIGkpCiAgICAgICAgICAgICA6IGZyb20oZikKICAgICAg
ICAgICAgICwgdG8oKHZvaWQqKXQpCiAgICAgICAgICAgICAsIG9wY29kZUluZGV4KGkpCiAgICAg
ICAgIHsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgQ2FsbFJlY29yZChNYWNyb0Fzc2Vt
Ymxlcjo6Sm1wU3JjIGYsIENUSUhlbHBlcl92IHQsIHVuc2lnbmVkIGkpCisgICAgICAgIENhbGxS
ZWNvcmQoWDg2QXNzZW1ibGVyOjpKbXBTcmMgZiwgQ1RJSGVscGVyX3YgdCwgdW5zaWduZWQgaSkK
ICAgICAgICAgICAgIDogZnJvbShmKQogICAgICAgICAgICAgLCB0bygodm9pZCopdCkKICAgICAg
ICAgICAgICwgb3Bjb2RlSW5kZXgoaSkKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBDYWxsUmVjb3JkKE1hY3JvQXNzZW1ibGVyOjpKbXBTcmMgZiwgQ1RJSGVscGVyX3Mg
dCwgdW5zaWduZWQgaSkKKyAgICAgICAgQ2FsbFJlY29yZChYODZBc3NlbWJsZXI6OkptcFNyYyBm
LCBDVElIZWxwZXJfcyB0LCB1bnNpZ25lZCBpKQogICAgICAgICAgICAgOiBmcm9tKGYpCiAgICAg
ICAgICAgICAsIHRvKCh2b2lkKil0KQogICAgICAgICAgICAgLCBvcGNvZGVJbmRleChpKQogICAg
ICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIENhbGxSZWNvcmQoTWFjcm9Bc3Nl
bWJsZXI6OkptcFNyYyBmLCBDVElIZWxwZXJfYiB0LCB1bnNpZ25lZCBpKQorICAgICAgICBDYWxs
UmVjb3JkKFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGYsIENUSUhlbHBlcl9iIHQsIHVuc2lnbmVkIGkp
CiAgICAgICAgICAgICA6IGZyb20oZikKICAgICAgICAgICAgICwgdG8oKHZvaWQqKXQpCiAgICAg
ICAgICAgICAsIG9wY29kZUluZGV4KGkpCkBAIC0xNTksMTAgKzE1OSwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICB9OwogCiAgICAgc3RydWN0IEptcFRhYmxlIHsKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkptcFNyYyBmcm9tOworICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNyYyBmcm9tOwog
ICAgICAgICB1bnNpZ25lZCB0bzsKICAgICAgICAgCi0gICAgICAgIEptcFRhYmxlKE1hY3JvQXNz
ZW1ibGVyOjpKbXBTcmMgZiwgdW5zaWduZWQgdCkKKyAgICAgICAgSm1wVGFibGUoWDg2QXNzZW1i
bGVyOjpKbXBTcmMgZiwgdW5zaWduZWQgdCkKICAgICAgICAgICAgIDogZnJvbShmKQogICAgICAg
ICAgICAgLCB0byh0KQogICAgICAgICB7CkBAIC0xNzAsMTEgKzE3MCwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICB9OwogCiAgICAgc3RydWN0IFNsb3dDYXNlRW50cnkgewotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Sm1wU3JjIGZyb207CisgICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wU3JjIGZy
b207CiAgICAgICAgIHVuc2lnbmVkIHRvOwogICAgICAgICB1bnNpZ25lZCBoaW50OwogICAgICAg
ICAKLSAgICAgICAgU2xvd0Nhc2VFbnRyeShNYWNyb0Fzc2VtYmxlcjo6Sm1wU3JjIGYsIHVuc2ln
bmVkIHQsIHVuc2lnbmVkIGggPSAwKQorICAgICAgICBTbG93Q2FzZUVudHJ5KFg4NkFzc2VtYmxl
cjo6Sm1wU3JjIGYsIHVuc2lnbmVkIHQsIHVuc2lnbmVkIGggPSAwKQogICAgICAgICAgICAgOiBm
cm9tKGYpCiAgICAgICAgICAgICAsIHRvKHQpCiAgICAgICAgICAgICAsIGhpbnQoaCkKQEAgLTI5
NywzMCArMjk3LDMwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIENvbXBpbGVPcENh
bGxUeXBlIHsgT3BDYWxsTm9ybWFsLCBPcENhbGxFdmFsLCBPcENvbnN0cnVjdCB9OwogICAgICAg
ICB2b2lkIGNvbXBpbGVPcENhbGwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBp
LCBDb21waWxlT3BDYWxsVHlwZSB0eXBlID0gT3BDYWxsTm9ybWFsKTsKIAotICAgICAgICB2b2lk
IGVtaXRHZXRBcmcodW5zaWduZWQgc3JjLCBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBkc3Qp
OwotICAgICAgICB2b2lkIGVtaXRHZXRQdXRBcmcodW5zaWduZWQgc3JjLCB1bnNpZ25lZCBvZmZz
ZXQsIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHNjcmF0Y2gpOwotICAgICAgICB2b2lkIGVt
aXRQdXRBcmcoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgc3JjLCB1bnNpZ25lZCBvZmZzZXQp
OworICAgICAgICB2b2lkIGVtaXRHZXRBcmcodW5zaWduZWQgc3JjLCBYODZBc3NlbWJsZXI6OlJl
Z2lzdGVySUQgZHN0KTsKKyAgICAgICAgdm9pZCBlbWl0R2V0UHV0QXJnKHVuc2lnbmVkIHNyYywg
dW5zaWduZWQgb2Zmc2V0LCBYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgc2NyYXRjaCk7CisgICAg
ICAgIHZvaWQgZW1pdFB1dEFyZyhYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgc3JjLCB1bnNpZ25l
ZCBvZmZzZXQpOwogICAgICAgICB2b2lkIGVtaXRQdXRBcmdDb25zdGFudCh1bnNpZ25lZCB2YWx1
ZSwgdW5zaWduZWQgb2Zmc2V0KTsKLSAgICAgICAgdm9pZCBlbWl0UHV0UmVzdWx0KHVuc2lnbmVk
IGRzdCwgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgZnJvbSA9IFg4Njo6ZWF4KTsKKyAgICAg
ICAgdm9pZCBlbWl0UHV0UmVzdWx0KHVuc2lnbmVkIGRzdCwgWDg2QXNzZW1ibGVyOjpSZWdpc3Rl
cklEIGZyb20gPSBYODY6OmVheCk7CiAKLSAgICAgICAgdm9pZCBlbWl0UHV0Q1RJUGFyYW0oTWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgZnJvbSwgdW5zaWduZWQgbmFtZSk7Ci0gICAgICAgIHZv
aWQgZW1pdEdldENUSVBhcmFtKHVuc2lnbmVkIG5hbWUsIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3Rl
cklEIHRvKTsKKyAgICAgICAgdm9pZCBlbWl0UHV0Q1RJUGFyYW0oWDg2QXNzZW1ibGVyOjpSZWdp
c3RlcklEIGZyb20sIHVuc2lnbmVkIG5hbWUpOworICAgICAgICB2b2lkIGVtaXRHZXRDVElQYXJh
bSh1bnNpZ25lZCBuYW1lLCBYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQgdG8pOwogCi0gICAgICAg
IHZvaWQgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOwotICAgICAg
ICB2b2lkIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1l
SGVhZGVyRW50cnkgZW50cnksIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHRvKTsKKyAgICAg
ICAgdm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklE
IGZyb20sIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpOworICAgICAg
ICB2b2lkIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyKFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1l
SGVhZGVyRW50cnkgZW50cnksIFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCB0byk7CiAKICAgICAg
ICAgSlNWYWx1ZSogZ2V0Q29uc3RhbnRJbW1lZGlhdGVOdW1lcmljQXJnKHVuc2lnbmVkIHNyYyk7
CiAgICAgICAgIHVuc2lnbmVkIGdldERlVGFnZ2VkQ29uc3RhbnRJbW1lZGlhdGUoSlNWYWx1ZSog
aW1tKTsKIAotICAgICAgICB2b2lkIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbShNYWNyb0Fzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRCwgdW5zaWduZWQgb3Bjb2RlSW5kZXgpOwotICAgICAgICB2b2lkIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEltbXMoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQsIE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklELCB1bnNpZ25lZCBvcGNvZGVJbmRleCk7CisgICAgICAgIHZv
aWQgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCwgdW5z
aWduZWQgb3Bjb2RlSW5kZXgpOworICAgICAgICB2b2lkIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdElt
bXMoWDg2QXNzZW1ibGVyOjpSZWdpc3RlcklELCBYODZBc3NlbWJsZXI6OlJlZ2lzdGVySUQsIHVu
c2lnbmVkIG9wY29kZUluZGV4KTsKIAotICAgICAgICB2b2lkIGVtaXRGYXN0QXJpdGhEZVRhZ0lt
bWVkaWF0ZShNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCk7Ci0gICAgICAgIHZvaWQgZW1pdEZh
c3RBcml0aFJlVGFnSW1tZWRpYXRlKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEKTsKLSAgICAg
ICAgdm9pZCBlbWl0RmFzdEFyaXRoUG90ZW50aWFsbHlSZVRhZ0ltbWVkaWF0ZShNYWNyb0Fzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRCk7Ci0gICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEltbVRvSW50KE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEKTsKLSAgICAgICAgdm9pZCBlbWl0RmFzdEFyaXRoSW50
VG9JbW1PclNsb3dDYXNlKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklELCB1bnNpZ25lZCBvcGNv
ZGVJbmRleCk7Ci0gICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aEludFRvSW1tTm9DaGVjayhNYWNy
b0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCk7CisgICAgICAgIHZvaWQgZW1pdEZhc3RBcml0aERlVGFn
SW1tZWRpYXRlKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCk7CisgICAgICAgIHZvaWQgZW1pdEZh
c3RBcml0aFJlVGFnSW1tZWRpYXRlKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCk7CisgICAgICAg
IHZvaWQgZW1pdEZhc3RBcml0aFBvdGVudGlhbGx5UmVUYWdJbW1lZGlhdGUoWDg2QXNzZW1ibGVy
OjpSZWdpc3RlcklEKTsKKyAgICAgICAgdm9pZCBlbWl0RmFzdEFyaXRoSW1tVG9JbnQoWDg2QXNz
ZW1ibGVyOjpSZWdpc3RlcklEKTsKKyAgICAgICAgdm9pZCBlbWl0RmFzdEFyaXRoSW50VG9JbW1P
clNsb3dDYXNlKFg4NkFzc2VtYmxlcjo6UmVnaXN0ZXJJRCwgdW5zaWduZWQgb3Bjb2RlSW5kZXgp
OworICAgICAgICB2b2lkIGVtaXRGYXN0QXJpdGhJbnRUb0ltbU5vQ2hlY2soWDg2QXNzZW1ibGVy
OjpSZWdpc3RlcklEKTsKIAogICAgICAgICB2b2lkIGVtaXREZWJ1Z0V4Y2VwdGlvbkNoZWNrKCk7
CiAKQEAgLTMzNSwyMCArMzM1LDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHBy
aW50T3Bjb2RlT3BlcmFuZFR5cGVzKHVuc2lnbmVkIHNyYzEsIHVuc2lnbmVkIHNyYzIpOwogI2Vu
ZGlmCiAKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXIgbV9qaXQ7CisgICAgICAgIFg4NkFzc2VtYmxl
ciBtX2ppdDsKICAgICAgICAgTWFjaGluZSogbV9tYWNoaW5lOwogICAgICAgICBFeGVjU3RhdGUq
IG1fZXhlYzsKICAgICAgICAgQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKIAogICAgICAgICBWZWN0
b3I8Q2FsbFJlY29yZD4gbV9jYWxsczsKLSAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpK
bXBEc3Q+IG1fbGFiZWxzOworICAgICAgICBWZWN0b3I8WDg2QXNzZW1ibGVyOjpKbXBEc3Q+IG1f
bGFiZWxzOwogICAgICAgICBWZWN0b3I8Sm1wVGFibGU+IG1fam1wVGFibGU7CiAKICAgICAgICAg
c3RydWN0IEpTUkluZm8gewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkptcERzdCBhZGRy
UG9zaXRpb247Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Sm1wRHN0IHRhcmdldDsKKyAg
ICAgICAgICAgIFg4NkFzc2VtYmxlcjo6Sm1wRHN0IGFkZHJQb3NpdGlvbjsKKyAgICAgICAgICAg
IFg4NkFzc2VtYmxlcjo6Sm1wRHN0IHRhcmdldDsKIAotICAgICAgICAgICAgSlNSSW5mbyhjb25z
dCBNYWNyb0Fzc2VtYmxlcjo6Sm1wRHN0JiBzdG9yZUxvY2F0aW9uLCBjb25zdCBNYWNyb0Fzc2Vt
Ymxlcjo6Sm1wRHN0JiB0YXJnZXRMb2NhdGlvbikKKyAgICAgICAgICAgIEpTUkluZm8oY29uc3Qg
WDg2QXNzZW1ibGVyOjpKbXBEc3QmIHN0b3JlTG9jYXRpb24sIGNvbnN0IFg4NkFzc2VtYmxlcjo6
Sm1wRHN0JiB0YXJnZXRMb2NhdGlvbikKICAgICAgICAgICAgICAgICA6IGFkZHJQb3NpdGlvbihz
dG9yZUxvY2F0aW9uKQogICAgICAgICAgICAgICAgICwgdGFyZ2V0KHRhcmdldExvY2F0aW9uKQog
ICAgICAgICAgICAgewpJbmRleDogSmF2YVNjcmlwdENvcmUvbWFzbS9NYWNyb0Fzc2VtYmxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL21hc20vTWFjcm9Bc3NlbWJsZXIuaAkocmV2
aXNpb24gMzYzMTApCisrKyBKYXZhU2NyaXB0Q29yZS9tYXNtL01hY3JvQXNzZW1ibGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0KLSNpZm5kZWYgTUFDUk9BU01fSAotI2RlZmluZSBNQUNST0FT
TV9ICi0KLSNpZiBFTkFCTEUoTUFTTSkgJiYgUExBVEZPUk0oWDg2KQotCi0jaW5jbHVkZSAiWDg2
QXNzZW1ibGVyLmgiCi0KLSNpZiBDT01QSUxFUihHQ0MpCi0jZGVmaW5lIFdSRUNfQ0FMTCBfX2F0
dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQotI2Vsc2UKLSNkZWZpbmUgV1JFQ19DQUxMCi0jZW5k
aWYKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSAgICBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1Ymxp
YyBYODZBc3NlbWJsZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXIoSklU
Q29kZUJ1ZmZlciogYnVmZmVyKQotICAgICAgICAgICAgOiBYODZBc3NlbWJsZXIoYnVmZmVyKQot
ICAgICAgICB7Ci0gICAgICAgIH0KLQotI2lmIENPTVBJTEVSKE1TVkMpCi0gICAgICAgIHZvaWQg
ZW1pdENvbnZlcnRUb0Zhc3RDYWxsKCk7Ci0gICAgICAgIHZvaWQgZW1pdFJlc3RvcmVBcmd1bWVu
dFJlZmVyZW5jZSgpOwotI2Vsc2UKLSAgICAgICAgdm9pZCBlbWl0Q29udmVydFRvRmFzdENhbGwo
KSB7fTsKLSAgICAgICAgdm9pZCBlbWl0UmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCkge307Ci0j
ZW5kaWYKLSAgICAgICAgCi0gICAgfTsKLX0KLQotI2VuZGlmCi0KLSNlbmRpZgpJbmRleDogSmF2
YVNjcmlwdENvcmUvbWFzbS9NYWNyb0Fzc2VtYmxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvbWFzbS9NYWNyb0Fzc2VtYmxlcldpbi5jcHAJKHJldmlzaW9uIDM2MzEwKQor
KysgSmF2YVNjcmlwdENvcmUvbWFzbS9NYWNyb0Fzc2VtYmxlcldpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgotCi0jaWYgRU5BQkxFKE1BU00pICYmIFBMQVRGT1JNKFg4NikKLQotbmFtZXNwYWNlIEpT
QyB7Ci0KLXZvaWQgTWFjcm9Bc3NlbWJsZXI6OmVtaXRDb252ZXJ0VG9GYXN0Q2FsbCgpCi17Ci0g
ICAgbW92bF9tcig0LCBYODY6OmVzcCwgWDg2OjplYXgpOwotICAgIG1vdmxfbXIoOCwgWDg2Ojpl
c3AsIFg4Njo6ZWR4KTsKLSAgICBtb3ZsX21yKDEyLCBYODY6OmVzcCwgWDg2OjplY3gpOwotfQot
Ci12b2lkIE1hY3JvQXNzZW1ibGVyOjplbWl0UmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCkKLXsK
LSAgICBtb3ZsX3JtKFg4Njo6ZXNwLCAwLCBYODY6OmVzcCk7Ci19Ci0KLX0KLQotI2VuZGlmCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9tYXNtL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL21hc20vWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDM2MzEwKQorKysgSmF2
YVNjcmlwdENvcmUvbWFzbS9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzc4LDYg
Kzc3OCwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+Y29weSgpOwogICAg
IH0KIAorI2lmIENPTVBJTEVSKE1TVkMpCisgICAgdm9pZCBlbWl0Q29udmVydFRvRmFzdENhbGwo
KQorICAgIHsKKyAgICAgICAgbW92bF9tcig0LCBYODY6OmVzcCwgWDg2OjplYXgpOworICAgICAg
ICBtb3ZsX21yKDgsIFg4Njo6ZXNwLCBYODY6OmVkeCk7CisgICAgICAgIG1vdmxfbXIoMTIsIFg4
Njo6ZXNwLCBYODY6OmVjeCk7CisgICAgfQorCisgICAgdm9pZCBlbWl0UmVzdG9yZUFyZ3VtZW50
UmVmZXJlbmNlKCkKKyAgICB7CisgICAgICAgIG1vdmxfcm0oWDg2Ojplc3AsIDAsIFg4Njo6ZXNw
KTsKKyAgICB9CisjZWxzZQorICAgIHZvaWQgZW1pdENvbnZlcnRUb0Zhc3RDYWxsKCkge307Cisg
ICAgdm9pZCBlbWl0UmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCkge307CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICB2b2lkIGVtaXRNb2RSbV9ycihSZWdpc3RlcklEIHJlZywgUmVnaXN0ZXJJRCBy
bSkKICAgICB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93cmVjL1dSRUMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS93cmVjL1dSRUMuaAkocmV2aXNpb24gMzYzMTApCisrKyBKYXZhU2Ny
aXB0Q29yZS93cmVjL1dSRUMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDE2IEBACiAj
aWYgRU5BQkxFKFdSRUMpCiAKICNpbmNsdWRlICJ1c3RyaW5nLmgiCi0jaW5jbHVkZSA8bWFzbS9N
YWNyb0Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPG1hc20vWDg2QXNzZW1ibGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiBDT01Q
SUxFUihHQ0MpCisjZGVmaW5lIFdSRUNfQ0FMTCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMykp
KQorI2Vsc2UKKyNkZWZpbmUgV1JFQ19DQUxMCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICB0eXBlZGVmIGludCAoKldSRUNGdW5jdGlvbikoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCkgV1JFQ19DQUxMOwpAQCAt
NzIsMTggKzc4LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgV1JFQ1BhcnNlcjsK
IAotICAgIHR5cGVkZWYgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpKbXBTcmM+IEptcFNyY1ZlY3Rv
cjsKKyAgICB0eXBlZGVmIFZlY3RvcjxYODZBc3NlbWJsZXI6OkptcFNyYz4gSm1wU3JjVmVjdG9y
OwogCiAgICAgY2xhc3MgV1JFQ0dlbmVyYXRvciB7CiAgICAgcHVibGljOgotICAgICAgICBXUkVD
R2VuZXJhdG9yKFdSRUNQYXJzZXImIHBhcnNlciwgTWFjcm9Bc3NlbWJsZXImIGppdCkKKyAgICAg
ICAgV1JFQ0dlbmVyYXRvcihXUkVDUGFyc2VyJiBwYXJzZXIsIFg4NkFzc2VtYmxlciYgaml0KQog
ICAgICAgICAgICAgOiBtX3BhcnNlcihwYXJzZXIpCiAgICAgICAgICAgICAsIG1faml0KGppdCkK
ICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlcjo6
Sm1wU3JjIEptcFNyYzsKLSAgICAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlcjo6Sm1wRHN0IEpt
cERzdDsKKyAgICAgICAgdHlwZWRlZiBYODZBc3NlbWJsZXI6OkptcFNyYyBKbXBTcmM7CisgICAg
ICAgIHR5cGVkZWYgWDg2QXNzZW1ibGVyOjpKbXBEc3QgSm1wRHN0OwogCiAgICAgICAgIC8vIHRo
ZXNlIHJlZ3Mgc2V0dXAgYnkgdGhlIHBhcmFtcwogICAgICAgICBzdGF0aWMgY29uc3QgWDg2QXNz
ZW1ibGVyOjpSZWdpc3RlcklEIGlucHV0UmVnaXN0ZXIgPSBYODY6OmVheDsKQEAgLTEyMiw3ICsx
MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdSRUNQYXJz
ZXImIG1fcGFyc2VyOwotICAgICAgICBNYWNyb0Fzc2VtYmxlciYgbV9qaXQ7CisgICAgICAgIFg4
NkFzc2VtYmxlciYgbV9qaXQ7CiAgICAgfTsKIAogICAgIGNsYXNzIFdSRUNQYXJzZXIgewpAQCAt
MTQxLDcgKzE0Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgVGVtcEVycm9yX3Vu
c3VwcG9ydGVkUGFyZW50aGVzZXMsCiAgICAgICAgIH0gbV9lcnI7CiAKLSAgICAgICAgV1JFQ1Bh
cnNlcihjb25zdCBVU3RyaW5nJiBwYXR0ZXJuLCBib29sIGlnbm9yZUNhc2UsIGJvb2wgbXVsdGls
aW5lLCBNYWNyb0Fzc2VtYmxlciYgaml0KQorICAgICAgICBXUkVDUGFyc2VyKGNvbnN0IFVTdHJp
bmcmIHBhdHRlcm4sIGJvb2wgaWdub3JlQ2FzZSwgYm9vbCBtdWx0aWxpbmUsIFg4NkFzc2VtYmxl
ciYgaml0KQogICAgICAgICAgICAgOiBtX2lnbm9yZUNhc2UoaWdub3JlQ2FzZSkKICAgICAgICAg
ICAgICwgbV9tdWx0aWxpbmUobXVsdGlsaW5lKQogICAgICAgICAgICAgLCBtX251bVN1YnBhdHRl
cm5zKDApCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMzYzMTApCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA4LTA5LTA5ICBDYW1lcm9uIFp3YXJpY2ggIDxjd3p3
YXJpY2hAdXdhdGVybG9vLmNhPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyMDc1OTogUmVtb3ZlIE1hY3JvQXNzZW1ibGVyCisgICAgICAgIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NTk+CisKKyAgICAgICAg
TWFrZSB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgdG8gRm9yd2FyZGluZ0hlYWRlcnMgdG8gcmVtb3Zl
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMv
bWFzbS9JQTMyTWFjcm9Bc20uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVy
cy9tYXNtL01hY3JvQXNzZW1ibGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hl
YWRlcnMvbWFzbS9YODZBc3NlbWJsZXIuaDogQWRkZWQuCisKIDIwMDgtMDktMDkgIEFscCBUb2tl
ciAgPGFscEBudWFudGkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCklu
ZGV4OiBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL21hc20vSUEzMk1hY3JvQXNtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9tYXNtL0lBMzJNYWNyb0FzbS5oCShy
ZXZpc2lvbiAzNjMxMCkKKysrIFdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvbWFzbS9JQTMyTWFj
cm9Bc20uaAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSUEzMk1hY3JvQXNtLmg+CkluZGV4OiBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL21h
c20vTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL21hc20vTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMzYzMTApCisrKyBXZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL21hc20vTWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSArMCwwIEBACi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXIuaD4NCklu
ZGV4OiBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL21hc20vWDg2QXNzZW1ibGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9tYXNtL1g4NkFzc2VtYmxlci5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9tYXNtL1g4NkFzc2VtYmxl
ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
WDg2QXNzZW1ibGVyLmg+Cg==
</data>
<flag name="review"
          id="10386"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>