<?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>127807</bug_id>
          
          <creation_ts>2014-01-28 15:19:14 -0800</creation_ts>
          <short_desc>Heap::writeBarrier shouldn&apos;t be static</short_desc>
          <delta_ts>2014-02-06 16:37:34 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>128324</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973145</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 15:19:14 -0800</bug_when>
    <thetext>Currently it looks up the Heap in which to fire the write barrier by using the cell passed to it. Pretty much every call site already has a reference to the VM or the Heap itself. It seems wasteful to look it up all over again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973148</commentid>
    <comment_count>1</comment_count>
      <attachid>222507</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 15:25:46 -0800</bug_when>
    <thetext>Created attachment 222507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973151</commentid>
    <comment_count>2</comment_count>
      <attachid>222508</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-28 15:27:31 -0800</bug_when>
    <thetext>Created attachment 222508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973303</commentid>
    <comment_count>3</comment_count>
      <attachid>222508</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-28 22:03:39 -0800</bug_when>
    <thetext>Comment on attachment 222508
Patch

r=me if you fix the build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977225</commentid>
    <comment_count>4</comment_count>
      <attachid>223302</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-05 21:06:04 -0800</bug_when>
    <thetext>Created attachment 223302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977226</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-05 21:06:18 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=223302) [details]
&gt; Patch

EWS fodder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977236</commentid>
    <comment_count>6</comment_count>
      <attachid>223306</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-05 21:56:10 -0800</bug_when>
    <thetext>Created attachment 223306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977401</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 09:54:31 -0800</bug_when>
    <thetext>Committed r163542: &lt;http://trac.webkit.org/changeset/163542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977481</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 12:15:42 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 128324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977555</commentid>
    <comment_count>9</comment_count>
      <attachid>223388</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 15:15:00 -0800</bug_when>
    <thetext>Created attachment 223388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977557</commentid>
    <comment_count>10</comment_count>
      <attachid>223390</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 15:16:15 -0800</bug_when>
    <thetext>Created attachment 223390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977564</commentid>
    <comment_count>11</comment_count>
      <attachid>223390</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-06 15:24:58 -0800</bug_when>
    <thetext>Comment on attachment 223390
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977614</commentid>
    <comment_count>12</comment_count>
      <attachid>223390</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 16:37:31 -0800</bug_when>
    <thetext>Comment on attachment 223390
Patch

Clearing flags on attachment: 223390

Committed r163576: &lt;http://trac.webkit.org/changeset/163576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977615</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 16:37:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222507</attachid>
            <date>2014-01-28 15:25:46 -0800</date>
            <delta_ts>2014-01-28 15:27:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140128152545.patch</filename>
            <type>text/plain</type>
            <size>21524</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRl
QmFycmllci5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxUPjo6c2V0KToKKyAgICAgICAgKEpT
Qzo6V3JpdGVCYXJyaWVyQmFzZTxUPjo6c2V0TWF5QmVOdWxsKToKKyAgICAgICAgKEpTQzo6V3Jp
dGVCYXJyaWVyQmFzZTxUPjo6c2V0RWFybHlWYWx1ZSk6CisgICAgICAgIChKU0M6OldyaXRlQmFy
cmllckJhc2U8VW5rbm93bj46OnNldCk6CisKIDIwMTQtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8
Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBKYXZhc2NyaXB0Q29yZSBj
cmFzaCBkdXJpbmcgT1MgSW5zdGFsbGF0aW9uIChkdWUgdG8KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMTIw
OSw2ICsxMjA5LDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XZWFrUmFuZG9tLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXJJbmxpbmVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJv
ZmlsZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAgXApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjI5NTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgyLDYgKzEzODIsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrTWFwUHJvdG90eXBlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtSYW5kb20uaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVyLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFdyaXRlQmFycmllcklubGluZXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsaW5nLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx0b29sc1xQcm9maWxlVHJlZU5vZGUuaCIgLz4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2
Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMjQyNiw2ICsy
NDI2LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVy
LmgiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFdyaXRlQmFycmllcklubGluZXMuaCI+
CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxlLmgiPgogICAgICAgPEZpbHRl
cj50b29sczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC05MDMsNyArOTAzLDYgQEAKIAkJQTUwM0ZBMTkxODhFMEZCMDAwMTEwRjE0IC8qIEphdmFTY3Jp
cHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTUwM0ZBMTMxODhFMEZBRjAwMTEwRjE0IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
ICovOyB9OwogCQlBNTAzRkExQTE4OEUwRkIwMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZB
MTQxODhFMEZBRjAwMTEwRjE0IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuaCAqLzsgfTsKIAkJQTUw
M0ZBMUIxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkExNTE4OEUwRkIw
MDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLzsgfTsKLQkJQTUwM0ZBMUMx
ODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMTYxODhFMEZCMDAwMTEwRjE0
IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5oICovOyB9OwogCQlBNTAzRkExRDE4OEUwRkIwMDAx
MTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDNGQTE3MTg4RTBGQjAwMDExMEYx
NCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwICovOyB9OwogCQlBNTAzRkEx
RTE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkExODE4OEUw
RkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmggKi87IH07CiAJ
CUE1MDNGQTIxMTg4RUZGNjgwMDExMEYxNCAvKiBTY3JpcHRCcmVha3BvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkExRjE4OEVGRjY4MDAx
MTBGMTQgLyogU2NyaXB0QnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xMjk5LDYgKzEyOTgsNyBAQAogCQlDMjVENzA5QzE2REU5
OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNUQ3MDlBMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFn
ZWRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
IAkJQzI1RjhCQ0QxNTc1NDRBOTAwMjQ1QjcxIC8qIEluY3JlbWVudGFsU3dlZXBlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjVGOEJDQjE1NzU0
NEE5MDAyNDVCNzEgLyogSW5jcmVtZW50YWxTd2VlcGVyLmNwcCAqLzsgfTsKIAkJQzI1RjhCQ0Ux
NTc1NDRBOTAwMjQ1QjcxIC8qIEluY3JlbWVudGFsU3dlZXBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI1RjhCQ0MxNTc1NDRBOTAwMjQ1QjcxIC8q
IEluY3JlbWVudGFsU3dlZXBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUMyNjE4OTY0MTg5ODUzNEMwMDVGRDgwQSAvKiBXcml0ZUJhcnJpZXJJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MjYxODk2MzE4OTg1MzRCMDA1RkQ4MEEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyB9Owog
CQlDMjgzMTkwMDE2RkU0QjdEMDAxNTdCRkQgLyogSGFuZGxlQmxvY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyODMxOEZGMTZGRTRCN0QwMDE1N0JG
RCAvKiBIYW5kbGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUMyODMxOTAyMTZGRTUzM0UwMDE1N0JGRCAvKiBIYW5kbGVCbG9ja0lubGlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyODMx
OTAxMTZGRTUzM0UwMDE1N0JGRCAvKiBIYW5kbGVCbG9ja0lubGluZXMuaCAqLzsgfTsKIAkJQzI5
ODFGRDgxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjk4MUZENjE3QkFF
RTRCMDBBM0JDOTggLyogREZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcCAqLzsgfTsKQEAgLTI3
MDAsNiArMjcwMCw3IEBACiAJCUMyNUQ3MDlBMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01hbmFnZWRWYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjVGOEJDQjE1NzU0NEE5MDAyNDVCNzEg
LyogSW5jcmVtZW50YWxTd2VlcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluY3JlbWVudGFsU3dlZXBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyNUY4QkNDMTU3NTQ0QTkwMDI0NUI3MSAvKiBJbmNyZW1lbnRhbFN3ZWVwZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5jcmVtZW50YWxTd2VlcGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyNjE4OTYzMTg5ODUzNEIwMDVGRDgwQSAvKiBXcml0
ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRl
QmFycmllcklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI4MzE4RkYx
NkZFNEI3RDAwMTU3QkZEIC8qIEhhbmRsZUJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhhbmRsZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMy
ODMxOTAxMTZGRTUzM0UwMDE1N0JGRCAvKiBIYW5kbGVCbG9ja0lubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFuZGxlQmxvY2tJbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMyOTgxRkQ2MTdCQUVFNEIwMEEzQkM5OCAvKiBERkdEZXNpcmVk
V2Vha1JlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV2Vha1Jl
ZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzkyMyw2ICszOTI0
LDcgQEAKIAkJCQlBN0NBM0FFMDE3REE0MUFFMDA2NTM4QUYgLyogV2Vha01hcFByb3RvdHlwZS5o
ICovLAogCQkJCTE0MjBCRTdBMTBBQTZEREIwMEY0NTVEMiAvKiBXZWFrUmFuZG9tLmggKi8sCiAJ
CQkJQTdEQ0I3NzkxMkUzRDkwNTAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oICovLAorCQkJCUMy
NjE4OTYzMTg5ODUzNEIwMDVGRDgwQSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHJ1bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTIx
OSw2ICs1MjIxLDcgQEAKIAkJCQkwRjU1OTg5ODE3Qzg2QzU4MDBBMUU1NDMgLyogVG9OYXRpdmVG
cm9tVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVENTM3MjZGMEUxQzU0ODgwMDIxRTU0OSAv
KiBUcmFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcwNjE3QjZCNUFCMDBBN0FFM0Yg
LyogVHlwZWRBcnJheUFkYXB0b3JzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMjYxODk2NDE4OTg1
MzRDMDA1RkQ4MEEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQjY3MDgxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRBcnJheUlubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NzA5MTdCNkI1QUIwMEE3QUUzRiAvKiBUeXBl
ZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9Db3B5V3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQ29weVdyaXRlQmFycmllci5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDEwICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnZXQoKTsKICAgICB9CiAgICAg
Ci0gICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKKyAgICB2
b2lkIHNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQogICAgIHsKICAg
ICAgICAgdGhpcy0+bV92YWx1ZSA9IHZhbHVlOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIo
b3duZXIpOworICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lcik7CiAgICAgfQogICAg
IAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihUKiB2YWx1ZSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4MSw4ICsxMDgx
LDcgQEAgdm9pZCBIZWFwOjp3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiBmcgogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY29uc3RfY2FzdDxKU0NlbGwqPihmcm9tKSk7CiAgICAg
aWYgKCFmcm9tIHx8ICFpc01hcmtlZChmcm9tKSkKICAgICAgICAgcmV0dXJuOwotICAgIEhlYXAq
IGhlYXAgPSBIZWFwOjpoZWFwKGZyb20pOwotICAgIGhlYXAtPmFkZFRvUmVtZW1iZXJlZFNldChm
cm9tKTsKKyAgICBhZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShmcm9tKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2
aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsOSArMTAyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gTWFya2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpLT5pc1JlbWVtYmVyZWQoY2VsbCk7
CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNXcml0ZUJhcnJpZXJFbmFibGVkKCk7
Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHdyaXRlQmFycmllcihjb25z
dCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2Vs
bCosIEpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgdm9pZCB3cml0ZUJhcnJpZXIoY29uc3QgSlND
ZWxsKiwgSlNDZWxsKik7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgd3JpdGVCYXJy
aWVyKGNvbnN0IEpTQ2VsbCopOworICAgICAgICB2b2lkIHdyaXRlQmFycmllcihjb25zdCBKU0Nl
bGwqLCBKU1ZhbHVlKTsKKyAgICAgICAgdm9pZCB3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiwg
SlNDZWxsKik7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyQnVmZmVyJiB3cml0ZUJhcnJpZXJCdWZm
ZXIoKSB7IHJldHVybiBtX3dyaXRlQmFycmllckJ1ZmZlcjsgfQogICAgICAgICB2b2lkIGZsdXNo
V3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsbCopOwpAQCAtMzk4LDcgKzM5OCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIXRvIHx8IGlzTWFya2Vk
KHRvKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSGVhcDo6aGVhcChmcm9tKS0+YWRk
VG9SZW1lbWJlcmVkU2V0KGZyb20pOworICAgICAgICBhZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7
CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgSGVhcDo6d3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2Vs
bCogZnJvbSwgSlNWYWx1ZSB0bykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcwNyw3ICsxNzA3
LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldyaXRlQmFycgogewogICAgIFZN
KiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGV4ZWMpOwotICAgIGV4ZWMtPmhlYXAoKS0+d3JpdGVCYXJyaWVyKGNlbGwpOworICAgIHZtLT5o
ZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogLy8gTkI6IFdlIGRvbid0IGluY2x1ZGUgdGhl
IHZhbHVlIGFzIHBhcnQgb2YgdGhlIGJhcnJpZXIgYmVjYXVzZSB0aGUgd3JpdGUgYmFycmllciBl
bGlzaW9uCkBAIC0xNzE3LDcgKzE3MTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VW5jb25kaXRpb25hCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgSGVhcDo6d3JpdGVCYXJyaWVyKGNl
bGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDb25zdChFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0
aW9uKiBwYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3JpdGVCYXJyaWVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJp
ZXIuaAkocmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
cml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSArNzcsOSBAQCBwcm90ZWN0ZWQ6
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0KFZNJiwgQ29kZUxvY2F0aW9uRGF0YUxhYmVs
UHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZhbHVlKQorICAgIHZvaWQgc2V0
KFZNJiB2bSwgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVy
LCBKU0NlbGwqIHZhbHVlKQogICAgIHsKLSAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyKG93bmVy
LCB2YWx1ZSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CiAg
ICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAgQVNTRVJUKCgoISFtX2xvY2F0
aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgIT0gSklUV3JpdGVCYXJyaWVy
RmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgPT0gbV9sb2NhdGlvbi5leGVj
dXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoUG9pbnRl
cihtX2xvY2F0aW9uLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
ODgsOSArMTM4OCwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3RvX3Nj
CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKLWV4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9iYXJy
aWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQorZXh0ZXJuICJDIiB2b2lkIGxsaW50
X3dyaXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCkKIHsKLSAg
ICBIZWFwOjp3cml0ZUJhcnJpZXIoY2VsbCk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAg
ICB2bS5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAko
cmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29u
c3RydWN0b3IuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAkocmV2aXNpb24gMTYyOTU3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKKyNp
bmNsdWRlICJXcml0ZUJhcnJpZXJJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAkocmV2aXNpb24gMTYy
OTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwOCw3ICsyMDgsNyBAQCBDaGVja2VkQm9vbGVhbiBNYXBEYXRhOjplbnN1
cmVTcGFjZUZvckFwCiAgICAgICAgIHJlcGxhY2VBbmRQYWNrQmFja2luZ1N0b3JlKG5ld0VudHJp
ZXMsIHJlcXVpcmVkU2l6ZSk7CiAgICAgZWxzZQogICAgICAgICByZXBsYWNlQmFja2luZ1N0b3Jl
KG5ld0VudHJpZXMsIHJlcXVpcmVkU2l6ZSk7Ci0gICAgSGVhcDo6d3JpdGVCYXJyaWVyKHRoaXMp
OworICAgIGNhbGxGcmFtZS0+aGVhcCgpLT53cml0ZUJhcnJpZXIodGhpcyk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5VGFibGUuY3BwCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQs
NyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgSlNDCiAgICAgaXRlcmF0
b3IgZW5kID0gdGhpcy0+ZW5kKCk7CiAgICAgZm9yIChpdGVyYXRvciBpdGVyID0gYmVnaW4oKTsg
aXRlciAhPSBlbmQ7ICsraXRlcikgewogICAgICAgICBpdGVyLT5rZXktPnJlZigpOwotICAgICAg
ICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOwor
ICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5n
ZXQoKSk7CiAgICAgfQogCiAgICAgLy8gQ29weSB0aGUgbV9kZWxldGVkT2Zmc2V0cyB2ZWN0b3Iu
CkBAIC0xMDksNyArMTA5LDcgQEAgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShWTSYgdm0s
IEpTQwogICAgICAgICBBU1NFUlQoY2FuSW5zZXJ0KCkpOwogICAgICAgICByZWluc2VydCgqaXRl
cik7CiAgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmll
cihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQoKSk7CisgICAgICAgIHZtLmhlYXAud3Jp
dGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKICAgICB9CiAKICAg
ICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkpTVHlwZUluZm8uaCIKICNpbmNsdWRlICJXYXRjaHBv
aW50LmgiCiAjaW5jbHVkZSAiV2Vhay5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMu
aCIKICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsNiArNTQ0LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiAmbV92bS0+aGVhcDsKICAgICB9CiAKKyAgICB2
b2lkIHNhbml0aXplU3RhY2tGb3JWTShWTSopOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2Vu
ZGlmIC8vIFZNX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFy
cmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRl
QmFycmllci5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsMTMgKzcxLDcgQEAgdGVt
cGxhdGU8Y2xhc3MgVD4gaW5saW5lIHZvaWQgdmFsaWRhdGVDZQogLy8gV2UgaGF2ZSBhIHNlcGFy
YXRlIGJhc2UgY2xhc3Mgd2l0aCBubyBjb25zdHJ1Y3RvcnMgZm9yIHVzZSBpbiBVbmlvbnMuCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZSB7CiBwdWJsaWM6Ci0g
ICAgdm9pZCBzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVCh2YWx1ZSk7Ci0gICAgICAgIEFTU0VSVCghT3B0aW9uczo6ZW5hYmxl
Q29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOwotICAgICAgICB2YWxp
ZGF0ZUNlbGwodmFsdWUpOwotICAgICAgICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUp
OwotICAgIH0KKyAgICB2b2lkIHNldChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVl
KTsKICAgICAKICAgICAvLyBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgbGlrZSBvcGVyYXRvcj0s
IGJ1dCBpcyBjYWxsZWQgY29weUZyb20gaW5zdGVhZCwgaW4KICAgICAvLyBvcmRlciB0byBraW5k
bHkgaW5mb3JtIHRoZSBDKysgY29tcGlsZXIgdGhhdCBpdHMgYWR2aWNlIGlzIG5vdCBhcHByZWNp
YXRlZC4KQEAgLTg2LDIwICs4MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fY2VsbCA9IG90aGVy
Lm1fY2VsbDsKICAgICB9CiAKLSAgICB2b2lkIHNldE1heUJlTnVsbChWTSYgdm0sIGNvbnN0IEpT
Q2VsbCogb3duZXIsIFQqIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlKQotICAgICAg
ICAgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKLSAgICAgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3du
ZXIsIHZhbHVlKTsKLSAgICB9CisgICAgdm9pZCBzZXRNYXlCZU51bGwoVk0mLCBjb25zdCBKU0Nl
bGwqIG93bmVyLCBUKiB2YWx1ZSk7CiAKICAgICAvLyBTaG91bGQgb25seSBiZSB1c2VkIGJ5IEpT
Q2VsbCBkdXJpbmcgZWFybHkgaW5pdGlhbGlzYXRpb24KICAgICAvLyB3aGVuIHNvbWUgYmFzaWMg
dHlwZXMgYXJlbid0IHlldCBjb21wbGV0ZWx5IGluc3RhbnRpYXRlZAotICAgIHZvaWQgc2V0RWFy
bHlWYWx1ZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgdGhpcy0+bV9jZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih2YWx1ZSk7Ci0gICAg
ICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgdGhpcy0+bV9jZWxsKTsKLSAgICB9CisgICAg
dm9pZCBzZXRFYXJseVZhbHVlKFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpOwog
ICAgIAogICAgIFQqIGdldCgpIGNvbnN0CiAgICAgewpAQCAtMTUxLDEzICsxMzYsNyBAQCBwcml2
YXRlOgogCiB0ZW1wbGF0ZSA8PiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+IHsKIHB1
YmxpYzoKLSAgICB2b2lkIHNldChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTVmFsdWUgdmFs
dWUpCi0gICAgewotICAgICAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQo
KSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICAgICAgbV92YWx1ZSA9IEpTVmFsdWU6
OmVuY29kZSh2YWx1ZSk7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgdmFsdWUp
OwotICAgIH0KLQorICAgIHZvaWQgc2V0KFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNWYWx1
ZSk7CiAgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJyaWVyKEpTVmFsdWUgdmFsdWUpCiAgICAg
ewogICAgICAgICBtX3ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJp
ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV3JpdGVCYXJyaWVySW5saW5lc19oCisjZGVmaW5lIFdyaXRlQmFycmllcklubGlu
ZXNfaAorCisjaW5jbHVkZSAiVk0uaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQgV3JpdGVC
YXJyaWVyQmFzZTxUPjo6c2V0KFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUp
Cit7CisgICAgQVNTRVJUKHZhbHVlKTsKKyAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1
cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKKyAgICB2YWxpZGF0ZUNlbGwo
dmFsdWUpOworICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Cit9CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyQmFzZTxUPjo6c2V0TWF5
QmVOdWxsKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlKQorICAgICAgICB2YWxpZGF0ZUNlbGwodmFsdWUpOworICAgIHNldEVhcmx5VmFsdWUo
dm0sIG93bmVyLCB2YWx1ZSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIHZv
aWQgV3JpdGVCYXJyaWVyQmFzZTxUPjo6c2V0RWFybHlWYWx1ZShWTSYgdm0sIGNvbnN0IEpTQ2Vs
bCogb3duZXIsIFQqIHZhbHVlKQoreworICAgIHRoaXMtPm1fY2VsbCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8SlNDZWxsKj4odmFsdWUpOworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCB0aGlz
LT5tX2NlbGwpOworfQorCitpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+Ojpz
ZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEFT
U0VSVCghT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhy
ZWFkKCkpOworICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOworICAgIHZtLmhl
YXAud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQyAK
KworI2VuZGlmIC8vIFdyaXRlQmFycmllcklubGluZXNfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222508</attachid>
            <date>2014-01-28 15:27:31 -0800</date>
            <delta_ts>2014-02-05 21:06:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140128152730.patch</filename>
            <type>text/plain</type>
            <size>21129</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpXcml0ZUJh
