<?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>167438</bug_id>
          
          <creation_ts>2017-01-25 16:26:55 -0800</creation_ts>
          <short_desc>[WebRTC] Add support for incoming and outgoing libwebrtc audio tracks</short_desc>
          <delta_ts>2017-01-25 17:45:06 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1270025</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 16:26:55 -0800</bug_when>
    <thetext>Or at least a skeleton for them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270026</commentid>
    <comment_count>1</comment_count>
      <attachid>299764</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 16:31:50 -0800</bug_when>
    <thetext>Created attachment 299764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270034</commentid>
    <comment_count>2</comment_count>
      <attachid>299764</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-01-25 16:42:44 -0800</bug_when>
    <thetext>Comment on attachment 299764
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=299764&amp;action=review

&gt; Source/WebCore/ChangeLog:3
&gt; +        [WebRTC] Add support for libwebrtc audio incoming and outgoing video tracks

Nit: I think you mean &quot;outgoing audio tracks&quot;, but something &quot;Add support for incoming and outgoing libwebrtc audio tracks&quot; might be clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270037</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 16:46:14 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; Nit: I think you mean &quot;outgoing audio tracks&quot;, but something &quot;Add support
&gt; for incoming and outgoing libwebrtc audio tracks&quot; might be clearer.

That is much clearer indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270050</commentid>
    <comment_count>4</comment_count>
      <attachid>299772</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 17:08:24 -0800</bug_when>
    <thetext>Created attachment 299772
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270069</commentid>
    <comment_count>5</comment_count>
      <attachid>299772</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 17:45:03 -0800</bug_when>
    <thetext>Comment on attachment 299772
Patch for landing

Clearing flags on attachment: 299772

Committed r211191: &lt;http://trac.webkit.org/changeset/211191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270070</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 17:45:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299764</attachid>
            <date>2017-01-25 16:31:50 -0800</date>
            <delta_ts>2017-01-25 17:08:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167438-20170125162948.patch</filename>
            <type>text/plain</type>
            <size>24291</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmY2QwZWViNDg4YTY2
