<?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>53467</bug_id>
          
          <creation_ts>2011-01-31 18:23:42 -0800</creation_ts>
          <short_desc>Update JSObject storage for new marking API</short_desc>
          <delta_ts>2011-02-01 12:17:42 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>buildbot</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>342954</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-31 18:23:42 -0800</bug_when>
    <thetext>Update JSObject storage for new marking API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342955</commentid>
    <comment_count>1</comment_count>
      <attachid>80704</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-31 18:26:37 -0800</bug_when>
    <thetext>Created attachment 80704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342964</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-31 19:00:05 -0800</bug_when>
    <thetext>Attachment 80704 did not build on win:
Build output: http://queues.webkit.org/results/7687078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342990</commentid>
    <comment_count>3</comment_count>
      <attachid>80704</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-31 20:10:01 -0800</bug_when>
    <thetext>Comment on attachment 80704
Patch

LGTM but you gots to fix the windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343038</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-31 22:32:31 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 80704 [details])
&gt; LGTM but you gots to fix the windows build.
i know but needed ews ot tel me the symbol :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343292</commentid>
    <comment_count>5</comment_count>
      <attachid>80778</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-02-01 10:03:31 -0800</bug_when>
    <thetext>Created attachment 80778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343303</commentid>
    <comment_count>6</comment_count>
      <attachid>80778</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-02-01 10:12:23 -0800</bug_when>
    <thetext>Comment on attachment 80778
Patch

Will probably need one more revision to get windows ubild fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343352</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-01 11:02:59 -0800</bug_when>
    <thetext>Attachment 80778 did not build on win:
Build output: http://queues.webkit.org/results/7687238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343361</commentid>
    <comment_count>8</comment_count>
      <attachid>80790</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-02-01 11:13:50 -0800</bug_when>
    <thetext>Created attachment 80790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343374</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 11:26:36 -0800</bug_when>
    <thetext>Attachment 80704 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/BooleanObject.h:30:  The parameter name &quot;globalData&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343386</commentid>
    <comment_count>10</comment_count>
      <attachid>80790</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-01 11:38:44 -0800</bug_when>
    <thetext>Comment on attachment 80790
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343398</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 11:58:43 -0800</bug_when>
    <thetext>Attachment 80778 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/BooleanObject.h:30:  The parameter name &quot;globalData&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343404</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 12:06:08 -0800</bug_when>
    <thetext>Attachment 80790 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/BooleanObject.h:30:  The parameter name &quot;globalData&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343411</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-02-01 12:17:42 -0800</bug_when>
    <thetext>Committed r77269: &lt;http://trac.webkit.org/changeset/77269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80704</attachid>
            <date>2011-01-31 18:26:37 -0800</date>
            <delta_ts>2011-02-01 10:03:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53467-20110131182636.patch</filename>
            <type>text/plain</type>
            <size>40413</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA5MDFlNTQ1OWQ5NWY0NTE3OTBiNGNlMTgzMDU2