cnJpZXJCYXNlPFQ+OjpzZXQpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlPFQ+Ojpz
ZXRNYXlCZU51bGwpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlPFQ+OjpzZXRFYXJs
eVZhbHVlKToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPjo6c2V0KToK
KwogMjAxNC0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT046IEphdmFzY3JpcHRDb3JlIGNyYXNoIGR1cmluZyBPUyBJbnN0YWxsYXRp
b24gKGR1ZSB0bwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0JKHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA5LDYgKzEyMDksNyBAQCBqYXZhc2NyaXB0
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
UHJvdG90eXBlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtSYW5kb20u
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmggXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9Db2RlUHJvZmlsaW5nLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2oJKHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEzODIsNiArMTM4Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXFdlYWtNYXBQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcV2Vha1JhbmRvbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxXcml0ZUJhcnJpZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
V3JpdGVCYXJyaWVySW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9v
bHNcQ29kZVByb2ZpbGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXENv
ZGVQcm9maWxpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXFByb2Zp
bGVUcmVlTm9kZS5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0
ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDI2LDYgKzI0MjYsOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRp
bWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9v
bHNcQ29kZVByb2ZpbGUuaCI+CiAgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYy
OTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkwMyw3ICs5MDMsNiBAQAogCQlBNTAz
RkExOTE4OEUwRkIwMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkExMzE4OEUwRkFGMDAx
MTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgKi87IH07CiAJCUE1MDNGQTFBMTg4RTBG
QjAwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkExNDE4OEUwRkFGMDAxMTBGMTQgLyogSmF2
YVNjcmlwdENhbGxGcmFtZS5oICovOyB9OwogCQlBNTAzRkExQjE4OEUwRkIwMDAxMTBGMTQgLyog
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1MDNGQTE1MTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFTY3JpcHRD
YWxsRnJhbWUuY3BwICovOyB9OwotCQlBNTAzRkExQzE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTAzRkExNjE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmggKi87IH07CiAJCUE1MDNGQTFEMTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFTY3JpcHRDYWxs
RnJhbWVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTUwM0ZBMTcxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFt
ZVByb3RvdHlwZS5jcHAgKi87IH07CiAJCUE1MDNGQTFFMTg4RTBGQjAwMDExMEYxNCAvKiBKU0ph
dmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDNGQTE4MTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFTY3Jp
cHRDYWxsRnJhbWVQcm90b3R5cGUuaCAqLzsgfTsKIAkJQTUwM0ZBMjExODhFRkY2ODAwMTEwRjE0
IC8qIFNjcmlwdEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MDNGQTFGMTg4RUZGNjgwMDExMEYxNCAvKiBTY3JpcHRCcmVha3BvaW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
OTksNiArMTI5OCw3IEBACiAJCUMyNUQ3MDlDMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI1
RDcwOUExNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlDMjVGOEJDRDE1NzU0NEE5MDAyNDVC
NzEgLyogSW5jcmVtZW50YWxTd2VlcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyNUY4QkNCMTU3NTQ0QTkwMDI0NUI3MSAvKiBJbmNyZW1lbnRh
bFN3ZWVwZXIuY3BwICovOyB9OwogCQlDMjVGOEJDRTE1NzU0NEE5MDAyNDVCNzEgLyogSW5jcmVt
ZW50YWxTd2VlcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjVGOEJDQzE1NzU0NEE5MDAyNDVCNzEgLyogSW5jcmVtZW50YWxTd2VlcGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzI2MTg5NjQx
ODk4NTM0QzAwNUZEODBBIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNjE4OTYzMTg5ODUzNEIwMDVGRDgwQSAv
KiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi87IH07CiAJCUMyODMxOTAwMTZGRTRCN0QwMDE1N0JG
RCAvKiBIYW5kbGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzI4MzE4RkYxNkZFNEI3RDAwMTU3QkZEIC8qIEhhbmRsZUJsb2NrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI4MzE5MDIxNkZF
NTMzRTAwMTU3QkZEIC8qIEhhbmRsZUJsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI4MzE5MDExNkZFNTMzRTAwMTU3QkZEIC8qIEhh
bmRsZUJsb2NrSW5saW5lcy5oICovOyB9OwogCQlDMjk4MUZEODE3QkFFRTRCMDBBM0JDOTggLyog
REZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkQ2MTdCQUVFNEIwMEEzQkM5OCAvKiBERkdEZXNpcmVk
V2Vha1JlZmVyZW5jZXMuY3BwICovOyB9OwpAQCAtMjcwMCw2ICsyNzAwLDcgQEAKIAkJQzI1RDcw
OUExNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWFuYWdlZFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyNUY4QkNCMTU3NTQ0QTkwMDI0NUI3MSAvKiBJbmNyZW1lbnRhbFN3ZWVwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5jcmVtZW50YWxTd2VlcGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI1RjhCQ0MxNTc1NDRBOTAwMjQ1
QjcxIC8qIEluY3JlbWVudGFsU3dlZXBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmNyZW1lbnRhbFN3ZWVwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzI2MTg5NjMxODk4NTM0QjAwNUZEODBBIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMjgzMThGRjE2RkU0QjdEMDAxNTdCRkQgLyogSGFuZGxl
QmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFuZGxlQmxvY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI4MzE5MDExNkZFNTMzRTAwMTU3QkZEIC8q
IEhhbmRsZUJsb2NrSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
YW5kbGVCbG9ja0lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5ODFG
RDYxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMu
Y3BwOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zOTIzLDYgKzM5MjQsNyBAQAogCQkJCUE3Q0EzQUUwMTdEQTQx
QUUwMDY1MzhBRiAvKiBXZWFrTWFwUHJvdG90eXBlLmggKi8sCiAJCQkJMTQyMEJFN0ExMEFBNkRE
QjAwRjQ1NUQyIC8qIFdlYWtSYW5kb20uaCAqLywKIAkJCQlBN0RDQjc3OTEyRTNEOTA1MDA5MTE5
NDAgLyogV3JpdGVCYXJyaWVyLmggKi8sCisJCQkJQzI2MTg5NjMxODk4NTM0QjAwNUZEODBBIC8q
IFdyaXRlQmFycmllcklubGluZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcnVudGltZTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MjE5LDYgKzUyMjEsNyBAQAogCQkJCTBGNTU5
ODk4MTdDODZDNTgwMEExRTU0MyAvKiBUb05hdGl2ZUZyb21WYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUQ1MzcyNkYwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NzA2MTdCNkI1QUIwMEE3QUUzRiAvKiBUeXBlZEFycmF5QWRhcHRvcnMuaCBp
biBIZWFkZXJzICovLAorCQkJCUMyNjE4OTY0MTg5ODUzNEMwMDVGRDgwQSAvKiBXcml0ZUJhcnJp
ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcwODE3QjZCNUFCMDBBN0FFM0Yg
LyogVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEI5NERDMTdC
OUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQjY3MDkxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlzLmggaW4gSGVhZGVycyAqLywK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXcml0ZUJhcnJpZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgJ
KHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXcml0
ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsMTAgKzY4LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGdldCgpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHNldChWTSYsIGNvbnN0
IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQorICAgIHZvaWQgc2V0KFZNJiB2bSwgY29uc3QgSlND
ZWxsKiBvd25lciwgVCogdmFsdWUpCiAgICAgewogICAgICAgICB0aGlzLT5tX3ZhbHVlID0gdmFs
dWU7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lcik7CisgICAgICAgIHZtLmhlYXAu
d3JpdGVCYXJyaWVyKG93bmVyKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBzZXRXaXRob3V0V3Jp
dGVCYXJyaWVyKFQqIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJ
KHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgxLDggKzEwODEsNyBAQCB2b2lkIEhlYXA6OndyaXRlQmFy
cmllcihjb25zdCBKU0NlbGwqIGZyCiAgICAgQVNTRVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChj
b25zdF9jYXN0PEpTQ2VsbCo+KGZyb20pKTsKICAgICBpZiAoIWZyb20gfHwgIWlzTWFya2VkKGZy
b20pKQogICAgICAgICByZXR1cm47Ci0gICAgSGVhcCogaGVhcCA9IEhlYXA6OmhlYXAoZnJvbSk7
Ci0gICAgaGVhcC0+YWRkVG9SZW1lbWJlcmVkU2V0KGZyb20pOworICAgIGFkZFRvUmVtZW1iZXJl
ZFNldChmcm9tKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyb20pOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw5ICsxMDIs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBNYXJrZWRCbG9jazo6Ymxv
Y2tGb3IoY2VsbCktPmlzUmVtZW1iZXJlZChjZWxsKTsKICAgICAgICAgfQogICAgICAgICBzdGF0
aWMgYm9vbCBpc1dyaXRlQmFycmllckVuYWJsZWQoKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCopOwotICAgICAgICBzdGF0
aWMgdm9pZCB3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiwgSlNWYWx1ZSk7Ci0gICAgICAgIHN0
YXRpYyB2b2lkIHdyaXRlQmFycmllcihjb25zdCBKU0NlbGwqLCBKU0NlbGwqKTsKKyAgICAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxsKik7CisgICAg
ICAgIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCosIEpTVmFsdWUpOworICAgICAgICB2
b2lkIHdyaXRlQmFycmllcihjb25zdCBKU0NlbGwqLCBKU0NlbGwqKTsKIAogICAgICAgICBXcml0
ZUJhcnJpZXJCdWZmZXImIHdyaXRlQmFycmllckJ1ZmZlcigpIHsgcmV0dXJuIG1fd3JpdGVCYXJy
aWVyQnVmZmVyOyB9CiAgICAgICAgIHZvaWQgZmx1c2hXcml0ZUJhcnJpZXJCdWZmZXIoSlNDZWxs
Kik7CkBAIC0zOTgsNyArMzk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmICghdG8gfHwgaXNNYXJrZWQodG8pKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBIZWFwOjpoZWFwKGZyb20pLT5hZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7Cisg
ICAgICAgIGFkZFRvUmVtZW1iZXJlZFNldChmcm9tKTsKICAgICB9CiAKICAgICBpbmxpbmUgdm9p
ZCBIZWFwOjp3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiBmcm9tLCBKU1ZhbHVlIHRvKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lv
biAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzA3LDcgKzE3MDcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uT1NSV3JpdGVCYXJyCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgZXhlYy0+aGVhcCgp
LT53cml0ZUJhcnJpZXIoY2VsbCk7CisgICAgdm0tPmhlYXAud3JpdGVCYXJyaWVyKGNlbGwpOwog
fQogCiAvLyBOQjogV2UgZG9uJ3QgaW5jbHVkZSB0aGUgdmFsdWUgYXMgcGFydCBvZiB0aGUgYmFy
cmllciBiZWNhdXNlIHRoZSB3cml0ZSBiYXJyaWVyIGVsaXNpb24KQEAgLTE3MTcsNyArMTcxNyw3
IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25VbmNvbmRpdGlvbmEKIHsKICAgICBWTSog
dm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBl
eGVjKTsKLSAgICBIZWFwOjp3cml0ZUJhcnJpZXIoY2VsbCk7CisgICAgdm0tPmhlYXAud3JpdGVC
YXJyaWVyKGNlbGwpOwogfQogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5pdEdsb2Jh
bENvbnN0KEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCShyZXZpc2lvbiAxNjI5NTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Nyw5ICs3Nyw5IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgdm9p
ZCBzZXQoVk0mLCBDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3du
ZXIsIEpTQ2VsbCogdmFsdWUpCisgICAgdm9pZCBzZXQoVk0mIHZtLCBDb2RlTG9jYXRpb25EYXRh
TGFiZWxQdHIgbG9jYXRpb24sIEpTQ2VsbCogb3duZXIsIEpTQ2VsbCogdmFsdWUpCiAgICAgewot
ICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsKKyAgICAgICAgdm0uaGVh
cC53cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsKICAgICAgICAgbV9sb2NhdGlvbiA9IGxvY2F0
aW9uOwogICAgICAgICBBU1NFUlQoKCghIW1fbG9jYXRpb24pICYmIG1fbG9jYXRpb24uZXhlY3V0
YWJsZUFkZHJlc3MoKSAhPSBKSVRXcml0ZUJhcnJpZXJGbGFnKSB8fCAobG9jYXRpb24uZXhlY3V0
YWJsZUFkZHJlc3MoKSA9PSBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVyKG1fbG9jYXRpb24sIHZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAko
cmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4OCw5ICsxMzg4LDEwIEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fc2MKICAgICBMTElOVF9FTkQoKTsKIH0KIAot
ZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dyaXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0Nl
bGwqIGNlbGwpCitleHRlcm4gIkMiIHZvaWQgbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBjZWxsKQogewotICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxs
KTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNl
bGwpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50
ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldy
aXRlQmFycmllcklubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFr
TWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dl
YWtNYXAuY3BwCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1dlYWtNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMu
aCIKICNpbmNsdWRlICJXZWFrTWFwRGF0YS5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGlu
ZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hcERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hcERhdGEuY3BwCShyZXZpc2lvbiAxNjI5NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3
IEBAIENoZWNrZWRCb29sZWFuIE1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXAKICAgICAgICAgcmVw
bGFjZUFuZFBhY2tCYWNraW5nU3RvcmUobmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKICAgICBl
bHNlCiAgICAgICAgIHJlcGxhY2VCYWNraW5nU3RvcmUobmV3RW50cmllcywgcmVxdWlyZWRTaXpl
KTsKLSAgICBIZWFwOjp3cml0ZUJhcnJpZXIodGhpcyk7CisgICAgY2FsbEZyYW1lLT5oZWFwKCkt
PndyaXRlQmFycmllcih0aGlzKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAJKHJldmlzaW9u
IDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIFByb3BlcnR5VGFibGU6OlByb3Bl
cnR5VGFibGUoVk0mIHZtLCBKU0MKICAgICBpdGVyYXRvciBlbmQgPSB0aGlzLT5lbmQoKTsKICAg
ICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBiZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAg
ICAgICAgIGl0ZXItPmtleS0+cmVmKCk7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25l
ciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQoKSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJy
aWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKICAgICB9CiAKICAgICAvLyBD
b3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KQEAgLTEwOSw3ICsxMDksNyBAQCBQcm9w
ZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgSlNDCiAgICAgICAgIEFTU0VSVChjYW5J
bnNlcnQoKSk7CiAgICAgICAgIHJlaW5zZXJ0KCppdGVyKTsKICAgICAgICAgaXRlci0+a2V5LT5y
ZWYoKTsKLSAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1Zh
bHVlLmdldCgpKTsKKyAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNw
ZWNpZmljVmFsdWUuZ2V0KCkpOwogICAgIH0KIAogICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9m
ZnNldHMgdmVjdG9yLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgJKHJldmlzaW9uIDE2Mjk1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
SlNUeXBlSW5mby5oIgogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrLmgi
CisjaW5jbHVkZSAiV3JpdGVCYXJyaWVySW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21waWxh
dGlvblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ByaW50U3RyZWFtLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
cml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYyOTU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDEzICs3MSw3IEBA
IHRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHZhbGlkYXRlQ2UKIC8vIFdlIGhhdmUgYSBz
ZXBhcmF0ZSBiYXNlIGNsYXNzIHdpdGggbm8gY29uc3RydWN0b3JzIGZvciB1c2UgaW4gVW5pb25z
LgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogcHVibGlj
OgotICAgIHZvaWQgc2V0KFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCi0g
ICAgewotICAgICAgICBBU1NFUlQodmFsdWUpOwotICAgICAgICBBU1NFUlQoIU9wdGlvbnM6OmVu
YWJsZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICAgICAg
dmFsaWRhdGVDZWxsKHZhbHVlKTsKLSAgICAgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZh
bHVlKTsKLSAgICB9CisgICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2
YWx1ZSk7CiAgICAgCiAgICAgLy8gVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGxpa2Ugb3BlcmF0
b3I9LCBidXQgaXMgY2FsbGVkIGNvcHlGcm9tIGluc3RlYWQsIGluCiAgICAgLy8gb3JkZXIgdG8g
a2luZGx5IGluZm9ybSB0aGUgQysrIGNvbXBpbGVyIHRoYXQgaXRzIGFkdmljZSBpcyBub3QgYXBw
cmVjaWF0ZWQuCkBAIC04NiwyMCArODAsMTEgQEAgcHVibGljOgogICAgICAgICBtX2NlbGwgPSBv
dGhlci5tX2NlbGw7CiAgICAgfQogCi0gICAgdm9pZCBzZXRNYXlCZU51bGwoVk0mIHZtLCBjb25z
dCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSkKLSAg
ICAgICAgICAgIHZhbGlkYXRlQ2VsbCh2YWx1ZSk7Ci0gICAgICAgIHNldEVhcmx5VmFsdWUodm0s
IG93bmVyLCB2YWx1ZSk7Ci0gICAgfQorICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3Qg
SlNDZWxsKiBvd25lciwgVCogdmFsdWUpOwogCiAgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBi
eSBKU0NlbGwgZHVyaW5nIGVhcmx5IGluaXRpYWxpc2F0aW9uCiAgICAgLy8gd2hlbiBzb21lIGJh
c2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29tcGxldGVseSBpbnN0YW50aWF0ZWQKLSAgICB2b2lkIHNl
dEVhcmx5VmFsdWUoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMtPm1fY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOwot
ICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHRoaXMtPm1fY2VsbCk7Ci0gICAgfQor
ICAgIHZvaWQgc2V0RWFybHlWYWx1ZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVl
KTsKICAgICAKICAgICBUKiBnZXQoKSBjb25zdAogICAgIHsKQEAgLTE1MSwxMyArMTM2LDcgQEAg
cHJpdmF0ZToKIAogdGVtcGxhdGUgPD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiB7
CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVl
IHZhbHVlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50
SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7Ci0gICAgICAgIG1fdmFsdWUgPSBKU1Zh
bHVlOjplbmNvZGUodmFsdWUpOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHZh
bHVlKTsKLSAgICB9Ci0KKyAgICB2b2lkIHNldChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpT
VmFsdWUpOwogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihKU1ZhbHVlIHZhbHVlKQog
ICAgIHsKICAgICAgICAgbV92YWx1ZSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5l
cy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdyaXRlQmFycmllcklubGluZXNfaAorI2RlZmluZSBXcml0ZUJhcnJpZXJJ
bmxpbmVzX2gKKworI2luY2x1ZGUgIlZNLmgiCisjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFdy
aXRlQmFycmllckJhc2U8VD46OnNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZh
bHVlKQoreworICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgQVNTRVJUKCFPcHRpb25zOjplbmFibGVD
b25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAgdmFsaWRhdGVD
ZWxsKHZhbHVlKTsKKyAgICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VD46OnNl
dE1heUJlTnVsbChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQoreworICAg
IGlmICh2YWx1ZSkKKyAgICAgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKKyAgICBzZXRFYXJseVZh
bHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGlu
ZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VD46OnNldEVhcmx5VmFsdWUoVk0mIHZtLCBjb25zdCBK
U0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKK3sKKyAgICB0aGlzLT5tX2NlbGwgPSByZWludGVycHJl
dF9jYXN0PEpTQ2VsbCo+KHZhbHVlKTsKKyAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lciwg
dGhpcy0+bV9jZWxsKTsKK30KKworaW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3du
Pjo6c2V0KFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAg
ICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlv
blRocmVhZCgpKTsKKyAgICBtX3ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKKyAgICB2
bS5oZWFwLndyaXRlQmFycmllcihvd25lciwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBK
U0MgCisKKyNlbmRpZiAvLyBXcml0ZUJhcnJpZXJJbmxpbmVzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223302</attachid>
            <date>2014-02-05 21:06:04 -0800</date>
            <delta_ts>2014-02-05 21:56:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140205210603.patch</filename>
            <type>text/plain</type>
            <size>19372</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDE0LTAyLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisKIDIwMTQtMDItMDUg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBIYW5k
