<?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>37354</bug_id>
          
          <creation_ts>2010-04-09 13:31:32 -0700</creation_ts>
          <short_desc>Expose UserContentURLPattern as WebKit SPI</short_desc>
          <delta_ts>2010-04-15 15:20:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>210882</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-09 13:31:32 -0700</bug_when>
    <thetext>We&apos;d like to expose UserContentURLPattern as WebKit SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210884</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-09 13:32:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/7847210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213038</commentid>
    <comment_count>2</comment_count>
      <attachid>53475</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-15 14:09:12 -0700</bug_when>
    <thetext>Created attachment 53475
Expose UserContentURLPattern as WebKit SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213041</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-15 14:12:52 -0700</bug_when>
    <thetext>Attachment 53475 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/win/WebUserContentURLPattern.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit/win/WebUserContentURLPattern.cpp:26:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/win/WebUserContentURLPattern.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 16 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>213048</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-15 14:18:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 53475 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
&gt; WebKit/win/WebUserContentURLPattern.h:32:  Code inside a namespace should not
&gt; be indented.  [whitespace/indent] [4]

This is bug 36760.

&gt; WebKit/win/WebUserContentURLPattern.cpp:26:  Found other header before a header
&gt; this file implements. Should be: config.h, primary header, blank line, and then
&gt; alphabetically sorted.  [build/include_order] [4]
&gt; WebKit/win/WebUserContentURLPattern.cpp:27:  Found header this file implements
&gt; after other header. Should be: config.h, primary header, blank line, and then
&gt; alphabetically sorted.  [build/include_order] [4]

This is bug 37673.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213051</commentid>
    <comment_count>5</comment_count>
      <attachid>53475</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-15 14:25:41 -0700</bug_when>
    <thetext>Comment on attachment 53475
Expose UserContentURLPattern as WebKit SPI

Looks fine. But isValid() needs to be exposed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213056</commentid>
    <comment_count>6</comment_count>
      <attachid>53479</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-15 14:37:34 -0700</bug_when>
    <thetext>Created attachment 53479
Revised patch with isValid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213059</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-15 14:41:02 -0700</bug_when>
    <thetext>Attachment 53479 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/win/WebUserContentURLPattern.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit/win/WebUserContentURLPattern.cpp:26:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/win/WebUserContentURLPattern.cpp:27:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 16 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>213083</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-15 15:20:48 -0700</bug_when>
    <thetext>Committed r57680: &lt;http://trac.webkit.org/changeset/57680&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53475</attachid>
            <date>2010-04-15 14:09:12 -0700</date>
            <delta_ts>2010-04-15 14:37:31 -0700</delta_ts>
            <desc>Expose UserContentURLPattern as WebKit SPI</desc>
            <filename>bug-37354-20100415140911.patch</filename>
            <type>text/plain</type>
            <size>26511</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDc3NzRkNi4uOTJhNWRlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNC0xNSAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIFVzZXJDb250ZW50VVJMUGF0dGVy