MjZkMjM4M2U2ODlhYjA1NDhjZDBkYThlYy4uMjAzOGFhYTkyNjY4YjYxNzc2OTc3NTA3YzYxZTM4
ZmIzZmIwYmViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAxLTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgbGlid2VicnRjIGF1ZGlvIGluY29taW5nIGFuZCBvdXRnb2luZyB2aWRlbyB0cmFj
a3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZSBjb25zdW1lcyBhdWRpbyBidWZmZXJzIGdpdmVuIGJ5IGxp
YndlYnJ0Yy4KKyAgICAgICAgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIGNvbnN1bWVzIGF1
ZGlvIGJ1ZmZlcnMgZnJvbSBXZWJDb3JlIHRyYWNrcyAoY2FwdHVyZSB0eXBpY2FsbHkpIGFuZCBm
ZWVkcyBsaWJ3ZWJydGMgd2l0aCB0aGVtLgorICAgICAgICBUbyBiZSBjb3ZlcmVkIGJ5IExheW91
dC9tb2NrIHRlc3RzIG9uY2UgTGliV2ViUlRDIHBlZXIgY29ubmVjdGlvbiB3aWxsIGJlIGFkZGVk
LgorICAgICAgICBUaGVzZSBhcmUgb25seSBza2VsZXRvbnMgcmlnaHQgbm93LCB0aGUgY29udmVy
c2lvbiBiZXR3ZWVuIFdlYkNvcmUgYW5kIExpYldlYlJUQyBkYXRhIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpPbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6
OnNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6c3VwcG9ydGVkQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2U6OnJlbW92ZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjphdWRpb1NvdXJjZVByb3ZpZGVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Lmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlSGFzTW9yZU1lZGlhRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOiBB
ZGRlZC4KKwogMjAxNy0wMS0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubmZAZ21haWwuY29tPgog
CiAgICAgICAgIFtXZWJSVENdIEludHJvZHVjZSBsaWJ3ZWJydGMgYWJzdHJhY3Rpb24gZm9yIFdL
MS9XSzIgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmZjMjk4YTNiYTM3NjE4OTMwZDFlMjBmODcwODZl
MTgyMTdlNWRiNi4uYmNkNmVhMTZjMzlmYTUwZDhiYzBmNmM2YWQxNzBjMDQ1ODMwMDBiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTUxMCw2ICsxNTEwLDEwIEBACiAJCTQwRUNBRTdFMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RP
TUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovOyB9OwogCQk0MEVDQUU4
MTE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNE
T01FcnJvci5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwICovOyB9OworCQk0MTEwM0FBQjFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMTAzQUE3MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2UuY3BwICovOyB9OworCQk0MTEwM0FBQzFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlLmggKi87IH07CisJCTQxMTAzQUFEMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5n
QXVkaW9Tb3VyY2UuaCAqLzsgfTsKKwkJNDExMDNBQUUxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBQTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlLmNwcCAqLzsgfTsKIAkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8q
IFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3Jr
ICovOyB9OwogCQk0MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsg
fTsKIAkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQw
MEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi87IH07CkBAIC04Njc3LDYgKzg2ODEsMTAgQEAK
IAkJNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEx
MDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEwM0FBOTFFMzk3OTBBMDA3NjlGMDMgLyogUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTEwM0FBQTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MTg5RUY3MUFEODIzMjgwMEI5MEEwRCAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAw
QjkzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyODgsNiArMTUyOTYsMTAgQEAKIAkJ
CQkwN0VFNzZFRTFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
bW0gKi8sCiAJCQkJNEEwRkZBQTMxQUFGNUVGNjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwICovLAogCQkJCTRBMEZGQUE0MUFBRjVFRjYwMDYyODAzQiAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmggKi8sCisJCQkJNDExMDNBQTcxRTM5NzkwQTAwNzY5
RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgKi8sCisJCQkJNDExMDNBQTgx
RTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oICovLAorCQkJ
CTQxMTAzQUE5MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uu
aCAqLywKKwkJCQk0MTEwM0FBQTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmNwcCAqLywKIAkJCQkwN0Q2MzczRTFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCAqLywKIAkJCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZD
RTkgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gKi8sCiAJCQkpOwpAQCAtMjU3
OTgsNiArMjU4MTAsNyBAQAogCQkJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAvKiBHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBCMEQw
RjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5
OUIzRUQ3MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMTAzQUFEMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwQjBFMEYxMkEyNjkwMDUxRDY4OSAvKiBH
cmFwaGljc0xheWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUM2OTU5MzE2MUExRTUz
MDAzNzMyQ0IgLyogR3JhcGhpY3NMYXllckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QTI0RDdBMTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNzg3Niw2ICsyNzg4OSw3IEBACiAJCQkJQjIyMjc5QUUwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR0RlZnNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlCMTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHRGVzY0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
OUI0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDExMDNBQUMxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjI4QzZBMjgwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5QjcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MUZFMDlEMTUwOEQw
MDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTM4MCw2
ICsyOTM5NCw3IEBACiAJCQkJMTVGQ0M5RkMxQjRERjdGMjAwRTcyMzI2IC8qIERPTVVSTE1lZGlh
U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAv
KiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3RkJBMUUxNTFBQjE3QzAwQjU3
OTU5IC8qIERPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTEwM0FB
RTFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxOEMzOTU2MUM4REFDN0YwMDUxQzhBMyAvKiBET01XaW5kb3dGZXRj
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RkM3NDFCQjRDNEU4MDAxMjg5OEYgLyogRE9N
V2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QjM4RTI4MTUx
QzQyNzMwMDQ2MjJFOSAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzE2NTcsNiArMzE2NzIsNyBAQAogCQkJCTkzMzA5RTFCMDk5RTY0OTIwMDU2RTU4MSAv
KiBUZXh0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTREOTg4QjYxN0JGRUIyMTAw
ODRGQjg4IC8qIFRleHROb2RlVHJhdmVyc2FsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMThE
QTU4MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTEwM0FBQjFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QzkxQTEwMTgwMjM0MzkwMEExN0Y2RCAvKiBUZXh0
UGFpbnRTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUE5RDA4MjQ1RTU5MDAxRTlB
QkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzZEQ0NF
MTEzQjRGOTY2MDAyRUJFRkMgLyogVGV4dFJ1bi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTczMmI3MzVk
ZWYxYWI3ODQxZWMzMGZjZGVmMDZkOGE5MWZmMzdkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4g
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgiCisKKyNpZiBVU0UoTElCV0VC
UlRDKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCisjaW5jbHVk
ZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKKworI2luY2x1ZGUgIkNvcmVNZWRp
YVNvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjcmVhdGUocnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBT
dHJpbmcmJiBhdWRpb1RyYWNrSWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlKFdURk1vdmUoYXVkaW9UcmFjayksIFdURk1vdmUoYXVkaW9U
cmFja0lkKSkpOworfQorCitSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50
ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoV1RGTW92ZShhdWRpb1RyYWNrSWQpLCBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbywgU3RyaW5nKCkpCisgICAgLCBtX2F1ZGlvVHJhY2soV1RGTW92ZShhdWRp
b1RyYWNrKSkKK3sKK30KKwordm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6Ok9uRGF0
YShjb25zdCB2b2lkKiBhdWRpb0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0
ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7
CisgICAgVU5VU0VEX1BBUkFNKGJpdHNQZXJTYW1wbGUpOworICAgIFVOVVNFRF9QQVJBTShzYW1w
bGVSYXRlKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZDaGFubmVscyk7CisgICAgVU5VU0VE
X1BBUkFNKG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1faXNQcm9kdWNpbmdEYXRh
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CisgICAg
aWYgKG1fYXVkaW9UcmFjaykKKyAgICAgICAgbV9hdWRpb1RyYWNrLT5BZGRTaW5rKHRoaXMpOwor
fQorCit2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEo
KQoreworICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pc1Byb2R1Y2luZ0RhdGEgPSBmYWxzZTsKKyAgICBpZiAobV9hdWRpb1RyYWNrKQorICAgICAg
ICBtX2F1ZGlvVHJhY2stPlJlbW92ZVNpbmsodGhpcyk7Cit9CisKKworUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cit9CisKK2Nv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpzZXR0aW5ncygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzOwor
fQorCitSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZTo6c3VwcG9ydGVkQ29uc3RyYWludHMoKQoreworICAgIHJldHVybiBt
X3N1cHBvcnRlZENvbnN0cmFpbnRzOworfQorCit2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZTo6YWRkT2JzZXJ2ZXIoQXVkaW9Tb3VyY2VPYnNlcnZlck9iakMmIG9ic2VydmVyKQorewor
ICAgIG1fYXVkaW9Tb3VyY2VPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBpZiAobV9m
b3JtYXREZXNjcmlwdGlvbikgeworICAgICAgICBjb25zdCBhdXRvKiBkZXNjcmlwdGlvbiA9IENN
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24obV9mb3JtYXRE
ZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgICAgIG9ic2VydmVyLnByZXBhcmUoZGVzY3JpcHRpb24p
OworICAgIH0KK30KKwordm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnJlbW92ZU9i
c2VydmVyKEF1ZGlvU291cmNlT2JzZXJ2ZXJPYmpDJiBvYnNlcnZlcikKK3sKKyAgICBtX2F1ZGlv
U291cmNlT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZlcl0oY29uc3QgYXV0
byYgcmVnaXN0ZXJlZE9ic2VydmVyKSB7CisgICAgICAgIHJldHVybiAmb2JzZXJ2ZXIgPT0gJnJl
Z2lzdGVyZWRPYnNlcnZlci5nZXQoKTsKKyAgICB9KTsKK30KKwordm9pZCBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2U6OnN0YXJ0KCkKK3sKKyAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsKK30K
KworQXVkaW9Tb3VyY2VQcm92aWRlciogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjphdWRp
b1NvdXJjZVByb3ZpZGVyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikKKyAg
ICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyID0gV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OmNyZWF0ZSgqdGhpcyk7CisKKyAgICByZXR1cm4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyLmdl
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyYjE0NmIyNTAzN2Q1MGVjMWUyNGMwM2I4MDRlZjNmZDE1OWEyZDYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMg
Y29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBVU0UoTElCV0VCUlRDKQorCisjaW5jbHVkZSAiQXVkaW9DYXB0dXJlU291cmNlUHJvdmlkZXJP
YmpDLmgiCisjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgPENvcmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgorI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM7CisKK2NsYXNzIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSBm
aW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlLCBwcml2YXRlIHdlYnJ0Yzo6QXVkaW9U
cmFja1NpbmtJbnRlcmZhY2UsIHByaXZhdGUgQXVkaW9DYXB0dXJlU291cmNlUHJvdmlkZXJPYmpD
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4g
Y3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYs
IFN0cmluZyYmKTsKKworcHJpdmF0ZToKKyAgICBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uo
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiwgU3RyaW5n
JiYpOworCisgICAgLy8gd2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSBBUEkKKyAgICB2
b2lkIE9uRGF0YShjb25zdCB2b2lkKiBhdWRpb0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQg
c2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cykgZmluYWw7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlIEFQSQorICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpICBm
aW5hbDsKKworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBh
YmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CisKKyAgICBNZWRpYUNvbnN0cmFpbnRzJiBj
b25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgpOyB9CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygp
OworCisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lz
UHJvZHVjaW5nRGF0YTsgfQorCisgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQ
cm92aWRlcigpIGZpbmFsOworCisgICAgLy8gQXVkaW9DYXB0dXJlU291cmNlUHJvdmlkZXJPYmpD
IEFQSQorICAgIHZvaWQgYWRkT2JzZXJ2ZXIoQXVkaW9Tb3VyY2VPYnNlcnZlck9iakMmKSBmaW5h
bDsKKyAgICB2b2lkIHJlbW92ZU9ic2VydmVyKEF1ZGlvU291cmNlT2JzZXJ2ZXJPYmpDJikgZmlu
YWw7CisgICAgdm9pZCBzdGFydCgpIGZpbmFsOworCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIG1fY3VycmVudFNldHRpbmdzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKKyAgICBib29sIG1faXNQcm9kdWNpbmdEYXRh
IHsgZmFsc2UgfTsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50
ZXJmYWNlPiBtX2F1ZGlvVHJhY2s7CisKKyAgICBSZWZQdHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM+IG1fYXVkaW9Tb3VyY2VQcm92aWRlcjsKKyAgICBSZXRhaW5QdHI8Q01Gb3JtYXRE
ZXNjcmlwdGlvblJlZj4gbV9mb3JtYXREZXNjcmlwdGlvbjsKKyAgICBWZWN0b3I8c3RkOjpyZWZl
cmVuY2Vfd3JhcHBlcjxBdWRpb1NvdXJjZU9ic2VydmVyT2JqQz4+IG1fYXVkaW9Tb3VyY2VPYnNl
cnZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElC
V0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZDdkYWYwMDZjMmIzNGU3NTVmZGFlNWE2NWJiNTc5NjVlOGVjYjM3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCIKKworI2lmIFVTRShMSUJXRUJSVEMp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OnNvdXJjZUhhc01vcmVNZWRpYURhdGEoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBVTlVTRURfUEFSQU0obWVkaWFTYW1w
bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU3OWQ5MTliYTdhMjc1NTdhODVmY2ZiNWMyY2M2ZDcxZWEwZDBiZDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
cmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKExJQldFQlJUQykK
KworI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKKyNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CisK
K25hbWVzcGFjZSB3ZWJydGMgeworY2xhc3MgQXVkaW9UcmFja0ludGVyZmFjZTsKK2NsYXNzIEF1
ZGlvVHJhY2tTaW5rSW50ZXJmYWNlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4sIHB1YmxpYyB3ZWJydGM6OkF1ZGlvU291cmNlSW50
ZXJmYWNlLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4gY3JlYXRlKFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIGF1ZGlvU291cmNlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShXVEZNb3ZlKGF1ZGlvU291cmNlKSkpOyB9Cisg
ICAgflJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSgpIHsgbV9hdWRpb1NvdXJjZS0+cmVtb3Zl
T2JzZXJ2ZXIodGhpcyk7IH0KKworICAgIHZvaWQgc2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiB0cmFjaykgeyBtX3RyYWNrID0gV1RGTW92
ZSh0cmFjayk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgYXVkaW9Tb3VyY2UpIDogbV9hdWRp
b1NvdXJjZShXVEZNb3ZlKGF1ZGlvU291cmNlKSkgeyBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZl
cih0aGlzKTsgfQorCisgICAgdmlydHVhbCB2b2lkIEFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNr
U2lua0ludGVyZmFjZSogc2luaykgeyBtX3NpbmtzLmFwcGVuZChzaW5rKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBSZW1vdmVTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmsp
IHsgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsgfQorCisgICAgaW50IEFkZFJlZigpIGNvbnN0
IGZpbmFsIHsgcmVmKCk7IHJldHVybiByZWZDb3VudCgpOyB9CisgICAgaW50IFJlbGVhc2UoKSBj
b25zdCBmaW5hbCB7IGRlcmVmKCk7IHJldHVybiByZWZDb3VudCgpOyB9CisgICAgU291cmNlU3Rh
dGUgc3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBrTGl2ZTsgfQorICAgIGJvb2wgcmVtb3Rl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIFJlZ2lzdGVyT2JzZXJ2
ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQorICAgIHZvaWQgVW5yZWdp
c3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRlcmZhY2UqKSBmaW5hbCB7IH0KKworICAg
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIEFQSQorICAgIHZvaWQgc291cmNlU3Rv
cHBlZCgpIGZpbmFsIHsgfQorICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwgeyB9
CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7IH0KKyAgICBib29sIHBy
ZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZv
aWQgc291cmNlSGFzTW9yZU1lZGlhRGF0YShNZWRpYVNhbXBsZSYpIGZpbmFsOworCisgICAgdm9p
ZCBjb252ZXJ0QW5kU2VuZE1vbm9TYW1wbGVzKCk7CisgICAgdm9pZCBjb252ZXJ0QW5kU2VuZFN0
ZXJlb1NhbXBsZXMoKTsKKworICAgIFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJm
YWNlKj4gbV9zaW5rczsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9hdWRpb1NvdXJj
ZTsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiBt
X3RyYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKExJ
QldFQlJUQykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299772</attachid>
            <date>2017-01-25 17:08:24 -0800</date>
            <delta_ts>2017-01-25 17:45:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167438-20170125170623.patch</filename>
            <type>text/plain</type>
            <size>24347</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI5MTA2NTJhMjJjYzRl