bGluZyBvZiBvcGFxdWUgcm9vdHMgaXMgd3JvbmcgaW4gRWRlbkNvbGxlY3Rpb25zCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTYzNTA2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEyMjEsNiArMTIyMSw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1JhbmRvbS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvQ29kZVByb2ZpbGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Q29kZVByb2ZpbGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxp
bmcuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2
aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM4OCw2ICsx
Mzg4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha01hcFByb3Rv
dHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXZWFrUmFuZG9t
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFdyaXRlQmFycmllci5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXJJbmxp
bmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGluZy5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcUHJvZmlsZVRyZWVOb2RlLmgiIC8+
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29w
eSkKQEAgLTI0MzgsNiArMjQzOCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXFdyaXRlQmFycmllci5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJh
cnJpZXJJbmxpbmVzLmgiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9D
bEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xDb2RlUHJvZmlsZS5o
Ij4KICAgICAgIDxGaWx0ZXI+dG9vbHM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTMzMyw2ICsxMzMzLDcgQEAKIAkJQzI5ODFGREQxN0JBRkY0NDAw
QTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZH
RGVzaXJlZFdyaXRlQmFycmllcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDMjlFQ0IwMzE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJ
bnNpZGVCbG9ja0dldHRlclRlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMjlFQ0IwMTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNp
ZGVCbG9ja0dldHRlclRlc3QubW0gKi87IH07CiAJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAv
KiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxl
T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQzJCNkQ3NTMxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjZENzUyMThBMzM3
OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzJCOTE2QzIxNERBMDE0RTAwQ0JBQzg2IC8q
IE1hcmtlZEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzJCOTE2QzExNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjkxNkM1
MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCOTE2QzQxNERBMDQwQzAwQ0JBQzg2IC8q
IE1hcmtlZEFsbG9jYXRvci5jcHAgKi87IH07CiAJCUMyQzBGN0NEMTdCQkZDNUIwMDQ2NEZFNCAv
KiBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDMEY3Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRU
cmFuc2l0aW9ucy5jcHAgKi87IH07CkBAIC0yNzY1LDYgKzI3NjYsNyBAQAogCQlDMjlFQ0IwMTE4
MDREMEVEMDBEMkNCQjQgLyogQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5tbTsgcGF0aCA9IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2Nr
R2V0dGVyVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDIxODA0
RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJU
ZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4
IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRlQmFycmllcklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJCOTE2QzExNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtl
ZEFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJrZWRBbGxv
Y2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJCOTE2QzQxNERBMDQwQzAw
Q0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXJrZWRBbGxvY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMkMwRjdDQjE3QkJGQzVCMDA0NjRGRTQgLyogREZHRGVzaXJlZFRyYW5zaXRpb25zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Rlc2lyZWRUcmFuc2l0
aW9ucy5jcHA7IHBhdGggPSBkZmcvREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM2MjQsNiArMzYyNiw3IEBACiAJCTdFRjZFMEJCMEVCN0Ex
RUMwMDc5QUZBRiAvKiBydW50aW1lICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlDMkI2RDc1MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5s
aW5lcy5oICovLAogCQkJCUJDRjYwNTExMEUyMDNFRjgwMEI5QTY0RCAvKiBBcmdMaXN0LmNwcCAq
LywKIAkJCQlCQ0Y2MDUxMjBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5oICovLAogCQkJCUJD
MjU3REU1MEUxRjUxQzUwMDE2QjZDOSAvKiBBcmd1bWVudHMuY3BwICovLApAQCAtNDY0MSw2ICs0
NjQ0LDcgQEAKIAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyQTY4Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRl
QmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE0RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8q
IFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzJCNkQ3NTMxOEEzMzc5
MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUZF
NTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yU3Ry
aW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5MiAvKiBD
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVdyaXRlQmFycmllci5oCShyZXZpc2lvbiAxNjM1MDYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY4LDEwICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnZXQo
KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBU
KiB2YWx1ZSkKKyAgICB2b2lkIHNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZh
bHVlKQogICAgIHsKICAgICAgICAgdGhpcy0+bV92YWx1ZSA9IHZhbHVlOwotICAgICAgICBIZWFw
Ojp3cml0ZUJhcnJpZXIob3duZXIpOworICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25l
cik7CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihUKiB2YWx1
ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjM1MDYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA4Nyw4ICsxMDg3LDcgQEAgdm9pZCBIZWFwOjp3cml0ZUJhcnJpZXIoY29uc3QgSlNDZWxs
KiBmcgogICAgIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY29uc3RfY2FzdDxKU0NlbGwq
Pihmcm9tKSk7CiAgICAgaWYgKCFmcm9tIHx8ICFpc01hcmtlZChmcm9tKSkKICAgICAgICAgcmV0
dXJuOwotICAgIEhlYXAqIGhlYXAgPSBIZWFwOjpoZWFwKGZyb20pOwotICAgIGhlYXAtPmFkZFRv
UmVtZW1iZXJlZFNldChmcm9tKTsKKyAgICBhZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShmcm9tKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAkocmV2aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsOSArMTAyLDkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICByZXR1cm4gTWFya2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpLT5pc1Jl
bWVtYmVyZWQoY2VsbCk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNXcml0ZUJh
cnJpZXJFbmFibGVkKCk7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHdy
aXRlQmFycmllcihjb25zdCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVCYXJy
aWVyKGNvbnN0IEpTQ2VsbCosIEpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgdm9pZCB3cml0ZUJh
cnJpZXIoY29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCopOworICAgICAgICB2b2lkIHdyaXRlQmFy
cmllcihjb25zdCBKU0NlbGwqLCBKU1ZhbHVlKTsKKyAgICAgICAgdm9pZCB3cml0ZUJhcnJpZXIo
Y29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyQnVmZmVyJiB3
cml0ZUJhcnJpZXJCdWZmZXIoKSB7IHJldHVybiBtX3dyaXRlQmFycmllckJ1ZmZlcjsgfQogICAg
ICAgICB2b2lkIGZsdXNoV3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsbCopOwpAQCAtNDAwLDcgKzQw
MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
IXRvIHx8IGlzTWFya2VkKHRvKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSGVhcDo6
aGVhcChmcm9tKS0+YWRkVG9SZW1lbWJlcmVkU2V0KGZyb20pOworICAgICAgICBhZGRUb1JlbWVt
YmVyZWRTZXQoZnJvbSk7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgSGVhcDo6d3JpdGVCYXJy
aWVyKGNvbnN0IEpTQ2VsbCogZnJvbSwgSlNWYWx1ZSB0bykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYzNTA2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTc1MCw3ICsxNzUwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldyaXRl
QmFycgogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIGV4ZWMtPmhlYXAoKS0+d3JpdGVCYXJyaWVyKGNl
bGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogLy8gTkI6IFdlIGRv
bid0IGluY2x1ZGUgdGhlIHZhbHVlIGFzIHBhcnQgb2YgdGhlIGJhcnJpZXIgYmVjYXVzZSB0aGUg
d3JpdGUgYmFycmllciBlbGlzaW9uCkBAIC0xNzYwLDcgKzE3NjAsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVW5jb25kaXRpb25hCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgSGVhcDo6
d3JpdGVCYXJyaWVyKGNlbGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0K
IAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDb25zdChFeGVjU3RhdGUq
IGV4ZWMsIEluc3RydWN0aW9uKiBwYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUV3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSArNzcs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0KFZNJiwgQ29kZUxv
Y2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZhbHVl
KQorICAgIHZvaWQgc2V0KFZNJiB2bSwgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9u
LCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZhbHVlKQogICAgIHsKLSAgICAgICAgSGVhcDo6d3Jp
dGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93
bmVyLCB2YWx1ZSk7CiAgICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAgQVNT
RVJUKCgoISFtX2xvY2F0aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgIT0g
SklUV3JpdGVCYXJyaWVyRmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkgPT0g
bV9sb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpyZXBhdGNoUG9pbnRlcihtX2xvY2F0aW9uLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2MzUwNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE0MzYsOSArMTQzNiwxMCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJu
VHlwZSBsbGludF9zdGFjCiB9CiAjZW5kaWYKIAotZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dyaXRl
X2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqIGNlbGwpCitleHRlcm4gIkMiIHZvaWQg
bGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBjZWxsKQog
ewotICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgp
OworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNlbGwpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5oCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPYmpl
Y3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCShyZXZpc2lvbiAxNjM1MDYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKICNpbmNsdWRlICJXZWFrTWFwRGF0YS5o
IgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCShyZXZpc2lv
biAxNjM1MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3IEBAIENoZWNrZWRCb29sZWFuIE1hcERhdGE6
OmVuc3VyZVNwYWNlRm9yQXAKICAgICAgICAgcmVwbGFjZUFuZFBhY2tCYWNraW5nU3RvcmUobmV3
RW50cmllcywgcmVxdWlyZWRTaXplKTsKICAgICBlbHNlCiAgICAgICAgIHJlcGxhY2VCYWNraW5n
U3RvcmUobmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKLSAgICBIZWFwOjp3cml0ZUJhcnJpZXIo
dGhpcyk7CisgICAgY2FsbEZyYW1lLT5oZWFwKCktPndyaXRlQmFycmllcih0aGlzKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlUYWJsZS5jcHAJKHJldmlzaW9uIDE2MzUwNikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3
ICs4NCw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCBKU0MKICAgICBp
dGVyYXRvciBlbmQgPSB0aGlzLT5lbmQoKTsKICAgICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBiZWdp
bigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7Ci0g
ICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQo
KSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1Zh
bHVlLmdldCgpKTsKICAgICB9CiAKICAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZl
Y3Rvci4KQEAgLTEwOSw3ICsxMDksNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZN
JiB2bSwgSlNDCiAgICAgICAgIEFTU0VSVChjYW5JbnNlcnQoKSk7CiAgICAgICAgIHJlaW5zZXJ0
KCppdGVyKTsKICAgICAgICAgaXRlci0+a2V5LT5yZWYoKTsKLSAgICAgICAgSGVhcDo6d3JpdGVC
YXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKKyAgICAgICAgdm0uaGVh
cC53cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOwogICAgIH0K
IAogICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDE2MzUwNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUgIldh
dGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrLmgiCisjaW5jbHVkZSAiV3JpdGVCYXJyaWVySW5s
aW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21waWxhdGlvblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYz
NTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcxLDEzICs3MSw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2
b2lkIHZhbGlkYXRlQ2UKIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBiYXNlIGNsYXNzIHdpdGggbm8g
Y29uc3RydWN0b3JzIGZvciB1c2UgaW4gVW5pb25zLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNs
YXNzIFdyaXRlQmFycmllckJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0KFZNJiB2bSwgY29u
c3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCi0gICAgewotICAgICAgICBBU1NFUlQodmFsdWUp
OwotICAgICAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXND
b21waWxhdGlvblRocmVhZCgpKTsKLSAgICAgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKLSAgICAg
ICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKLSAgICB9CisgICAgdm9pZCBzZXQo
Vk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSk7CiAgICAgCiAgICAgLy8gVGhpcyBp
cyBtZWFudCB0byBiZSB1c2VkIGxpa2Ugb3BlcmF0b3I9LCBidXQgaXMgY2FsbGVkIGNvcHlGcm9t
IGluc3RlYWQsIGluCiAgICAgLy8gb3JkZXIgdG8ga2luZGx5IGluZm9ybSB0aGUgQysrIGNvbXBp
bGVyIHRoYXQgaXRzIGFkdmljZSBpcyBub3QgYXBwcmVjaWF0ZWQuCkBAIC04NiwyMCArODAsMTEg
QEAgcHVibGljOgogICAgICAgICBtX2NlbGwgPSBvdGhlci5tX2NlbGw7CiAgICAgfQogCi0gICAg
dm9pZCBzZXRNYXlCZU51bGwoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkK
LSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSkKLSAgICAgICAgICAgIHZhbGlkYXRlQ2VsbCh2YWx1
ZSk7Ci0gICAgICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Ci0gICAgfQorICAg
IHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpOwog
CiAgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBieSBKU0NlbGwgZHVyaW5nIGVhcmx5IGluaXRp
YWxpc2F0aW9uCiAgICAgLy8gd2hlbiBzb21lIGJhc2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29tcGxl
dGVseSBpbnN0YW50aWF0ZWQKLSAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBKU0Nl
bGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMtPm1fY2VsbCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIo
b3duZXIsIHRoaXMtPm1fY2VsbCk7Ci0gICAgfQorICAgIHZvaWQgc2V0RWFybHlWYWx1ZShWTSYs
IGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKTsKICAgICAKICAgICBUKiBnZXQoKSBjb25z
dAogICAgIHsKQEAgLTE1MSwxMyArMTM2LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGUgPD4gY2xh
c3MgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXQoVk0m
LCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJl
YWQoKSk7Ci0gICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwotICAgICAg
ICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsKLSAgICB9Ci0KKyAgICB2b2lkIHNl
dChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTVmFsdWUpOwogICAgIHZvaWQgc2V0V2l0aG91
dFdyaXRlQmFycmllcihKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV92YWx1ZSA9IEpT
VmFsdWU6OmVuY29kZSh2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM1MDkpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxNC0wMi0wNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIEhlYXA6OndyaXRlQmFycmllciBzaG91bGRuJ3QgYmUgc3RhdGljCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQgbG9v
a3MgdXAgdGhlIEhlYXAgaW4gd2hpY2ggdG8gZmlyZSB0aGUgd3JpdGUgYmFycmllciBieSB1c2lu
ZyAKKyAgICAgICAgdGhlIGNlbGwgcGFzc2VkIHRvIGl0LiBBbG1vc3QgZXZlcnkgY2FsbCBzaXRl
IGFscmVhZHkgaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgVk0gb3IgdGhlIEhlYXAg
aXRzZWxmLiBJdCBzZWVtcyB3YXN0ZWZ1bCB0byBsb29rIGl0IHVwIGFsbCBvdmVyIGFnYWluLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0
ZW5lcjo6anNGdW5jdGlvbik6CisKIDIwMTQtMDItMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBlbmNvZGluZyBhbmQgZGVjb2Rpbmcg
b2YgUmVnaW9ucwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBA
IEpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKEpTT2JqZWMKICAgICAsIG1faXNvbGF0
ZWRXb3JsZCgmaXNvbGF0ZWRXb3JsZCkKIHsKICAgICBpZiAod3JhcHBlcikgewotICAgICAgICBK
U0M6OkhlYXA6OndyaXRlQmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7CisgICAgICAgIEpTQzo6
SGVhcDo6aGVhcCh3cmFwcGVyKS0+d3JpdGVCYXJyaWVyKHdyYXBwZXIsIGZ1bmN0aW9uKTsKICAg
ICAgICAgbV9qc0Z1bmN0aW9uID0gSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+KGZ1bmN0aW9uKTsK
ICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUKCFmdW5jdGlvbik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gMTYzNTA2KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg0LDcgKzg0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGlm
ICghbV9qc0Z1bmN0aW9uKSB7CiAgICAgICAgICAgICBKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiA9
IGluaXRpYWxpemVKU0Z1bmN0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICAg
ICAgSlNDOjpIZWFwOjp3cml0ZUJhcnJpZXIobV93cmFwcGVyLmdldCgpLCBmdW5jdGlvbik7Cisg
ICAgICAgICAgICBKU0M6OkhlYXA6OmhlYXAobV93cmFwcGVyLmdldCgpKS0+d3JpdGVCYXJyaWVy
KG1fd3JhcHBlci5nZXQoKSwgZnVuY3Rpb24pOwogICAgICAgICAgICAgbV9qc0Z1bmN0aW9uID0g
SlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+KGZ1bmN0aW9uKTsKICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223306</attachid>
            <date>2014-02-05 21:56:10 -0800</date>
            <delta_ts>2014-02-06 15:14:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140205215610.patch</filename>
            <type>text/plain</type>
            <size>22204</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE0LTAyLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmg6IEFkZGVkLgorCiAyMDE0LTAyLTA1ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxpbmcgb2Yg