biBhcyBXZWJLaXQgU1BJCisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzcz
NTQ+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZS5iYXNlLmV4cDogRXhwb3J0IFVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UsIGFu
ZCBzb3J0ZWQKKyAgICAgICAgdGhlIGZpbGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IE1hcmtlZCBVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBhcworICAg
ICAgICAiUHJpdmF0ZSIuCisKKyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5o
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpVc2VyQ29udGVudFVS
TFBhdHRlcm4pOiBBZGRlZCBhCisgICAgICAgIGRlZmF1bHQgY29uc3RydWN0b3IuCisKIDIwMTAt
MDQtMTUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFz
ZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggNmRmMjJiNi4uMDJmNDY1OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5iYXNlLmV4cApAQCAtMzEyLDkgKzMxMiw5IEBAIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmln
aW4xOHNldExvY2FsTG9hZFBvbGljeUVOUzBfMTVMb2NhbExvYWRQb2xpY3lFCiBfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luMThzaG91bGRIaWRlUmVmZXJyZXJFUktOU180S1VSTEVSS05TXzZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjRyZWdpc3RlclVSTFNjaGVtZUFz
TG9jYWxFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI1cmVnaXN0
ZXJVUkxTY2hlbWVBc1NlY3VyZUVSS05TXzZTdHJpbmdFCitfX1pON1dlYkNvcmUxNFNlY3VyaXR5
T3JpZ2luMjdyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNFdgogX19aTjdXZWJDb3JlMTRTZWN1
cml0eU9yaWdpbjI5YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktTMF9SS05TXzZTdHJp
bmdFUzVfYgogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjMycmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnlFUktTMF9SS05TXzZTdHJpbmdFUzVfYgotX19aTjdXZWJDb3JlMTRTZWN1
cml0eU9yaWdpbjI3cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzRXYKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW40MHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVF
YlJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNf
NEtVUkxFaQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjdjYW5Mb2FkRVJLTlNfNEtVUkxF
UktOU182U3RyaW5nRVBOU184RG9jdW1lbnRFCkBAIC00NDQsNiArNDQ0LDcgQEAgX19aTjdXZWJD
b3JlMjFTVkdEb2N1bWVudEV4dGVuc2lvbnMyMXNhbXBsZUFuaW1hdGlvbkF0VGltZUVSS05TXzZT
dHJpbmdFUE5TXzE0U1YKIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlMTFkZXNl
cmlhbGl6ZUVQSzE1T3BhcXVlSlNDb250ZXh0UFBLMTNPcGFxdWVKU1ZhbHVlCiBfX1pON1dlYkNv
cmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTZjcmVhdGVFUEsxNU9wYXF1ZUpTQ29udGV4dFBLMTNP
cGFxdWVKU1ZhbHVlUFM2XwogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWVEMUV2
CitfX1pON1dlYkNvcmUyMVVzZXJDb250ZW50VVJMUGF0dGVybjVwYXJzZUVSS05TXzZTdHJpbmdF
CiBfX1pON1dlYkNvcmUyMVdpbmRvd3NMYXRpbjFFbmNvZGluZ0V2CiBfX1pON1dlYkNvcmUyMWZp
bmRFdmVudFdpdGhLZXlTdGF0ZUVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMjFpc0JhY2tGb3J3
YXJkTG9hZFR5cGVFTlNfMTNGcmFtZUxvYWRUeXBlRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxMGE4NTcyLi4zYWVkMDY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUwMiw3ICs0NTAyLDcgQEAKIAkJQkNB
ODVBMTAwQzNBRUFGNDAwNkY4MzA4IC8qIERPTVNWR051bWJlckludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4NUEwRjBDM0FFQUY0MDA2
RjgzMDggLyogRE9NU1ZHTnVtYmVySW50ZXJuYWwuaCAqLzsgfTsKIAkJQkNBQTkwQzMwQTdFQkE2
MDAwOEIxMjI5IC8qIFNjcm9sbGJhci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNw
cCAqLzsgfTsKIAkJQkNBQ0YzQkMxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0
dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0FDRjNCQTEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLzsg
fTsKLQkJQkNBQ0YzQkQxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBQ0YzQkIx
MDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9OworCQlCQ0FD
RjNCRDEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FDRjNCQjEwNzI5MjFBMDBD
MEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNBRUZDQUUxMDE2Q0U0QTAwNDBEMzRFIC8qIERP
TVJHQkNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNBRUZDQUQxMDE2Q0U0QTAwNDBEMzRFIC8qIERPTVJHQkNvbG9yLm1tICovOyB9OwogCQlC
Q0IxNkMxNzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZCRkUwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlLmNwcCAqLzsgfTsKIAkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkJGRjA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0
dGVybi5oIGIvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oCmluZGV4IDBiMWEy
NDguLjlkYmU1YTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRl
cm4uaAorKysgYi9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKQEAgLTM1LDYg
KzM1LDggQEAgY2xhc3MgS1VSTDsKIAogY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuIHsKIHB1
YmxpYzoKKyAgICBVc2VyQ29udGVudFVSTFBhdHRlcm4oKSA6IG1faW52YWxpZCh0cnVlKSwgbV9t
YXRjaFN1YmRvbWFpbnMoZmFsc2UpIHsgfQorCiAgICAgVXNlckNvbnRlbnRVUkxQYXR0ZXJuKGNv
bnN0IFN0cmluZyYgcGF0dGVybikKICAgICA6IG1fbWF0Y2hTdWJkb21haW5zKGZhbHNlKQogICAg
IHsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDQwNjAwMTkuLjhhNDVlYTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTE1ICBBZGFtIFJvYmVuICA8
YXJvYmVuQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgVXNlckNvbnRlbnRVUkxQYXR0ZXJu
IGFzIFdlYktpdCBTUEkKKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNzM1
ND4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybi4KKwogMjAxMC0wNC0xMCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMDVhYTQxYy4uZTZiYmFiNSAxMDA2NDQKLS0tIGEvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQwLDYgKzM0MCw4IEBACiAJCUMwQjFGN0U5MTBBQzhF
MzEwMEM5MjVEOSAvKiBXZWJTY3JpcHRXb3JsZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQjFGN0U2MTBBQzhFMzEwMEM5MjVEOSAvKiBXZWJTY3Jp
cHRXb3JsZC5tbSAqLzsgfTsKIAkJQzBCMUY3RUExMEFDOEUzMTAwQzkyNUQ5IC8qIFdlYlNjcmlw
dFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMwQjFGN0U3MTBBQzhFMzEwMEM5MjVEOSAvKiBXZWJTY3JpcHRXb3JsZEludGVybmFs
LmggKi87IH07CiAJCUMwQjg4RThCMTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFtZUxvYWREZWxl
Z2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMwQjg4RThBMTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
MEM1QjNFRTExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEM1QjNFQzExNzdB
NEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzBDNUIzRUYxMTc3QTRBMDAwMkIw
QUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVCM0VEMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4ubW0gKi87IH07CiAJCUREN0NERUU3MEEyM0JBOUUwMDA2OTky
OCAvKiBXZWJUeXBlc0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBERDdDREVFNjBBMjNCQTlFMDAwNjk5MjggLyogV2ViVHlwZXNJbnRlcm5h
bC5oICovOyB9OwogCQlERDg5NjgyMDA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERE
ODk2ODFFMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJFbGVtZW50RGljdGlvbmFyeS5oICovOyB9Owog
CQlERDg5NjgyMTA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rpb25hcnkubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDg5NjgxRjA5QUE4
NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rpb25hcnkubW0gKi87IH07CkBAIC02MzgsNiAr
NjQwLDggQEAKIAkJQzBCMUY3RTYxMEFDOEUzMTAwQzkyNUQ5IC8qIFdlYlNjcmlwdFdvcmxkLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU2NyaXB0V29ybGQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwQjFGN0U3MTBBQzhFMzEwMEM5MjVE
OSAvKiBXZWJTY3JpcHRXb3JsZEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNjcmlwdFdvcmxkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzBCODhFOEExMEEwOEYzRDAwRkJCM0Y1IC8qIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZUxvYWREZWxl
Z2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzBDNUIzRUMxMTc3
QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzBDNUIzRUQxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREQ3Q0RFRTYwQTIzQkE5RTAwMDY5OTI4IC8qIFdlYlR5cGVzSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVHlwZXNJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlERDg5NjgxRTA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxl
bWVudERpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJFbGVtZW50RGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJREQ4OTY4MUYwOUFBODcyNDAwOTdF
N0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFbGVtZW50RGljdGlvbmFyeS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBA
IC05NTIsNiArOTU2LDggQEAKIAkJCQlGNTk2NjhDODAyQUQyOTIzMDE4NjM1Q0EgLyogV2ViU3Ry
aW5nVHJ1bmNhdG9yLmggKi8sCiAJCQkJRjU5NjY4QzkwMkFEMjkyMzAxODYzNUNBIC8qIFdlYlN0
cmluZ1RydW5jYXRvci5tbSAqLywKIAkJCQlERDdDREVFNjBBMjNCQTlFMDAwNjk5MjggLyogV2Vi
VHlwZXNJbnRlcm5hbC5oICovLAorCQkJCUMwQzVCM0VEMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4ubW0gKi8sCisJCQkJQzBDNUIzRUMxMTc3QTRBMDAwMkIwQUVG
IC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBNaXNj
OwogCQkJcGF0aCA9IG1hYy9NaXNjOwpAQCAtMTUzOSw2ICsxNTQ1LDcgQEAKIAkJCQk5Mzk4MTA3
MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDNCMEY4MTA3NkMzRjcwMDAzOUI5NiAvKiBXZWJXaW5kb3dBbmltYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzBDNUIzRUUxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xODk2LDYgKzE5MDMsNyBA
QAogCQkJCTkzOTgxMEU4MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJWaWV3RmFjdG9yeS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDNCMEY5MTA3NkMzRjcwMDAzOUI5NiAvKiBXZWJXaW5kb3dBbmlt
YXRpb24ubSBpbiBTb3VyY2VzICovLAogCQkJCTQxRjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBX
ZWJXb3JrZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMwQzVCM0VGMTE3N0E0QTAw
MDJCMEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0gaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZDcwMDg1Zi4uOTVhOTEwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNC0xNSAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIFVzZXJDb250ZW50
VVJMUGF0dGVybiBhcyBXZWJLaXQgU1BJCisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvMzczNTQ+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogTWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaDogQWRkZWQuCisKKyAgICAg
ICAgKiBNaXNjL1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbTogQWRkZWQuCisgICAgICAgICgt
W1dlYlVzZXJDb250ZW50VVJMUGF0dGVybiBpbml0V2l0aFBhdHRlcm5TdHJpbmc6XSk6IEluaXRp
YWxpemUKKyAgICAgICAgX3ByaXZhdGUgYW5kIHRoZW4gcGFyc2UgdGhlIHBhc3NlZC1pbiBzdHJp
bmcgaW50byBhCisgICAgICAgIFVzZXJDb250ZW50VVJMUGF0dGVybi4KKyAgICAgICAgKC1bV2Vi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuIGRlYWxsb2NdKTogUmVsZWFzZSBfcHJpdmF0ZS4KKworICAg
ICAgICAoLVtXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4gc2NoZW1lXSk6CisgICAgICAgICgtW1dl
YlVzZXJDb250ZW50VVJMUGF0dGVybiBob3N0XSk6CisgICAgICAgICgtW1dlYlVzZXJDb250ZW50
VVJMUGF0dGVybiBtYXRjaGVzU3ViZG9tYWluc10pOgorICAgICAgICBDYWxsIHRocm91Z2ggdG8g
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLgorCiAyMDEwLTA0LTEzICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggYi9XZWJL
aXQvbWFjL01pc2MvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTgxOTU3MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMv
TWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK0BjbGFz
cyBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm5Qcml2YXRlOworCitAaW50ZXJmYWNlIFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybiA6IE5TT2JqZWN0IHsKKyAgICBXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm5Qcml2YXRlICpfcHJpdmF0ZTsKK30KKworLSAoaWQpaW5pdFdpdGhQYXR0ZXJuU3RyaW5nOihO
U1N0cmluZyAqKXBhdHRlcm5TdHJpbmc7CisKKy0gKE5TU3RyaW5nICopc2NoZW1lOworLSAoTlNT
dHJpbmcgKilob3N0OworLSAoQk9PTCltYXRjaGVzU3ViZG9tYWluczsKKworQGVuZApkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbSBiL1dlYktp
dC9tYWMvTWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDM2Njc1YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9tYWMv
TWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0KQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKKworI2ltcG9ydCA8V2ViQ29yZS9Vc2Vy
Q29udGVudFVSTFBhdHRlcm4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRl
cmZhY2UgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuUHJpdmF0ZSA6IE5TT2JqZWN0Cit7CitAcHVi
bGljCisgICAgVXNlckNvbnRlbnRVUkxQYXR0ZXJuIHBhdHRlcm47Cit9CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm5Qcml2YXRlCitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4KKworLSAoaWQpaW5pdFdpdGhQYXR0
ZXJuU3RyaW5nOihOU1N0cmluZyAqKXBhdHRlcm5TdHJpbmcKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9wcml2
YXRlID0gW1tXZWJVc2VyQ29udGVudFVSTFBhdHRlcm5Qcml2YXRlIGFsbG9jXSBpbml0XTsKKyAg
ICBfcHJpdmF0ZS0+cGF0dGVybiA9IFVzZXJDb250ZW50VVJMUGF0dGVybihwYXR0ZXJuU3RyaW5n
KTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbX3By
aXZhdGUgcmVsZWFzZV07CisgICAgX3ByaXZhdGUgPSBuaWw7CisKKyAgICBbc3VwZXIgZGVhbGxv
Y107Cit9CisKKy0gKE5TU3RyaW5nICopc2NoZW1lCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5w
YXR0ZXJuLnNjaGVtZSgpOworfQorCistIChOU1N0cmluZyAqKWhvc3QKK3sKKyAgICByZXR1cm4g
X3ByaXZhdGUtPnBhdHRlcm4uaG9zdCgpOworfQorCistIChCT09MKW1hdGNoZXNTdWJkb21haW5z
Cit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5wYXR0ZXJuLm1hdGNoU3ViZG9tYWlucygpOworfQor
CitAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGQ3NjM4ZjEuLmY0OGY2MzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAt
MDQtMTUgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBV
c2VyQ29udGVudFVSTFBhdHRlcm4gYXMgV2ViS2l0IFNQSQorCisgICAgICAgIEZpeGVzIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzM3MzU0Pi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5p
ZGw6IEFkZGVkLgorCisgICAgICAgICogSW50ZXJmYWNlcy9XZWJLaXQuaWRsOiBBZGRlZCBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4uCisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL0ludGVyZmFj
ZXMudmNwcm9qOiBBZGRlZCBJV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLgorCisgICAgICAgICog
V2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOiBBZGRlZCBXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm4uCisKKyAgICAgICAgKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJu
KToKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6fldlYlVzZXJDb250ZW50VVJM
UGF0dGVybik6CisgICAgICAgIChXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46OmNyZWF0ZUluc3Rh
bmNlKToKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6QWRkUmVmKToKKyAgICAg
ICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6UmVsZWFzZSk6CisgICAgICAgIChXZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm46OlF1ZXJ5SW50ZXJmYWNlKToKKyAgICAgICAgU3RhbmRhcmQgQ09N
IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpw
YXJzZSk6IFBhcnNlIHRoZSBzdHJpbmcgaW50byBhCisgICAgICAgIFVzZXJDb250ZW50VVJMUGF0
dGVybiBhbmQgc3RvcmUgaXQuCisKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6
c2NoZW1lKToKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6aG9zdCk6CisgICAg
ICAgIChXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNTdWJkb21haW5zKToKKyAgICAg
ICAgQ2FsbCB0aHJvdWdoIHRvIFVzZXJDb250ZW50VVJMUGF0dGVybi4KKworICAgICAgICAqIFdl
YlVzZXJDb250ZW50VVJMUGF0dGVybi5oOiBBZGRlZC4KKwogMjAxMC0wNC0xNCAgQWRhbSBSb2Jl
biAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIERPTVdyYXBwZXJXb3JsZDo6
dW5yZWdpc3RlcldvcmxkIGFzIFdlYktpdCBTUEkgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaWRsIGIvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZWNiYTYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5pZGwKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERPX05PX0lNUE9SVFMKK2ltcG9ydCAib2Fp
ZGwuaWRsIjsKK2ltcG9ydCAib2NpZGwuaWRsIjsKKyNlbmRpZgorCitbCisgICAgb2JqZWN0LAor
ICAgIG9sZWF1dG9tYXRpb24sCisgICAgdXVpZChEQkYxOEU1QS03MDFCLTQ5YWItQjQ5MC1CRUQ0
MDA1M0I3ODgpLAorICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpCitdCitpbnRlcmZhY2UgSVdl
YlVzZXJDb250ZW50VVJMUGF0dGVybiA6IElVbmtub3duCit7CisgICAgSFJFU1VMVCBwYXJzZShb
aW5dIEJTVFIgcGF0dGVyblN0cmluZyk7CisgICAgSFJFU1VMVCBzY2hlbWUoW291dCwgcmV0dmFs
XSBCU1RSKik7CisgICAgSFJFU1VMVCBob3N0KFtvdXQsIHJldHZhbF0gQlNUUiopOworICAgIEhS
RVNVTFQgbWF0Y2hlc1N1YmRvbWFpbnMoW291dCwgcmV0dmFsXSBCT09MKiBtYXRjaGVzKTsKK30K
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9XZWJLaXQuaWRsIGIvV2ViS2l0L3dp
bi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKaW5kZXggYzQ4MTRhMS4uOThmNWRhOCAxMDA2NDQKLS0t
IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKKysrIGIvV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL1dlYktpdC5pZGwKQEAgLTEzNCw2ICsxMzQsNyBAQCBpbXBvcnQgIm9jaWRsLmlkbCI7
CiAjaW5jbHVkZSAiSVdlYlVSTFJlc3BvbnNlUHJpdmF0ZS5pZGwiCiAjaW5jbHVkZSAiSVdlYlVu
ZG9NYW5hZ2VyLmlkbCIKICNpbmNsdWRlICJJV2ViVW5kb1RhcmdldC5pZGwiCisjaW5jbHVkZSAi
SVdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5pZGwiCiAjaW5jbHVkZSAiSVdlYlZpZXcuaWRsIgog
I2luY2x1ZGUgIklXZWJWaWV3UHJpdmF0ZS5pZGwiCiAjaW5jbHVkZSAiSVdlYldvcmtlcnNQcml2
YXRlLmlkbCIKQEAgLTI5Myw0ICsyOTQsMTAgQEAgbGlicmFyeSBXZWJLaXQKICAgICBjb2NsYXNz
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gewogICAgICAgICBbZGVmYXVsdF0gaW50ZXJmYWNlIElX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOwogICAgIH0KKworICAgIFt1dWlkKDJENjJBRTI1LURFQUEt
NDk0NS1BNzZFLUNDRTA1RTg5OTY2NCldCisgICAgY29jbGFzcyBXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4geworICAgICAgICBbZGVmYXVsdF0gaW50ZXJmYWNlIElXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm47CisgICAgfQogfQorCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ov
SW50ZXJmYWNlcy52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52
Y3Byb2oKaW5kZXggYzZhMGFkZC4uMGRhYjhhOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJL
aXQudmNwcm9qL0ludGVyZmFjZXMudmNwcm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJv
ai9JbnRlcmZhY2VzLnZjcHJvagpAQCAtMTY2NCw2ICsxNjY0LDI2IEBACiAJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KIAkJPC9GaWxlPg0KIAkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXElu
dGVyZmFjZXNcSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5pZGwiDQorCQkJPg0KKwkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCT4NCisJCQkJPFRvb2wNCisJCQkJCU5hbWU9IlZDTUlETFRvb2wi
DQorCQkJCS8+DQorCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCT4NCisJCQkJPFRvb2wNCisJCQkJCU5hbWU9IlZDTUlETFRvb2wiDQorCQkJCS8+
DQorCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCTwvRmlsZT4NCisJCTxGaWxlDQogCQkJUmVs
YXRpdmVQYXRoPSIuLlxJbnRlcmZhY2VzXElXZWJWaWV3LmlkbCINCiAJCQk+DQogCQkJPEZpbGVD
b25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktp
dC52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagppbmRleCBj
YWFiMTY1Li4zNjM0NWVkIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0LnZjcHJvagorKysgYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagpA
QCAtODQ2LDYgKzg0NiwxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlZpZXcuaCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0xMjU4LDYgKzEyNjIsMTAgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlZpZXcuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBiL1dlYktpdC93aW4vV2Vi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42YzJjMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRETEwuaCIKKyNpbmNsdWRlICJXZWJVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvQlN0cmluZy5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvS1VSTC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworaW5saW5l
IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKCkKKyAg
ICA6IG1fcmVmQ291bnQoMCkKK3sKKyAgICArK2dDbGFzc0NvdW50OworICAgIGdDbGFzc05hbWVD
b3VudC5hZGQoIldlYlVzZXJDb250ZW50VVJMUGF0dGVybiIpOworfQorCitXZWJVc2VyQ29udGVu
dFVSTFBhdHRlcm46On5XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4oKQoreworICAgIC0tZ0NsYXNz
Q291bnQ7CisgICAgZ0NsYXNzTmFtZUNvdW50LnJlbW92ZSgiV2ViVXNlckNvbnRlbnRVUkxQYXR0
ZXJuIik7Cit9CisKK0NPTVB0cjxXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4+IFdlYlVzZXJDb250
ZW50VVJMUGF0dGVybjo6Y3JlYXRlSW5zdGFuY2UoKQoreworICAgIHJldHVybiBuZXcgV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuOworfQorCitVTE9ORyBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46
OkFkZFJlZigpCit7CisgICAgcmV0dXJuICsrbV9yZWZDb3VudDsKK30KKworVUxPTkcgV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuOjpSZWxlYXNlKCkKK3sKKyAgICBVTE9ORyBuZXdSZWZDb3VudCA9
IC0tbV9yZWZDb3VudDsKKyAgICBpZiAoIW5ld1JlZkNvdW50KQorICAgICAgICBkZWxldGUgdGhp
czsKKyAgICByZXR1cm4gbmV3UmVmQ291bnQ7Cit9CisKK0hSRVNVTFQgV2ViVXNlckNvbnRlbnRV
UkxQYXR0ZXJuOjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkK
K3sKKyAgICBpZiAoIXBwdk9iamVjdCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAq
cHB2T2JqZWN0ID0gMDsKKworICAgIGlmIChJc0VxdWFsSUlEKHJpaWQsIF9fdXVpZG9mKFdlYlVz
ZXJDb250ZW50VVJMUGF0dGVybikpKQorICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKKyAgICBl
bHNlIGlmIChJc0VxdWFsSUlEKHJpaWQsIF9fdXVpZG9mKElXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm4pKSkKKyAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElXZWJVc2VyQ29udGVudFVS
TFBhdHRlcm4qPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5r
bm93bikpCisgICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNfY2FzdDxJVW5rbm93bio+KHRoaXMp
OworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7CisKKyAgICBBZGRSZWYo
KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm46OnBhcnNlKEJTVFIgcGF0dGVyblN0cmluZykKK3sKKyAgICBtX3BhdHRlcm4gPSBVc2VyQ29u
dGVudFVSTFBhdHRlcm4oU3RyaW5nKHBhdHRlcm5TdHJpbmcsIFN5c1N0cmluZ0xlbihwYXR0ZXJu
U3RyaW5nKSkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlVzZXJDb250ZW50
VVJMUGF0dGVybjo6c2NoZW1lKEJTVFIqIHNjaGVtZSkKK3sKKyAgICBpZiAoIXNjaGVtZSkKKyAg
ICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqc2NoZW1lID0gQlN0cmluZyhtX3BhdHRlcm4u
c2NoZW1lKCkpLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm46Omhvc3QoQlNUUiogaG9zdCkKK3sKKyAgICBpZiAoIWhvc3Qp
CisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmhvc3QgPSBCU3RyaW5nKG1fcGF0dGVy
bi5ob3N0KCkpLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNTdWJkb21haW5zKEJPT0wqIG1hdGNoZXMpCit7
CisgICAgaWYgKCFtYXRjaGVzKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworICAgICptYXRj
aGVzID0gbV9wYXR0ZXJuLm1hdGNoU3ViZG9tYWlucygpOworICAgIHJldHVybiBTX09LOworfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBiL1dlYktp
dC93aW4vV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNjgwY2M0YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC93aW4vV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybl9oCisjZGVmaW5lIFdlYlVzZXJDb250ZW50VVJM
UGF0dGVybl9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBj
bGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47Cit9CisKK2NsYXNzIFdlYlVzZXJDb250ZW50VVJM
UGF0dGVybiA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIElXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4geworcHVibGljOgorICAgIHN0YXRpYyBDT01QdHI8V2ViVXNlckNvbnRlbnRVUkxQYXR0
ZXJuPiBjcmVhdGVJbnN0YW5jZSgpOworCisgICAgdmlydHVhbCBVTE9ORyBTVERNRVRIT0RDQUxM
VFlQRSBBZGRSZWYoKTsKKyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIFJlbGVh
c2UoKTsKKworcHJpdmF0ZToKKyAgICBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4oKTsKKyAgICB+
V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgUXVlcnlJbnRlcmZhY2UoUkVGSUlELCB2b2lkKiogcHB2T2JqZWN0KTsKKyAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcGFyc2UoQlNUUiBwYXR0ZXJuU3Ry
aW5nKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2NoZW1lKEJTVFIq
KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaG9zdChCU1RSKik7Cisg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG1hdGNoZXNTdWJkb21haW5zKEJP
T0wqIG1hdGNoZXMpOworCisgICAgVUxPTkcgbV9yZWZDb3VudDsKKyAgICBXZWJDb3JlOjpVc2Vy
Q29udGVudFVSTFBhdHRlcm4gbV9wYXR0ZXJuOworfTsKKworI2VuZGlmIC8vIFdlYlNjcmlwdFdv
cmxkX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53479</attachid>
            <date>2010-04-15 14:37:34 -0700</date>
            <delta_ts>2010-04-15 15:16:49 -0700</delta_ts>
            <desc>Revised patch with isValid</desc>
            <filename>bug-37354-20100415143733.patch</filename>
            <type>text/plain</type>
            <size>27225</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDc3NzRkNi4uZDVhMGU4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNC0xNSAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIFVzZXJDb250ZW50VVJMUGF0dGVy