NTcyNzlkNjNlMmEuLjEyOWU3MWM0MzQ0ZWI4NmQ2OWRkZTZlNTViOWRiYTYxYTY2MTlmMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDExLTAxLTMxICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEpTT2JqZWN0IHN0b3JhZ2UgZm9yIG5ldyBtYXJr
aW5nIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM0NjcKKworICAgICAgICBKU09iamVjdCBubyBsb25nZXIgdXNlcyBFbmNvZGVkSlNWYWx1ZSBm
b3IgaXRzIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgIFRoaXMgcHJvZHVjZXMgYSBzdHJlYW0g
b2YgbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIFByb3BlcnR5U2xvdCBhbmQKKyAgICAgICAgYW5vbnlt
b3VzIHN0b3JhZ2UgQVBJcy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OkJvb2xl
YW5PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5Qcm90
b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UpOgorICAgICAg
ICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5
cGU6OkRhdGVQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2Jh
bE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXREaXJlY3RMb2NhdGlvbik6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpvZmZzZXRGb3JMb2NhdGlvbik6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXRBbm9ueW1vdXNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpj
bGVhckFub255bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldEFub255bW91
c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dFRoaXNUb0Fub255bW91c1ZhbHVl
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmxvY2F0aW9uRm9yT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCk6CisgICAgICAgICog
cnVudGltZS9KU1dyYXBwZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0
OjpKU1dyYXBwZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OnNldElu
dGVybmFsVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
TnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1i
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6Ok51
bWJlclByb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlTbG90OjpnZXRWYWx1ZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5
U2xvdDo6c2V0VmFsdWUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OnNldFJlZ2lzdGVy
U2xvdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3Rv
dHlwZSk6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyQmFzZTo6c2V0V2l0aG91dFdyaXRlQmFycmllcik6CisKKzIwMTEtMDEtMzEg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgogCiAgICAgICAgIEJvZ3VzIGNhbGxmcmFtZSBkdXJpbmcgc3RhY2sgdW53aW5k
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCA5N2Y3NTkw
YWEyMmY0YjhiZTFiYTdmN2M1NzFiZDEzNjcyZTI5M2YwLi44NzVlNzk3N2E1N2I2NzQxMDFlMWRm
NDdmMDZjMTEwOTQ4NWY1YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09i
amVjdDE4Z2V0UHJpbWl0aXZlTnVtYmVyRVBOU185RXhlY1N0YXRlRVJkUk5TXzdKU1ZhbHVlRQog
X19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5T
XzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09i
amVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0
dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNfN0pTVmFsdWVFICAKK19fWk4z
SlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQ
TlNfMTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIz
YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJv
cGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCAy
NzNkNDUwN2NiZmY2MDEyMDdiNDdlYzExNWJkMTIyNzkzNGI5YzViLi43MGMwZDA2NWI3MzU2N2Ey
YjNlNDBiYzI5ZTM5NzJiNDljMzUzN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgY29uc3QgQ2xh
c3NJbmZvIEFycmF5UHJvdG90eXBlOjppbmZvID0geyJBcnJheSIsICZKU0FycmF5OjppbmZvLCAw
LCBFeGVjU3RhdGU6OmEKIEFycmF5UHJvdG90eXBlOjpBcnJheVByb3RvdHlwZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSkKICAgICA6IEpTQXJyYXkoc3RydWN0dXJlKQogewotICAgIHB1dEFub255bW91c1ZhbHVlKDAs
IGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgQXJyYXlQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggYzM2YmU4MmIyYTg4Yjg1
MmJkNjM5MjZhOWM2NTY1MTJhN2MzZmJlNS4uMjFlZjViYmRlZDNhMTAwYTk4YjQzZjYzYjllMjI5
M2Y1NmUyZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIEJvb2xlYW5Db25zdHJ1Y3Rv
cjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiAvLyBFQ01BIDE1LjYuMgogSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW4oRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEJvb2xlYW5PYmplY3QqIG9i
aiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUoKSk7CisgICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3
IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOwogICAgIG9iai0+c2V0SW50
ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihhcmdzLmF0KDApLnRvQm9v
bGVhbihleGVjKSkpOwogICAgIHJldHVybiBvYmo7CiB9CkBAIC03MSw3ICs3MSw3IEBAIENhbGxU
eXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQog
CiBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCiB7Ci0gICAgQm9vbGVhbk9i
amVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBCb29sZWFuT2JqZWN0KiBv
YmogPSBuZXcgKGV4ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUoKSk7CiAgICAgb2Jq
LT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgaW1tZWRpYXRlQm9vbGVhblZh
bHVlKTsKICAgICByZXR1cm4gb2JqOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuT2JqZWN0LmNwcAppbmRleCBjOWIzODQ2NTk3ZTY4YTE4MjRmMTk3NTc3ODA3
YTc3NzJlZGFkMjgzLi43MWZmMmQyYzg2NTU3MTk5MDRiYzgzYTg1YWM4OTE2OWM4YjQ0ODVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcApA
QCAtMjcsOCArMjcsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEJvb2xlYW5PYmplY3Qp
OwogCiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbk9iamVjdDo6aW5mbyA9IHsgIkJvb2xlYW4iLCAw
LCAwLCAwIH07CiAKLUJvb2xlYW5PYmplY3Q6OkJvb2xlYW5PYmplY3QoTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3Qoc3RydWN0dXJl
KQorQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQorICAgIDogSlNXcmFwcGVy
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IDRiMDJhY2IxZGM5NTAzZDliMGI3
N2JlNjUwMTg3ZWFiYjEzMWM3MDIuLmZmMTBlZjZiYjk3OWI2ZWJlYjNjZmZlZTZjYzMxZGE1M2Nh
N2U0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5P
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0
LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBCb29sZWFu
T2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBl
eHBsaWNpdCBCb29sZWFuT2JqZWN0KE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOworICAg
ICAgICBleHBsaWNpdCBCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAKICAgICAgICAgdmlydHVhbCBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggNzMxNDU2ZWUxYjgyNDA1NmVlYzgzOGVi
YjZmNWRkMTQxZGQ0NmExMC4uNTRkNjIxY2ZkZDZiNzgxMDIxNmRhNTJmY2Q3ZmMxNGZiMzE2ODlj
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0YXRlKik7CiAvLyBFQ01BIDE1LjYu
NAogCiBCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpCi0gICAg
OiBCb29sZWFuT2JqZWN0KHN0cnVjdHVyZSkKKyAgICA6IEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9i
YWxEYXRhKCksIGpzQm9vbGVhbihmYWxzZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAppbmRleCA4MDM4YWY1Mzg3Yjk3YjllODI4NjE5MjU5
YzI4ODg0ZWNlMDdkYzMyLi40NGU4YjdkZjAxOTUzYWMzYTMxYTdhZjEzZjRmZGYyZGRmZGY5YjAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAK
QEAgLTM1LDE5ICszNSwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0IENsYXNzSW5mbyBEYXRl
SW5zdGFuY2U6OmluZm8gPSB7IkRhdGUiLCAwLCAwLCAwfTsKIAogRGF0ZUluc3RhbmNlOjpEYXRl
SW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0
cnVjdHVyZSkKLSAgICA6IEpTV3JhcHBlck9iamVjdChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBw
ZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJu
YWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTmFOKCkpOwogfQogCiBEYXRlSW5zdGFuY2U6
OkRhdGVJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVy
ZT4gc3RydWN0dXJlLCBkb3VibGUgdGltZSkKLSAgICA6IEpTV3JhcHBlck9iamVjdChzdHJ1Y3R1
cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKHRp
bWVDbGlwKHRpbWUpKSk7CiB9CiAKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0
ZSogZXhlYywgZG91YmxlIHRpbWUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5kYXRlU3RydWN0dXJlKCkpCisgICAgOiBKU1dyYXBwZXJPYmplY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1
Y3R1cmUoKSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNO
dW1iZXIodGltZUNsaXAodGltZSkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggOTRiNjlhODVkNGIyY2UyNGI5YmE5ZjgxNzEz
MzNlZTk1OGExOGVkYS4uNTgzOGI2MDczZWVmNWFmZjFjZGM1ODU3MjJlODRkZWMzZTcyNmVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
QEAgLTQzMyw3ICs0MzMsNyBAQCBEYXRlUHJvdG90eXBlOjpEYXRlUHJvdG90eXBlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTgogICAgIDogRGF0ZUlu
c3RhbmNlKGV4ZWMsIHN0cnVjdHVyZSkKIHsKICAgICAvLyBUaGUgY29uc3RydWN0b3Igd2lsbCBi
ZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9yIGhhcyBiZWVuIGJ1aWx0LgotICAg
IHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFs
dWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQogCiBib29sIERhdGVQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggMmY3OTRmOWYyNjMwMTUx
ZThlYzIyNjIwNmNkNDI2ZjdjZmI4YzdhZi4uNmZiNWNlZDMwOGMwODFhZTMwN2U0NzJiNWM3YTBk
YjkyOTBkZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
Y3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uY3BwCkBAIC0xMzIsOCArMTMyLDggQEAgYm9vbCBKU0FjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnQKICAg
ICBpZiAoc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAoSlNWYWx1ZSogbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihw
cm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWVTbG90KGxvY2F0aW9uKTsKKyAg
ICBpZiAoV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSBnZXREaXJlY3RMb2Nh
dGlvbihwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUobG9jYXRpb24tPmdl
dCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IGNlMjVmN2IzZTMyZjI5YTNmZGY4ZWE2ZmFjMzRl
ZTViZDAzZWMzZjUuLmRlZDZkODcxZmE2NTgxZjM2ZjY0M2YyMzhmYjk4NDI0Nzc3NzJiMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0yNTcsMTYgKzI1
NywxNiBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdAogICAgIH0KIAogICAgIGlmIChpIDwgbV92
ZWN0b3JMZW5ndGgpIHsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+JiB2YWx1ZVNsb3Qg
PSBzdG9yYWdlLT5tX3ZlY3RvcltpXTsKLSAgICAgICAgaWYgKHZhbHVlU2xvdCkgewotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodmFsdWVTbG90LnNsb3QoKSk7CisgICAgICAgIEpTVmFs
dWUgdmFsdWUgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXS5nZXQoKTsKKyAgICAgICAgaWYgKHZhbHVl
KSB7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChTcGFyc2VBcnJheVZhbHVlTWFwKiBt
YXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7CiAgICAgICAgIGlmIChpID49IE1JTl9T
UEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAgIFNwYXJzZUFycmF5VmFsdWVNYXA6Oml0
ZXJhdG9yIGl0ID0gbWFwLT5maW5kKGkpOwogICAgICAgICAgICAgaWYgKGl0ICE9IG1hcC0+ZW5k
KCkpIHsKLSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlU2xvdChpdC0+c2Vjb25kLnNsb3Qo
KSk7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShpdC0+c2Vjb25kLmdldCgpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0ZmY1OWUz
OWZlZDM1ZTMyYTBlMmY1Mzc5OGNmOGFiMjYyMmEyY2U2Li5jNTY5NzIyY2Y2NjI3MWUyMjBmNmI5
OWI4YzhkZjhkY2VhN2U3ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
CiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLnByb3RvdHlwZSkgewotICAgICAgICBKU1ZhbHVlKiBsb2NhdGlvbiA9IGdldERpcmVjdExv
Y2F0aW9uKHByb3BlcnR5TmFtZSk7CisgICAgICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4q
IGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKIAogICAgICAgICBp
ZiAoIWxvY2F0aW9uKSB7CiAgICAgICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gbmV3IChl
eGVjKSBKU09iamVjdChzY29wZSgpLmdsb2JhbE9iamVjdCgpLT5lbXB0eU9iamVjdFN0cnVjdHVy
ZSgpKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TgogICAgICAg
ICAgICAgbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpOwogICAgICAg
ICB9CiAKLSAgICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodGhpcywgbG9jYXRpb24sIG9mZnNldEZv
ckxvY2F0aW9uKGxvY2F0aW9uKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgbG9jYXRp
b24tPmdldCgpLCBvZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlvbikpOwogICAgIH0KIAogICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cykgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMmI1
MDY1MWU4Y2IwYTMwOTMxOTRlYmQyNzUzNTBkNDE1ZDllNDkwYy4uMTE0NzdjYjY3Mzk0NGJlODQx
N2IzM2QzODgxNjlhMTc0ZmNiZjc2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZShqc051bGwoKSksIG5ldyBKU0dsb2JhbE9iamVjdERhdGEoZGVzdHJveUpTR2xvYmFs
T2JqZWN0RGF0YSkpCiAgICAgICAgIHsKICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xv
YmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29u
bHlfYV9zaW5nbGVfc2xvdCk7Ci0gICAgICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCB0aGlz
KTsKKyAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAg
aW5pdCh0aGlzKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE1NSw3ICsxNTUsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIDogSlNWYXJpYWJsZU9iamVjdChzdHJ1Y3R1cmUsIG5l
dyBKU0dsb2JhbE9iamVjdERhdGEoZGVzdHJveUpTR2xvYmFsT2JqZWN0RGF0YSkpCiAgICAgICAg
IHsKICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNT
bG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7Ci0g
ICAgICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCB0aGlzKTsKKyAgICAgICAgICAgIHB1dFRo
aXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzKTsKICAgICAgICAg
fQogCkBAIC0xNjQsNyArMTY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICA6IEpT
VmFyaWFibGVPYmplY3Qoc3RydWN0dXJlLCBkYXRhKQogICAgICAgICB7CiAgICAgICAgICAgICBD
T01QSUxFX0FTU0VSVChKU0dsb2JhbE9iamVjdDo6QW5vbnltb3VzU2xvdENvdW50ID09IDEsIEpT
R2xvYmFsT2JqZWN0X2hhc19vbmx5X2Ffc2luZ2xlX3Nsb3QpOwotICAgICAgICAgICAgcHV0QW5v
bnltb3VzVmFsdWUoMCwgdGhpcyk7CisgICAgICAgICAgICBwdXRUaGlzVG9Bbm9ueW1vdXNWYWx1
ZSgwKTsKICAgICAgICAgICAgIGluaXQodGhpc1ZhbHVlKTsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggN2ExZTdlMTA1Yzg4Mzky
NzZiZTI2YTUxZTdjYmFkZmNkMmQ1NmVmNi4uMjc3ZmZmZjkwNDc2MjE5ZTJiZmZiNDUzYzcyM2Ux
ZDI3ZGY4OGU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cApAQCAtNTQyLDkgKzU0Miw5IEBAIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmCiAgICAgcHV0RGly
ZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZp
ZXIoZXhlYywgZnVuY3Rpb24tPm5hbWUoZXhlYykpLCBmdW5jdGlvbiwgYXR0cik7CiB9CiAKLU5F
VkVSX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5
U2xvdCYgc2xvdCwgSlNWYWx1ZSogbG9jYXRpb24pCitORVZFUl9JTkxJTkUgdm9pZCBKU09iamVj
dDo6ZmlsbEdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3QsIFdyaXRlQmFycmll
ckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKQogewotICAgIGlmIChKU09iamVjdCogZ2V0dGVyRnVu
Y3Rpb24gPSBhc0dldHRlclNldHRlcigqbG9jYXRpb24pLT5nZXR0ZXIoKSkgeworICAgIGlmIChK
U09iamVjdCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNldHRlcihsb2NhdGlvbi0+Z2V0KCkp
LT5nZXR0ZXIoKSkgewogICAgICAgICBpZiAoIXN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkK
ICAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlR2V0dGVyU2xvdCh0aGlzLCBnZXR0ZXJGdW5j
dGlvbiwgb2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKICAgICAgICAgZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggZGNkYzkzZjcyMDk4MDcxNTMx
N2IzYjFlNWQyNjlhMmU0MWQ2OGZlZi4uYjc5MjQ5YzcxNGRlNGYyZWYwODM4Nzc0YmVjN2MzMzUw
ODFlOTVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0x
NTUsMjIgKzE1NSwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBvZmZz
ZXQgIT0gV1RGOjpub3RGb3VuZCA/IGdldERpcmVjdE9mZnNldChvZmZzZXQpIDogSlNWYWx1ZSgp
OwogICAgICAgICB9CiAKLSAgICAgICAgSlNWYWx1ZSogZ2V0RGlyZWN0TG9jYXRpb24oY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25v
d24+KiBnZXREaXJlY3RMb2NhdGlvbihjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBtX3N0cnVjdHVyZS0+Z2V0KHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0ICE9IFdURjo6bm90Rm91bmQg
PyBsb2NhdGlvbkZvck9mZnNldChvZmZzZXQpIDogMDsKICAgICAgICAgfQogCi0gICAgICAgIEpT
VmFsdWUqIGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
dW5zaWduZWQmIGF0dHJpYnV0ZXMpCisgICAgICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4q
IGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWdu
ZWQmIGF0dHJpYnV0ZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpTQ2VsbCogc3BlY2lmaWNG
dW5jdGlvbjsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBtX3N0cnVjdHVyZS0+Z2V0KHBy
b3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNGdW5jdGlvbik7CiAgICAgICAgICAgICBy
ZXR1cm4gb2Zmc2V0ICE9IFdURjo6bm90Rm91bmQgPyBsb2NhdGlvbkZvck9mZnNldChvZmZzZXQp
IDogMDsKICAgICAgICAgfQogCi0gICAgICAgIHNpemVfdCBvZmZzZXRGb3JMb2NhdGlvbihKU1Zh
bHVlKiBsb2NhdGlvbikgY29uc3QKKyAgICAgICAgc2l6ZV90IG9mZnNldEZvckxvY2F0aW9uKFdy
aXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKSBjb25zdAogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gbG9jYXRpb24gLSByZWludGVycHJldF9jYXN0PGNvbnN0IEpTVmFsdWUq
Pihwcm9wZXJ0eVN0b3JhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbG9jYXRpb24gLSBwcm9w
ZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgdHJhbnNpdGlvblRvKFN0
cnVjdHVyZSopOwpAQCAtMTk4LDcgKzE5OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkIHB1dERpcmVjdE9mZnNldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHNpemVfdCBvZmZz
ZXQsIEpTVmFsdWUgdmFsdWUpIHsgcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0XS5zZXQoZ2xvYmFs
RGF0YSwgdGhpcywgdmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0VW5kZWZpbmVkQXREaXJlY3RP
ZmZzZXQoc2l6ZV90IG9mZnNldCkgeyBwcm9wZXJ0eVN0b3JhZ2UoKVtvZmZzZXRdLnNldFVuZGVm
aW5lZCgpOyB9CiAKLSAgICAgICAgdm9pZCBmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5
U2xvdCYsIEpTVmFsdWUqIGxvY2F0aW9uKTsKKyAgICAgICAgdm9pZCBmaWxsR2V0dGVyUHJvcGVy
dHlTbG90KFByb3BlcnR5U2xvdCYsIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9u
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzID0gMCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0ZXIo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAwKTsKQEAgLTIzMSwyMCArMjMxLDMw
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0
aW9uYXJ5U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAg
dm9pZCBwdXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkKKyAg
ICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHVu
c2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwotICAgICAgICAg
ICAgKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KSA9IHZhbHVlOworICAgICAgICAgICAgbG9jYXRp
b25Gb3JPZmZzZXQoaW5kZXgpLT5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFsdWUpOworICAgICAg
ICB9CisgICAgICAgIHZvaWQgY2xlYXJBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCkKKyAg
ICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1cmUtPmFub255bW91
c1Nsb3RDb3VudCgpKTsKKyAgICAgICAgICAgIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+Y2xl
YXIoKTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIGdldEFub255bW91c1ZhbHVlKHVuc2ln
bmVkIGluZGV4KSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoaW5kZXggPCBt
X3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwotICAgICAgICAgICAgcmV0dXJuICps
b2NhdGlvbkZvck9mZnNldChpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gbG9jYXRpb25Gb3JP
ZmZzZXQoaW5kZXgpLT5nZXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CiAgICAg
ICAgIAorICAgICAgICB2b2lkIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKHVuc2lnbmVkIGluZGV4
KQorICAgICAgICB7CisgICAgICAgICAgICBsb2NhdGlvbkZvck9mZnNldChpbmRleCktPnNldFdp
dGhvdXRXcml0ZUJhcnJpZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgcHJpdmF0
ZToKICAgICAgICAgLy8gTm9ib2R5IHNob3VsZCBldmVyIGFzayBhbnkgb2YgdGhlc2UgcXVlc3Rp
b25zIG9uIHNvbWV0aGluZyBhbHJlYWR5IGtub3duIHRvIGJlIGEgSlNPYmplY3QuCiAgICAgICAg
IHVzaW5nIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXI7CkBAIC0yNTQsMTggKzI2NCwxOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBnZXRTdHJpbmcoRXhlY1N0YXRlKiBleGVjKTsK
ICAgICAgICAgdm9pZCBpc09iamVjdCgpOwogICAgICAgICB2b2lkIGlzU3RyaW5nKCk7Ci0KKyAg
ICAgICAgCiAgICAgICAgIENvbnN0UHJvcGVydHlTdG9yYWdlIHByb3BlcnR5U3RvcmFnZSgpIGNv
bnN0IHsgcmV0dXJuIChpc1VzaW5nSW5saW5lU3RvcmFnZSgpID8gbV9pbmxpbmVTdG9yYWdlIDog
bV9leHRlcm5hbFN0b3JhZ2UpOyB9CiAgICAgICAgIFByb3BlcnR5U3RvcmFnZSBwcm9wZXJ0eVN0
b3JhZ2UoKSB7IHJldHVybiAoaXNVc2luZ0lubGluZVN0b3JhZ2UoKSA/IG1faW5saW5lU3RvcmFn
ZSA6IG1fZXh0ZXJuYWxTdG9yYWdlKTsgfQogCi0gICAgICAgIGNvbnN0IEpTVmFsdWUqIGxvY2F0
aW9uRm9yT2Zmc2V0KHNpemVfdCBvZmZzZXQpIGNvbnN0CisgICAgICAgIGNvbnN0IFdyaXRlQmFy
cmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uRm9yT2Zmc2V0KHNpemVfdCBvZmZzZXQpIGNvbnN0
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IEpT
VmFsdWUqPigmcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0XSk7CisgICAgICAgICAgICByZXR1cm4g
JnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF07CiAgICAgICAgIH0KIAotICAgICAgICBKU1ZhbHVl
KiBsb2NhdGlvbkZvck9mZnNldChzaXplX3Qgb2Zmc2V0KQorICAgICAgICBXcml0ZUJhcnJpZXJC
YXNlPFVua25vd24+KiBsb2NhdGlvbkZvck9mZnNldChzaXplX3Qgb2Zmc2V0KQogICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVlKj4oJnByb3BlcnR5
U3RvcmFnZSgpW29mZnNldF0pOworICAgICAgICAgICAgcmV0dXJuICZwcm9wZXJ0eVN0b3JhZ2Uo
KVtvZmZzZXRdOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBwdXREaXJlY3RJbnRlcm5hbChK
U0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVu
c2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiwgSlNDZWxs
Kik7CkBAIC0zNzMsMTEgKzM4MywxMSBAQCBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppbmhlcml0cyhj
b25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykgY29uc3QKIAogQUxXQVlTX0lOTElORSBib29sIEpT
T2JqZWN0OjppbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAo
SlNWYWx1ZSogbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpKSB7Ci0g
ICAgICAgIGlmIChtX3N0cnVjdHVyZS0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpICYmIGxv
Y2F0aW9uWzBdLmlzR2V0dGVyU2V0dGVyKCkpCisgICAgaWYgKFdyaXRlQmFycmllckJhc2U8VW5r
bm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKSkgeworICAg
ICAgICBpZiAobV9zdHJ1Y3R1cmUtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKSAmJiBsb2Nh
dGlvbi0+aXNHZXR0ZXJTZXR0ZXIoKSkKICAgICAgICAgICAgIGZpbGxHZXR0ZXJQcm9wZXJ0eVNs
b3Qoc2xvdCwgbG9jYXRpb24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzbG90LnNldFZh
bHVlU2xvdCh0aGlzLCBsb2NhdGlvbiwgb2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgbG9jYXRpb24tPmdldCgpLCBvZmZzZXRGb3JM
b2NhdGlvbihsb2NhdGlvbikpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuY3BwCmluZGV4IGU5ZDZjOTY5NGRhNzQ1NjNmZTE4ODQ0YWRlOGFmMDZhOWQxZDI5
ZGIuLmMxNmFjYjFlZWE1NTlmMWFhZWI2MTk3MWQzNWRmOTY3YTcyY2IyYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmNwcApAQCAtMzUsNyArMzUsMTAgQEAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsK
ICAgICBDT01QSUxFX0FTU0VSVChBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgQW5vbnltb3VzU2xv
dENvdW50X211c3RfYmVfb25lKTsKICAgICBBU1NFUlQoIWdsb2JhbE9iamVjdCB8fCBnbG9iYWxP
YmplY3QtPmlzR2xvYmFsT2JqZWN0KCkpOwotICAgIHB1dEFub255bW91c1ZhbHVlKEdsb2JhbE9i
amVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgaWYgKCFnbG9iYWxPYmplY3QpCisgICAgICAg
IGNsZWFyQW5vbnltb3VzVmFsdWUoR2xvYmFsT2JqZWN0U2xvdCk7CisgICAgZWxzZQorICAgICAg
ICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgR2xvYmFsT2Jq
ZWN0U2xvdCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogSlNHbG9iYWxPYmplY3QqIEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6Z2xvYmFsT2JqZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggNGVhZjJjMDQwOWUzNzhmNTlm
NDc4Yjc5N2UzNTA5NTcxYWVhODkxZi4uMGIwZDNmZDcyMmE4ZjhkNzI3NDM5NjZlNjUyM2I4MDE5
OWQwYWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVy
T2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgLy8gTnVtYmVy
LCBCb29sZWFuIGFuZCBEYXRlIHdoaWNoIGFyZSB3cmFwcGVycyBmb3IgcHJpbWl0aXZlIHR5cGVz
LgogICAgIGNsYXNzIEpTV3JhcHBlck9iamVjdCA6IHB1YmxpYyBKU09iamVjdCB7CiAgICAgcHJv
dGVjdGVkOgotICAgICAgICBleHBsaWNpdCBKU1dyYXBwZXJPYmplY3QoTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPik7CisgICAgICAgIGV4cGxpY2l0IEpTV3JhcHBlck9iamVjdChKU0dsb2Jh
bERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKIAogICAgIHB1YmxpYzoKICAg
ICAgICAgSlNWYWx1ZSBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFZh
bHVlLmdldCgpOyB9CkBAIC01MCwxMCArNTAsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFdyaXRlQmFycmllcjxVbmtub3duPiBtX2ludGVybmFsVmFsdWU7CiAgICAgfTsKIAotICAgIGlu
bGluZSBKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdChOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSkKKyAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBw
ZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1
Y3R1cmU+IHN0cnVjdHVyZSkKICAgICAgICAgOiBKU09iamVjdChzdHJ1Y3R1cmUpCiAgICAgewot
ICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCBqc051bGwoKSk7CisgICAgICAgIHB1dEFub255
bW91c1ZhbHVlKGdsb2JhbERhdGEsIDAsIGpzTnVsbCgpKTsKICAgICB9CiAKICAgICBpbmxpbmUg
dm9pZCBKU1dyYXBwZXJPYmplY3Q6OnNldEludGVybmFsVmFsdWUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgp
KTsKICAgICAgICAgbV9pbnRlcm5hbFZhbHVlLnNldChnbG9iYWxEYXRhLCB0aGlzLCB2YWx1ZSk7
Ci0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKDAsIHZhbHVlKTsKKyAgICAgICAgcHV0QW5vbnlt
b3VzVmFsdWUoZ2xvYmFsRGF0YSwgMCwgdmFsdWUpOwogICAgIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAppbmRleCAxM2VhOTIz
MDMwNTlkNWU5NmM3NzEzZGI2YTA1NzYwYWNjMmIxMDk0Li4zYzdkNGJlYjg2MzM0ODE1NTE5MTRk
YmY2MDFlMzFmMjI5NWQ0MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hFbnRyeSogZW50cnksIEpTT2JqZWN0KgogICAgIEFTU0VS
VCh0aGlzT2JqLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xvdENvdW50KCkgPiAwKTsKICAgICBB
U1NFUlQodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuaXNDZWxsKCkgJiYgYXNPYmplY3Qo
dGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuYXNDZWxsKCkpLT5pc0dsb2JhbE9iamVjdCgp
KTsKICAgICBBU1NFUlQoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKTsKLSAgICBKU1Zh
bHVlKiBsb2NhdGlvbiA9IHRoaXNPYmotPmdldERpcmVjdExvY2F0aW9uKHByb3BlcnR5TmFtZSk7
CisgICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSB0aGlzT2JqLT5nZXRE
aXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpOwogCiAgICAgaWYgKCFsb2NhdGlvbikgewogICAg
ICAgICBOYXRpdmVGdW5jdGlvbldyYXBwZXIqIGZ1bmN0aW9uOwpAQCAtOTAsNyArOTAsNyBAQCB2
b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaEVu
dHJ5KiBlbnRyeSwgSlNPYmplY3QqCiAgICAgICAgIGxvY2F0aW9uID0gdGhpc09iai0+Z2V0RGly
ZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKICAgICB9CiAKLSAgICBzbG90LnNldFZhbHVlU2xv
dCh0aGlzT2JqLCBsb2NhdGlvbiwgdGhpc09iai0+b2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24p
KTsKKyAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGxvY2F0aW9uLT5nZXQoKSwgdGhpc09iai0+
b2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMjM4ZGM5M2MzNjYzZTUzNmE5MmI2Zjg0MWI3NzNhZTA2OGQ5YzFmMi4uN2NlYzg3
NWFlYzg0MzllNDU4NjczNmYzYjQ5YTA5MWQ3MGQ5OTczZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUoRXhlY1N0YXRl
KiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBFQ01BIDE1LjcuMQogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhl
YykgTnVtYmVyT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+bnVtYmVyT2JqZWN0
U3RydWN0dXJlKCkpOworICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1i
ZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
Pm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBkb3VibGUgbiA9IGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA/IGV4ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpIDogMDsKICAgICBvYmpl
Y3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcihuKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggNTY5ZGJlZGI2Njk4MDgxMzZjNTA1
YzY2MjAwM2MyMTdhNGE4ZTQ1NC4uNjAzYzJmMGE1MDNhZjQzOWZjOTE2NmM5NDFiZDU2OWQ0MGVh
OTI5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3Qu
Y3BwCkBAIC0zMSw4ICszMSw4IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoTnVtYmVyT2Jq
ZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIE51bWJlck9iamVjdDo6aW5mbyA9IHsgIk51bWJlciIs
IDAsIDAsIDAgfTsKIAotTnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QoTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3Qoc3RydWN0dXJl
KQorTnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKKyAgICA6IEpTV3JhcHBlck9i
amVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CiB9CiAKQEAgLTQzLDcgKzQzLDcgQEAgSlNW
YWx1ZSBOdW1iZXJPYmplY3Q6OmdldEpTTnVtYmVyKCkKIAogTnVtYmVyT2JqZWN0KiBjb25zdHJ1
Y3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG51bWJlcikKIHsKLSAgICBOdW1iZXJP
YmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIE51bWJlck9iamVjdCog
b2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBv
YmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBudW1iZXIpOwogICAg
IHJldHVybiBvYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ck9iamVjdC5oCmluZGV4IGU4MmI1OTM0N2IxMWY0NjE0MjQzYmQwYTczMmNkM2YwMjJlNmM3YWQu
LjA0NGY0OTBiOWEzZTJkZmJmMDdmNGU4YjcxMTU1ZWU0ZjY5YjYxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC0yNyw3ICsyNyw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0IDogcHVibGljIEpTV3JhcHBl
ck9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBOdW1iZXJPYmplY3QoTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAgIGV4cGxpY2l0IE51bWJlck9iamVj
dChKU0dsb2JhbERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDM1NTA4OTQ3MDlkMjhiNzgw
NDg5ZTVhMDcyYzVlOTI5ZjY5MmM2YWYuLmZiZTY5OTI4ZWJmNTU1YmVlMjJjZmM5ZGU3YzI5YjRh
MzQwYmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihFeGVjU3RhdGUqKTsKIC8vIEVD
TUEgMTUuNy40CiAKIE51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1Y3R1cmUp
Ci0gICAgOiBOdW1iZXJPYmplY3Qoc3RydWN0dXJlKQorICAgIDogTnVtYmVyT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBqc051bWJlcigwKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggZGU5ZGRjOTk4MjJhNjMzZjAyNGU5NjM2MjE4OGQ5
ZDVjNGFiNmJjMC4uY2RkYTZmZjY5NmJhOTc2OTAzMTU2MGU2MGNlYTJhYzE1NDJmYTc4MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTMyLDgg
KzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgRXhlY1N0YXRlOwogICAgIGNsYXNz
IEpTT2JqZWN0OwogCi0jZGVmaW5lIEpTQ19WQUxVRV9TTE9UX01BUktFUiAwCi0jZGVmaW5lIEpT
Q19SRUdJU1RFUl9TTE9UX01BUktFUiByZWludGVycHJldF9jYXN0PEdldFZhbHVlRnVuYz4oMSkK
KyNkZWZpbmUgSlNDX1ZBTFVFX01BUktFUiAwCiAjZGVmaW5lIElOREVYX0dFVFRFUl9NQVJLRVIg
cmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1bmM+KDIpCiAjZGVmaW5lIEdFVFRFUl9GVU5DVElP
Tl9NQVJLRVIgcmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1bmM+KDMpCiAKQEAgLTY3LDEwICs2
Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiAgICAgICAg
IHsKLSAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEpTQ19WQUxVRV9TTE9UX01BUktFUikK
LSAgICAgICAgICAgICAgICByZXR1cm4gKm1fZGF0YS52YWx1ZVNsb3Q7Ci0gICAgICAgICAgICBp
ZiAobV9nZXRWYWx1ZSA9PSBKU0NfUkVHSVNURVJfU0xPVF9NQVJLRVIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuICgqbV9kYXRhLnJlZ2lzdGVyU2xvdCkuanNWYWx1ZSgpOworICAgICAgICAgICAg
aWYgKG1fZ2V0VmFsdWUgPT0gSlNDX1ZBTFVFX01BUktFUikKKyAgICAgICAgICAgICAgICByZXR1
cm4gbV92YWx1ZTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IElOREVYX0dFVFRFUl9N
QVJLRVIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZ2V0SW5kZXhWYWx1ZShleGVjLCBzbG90
QmFzZSgpLCBpbmRleCgpKTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEdFVFRFUl9G
VU5DVElPTl9NQVJLRVIpCkBAIC04MCwxMCArNzcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobV9nZXRWYWx1ZSA9PSBKU0Nf
VkFMVUVfU0xPVF9NQVJLRVIpCi0gICAgICAgICAgICAgICAgcmV0dXJuICptX2RhdGEudmFsdWVT
bG90OwotICAgICAgICAgICAgaWYgKG1fZ2V0VmFsdWUgPT0gSlNDX1JFR0lTVEVSX1NMT1RfTUFS
S0VSKQotICAgICAgICAgICAgICAgIHJldHVybiAoKm1fZGF0YS5yZWdpc3RlclNsb3QpLmpzVmFs
dWUoKTsKKyAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEpTQ19WQUxVRV9NQVJLRVIpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAgICAgICAgICBpZiAobV9nZXRWYWx1
ZSA9PSBJTkRFWF9HRVRURVJfTUFSS0VSKQogICAgICAgICAgICAgICAgIHJldHVybiBtX2dldElu
ZGV4VmFsdWUoZXhlYywgbV9zbG90QmFzZSwgbV9kYXRhLmluZGV4KTsKICAgICAgICAgICAgIGlm
IChtX2dldFZhbHVlID09IEdFVFRFUl9GVU5DVElPTl9NQVJLRVIpCkBAIC0xMDAsNDEgKzk1LDMy
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG1fb2Zmc2V0OwogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNWYWx1ZSogdmFsdWVTbG90KSAKKyAg
ICAgICAgdm9pZCBzZXRWYWx1ZShKU1ZhbHVlIHNsb3RCYXNlLCBKU1ZhbHVlIHZhbHVlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90KTsKLSAgICAgICAgICAgIGNsZWFy
QmFzZSgpOworICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgICAgIGNsZWFyT2Zm
c2V0KCk7Ci0gICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX1NMT1RfTUFSS0VSOwot
ICAgICAgICAgICAgbV9kYXRhLnZhbHVlU2xvdCA9IHZhbHVlU2xvdDsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNWYWx1ZSBzbG90QmFzZSwgSlNWYWx1
ZSogdmFsdWVTbG90KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90KTsK
LSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfVkFMVUVfU0xPVF9NQVJLRVI7CisgICAgICAg
ICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX01BUktFUjsKICAgICAgICAgICAgIG1fc2xvdEJh
c2UgPSBzbG90QmFzZTsKLSAgICAgICAgICAgIG1fZGF0YS52YWx1ZVNsb3QgPSB2YWx1ZVNsb3Q7
CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHZvaWQgc2V0VmFsdWVTbG90KEpTVmFsdWUgc2xvdEJhc2UsIEpTVmFsdWUqIHZhbHVlU2xv
dCwgc2l6ZV90IG9mZnNldCkKKyAgICAgICAgdm9pZCBzZXRWYWx1ZShKU1ZhbHVlIHNsb3RCYXNl
LCBKU1ZhbHVlIHZhbHVlLCBzaXplX3Qgb2Zmc2V0KQogICAgICAgICB7Ci0gICAgICAgICAgICBB
U1NFUlQodmFsdWVTbG90KTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfVkFMVUVfU0xP
VF9NQVJLRVI7CisgICAgICAgICAgICBBU1NFUlQodmFsdWUpOworICAgICAgICAgICAgbV9nZXRW
YWx1ZSA9IEpTQ19WQUxVRV9NQVJLRVI7CiAgICAgICAgICAgICBtX3Nsb3RCYXNlID0gc2xvdEJh
c2U7Ci0gICAgICAgICAgICBtX2RhdGEudmFsdWVTbG90ID0gdmFsdWVTbG90OworICAgICAgICAg
ICAgbV92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICAgbV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAg
ICAgICAgICBtX2NhY2hlZFByb3BlcnR5VHlwZSA9IFZhbHVlOwogICAgICAgICB9Ci0gICAgICAg
IAorCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgICAgIGNsZWFyQmFzZSgpOwogICAgICAg
ICAgICAgY2xlYXJPZmZzZXQoKTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfVkFMVUVf
U0xPVF9NQVJLRVI7CisgICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX01BUktFUjsK
ICAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIG1fZGF0YS52YWx1ZVNs
b3QgPSAmbV92YWx1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgc2V0UmVnaXN0ZXJTbG90
KFJlZ2lzdGVyKiByZWdpc3RlclNsb3QpCkBAIC0xNDIsOCArMTI4LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJTbG90KTsKICAgICAgICAgICAgIGNsZWFy
QmFzZSgpOwogICAgICAgICAgICAgY2xlYXJPZmZzZXQoKTsKLSAgICAgICAgICAgIG1fZ2V0VmFs
dWUgPSBKU0NfUkVHSVNURVJfU0xPVF9NQVJLRVI7Ci0gICAgICAgICAgICBtX2RhdGEucmVnaXN0
ZXJTbG90ID0gcmVnaXN0ZXJTbG90OworICAgICAgICAgICAgbV9nZXRWYWx1ZSA9IEpTQ19WQUxV
RV9NQVJLRVI7CisgICAgICAgICAgICBtX3ZhbHVlID0gcmVnaXN0ZXJTbG90LT5qc1ZhbHVlKCk7
CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHNldEN1c3RvbShKU1ZhbHVlIHNsb3RCYXNlLCBH
ZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUpCkBAIC0yNTEsOCArMjM3LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEpTVmFsdWUgbV9zbG90QmFzZTsKICAgICAgICAgdW5pb24gewogICAgICAgICAg
ICAgSlNPYmplY3QqIGdldHRlckZ1bmM7Ci0gICAgICAgICAgICBKU1ZhbHVlKiB2YWx1ZVNsb3Q7
Ci0gICAgICAgICAgICBSZWdpc3RlciogcmVnaXN0ZXJTbG90OwogICAgICAgICAgICAgdW5zaWdu
ZWQgaW5kZXg7CiAgICAgICAgIH0gbV9kYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCA2M2U0MTQ0NTYzMWQ1NDE4MjNkZDU1OGFh
MjgxMTM5YjZiMzQ0OTBmLi5lYjljZmEzZjA1MmI0YTE5MDQzOWNhNGMzNzE3YTVjOTAyNWJkNDQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAK
QEAgLTMwLDE5ICszMCwxOSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKFN0cmluZ09iamVj
dCk7CiBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0OjppbmZvID0geyAiU3RyaW5nIiwgMCwg
MCwgMCB9OwogCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIE5v
bk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQotICAgIDogSlNXcmFwcGVyT2Jq
ZWN0KHN0cnVjdHVyZSkKKyAgICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IHN0cnVjdHVyZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
anNFbXB0eVN0cmluZyhleGVjKSk7CiB9CiAKIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1
Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcpCi0gICAgOiBKU1dyYXBwZXJPYmplY3Qoc3RydWN0dXJl
KQorICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKICAgICBz
ZXRJbnRlcm5hbFZhbHVlKGdsb2JhbERhdGEsIHN0cmluZyk7CiB9CiAKIFN0cmluZ09iamVjdDo6
U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKLSAgICA6IEpTV3JhcHBlck9iamVj
dChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpz
U3RyaW5nKGV4ZWMsIHN0cmluZykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmNmMDc5MjE5Yjk3MjY3OTM0NjNhNGIz
NmMwM2ZkNDIyZmRlNDlmNC4uNTQ1YzkzZTAxMmQxZWI2NTkyNTU5MDFlNmFkNjhkNjRjMTlmOTVl
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ1Byb3RvdHlw
ZTo6aW5mbyA9IHsgIlN0cmluZyIsICZTdHJpbmdPYmplY3Q6OmluZm8sIDAsIEV4ZWMKIFN0cmlu
Z1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUp
CiAgICAgOiBTdHJpbmdPYmplY3QoZXhlYywgc3RydWN0dXJlKQogewotICAgIHB1dEFub255bW91
c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxs
IGJlIGFkZGVkIGxhdGVyLCBhZnRlciBTdHJpbmdDb25zdHJ1Y3RvciBoYXMgYmVlbiBidWlsdAog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVyLmgKaW5kZXggNjMwOTIwNjMxYTFmY2IxMDZiZGJkMzRmNGNlOTVhODQ1Yzc3YzQ0Zi4u
NTFmZjkzOGRjZDA4ZTE5ZDBmOGEzMGUyZjdhYWUyN2FmZjQzODQ1OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKQEAgLTk3LDYgKzk3LDggQEAgcHVi
bGljOgogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fY2VsbDsg
fQogCisgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJyaWVyKFQqIHZhbHVlKSB7IHRoaXMtPm1f
Y2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOyB9CisKIHByb3RlY3RlZDoK
ICAgICBKU0NlbGwqIG1fY2VsbDsKIH07CkBAIC0xMTksNiArMTIxLDggQEAgcHVibGljOgogICAg
IHZvaWQgY2xlYXIoKSB7IG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsgfQog
ICAgIHZvaWQgc2V0VW5kZWZpbmVkKCkgeyBtX3ZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOyB9CiAgICAgYm9vbCBpc051bWJlcigpIGNvbnN0IHsgcmV0dXJuIGdldCgpLmlz
TnVtYmVyKCk7IH0KKyAgICBib29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3QgeyByZXR1cm4gZ2V0
KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQorICAgIAogICAgIEpTVmFsdWUqIHNsb3QoKQogICAgIHsg
CiAgICAgICAgIHVuaW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMzM3ZmJhOGY4ZTI0ZDE3ODNmZDdlZjJh
ZDFkMWU3YzdlMWYzNzZiLi43MjFhYTgwMTdkMWNmM2E1MzU4NzUwYjRhNWI4Yzc1ZTVkMWNiMzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMzEgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgSlNPYmplY3Qgc3RvcmFnZSBmb3IgbmV3IG1hcmtpbmcgQVBJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzQ2NworCisg
ICAgICAgIFVwZGF0ZSBXZWJDb3JlIHRvIGhhbmRsZSBuZXcgYW5vbnltb3VzIHNsb3QgYmVoYXZp
b3VyLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisKIDIwMTEtMDEtMzEgIE1pY2hhZWwgU2Fib2Zm
ICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2Fy
ZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CmluZGV4IGIzZTBiODhlN2NkMjRmMWY4OTY3ZWM0NDI5YzkwM2Y1MGM3MjRjMzguLjQwZjk5MTBj
YTM0ZGU1OGM1NzRlYmZmZjViNDcwNzQwZTU1MzY1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
SlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWZQdHI8RE9NV2luZG93PiBkb21XaW5k
b3cpCiAKICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3Jl
YXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CiAgICAgSlNET01XaW5kb3cqIGpzRE9NV2luZG93ID0g
bmV3IChKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpIEpTRE9NV2luZG93KHN0cnVj
dHVyZS5yZWxlYXNlKCksIGRvbVdpbmRvdywgdGhpcyk7Ci0gICAgcHJvdG90eXBlLT5wdXRBbm9u
eW1vdXNWYWx1ZSgwLCBqc0RPTVdpbmRvdyk7CisgICAgcHJvdG90eXBlLT5wdXRBbm9ueW1vdXNW
YWx1ZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCAwLCBqc0RPTVdpbmRvdyk7
CiAgICAgc2V0V2luZG93KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpzRE9N
V2luZG93KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA1ODcyYjJlMDA4ZmYzMWE4ZTQ5MGFmMWU1NjZi
ODgzOWU5YzIwOGE2Li5lNzU4YjQ3NzY0NDAzNmNiN2M4MTEzZTljODFhOWFhYjczMjQ1NTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtODAsOCArODAsOCBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmluaXRTY3JpcHQoKQogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0Rl
ZGljYXRlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZShkZWRpY2F0ZWRDb250ZXh0UHJv
dG90eXBlKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyID0gbmV3IChtX2dsb2Jh
bERhdGEuZ2V0KCkpIEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dChzdHJ1Y3R1cmUucmVsZWFzZSgp
LCBtX3dvcmtlckNvbnRleHQtPnRvRGVkaWNhdGVkV29ya2VyQ29udGV4dCgpKTsKLSAgICAgICAg
d29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwgbV93b3JrZXJDb250
ZXh0V3JhcHBlcik7Ci0gICAgICAgIGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUtPnB1dEFub255
bW91c1ZhbHVlKDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOworICAgICAgICB3b3JrZXJDb250
ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtl
ckNvbnRleHRXcmFwcGVyKTsKKyAgICAgICAgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS0+cHV0
QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7
CiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VS
VChtX3dvcmtlckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29udGV4dCgpKTsKQEAgLTkwLDggKzkw
LDggQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICAgICAg
UmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0OjpjcmVh
dGVTdHJ1Y3R1cmUoc2hhcmVkQ29udGV4dFByb3RvdHlwZSk7CiAKICAgICAgICAgbV93b3JrZXJD
b250ZXh0V3JhcHBlciA9IG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1NoYXJlZFdvcmtlckNv
bnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b1NoYXJlZFdvcmtl
ckNvbnRleHQoKSk7Ci0gICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91
c1ZhbHVlKDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwotICAgICAgICBzaGFyZWRDb250ZXh0
UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsK
KyAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xv
YmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CisgICAgICAgIHNoYXJlZENvbnRl
eHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2Vy
Q29udGV4dFdyYXBwZXIpOwogI2VuZGlmCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA0NmE0NGQxOTc3M2I0
ZDc0ZTNiYzE3ZTUwZDIwZWRlOGY5MzIxZTQwLi5kMjMwOWU5MjdmY2JhYWE4NjczZmRjMjY5ZGIx
OGZkOTcyMjA2YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgIGlmICgkbnVt
Q2FjaGVkQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
Zm9yICh1bnNpZ25lZCBpID0gQmFzZTo6QW5vbnltb3VzU2xvdENvdW50OyBpIDwgQW5vbnltb3Vz
U2xvdENvdW50OyBpKyspXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHB1dEFub255bW91c1ZhbHVlKGksIEpTVmFsdWUoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpLCBpLCBKU1ZhbHVlKCkpO1xuIik7CiAgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKIApAQCAtMTYwMiw3ICsxNjAyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgY2FzdGVkVGhpcy0+cHV0QW5vbnltb3VzVmFsdWUoIiAuICRjbGFzc05hbWUgLiAi
OjoiIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIlNsb3QsIHJlc3VsdCk7XG4iKSBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0
cmlidXRlIn0pOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBj
YXN0ZWRUaGlzLT5wdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksICIgLiAkY2xh
c3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICJTbG90LCByZXN1
bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIHJlc3VsdDtcbiIpOwogCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80778</attachid>
            <date>2011-02-01 10:03:31 -0800</date>
            <delta_ts>2011-02-01 11:13:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53467-20110201100330.patch</filename>
            <type>text/plain</type>
            <size>41223</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA5MDFlNTQ1OWQ5NWY0NTE3OTBiNGNlMTgzMDU2