b3BhcXVlIHJvb3RzIGlzIHdyb25nIGluIEVkZW5Db2xsZWN0aW9ucwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2MzUwNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjIxLDYgKzEyMjEsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtSYW5kb20uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV3JpdGVCYXJyaWVyLmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllcklubGluZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0NvZGVQcm9maWxlLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9m
aWxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBc
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2
MzUwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzODgsNiArMTM4OCw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha1JhbmRvbS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXENvZGVQcm9maWxpbmcuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXFByb2ZpbGVUcmVlTm9kZS5oIiAvPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2
aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDM4LDYgKzI0MzgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0
ZUJhcnJpZXIuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5s
aW5lcy5oIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCI+CiAgICAg
ICA8RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMzMsNiArMTMzMyw3IEBACiAJCUMyOTgxRkREMTdCQUZGNDQwMEEzQkM5OCAv
KiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzI5ODFGREIxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQzI5RUNCMDMxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxv
Y2tHZXR0ZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lm1tICovOyB9OwogCQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0
cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMyQjZE
NzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMzNzkzMDA0QTkz
MDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUMyQjkxNkMyMTREQTAxNEUwMENCQUM4NiAvKiBNYXJrZWRB
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQjkxNkMxMTREQTAxNEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMkI5MTZDNTE0REEwNDBD
MDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAvKiBNYXJrZWRB
bGxvY2F0b3IuY3BwICovOyB9OwogCQlDMkMwRjdDRDE3QkJGQzVCMDA0NjRGRTQgLyogREZHRGVz
aXJlZFRyYW5zaXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyQzBGN0NCMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlv
bnMuY3BwICovOyB9OwpAQCAtMjc2NSw2ICsyNzY2LDcgQEAKIAkJQzI5RUNCMDExODA0RDBFRDAw
RDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRl
clRlc3QubW07IHBhdGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRl
c3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQwRUQwMEQy
Q0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oOyBw
YXRoID0gQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rl
c3RydWN0aWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rl
c3RydWN0aWJsZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkI2RDc1
MjE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXcml0ZUJhcnJpZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMyQjkxNkMxMTREQTAxNEUwMENCQUM4NiAvKiBNYXJrZWRBbGxvY2F0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFya2VkQWxsb2NhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQjkxNkM0MTREQTA0MEMwMENCQUM4NiAv
KiBNYXJrZWRBbGxvY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWFya2VkQWxsb2NhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzJD
MEY3Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3Bw
OyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zNjI0LDYgKzM2MjYsNyBAQAogCQk3RUY2RTBCQjBFQjdBMUVDMDA3OUFG
QUYgLyogcnVudGltZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAq
LywKIAkJCQlCQ0Y2MDUxMTBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5jcHAgKi8sCiAJCQkJ
QkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCAqLywKIAkJCQlCQzI1N0RFNTBF
MUY1MUM1MDAxNkI2QzkgLyogQXJndW1lbnRzLmNwcCAqLywKQEAgLTQ2NDEsNiArNDY0NCw3IEBA
CiAJCQkJNjVDMDI4NUQxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJh
cnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyQjZENzUzMThBMzM3OTMwMDRBOTMw
MSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJBODE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMy
NDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvQ29weVdyaXRlQmFycmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvcHlXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYzNTA2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVdyaXRlQmFycmllci5oCSh3b3JraW5nIGNvcHkp
CkBAIC02OCwxMCArNjgsMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2V0KCk7CiAgICAg
fQogICAgIAotICAgIHZvaWQgc2V0KFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUp
CisgICAgdm9pZCBzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIHRoaXMtPm1fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgSGVhcDo6d3JpdGVC
YXJyaWVyKG93bmVyKTsKKyAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIob3duZXIpOwogICAg
IH0KICAgICAKICAgICB2b2lkIHNldFdpdGhvdXRXcml0ZUJhcnJpZXIoVCogdmFsdWUpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTYzNTA2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwODcs
OCArMTA4Nyw3IEBAIHZvaWQgSGVhcDo6d3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCogZnIKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0xPT0tTX1ZBTElEKGNvbnN0X2Nhc3Q8SlNDZWxsKj4oZnJvbSkp
OwogICAgIGlmICghZnJvbSB8fCAhaXNNYXJrZWQoZnJvbSkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBIZWFwKiBoZWFwID0gSGVhcDo6aGVhcChmcm9tKTsKLSAgICBoZWFwLT5hZGRUb1JlbWVtYmVy
ZWRTZXQoZnJvbSk7CisgICAgYWRkVG9SZW1lbWJlcmVkU2V0KGZyb20pOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oZnJvbSk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgJKHJldmlzaW9uIDE2MzUwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDkgKzEwMiw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+aXNSZW1lbWJlcmVk
KGNlbGwpOwogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBib29sIGlzV3JpdGVCYXJyaWVyRW5h
YmxlZCgpOwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCB3cml0ZUJhcnJp
ZXIoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHdyaXRlQmFycmllcihjb25z
dCBKU0NlbGwqLCBKU1ZhbHVlKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVCYXJyaWVyKGNv
bnN0IEpTQ2VsbCosIEpTQ2VsbCopOworICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHdy
aXRlQmFycmllcihjb25zdCBKU0NlbGwqKTsKKyAgICAgICAgdm9pZCB3cml0ZUJhcnJpZXIoY29u
c3QgSlNDZWxsKiwgSlNWYWx1ZSk7CisgICAgICAgIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpT
Q2VsbCosIEpTQ2VsbCopOwogCiAgICAgICAgIFdyaXRlQmFycmllckJ1ZmZlciYgd3JpdGVCYXJy
aWVyQnVmZmVyKCkgeyByZXR1cm4gbV93cml0ZUJhcnJpZXJCdWZmZXI7IH0KICAgICAgICAgdm9p
ZCBmbHVzaFdyaXRlQmFycmllckJ1ZmZlcihKU0NlbGwqKTsKQEAgLTQwMCw3ICs0MDAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCF0byB8fCBp
c01hcmtlZCh0bykpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEhlYXA6OmhlYXAoZnJv
bSktPmFkZFRvUmVtZW1iZXJlZFNldChmcm9tKTsKKyAgICAgICAgYWRkVG9SZW1lbWJlcmVkU2V0
KGZyb20pOwogICAgIH0KIAogICAgIGlubGluZSB2b2lkIEhlYXA6OndyaXRlQmFycmllcihjb25z
dCBKU0NlbGwqIGZyb20sIEpTVmFsdWUgdG8pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2MzUwNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NTAs
NyArMTc1MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25PU1JXcml0ZUJhcnIKIHsK
ICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBleGVjKTsKLSAgICBleGVjLT5oZWFwKCktPndyaXRlQmFycmllcihjZWxsKTsKKyAg
ICB2bS0+aGVhcC53cml0ZUJhcnJpZXIoY2VsbCk7CiB9CiAKIC8vIE5COiBXZSBkb24ndCBpbmNs
dWRlIHRoZSB2YWx1ZSBhcyBwYXJ0IG9mIHRoZSBiYXJyaWVyIGJlY2F1c2UgdGhlIHdyaXRlIGJh
cnJpZXIgZWxpc2lvbgpAQCAtMTc2MCw3ICsxNzYwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblVuY29uZGl0aW9uYQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIEhlYXA6OndyaXRlQmFy
cmllcihjZWxsKTsKKyAgICB2bS0+aGVhcC53cml0ZUJhcnJpZXIoY2VsbCk7CiB9CiAKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Jbml0R2xvYmFsQ29uc3QoRXhlY1N0YXRlKiBleGVjLCBJ
bnN0cnVjdGlvbiogcGMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRl
QmFycmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV3Jp
dGVCYXJyaWVyLmgJKHJldmlzaW9uIDE2MzUwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUV3JpdGVCYXJyaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDkgKzc3LDkgQEAgcHJv
dGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHNldChWTSYsIENvZGVMb2NhdGlvbkRh
dGFMYWJlbFB0ciBsb2NhdGlvbiwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiB2YWx1ZSkKKyAgICB2
b2lkIHNldChWTSYgdm0sIENvZGVMb2NhdGlvbkRhdGFMYWJlbFB0ciBsb2NhdGlvbiwgSlNDZWxs
KiBvd25lciwgSlNDZWxsKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmll
cihvd25lciwgdmFsdWUpOworICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lciwgdmFs
dWUpOwogICAgICAgICBtX2xvY2F0aW9uID0gbG9jYXRpb247CiAgICAgICAgIEFTU0VSVCgoKCEh
bV9sb2NhdGlvbikgJiYgbV9sb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpICE9IEpJVFdyaXRl
QmFycmllckZsYWcpIHx8IChsb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpID09IG1fbG9jYXRp
b24uZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRj
aFBvaW50ZXIobV9sb2NhdGlvbiwgdmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDM2LDkgKzE0MzYsMTAgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxp
bnRfc3RhYwogfQogI2VuZGlmCiAKLWV4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9iYXJyaWVy
X3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQorZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dy
aXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCkKIHsKLSAgICBI
ZWFwOjp3cml0ZUJhcnJpZXIoY2VsbCk7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICB2
bS5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxM
SW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAkocmV2
aXNpb24gMTYzNTA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3Ry
dWN0b3IuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAkocmV2aXNpb24gMTYzNTA2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKKyNpbmNs
dWRlICJXcml0ZUJhcnJpZXJJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNwcAkocmV2aXNpb24gMTYzNTA2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwRGF0YS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwOCw3ICsyMDgsNyBAQCBDaGVja2VkQm9vbGVhbiBNYXBEYXRhOjplbnN1cmVT
cGFjZUZvckFwCiAgICAgICAgIHJlcGxhY2VBbmRQYWNrQmFja2luZ1N0b3JlKG5ld0VudHJpZXMs
IHJlcXVpcmVkU2l6ZSk7CiAgICAgZWxzZQogICAgICAgICByZXBsYWNlQmFja2luZ1N0b3JlKG5l
d0VudHJpZXMsIHJlcXVpcmVkU2l6ZSk7Ci0gICAgSGVhcDo6d3JpdGVCYXJyaWVyKHRoaXMpOwor
ICAgIGNhbGxGcmFtZS0+aGVhcCgpLT53cml0ZUJhcnJpZXIodGhpcyk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5VGFibGUuY3BwCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBA
QCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKFZNJiB2bSwgSlNDCiAgICAgaXRlcmF0b3Ig
ZW5kID0gdGhpcy0+ZW5kKCk7CiAgICAgZm9yIChpdGVyYXRvciBpdGVyID0gYmVnaW4oKTsgaXRl
ciAhPSBlbmQ7ICsraXRlcikgewogICAgICAgICBpdGVyLT5rZXktPnJlZigpOwotICAgICAgICBI
ZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOworICAg
ICAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQo
KSk7CiAgICAgfQogCiAgICAgLy8gQ29weSB0aGUgbV9kZWxldGVkT2Zmc2V0cyB2ZWN0b3IuCkBA
IC0xMDksNyArMTA5LDcgQEAgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShWTSYgdm0sIEpT
QwogICAgICAgICBBU1NFUlQoY2FuSW5zZXJ0KCkpOwogICAgICAgICByZWluc2VydCgqaXRlcik7
CiAgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihv
d25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5nZXQoKSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVC
YXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKICAgICB9CiAKICAgICAv
LyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxNjM1MDYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsNyBAQAogI2luY2x1ZGUgIkpTVHlwZUluZm8uaCIKICNpbmNsdWRlICJXYXRjaHBvaW50
LmgiCiAjaW5jbHVkZSAiV2Vhay5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tcGlsYXRpb25UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgJKHJldmlzaW9uIDE2MzUwNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MSwxMyArNzEsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCB2YWxp
ZGF0ZUNlCiAvLyBXZSBoYXZlIGEgc2VwYXJhdGUgYmFzZSBjbGFzcyB3aXRoIG5vIGNvbnN0cnVj
dG9ycyBmb3IgdXNlIGluIFVuaW9ucy4KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXcml0
ZUJhcnJpZXJCYXNlIHsKIHB1YmxpYzoKLSAgICB2b2lkIHNldChWTSYgdm0sIGNvbnN0IEpTQ2Vs
bCogb3duZXIsIFQqIHZhbHVlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHZhbHVlKTsKLSAgICAg
ICAgQVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRp
b25UaHJlYWQoKSk7Ci0gICAgICAgIHZhbGlkYXRlQ2VsbCh2YWx1ZSk7Ci0gICAgICAgIHNldEVh
cmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Ci0gICAgfQorICAgIHZvaWQgc2V0KFZNJiwgY29u
c3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpOwogICAgIAogICAgIC8vIFRoaXMgaXMgbWVhbnQg
dG8gYmUgdXNlZCBsaWtlIG9wZXJhdG9yPSwgYnV0IGlzIGNhbGxlZCBjb3B5RnJvbSBpbnN0ZWFk
LCBpbgogICAgIC8vIG9yZGVyIHRvIGtpbmRseSBpbmZvcm0gdGhlIEMrKyBjb21waWxlciB0aGF0
IGl0cyBhZHZpY2UgaXMgbm90IGFwcHJlY2lhdGVkLgpAQCAtODYsMjAgKzgwLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9jZWxsID0gb3RoZXIubV9jZWxsOwogICAgIH0KIAotICAgIHZvaWQgc2V0
TWF5QmVOdWxsKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCi0gICAgewot
ICAgICAgICBpZiAodmFsdWUpCi0gICAgICAgICAgICB2YWxpZGF0ZUNlbGwodmFsdWUpOwotICAg
ICAgICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOwotICAgIH0KKyAgICB2b2lkIHNl
dE1heUJlTnVsbChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKTsKIAogICAgIC8v
IFNob3VsZCBvbmx5IGJlIHVzZWQgYnkgSlNDZWxsIGR1cmluZyBlYXJseSBpbml0aWFsaXNhdGlv
bgogICAgIC8vIHdoZW4gc29tZSBiYXNpYyB0eXBlcyBhcmVuJ3QgeWV0IGNvbXBsZXRlbHkgaW5z
dGFudGlhdGVkCi0gICAgdm9pZCBzZXRFYXJseVZhbHVlKFZNJiwgY29uc3QgSlNDZWxsKiBvd25l
ciwgVCogdmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLT5tX2NlbGwgPSByZWludGVycHJldF9j
YXN0PEpTQ2VsbCo+KHZhbHVlKTsKLSAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyKG93bmVyLCB0
aGlzLT5tX2NlbGwpOwotICAgIH0KKyAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBK
U0NlbGwqIG93bmVyLCBUKiB2YWx1ZSk7CiAgICAgCiAgICAgVCogZ2V0KCkgY29uc3QKICAgICB7
CkBAIC0xNTEsMTMgKzEzNiw3IEBAIHByaXZhdGU6CiAKIHRlbXBsYXRlIDw+IGNsYXNzIFdyaXRl
QmFycmllckJhc2U8VW5rbm93bj4gewogcHVibGljOgotICAgIHZvaWQgc2V0KFZNJiwgY29uc3Qg
SlNDZWxsKiBvd25lciwgSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghT3B0
aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOwot
ICAgICAgICBtX3ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKLSAgICAgICAgSGVhcDo6
d3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7Ci0gICAgfQotCisgICAgdm9pZCBzZXQoVk0mLCBj
b25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlKTsKICAgICB2b2lkIHNldFdpdGhvdXRXcml0ZUJh
cnJpZXIoSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjpl
bmNvZGUodmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllcklubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXcml0ZUJhcnJpZXJJbmxpbmVzX2gK
KyNkZWZpbmUgV3JpdGVCYXJyaWVySW5saW5lc19oCisKKyNpbmNsdWRlICJWTS5oIgorI2luY2x1
ZGUgIldyaXRlQmFycmllci5oIgorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CitpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFQ+OjpzZXQoVk0mIHZtLCBjb25z
dCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQodmFsdWUpOworICAgIEFT
U0VSVCghT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhy
ZWFkKCkpOworICAgIHZhbGlkYXRlQ2VsbCh2YWx1ZSk7CisgICAgc2V0RWFybHlWYWx1ZSh2bSwg
b3duZXIsIHZhbHVlKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBX
cml0ZUJhcnJpZXJCYXNlPFQ+OjpzZXRNYXlCZU51bGwoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93
bmVyLCBUKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUpCisgICAgICAgIHZhbGlkYXRlQ2VsbCh2
YWx1ZSk7CisgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFQ+OjpzZXRFYXJs
eVZhbHVlKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCit7CisgICAgdGhp
cy0+bV9jZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih2YWx1ZSk7CisgICAgdm0uaGVh
cC53cml0ZUJhcnJpZXIob3duZXIsIHRoaXMtPm1fY2VsbCk7Cit9CisKK2lubGluZSB2b2lkIFdy
aXRlQmFycmllckJhc2U8VW5rbm93bj46OnNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIs
IEpTVmFsdWUgdmFsdWUpCit7CisgICAgQVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50
SklUKCkgfHwgIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CisgICAgbV92YWx1ZSA9IEpTVmFsdWU6
OmVuY29kZSh2YWx1ZSk7CisgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDIAorCisjZW5kaWYgLy8gV3JpdGVCYXJyaWVySW5saW5l
c19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM1MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wMi0wNSAgTWFy
ayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIEhlYXA6Ondy
aXRlQmFycmllciBzaG91bGRuJ3QgYmUgc3RhdGljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQgbG9va3MgdXAgdGhlIEhlYXAgaW4g
d2hpY2ggdG8gZmlyZSB0aGUgd3JpdGUgYmFycmllciBieSB1c2luZyAKKyAgICAgICAgdGhlIGNl
bGwgcGFzc2VkIHRvIGl0LiBBbG1vc3QgZXZlcnkgY2FsbCBzaXRlIGFscmVhZHkgaGFzIGEgcmVm
ZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgVk0gb3IgdGhlIEhlYXAgaXRzZWxmLiBJdCBzZWVtcyB3
YXN0ZWZ1bCB0byBsb29rIGl0IHVwIGFsbCBvdmVyIGFnYWluLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0
ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlvbik6
CisKIDIwMTQtMDItMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3VwcG9ydCBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YgUmVnaW9ucwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCShyZXZp
c2lvbiAxNjM1MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIEpTRXZlbnRMaXN0ZW5lcjo6
SlNFdmVudExpc3RlbmVyKEpTT2JqZWMKICAgICAsIG1faXNvbGF0ZWRXb3JsZCgmaXNvbGF0ZWRX
b3JsZCkKIHsKICAgICBpZiAod3JhcHBlcikgewotICAgICAgICBKU0M6OkhlYXA6OndyaXRlQmFy
cmllcih3cmFwcGVyLCBmdW5jdGlvbik7CisgICAgICAgIEpTQzo6SGVhcDo6aGVhcCh3cmFwcGVy
KS0+d3JpdGVCYXJyaWVyKHdyYXBwZXIsIGZ1bmN0aW9uKTsKICAgICAgICAgbV9qc0Z1bmN0aW9u
ID0gSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+KGZ1bmN0aW9uKTsKICAgICB9IGVsc2UKICAgICAg
ICAgQVNTRVJUKCFmdW5jdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gMTYzNTA2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGlmICghbV9qc0Z1bmN0aW9uKSB7
CiAgICAgICAgICAgICBKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiA9IGluaXRpYWxpemVKU0Z1bmN0
aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICAgICAgSlNDOjpIZWFwOjp3cml0
ZUJhcnJpZXIobV93cmFwcGVyLmdldCgpLCBmdW5jdGlvbik7CisgICAgICAgICAgICBKU0M6Okhl
YXA6OmhlYXAobV93cmFwcGVyLmdldCgpKS0+d3JpdGVCYXJyaWVyKG1fd3JhcHBlci5nZXQoKSwg
ZnVuY3Rpb24pOwogICAgICAgICAgICAgbV9qc0Z1bmN0aW9uID0gSlNDOjpXZWFrPEpTQzo6SlNP
YmplY3Q+KGZ1bmN0aW9uKTsKICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223388</attachid>
            <date>2014-02-06 15:15:00 -0800</date>
            <delta_ts>2014-02-06 15:16:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140206151451.patch</filename>
            <type>text/plain</type>
            <size>19494</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE0LTAyLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmg6IEFkZGVkLgorCiAyMDE0LTAyLTA2ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTYzNTQyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIxLDYgKzEyMjEsNyBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwUHJvdG90eXBlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtSYW5kb20uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVy
LmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGlu
ZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEzODgsNiArMTM4OCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha1JhbmRvbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHRvb2xzXENvZGVQcm9maWxpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHRvb2xzXFByb2ZpbGVUcmVlTm9kZS5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYzNTU2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDM4LDYgKzI0MzgsOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCI+CiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIj4KKyAgICAgIDxGaWx0
ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCI+CiAgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMzMsNiArMTMz
Myw3IEBACiAJCUMyOTgxRkREMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJy
aWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5
ODFGREIxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI5RUNCMDMxODA0
RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5RUNCMDExODA0RDBF
RDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovOyB9Owog
CQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQTdGNjg3MTYwNDMy
RDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5
MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJp
ZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQzJCOTE2QzIxNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCOTE2QzExNERBMDE0
RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJr
ZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJCOTE2QzQxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgKi87
IH07CiAJCUMyQzBGN0NEMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDMEY3
Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgKi87IH07CkBA
IC0yNzY1LDYgKzI3NjYsNyBAQAogCQlDMjlFQ0IwMTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVu
dFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbTsgcGF0aCA9
IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDIxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMv
Q3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAw
NEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBDMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQzBGN0NCMTdCQkZD
NUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcDsgcGF0aCA9IGRm
Zy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzYyNCw2ICszNjI2LDcgQEAKIAkJN0VGNkUwQkIwRUI3QTFFQzAwNzlBRkFGIC8qIHJ1bnRp
bWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorICAgICAgICAg
ICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAq
LywKIAkJCQlCQ0Y2MDUxMTBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5jcHAgKi8sCiAJCQkJ
QkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCAqLywKIAkJCQlCQzI1N0RFNTBF
MUY1MUM1MDAxNkI2QzkgLyogQXJndW1lbnRzLmNwcCAqLywKQEAgLTQ2NDEsNiArNDY0NCw3IEBA
CiAJCQkJNjVDMDI4NUQxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJh
cnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEz
Mzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9y
U3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5MiAv
KiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVdyaXRlQmFycmllci5oCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBn
ZXQoKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVy
LCBUKiB2YWx1ZSkKKyAgICB2b2lkIHNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQq
IHZhbHVlKQogICAgIHsKICAgICAgICAgdGhpcy0+bV92YWx1ZSA9IHZhbHVlOwotICAgICAgICBI
ZWFwOjp3cml0ZUJhcnJpZXIob3duZXIpOworICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihv
d25lcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihUKiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA4Nyw4ICsxMDg3LDcgQEAgdm9pZCBIZWFwOjp3cml0ZUJhcnJpZXIoY29uc3QgSlND
ZWxsKiBmcgogICAgIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY29uc3RfY2FzdDxKU0Nl
bGwqPihmcm9tKSk7CiAgICAgaWYgKCFmcm9tIHx8ICFpc01hcmtlZChmcm9tKSkKICAgICAgICAg
cmV0dXJuOwotICAgIEhlYXAqIGhlYXAgPSBIZWFwOjpoZWFwKGZyb20pOwotICAgIGhlYXAtPmFk
ZFRvUmVtZW1iZXJlZFNldChmcm9tKTsKKyAgICBhZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShmcm9tKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsOSArMTAyLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gTWFya2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpLT5p
c1JlbWVtYmVyZWQoY2VsbCk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNXcml0
ZUJhcnJpZXJFbmFibGVkKCk7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lk
IHdyaXRlQmFycmllcihjb25zdCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVC
YXJyaWVyKGNvbnN0IEpTQ2VsbCosIEpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgdm9pZCB3cml0
ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CisgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCopOworICAgICAgICB2b2lkIHdyaXRl
QmFycmllcihjb25zdCBKU0NlbGwqLCBKU1ZhbHVlKTsKKyAgICAgICAgdm9pZCB3cml0ZUJhcnJp
ZXIoY29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyQnVmZmVy
JiB3cml0ZUJhcnJpZXJCdWZmZXIoKSB7IHJldHVybiBtX3dyaXRlQmFycmllckJ1ZmZlcjsgfQog
ICAgICAgICB2b2lkIGZsdXNoV3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsbCopOwpAQCAtNDAxLDcg
KzQwMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBp
ZiAoIXRvIHx8IGlzTWFya2VkKHRvKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSGVh
cDo6aGVhcChmcm9tKS0+YWRkVG9SZW1lbWJlcmVkU2V0KGZyb20pOworICAgICAgICBhZGRUb1Jl
bWVtYmVyZWRTZXQoZnJvbSk7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgSGVhcDo6d3JpdGVC
YXJyaWVyKGNvbnN0IEpTQ2VsbCogZnJvbSwgSlNWYWx1ZSB0bykKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYzNTU2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTc0MCw3ICsxNzQwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldy
aXRlQmFycgogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIGV4ZWMtPmhlYXAoKS0+d3JpdGVCYXJyaWVy
KGNlbGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogLy8gTkI6IFdl
IGRvbid0IGluY2x1ZGUgdGhlIHZhbHVlIGFzIHBhcnQgb2YgdGhlIGJhcnJpZXIgYmVjYXVzZSB0
aGUgd3JpdGUgYmFycmllciBlbGlzaW9uCkBAIC0xNzUwLDcgKzE3NTAsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVW5jb25kaXRpb25hCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgSGVh
cDo6d3JpdGVCYXJyaWVyKGNlbGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsK
IH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDb25zdChFeGVjU3Rh
dGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUV3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSAr
NzcsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0KFZNJiwgQ29k
ZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZh
bHVlKQorICAgIHZvaWQgc2V0KFZNJiB2bSwgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0
aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZhbHVlKQogICAgIHsKLSAgICAgICAgSGVhcDo6
d3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVy
KG93bmVyLCB2YWx1ZSk7CiAgICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAg
QVNTRVJUKCgoISFtX2xvY2F0aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkg
IT0gSklUV3JpdGVCYXJyaWVyRmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkg
PT0gbV9sb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpyZXBhdGNoUG9pbnRlcihtX2xvY2F0aW9uLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2MzU1
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0MzYsOSArMTQzNiwxMCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0
dXJuVHlwZSBsbGludF9zdGFjCiB9CiAjZW5kaWYKIAotZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dy
aXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqIGNlbGwpCitleHRlcm4gIkMiIHZv
aWQgbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBjZWxs
KQogewotICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKKyAgICBWTSYgdm0gPSBleGVjLT52
bSgpOworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNlbGwpOwogfQogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCShyZXZpc2lvbiAxNjM1NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJP
YmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKICNpbmNsdWRlICJXZWFrTWFwRGF0
YS5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCShyZXZp
c2lvbiAxNjM1NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3IEBAIENoZWNrZWRCb29sZWFuIE1hcERh
dGE6OmVuc3VyZVNwYWNlRm9yQXAKICAgICAgICAgcmVwbGFjZUFuZFBhY2tCYWNraW5nU3RvcmUo
bmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKICAgICBlbHNlCiAgICAgICAgIHJlcGxhY2VCYWNr
aW5nU3RvcmUobmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKLSAgICBIZWFwOjp3cml0ZUJhcnJp
ZXIodGhpcyk7CisgICAgY2FsbEZyYW1lLT5oZWFwKCktPndyaXRlQmFycmllcih0aGlzKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw3ICs4NCw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCBKU0MKICAg
ICBpdGVyYXRvciBlbmQgPSB0aGlzLT5lbmQoKTsKICAgICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBi
ZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7
Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5n
ZXQoKSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZp
Y1ZhbHVlLmdldCgpKTsKICAgICB9CiAKICAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRz
IHZlY3Rvci4KQEAgLTEwOSw3ICsxMDksNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxl
KFZNJiB2bSwgSlNDCiAgICAgICAgIEFTU0VSVChjYW5JbnNlcnQoKSk7CiAgICAgICAgIHJlaW5z
ZXJ0KCppdGVyKTsKICAgICAgICAgaXRlci0+a2V5LT5yZWYoKTsKLSAgICAgICAgSGVhcDo6d3Jp
dGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKKyAgICAgICAgdm0u
aGVhcC53cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOwogICAg
IH0KIAogICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDE2MzU1NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUg
IldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrLmgiCisjaW5jbHVkZSAiV3JpdGVCYXJyaWVy
SW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21waWxhdGlvblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAkocmV2aXNpb24g
MTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDEzICs3MSw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IGlubGlu
ZSB2b2lkIHZhbGlkYXRlQ2UKIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBiYXNlIGNsYXNzIHdpdGgg
bm8gY29uc3RydWN0b3JzIGZvciB1c2UgaW4gVW5pb25zLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0KFZNJiB2bSwg
Y29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCi0gICAgewotICAgICAgICBBU1NFUlQodmFs
dWUpOwotICAgICAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSB8fCAh
aXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICAgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKLSAg
ICAgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKLSAgICB9CisgICAgdm9pZCBz
ZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSk7CiAgICAgCiAgICAgLy8gVGhp
cyBpcyBtZWFudCB0byBiZSB1c2VkIGxpa2Ugb3BlcmF0b3I9LCBidXQgaXMgY2FsbGVkIGNvcHlG
cm9tIGluc3RlYWQsIGluCiAgICAgLy8gb3JkZXIgdG8ga2luZGx5IGluZm9ybSB0aGUgQysrIGNv
bXBpbGVyIHRoYXQgaXRzIGFkdmljZSBpcyBub3QgYXBwcmVjaWF0ZWQuCkBAIC04NiwyMCArODAs
MTEgQEAgcHVibGljOgogICAgICAgICBtX2NlbGwgPSBvdGhlci5tX2NlbGw7CiAgICAgfQogCi0g
ICAgdm9pZCBzZXRNYXlCZU51bGwoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSkKLSAgICAgICAgICAgIHZhbGlkYXRlQ2VsbCh2
YWx1ZSk7Ci0gICAgICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Ci0gICAgfQor
ICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUp
OwogCiAgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBieSBKU0NlbGwgZHVyaW5nIGVhcmx5IGlu
aXRpYWxpc2F0aW9uCiAgICAgLy8gd2hlbiBzb21lIGJhc2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29t
cGxldGVseSBpbnN0YW50aWF0ZWQKLSAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBK
U0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMtPm1fY2VsbCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJp
ZXIob3duZXIsIHRoaXMtPm1fY2VsbCk7Ci0gICAgfQorICAgIHZvaWQgc2V0RWFybHlWYWx1ZShW
TSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKTsKICAgICAKICAgICBUKiBnZXQoKSBj
b25zdAogICAgIHsKQEAgLTE1MSwxMyArMTM2LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGUgPD4g
Y2xhc3MgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXQo
Vk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25U
aHJlYWQoKSk7Ci0gICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwotICAg
ICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsKLSAgICB9Ci0KKyAgICB2b2lk
IHNldChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTVmFsdWUpOwogICAgIHZvaWQgc2V0V2l0
aG91dFdyaXRlQmFycmllcihKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV92YWx1ZSA9
IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM1NTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
OSBAQAorMjAxNC0wMi0wNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIEhlYXA6OndyaXRlQmFycmllciBzaG91bGRuJ3QgYmUgc3RhdGljCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBDdXJyZW50bHkgaXQg
bG9va3MgdXAgdGhlIEhlYXAgaW4gd2hpY2ggdG8gZmlyZSB0aGUgd3JpdGUgYmFycmllciBieSB1
c2luZyAKKyAgICAgICAgdGhlIGNlbGwgcGFzc2VkIHRvIGl0LiBBbG1vc3QgZXZlcnkgY2FsbCBz
aXRlIGFscmVhZHkgaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgVk0gb3IgdGhlIEhl
YXAgaXRzZWxmLiBJdCBzZWVtcyB3YXN0ZWZ1bCB0byBsb29rIGl0IHVwIGFsbCBvdmVyIGFnYWlu
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRM
aXN0ZW5lcjo6anNGdW5jdGlvbik6CisKIDIwMTQtMDItMDYgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
NjM1NDIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0
ZW5lci5jcHAJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgSlNF
dmVudExpc3RlbmVyOjpKU0V2ZW50TGlzdGVuZXIoSlNPYmplYwogICAgICwgbV9pc29sYXRlZFdv
cmxkKCZpc29sYXRlZFdvcmxkKQogewogICAgIGlmICh3cmFwcGVyKSB7Ci0gICAgICAgIEpTQzo6
SGVhcDo6d3JpdGVCYXJyaWVyKHdyYXBwZXIsIGZ1bmN0aW9uKTsKKyAgICAgICAgSlNDOjpIZWFw
OjpoZWFwKHdyYXBwZXIpLT53cml0ZUJhcnJpZXIod3JhcHBlciwgZnVuY3Rpb24pOwogICAgICAg
ICBtX2pzRnVuY3Rpb24gPSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rpb24pOwogICAg
IH0gZWxzZQogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCShyZXZpc2lvbiAxNjM1NTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtODQsNyArODQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgaWYgKCFt
X2pzRnVuY3Rpb24pIHsKICAgICAgICAgICAgIEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uID0gaW5p
dGlhbGl6ZUpTRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBK
U0M6OkhlYXA6OndyaXRlQmFycmllcihtX3dyYXBwZXIuZ2V0KCksIGZ1bmN0aW9uKTsKKyAgICAg
ICAgICAgIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIgPSBtX3dyYXBwZXIuZ2V0KCk7CisgICAgICAg
ICAgICBpZiAod3JhcHBlcikKKyAgICAgICAgICAgICAgICBKU0M6OkhlYXA6OmhlYXAod3JhcHBl
ciktPndyaXRlQmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7CiAgICAgICAgICAgICBtX2pzRnVu
Y3Rpb24gPSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rpb24pOwogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223390</attachid>
            <date>2014-02-06 15:16:15 -0800</date>
            <delta_ts>2014-02-06 16:37:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127807-20140206151606.patch</filename>
            <type>text/plain</type>
            <size>22277</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE0LTAyLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29r