biBhcyBXZWJLaXQgU1BJCisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzcz
NTQ+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZS5iYXNlLmV4cDogRXhwb3J0IFVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UsIGFu
ZCBzb3J0ZWQKKyAgICAgICAgdGhlIGZpbGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IE1hcmtlZCBVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBhcworICAg
ICAgICAiUHJpdmF0ZSIuCisKKyAgICAgICAgKiBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5o
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpVc2VyQ29udGVudFVS
TFBhdHRlcm4pOiBBZGRlZCBhCisgICAgICAgIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OmlzVmFsaWQpOiBBZGRlZCB0aGlzIGdl
dHRlci4KKwogMjAxMC0wNC0xNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cCBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAppbmRleCA2ZGYy
MmI2Li4wMmY0NjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCkBAIC0zMTIsOSArMzEyLDkgQEAgX19aTjdXZWJDb3Jl
MTRTZWN1cml0eU9yaWdpbjE4c2V0TG9jYWxMb2FkUG9saWN5RU5TMF8xNUxvY2FsTG9hZFBvbGlj
eUUKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOHNob3VsZEhpZGVSZWZlcnJlckVSS05T
XzRLVVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNHJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5
T3JpZ2luMjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJLTlNfNlN0cmluZ0UKK19fWk43V2Vi
Q29yZTE0U2VjdXJpdHlPcmlnaW4yN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c0V2CiBfX1pO
N1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjlhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUVS
S1MwX1JLTlNfNlN0cmluZ0VTNV9iCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMzJyZW1v
dmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUVSS1MwX1JLTlNfNlN0cmluZ0VTNV9iCi1fX1pO
N1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjdyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNFdgog
X19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjQwc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRl
bkZvclVSTFNjaGVtZUViUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdp
bjZjcmVhdGVFUktOU180S1VSTEVpCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luN2Nhbkxv
YWRFUktOU180S1VSTEVSS05TXzZTdHJpbmdFUE5TXzhEb2N1bWVudEUKQEAgLTQ0NCw2ICs0NDQs
NyBAQCBfX1pON1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9u
QXRUaW1lRVJLTlNfNlN0cmluZ0VQTlNfMTRTVgogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2Ny
aXB0VmFsdWUxMWRlc2VyaWFsaXplRVBLMTVPcGFxdWVKU0NvbnRleHRQUEsxM09wYXF1ZUpTVmFs
dWUKIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlNmNyZWF0ZUVQSzE1T3BhcXVl
SlNDb250ZXh0UEsxM09wYXF1ZUpTVmFsdWVQUzZfCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUQxRXYKK19fWk43V2ViQ29yZTIxVXNlckNvbnRlbnRVUkxQYXR0ZXJuNXBhcnNl
RVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIxV2luZG93c0xhdGluMUVuY29kaW5nRXYKIF9f
Wk43V2ViQ29yZTIxZmluZEV2ZW50V2l0aEtleVN0YXRlRVBOU181RXZlbnRFCiBfX1pON1dlYkNv
cmUyMWlzQmFja0ZvcndhcmRMb2FkVHlwZUVOU18xM0ZyYW1lTG9hZFR5cGVFCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwYTg1NzIuLjNhZWQwNjcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTAyLDcgKzQ1
MDIsNyBAQAogCQlCQ0E4NUExMDBDM0FFQUY0MDA2RjgzMDggLyogRE9NU1ZHTnVtYmVySW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQTg1
QTBGMEMzQUVBRjQwMDZGODMwOCAvKiBET01TVkdOdW1iZXJJbnRlcm5hbC5oICovOyB9OwogCQlC
Q0FBOTBDMzBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUE5MEMyMEE3RUJBNjAwMDhCMTIyOSAv
KiBTY3JvbGxiYXIuY3BwICovOyB9OwogCQlCQ0FDRjNCQzEwNzI5MjFBMDBDMEM4QTMgLyogVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQUNGM0JBMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBh
dHRlcm4uY3BwICovOyB9OwotCQlCQ0FDRjNCRDEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0FDRjNCQjEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
Ki87IH07CisJCUJDQUNGM0JEMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUNG
M0JCMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0FFRkNBRTEwMTZDRTRB
MDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3Iu
bW0gKi87IH07CiAJCUJDQjE2QzE3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkJGRTA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGUuY3BwICovOyB9OwogCQlCQ0IxNkMxODA5NzlDM0JEMDA0Njc3NDEg
LyogQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQjE2QkZGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmggYi9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmgKaW5kZXggMGIxYTI0OC4uMzQ1MGVkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1VzZXJD
b250ZW50VVJMUGF0dGVybi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRl
cm4uaApAQCAtMzUsMTIgKzM1LDE2IEBAIGNsYXNzIEtVUkw7CiAKIGNsYXNzIFVzZXJDb250ZW50
VVJMUGF0dGVybiB7CiBwdWJsaWM6CisgICAgVXNlckNvbnRlbnRVUkxQYXR0ZXJuKCkgOiBtX2lu
dmFsaWQodHJ1ZSksIG1fbWF0Y2hTdWJkb21haW5zKGZhbHNlKSB7IH0KKwogICAgIFVzZXJDb250
ZW50VVJMUGF0dGVybihjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiAgICAgOiBtX21hdGNoU3ViZG9t
YWlucyhmYWxzZSkKICAgICB7CiAgICAgICAgIG1faW52YWxpZCA9ICFwYXJzZShwYXR0ZXJuKTsK
ICAgICB9CiAKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhbV9pbnZhbGlkOyB9
CisKICAgICBib29sIG1hdGNoZXMoY29uc3QgS1VSTCYpIGNvbnN0OwogCiAgICAgY29uc3QgU3Ry
aW5nJiBzY2hlbWUoKSBjb25zdCB7IHJldHVybiBtX3NjaGVtZTsgfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDA2MDAxOS4uOGE0NWVhMyAx
MDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMDQtMTUgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgor
CisgICAgICAgIEV4cG9zZSBVc2VyQ29udGVudFVSTFBhdHRlcm4gYXMgV2ViS2l0IFNQSQorCisg
ICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM3MzU0Pi4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBBZGQgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLgorCiAyMDEwLTA0LTEw
ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFu
IEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
NWFhNDFjLi5lNmJiYWI1IDEwMDY0NAotLS0gYS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNDAsNiArMzQwLDggQEAKIAkJQzBCMUY3RTkxMEFDOEUzMTAwQzkyNUQ5IC8qIFdlYlNj
cmlwdFdvcmxkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzBCMUY3RTYxMEFDOEUzMTAwQzkyNUQ5IC8qIFdlYlNjcmlwdFdvcmxkLm1tICovOyB9Owog
CQlDMEIxRjdFQTEwQUM4RTMxMDBDOTI1RDkgLyogV2ViU2NyaXB0V29ybGRJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBCMUY3RTcxMEFD
OEUzMTAwQzkyNUQ5IC8qIFdlYlNjcmlwdFdvcmxkSW50ZXJuYWwuaCAqLzsgfTsKIAkJQzBCODhF
OEIxMEEwOEYzRDAwRkJCM0Y1IC8qIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBCODhFOEExMEEwOEYz
RDAwRkJCM0Y1IC8qIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUMwQzVCM0VFMTE3N0E0QTAwMDJC
MEFFRiAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVCM0VDMTE3N0E0QTAwMDJCMEFFRiAvKiBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDMEM1QjNFRjExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzBDNUIzRUQxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVy
bi5tbSAqLzsgfTsKIAkJREQ3Q0RFRTcwQTIzQkE5RTAwMDY5OTI4IC8qIFdlYlR5cGVzSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREN0NE
RUU2MEEyM0JBOUUwMDA2OTkyOCAvKiBXZWJUeXBlc0ludGVybmFsLmggKi87IH07CiAJCUREODk2
ODIwMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJFbGVtZW50RGljdGlvbmFyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQ4OTY4MUUwOUFBODcyNDAwOTdF
N0YwIC8qIFdlYkVsZW1lbnREaWN0aW9uYXJ5LmggKi87IH07CiAJCUREODk2ODIxMDlBQTg3MjQw
MDk3RTdGMCAvKiBXZWJFbGVtZW50RGljdGlvbmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREODk2ODFGMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJF
bGVtZW50RGljdGlvbmFyeS5tbSAqLzsgfTsKQEAgLTYzOCw2ICs2NDAsOCBAQAogCQlDMEIxRjdF
NjEwQUM4RTMxMDBDOTI1RDkgLyogV2ViU2NyaXB0V29ybGQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTY3JpcHRXb3JsZC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzBCMUY3RTcxMEFDOEUzMTAwQzkyNUQ5IC8qIFdlYlNjcmlwdFdvcmxk
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0V29y
bGRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEI4OEU4QTEwQTA4
RjNEMDBGQkIzRjUgLyogV2ViRnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMEM1QjNFQzExNzdBNEEwMDAyQjBBRUYgLyogV2Vi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMEM1QjNFRDExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERDdDREVFNjBBMjNC
QTlFMDAwNjk5MjggLyogV2ViVHlwZXNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJUeXBlc0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUREODk2ODFFMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJFbGVtZW50RGljdGlvbmFyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVsZW1l
bnREaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlERDg5NjgxRjA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERp
Y3Rpb25hcnkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkVsZW1lbnREaWN0aW9uYXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTk1Miw2ICs5NTYsOCBAQAog
CQkJCUY1OTY2OEM4MDJBRDI5MjMwMTg2MzVDQSAvKiBXZWJTdHJpbmdUcnVuY2F0b3IuaCAqLywK
IAkJCQlGNTk2NjhDOTAyQUQyOTIzMDE4NjM1Q0EgLyogV2ViU3RyaW5nVHJ1bmNhdG9yLm1tICov
LAogCQkJCUREN0NERUU2MEEyM0JBOUUwMDA2OTkyOCAvKiBXZWJUeXBlc0ludGVybmFsLmggKi8s
CisJCQkJQzBDNUIzRUQxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJDb250ZW50VVJMUGF0dGVy
bi5tbSAqLywKKwkJCQlDMEM1QjNFQzExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IE1pc2M7CiAJCQlwYXRoID0gbWFjL01p
c2M7CkBAIC0xNTM5LDYgKzE1NDUsNyBAQAogCQkJCTkzOTgxMDcxMDgyNEJGMDEwMDhERjAzOCAv
KiBXZWJWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0IwRjgxMDc2QzNGNzAw
MDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGNDQ4
NEYxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDMEM1QjNFRTExNzdBNEEwMDAyQjBBRUYgLyogV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE4OTYsNiArMTkwMyw3IEBACiAJCQkJOTM5ODEwRTgwODI0
QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
M0IwRjkxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFGNDQ4NTAxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJQzBDNUIzRUYxMTc3QTRBMDAwMkIwQUVGIC8qIFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybi5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkNzAwODVmLi4xOTNjMzMw
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTA0LTE1ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgVXNlckNvbnRlbnRVUkxQYXR0ZXJuIGFzIFdlYktp
dCBTUEkKKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNzM1ND4uCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5oOiBBZGRlZC4KKworICAgICAgICAqIE1pc2MvV2ViVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuIGluaXRXaXRoUGF0dGVyblN0cmluZzpdKTogSW5pdGlhbGl6ZQorICAgICAgICBfcHJp
dmF0ZSBhbmQgdGhlbiBwYXJzZSB0aGUgcGFzc2VkLWluIHN0cmluZyBpbnRvIGEKKyAgICAgICAg
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLgorICAgICAgICAoLVtXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm4gZGVhbGxvY10pOiBSZWxlYXNlIF9wcml2YXRlLgorCisgICAgICAgICgtW1dlYlVzZXJDb250
ZW50VVJMUGF0dGVybiBpc1ZhbGlkXSk6CisgICAgICAgICgtW1dlYlVzZXJDb250ZW50VVJMUGF0
dGVybiBzY2hlbWVdKToKKyAgICAgICAgKC1bV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuIGhvc3Rd
KToKKyAgICAgICAgKC1bV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuIG1hdGNoZXNTdWJkb21haW5z
XSk6CisgICAgICAgIENhbGwgdGhyb3VnaCB0byBVc2VyQ29udGVudFVSTFBhdHRlcm4uCisKIDIw
MTAtMDQtMTMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCBiL1dlYktpdC9tYWMvTWlzYy9XZWJVc2VyQ29udGVudFVS
TFBhdHRlcm4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWM0YmNmCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYlVzZXJDb250ZW50VVJMUGF0dGVy
bi5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworQGNsYXNzIFdlYlVzZXJDb250ZW50VVJMUGF0dGVyblBy
aXZhdGU7CisKK0BpbnRlcmZhY2UgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuIDogTlNPYmplY3Qg
eworICAgIFdlYlVzZXJDb250ZW50VVJMUGF0dGVyblByaXZhdGUgKl9wcml2YXRlOworfQorCist
IChpZClpbml0V2l0aFBhdHRlcm5TdHJpbmc6KE5TU3RyaW5nICopcGF0dGVyblN0cmluZzsKKwor
LSAoQk9PTClpc1ZhbGlkOworLSAoTlNTdHJpbmcgKilzY2hlbWU7CistIChOU1N0cmluZyAqKWhv
c3Q7CistIChCT09MKW1hdGNoZXNTdWJkb21haW5zOworCitAZW5kCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL01pc2MvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLm1tIGIvV2ViS2l0L21hYy9NaXNj
L1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41ZDlmNDllCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5tbQpAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1VzZXJDb250ZW50VVJM
UGF0dGVybi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGludGVyZmFjZSBXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm5Qcml2YXRlIDogTlNPYmplY3QKK3sKK0BwdWJsaWMKKyAgICBV
c2VyQ29udGVudFVSTFBhdHRlcm4gcGF0dGVybjsKK30KK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdlYlVzZXJDb250ZW50VVJMUGF0dGVyblByaXZhdGUKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybgorCistIChpZClpbml0V2l0aFBhdHRlcm5TdHJpbmc6
KE5TU3RyaW5nICopcGF0dGVyblN0cmluZworeworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Cisg
ICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3ByaXZhdGUgPSBbW1dl
YlVzZXJDb250ZW50VVJMUGF0dGVyblByaXZhdGUgYWxsb2NdIGluaXRdOworICAgIF9wcml2YXRl
LT5wYXR0ZXJuID0gVXNlckNvbnRlbnRVUkxQYXR0ZXJuKHBhdHRlcm5TdHJpbmcpOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtfcHJpdmF0ZSByZWxl
YXNlXTsKKyAgICBfcHJpdmF0ZSA9IG5pbDsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwor
LSAoQk9PTClpc1ZhbGlkCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5wYXR0ZXJuLmlzVmFsaWQo
KTsKK30KKworLSAoTlNTdHJpbmcgKilzY2hlbWUKK3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBh
dHRlcm4uc2NoZW1lKCk7Cit9CisKKy0gKE5TU3RyaW5nICopaG9zdAoreworICAgIHJldHVybiBf
cHJpdmF0ZS0+cGF0dGVybi5ob3N0KCk7Cit9CisKKy0gKEJPT0wpbWF0Y2hlc1N1YmRvbWFpbnMK
K3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhdHRlcm4ubWF0Y2hTdWJkb21haW5zKCk7Cit9CisK
K0BlbmQKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggZDc2MzhmMS4uYmU1MGY5OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0w
NC0xNSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIFVz
ZXJDb250ZW50VVJMUGF0dGVybiBhcyBXZWJLaXQgU1BJCisKKyAgICAgICAgRml4ZXMgPGh0dHA6
Ly93ZWJraXQub3JnL2IvMzczNTQ+LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmlk
bDogQWRkZWQuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL1dlYktpdC5pZGw6IEFkZGVkIFdlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi4KKworICAgICAgICAqIFdlYktpdC52Y3Byb2ovSW50ZXJmYWNl
cy52Y3Byb2o6IEFkZGVkIElXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uCisKKyAgICAgICAgKiBX
ZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6IEFkZGVkIFdlYlVzZXJDb250ZW50VVJMUGF0dGVy
bi4KKworICAgICAgICAqIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4p
OgorICAgICAgICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjp+V2ViVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuKToKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6Y3JlYXRlSW5zdGFu
Y2UpOgorICAgICAgICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpBZGRSZWYpOgorICAgICAg
ICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpSZWxlYXNlKToKKyAgICAgICAgKFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybjo6UXVlcnlJbnRlcmZhY2UpOgorICAgICAgICBTdGFuZGFyZCBDT00g
aW1wbGVtZW50YXRpb25zLgorCisgICAgICAgIChXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46OnBh
cnNlKTogUGFyc2UgdGhlIHN0cmluZyBpbnRvIGEKKyAgICAgICAgVXNlckNvbnRlbnRVUkxQYXR0
ZXJuIGFuZCBzdG9yZSBpdC4KKworICAgICAgICAoV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpp
c1ZhbGlkKToKKyAgICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6c2NoZW1lKToKKyAg
ICAgICAgKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6aG9zdCk6CisgICAgICAgIChXZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNTdWJkb21haW5zKToKKyAgICAgICAgQ2FsbCB0aHJv
dWdoIHRvIFVzZXJDb250ZW50VVJMUGF0dGVybi4KKworICAgICAgICAqIFdlYlVzZXJDb250ZW50
VVJMUGF0dGVybi5oOiBBZGRlZC4KKwogMjAxMC0wNC0xNCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIERPTVdyYXBwZXJXb3JsZDo6dW5yZWdpc3Rlcldv
cmxkIGFzIFdlYktpdCBTUEkgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL0lXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0lXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmIyNjEwODQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybi5pZGwKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIERPX05PX0lNUE9SVFMKK2ltcG9ydCAib2FpZGwuaWRsIjsKK2lt
cG9ydCAib2NpZGwuaWRsIjsKKyNlbmRpZgorCitbCisgICAgb2JqZWN0LAorICAgIG9sZWF1dG9t
YXRpb24sCisgICAgdXVpZChEQkYxOEU1QS03MDFCLTQ5YWItQjQ5MC1CRUQ0MDA1M0I3ODgpLAor
ICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpCitdCitpbnRlcmZhY2UgSVdlYlVzZXJDb250ZW50
VVJMUGF0dGVybiA6IElVbmtub3duCit7CisgICAgSFJFU1VMVCBwYXJzZShbaW5dIEJTVFIgcGF0
dGVyblN0cmluZyk7CisgICAgSFJFU1VMVCBpc1ZhbGlkKFtvdXQsIHJldHZhbF0gQk9PTCogaXNW
YWxpZCk7CisgICAgSFJFU1VMVCBzY2hlbWUoW291dCwgcmV0dmFsXSBCU1RSKik7CisgICAgSFJF
U1VMVCBob3N0KFtvdXQsIHJldHZhbF0gQlNUUiopOworICAgIEhSRVNVTFQgbWF0Y2hlc1N1YmRv
bWFpbnMoW291dCwgcmV0dmFsXSBCT09MKiBtYXRjaGVzKTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vSW50ZXJmYWNlcy9XZWJLaXQuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktp
dC5pZGwKaW5kZXggYzQ4MTRhMS4uZDI1Y2RmZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL1dlYktpdC5pZGwKKysrIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwK
QEAgLTEzNCw2ICsxMzQsNyBAQCBpbXBvcnQgIm9jaWRsLmlkbCI7CiAjaW5jbHVkZSAiSVdlYlVS
TFJlc3BvbnNlUHJpdmF0ZS5pZGwiCiAjaW5jbHVkZSAiSVdlYlVuZG9NYW5hZ2VyLmlkbCIKICNp
bmNsdWRlICJJV2ViVW5kb1RhcmdldC5pZGwiCisjaW5jbHVkZSAiSVdlYlVzZXJDb250ZW50VVJM
UGF0dGVybi5pZGwiCiAjaW5jbHVkZSAiSVdlYlZpZXcuaWRsIgogI2luY2x1ZGUgIklXZWJWaWV3
UHJpdmF0ZS5pZGwiCiAjaW5jbHVkZSAiSVdlYldvcmtlcnNQcml2YXRlLmlkbCIKQEAgLTI5Myw0
ICsyOTQsOSBAQCBsaWJyYXJ5IFdlYktpdAogICAgIGNvY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiB7CiAgICAgICAgIFtkZWZhdWx0XSBpbnRlcmZhY2UgSVdlYkdlb2xvY2F0aW9uUG9zaXRp
b247CiAgICAgfQorCisgICAgW3V1aWQoMkQ2MkFFMjUtREVBQS00OTQ1LUE3NkUtQ0NFMDVFODk5
NjY0KV0KKyAgICBjb2NsYXNzIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybiB7CisgICAgICAgIFtk
ZWZhdWx0XSBpbnRlcmZhY2UgSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybjsKKyAgICB9CiB9CmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2ogYi9X
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2oKaW5kZXggYzZhMGFkZC4u
MGRhYjhhOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0ludGVyZmFjZXMu
dmNwcm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9JbnRlcmZhY2VzLnZjcHJvagpA
QCAtMTY2NCw2ICsxNjY0LDI2IEBACiAJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJPC9GaWxl
Pg0KIAkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcSVdlYlVzZXJDb250
ZW50VVJMUGF0dGVybi5pZGwiDQorCQkJPg0KKwkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCT4N
CisJCQkJPFRvb2wNCisJCQkJCU5hbWU9IlZDTUlETFRvb2wiDQorCQkJCS8+DQorCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiINCisJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCT4NCisJCQkJPFRv
b2wNCisJCQkJCU5hbWU9IlZDTUlETFRvb2wiDQorCQkJCS8+DQorCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCTwvRmlsZT4NCisJCTxGaWxlDQogCQkJUmVsYXRpdmVQYXRoPSIuLlxJbnRlcmZh
Y2VzXElXZWJWaWV3LmlkbCINCiAJCQk+DQogCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2lu
L1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagppbmRleCBjYWFiMTY1Li4zNjM0NWVkIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJL
aXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagpAQCAtODQ2LDYgKzg0NiwxMCBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlZpZXcuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBA
IC0xMjU4LDYgKzEyNjIsMTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCINCisJCQkJPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlZpZXcuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmNwcCBiL1dlYktpdC93aW4vV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzEyZmNhCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCkBAIC0w
LDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJLaXRETEwuaCIKKyNpbmNsdWRlICJXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKKwor
I2luY2x1ZGUgPFdlYkNvcmUvQlN0cmluZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworaW5saW5lIFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybjo6V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKCkKKyAgICA6IG1fcmVmQ291bnQoMCkKK3sK
KyAgICArK2dDbGFzc0NvdW50OworICAgIGdDbGFzc05hbWVDb3VudC5hZGQoIldlYlVzZXJDb250
ZW50VVJMUGF0dGVybiIpOworfQorCitXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46On5XZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm4oKQoreworICAgIC0tZ0NsYXNzQ291bnQ7CisgICAgZ0NsYXNzTmFt
ZUNvdW50LnJlbW92ZSgiV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuIik7Cit9CisKK0NPTVB0cjxX
ZWJVc2VyQ29udGVudFVSTFBhdHRlcm4+IFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6Y3JlYXRl
SW5zdGFuY2UoKQoreworICAgIHJldHVybiBuZXcgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwor
fQorCitVTE9ORyBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46OkFkZFJlZigpCit7CisgICAgcmV0
dXJuICsrbV9yZWZDb3VudDsKK30KKworVUxPTkcgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpS
ZWxlYXNlKCkKK3sKKyAgICBVTE9ORyBuZXdSZWZDb3VudCA9IC0tbV9yZWZDb3VudDsKKyAgICBp
ZiAoIW5ld1JlZkNvdW50KQorICAgICAgICBkZWxldGUgdGhpczsKKyAgICByZXR1cm4gbmV3UmVm
Q291bnQ7Cit9CisKK0hSRVNVTFQgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpRdWVyeUludGVy
ZmFjZShSRUZJSUQgcmlpZCwgdm9pZCoqIHBwdk9iamVjdCkKK3sKKyAgICBpZiAoIXBwdk9iamVj
dCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqcHB2T2JqZWN0ID0gMDsKKworICAg
IGlmIChJc0VxdWFsSUlEKHJpaWQsIF9fdXVpZG9mKFdlYlVzZXJDb250ZW50VVJMUGF0dGVybikp
KQorICAgICAgICAqcHB2T2JqZWN0ID0gdGhpczsKKyAgICBlbHNlIGlmIChJc0VxdWFsSUlEKHJp
aWQsIF9fdXVpZG9mKElXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4pKSkKKyAgICAgICAgKnBwdk9i
amVjdCA9IHN0YXRpY19jYXN0PElXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4qPih0aGlzKTsKKyAg
ICBlbHNlIGlmIChJc0VxdWFsSUlEKHJpaWQsIElJRF9JVW5rbm93bikpCisgICAgICAgICpwcHZP
YmplY3QgPSBzdGF0aWNfY2FzdDxJVW5rbm93bio+KHRoaXMpOworICAgIGVsc2UKKyAgICAgICAg
cmV0dXJuIEVfTk9JTlRFUkZBQ0U7CisKKyAgICBBZGRSZWYoKTsKKyAgICByZXR1cm4gU19PSzsK
K30KKworSFJFU1VMVCBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKEJTVFIgcGF0dGVy
blN0cmluZykKK3sKKyAgICBtX3BhdHRlcm4gPSBVc2VyQ29udGVudFVSTFBhdHRlcm4oU3RyaW5n
KHBhdHRlcm5TdHJpbmcsIFN5c1N0cmluZ0xlbihwYXR0ZXJuU3RyaW5nKSkpOworICAgIHJldHVy
biBTX09LOworfQorCitIUkVTVUxUIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6aXNWYWxpZChC
T09MKiBpc1ZhbGlkKQoreworICAgIGlmICghaXNWYWxpZCkKKyAgICAgICAgcmV0dXJuIEVfUE9J
TlRFUjsKKyAgICAqaXNWYWxpZCA9IG1fcGF0dGVybi5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpzY2hlbWUoQlNUUiog
c2NoZW1lKQoreworICAgIGlmICghc2NoZW1lKQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwor
ICAgICpzY2hlbWUgPSBCU3RyaW5nKG1fcGF0dGVybi5zY2hlbWUoKSkucmVsZWFzZSgpOworICAg
IHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6aG9z
dChCU1RSKiBob3N0KQoreworICAgIGlmICghaG9zdCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRF
UjsKKyAgICAqaG9zdCA9IEJTdHJpbmcobV9wYXR0ZXJuLmhvc3QoKSkucmVsZWFzZSgpOworICAg
IHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0
Y2hlc1N1YmRvbWFpbnMoQk9PTCogbWF0Y2hlcykKK3sKKyAgICBpZiAoIW1hdGNoZXMpCisgICAg
ICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKm1hdGNoZXMgPSBtX3BhdHRlcm4ubWF0Y2hTdWJk
b21haW5zKCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dl
YlVzZXJDb250ZW50VVJMUGF0dGVybi5oIGIvV2ViS2l0L3dpbi9XZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDNmNjQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaApAQCAt
MCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVXNlckNvbnRlbnRVUkxQYXR0
ZXJuX2gKKyNkZWZpbmUgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuX2gKKworI2luY2x1ZGUgPFdl
YkNvcmUvQ09NUHRyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4u
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVy
bjsKK30KKworY2xhc3MgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuIDogcHVibGljIE5vbmNvcHlh
YmxlLCBwdWJsaWMgSVdlYlVzZXJDb250ZW50VVJMUGF0dGVybiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIENPTVB0cjxXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4+IGNyZWF0ZUluc3RhbmNlKCk7CisK
KyAgICB2aXJ0dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpOworICAgIHZpcnR1
YWwgVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgUmVsZWFzZSgpOworCitwcml2YXRlOgorICAgIFdl
YlVzZXJDb250ZW50VVJMUGF0dGVybigpOworICAgIH5XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4o
KTsKKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBRdWVyeUludGVyZmFj
ZShSRUZJSUQsIHZvaWQqKiBwcHZPYmplY3QpOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBwYXJzZShCU1RSIHBhdHRlcm5TdHJpbmcpOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBpc1ZhbGlkKEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgc2NoZW1lKEJTVFIqKTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgaG9zdChCU1RSKik7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIG1hdGNoZXNTdWJkb21haW5zKEJPT0wqIG1hdGNoZXMpOworCisgICAgVUxPTkcg
bV9yZWZDb3VudDsKKyAgICBXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm4gbV9wYXR0ZXJu
OworfTsKKworI2VuZGlmIC8vIFdlYlNjcmlwdFdvcmxkX2gK
</data>
<flag name="review"
          id="37233"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>