NTcyNzlkNjNlMmEuLjEyOWU3MWM0MzQ0ZWI4NmQ2OWRkZTZlNTViOWRiYTYxYTY2MTlmMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDExLTAxLTMxICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEpTT2JqZWN0IHN0b3JhZ2UgZm9yIG5ldyBtYXJr
aW5nIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM0NjcKKworICAgICAgICBKU09iamVjdCBubyBsb25nZXIgdXNlcyBFbmNvZGVkSlNWYWx1ZSBm
b3IgaXRzIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgIFRoaXMgcHJvZHVjZXMgYSBzdHJlYW0g
b2YgbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIFByb3BlcnR5U2xvdCBhbmQKKyAgICAgICAgYW5vbnlt
b3VzIHN0b3JhZ2UgQVBJcy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OkJvb2xl
YW5PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5Qcm90
b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UpOgorICAgICAg
ICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5
cGU6OkRhdGVQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2Jh
bE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXREaXJlY3RMb2NhdGlvbik6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpvZmZzZXRGb3JMb2NhdGlvbik6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXRBbm9ueW1vdXNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpj
bGVhckFub255bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldEFub255bW91
c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dFRoaXNUb0Fub255bW91c1ZhbHVl
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmxvY2F0aW9uRm9yT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCk6CisgICAgICAgICog
cnVudGltZS9KU1dyYXBwZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0
OjpKU1dyYXBwZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OnNldElu
dGVybmFsVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
TnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1i
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6Ok51
bWJlclByb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlTbG90OjpnZXRWYWx1ZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5
U2xvdDo6c2V0VmFsdWUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OnNldFJlZ2lzdGVy
U2xvdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3Rv
dHlwZSk6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyQmFzZTo6c2V0V2l0aG91dFdyaXRlQmFycmllcik6CisKKzIwMTEtMDEtMzEg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgogCiAgICAgICAgIEJvZ3VzIGNhbGxmcmFtZSBkdXJpbmcgc3RhY2sgdW53aW5k
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCA5N2Y3NTkw
YWEyMmY0YjhiZTFiYTdmN2M1NzFiZDEzNjcyZTI5M2YwLi44NzVlNzk3N2E1N2I2NzQxMDFlMWRm
NDdmMDZjMTEwOTQ4NWY1YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVy
dHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09i
amVjdDE4Z2V0UHJpbWl0aXZlTnVtYmVyRVBOU185RXhlY1N0YXRlRVJkUk5TXzdKU1ZhbHVlRQog
X19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5T
XzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09i
amVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0
dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNfN0pTVmFsdWVFICAKK19fWk4z
SlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQ
TlNfMTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIz
YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJv
cGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXgg
OWE1MzdiNDZhZDM0MzdiYTlkODdmOThmYWEzZWY2ZTQzMDRiMDM3Mi4uNjM5ZGQzNGZiZmEyODNm
NGM3YjQ3YWVjYWZlYzI4MGEwYjNkM2I4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTE1Niw3ICsxNTYsNiBAQCBFWFBPUlRT
CiAgICAgP2Zhc3RSZWFsbG9jQFdURkBAWUFQQVhQQVhJQFoKICAgICA/ZmFzdFN0ckR1cEBXVEZA
QFlBUEFEUEJEQFoKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCi0gICAgP2Zp
bGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJvcGVydHlTbG90QDJA
UEFWSlNWYWx1ZUAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJWUHJvZmlsZU5v
ZGVAMkBAWgogICAgID9mcmVlQFdlYWtHQ0hhbmRsZVBvb2xASlNDQEBRQUVYUEFWV2Vha0dDSGFu
ZGxlQDJAQFoKICAgICA/ZnJvbUBJZGVudGlmaWVyQEpTQ0BAU0E/QVYxMkBQQVZFeGVjU3RhdGVA
MkBIQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcAppbmRleCAyNzNkNDUwN2NiZmY2MDEyMDdiNDdlYzExNWJkMTIyNzkzNGI5YzViLi43MGMw
ZDA2NWI3MzU2N2EyYjNlNDBiYzI5ZTM5NzJiNDljMzUzN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMTcsNyArMTE3LDcg
QEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjppbmZvID0geyJBcnJheSIsICZKU0Fy
cmF5OjppbmZvLCAwLCBFeGVjU3RhdGU6OmEKIEFycmF5UHJvdG90eXBlOjpBcnJheVByb3RvdHlw
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IHN0cnVjdHVyZSkKICAgICA6IEpTQXJyYXkoc3RydWN0dXJlKQogewotICAgIHB1dEFub255
bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFs
T2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJvb2wgQXJyYXlQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggYzM2
YmU4MmIyYTg4Yjg1MmJkNjM5MjZhOWM2NTY1MTJhN2MzZmJlNS4uMjFlZjViYmRlZDNhMTAwYTk4
YjQzZjYzYjllMjI5M2Y1NmUyZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIEJvb2xl
YW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iCiAvLyBFQ01BIDE1LjYuMgogSlNPYmplY3QqIGNvbnN0cnVjdEJv
b2xlYW4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEJvb2xl
YW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUoKSk7CisgICAgQm9vbGVhbk9iamVj
dCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJlKCkpOwogICAg
IG9iai0+c2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihhcmdz
LmF0KDApLnRvQm9vbGVhbihleGVjKSkpOwogICAgIHJldHVybiBvYmo7CiB9CkBAIC03MSw3ICs3
MSw3IEBAIENhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEm
IGNhbGxEYXRhKQogCiBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29s
ZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCiB7Ci0g
ICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBCb29s
ZWFuT2JqZWN0KiBvYmogPSBuZXcgKGV4ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUo
KSk7CiAgICAgb2JqLT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgaW1tZWRp
YXRlQm9vbGVhblZhbHVlKTsKICAgICByZXR1cm4gb2JqOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcAppbmRleCBjOWIzODQ2NTk3ZTY4YTE4
MjRmMTk3NTc3ODA3YTc3NzJlZGFkMjgzLi43MWZmMmQyYzg2NTU3MTk5MDRiYzgzYTg1YWM4OTE2
OWM4YjQ0ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29s
ZWFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
T2JqZWN0LmNwcApAQCAtMjcsOCArMjcsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEJv
b2xlYW5PYmplY3QpOwogCiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbk9iamVjdDo6aW5mbyA9IHsg
IkJvb2xlYW4iLCAwLCAwLCAwIH07CiAKLUJvb2xlYW5PYmplY3Q6OkJvb2xlYW5PYmplY3QoTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmpl
Y3Qoc3RydWN0dXJlKQorQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQorICAg
IDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IDRiMDJhY2Ix
ZGM5NTAzZDliMGI3N2JlNjUwMTg3ZWFiYjEzMWM3MDIuLmZmMTBlZjZiYjk3OWI2ZWJlYjNjZmZl
ZTZjYzMxZGE1M2NhN2U0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuT2JqZWN0LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBj
bGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHVibGlj
OgotICAgICAgICBleHBsaWNpdCBCb29sZWFuT2JqZWN0KE5vbk51bGxQYXNzUmVmUHRyPFN0cnVj
dHVyZT4pOworICAgICAgICBleHBsaWNpdCBCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAKICAgICAgICAgdmlydHVh
bCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggNzMxNDU2ZWUxYjgy
NDA1NmVlYzgzOGViYjZmNWRkMTQxZGQ0NmExMC4uNTRkNjIxY2ZkZDZiNzgxMDIxNmRhNTJmY2Q3
ZmMxNGZiMzE2ODljMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0YXRlKik7CiAv
LyBFQ01BIDE1LjYuNAogCiBCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90eXBlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rpb25TdHJ1
Y3R1cmUpCi0gICAgOiBCb29sZWFuT2JqZWN0KHN0cnVjdHVyZSkKKyAgICA6IEJvb2xlYW5PYmpl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1
ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihmYWxzZSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAppbmRleCA4MDM4YWY1Mzg3Yjk3
YjllODI4NjE5MjU5YzI4ODg0ZWNlMDdkYzMyLi40NGU4YjdkZjAxOTUzYWMzYTMxYTdhZjEzZjRm
ZGYyZGRmZGY5YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5jcHAKQEAgLTM1LDE5ICszNSwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0IENs
YXNzSW5mbyBEYXRlSW5zdGFuY2U6OmluZm8gPSB7IkRhdGUiLCAwLCAwLCAwfTsKIAogRGF0ZUlu
c3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSkKLSAgICA6IEpTV3JhcHBlck9iamVjdChzdHJ1Y3R1cmUpCisg
ICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAg
ICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTmFOKCkpOwogfQogCiBE
YXRlSW5zdGFuY2U6OkRhdGVJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBkb3VibGUgdGltZSkKLSAgICA6IEpTV3JhcHBlck9i
amVjdChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCks
IGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CiB9CiAKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3Rh
bmNlKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHRpbWUpCi0gICAgOiBKU1dyYXBwZXJPYmplY3Qo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5kYXRlU3RydWN0dXJlKCkpCisgICAgOiBKU1dy
YXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPmRhdGVTdHJ1Y3R1cmUoKSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2Jh
bERhdGEoKSwganNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggOTRiNjlhODVkNGIyY2Uy
NGI5YmE5ZjgxNzEzMzNlZTk1OGExOGVkYS4uNTgzOGI2MDczZWVmNWFmZjFjZGM1ODU3MjJlODRk
ZWMzZTcyNmVjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKQEAgLTQzMyw3ICs0MzMsNyBAQCBEYXRlUHJvdG90eXBlOjpEYXRlUHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTgog
ICAgIDogRGF0ZUluc3RhbmNlKGV4ZWMsIHN0cnVjdHVyZSkKIHsKICAgICAvLyBUaGUgY29uc3Ry
dWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9yIGhhcyBiZWVu
IGJ1aWx0LgotICAgIHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0
QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQog
CiBib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggMmY3
OTRmOWYyNjMwMTUxZThlYzIyNjIwNmNkNDI2ZjdjZmI4YzdhZi4uNmZiNWNlZDMwOGMwODFhZTMw
N2U0NzJiNWM3YTBkYjkyOTBkZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xMzIsOCArMTMyLDggQEAgYm9vbCBKU0FjdGl2YXRp
b246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnQKICAgICBpZiAoc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoSlNWYWx1ZSogbG9jYXRpb24gPSBnZXREaXJl
Y3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWVTbG90KGxv
Y2F0aW9uKTsKKyAgICBpZiAoV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSBn
ZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
bG9jYXRpb24tPmdldCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IGNlMjVmN2IzZTMyZjI5YTNm
ZGY4ZWE2ZmFjMzRlZTViZDAzZWMzZjUuLmRlZDZkODcxZmE2NTgxZjM2ZjY0M2YyMzhmYjk4NDI0
Nzc3NzJiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBA
IC0yNTcsMTYgKzI1NywxNiBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdAogICAgIH0KIAogICAg
IGlmIChpIDwgbV92ZWN0b3JMZW5ndGgpIHsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+
JiB2YWx1ZVNsb3QgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXTsKLSAgICAgICAgaWYgKHZhbHVlU2xv
dCkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodmFsdWVTbG90LnNsb3QoKSk7Cisg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXS5nZXQoKTsKKyAgICAg
ICAgaWYgKHZhbHVlKSB7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHZhbHVlKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChTcGFyc2VBcnJh
eVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7CiAgICAgICAgIGlm
IChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAgIFNwYXJzZUFycmF5
VmFsdWVNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5kKGkpOwogICAgICAgICAgICAgaWYgKGl0
ICE9IG1hcC0+ZW5kKCkpIHsKLSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVlU2xvdChpdC0+
c2Vjb25kLnNsb3QoKSk7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShpdC0+c2Vjb25k
LmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApp
bmRleCA0ZmY1OWUzOWZlZDM1ZTMyYTBlMmY1Mzc5OGNmOGFiMjYyMmEyY2U2Li5jNTY5NzIyY2Y2
NjI3MWUyMjBmNmI5OWI4YzhkZjhkY2VhN2U3ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIGJvb2wgSlNGdW5j
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOCiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewotICAgICAgICBKU1ZhbHVlKiBsb2NhdGlvbiA9
IGdldERpcmVjdExvY2F0aW9uKHByb3BlcnR5TmFtZSk7CisgICAgICAgIFdyaXRlQmFycmllckJh
c2U8VW5rbm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsK
IAogICAgICAgICBpZiAoIWxvY2F0aW9uKSB7CiAgICAgICAgICAgICBKU09iamVjdCogcHJvdG90
eXBlID0gbmV3IChleGVjKSBKU09iamVjdChzY29wZSgpLmdsb2JhbE9iamVjdCgpLT5lbXB0eU9i
amVjdFN0cnVjdHVyZSgpKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBib29sIEpTRnVuY3Rpb246Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TgogICAgICAgICAgICAgbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5h
bWUpOwogICAgICAgICB9CiAKLSAgICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodGhpcywgbG9jYXRp
b24sIG9mZnNldEZvckxvY2F0aW9uKGxvY2F0aW9uKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpcywgbG9jYXRpb24tPmdldCgpLCBvZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlvbikpOwogICAg
IH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3Vt
ZW50cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKaW5kZXggMmI1MDY1MWU4Y2IwYTMwOTMxOTRlYmQyNzUzNTBkNDE1ZDllNDkwYy4uMTE0Nzdj
YjY3Mzk0NGJlODQxN2IzM2QzODgxNjlhMTc0ZmNiZjc2YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoSlNHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG5ldyBKU0dsb2JhbE9iamVjdERhdGEoZGVz
dHJveUpTR2xvYmFsT2JqZWN0RGF0YSkpCiAgICAgICAgIHsKICAgICAgICAgICAgIENPTVBJTEVf
QVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxP
YmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7Ci0gICAgICAgICAgICBwdXRBbm9ueW1vdXNW
YWx1ZSgwLCB0aGlzKTsKKyAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwog
ICAgICAgICAgICAgaW5pdCh0aGlzKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE1NSw3ICsx
NTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIDogSlNWYXJpYWJsZU9iamVjdChz
dHJ1Y3R1cmUsIG5ldyBKU0dsb2JhbE9iamVjdERhdGEoZGVzdHJveUpTR2xvYmFsT2JqZWN0RGF0
YSkpCiAgICAgICAgIHsKICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0
OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5n
bGVfc2xvdCk7Ci0gICAgICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCB0aGlzKTsKKyAgICAg
ICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlz
KTsKICAgICAgICAgfQogCkBAIC0xNjQsNyArMTY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICA6IEpTVmFyaWFibGVPYmplY3Qoc3RydWN0dXJlLCBkYXRhKQogICAgICAgICB7CiAg
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVChKU0dsb2JhbE9iamVjdDo6QW5vbnltb3VzU2xvdENv
dW50ID09IDEsIEpTR2xvYmFsT2JqZWN0X2hhc19vbmx5X2Ffc2luZ2xlX3Nsb3QpOwotICAgICAg
ICAgICAgcHV0QW5vbnltb3VzVmFsdWUoMCwgdGhpcyk7CisgICAgICAgICAgICBwdXRUaGlzVG9B
bm9ueW1vdXNWYWx1ZSgwKTsKICAgICAgICAgICAgIGluaXQodGhpc1ZhbHVlKTsKICAgICAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggN2Ex
ZTdlMTA1Yzg4MzkyNzZiZTI2YTUxZTdjYmFkZmNkMmQ1NmVmNi4uMjc3ZmZmZjkwNDc2MjE5ZTJi
ZmZiNDUzYzcyM2UxZDI3ZGY4OGU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtNTQyLDkgKzU0Miw5IEBAIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVj
dEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBm
CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksIElkZW50aWZpZXIoZXhlYywgZnVuY3Rpb24tPm5hbWUoZXhlYykpLCBmdW5jdGlvbiwgYXR0
cik7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlT
bG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSogbG9jYXRpb24pCitORVZFUl9JTkxJTkUg
dm9pZCBKU09iamVjdDo6ZmlsbEdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3Qs
IFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKQogewotICAgIGlmIChKU09iamVj
dCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNldHRlcigqbG9jYXRpb24pLT5nZXR0ZXIoKSkg
eworICAgIGlmIChKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNldHRlcihsb2Nh
dGlvbi0+Z2V0KCkpLT5nZXR0ZXIoKSkgewogICAgICAgICBpZiAoIXN0cnVjdHVyZSgpLT5pc0Rp
Y3Rpb25hcnkoKSkKICAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlR2V0dGVyU2xvdCh0aGlz
LCBnZXR0ZXJGdW5jdGlvbiwgb2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKICAgICAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggZGNkYzkz
ZjcyMDk4MDcxNTMxN2IzYjFlNWQyNjlhMmU0MWQ2OGZlZi4uYjc5MjQ5YzcxNGRlNGYyZWYwODM4
Nzc0YmVjN2MzMzUwODFlOTVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC0xNTUsMjIgKzE1NSwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHJldHVybiBvZmZzZXQgIT0gV1RGOjpub3RGb3VuZCA/IGdldERpcmVjdE9mZnNldChvZmZzZXQp
IDogSlNWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgSlNWYWx1ZSogZ2V0RGlyZWN0TG9j
YXRpb24oY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICBXcml0ZUJhcnJp
ZXJCYXNlPFVua25vd24+KiBnZXREaXJlY3RMb2NhdGlvbihjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBtX3N0cnVj
dHVyZS0+Z2V0KHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0ICE9IFdU
Rjo6bm90Rm91bmQgPyBsb2NhdGlvbkZvck9mZnNldChvZmZzZXQpIDogMDsKICAgICAgICAgfQog
Ci0gICAgICAgIEpTVmFsdWUqIGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpCisgICAgICAgIFdyaXRlQmFycmllckJh
c2U8VW5rbm93bj4qIGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpTQ2Vs
bCogc3BlY2lmaWNGdW5jdGlvbjsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBtX3N0cnVj
dHVyZS0+Z2V0KHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNGdW5jdGlvbik7CiAg
ICAgICAgICAgICByZXR1cm4gb2Zmc2V0ICE9IFdURjo6bm90Rm91bmQgPyBsb2NhdGlvbkZvck9m
ZnNldChvZmZzZXQpIDogMDsKICAgICAgICAgfQogCi0gICAgICAgIHNpemVfdCBvZmZzZXRGb3JM
b2NhdGlvbihKU1ZhbHVlKiBsb2NhdGlvbikgY29uc3QKKyAgICAgICAgc2l6ZV90IG9mZnNldEZv
ckxvY2F0aW9uKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKSBjb25zdAogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbG9jYXRpb24gLSByZWludGVycHJldF9jYXN0PGNv
bnN0IEpTVmFsdWUqPihwcm9wZXJ0eVN0b3JhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbG9j
YXRpb24gLSBwcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgdHJh
bnNpdGlvblRvKFN0cnVjdHVyZSopOwpAQCAtMTk4LDcgKzE5OCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB2b2lkIHB1dERpcmVjdE9mZnNldChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IHNpemVfdCBvZmZzZXQsIEpTVmFsdWUgdmFsdWUpIHsgcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0
XS5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFsdWUpOyB9CiAgICAgICAgIHZvaWQgcHV0VW5kZWZp
bmVkQXREaXJlY3RPZmZzZXQoc2l6ZV90IG9mZnNldCkgeyBwcm9wZXJ0eVN0b3JhZ2UoKVtvZmZz
ZXRdLnNldFVuZGVmaW5lZCgpOyB9CiAKLSAgICAgICAgdm9pZCBmaWxsR2V0dGVyUHJvcGVydHlT
bG90KFByb3BlcnR5U2xvdCYsIEpTVmFsdWUqIGxvY2F0aW9uKTsKKyAgICAgICAgdm9pZCBmaWxs
R2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYsIFdyaXRlQmFycmllckJhc2U8VW5rbm93
bj4qIGxvY2F0aW9uKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1
bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gMCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWZpbmVTZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAwKTsKQEAgLTIz
MSwyMCArMjMxLDMwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9zdHJ1Y3R1cmUt
PmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICB9
CiAKLSAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRleCwgSlNWYWx1
ZSB2YWx1ZSkKKyAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICB7CiAgICAg
ICAgICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkp
OwotICAgICAgICAgICAgKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KSA9IHZhbHVlOworICAgICAg
ICAgICAgbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFs
dWUpOworICAgICAgICB9CisgICAgICAgIHZvaWQgY2xlYXJBbm9ueW1vdXNWYWx1ZSh1bnNpZ25l
ZCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwgbV9zdHJ1Y3R1
cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKKyAgICAgICAgICAgIGxvY2F0aW9uRm9yT2Zmc2V0
KGluZGV4KS0+Y2xlYXIoKTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIGdldEFub255bW91
c1ZhbHVlKHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwotICAgICAgICAg
ICAgcmV0dXJuICpsb2NhdGlvbkZvck9mZnNldChpbmRleCk7CisgICAgICAgICAgICByZXR1cm4g
bG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5nZXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IDA7CiAgICAgICAgIAorICAgICAgICB2b2lkIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKHVu
c2lnbmVkIGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBsb2NhdGlvbkZvck9mZnNldChp
bmRleCktPnNldFdpdGhvdXRXcml0ZUJhcnJpZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAg
CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gTm9ib2R5IHNob3VsZCBldmVyIGFzayBhbnkgb2Yg
dGhlc2UgcXVlc3Rpb25zIG9uIHNvbWV0aGluZyBhbHJlYWR5IGtub3duIHRvIGJlIGEgSlNPYmpl
Y3QuCiAgICAgICAgIHVzaW5nIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXI7CkBAIC0yNTQsMTgg
KzI2NCwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBnZXRTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKTsKICAgICAgICAgdm9pZCBpc09iamVjdCgpOwogICAgICAgICB2b2lkIGlzU3Ry
aW5nKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIENvbnN0UHJvcGVydHlTdG9yYWdlIHByb3BlcnR5
U3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuIChpc1VzaW5nSW5saW5lU3RvcmFnZSgpID8gbV9pbmxp
bmVTdG9yYWdlIDogbV9leHRlcm5hbFN0b3JhZ2UpOyB9CiAgICAgICAgIFByb3BlcnR5U3RvcmFn
ZSBwcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAoaXNVc2luZ0lubGluZVN0b3JhZ2UoKSA/IG1f
aW5saW5lU3RvcmFnZSA6IG1fZXh0ZXJuYWxTdG9yYWdlKTsgfQogCi0gICAgICAgIGNvbnN0IEpT
VmFsdWUqIGxvY2F0aW9uRm9yT2Zmc2V0KHNpemVfdCBvZmZzZXQpIGNvbnN0CisgICAgICAgIGNv
bnN0IFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uRm9yT2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNvbnN0IEpTVmFsdWUqPigmcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0XSk7CisgICAgICAg
ICAgICByZXR1cm4gJnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF07CiAgICAgICAgIH0KIAotICAg
ICAgICBKU1ZhbHVlKiBsb2NhdGlvbkZvck9mZnNldChzaXplX3Qgb2Zmc2V0KQorICAgICAgICBX
cml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiBsb2NhdGlvbkZvck9mZnNldChzaXplX3Qgb2Zmc2V0
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVl
Kj4oJnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF0pOworICAgICAgICAgICAgcmV0dXJuICZwcm9w
ZXJ0eVN0b3JhZ2UoKVtvZmZzZXRdOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBwdXREaXJl
Y3RJbnRlcm5hbChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlT
bG90JiwgSlNDZWxsKik7CkBAIC0zNzMsMTEgKzM4MywxMSBAQCBpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppbmhlcml0cyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykgY29uc3QKIAogQUxXQVlTX0lO
TElORSBib29sIEpTT2JqZWN0OjppbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKLSAgICBpZiAoSlNWYWx1ZSogbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0
eU5hbWUpKSB7Ci0gICAgICAgIGlmIChtX3N0cnVjdHVyZS0+aGFzR2V0dGVyU2V0dGVyUHJvcGVy
dGllcygpICYmIGxvY2F0aW9uWzBdLmlzR2V0dGVyU2V0dGVyKCkpCisgICAgaWYgKFdyaXRlQmFy
cmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlO
YW1lKSkgeworICAgICAgICBpZiAobV9zdHJ1Y3R1cmUtPmhhc0dldHRlclNldHRlclByb3BlcnRp
ZXMoKSAmJiBsb2NhdGlvbi0+aXNHZXR0ZXJTZXR0ZXIoKSkKICAgICAgICAgICAgIGZpbGxHZXR0
ZXJQcm9wZXJ0eVNsb3Qoc2xvdCwgbG9jYXRpb24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBzbG90LnNldFZhbHVlU2xvdCh0aGlzLCBsb2NhdGlvbiwgb2Zmc2V0Rm9yTG9jYXRpb24obG9j
YXRpb24pKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgbG9jYXRpb24tPmdldCgp
LCBvZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlvbikpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IGU5ZDZjOTY5NGRhNzQ1NjNmZTE4ODQ0YWRl
OGFmMDZhOWQxZDI5ZGIuLmMxNmFjYjFlZWE1NTlmMWFhZWI2MTk3MWQzNWRmOTY3YTcyY2IyYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEds
b2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzUsNyArMzUsMTAgQEAgSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKIHsKICAgICBDT01QSUxFX0FTU0VSVChBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwg
QW5vbnltb3VzU2xvdENvdW50X211c3RfYmVfb25lKTsKICAgICBBU1NFUlQoIWdsb2JhbE9iamVj
dCB8fCBnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkpOwotICAgIHB1dEFub255bW91c1Zh
bHVlKEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgaWYgKCFnbG9iYWxPYmpl
Y3QpCisgICAgICAgIGNsZWFyQW5vbnltb3VzVmFsdWUoR2xvYmFsT2JqZWN0U2xvdCk7CisgICAg
ZWxzZQorICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgR2xvYmFsT2JqZWN0U2xvdCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogSlNHbG9iYWxPYmplY3Qq
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6Z2xvYmFsT2JqZWN0KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggNGVhZjJj
MDQwOWUzNzhmNTlmNDc4Yjc5N2UzNTA5NTcxYWVhODkxZi4uMGIwZDNmZDcyMmE4ZjhkNzI3NDM5
NjZlNjUyM2I4MDE5OWQwYWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgLy8gTnVtYmVyLCBCb29sZWFuIGFuZCBEYXRlIHdoaWNoIGFyZSB3cmFwcGVycyBmb3IgcHJp
bWl0aXZlIHR5cGVzLgogICAgIGNsYXNzIEpTV3JhcHBlck9iamVjdCA6IHB1YmxpYyBKU09iamVj
dCB7CiAgICAgcHJvdGVjdGVkOgotICAgICAgICBleHBsaWNpdCBKU1dyYXBwZXJPYmplY3QoTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAgIGV4cGxpY2l0IEpTV3JhcHBlck9i
amVjdChKU0dsb2JhbERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+KTsKIAogICAg
IHB1YmxpYzoKICAgICAgICAgSlNWYWx1ZSBpbnRlcm5hbFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlcm5hbFZhbHVlLmdldCgpOyB9CkBAIC01MCwxMCArNTAsMTAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2ludGVybmFsVmFsdWU7CiAgICAg
fTsKIAotICAgIGlubGluZSBKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdChOb25OdWxs
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKKyAgICBpbmxpbmUgSlNXcmFwcGVyT2Jq
ZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKICAgICAgICAgOiBKU09iamVjdChzdHJ1Y3R1
cmUpCiAgICAgewotICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCBqc051bGwoKSk7CisgICAg
ICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIDAsIGpzTnVsbCgpKTsKICAgICB9CiAK
ICAgICBpbmxpbmUgdm9pZCBKU1dyYXBwZXJPYmplY3Q6OnNldEludGVybmFsVmFsdWUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNjEsNyArNjEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgQVNTRVJUKCF2YWx1
ZS5pc09iamVjdCgpKTsKICAgICAgICAgbV9pbnRlcm5hbFZhbHVlLnNldChnbG9iYWxEYXRhLCB0
aGlzLCB2YWx1ZSk7Ci0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKDAsIHZhbHVlKTsKKyAgICAg
ICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsRGF0YSwgMCwgdmFsdWUpOwogICAgIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcApp
bmRleCAxM2VhOTIzMDMwNTlkNWU5NmM3NzEzZGI2YTA1NzYwYWNjMmIxMDk0Li4zYzdkNGJlYjg2
MzM0ODE1NTE5MTRkYmY2MDFlMzFmMjI5NWQ0MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBzZXRVcFN0YXRpY0Z1bmN0
aW9uU2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hFbnRyeSogZW50cnksIEpTT2JqZWN0
KgogICAgIEFTU0VSVCh0aGlzT2JqLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xvdENvdW50KCkg
PiAwKTsKICAgICBBU1NFUlQodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuaXNDZWxsKCkg
JiYgYXNPYmplY3QodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuYXNDZWxsKCkpLT5pc0ds
b2JhbE9iamVjdCgpKTsKICAgICBBU1NFUlQoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9u
KTsKLSAgICBKU1ZhbHVlKiBsb2NhdGlvbiA9IHRoaXNPYmotPmdldERpcmVjdExvY2F0aW9uKHBy
b3BlcnR5TmFtZSk7CisgICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSB0
aGlzT2JqLT5nZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpOwogCiAgICAgaWYgKCFsb2Nh
dGlvbikgewogICAgICAgICBOYXRpdmVGdW5jdGlvbldyYXBwZXIqIGZ1bmN0aW9uOwpAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNPYmplY3QqCiAgICAgICAgIGxvY2F0aW9uID0gdGhp
c09iai0+Z2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKICAgICB9CiAKLSAgICBzbG90
LnNldFZhbHVlU2xvdCh0aGlzT2JqLCBsb2NhdGlvbiwgdGhpc09iai0+b2Zmc2V0Rm9yTG9jYXRp
b24obG9jYXRpb24pKTsKKyAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGxvY2F0aW9uLT5nZXQo
KSwgdGhpc09iai0+b2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggMjM4ZGM5M2MzNjYzZTUzNmE5MmI2Zjg0MWI3NzNhZTA2OGQ5
YzFmMi4uN2NlYzg3NWFlYzg0MzllNDU4NjczNmYzYjQ5YTA5MWQ3MGQ5OTczZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApA
QCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFs
dWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBFQ01BIDE1Ljcu
MQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51bWJl
ckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmplY3QqIG9iamVj
dCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gbmV3
IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBkb3VibGUgbiA9IGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpIDog
MDsKICAgICBvYmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051
bWJlcihuKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggNTY5ZGJlZGI2
Njk4MDgxMzZjNTA1YzY2MjAwM2MyMTdhNGE4ZTQ1NC4uNjAzYzJmMGE1MDNhZjQzOWZjOTE2NmM5
NDFiZDU2OWQ0MGVhOTI5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJPYmplY3QuY3BwCkBAIC0zMSw4ICszMSw4IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoTnVtYmVyT2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIE51bWJlck9iamVjdDo6aW5mbyA9
IHsgIk51bWJlciIsIDAsIDAsIDAgfTsKIAotTnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QoTm9u
TnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dyYXBwZXJPYmpl
Y3Qoc3RydWN0dXJlKQorTnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKKyAgICA6
IEpTV3JhcHBlck9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CiB9CiAKQEAgLTQzLDcg
KzQzLDcgQEAgSlNWYWx1ZSBOdW1iZXJPYmplY3Q6OmdldEpTTnVtYmVyKCkKIAogTnVtYmVyT2Jq
ZWN0KiBjb25zdHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG51bWJlcikKIHsK
LSAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIE51
bWJlck9iamVjdCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVy
ZSgpKTsKICAgICBvYmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBu
dW1iZXIpOwogICAgIHJldHVybiBvYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlck9iamVjdC5oCmluZGV4IGU4MmI1OTM0N2IxMWY0NjE0MjQzYmQwYTczMmNk
M2YwMjJlNmM3YWQuLjA0NGY0OTBiOWEzZTJkZmJmMDdmNGU4YjcxMTU1ZWU0ZjY5YjYxMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC0yNyw3
ICsyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0IDogcHVi
bGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBOdW1i
ZXJPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAgIGV4cGxpY2l0
IE51bWJlck9iamVjdChKU0dsb2JhbERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
KTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDM1NTA4
OTQ3MDlkMjhiNzgwNDg5ZTVhMDcyYzVlOTI5ZjY5MmM2YWYuLmZiZTY5OTI4ZWJmNTU1YmVlMjJj
ZmM5ZGU3YzI5YjRhMzQwYmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbihFeGVjU3Rh
dGUqKTsKIC8vIEVDTUEgMTUuNy40CiAKIE51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVuY3Rp
b25TdHJ1Y3R1cmUpCi0gICAgOiBOdW1iZXJPYmplY3Qoc3RydWN0dXJlKQorICAgIDogTnVtYmVy
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIHNldEludGVybmFs
VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcigwKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggZGU5ZGRjOTk4MjJhNjMzZjAy
NGU5NjM2MjE4OGQ5ZDVjNGFiNmJjMC4uY2RkYTZmZjY5NmJhOTc2OTAzMTU2MGU2MGNlYTJhYzE1
NDJmYTc4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmgKQEAgLTMyLDggKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgRXhlY1N0YXRl
OwogICAgIGNsYXNzIEpTT2JqZWN0OwogCi0jZGVmaW5lIEpTQ19WQUxVRV9TTE9UX01BUktFUiAw
Ci0jZGVmaW5lIEpTQ19SRUdJU1RFUl9TTE9UX01BUktFUiByZWludGVycHJldF9jYXN0PEdldFZh
bHVlRnVuYz4oMSkKKyNkZWZpbmUgSlNDX1ZBTFVFX01BUktFUiAwCiAjZGVmaW5lIElOREVYX0dF
VFRFUl9NQVJLRVIgcmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1bmM+KDIpCiAjZGVmaW5lIEdF
VFRFUl9GVU5DVElPTl9NQVJLRVIgcmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1bmM+KDMpCiAK
QEAgLTY3LDEwICs2Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTVmFsdWUgZ2V0
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNv
bnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEpTQ19WQUxVRV9T
TE9UX01BUktFUikKLSAgICAgICAgICAgICAgICByZXR1cm4gKm1fZGF0YS52YWx1ZVNsb3Q7Ci0g
ICAgICAgICAgICBpZiAobV9nZXRWYWx1ZSA9PSBKU0NfUkVHSVNURVJfU0xPVF9NQVJLRVIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuICgqbV9kYXRhLnJlZ2lzdGVyU2xvdCkuanNWYWx1ZSgpOwor
ICAgICAgICAgICAgaWYgKG1fZ2V0VmFsdWUgPT0gSlNDX1ZBTFVFX01BUktFUikKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbV92YWx1ZTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IElO
REVYX0dFVFRFUl9NQVJLRVIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZ2V0SW5kZXhWYWx1
ZShleGVjLCBzbG90QmFzZSgpLCBpbmRleCgpKTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVl
ID09IEdFVFRFUl9GVU5DVElPTl9NQVJLRVIpCkBAIC04MCwxMCArNzcsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobV9nZXRW
YWx1ZSA9PSBKU0NfVkFMVUVfU0xPVF9NQVJLRVIpCi0gICAgICAgICAgICAgICAgcmV0dXJuICpt
X2RhdGEudmFsdWVTbG90OwotICAgICAgICAgICAgaWYgKG1fZ2V0VmFsdWUgPT0gSlNDX1JFR0lT
VEVSX1NMT1RfTUFSS0VSKQotICAgICAgICAgICAgICAgIHJldHVybiAoKm1fZGF0YS5yZWdpc3Rl
clNsb3QpLmpzVmFsdWUoKTsKKyAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEpTQ19WQUxV
RV9NQVJLRVIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAgICAgICAgICBp
ZiAobV9nZXRWYWx1ZSA9PSBJTkRFWF9HRVRURVJfTUFSS0VSKQogICAgICAgICAgICAgICAgIHJl
dHVybiBtX2dldEluZGV4VmFsdWUoZXhlYywgbV9zbG90QmFzZSwgbV9kYXRhLmluZGV4KTsKICAg
ICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEdFVFRFUl9GVU5DVElPTl9NQVJLRVIpCkBAIC0x
MDAsNDEgKzk1LDMyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG1fb2Zm
c2V0OwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNWYWx1ZSogdmFs
dWVTbG90KSAKKyAgICAgICAgdm9pZCBzZXRWYWx1ZShKU1ZhbHVlIHNsb3RCYXNlLCBKU1ZhbHVl
IHZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90KTsKLSAgICAg
ICAgICAgIGNsZWFyQmFzZSgpOworICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAg
ICAgIGNsZWFyT2Zmc2V0KCk7Ci0gICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX1NM
T1RfTUFSS0VSOwotICAgICAgICAgICAgbV9kYXRhLnZhbHVlU2xvdCA9IHZhbHVlU2xvdDsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNWYWx1ZSBzbG90
QmFzZSwgSlNWYWx1ZSogdmFsdWVTbG90KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQo
dmFsdWVTbG90KTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfVkFMVUVfU0xPVF9NQVJL
RVI7CisgICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX01BUktFUjsKICAgICAgICAg
ICAgIG1fc2xvdEJhc2UgPSBzbG90QmFzZTsKLSAgICAgICAgICAgIG1fZGF0YS52YWx1ZVNsb3Qg
PSB2YWx1ZVNsb3Q7CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHZvaWQgc2V0VmFsdWVTbG90KEpTVmFsdWUgc2xvdEJhc2UsIEpTVmFs
dWUqIHZhbHVlU2xvdCwgc2l6ZV90IG9mZnNldCkKKyAgICAgICAgdm9pZCBzZXRWYWx1ZShKU1Zh
bHVlIHNsb3RCYXNlLCBKU1ZhbHVlIHZhbHVlLCBzaXplX3Qgb2Zmc2V0KQogICAgICAgICB7Ci0g
ICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90KTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBK
U0NfVkFMVUVfU0xPVF9NQVJLRVI7CisgICAgICAgICAgICBBU1NFUlQodmFsdWUpOworICAgICAg
ICAgICAgbV9nZXRWYWx1ZSA9IEpTQ19WQUxVRV9NQVJLRVI7CiAgICAgICAgICAgICBtX3Nsb3RC
YXNlID0gc2xvdEJhc2U7Ci0gICAgICAgICAgICBtX2RhdGEudmFsdWVTbG90ID0gdmFsdWVTbG90
OworICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICAgbV9vZmZzZXQgPSBv
ZmZzZXQ7CiAgICAgICAgICAgICBtX2NhY2hlZFByb3BlcnR5VHlwZSA9IFZhbHVlOwogICAgICAg
ICB9Ci0gICAgICAgIAorCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoSlNWYWx1ZSB2YWx1ZSkKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgICAgIGNsZWFyQmFz
ZSgpOwogICAgICAgICAgICAgY2xlYXJPZmZzZXQoKTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUg
PSBKU0NfVkFMVUVfU0xPVF9NQVJLRVI7CisgICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZB
TFVFX01BUktFUjsKICAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIG1f
ZGF0YS52YWx1ZVNsb3QgPSAmbV92YWx1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgc2V0
UmVnaXN0ZXJTbG90KFJlZ2lzdGVyKiByZWdpc3RlclNsb3QpCkBAIC0xNDIsOCArMTI4LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJTbG90KTsKICAgICAg
ICAgICAgIGNsZWFyQmFzZSgpOwogICAgICAgICAgICAgY2xlYXJPZmZzZXQoKTsKLSAgICAgICAg
ICAgIG1fZ2V0VmFsdWUgPSBKU0NfUkVHSVNURVJfU0xPVF9NQVJLRVI7Ci0gICAgICAgICAgICBt
X2RhdGEucmVnaXN0ZXJTbG90ID0gcmVnaXN0ZXJTbG90OworICAgICAgICAgICAgbV9nZXRWYWx1
ZSA9IEpTQ19WQUxVRV9NQVJLRVI7CisgICAgICAgICAgICBtX3ZhbHVlID0gcmVnaXN0ZXJTbG90
LT5qc1ZhbHVlKCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHNldEN1c3RvbShKU1ZhbHVl
IHNsb3RCYXNlLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUpCkBAIC0yNTEsOCArMjM3LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgbV9zbG90QmFzZTsKICAgICAgICAgdW5pb24g
ewogICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlckZ1bmM7Ci0gICAgICAgICAgICBKU1ZhbHVl
KiB2YWx1ZVNsb3Q7Ci0gICAgICAgICAgICBSZWdpc3RlciogcmVnaXN0ZXJTbG90OwogICAgICAg
ICAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIH0gbV9kYXRhOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCA2M2U0MTQ0NTYzMWQ1
NDE4MjNkZDU1OGFhMjgxMTM5YjZiMzQ0OTBmLi5lYjljZmEzZjA1MmI0YTE5MDQzOWNhNGMzNzE3
YTVjOTAyNWJkNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z09iamVjdC5jcHAKQEAgLTMwLDE5ICszMCwxOSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KFN0cmluZ09iamVjdCk7CiBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0OjppbmZvID0geyAi
U3RyaW5nIiwgMCwgMCwgMCB9OwogCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlKQotICAgIDog
SlNXcmFwcGVyT2JqZWN0KHN0cnVjdHVyZSkKKyAgICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmds
b2JhbERhdGEoKSwganNFbXB0eVN0cmluZyhleGVjKSk7CiB9CiAKIFN0cmluZ09iamVjdDo6U3Ry
aW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcpCi0gICAgOiBKU1dyYXBwZXJPYmpl
Y3Qoc3RydWN0dXJlKQorICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGdsb2JhbERhdGEsIHN0cmluZyk7CiB9CiAKIFN0
cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVsbFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykKLSAgICA6IEpT
V3JhcHBlck9iamVjdChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9i
YWxEYXRhKCksIGpzU3RyaW5nKGV4ZWMsIHN0cmluZykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmNmMDc5MjE5Yjk3
MjY3OTM0NjNhNGIzNmMwM2ZkNDIyZmRlNDlmNC4uNTQ1YzkzZTAxMmQxZWI2NTkyNTU5MDFlNmFk
NjhkNjRjMTlmOTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFN0
cmluZ1Byb3RvdHlwZTo6aW5mbyA9IHsgIlN0cmluZyIsICZTdHJpbmdPYmplY3Q6OmluZm8sIDAs
IEV4ZWMKIFN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBzdHJ1Y3R1cmUpCiAgICAgOiBTdHJpbmdPYmplY3QoZXhlYywgc3RydWN0dXJlKQogewotICAg
IHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFs
dWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogICAgIC8vIFRoZSBjb25z
dHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBTdHJpbmdDb25zdHJ1Y3RvciBoYXMg
YmVlbiBidWlsdAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV3JpdGVCYXJyaWVyLmgKaW5kZXggNjMwOTIwNjMxYTFmY2IxMDZiZGJkMzRmNGNlOTVh
ODQ1Yzc3YzQ0Zi4uNTFmZjkzOGRjZDA4ZTE5ZDBmOGEzMGUyZjdhYWUyN2FmZjQzODQ1OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKQEAgLTk3LDYg
Kzk3LDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1
cm4gIW1fY2VsbDsgfQogCisgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJyaWVyKFQqIHZhbHVl
KSB7IHRoaXMtPm1fY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOyB9CisK
IHByb3RlY3RlZDoKICAgICBKU0NlbGwqIG1fY2VsbDsKIH07CkBAIC0xMTksNiArMTIxLDggQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXIoKSB7IG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoSlNW
YWx1ZSgpKTsgfQogICAgIHZvaWQgc2V0VW5kZWZpbmVkKCkgeyBtX3ZhbHVlID0gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOyB9CiAgICAgYm9vbCBpc051bWJlcigpIGNvbnN0IHsgcmV0
dXJuIGdldCgpLmlzTnVtYmVyKCk7IH0KKyAgICBib29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Qg
eyByZXR1cm4gZ2V0KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQorICAgIAogICAgIEpTVmFsdWUqIHNs
b3QoKQogICAgIHsgCiAgICAgICAgIHVuaW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMzM3ZmJhOGY4ZTI0
ZDE3ODNmZDdlZjJhZDFkMWU3YzdlMWYzNzZiLi43MjFhYTgwMTdkMWNmM2E1MzU4NzUwYjRhNWI4
Yzc1ZTVkMWNiMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMzEgIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgSlNPYmplY3Qgc3RvcmFnZSBmb3IgbmV3IG1h
cmtpbmcgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MzQ2NworCisgICAgICAgIFVwZGF0ZSBXZWJDb3JlIHRvIGhhbmRsZSBuZXcgYW5vbnltb3Vz
IHNsb3QgYmVoYXZpb3VyLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisKIDIwMTEtMDEtMzEgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCmluZGV4IGIzZTBiODhlN2NkMjRmMWY4OTY3ZWM0NDI5YzkwM2Y1MGM3MjRj
MzguLjQwZjk5MTBjYTM0ZGU1OGM1NzRlYmZmZjViNDcwNzQwZTU1MzY1MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC02NCw3ICs2
NCw3IEBAIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWZQdHI8RE9NV2lu
ZG93PiBkb21XaW5kb3cpCiAKICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBKU0RP
TVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHByb3RvdHlwZSk7CiAgICAgSlNET01XaW5kb3cqIGpz
RE9NV2luZG93ID0gbmV3IChKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpIEpTRE9N
V2luZG93KHN0cnVjdHVyZS5yZWxlYXNlKCksIGRvbVdpbmRvdywgdGhpcyk7Ci0gICAgcHJvdG90
eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgwLCBqc0RPTVdpbmRvdyk7CisgICAgcHJvdG90eXBlLT5w
dXRBbm9ueW1vdXNWYWx1ZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCAwLCBq
c0RPTVdpbmRvdyk7CiAgICAgc2V0V2luZG93KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxE
YXRhKCksIGpzRE9NV2luZG93KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA1ODcyYjJlMDA4ZmYzMWE4
ZTQ5MGFmMWU1NjZiODgzOWU5YzIwOGE2Li5lNzU4YjQ3NzY0NDAzNmNiN2M4MTEzZTljODFhOWFh
YjczMjQ1NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtODAsOCArODAsOCBAQCB2b2lkIFdvcmtlclNjcmlw
dENvbnRyb2xsZXI6OmluaXRTY3JpcHQoKQogICAgICAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1
Y3R1cmUgPSBKU0RlZGljYXRlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZShkZWRpY2F0
ZWRDb250ZXh0UHJvdG90eXBlKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyID0g
bmV3IChtX2dsb2JhbERhdGEuZ2V0KCkpIEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dChzdHJ1Y3R1
cmUucmVsZWFzZSgpLCBtX3dvcmtlckNvbnRleHQtPnRvRGVkaWNhdGVkV29ya2VyQ29udGV4dCgp
KTsKLSAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwg
bV93b3JrZXJDb250ZXh0V3JhcHBlcik7Ci0gICAgICAgIGRlZGljYXRlZENvbnRleHRQcm90b3R5
cGUtPnB1dEFub255bW91c1ZhbHVlKDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOworICAgICAg
ICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRh
LCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsKKyAgICAgICAgZGVkaWNhdGVkQ29udGV4dFBy
b3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250
ZXh0V3JhcHBlcik7CiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29udGV4dCgpKTsK
QEAgLTkwLDggKzkwLDggQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0
KCkKICAgICAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlID0gSlNTaGFyZWRXb3JrZXJD
b250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoc2hhcmVkQ29udGV4dFByb3RvdHlwZSk7CiAKICAgICAg
ICAgbV93b3JrZXJDb250ZXh0V3JhcHBlciA9IG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1No
YXJlZFdvcmtlckNvbnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50
b1NoYXJlZFdvcmtlckNvbnRleHQoKSk7Ci0gICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUt
PnB1dEFub255bW91c1ZhbHVlKDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwotICAgICAgICBz
aGFyZWRDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgwLCBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyKTsKKyAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3Vz
VmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CisgICAgICAg
IHNoYXJlZENvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEs
IDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwogI2VuZGlmCiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA0
NmE0NGQxOTc3M2I0ZDc0ZTNiYzE3ZTUwZDIwZWRlOGY5MzIxZTQwLi5kMjMwOWU5MjdmY2JhYWE4
NjczZmRjMjY5ZGIxOGZkOTcyMjA2YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwog
ICAgIGlmICgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgZm9yICh1bnNpZ25lZCBpID0gQmFzZTo6QW5vbnltb3VzU2xvdENvdW50OyBp
IDwgQW5vbnltb3VzU2xvdENvdW50OyBpKyspXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGksIEpTVmFsdWUoKSk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBpLCBKU1ZhbHVlKCkpO1xuIik7CiAgICAgfQogICAgIHB1c2go
QGltcGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMTYwMiw3ICsxNjAyLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0QW5vbnltb3VzVmFsdWUoIiAuICRj
bGFzc05hbWUgLiAiOjoiIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIlNsb3QsIHJl
c3VsdCk7XG4iKSBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2FjaGVkQXR0cmlidXRlIn0pOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXRBbm9ueW1vdXNWYWx1ZShleGVjLT5nbG9iYWxEYXRh
KCksICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAu
ICJTbG90LCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHJlc3VsdDtcbiIpOwogCiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80790</attachid>
            <date>2011-02-01 11:13:50 -0800</date>
            <delta_ts>2011-02-01 11:38:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53467-20110201111349.patch</filename>
            <type>text/plain</type>
            <size>41293</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFlZGZlZTI3MTZlNWE2NGNjZGNlYTIyNWEwMGFl