cyB1cCB0aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5n
IAorICAgICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUg
YWxyZWFkeSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBp
dHNlbGYuIEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAvQ29w
eVdyaXRlQmFycmllci5oOgorICAgICAgICAoSlNDOjpDb3B5V3JpdGVCYXJyaWVyOjpzZXQpOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFycmll
cik6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgIChKU0M6OkhlYXA6OndyaXRlQmFy
cmllcik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRXcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6SklUV3JpdGVCYXJyaWVyQmFzZTo6c2V0
KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxM
SW50OjpsbGludF93cml0ZV9iYXJyaWVyX3Nsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1l
bnRzLmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvTWFwRGF0YS5jcHA6CisgICAgICAgIChKU0M6Ok1hcERhdGE6OmVuc3VyZVNwYWNlRm9yQXBw
ZW5kKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVCYXJyaWVyLmg6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmg6IEFkZGVkLgorCiAyMDE0LTAyLTA2ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTYzNTQyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIxLDYgKzEyMjEsNyBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwUHJvdG90eXBlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtSYW5kb20uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVy
LmggXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllcklubGlu
ZXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEzODgsNiArMTM4OCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXFdlYWtNYXBQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcV2Vha1JhbmRvbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHRvb2xzXENvZGVQcm9maWxpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHRvb2xzXFByb2ZpbGVUcmVlTm9kZS5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTYzNTU2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDM4LDYgKzI0MzgsOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxXcml0ZUJhcnJpZXIuaCI+CiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcV3JpdGVCYXJyaWVySW5saW5lcy5oIj4KKyAgICAgIDxGaWx0
ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cdG9vbHNcQ29kZVByb2ZpbGUuaCI+CiAgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMzMsNiArMTMz
Myw3IEBACiAJCUMyOTgxRkREMTdCQUZGNDQwMEEzQkM5OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJy
aWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5
ODFGREIxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI5RUNCMDMxODA0
RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI5RUNCMDExODA0RDBF
RDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovOyB9Owog
CQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQTdGNjg3MTYwNDMy
RDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisgICAgICAgQzJCNkQ3NTMxOEEzMzc5MzAwNEE5
MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJp
ZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQzJCOTE2QzIxNERBMDE0RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCOTE2QzExNERBMDE0
RTAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjkxNkM1MTREQTA0MEMwMENCQUM4NiAvKiBNYXJr
ZWRBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJCOTE2QzQxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgKi87
IH07CiAJCUMyQzBGN0NEMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDMEY3
Q0IxN0JCRkM1QjAwNDY0RkU0IC8qIERGR0Rlc2lyZWRUcmFuc2l0aW9ucy5jcHAgKi87IH07CkBA
IC0yNzY1LDYgKzI3NjYsNyBAQAogCQlDMjlFQ0IwMTE4MDREMEVEMDBEMkNCQjQgLyogQ3VycmVu
dFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbTsgcGF0aCA9
IEFQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDIxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRU
aGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7IHBhdGggPSBBUEkvdGVzdHMv
Q3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzJBN0Y2ODcxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAw
NEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV3JpdGVCYXJyaWVySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMkI5MTZDMTE0REEwMTRFMDBDQkFDODYgLyogTWFya2VkQWxsb2NhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZEFsbG9jYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMkI5MTZDNDE0REEwNDBDMDBDQkFDODYgLyogTWFya2VkQWxs
b2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hcmtlZEFs
bG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQzBGN0NCMTdCQkZD
NUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZFRyYW5zaXRpb25zLmNwcDsgcGF0aCA9IGRm
Zy9ERkdEZXNpcmVkVHJhbnNpdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzYyNCw2ICszNjI2LDcgQEAKIAkJN0VGNkUwQkIwRUI3QTFFQzAwNzlBRkFGIC8qIHJ1bnRp
bWUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorICAgICAgICAg
ICAgICAgQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCAq
LywKIAkJCQlCQ0Y2MDUxMTBFMjAzRUY4MDBCOUE2NEQgLyogQXJnTGlzdC5jcHAgKi8sCiAJCQkJ
QkNGNjA1MTIwRTIwM0VGODAwQjlBNjREIC8qIEFyZ0xpc3QuaCAqLywKIAkJCQlCQzI1N0RFNTBF
MUY1MUM1MDAxNkI2QzkgLyogQXJndW1lbnRzLmNwcCAqLywKQEAgLTQ2NDEsNiArNDY0NCw3IEBA
CiAJCQkJNjVDMDI4NUQxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJh
cnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgQzJCNkQ3NTMxOEEz
Mzc5MzAwNEE5MzAxIC8qIFdyaXRlQmFycmllcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9y
U3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5MiAv
KiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVdyaXRlQmFycmllci5oCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5V3JpdGVCYXJyaWVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBn
ZXQoKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVy
LCBUKiB2YWx1ZSkKKyAgICB2b2lkIHNldChWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQq
IHZhbHVlKQogICAgIHsKICAgICAgICAgdGhpcy0+bV92YWx1ZSA9IHZhbHVlOwotICAgICAgICBI
ZWFwOjp3cml0ZUJhcnJpZXIob3duZXIpOworICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihv
d25lcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0V2l0aG91dFdyaXRlQmFycmllcihUKiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA4Nyw4ICsxMDg3LDcgQEAgdm9pZCBIZWFwOjp3cml0ZUJhcnJpZXIoY29uc3QgSlND
ZWxsKiBmcgogICAgIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY29uc3RfY2FzdDxKU0Nl
bGwqPihmcm9tKSk7CiAgICAgaWYgKCFmcm9tIHx8ICFpc01hcmtlZChmcm9tKSkKICAgICAgICAg
cmV0dXJuOwotICAgIEhlYXAqIGhlYXAgPSBIZWFwOjpoZWFwKGZyb20pOwotICAgIGhlYXAtPmFk
ZFRvUmVtZW1iZXJlZFNldChmcm9tKTsKKyAgICBhZGRUb1JlbWVtYmVyZWRTZXQoZnJvbSk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShmcm9tKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsOSArMTAyLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gTWFya2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpLT5p
c1JlbWVtYmVyZWQoY2VsbCk7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIGJvb2wgaXNXcml0
ZUJhcnJpZXJFbmFibGVkKCk7Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lk
IHdyaXRlQmFycmllcihjb25zdCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVC
YXJyaWVyKGNvbnN0IEpTQ2VsbCosIEpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgdm9pZCB3cml0
ZUJhcnJpZXIoY29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CisgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgd3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCopOworICAgICAgICB2b2lkIHdyaXRl
QmFycmllcihjb25zdCBKU0NlbGwqLCBKU1ZhbHVlKTsKKyAgICAgICAgdm9pZCB3cml0ZUJhcnJp
ZXIoY29uc3QgSlNDZWxsKiwgSlNDZWxsKik7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyQnVmZmVy
JiB3cml0ZUJhcnJpZXJCdWZmZXIoKSB7IHJldHVybiBtX3dyaXRlQmFycmllckJ1ZmZlcjsgfQog
ICAgICAgICB2b2lkIGZsdXNoV3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsbCopOwpAQCAtNDAxLDcg
KzQwMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBp
ZiAoIXRvIHx8IGlzTWFya2VkKHRvKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSGVh
cDo6aGVhcChmcm9tKS0+YWRkVG9SZW1lbWJlcmVkU2V0KGZyb20pOworICAgICAgICBhZGRUb1Jl
bWVtYmVyZWRTZXQoZnJvbSk7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQgSGVhcDo6d3JpdGVC
YXJyaWVyKGNvbnN0IEpTQ2VsbCogZnJvbSwgSlNWYWx1ZSB0bykKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTYzNTU2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTc0MCw3ICsxNzQwLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldy
aXRlQmFycgogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwotICAgIGV4ZWMtPmhlYXAoKS0+d3JpdGVCYXJyaWVy
KGNlbGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsKIH0KIAogLy8gTkI6IFdl
IGRvbid0IGluY2x1ZGUgdGhlIHZhbHVlIGFzIHBhcnQgb2YgdGhlIGJhcnJpZXIgYmVjYXVzZSB0
aGUgd3JpdGUgYmFycmllciBlbGlzaW9uCkBAIC0xNzUwLDcgKzE3NTAsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVW5jb25kaXRpb25hCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0gICAgSGVh
cDo6d3JpdGVCYXJyaWVyKGNlbGwpOworICAgIHZtLT5oZWFwLndyaXRlQmFycmllcihjZWxsKTsK
IH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluaXRHbG9iYWxDb25zdChFeGVjU3Rh
dGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUV3JpdGVCYXJyaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkocmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSAr
NzcsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0KFZNJiwgQ29k
ZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZh
bHVlKQorICAgIHZvaWQgc2V0KFZNJiB2bSwgQ29kZUxvY2F0aW9uRGF0YUxhYmVsUHRyIGxvY2F0
aW9uLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIHZhbHVlKQogICAgIHsKLSAgICAgICAgSGVhcDo6
d3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVy
KG93bmVyLCB2YWx1ZSk7CiAgICAgICAgIG1fbG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAg
QVNTRVJUKCgoISFtX2xvY2F0aW9uKSAmJiBtX2xvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkg
IT0gSklUV3JpdGVCYXJyaWVyRmxhZykgfHwgKGxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkg
PT0gbV9sb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpyZXBhdGNoUG9pbnRlcihtX2xvY2F0aW9uLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE2MzU1
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0MzYsOSArMTQzNiwxMCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0
dXJuVHlwZSBsbGludF9zdGFjCiB9CiAjZW5kaWYKIAotZXh0ZXJuICJDIiB2b2lkIGxsaW50X3dy
aXRlX2JhcnJpZXJfc2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqIGNlbGwpCitleHRlcm4gIkMiIHZv
aWQgbGxpbnRfd3JpdGVfYmFycmllcl9zbG93KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBjZWxs
KQogewotICAgIEhlYXA6OndyaXRlQmFycmllcihjZWxsKTsKKyAgICBWTSYgdm0gPSBleGVjLT52
bSgpOworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNlbGwpOwogfQogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCShyZXZpc2lvbiAxNjM1NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJP
YmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCShyZXZpc2lvbiAxNjM1
NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKICNpbmNsdWRlICJXZWFrTWFwRGF0
YS5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllcklubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEuY3BwCShyZXZp
c2lvbiAxNjM1NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3IEBAIENoZWNrZWRCb29sZWFuIE1hcERh
dGE6OmVuc3VyZVNwYWNlRm9yQXAKICAgICAgICAgcmVwbGFjZUFuZFBhY2tCYWNraW5nU3RvcmUo
bmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKICAgICBlbHNlCiAgICAgICAgIHJlcGxhY2VCYWNr
aW5nU3RvcmUobmV3RW50cmllcywgcmVxdWlyZWRTaXplKTsKLSAgICBIZWFwOjp3cml0ZUJhcnJp
ZXIodGhpcyk7CisgICAgY2FsbEZyYW1lLT5oZWFwKCktPndyaXRlQmFycmllcih0aGlzKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlUYWJsZS5jcHAJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5VGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw3ICs4NCw3IEBAIFByb3BlcnR5VGFibGU6OlByb3BlcnR5VGFibGUoVk0mIHZtLCBKU0MKICAg
ICBpdGVyYXRvciBlbmQgPSB0aGlzLT5lbmQoKTsKICAgICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBi
ZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7
Ci0gICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5n
ZXQoKSk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZp
Y1ZhbHVlLmdldCgpKTsKICAgICB9CiAKICAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRz
IHZlY3Rvci4KQEAgLTEwOSw3ICsxMDksNyBAQCBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxl
KFZNJiB2bSwgSlNDCiAgICAgICAgIEFTU0VSVChjYW5JbnNlcnQoKSk7CiAgICAgICAgIHJlaW5z
ZXJ0KCppdGVyKTsKICAgICAgICAgaXRlci0+a2V5LT5yZWYoKTsKLSAgICAgICAgSGVhcDo6d3Jp
dGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKKyAgICAgICAgdm0u
aGVhcC53cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOwogICAg
IH0KIAogICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDE2MzU1NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiSlNUeXBlSW5mby5oIgogI2luY2x1ZGUg
IldhdGNocG9pbnQuaCIKICNpbmNsdWRlICJXZWFrLmgiCisjaW5jbHVkZSAiV3JpdGVCYXJyaWVy
SW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21waWxhdGlvblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAkocmV2aXNpb24g
MTYzNTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDEzICs3MSw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IGlubGlu
ZSB2b2lkIHZhbGlkYXRlQ2UKIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBiYXNlIGNsYXNzIHdpdGgg
bm8gY29uc3RydWN0b3JzIGZvciB1c2UgaW4gVW5pb25zLgogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0KFZNJiB2bSwg
Y29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCi0gICAgewotICAgICAgICBBU1NFUlQodmFs
dWUpOwotICAgICAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJlbnRKSVQoKSB8fCAh
aXNDb21waWxhdGlvblRocmVhZCgpKTsKLSAgICAgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKLSAg
ICAgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIsIHZhbHVlKTsKLSAgICB9CisgICAgdm9pZCBz
ZXQoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSk7CiAgICAgCiAgICAgLy8gVGhp
cyBpcyBtZWFudCB0byBiZSB1c2VkIGxpa2Ugb3BlcmF0b3I9LCBidXQgaXMgY2FsbGVkIGNvcHlG
cm9tIGluc3RlYWQsIGluCiAgICAgLy8gb3JkZXIgdG8ga2luZGx5IGluZm9ybSB0aGUgQysrIGNv
bXBpbGVyIHRoYXQgaXRzIGFkdmljZSBpcyBub3QgYXBwcmVjaWF0ZWQuCkBAIC04NiwyMCArODAs
MTEgQEAgcHVibGljOgogICAgICAgICBtX2NlbGwgPSBvdGhlci5tX2NlbGw7CiAgICAgfQogCi0g
ICAgdm9pZCBzZXRNYXlCZU51bGwoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSkKLSAgICAgICAgICAgIHZhbGlkYXRlQ2VsbCh2
YWx1ZSk7Ci0gICAgICAgIHNldEVhcmx5VmFsdWUodm0sIG93bmVyLCB2YWx1ZSk7Ci0gICAgfQor
ICAgIHZvaWQgc2V0TWF5QmVOdWxsKFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUp
OwogCiAgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNlZCBieSBKU0NlbGwgZHVyaW5nIGVhcmx5IGlu
aXRpYWxpc2F0aW9uCiAgICAgLy8gd2hlbiBzb21lIGJhc2ljIHR5cGVzIGFyZW4ndCB5ZXQgY29t
cGxldGVseSBpbnN0YW50aWF0ZWQKLSAgICB2b2lkIHNldEVhcmx5VmFsdWUoVk0mLCBjb25zdCBK
U0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMtPm1fY2VsbCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJp
ZXIob3duZXIsIHRoaXMtPm1fY2VsbCk7Ci0gICAgfQorICAgIHZvaWQgc2V0RWFybHlWYWx1ZShW
TSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKTsKICAgICAKICAgICBUKiBnZXQoKSBj
b25zdAogICAgIHsKQEAgLTE1MSwxMyArMTM2LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGUgPD4g
Y2xhc3MgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXQo
Vk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgfHwgIWlzQ29tcGlsYXRpb25U
aHJlYWQoKSk7Ci0gICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwotICAg
ICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIHZhbHVlKTsKLSAgICB9Ci0KKyAgICB2b2lk
IHNldChWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTVmFsdWUpOwogICAgIHZvaWQgc2V0V2l0
aG91dFdyaXRlQmFycmllcihKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV92YWx1ZSA9
IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdyaXRlQmFycmll
cklubGluZXNfaAorI2RlZmluZSBXcml0ZUJhcnJpZXJJbmxpbmVzX2gKKworI2luY2x1ZGUgIlZN
LmgiCisjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCisKK25hbWVzcGFjZSBKU0MgeworCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VD46OnNldChW
TSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQoreworICAgIEFTU0VSVCh2YWx1
ZSk7CisgICAgQVNTRVJUKCFPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgfHwgIWlzQ29t
cGlsYXRpb25UaHJlYWQoKSk7CisgICAgdmFsaWRhdGVDZWxsKHZhbHVlKTsKKyAgICBzZXRFYXJs
eVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lu
bGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8VD46OnNldE1heUJlTnVsbChWTSYgdm0sIGNvbnN0
IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgdmFs
aWRhdGVDZWxsKHZhbHVlKTsKKyAgICBzZXRFYXJseVZhbHVlKHZtLCBvd25lciwgdmFsdWUpOwor
fQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIFdyaXRlQmFycmllckJhc2U8
VD46OnNldEVhcmx5VmFsdWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkK
K3sKKyAgICB0aGlzLT5tX2NlbGwgPSByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KHZhbHVlKTsK
KyAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25lciwgdGhpcy0+bV9jZWxsKTsKK30KKworaW5s
aW5lIHZvaWQgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPjo6c2V0KFZNJiB2bSwgY29uc3QgSlND
ZWxsKiBvd25lciwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJs
ZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKKyAgICBtX3ZhbHVl
ID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKKyAgICB2bS5oZWFwLndyaXRlQmFycmllcihvd25l
ciwgdmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MgCisKKyNlbmRpZiAvLyBXcml0ZUJh
cnJpZXJJbmxpbmVzX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE0
LTAyLTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgSGVhcDo6d3JpdGVCYXJyaWVyIHNob3VsZG4ndCBiZSBzdGF0aWMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwNworCisgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIEN1cnJlbnRseSBpdCBsb29rcyB1cCB0
aGUgSGVhcCBpbiB3aGljaCB0byBmaXJlIHRoZSB3cml0ZSBiYXJyaWVyIGJ5IHVzaW5nIAorICAg
ICAgICB0aGUgY2VsbCBwYXNzZWQgdG8gaXQuIEFsbW9zdCBldmVyeSBjYWxsIHNpdGUgYWxyZWFk
eSBoYXMgYSByZWZlcmVuY2UgdG8gdGhlIAorICAgICAgICBWTSBvciB0aGUgSGVhcCBpdHNlbGYu
IEl0IHNlZW1zIHdhc3RlZnVsIHRvIGxvb2sgaXQgdXAgYWxsIG92ZXIgYWdhaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNFdmVudExpc3RlbmVyOjpKU0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpq
c0Z1bmN0aW9uKToKKwogMjAxNC0wMi0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MzU0Mi4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAko
cmV2aXNpb24gMTYzNTU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBKU0V2ZW50TGlzdGVu
ZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjCiAgICAgLCBtX2lzb2xhdGVkV29ybGQoJmlzb2xh
dGVkV29ybGQpCiB7CiAgICAgaWYgKHdyYXBwZXIpIHsKLSAgICAgICAgSlNDOjpIZWFwOjp3cml0
ZUJhcnJpZXIod3JhcHBlciwgZnVuY3Rpb24pOworICAgICAgICBKU0M6OkhlYXA6OmhlYXAod3Jh
cHBlciktPndyaXRlQmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7CiAgICAgICAgIG1fanNGdW5j
dGlvbiA9IEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PihmdW5jdGlvbik7CiAgICAgfSBlbHNlCiAg
ICAgICAgIEFTU0VSVCghZnVuY3Rpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHJldmlzaW9uIDE2MzU1NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3
ICs4NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBpZiAoIW1fanNGdW5jdGlv
bikgewogICAgICAgICAgICAgSlNDOjpKU09iamVjdCogZnVuY3Rpb24gPSBpbml0aWFsaXplSlNG
dW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgIEpTQzo6SGVhcDo6
d3JpdGVCYXJyaWVyKG1fd3JhcHBlci5nZXQoKSwgZnVuY3Rpb24pOworICAgICAgICAgICAgSlND
OjpKU09iamVjdCogd3JhcHBlciA9IG1fd3JhcHBlci5nZXQoKTsKKyAgICAgICAgICAgIGlmICh3
cmFwcGVyKQorICAgICAgICAgICAgICAgIEpTQzo6SGVhcDo6aGVhcCh3cmFwcGVyKS0+d3JpdGVC
YXJyaWVyKHdyYXBwZXIsIGZ1bmN0aW9uKTsKICAgICAgICAgICAgIG1fanNGdW5jdGlvbiA9IEpT
Qzo6V2VhazxKU0M6OkpTT2JqZWN0PihmdW5jdGlvbik7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>