ZTQ4OThiMjA3MGQzYjcwMzQxOGM2NWM5Yi4uMWM5N2I2ZTIxNGU4YTE1ZTI0MmY2YTQ3MGEzMDZi
YmM2NDE2NTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTAxLTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgaW5jb21pbmcgYW5kIG91dGdvaW5nIGxpYndlYnJ0YyBhdWRpbyB0cmFja3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2UgY29uc3VtZXMgYXVkaW8gYnVmZmVycyBnaXZlbiBieSBsaWJ3ZWJydGMu
CisgICAgICAgIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSBjb25zdW1lcyBhdWRpbyBidWZm
ZXJzIGZyb20gV2ViQ29yZSB0cmFja3MgKGNhcHR1cmUgdHlwaWNhbGx5KSBhbmQgZmVlZHMgbGli
d2VicnRjIHdpdGggdGhlbS4KKyAgICAgICAgVG8gYmUgY292ZXJlZCBieSBMYXlvdXQvbW9jayB0
ZXN0cyBvbmNlIExpYldlYlJUQyBwZWVyIGNvbm5lY3Rpb24gd2lsbCBiZSBhZGRlZC4KKyAgICAg
ICAgVGhlc2UgYXJlIG9ubHkgc2tlbGV0b25zIHJpZ2h0IG5vdywgdGhlIGNvbnZlcnNpb24gYmV0
d2VlbiBXZWJDb3JlIGFuZCBMaWJXZWJSVEMgZGF0YSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6T25EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnN1cHBv
cnRlZENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlOjpyZW1vdmVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2U6OnNvdXJjZUhhc01vcmVNZWRpYURhdGEpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDogQWRkZWQuCisK
KzIwMTctMDEtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAg
IFtXZWJSVENdIEFkZCBzdXBwb3J0IGZvciBsaWJ3ZWJydGMgdmlkZW8gaW5jb21pbmcgYW5kIG91
dGdvaW5nIHZpZGVvIHRyYWNrcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NDMyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NTcxYTExYmNhNDE0YTZiY2NmMTFhZGM0MmU3ODFm
ZDEwZTZlM2VjLi5jYzI3NzllZTAwYzQ4M2FiZDNkNmZlNzJiNzZlMDI0NGUwNWE1YTUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNTEwLDYgKzE1MTAsMTAgQEAKIAkJNDBFQ0FFN0UxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9N
RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQw
RUNBRTdEMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmggKi87IH07CiAJCTQwRUNBRTgx
MTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RP
TUVycm9yLmNwcCAqLzsgfTsKIAkJNDEwQjdFNzIxMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAgKi87IH07CisJCTQxMTAzQUFCMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDExMDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5jcHAgKi87IH07CisJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaCAqLzsgfTsKKwkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDExMDNBQTkxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZS5oICovOyB9OworCQk0MTEwM0FBRTFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2UuY3BwICovOyB9OwogCQk0MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyog
V2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsg
Ki87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
ODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9
OwogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyN0Q1MzYwRjhBQUIxRDAw
RTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLzsgfTsKQEAgLTg2ODAsNiArODY4NCwxMCBAQAog
CQk0MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NRXJyb3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEw
M0FBNzFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTAzQUE4MUUzOTc5
MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTAzQUE5MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxMTAzQUFBMUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
ODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBC
OTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTI5NCw2ICsxNTMwMiwxMCBAQAogCQkJ
CTA3RUU3NkVFMUJFQTYxOTgwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bSAqLywKIAkJCQk0QTBGRkFBMzFBQUY1RUY2MDA2MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5jcHAgKi8sCiAJCQkJNEEwRkZBQTQxQUFGNUVGNjAwNjI4MDNCIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCAqLywKKwkJCQk0MTEwM0FBNzFFMzk3OTBBMDA3NjlG
MDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCAqLywKKwkJCQk0MTEwM0FBODFF
Mzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8sCisJCQkJ
NDExMDNBQTkxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5o
ICovLAorCQkJCTQxMTAzQUFBMUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2UuY3BwICovLAogCQkJCTA3RDYzNzNFMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMwMDI1NkNF
OSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLywKIAkJCSk7CkBAIC0yNTgw
OCw2ICsyNTgyMCw3IEBACiAJCQkJQTgwRDY3MDgwRTlFOURFQjAwRTQyMEYwIC8qIEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEIwRDBG
MTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5
QjNFRDcxMjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBCMEUwRjEyQTI2OTAwNTFENjg5IC8qIEdy
YXBoaWNzTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzY5NTkzMTYxQTFFNTMw
MDM3MzJDQiAvKiBHcmFwaGljc0xheWVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZB
MjREN0ExNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3ODg3LDYgKzI3OTAwLDcgQEAKIAkJCQlCMjIyNzlBRTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHRGVmc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OUIxMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdEZXNjRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5
QjQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0RvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTEwM0FBQzFFMzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjhDNkEyODBEMDBDNDQ4MDAzMzRBQTQgLyogU1ZHRG9jdW1l
bnRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlCNzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRkUwOUQxNTA4RDAw
MEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MzkyLDYg
KzI5NDA2LDcgQEAKIAkJCQkxNUZDQzlGQzFCNERGN0YyMDBFNzIzMjYgLyogRE9NVVJMTWVkaWFT
dHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdGIC8q
IERPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdGQkExRTE1MUFCMTdDMDBCNTc5
NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxMTAzQUFF
MUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE4QzM5NTYxQzhEQUM3RjAwNTFDOEEzIC8qIERPTVdpbmRvd0ZldGNo
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGQzc0MUJCNEM0RTgwMDEyODk4RiAvKiBET01X
aW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCMzhFMjgxNTFD
NDI3MzAwNDYyMkU5IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0zMTY2OSw2ICszMTY4NCw3IEBACiAJCQkJOTMzMDlFMUIwOTlFNjQ5MjAwNTZFNTgxIC8q
IFRleHRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEQ5ODhCNjE3QkZFQjIxMDA4
NEZCODggLyogVGV4dE5vZGVUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOERB
NTgxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMTAzQUFCMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRDOTFBMTAxODAyMzQzOTAwQTE3RjZEIC8qIFRleHRQ
YWludFN0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QTlEMDgyNDVFNTkwMDFFOUFC
QyAvKiBUZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3NkRDQ0Ux
MTNCNEY5NjYwMDJFQkVGQyAvKiBUZXh0UnVuLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzMyYjczNWRl
ZjFhYjc4NDFlYzMwZmNkZWYwNmQ4YTkxZmYzN2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCIKKworI2lmIFVTRShMSUJXRUJS
VEMpCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgorCisjaW5jbHVkZSAiQ29yZU1lZGlh
U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8UmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIGF1ZGlvVHJhY2ssIFN0
cmluZyYmIGF1ZGlvVHJhY2tJZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UoV1RGTW92ZShhdWRpb1RyYWNrKSwgV1RGTW92ZShhdWRpb1Ry
YWNrSWQpKSk7Cit9CisKK1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRl
cmZhY2U+JiYgYXVkaW9UcmFjaywgU3RyaW5nJiYgYXVkaW9UcmFja0lkKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShXVEZNb3ZlKGF1ZGlvVHJhY2tJZCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcoKSkKKyAgICAsIG1fYXVkaW9UcmFjayhXVEZNb3ZlKGF1ZGlv
VHJhY2spKQoreworfQorCit2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6T25EYXRh
KGNvbnN0IHZvaWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXJTYW1wbGUsIGludCBzYW1wbGVSYXRl
LCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsK
KyAgICBVTlVTRURfUEFSQU0oYml0c1BlclNhbXBsZSk7CisgICAgVU5VU0VEX1BBUkFNKHNhbXBs
ZVJhdGUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkNoYW5uZWxzKTsKKyAgICBVTlVTRURf
UEFSQU0obnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9pc1Byb2R1Y2luZ0RhdGEp
CisgICAgICAgIHJldHVybjsKKworICAgIG1faXNQcm9kdWNpbmdEYXRhID0gdHJ1ZTsKKyAgICBp
ZiAobV9hdWRpb1RyYWNrKQorICAgICAgICBtX2F1ZGlvVHJhY2stPkFkZFNpbmsodGhpcyk7Cit9
CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgp
Cit7CisgICAgaWYgKG1faXNQcm9kdWNpbmdEYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2lzUHJvZHVjaW5nRGF0YSA9IGZhbHNlOworICAgIGlmIChtX2F1ZGlvVHJhY2spCisgICAgICAg
IG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlzKTsKK30KKworCitSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKK30KKworY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2U6OnNldHRpbmdzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3M7Cit9
CisKK1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaW50cygpCit7CisgICAgcmV0dXJuIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7Cit9CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjphZGRPYnNlcnZlcihBdWRpb1NvdXJjZU9ic2VydmVyT2JqQyYgb2JzZXJ2ZXIpCit7Cisg
ICAgbV9hdWRpb1NvdXJjZU9ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIGlmIChtX2Zv
cm1hdERlc2NyaXB0aW9uKSB7CisgICAgICAgIGNvbnN0IGF1dG8qIGRlc2NyaXB0aW9uID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihtX2Zvcm1hdERl
c2NyaXB0aW9uLmdldCgpKTsKKyAgICAgICAgb2JzZXJ2ZXIucHJlcGFyZShkZXNjcmlwdGlvbik7
CisgICAgfQorfQorCit2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6cmVtb3ZlT2Jz
ZXJ2ZXIoQXVkaW9Tb3VyY2VPYnNlcnZlck9iakMmIG9ic2VydmVyKQoreworICAgIG1fYXVkaW9T
b3VyY2VPYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJm9ic2VydmVyXShjb25zdCBhdXRv
JiByZWdpc3RlcmVkT2JzZXJ2ZXIpIHsKKyAgICAgICAgcmV0dXJuICZvYnNlcnZlciA9PSAmcmVn
aXN0ZXJlZE9ic2VydmVyLmdldCgpOworICAgIH0pOworfQorCit2b2lkIFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZTo6c3RhcnQoKQoreworICAgIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQor
CitBdWRpb1NvdXJjZVByb3ZpZGVyKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKQoreworICAgIGlmICghbV9hdWRpb1NvdXJjZVByb3ZpZGVyKQorICAg
ICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIgPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6Y3JlYXRlKCp0aGlzKTsKKworICAgIHJldHVybiBtX2F1ZGlvU291cmNlUHJvdmlkZXIuZ2V0
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJiMTQ2YjI1MDM3ZDUwZWMxZTI0YzAzYjgwNGVmM2ZkMTU5YTJkNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2UuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgor
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFVTRShMSUJXRUJSVEMpCisKKyNpbmNsdWRlICJBdWRpb0NhcHR1cmVTb3VyY2VQcm92aWRlck9i
akMuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlLmgiCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CisjaW5j
bHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzsKKworY2xhc3MgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlIGZp
bmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UsIHByaXZhdGUgd2VicnRjOjpBdWRpb1Ry
YWNrU2lua0ludGVyZmFjZSwgcHJpdmF0ZSBBdWRpb0NhcHR1cmVTb3VyY2VQcm92aWRlck9iakMg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBj
cmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiwg
U3RyaW5nJiYpOworCitwcml2YXRlOgorICAgIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZShy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcm
Jik7CisKKyAgICAvLyB3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlIEFQSQorICAgIHZv
aWQgT25EYXRhKGNvbnN0IHZvaWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXJTYW1wbGUsIGludCBz
YW1wbGVSYXRlLCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVz
KSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UgQVBJCisgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgIGZp
bmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFi
aWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKKworICAgIE1lZGlhQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCk7
CisKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNQ
cm9kdWNpbmdEYXRhOyB9CisKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVBy
b3ZpZGVyKCkgZmluYWw7CisKKyAgICAvLyBBdWRpb0NhcHR1cmVTb3VyY2VQcm92aWRlck9iakMg
QVBJCisgICAgdm9pZCBhZGRPYnNlcnZlcihBdWRpb1NvdXJjZU9ic2VydmVyT2JqQyYpIGZpbmFs
OworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoQXVkaW9Tb3VyY2VPYnNlcnZlck9iakMmKSBmaW5h
bDsKKyAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEg
eyBmYWxzZSB9OworICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRl
cmZhY2U+IG1fYXVkaW9UcmFjazsKKworICAgIFJlZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyOworICAgIFJldGFpblB0cjxDTUZvcm1hdERl
c2NyaXB0aW9uUmVmPiBtX2Zvcm1hdERlc2NyaXB0aW9uOworICAgIFZlY3RvcjxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPEF1ZGlvU291cmNlT2JzZXJ2ZXJPYmpDPj4gbV9hdWRpb1NvdXJjZU9ic2Vy
dmVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShMSUJX
RUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJkN2RhZjAwNmMyYjM0ZTc1NWZkYWU1YTY1YmI1Nzk2NWU4ZWNiMzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIgorCisjaWYgVVNFKExJQldFQlJUQykK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6c291cmNlSGFzTW9yZU1lZGlhRGF0YShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIFVOVVNFRF9QQVJBTShtZWRpYVNhbXBs
ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTc5ZDkxOWJhN2EyNzU1N2E4NWZjZmI1YzJjYzZkNzFlYTBkMGJkMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2UuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBy
ZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoTElCV0VCUlRDKQor
CisjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgorI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KKwor
bmFtZXNwYWNlIHdlYnJ0YyB7CitjbGFzcyBBdWRpb1RyYWNrSW50ZXJmYWNlOworY2xhc3MgQXVk
aW9UcmFja1NpbmtJbnRlcmZhY2U7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8UmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlPiwgcHVibGljIHdlYnJ0Yzo6QXVkaW9Tb3VyY2VJbnRl
cmZhY2UsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlPiBjcmVhdGUoUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYgYXVkaW9Tb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFdURk1vdmUoYXVkaW9Tb3VyY2UpKSk7IH0KKyAg
ICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKCkgeyBtX2F1ZGlvU291cmNlLT5yZW1vdmVP
YnNlcnZlcih0aGlzKTsgfQorCisgICAgdm9pZCBzZXRUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmIHRyYWNrKSB7IG1fdHJhY2sgPSBXVEZNb3Zl
KHRyYWNrKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBhdWRpb1NvdXJjZSkgOiBtX2F1ZGlv
U291cmNlKFdURk1vdmUoYXVkaW9Tb3VyY2UpKSB7IG1fYXVkaW9Tb3VyY2UtPmFkZE9ic2VydmVy
KHRoaXMpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgQWRkU2luayh3ZWJydGM6OkF1ZGlvVHJhY2tT
aW5rSW50ZXJmYWNlKiBzaW5rKSB7IG1fc2lua3MuYXBwZW5kKHNpbmspOyB9CisgICAgdmlydHVh
bCB2b2lkIFJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykg
eyBtX3NpbmtzLnJlbW92ZUZpcnN0KHNpbmspOyB9CisKKyAgICBpbnQgQWRkUmVmKCkgY29uc3Qg
ZmluYWwgeyByZWYoKTsgcmV0dXJuIHJlZkNvdW50KCk7IH0KKyAgICBpbnQgUmVsZWFzZSgpIGNv
bnN0IGZpbmFsIHsgZGVyZWYoKTsgcmV0dXJuIHJlZkNvdW50KCk7IH0KKyAgICBTb3VyY2VTdGF0
ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGtMaXZlOyB9CisgICAgYm9vbCByZW1vdGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZl
cih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CisgICAgdm9pZCBVbnJlZ2lz
dGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQorCisgICAg
Ly8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgQVBJCisgICAgdm9pZCBzb3VyY2VTdG9w
cGVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbCB7IH0K
KyAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsIHsgfQorICAgIGJvb2wgcHJl
dmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9p
ZCBzb3VyY2VIYXNNb3JlTWVkaWFEYXRhKE1lZGlhU2FtcGxlJikgZmluYWw7CisKKyAgICB2b2lk
IGNvbnZlcnRBbmRTZW5kTW9ub1NhbXBsZXMoKTsKKyAgICB2b2lkIGNvbnZlcnRBbmRTZW5kU3Rl
cmVvU2FtcGxlcygpOworCisgICAgVmVjdG9yPHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZh
Y2UqPiBtX3NpbmtzOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlvU291cmNl
OworICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+IG1f
dHJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElC
V0VCUlRDKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>