MzE5NjUyZGY5NjMuLmYyZDBjOWNhMjYxYWFhMzE1MDE2ODg0NDE3MDUwYjliZmQ2OTE2ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDExLTAxLTMxICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEpTT2JqZWN0IHN0b3JhZ2UgZm9yIG5ldyBtYXJr
aW5nIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM0NjcKKworICAgICAgICBKU09iamVjdCBubyBsb25nZXIgdXNlcyBFbmNvZGVkSlNWYWx1ZSBm
b3IgaXRzIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgIFRoaXMgcHJvZHVjZXMgYSBzdHJlYW0g
b2YgbWVjaGFuaWNhbCBjaGFuZ2VzIHRvIFByb3BlcnR5U2xvdCBhbmQKKyAgICAgICAgYW5vbnlt
b3VzIHN0b3JhZ2UgQVBJcy4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEJvb2xlYW4pOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4pOgorICAgICAgICAqIHJ1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OkJvb2xl
YW5PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkJvb2xlYW5Qcm90
b3R5cGU6OkJvb2xlYW5Qcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
LmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UpOgorICAgICAg
ICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5
cGU6OkRhdGVQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2Jh
bE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpmaWxsR2V0dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXREaXJlY3RMb2NhdGlvbik6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpvZmZzZXRGb3JMb2NhdGlvbik6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXRBbm9ueW1vdXNWYWx1ZSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpj
bGVhckFub255bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldEFub255bW91
c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dFRoaXNUb0Fub255bW91c1ZhbHVl
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmxvY2F0aW9uRm9yT2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCk6CisgICAgICAgICog
cnVudGltZS9KU1dyYXBwZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNXcmFwcGVyT2JqZWN0
OjpKU1dyYXBwZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OnNldElu
dGVybmFsVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpT
Qzo6c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
TnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1i
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9OdW1iZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6Ok51
bWJlclByb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlTbG90OjpnZXRWYWx1ZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5
U2xvdDo6c2V0VmFsdWUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OnNldFJlZ2lzdGVy
U2xvdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OlN0cmluZ1Byb3Rv
dHlwZSk6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6
V3JpdGVCYXJyaWVyQmFzZTo6c2V0V2l0aG91dFdyaXRlQmFycmllcik6CisKIDIwMTEtMDItMDEg
IERhdmUgVGFwdXNrYSAgPGR0YXB1c2thQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R2F2aW4gQmFycmFjbG91Z2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cAppbmRleCA5N2Y3NTkwYWEyMmY0YjhiZTFiYTdmN2M1NzFiZDEzNjcyZTI5M2YwLi44NzVlNzk3
N2E1N2I2NzQxMDFlMWRmNDdmMDZjMTEwOTQ4NWY1YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBfX1pOM0pTQzhKU09iamVj
dDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzhKU09iamVjdDE4Z2V0UHJpbWl0aXZlTnVtYmVyRVBOU185RXhlY1N0YXRlRVJk
Uk5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5T
XzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVF
CiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEpT
T2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNfN0pT
VmFsdWVFICAKK19fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18x
MlByb3BlcnR5U2xvdEVQTlNfMTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pO
M0pTQzhKU09iamVjdDIzYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VFbW0KIF9fWk4zSlNDOEpTT2Jq
ZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3Bl
cnR5U2xvdEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5kZWYKaW5kZXggOWE1MzdiNDZhZDM0MzdiYTlkODdmOThmYWEzZWY2ZTQzMDRiMDM3Mi4u
NTUwOGNlMWQ3NjlhZTVmMDAxZTZiZjMwOWI3MTMwMWYzY2E4MzNkMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTE1Niw3ICsx
NTYsNyBAQCBFWFBPUlRTCiAgICAgP2Zhc3RSZWFsbG9jQFdURkBAWUFQQVhQQVhJQFoKICAgICA/
ZmFzdFN0ckR1cEBXVEZAQFlBUEFEUEJEQFoKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlB
UEFYSUBaCi0gICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFW
UHJvcGVydHlTbG90QDJAUEFWSlNWYWx1ZUAyQEBaCisgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNs
b3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJvcGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJpZXJC
YXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJW
UHJvZmlsZU5vZGVAMkBAWgogICAgID9mcmVlQFdlYWtHQ0hhbmRsZVBvb2xASlNDQEBRQUVYUEFW
V2Vha0dDSGFuZGxlQDJAQFoKICAgICA/ZnJvbUBJZGVudGlmaWVyQEpTQ0BAU0E/QVYxMkBQQVZF
eGVjU3RhdGVAMkBIQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAppbmRleCAyNzNkNDUwN2NiZmY2MDEyMDdiNDdlYzExNWJkMTIyNzkzNGI5
YzViLi43MGMwZDA2NWI3MzU2N2EyYjNlNDBiYzI5ZTM5NzJiNDljMzUzN2IxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMTcs
NyArMTE3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjppbmZvID0geyJBcnJh
eSIsICZKU0FycmF5OjppbmZvLCAwLCBFeGVjU3RhdGU6OmEKIEFycmF5UHJvdG90eXBlOjpBcnJh
eVByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0
cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKICAgICA6IEpTQXJyYXkoc3RydWN0dXJlKQogewotICAg
IHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5vbnltb3VzVmFs
dWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CiAKIGJv
b2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggYzM2YmU4MmIyYTg4Yjg1MmJkNjM5MjZhOWM2NTY1MTJhN2MzZmJlNS4uMjFlZjViYmRl
ZDNhMTAwYTk4YjQzZjYzYjllMjI5M2Y1NmUyZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3
IEBAIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAvLyBFQ01BIDE1LjYuMgogSlNPYmplY3QqIGNv
bnN0cnVjdEJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewot
ICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RTdHJ1Y3R1cmUoKSk7CisgICAgQm9v
bGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ib29sZWFuT2JqZWN0U3RydWN0dXJl
KCkpOwogICAgIG9iai0+c2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9v
bGVhbihhcmdzLmF0KDApLnRvQm9vbGVhbihleGVjKSkpOwogICAgIHJldHVybiBvYmo7CiB9CkBA
IC03MSw3ICs3MSw3IEBAIENhbGxUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
Q2FsbERhdGEmIGNhbGxEYXRhKQogCiBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1l
ZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFs
dWUpCiB7Ci0gICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29sZWFuT2JqZWN0
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsK
KyAgICBCb29sZWFuT2JqZWN0KiBvYmogPSBuZXcgKGV4ZWMpIEJvb2xlYW5PYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmJvb2xlYW5PYmplY3RT
dHJ1Y3R1cmUoKSk7CiAgICAgb2JqLT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgaW1tZWRpYXRlQm9vbGVhblZhbHVlKTsKICAgICByZXR1cm4gb2JqOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcAppbmRleCBjOWIzODQ2
NTk3ZTY4YTE4MjRmMTk3NTc3ODA3YTc3NzJlZGFkMjgzLi43MWZmMmQyYzg2NTU3MTk5MDRiYzgz
YTg1YWM4OTE2OWM4YjQ0ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuT2JqZWN0LmNwcApAQCAtMjcsOCArMjcsOCBAQCBBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKEJvb2xlYW5PYmplY3QpOwogCiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbk9iamVjdDo6
aW5mbyA9IHsgIkJvb2xlYW4iLCAwLCAwLCAwIH07CiAKLUJvb2xlYW5PYmplY3Q6OkJvb2xlYW5P
YmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dy
YXBwZXJPYmplY3Qoc3RydWN0dXJlKQorQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0
dXJlKQorICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4
IDRiMDJhY2IxZGM5NTAzZDliMGI3N2JlNjUwMTg3ZWFiYjEzMWM3MDIuLmZmMTBlZjZiYjk3OWI2
ZWJlYjNjZmZlZTZjYzMxZGE1M2NhN2U0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuT2JqZWN0LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAg
ICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBCb29sZWFuT2JqZWN0KE5vbk51bGxQYXNzUmVm
UHRyPFN0cnVjdHVyZT4pOworICAgICAgICBleHBsaWNpdCBCb29sZWFuT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CiAKICAgICAg
ICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZp
bmZvOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggNzMx
NDU2ZWUxYjgyNDA1NmVlYzgzOGViYjZmNWRkMTQxZGQ0NmExMC4uNTRkNjIxY2ZkZDZiNzgxMDIx
NmRhNTJmY2Q3ZmMxNGZiMzE2ODljMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0
YXRlKik7CiAvLyBFQ01BIDE1LjYuNAogCiBCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlRnVu
Y3Rpb25TdHJ1Y3R1cmUpCi0gICAgOiBCb29sZWFuT2JqZWN0KHN0cnVjdHVyZSkKKyAgICA6IEJv
b2xlYW5PYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50
ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzQm9vbGVhbihmYWxzZSkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAppbmRleCA4MDM4
YWY1Mzg3Yjk3YjllODI4NjE5MjU5YzI4ODg0ZWNlMDdkYzMyLi40NGU4YjdkZjAxOTUzYWMzYTMx
YTdhZjEzZjRmZGYyZGRmZGY5YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZS5jcHAKQEAgLTM1LDE5ICszNSwxOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IGNvbnN0IENsYXNzSW5mbyBEYXRlSW5zdGFuY2U6OmluZm8gPSB7IkRhdGUiLCAwLCAwLCAwfTsK
IAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKLSAgICA6IEpTV3JhcHBlck9iamVjdChzdHJ1
Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTmFOKCkp
OwogfQogCiBEYXRlSW5zdGFuY2U6OkRhdGVJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIE5vbk51
bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBkb3VibGUgdGltZSkKLSAgICA6IEpT
V3JhcHBlck9iamVjdChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9i
YWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CiB9CiAKIERhdGVJbnN0YW5jZTo6
RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHRpbWUpCi0gICAgOiBKU1dyYXBw
ZXJPYmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5kYXRlU3RydWN0dXJlKCkpCisg
ICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4
ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggOTRiNjlh
ODVkNGIyY2UyNGI5YmE5ZjgxNzEzMzNlZTk1OGExOGVkYS4uNTgzOGI2MDczZWVmNWFmZjFjZGM1
ODU3MjJlODRkZWMzZTcyNmVjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTQzMyw3ICs0MzMsNyBAQCBEYXRlUHJvdG90eXBlOjpE
YXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgTm9uTgogICAgIDogRGF0ZUluc3RhbmNlKGV4ZWMsIHN0cnVjdHVyZSkKIHsKICAgICAvLyBU
aGUgY29uc3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9y
IGhhcyBiZWVuIGJ1aWx0LgotICAgIHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7
CisgICAgcHV0QW5vbnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmpl
Y3QpOwogfQogCiBib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
aW5kZXggMmY3OTRmOWYyNjMwMTUxZThlYzIyNjIwNmNkNDI2ZjdjZmI4YzdhZi4uNmZiNWNlZDMw
OGMwODFhZTMwN2U0NzJiNWM3YTBkYjkyOTBkZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xMzIsOCArMTMyLDggQEAgYm9vbCBK
U0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnQKICAgICBpZiAoc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBz
bG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoSlNWYWx1ZSogbG9jYXRpb24g
PSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFs
dWVTbG90KGxvY2F0aW9uKTsKKyAgICBpZiAoV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9j
YXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIHNsb3Qu
c2V0VmFsdWUobG9jYXRpb24tPmdldCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IGNlMjVmN2Iz
ZTMyZjI5YTNmZGY4ZWE2ZmFjMzRlZTViZDAzZWMzZjUuLmRlZDZkODcxZmE2NTgxZjM2ZjY0M2Yy
MzhmYjk4NDI0Nzc3NzJiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwCkBAIC0yNTcsMTYgKzI1NywxNiBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdAogICAg
IH0KIAogICAgIGlmIChpIDwgbV92ZWN0b3JMZW5ndGgpIHsKLSAgICAgICAgV3JpdGVCYXJyaWVy
PFVua25vd24+JiB2YWx1ZVNsb3QgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXTsKLSAgICAgICAgaWYg
KHZhbHVlU2xvdCkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodmFsdWVTbG90LnNs
b3QoKSk7CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXS5nZXQo
KTsKKyAgICAgICAgaWYgKHZhbHVlKSB7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHZhbHVl
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChT
cGFyc2VBcnJheVZhbHVlTWFwKiBtYXAgPSBzdG9yYWdlLT5tX3NwYXJzZVZhbHVlTWFwKSB7CiAg
ICAgICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAgIFNw
YXJzZUFycmF5VmFsdWVNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLT5maW5kKGkpOwogICAgICAgICAg
ICAgaWYgKGl0ICE9IG1hcC0+ZW5kKCkpIHsKLSAgICAgICAgICAgICAgICBzbG90LnNldFZhbHVl
U2xvdChpdC0+c2Vjb25kLnNsb3QoKSk7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShp
dC0+c2Vjb25kLmdldCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCA0ZmY1OWUzOWZlZDM1ZTMyYTBlMmY1Mzc5OGNmOGFiMjYyMmEyY2U2Li5j
NTY5NzIyY2Y2NjI3MWUyMjBmNmI5OWI4YzhkZjhkY2VhN2U3ZDgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIGJv
b2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOCiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewotICAgICAgICBKU1ZhbHVlKiBs
b2NhdGlvbiA9IGdldERpcmVjdExvY2F0aW9uKHByb3BlcnR5TmFtZSk7CisgICAgICAgIFdyaXRl
QmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24ocHJvcGVy
dHlOYW1lKTsKIAogICAgICAgICBpZiAoIWxvY2F0aW9uKSB7CiAgICAgICAgICAgICBKU09iamVj
dCogcHJvdG90eXBlID0gbmV3IChleGVjKSBKU09iamVjdChzY29wZSgpLmdsb2JhbE9iamVjdCgp
LT5lbXB0eU9iamVjdFN0cnVjdHVyZSgpKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBib29sIEpTRnVu
Y3Rpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TgogICAgICAgICAgICAgbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlvbihw
cm9wZXJ0eU5hbWUpOwogICAgICAgICB9CiAKLSAgICAgICAgc2xvdC5zZXRWYWx1ZVNsb3QodGhp
cywgbG9jYXRpb24sIG9mZnNldEZvckxvY2F0aW9uKGxvY2F0aW9uKSk7CisgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpcywgbG9jYXRpb24tPmdldCgpLCBvZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlv
bikpOwogICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmFyZ3VtZW50cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKaW5kZXggMmI1MDY1MWU4Y2IwYTMwOTMxOTRlYmQyNzUzNTBkNDE1ZDllNDkw
Yy4uMTE0NzdjYjY3Mzk0NGJlODQxN2IzM2QzODgxNjlhMTc0ZmNiZjc2YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNDcsNyArMTQ3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoSlNH
bG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIG5ldyBKU0dsb2JhbE9iamVj
dERhdGEoZGVzdHJveUpTR2xvYmFsT2JqZWN0RGF0YSkpCiAgICAgICAgIHsKICAgICAgICAgICAg
IENPTVBJTEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwg
SlNHbG9iYWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7Ci0gICAgICAgICAgICBwdXRB
bm9ueW1vdXNWYWx1ZSgwLCB0aGlzKTsKKyAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1Zh
bHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzKTsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTE1NSw3ICsxNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIDogSlNWYXJpYWJs
ZU9iamVjdChzdHJ1Y3R1cmUsIG5ldyBKU0dsb2JhbE9iamVjdERhdGEoZGVzdHJveUpTR2xvYmFs
T2JqZWN0RGF0YSkpCiAgICAgICAgIHsKICAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKEpTR2xv
YmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9iYWxPYmplY3RfaGFzX29u
bHlfYV9zaW5nbGVfc2xvdCk7Ci0gICAgICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCB0aGlz
KTsKKyAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAg
aW5pdCh0aGlzKTsKICAgICAgICAgfQogCkBAIC0xNjQsNyArMTY0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3Qoc3RydWN0dXJlLCBkYXRhKQogICAg
ICAgICB7CiAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChKU0dsb2JhbE9iamVjdDo6QW5vbnlt
b3VzU2xvdENvdW50ID09IDEsIEpTR2xvYmFsT2JqZWN0X2hhc19vbmx5X2Ffc2luZ2xlX3Nsb3Qp
OwotICAgICAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoMCwgdGhpcyk7CisgICAgICAgICAgICBw
dXRUaGlzVG9Bbm9ueW1vdXNWYWx1ZSgwKTsKICAgICAgICAgICAgIGluaXQodGhpc1ZhbHVlKTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
aW5kZXggN2ExZTdlMTA1Yzg4MzkyNzZiZTI2YTUxZTdjYmFkZmNkMmQ1NmVmNi4uMjc3ZmZmZjkw
NDc2MjE5ZTJiZmZiNDUzYzcyM2UxZDI3ZGY4OGU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNTQyLDkgKzU0Miw5IEBAIHZvaWQgSlNPYmplY3Q6
OnB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1
bmN0aW9uKiBmCiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5n
bG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgZnVuY3Rpb24tPm5hbWUoZXhlYykpLCBmdW5j
dGlvbiwgYXR0cik7CiB9CiAKLU5FVkVSX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVy
UHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlNWYWx1ZSogbG9jYXRpb24pCitORVZF
Ul9JTkxJTkUgdm9pZCBKU09iamVjdDo6ZmlsbEdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNs
b3QmIHNsb3QsIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKQogewotICAgIGlm
IChKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNldHRlcigqbG9jYXRpb24pLT5n
ZXR0ZXIoKSkgeworICAgIGlmIChKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24gPSBhc0dldHRlclNl
dHRlcihsb2NhdGlvbi0+Z2V0KCkpLT5nZXR0ZXIoKSkgewogICAgICAgICBpZiAoIXN0cnVjdHVy
ZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlR2V0dGVy
U2xvdCh0aGlzLCBnZXR0ZXJGdW5jdGlvbiwgb2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsK
ICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggZGNkYzkzZjcyMDk4MDcxNTMxN2IzYjFlNWQyNjlhMmU0MWQ2OGZlZi4uYjc5MjQ5YzcxNGRl
NGYyZWYwODM4Nzc0YmVjN2MzMzUwODFlOTVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0xNTUsMjIgKzE1NSwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBvZmZzZXQgIT0gV1RGOjpub3RGb3VuZCA/IGdldERpcmVjdE9mZnNl
dChvZmZzZXQpIDogSlNWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgSlNWYWx1ZSogZ2V0
RGlyZWN0TG9jYXRpb24oY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICBX
cml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiBnZXREaXJlY3RMb2NhdGlvbihjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQg
PSBtX3N0cnVjdHVyZS0+Z2V0KHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gb2Zm
c2V0ICE9IFdURjo6bm90Rm91bmQgPyBsb2NhdGlvbkZvck9mZnNldChvZmZzZXQpIDogMDsKICAg
ICAgICAgfQogCi0gICAgICAgIEpTVmFsdWUqIGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpCisgICAgICAgIFdyaXRl
QmFycmllckJhc2U8VW5rbm93bj4qIGdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEpTQ2VsbCogc3BlY2lmaWNGdW5jdGlvbjsKICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQg
PSBtX3N0cnVjdHVyZS0+Z2V0KHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNGdW5j
dGlvbik7CiAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0ICE9IFdURjo6bm90Rm91bmQgPyBsb2Nh
dGlvbkZvck9mZnNldChvZmZzZXQpIDogMDsKICAgICAgICAgfQogCi0gICAgICAgIHNpemVfdCBv
ZmZzZXRGb3JMb2NhdGlvbihKU1ZhbHVlKiBsb2NhdGlvbikgY29uc3QKKyAgICAgICAgc2l6ZV90
IG9mZnNldEZvckxvY2F0aW9uKFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uKSBj
b25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbG9jYXRpb24gLSByZWludGVycHJl
dF9jYXN0PGNvbnN0IEpTVmFsdWUqPihwcm9wZXJ0eVN0b3JhZ2UoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gbG9jYXRpb24gLSBwcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgdHJhbnNpdGlvblRvKFN0cnVjdHVyZSopOwpAQCAtMTk4LDcgKzE5OCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIHB1dERpcmVjdE9mZnNldChKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIHNpemVfdCBvZmZzZXQsIEpTVmFsdWUgdmFsdWUpIHsgcHJvcGVydHlTdG9yYWdl
KClbb2Zmc2V0XS5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgdmFsdWUpOyB9CiAgICAgICAgIHZvaWQg
cHV0VW5kZWZpbmVkQXREaXJlY3RPZmZzZXQoc2l6ZV90IG9mZnNldCkgeyBwcm9wZXJ0eVN0b3Jh
Z2UoKVtvZmZzZXRdLnNldFVuZGVmaW5lZCgpOyB9CiAKLSAgICAgICAgdm9pZCBmaWxsR2V0dGVy
UHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYsIEpTVmFsdWUqIGxvY2F0aW9uKTsKKyAgICAgICAg
dm9pZCBmaWxsR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYsIFdyaXRlQmFycmllckJh
c2U8VW5rbm93bj4qIGxvY2F0aW9uKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0
dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
IGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gMCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkZWZpbmVTZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAw
KTsKQEAgLTIzMSwyMCArMjMxLDMwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9z
dHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMpOwog
ICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZSh1bnNpZ25lZCBpbmRl
eCwgSlNWYWx1ZSB2YWx1ZSkKKyAgICAgICAgdm9pZCBwdXRBbm9ueW1vdXNWYWx1ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xv
dENvdW50KCkpOwotICAgICAgICAgICAgKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KSA9IHZhbHVl
OworICAgICAgICAgICAgbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5zZXQoZ2xvYmFsRGF0YSwg
dGhpcywgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZvaWQgY2xlYXJBbm9ueW1vdXNWYWx1
ZSh1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGluZGV4IDwg
bV9zdHJ1Y3R1cmUtPmFub255bW91c1Nsb3RDb3VudCgpKTsKKyAgICAgICAgICAgIGxvY2F0aW9u
Rm9yT2Zmc2V0KGluZGV4KS0+Y2xlYXIoKTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIGdl
dEFub255bW91c1ZhbHVlKHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgICAgICB7CiAgICAgICAg
ICAgICBBU1NFUlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwot
ICAgICAgICAgICAgcmV0dXJuICpsb2NhdGlvbkZvck9mZnNldChpbmRleCk7CisgICAgICAgICAg
ICByZXR1cm4gbG9jYXRpb25Gb3JPZmZzZXQoaW5kZXgpLT5nZXQoKTsKICAgICAgICAgfQogICAg
ICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IDA7CiAgICAgICAgIAorICAgICAgICB2b2lkIHB1dFRoaXNUb0Fub255bW91
c1ZhbHVlKHVuc2lnbmVkIGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBsb2NhdGlvbkZv
ck9mZnNldChpbmRleCktPnNldFdpdGhvdXRXcml0ZUJhcnJpZXIodGhpcyk7CisgICAgICAgIH0K
KyAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gTm9ib2R5IHNob3VsZCBldmVyIGFz
ayBhbnkgb2YgdGhlc2UgcXVlc3Rpb25zIG9uIHNvbWV0aGluZyBhbHJlYWR5IGtub3duIHRvIGJl
IGEgSlNPYmplY3QuCiAgICAgICAgIHVzaW5nIEpTQ2VsbDo6aXNBUElWYWx1ZVdyYXBwZXI7CkBA
IC0yNTQsMTggKzI2NCwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBnZXRTdHJp
bmcoRXhlY1N0YXRlKiBleGVjKTsKICAgICAgICAgdm9pZCBpc09iamVjdCgpOwogICAgICAgICB2
b2lkIGlzU3RyaW5nKCk7Ci0KKyAgICAgICAgCiAgICAgICAgIENvbnN0UHJvcGVydHlTdG9yYWdl
IHByb3BlcnR5U3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuIChpc1VzaW5nSW5saW5lU3RvcmFnZSgp
ID8gbV9pbmxpbmVTdG9yYWdlIDogbV9leHRlcm5hbFN0b3JhZ2UpOyB9CiAgICAgICAgIFByb3Bl
cnR5U3RvcmFnZSBwcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAoaXNVc2luZ0lubGluZVN0b3Jh
Z2UoKSA/IG1faW5saW5lU3RvcmFnZSA6IG1fZXh0ZXJuYWxTdG9yYWdlKTsgfQogCi0gICAgICAg
IGNvbnN0IEpTVmFsdWUqIGxvY2F0aW9uRm9yT2Zmc2V0KHNpemVfdCBvZmZzZXQpIGNvbnN0Cisg
ICAgICAgIGNvbnN0IFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uRm9yT2Zmc2V0
KHNpemVfdCBvZmZzZXQpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IEpTVmFsdWUqPigmcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0XSk7
CisgICAgICAgICAgICByZXR1cm4gJnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF07CiAgICAgICAg
IH0KIAotICAgICAgICBKU1ZhbHVlKiBsb2NhdGlvbkZvck9mZnNldChzaXplX3Qgb2Zmc2V0KQor
ICAgICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiBsb2NhdGlvbkZvck9mZnNldChzaXpl
X3Qgb2Zmc2V0KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxKU1ZhbHVlKj4oJnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF0pOworICAgICAgICAgICAgcmV0
dXJuICZwcm9wZXJ0eVN0b3JhZ2UoKVtvZmZzZXRdOwogICAgICAgICB9CiAKICAgICAgICAgYm9v
bCBwdXREaXJlY3RJbnRlcm5hbChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0
UHJvcGVydHlTbG90JiwgSlNDZWxsKik7CkBAIC0zNzMsMTEgKzM4MywxMSBAQCBpbmxpbmUgYm9v
bCBKU1ZhbHVlOjppbmhlcml0cyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykgY29uc3QKIAog
QUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjppbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKLSAgICBpZiAoSlNWYWx1ZSogbG9jYXRpb24gPSBnZXREaXJlY3RMb2NhdGlv
bihwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmIChtX3N0cnVjdHVyZS0+aGFzR2V0dGVyU2V0
dGVyUHJvcGVydGllcygpICYmIGxvY2F0aW9uWzBdLmlzR2V0dGVyU2V0dGVyKCkpCisgICAgaWYg
KFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0gZ2V0RGlyZWN0TG9jYXRpb24o
cHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAobV9zdHJ1Y3R1cmUtPmhhc0dldHRlclNldHRl
clByb3BlcnRpZXMoKSAmJiBsb2NhdGlvbi0+aXNHZXR0ZXJTZXR0ZXIoKSkKICAgICAgICAgICAg
IGZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3Qoc2xvdCwgbG9jYXRpb24pOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlU2xvdCh0aGlzLCBsb2NhdGlvbiwgb2Zmc2V0Rm9yTG9j
YXRpb24obG9jYXRpb24pKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgbG9jYXRp
b24tPmdldCgpLCBvZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlvbikpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IGU5ZDZjOTY5NGRhNzQ1NjNm
ZTE4ODQ0YWRlOGFmMDZhOWQxZDI5ZGIuLmMxNmFjYjFlZWE1NTlmMWFhZWI2MTk3MWQzNWRmOTY3
YTcyY2IyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzUsNyArMzUsMTAgQEAgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwKIHsKICAgICBDT01QSUxFX0FTU0VSVChBbm9ueW1vdXNTbG90Q291
bnQgPT0gMSwgQW5vbnltb3VzU2xvdENvdW50X211c3RfYmVfb25lKTsKICAgICBBU1NFUlQoIWds
b2JhbE9iamVjdCB8fCBnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkpOwotICAgIHB1dEFu
b255bW91c1ZhbHVlKEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgaWYgKCFn
bG9iYWxPYmplY3QpCisgICAgICAgIGNsZWFyQW5vbnltb3VzVmFsdWUoR2xvYmFsT2JqZWN0U2xv
dCk7CisgICAgZWxzZQorICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgR2xvYmFsT2JqZWN0U2xvdCwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogSlNHbG9i
YWxPYmplY3QqIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6Z2xvYmFsT2JqZWN0KCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5k
ZXggNGVhZjJjMDQwOWUzNzhmNTlmNDc4Yjc5N2UzNTA5NTcxYWVhODkxZi4uMGIwZDNmZDcyMmE4
ZjhkNzI3NDM5NjZlNjUyM2I4MDE5OWQwYWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgLy8gTnVtYmVyLCBCb29sZWFuIGFuZCBEYXRlIHdoaWNoIGFyZSB3cmFwcGVy
cyBmb3IgcHJpbWl0aXZlIHR5cGVzLgogICAgIGNsYXNzIEpTV3JhcHBlck9iamVjdCA6IHB1Ymxp
YyBKU09iamVjdCB7CiAgICAgcHJvdGVjdGVkOgotICAgICAgICBleHBsaWNpdCBKU1dyYXBwZXJP
YmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAgIGV4cGxpY2l0IEpT
V3JhcHBlck9iamVjdChKU0dsb2JhbERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
KTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgSlNWYWx1ZSBpbnRlcm5hbFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcm5hbFZhbHVlLmdldCgpOyB9CkBAIC01MCwxMCArNTAsMTAgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2ludGVybmFsVmFs
dWU7CiAgICAgfTsKIAotICAgIGlubGluZSBKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVj
dChOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKKyAgICBpbmxpbmUgSlNX
cmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBO
b25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkKICAgICAgICAgOiBKU09iamVj
dChzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZSgwLCBqc051bGwo
KSk7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIDAsIGpzTnVsbCgpKTsK
ICAgICB9CiAKICAgICBpbmxpbmUgdm9pZCBKU1dyYXBwZXJPYmplY3Q6OnNldEludGVybmFsVmFs
dWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNjEsNyArNjEs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgQVNT
RVJUKCF2YWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgbV9pbnRlcm5hbFZhbHVlLnNldChnbG9i
YWxEYXRhLCB0aGlzLCB2YWx1ZSk7Ci0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKDAsIHZhbHVl
KTsKKyAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsRGF0YSwgMCwgdmFsdWUpOwogICAg
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Mb29rdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9v
a3VwLmNwcAppbmRleCAxM2VhOTIzMDMwNTlkNWU5NmM3NzEzZGI2YTA1NzYwYWNjMmIxMDk0Li4z
YzdkNGJlYjg2MzM0ODE1NTE5MTRkYmY2MDFlMzFmMjI5NWQ0MGVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBzZXRVcFN0
YXRpY0Z1bmN0aW9uU2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hFbnRyeSogZW50cnks
IEpTT2JqZWN0KgogICAgIEFTU0VSVCh0aGlzT2JqLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xv
dENvdW50KCkgPiAwKTsKICAgICBBU1NFUlQodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCku
aXNDZWxsKCkgJiYgYXNPYmplY3QodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuYXNDZWxs
KCkpLT5pc0dsb2JhbE9iamVjdCgpKTsKICAgICBBU1NFUlQoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IEZ1bmN0aW9uKTsKLSAgICBKU1ZhbHVlKiBsb2NhdGlvbiA9IHRoaXNPYmotPmdldERpcmVjdExv
Y2F0aW9uKHByb3BlcnR5TmFtZSk7CisgICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9j
YXRpb24gPSB0aGlzT2JqLT5nZXREaXJlY3RMb2NhdGlvbihwcm9wZXJ0eU5hbWUpOwogCiAgICAg
aWYgKCFsb2NhdGlvbikgewogICAgICAgICBOYXRpdmVGdW5jdGlvbldyYXBwZXIqIGZ1bmN0aW9u
OwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNPYmplY3QqCiAgICAgICAgIGxvY2F0
aW9uID0gdGhpc09iai0+Z2V0RGlyZWN0TG9jYXRpb24ocHJvcGVydHlOYW1lKTsKICAgICB9CiAK
LSAgICBzbG90LnNldFZhbHVlU2xvdCh0aGlzT2JqLCBsb2NhdGlvbiwgdGhpc09iai0+b2Zmc2V0
Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKKyAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGxvY2F0
aW9uLT5nZXQoKSwgdGhpc09iai0+b2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMjM4ZGM5M2MzNjYzZTUzNmE5MmI2Zjg0MWI3
NzNhZTA2OGQ5YzFmMi4uN2NlYzg3NWFlYzg0MzllNDU4NjczNmYzYjQ5YTA5MWQ3MGQ5OTczZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVj
dG9yTWluVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBF
Q01BIDE1LjcuMQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmpl
Y3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkpOworICAgIE51bWJlck9iamVjdCogb2Jq
ZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBkb3Vi
bGUgbiA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVy
KGV4ZWMpIDogMDsKICAgICBvYmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBqc051bWJlcihuKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXgg
NTY5ZGJlZGI2Njk4MDgxMzZjNTA1YzY2MjAwM2MyMTdhNGE4ZTQ1NC4uNjAzYzJmMGE1MDNhZjQz
OWZjOTE2NmM5NDFiZDU2OWQ0MGVhOTI5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJPYmplY3QuY3BwCkBAIC0zMSw4ICszMSw4IEBAIEFTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoTnVtYmVyT2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIE51bWJlck9iamVj
dDo6aW5mbyA9IHsgIk51bWJlciIsIDAsIDAsIDAgfTsKIAotTnVtYmVyT2JqZWN0OjpOdW1iZXJP
YmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCi0gICAgOiBKU1dy
YXBwZXJPYmplY3Qoc3RydWN0dXJlKQorTnVtYmVyT2JqZWN0OjpOdW1iZXJPYmplY3QoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSkKKyAgICA6IEpTV3JhcHBlck9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CiB9CiAK
QEAgLTQzLDcgKzQzLDcgQEAgSlNWYWx1ZSBOdW1iZXJPYmplY3Q6OmdldEpTTnVtYmVyKCkKIAog
TnVtYmVyT2JqZWN0KiBjb25zdHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG51
bWJlcikKIHsKLSAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2Jq
ZWN0KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+bnVtYmVyT2JqZWN0U3RydWN0dXJlKCkp
OworICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVj
dFN0cnVjdHVyZSgpKTsKICAgICBvYmplY3QtPnNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBudW1iZXIpOwogICAgIHJldHVybiBvYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCmluZGV4IGU4MmI1OTM0N2IxMWY0NjE0MjQz
YmQwYTczMmNkM2YwMjJlNmM3YWQuLjA0NGY0OTBiOWEzZTJkZmJmMDdmNGU4YjcxMTU1ZWU0ZjY5
YjYxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5o
CkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTnVtYmVyT2Jq
ZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBleHBs
aWNpdCBOdW1iZXJPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPik7CisgICAgICAg
IGV4cGxpY2l0IE51bWJlck9iamVjdChKU0dsb2JhbERhdGEmLCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+KTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmlu
ZGV4IDM1NTA4OTQ3MDlkMjhiNzgwNDg5ZTVhMDcyYzVlOTI5ZjY5MmM2YWYuLmZiZTY5OTI4ZWJm
NTU1YmVlMjJjZmM5ZGU3YzI5YjRhMzQwYmVlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lv
bihFeGVjU3RhdGUqKTsKIC8vIEVDTUEgMTUuNy40CiAKIE51bWJlclByb3RvdHlwZTo6TnVtYmVy
UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Tm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90
eXBlRnVuY3Rpb25TdHJ1Y3R1cmUpCi0gICAgOiBOdW1iZXJPYmplY3Qoc3RydWN0dXJlKQorICAg
IDogTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIHNl
dEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcigwKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggZGU5ZGRjOTk4
MjJhNjMzZjAyNGU5NjM2MjE4OGQ5ZDVjNGFiNmJjMC4uY2RkYTZmZjY5NmJhOTc2OTAzMTU2MGU2
MGNlYTJhYzE1NDJmYTc4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlTbG90LmgKQEAgLTMyLDggKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3Mg
RXhlY1N0YXRlOwogICAgIGNsYXNzIEpTT2JqZWN0OwogCi0jZGVmaW5lIEpTQ19WQUxVRV9TTE9U
X01BUktFUiAwCi0jZGVmaW5lIEpTQ19SRUdJU1RFUl9TTE9UX01BUktFUiByZWludGVycHJldF9j
YXN0PEdldFZhbHVlRnVuYz4oMSkKKyNkZWZpbmUgSlNDX1ZBTFVFX01BUktFUiAwCiAjZGVmaW5l
IElOREVYX0dFVFRFUl9NQVJLRVIgcmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1bmM+KDIpCiAj
ZGVmaW5lIEdFVFRFUl9GVU5DVElPTl9NQVJLRVIgcmVpbnRlcnByZXRfY2FzdDxHZXRWYWx1ZUZ1
bmM+KDMpCiAKQEAgLTY3LDEwICs2Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpT
VmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEpT
Q19WQUxVRV9TTE9UX01BUktFUikKLSAgICAgICAgICAgICAgICByZXR1cm4gKm1fZGF0YS52YWx1
ZVNsb3Q7Ci0gICAgICAgICAgICBpZiAobV9nZXRWYWx1ZSA9PSBKU0NfUkVHSVNURVJfU0xPVF9N
QVJLRVIpCi0gICAgICAgICAgICAgICAgcmV0dXJuICgqbV9kYXRhLnJlZ2lzdGVyU2xvdCkuanNW
YWx1ZSgpOworICAgICAgICAgICAgaWYgKG1fZ2V0VmFsdWUgPT0gSlNDX1ZBTFVFX01BUktFUikK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV92YWx1ZTsKICAgICAgICAgICAgIGlmIChtX2dldFZh
bHVlID09IElOREVYX0dFVFRFUl9NQVJLRVIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG1fZ2V0
SW5kZXhWYWx1ZShleGVjLCBzbG90QmFzZSgpLCBpbmRleCgpKTsKICAgICAgICAgICAgIGlmICht
X2dldFZhbHVlID09IEdFVFRFUl9GVU5DVElPTl9NQVJLRVIpCkBAIC04MCwxMCArNzcsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAobV9nZXRWYWx1ZSA9PSBKU0NfVkFMVUVfU0xPVF9NQVJLRVIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuICptX2RhdGEudmFsdWVTbG90OwotICAgICAgICAgICAgaWYgKG1fZ2V0VmFsdWUgPT0g
SlNDX1JFR0lTVEVSX1NMT1RfTUFSS0VSKQotICAgICAgICAgICAgICAgIHJldHVybiAoKm1fZGF0
YS5yZWdpc3RlclNsb3QpLmpzVmFsdWUoKTsKKyAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09
IEpTQ19WQUxVRV9NQVJLRVIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAg
ICAgICAgICBpZiAobV9nZXRWYWx1ZSA9PSBJTkRFWF9HRVRURVJfTUFSS0VSKQogICAgICAgICAg
ICAgICAgIHJldHVybiBtX2dldEluZGV4VmFsdWUoZXhlYywgbV9zbG90QmFzZSwgbV9kYXRhLmlu
ZGV4KTsKICAgICAgICAgICAgIGlmIChtX2dldFZhbHVlID09IEdFVFRFUl9GVU5DVElPTl9NQVJL
RVIpCkBAIC0xMDAsNDEgKzk1LDMyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0
dXJuIG1fb2Zmc2V0OwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNW
YWx1ZSogdmFsdWVTbG90KSAKKyAgICAgICAgdm9pZCBzZXRWYWx1ZShKU1ZhbHVlIHNsb3RCYXNl
LCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90
KTsKLSAgICAgICAgICAgIGNsZWFyQmFzZSgpOworICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsK
ICAgICAgICAgICAgIGNsZWFyT2Zmc2V0KCk7Ci0gICAgICAgICAgICBtX2dldFZhbHVlID0gSlND
X1ZBTFVFX1NMT1RfTUFSS0VSOwotICAgICAgICAgICAgbV9kYXRhLnZhbHVlU2xvdCA9IHZhbHVl
U2xvdDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRWYWx1ZVNsb3QoSlNW
YWx1ZSBzbG90QmFzZSwgSlNWYWx1ZSogdmFsdWVTbG90KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBBU1NFUlQodmFsdWVTbG90KTsKLSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfVkFMVUVf
U0xPVF9NQVJLRVI7CisgICAgICAgICAgICBtX2dldFZhbHVlID0gSlNDX1ZBTFVFX01BUktFUjsK
ICAgICAgICAgICAgIG1fc2xvdEJhc2UgPSBzbG90QmFzZTsKLSAgICAgICAgICAgIG1fZGF0YS52
YWx1ZVNsb3QgPSB2YWx1ZVNsb3Q7CisgICAgICAgICAgICBtX3ZhbHVlID0gdmFsdWU7CiAgICAg
ICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0VmFsdWVTbG90KEpTVmFsdWUgc2xvdEJh
c2UsIEpTVmFsdWUqIHZhbHVlU2xvdCwgc2l6ZV90IG9mZnNldCkKKyAgICAgICAgdm9pZCBzZXRW
YWx1ZShKU1ZhbHVlIHNsb3RCYXNlLCBKU1ZhbHVlIHZhbHVlLCBzaXplX3Qgb2Zmc2V0KQogICAg
ICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWVTbG90KTsKLSAgICAgICAgICAgIG1fZ2V0
VmFsdWUgPSBKU0NfVkFMVUVfU0xPVF9NQVJLRVI7CisgICAgICAgICAgICBBU1NFUlQodmFsdWUp
OworICAgICAgICAgICAgbV9nZXRWYWx1ZSA9IEpTQ19WQUxVRV9NQVJLRVI7CiAgICAgICAgICAg
ICBtX3Nsb3RCYXNlID0gc2xvdEJhc2U7Ci0gICAgICAgICAgICBtX2RhdGEudmFsdWVTbG90ID0g
dmFsdWVTbG90OworICAgICAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICAgbV9v
ZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICAgICBtX2NhY2hlZFByb3BlcnR5VHlwZSA9IFZhbHVl
OwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIHZvaWQgc2V0VmFsdWUoSlNWYWx1ZSB2
YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgICAg
IGNsZWFyQmFzZSgpOwogICAgICAgICAgICAgY2xlYXJPZmZzZXQoKTsKLSAgICAgICAgICAgIG1f
Z2V0VmFsdWUgPSBKU0NfVkFMVUVfU0xPVF9NQVJLRVI7CisgICAgICAgICAgICBtX2dldFZhbHVl
ID0gSlNDX1ZBTFVFX01BUktFUjsKICAgICAgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKLSAgICAg
ICAgICAgIG1fZGF0YS52YWx1ZVNsb3QgPSAmbV92YWx1ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgc2V0UmVnaXN0ZXJTbG90KFJlZ2lzdGVyKiByZWdpc3RlclNsb3QpCkBAIC0xNDIsOCAr
MTI4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJTbG90
KTsKICAgICAgICAgICAgIGNsZWFyQmFzZSgpOwogICAgICAgICAgICAgY2xlYXJPZmZzZXQoKTsK
LSAgICAgICAgICAgIG1fZ2V0VmFsdWUgPSBKU0NfUkVHSVNURVJfU0xPVF9NQVJLRVI7Ci0gICAg
ICAgICAgICBtX2RhdGEucmVnaXN0ZXJTbG90ID0gcmVnaXN0ZXJTbG90OworICAgICAgICAgICAg
bV9nZXRWYWx1ZSA9IEpTQ19WQUxVRV9NQVJLRVI7CisgICAgICAgICAgICBtX3ZhbHVlID0gcmVn
aXN0ZXJTbG90LT5qc1ZhbHVlKCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHNldEN1c3Rv
bShKU1ZhbHVlIHNsb3RCYXNlLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUpCkBAIC0yNTEsOCArMjM3
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgbV9zbG90QmFzZTsKICAgICAg
ICAgdW5pb24gewogICAgICAgICAgICAgSlNPYmplY3QqIGdldHRlckZ1bmM7Ci0gICAgICAgICAg
ICBKU1ZhbHVlKiB2YWx1ZVNsb3Q7Ci0gICAgICAgICAgICBSZWdpc3RlciogcmVnaXN0ZXJTbG90
OwogICAgICAgICAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIH0gbV9kYXRhOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCA2M2U0
MTQ0NTYzMWQ1NDE4MjNkZDU1OGFhMjgxMTM5YjZiMzQ0OTBmLi5lYjljZmEzZjA1MmI0YTE5MDQz
OWNhNGMzNzE3YTVjOTAyNWJkNDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTMwLDE5ICszMCwxOSBAQCBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKFN0cmluZ09iamVjdCk7CiBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0Ojpp
bmZvID0geyAiU3RyaW5nIiwgMCwgMCwgMCB9OwogCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVj
dChFeGVjU3RhdGUqIGV4ZWMsIE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJl
KQotICAgIDogSlNXcmFwcGVyT2JqZWN0KHN0cnVjdHVyZSkKKyAgICA6IEpTV3JhcHBlck9iamVj
dChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVl
KGV4ZWMtPmdsb2JhbERhdGEoKSwganNFbXB0eVN0cmluZyhleGVjKSk7CiB9CiAKIFN0cmluZ09i
amVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTm9uTnVsbFBhc3NS
ZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBzdHJpbmcpCi0gICAgOiBKU1dy
YXBwZXJPYmplY3Qoc3RydWN0dXJlKQorICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGdsb2JhbERhdGEsIHN0cmluZyk7
CiB9CiAKIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgTm9uTnVs
bFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIHN0cmluZykK
LSAgICA6IEpTV3JhcHBlck9iamVjdChzdHJ1Y3R1cmUpCisgICAgOiBKU1dyYXBwZXJPYmplY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShl
eGVjLT5nbG9iYWxEYXRhKCksIGpzU3RyaW5nKGV4ZWMsIHN0cmluZykpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmNm
MDc5MjE5Yjk3MjY3OTM0NjNhNGIzNmMwM2ZkNDIyZmRlNDlmNC4uNTQ1YzkzZTAxMmQxZWI2NTky
NTU5MDFlNmFkNjhkNjRjMTlmOTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgY29uc3QgQ2xh
c3NJbmZvIFN0cmluZ1Byb3RvdHlwZTo6aW5mbyA9IHsgIlN0cmluZyIsICZTdHJpbmdPYmplY3Q6
OmluZm8sIDAsIEV4ZWMKIFN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUpCiAgICAgOiBTdHJpbmdPYmplY3QoZXhlYywgc3RydWN0dXJl
KQogewotICAgIHB1dEFub255bW91c1ZhbHVlKDAsIGdsb2JhbE9iamVjdCk7CisgICAgcHV0QW5v
bnltb3VzVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogICAgIC8v
IFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBTdHJpbmdDb25zdHJ1
Y3RvciBoYXMgYmVlbiBidWlsdAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMCks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKaW5kZXggNjMwOTIwNjMxYTFmY2IxMDZiZGJk
MzRmNGNlOTVhODQ1Yzc3YzQ0Zi4uNTFmZjkzOGRjZDA4ZTE5ZDBmOGEzMGUyZjdhYWUyN2FmZjQz
ODQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJy
aWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgK
QEAgLTk3LDYgKzk3LDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29u
c3QgeyByZXR1cm4gIW1fY2VsbDsgfQogCisgICAgdm9pZCBzZXRXaXRob3V0V3JpdGVCYXJyaWVy
KFQqIHZhbHVlKSB7IHRoaXMtPm1fY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4odmFs
dWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBKU0NlbGwqIG1fY2VsbDsKIH07CkBAIC0xMTksNiAr
MTIxLDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKSB7IG1fdmFsdWUgPSBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZSgpKTsgfQogICAgIHZvaWQgc2V0VW5kZWZpbmVkKCkgeyBtX3ZhbHVlID0g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOyB9CiAgICAgYm9vbCBpc051bWJlcigpIGNv
bnN0IHsgcmV0dXJuIGdldCgpLmlzTnVtYmVyKCk7IH0KKyAgICBib29sIGlzR2V0dGVyU2V0dGVy
KCkgY29uc3QgeyByZXR1cm4gZ2V0KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQorICAgIAogICAgIEpT
VmFsdWUqIHNsb3QoKQogICAgIHsgCiAgICAgICAgIHVuaW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NzVk
M2U1YjdhMzYxYTYyNTcwMjQ5NGVjMjkwZWUwYTkwY2M0YjQzLi45ZmZjZjJkYWZkYjVjZGI1YWNj
ZjM0NDRjM2M2MmEwMzVlODJjY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEt
MDEtMzEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgSlNPYmplY3Qgc3RvcmFnZSBm
b3IgbmV3IG1hcmtpbmcgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MzQ2NworCisgICAgICAgIFVwZGF0ZSBXZWJDb3JlIHRvIGhhbmRsZSBuZXcg
YW5vbnltb3VzIHNsb3QgYmVoYXZpb3VyLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRX
aW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisKIDIwMTEt
MDItMDEgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBiM2UwYjg4ZTdjZDI0ZjFmODk2N2VjNDQy
OWM5MDNmNTBjNzI0YzM4Li40MGY5OTEwY2EzNGRlNThjNTc0ZWJmZmY1YjQ3MDc0MGU1NTM2NTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyhQYXNz
UmVmUHRyPERPTVdpbmRvdz4gZG9tV2luZG93KQogCiAgICAgUmVmUHRyPFN0cnVjdHVyZT4gc3Ry
dWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0ZVN0cnVjdHVyZShwcm90b3R5cGUpOwogICAgIEpT
RE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IG5ldyAoSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFs
RGF0YSgpKSBKU0RPTVdpbmRvdyhzdHJ1Y3R1cmUucmVsZWFzZSgpLCBkb21XaW5kb3csIHRoaXMp
OwotICAgIHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwganNET01XaW5kb3cpOworICAg
IHByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2Jh
bERhdGEoKSwgMCwganNET01XaW5kb3cpOwogICAgIHNldFdpbmRvdygqSlNET01XaW5kb3c6OmNv
bW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNTg3
MmIyZTAwOGZmMzFhOGU0OTBhZjFlNTY2Yjg4MzllOWMyMDhhNi4uZTc1OGI0Nzc2NDQwMzZjYjdj
ODExM2U5YzgxYTlhYWI3MzI0NTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTgwLDggKzgwLDggQEAgdm9p
ZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICAgICAgUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlID0gSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1
Y3R1cmUoZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZSk7CiAKICAgICAgICAgbV93b3JrZXJDb250
ZXh0V3JhcHBlciA9IG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU0RlZGljYXRlZFdvcmtlckNv
bnRleHQoc3RydWN0dXJlLnJlbGVhc2UoKSwgbV93b3JrZXJDb250ZXh0LT50b0RlZGljYXRlZFdv
cmtlckNvbnRleHQoKSk7Ci0gICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnB1dEFub255
bW91c1ZhbHVlKDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwotICAgICAgICBkZWRpY2F0ZWRD
b250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgwLCBtX3dvcmtlckNvbnRleHRXcmFw
cGVyKTsKKyAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUo
Km1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CisgICAgICAgIGRlZGlj
YXRlZENvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAs
IG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAg
ICB9IGVsc2UgewogICAgICAgICBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5pc1NoYXJlZFdvcmtl
ckNvbnRleHQoKSk7CkBAIC05MCw4ICs5MCw4IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6aW5pdFNjcmlwdCgpCiAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSA9IEpT
U2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKHNoYXJlZENvbnRleHRQcm90b3R5
cGUpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXIgPSBuZXcgKG1fZ2xvYmFsRGF0
YS5nZXQoKSkgSlNTaGFyZWRXb3JrZXJDb250ZXh0KHN0cnVjdHVyZS5yZWxlYXNlKCksIG1fd29y
a2VyQ29udGV4dC0+dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpOwotICAgICAgICB3b3JrZXJDb250
ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVy
KTsKLSAgICAgICAgc2hhcmVkQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoMCwg
bV93b3JrZXJDb250ZXh0V3JhcHBlcik7CisgICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUt
PnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2VyQ29udGV4dFdyYXBw
ZXIpOworICAgICAgICBzaGFyZWRDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgq
bV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsKICNlbmRpZgogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggNDZhNDRkMTk3NzNiNGQ3NGUzYmMxN2U1MGQyMGVkZThmOTMyMWU0MC4uZDIz
MDllOTI3ZmNiYWFhODY3M2ZkYzI2OWRiMThmZDk3MjIwNmM2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE0MzQsNyAr
MTQzNCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICBpZiAoJG51bUNhY2hlZEF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGZvciAodW5zaWduZWQgaSA9IEJhc2U6OkFub255bW91
c1Nsb3RDb3VudDsgaSA8IEFub255bW91c1Nsb3RDb3VudDsgaSsrKVxuIik7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZShpLCBKU1ZhbHVlKCkp
O1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXRBbm9ueW1vdXNW
YWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgaSwgSlNWYWx1ZSgpKTtcbiIpOwogICAg
IH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKQEAgLTE2MDIsNyArMTYwMiw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnB1dEFub255bW91
c1ZhbHVlKCIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSAuICJTbG90LCByZXN1bHQpO1xuIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNhY2hlZEF0dHJpYnV0ZSJ9KTsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0QW5vbnltb3VzVmFsdWUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCAiIC4gJGNsYXNzTmFtZSAuICI6OiIgLiAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWUgLiAiU2xvdCwgcmVzdWx0KTtcbiIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1dGUifSk7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKIAog
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Cg==
</data>
<flag name="review"
          id="72283"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>