<?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>62966</bug_id>
          
          <creation_ts>2011-06-19 23:08:38 -0700</creation_ts>
          <short_desc>SharedBufferCRLFLineReader should be made more generic.</short_desc>
          <delta_ts>2011-06-20 18:07:43 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jay Civelli">jcivelli</reporter>
          <assigned_to name="Jay Civelli">jcivelli</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>423493</commentid>
    <comment_count>0</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2011-06-19 23:08:38 -0700</bug_when>
    <thetext>The SharedBufferCRLFLineReader class is used by the MHTML parser code.
It should be made more generic so any separator (not only CRLFs) can be used.
That is needed for adding binary part support to MHTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423494</commentid>
    <comment_count>1</comment_count>
      <attachid>97751</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2011-06-19 23:17:17 -0700</bug_when>
    <thetext>Created attachment 97751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423496</commentid>
    <comment_count>2</comment_count>
      <attachid>97752</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2011-06-19 23:21:28 -0700</bug_when>
    <thetext>Created attachment 97752
Manually created patch

Created this patch manually as webkit-patch upload does not include the change to the moved files for some reason.

I have an extensive set of unit-tests for this code that I&apos;ll ad to TestWebKitAPI once I figured out how to add a dependency to WebCore in the TestWebKitAPI project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423996</commentid>
    <comment_count>3</comment_count>
      <attachid>97870</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2011-06-20 15:36:48 -0700</bug_when>
    <thetext>Created attachment 97870
Another try at uploading a manual patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424119</commentid>
    <comment_count>4</comment_count>
      <attachid>97870</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-20 17:36:43 -0700</bug_when>
    <thetext>Comment on attachment 97870
Another try at uploading a manual patch

Clearing flags on attachment: 97870

Committed r89321: &lt;http://trac.webkit.org/changeset/89321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424120</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-20 17:36:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424128</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-20 17:56:23 -0700</bug_when>
    <thetext>This may have caused a build failure for mac.
http://build.webkit.org/builders/Leopard%20Intel%20Debug%20%28Build%29/builds/36276/steps/compile-webkit/logs/stdio

Undefined symbols:
  &quot;__ZN7WebCore23SharedBufferChunkReader9nextChunkEb&quot;, referenced from:
      __ZN7WebCoreL21retrieveKeyValuePairsEPNS_23SharedBufferChunkReaderE in MIMEHeader.o
ld: symbol(s) not found

You may just need to add that symbol to the appropriate place in Source/WebCore/WebCore.exp.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424137</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-20 18:02:23 -0700</bug_when>
    <thetext>&gt; You may just need to add that symbol to the appropriate place in Source/WebCore/WebCore.exp.in.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424142</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-20 18:07:33 -0700</bug_when>
    <thetext>/me wonders how this patch got the green light from the mac-ews...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424143</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-20 18:07:43 -0700</bug_when>
    <thetext>Committed r89325: &lt;http://trac.webkit.org/changeset/89325&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97751</attachid>
            <date>2011-06-19 23:17:17 -0700</date>
            <delta_ts>2011-06-19 23:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62966-20110619231717.patch</filename>
            <type>text/plain</type>
            <size>18871</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg5MDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTY2YTdk
Y2IxODZmNDIyOWFhZWFhZDk3Zjg3YTM2MDAxMzA3NzM3ZS4uMzgxZjNmNDhjMGVmOWZkYmE1OWIw
YTNlYmE1MTc4MDI0MzVkNjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwMzcsNyArMTAz
Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNv
bXBvc2l0ZS5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAogICAgIHBsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAKLSAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5j
cHAKKyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKICAgICBwbGF0Zm9y
bS9TY2hlbWVSZWdpc3RyeS5jcHAKICAgICBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAog
ICAgIHBsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNjk5ZmQwZTU4NmE1
Y2Q5ZjUxYTRjOTJiZGMzYzAzYzQ1ZjJhNWFmLi41NmQyNGUyZjllNWYwYzA0Yjg5NDhkYjExMDBm
ZDgwNWM2YzE0ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDYtMTkgIEph
eSBDaXZlbGxpICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2luZyBTaGFyZWRCdWZmZXJDUkxGTGluZVJl
YWRlciBtb3JlIGdlbmVyaWMsIHNvIGl0IGNhbiBiZSB1c2VkIHRvIHJlYWQgTUhUTUwKKyAgICAg
ICAgZmlsZSB3aXRoIGJpbmFyeSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyOTY2CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1I
VE1MUGFyc2VyOjpNSFRNTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpNSFRNTFBhcnNlcjo6
cGFyc2VOZXh0UGFydCk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJz
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHA6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJl
YWRlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVua1JlYWRlcjo6U2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyQ2h1
bmtSZWFkZXI6OnNldFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXJD
aHVua1JlYWRlcjo6bmV4dENodW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJD
aHVua1JlYWRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyQ1JMRkxpbmVSZWFkZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL01JTUVI
ZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmV0cmlldmVLZXlWYWx1ZVBhaXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1JTUVIZWFkZXI6OnBhcnNlSGVhZGVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuaDoKKwogMjAxMS0wNi0xNCAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzYyNjc3
PiBQYXJ0IDIvMjogUmVtb3ZlIGR1cGxpY2F0ZSBoZWFkZXIgZW50cmllcyBpbiBXZWJDb3JlIHBy
b2plY3QgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNDQ3MmNiYTkxNmFi
Y2M1Mzg5ZjEyZTJhYjk0MGQ2YzY0NTIyYmM0Yy4uN2Y4MGZiYWQ5Y2Y4OThlMDdmODhmOTA5ZjMy
NzU2YTg0NGZmOTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjY5LDgg
KzI2NjksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyZVRleHRJbnB1dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBcCi0JU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwIFwKLQlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZFRpbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NvdW5kLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVBdXRob3Jp
emVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZGQwY2FkOGM0M2MxMjdmZTRmYzAzYjI2Njg1
MjcwOWQ2MjRkOGEyNC4uMDdhZGU3MmZmNzM2Y2M5Y2U3NTZkN2FjYjk0YzA0MTFkZjdkODM3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzg4LDcgKzc4OCw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2VhcmNoUG9wdXBN
ZW51LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9TeXN0ZW1UaW1lLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1RoZW1lLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1RoZW1lVHlwZXMuaCcsCkBAIC0zNjQwLDcgKzM2NDAsNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGlu
ZVJlYWRlci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVh
ZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2hhcmVkVGltZXIuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vU291bmQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU3VkZGVuVGVy
bWluYXRpb24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBmNTY1YTc5NWM2OWYwY2I3ODY4ZWFkZDJh
OGE4YzMxNzYwNjE3NzEuLjY3MzVjNmNlN2Y1MzQ5MWI0MDEwZWRkNDZiN2RiMjdhYzU0MGE3YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0xMDU2LDcgKzEwNTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBw
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJp
bmcuY3BwIFwKICAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIFwKLSAgICBwbGF0Zm9ybS9T
aGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgXAorICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ckNodW5rUmVhZGVyLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmcuY3BwIFwKICAgICBw
bGF0Zm9ybS90ZXh0L1RleHRCb3VuZGFyaWVzLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWMuY3BwIFwKQEAgLTIwNTksNyArMjA1OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaCBcCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAg
IHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIFwKLSAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxG
TGluZVJlYWRlci5oIFwKKyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIFwK
ICAgICBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NR
TGl0ZUZpbGVTeXN0ZW0uaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNmZl
NTEwZjkwMTYwMzE3NGVkYWQxNWYyN2U5NGVhYmUxOGRmNTJkMC4uMzRmNTBiOGI3ZTIzMDNkOWIz
Njk2YzZjZDgzMDFjY2E1Y2VhN2UzNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NjQ2LDExICsyNjY0NiwxMSBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZm
ZXJDUkxGTGluZVJlYWRlci5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxTaGFy
ZWRCdWZmZXJDaHVua1JlYWRlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmgi
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5o
IgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDJlZTFjZWFhMjM5ZGFiMTI0MzQy
MjE3Mzc0MzcyNGVlMGY3MGZkZi4uY2IxMTU3MGUyZDIyNWRmZDk1Mzk2ODQyMzM1NWEwZDVkMTIy
YjY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODA1LDYgKzgwNSw4IEBACiAJCTM3MkMwMEM0MTI5NjExRjEwMDVDOTU3NSAv
KiBUZXh0Qm91bmRhcmllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzNzJDMDBDMzEyOTYxMUYxMDA1Qzk1NzUgLyogVGV4dEJvdW5kYXJpZXMuY3Bw
ICovOyB9OwogCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MkMwMEQ4MTI5NjE5
RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTM3NDQ1NzBGMERCMDVGQTUwMEFFMDk5MiAvKiBTVkdHbHlw
aE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc0
NDU3MEUwREIwNUZBNTAwQUUwOTkyIC8qIFNWR0dseXBoTWFwLmggKi87IH07CisJCTM3NTY5RTAz
MTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzU2OUUwMDEzQUYxNzJDMDBD
REJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwICovOyB9OworCQkzNzU2OUUwNTEz
QUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NTY5RTAyMTNBRjE3MkMwMENEQkE4
RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oICovOyB9OwogCQkzNzVDRDIzMjExOUQ0M0M4
MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3NUNEMjMxMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5o
ICovOyB9OwogCQkzNzVDRDIzQjExOUQ0NEVBMDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVDRDIzOTEx
OUQ0NEVBMDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMubW0gKi87IH07CiAJCTM3NzRBQkE1MEZB
MjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NzRBQkEzMEZBMjFFQjQwMEFEN0RF
OSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODI0LDggKzgyNiw2IEBACiAJCTM3OUU2MUNDMTI2
Q0E1QzQwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzlFNjFDODEyNkNBNUMzMDBCNjNFOEQg
LyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oICovOyB9OwogCQkzN0FDQ0U0MjBEQTI5ODBGMDA4
OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM3QUNDRTQxMERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVy
aW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTM3QUNDRjY5MERBNDE0RTcwMDg5RTYwMiAvKiBGb250RGVzY3JpcHRpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdBQ0NFNjIwREEyQUE5
NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAgKi87IH07Ci0JCTM3QUZGREY2MTM3MEEw
QjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0FGRkRGNDEzNzBBMEI4MDBFODk1
QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwICovOyB9OwotCQkzN0FGRkRGNzEz
NzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QUZGREY1MTM3MEEwQjgwMEU4
OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oICovOyB9OwogCQkzN0MyMzYwQjEw
OTdFREVEMDBFRjlGNzIgLyogRm9udENvbXBsZXhUZXh0TWFjLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzIzNjBBMTA5N0VERUQwMEVGOUY3MiAv
KiBGb250Q29tcGxleFRleHRNYWMuY3BwICovOyB9OwogCQkzN0MyMzYxMDEwOTdFRTc3MDBFRjlG
NzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzIzNjBFMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4
VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwogCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyog
Q29tcGxleFRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0MyMzYwRjEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250
cm9sbGVyLmggKi87IH07CkBAIC03MjA0LDYgKzcyMDQsOCBAQAogCQkzNzJDMDBDMzEyOTYxMUYx
MDA1Qzk1NzUgLyogVGV4dEJvdW5kYXJpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGV4dEJvdW5kYXJpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzNzJDMDBEODEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmluZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzc0NDU3MEUwREIwNUZBNTAwQUUwOTkyIC8qIFNWR0dseXBoTWFwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0dseXBoTWFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTM3NTY5RTAwMTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZm
ZXJDaHVua1JlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
aGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTM3NTY5RTAyMTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzVDRDIzMTExOUQ0M0M4MDBBMkE4NTkg
LyogSHlwaGVuYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlwaGVu
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc1Q0QyMzkxMTlENDRFQTAw
QTJBODU5IC8qIEh5cGhlbmF0aW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSHlwaGVuYXRpb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjIzLDggKzcyMjUsNiBAQAog
CQkzNzlFNjFDODEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3QUNDRTQxMERBMjk4MEYwMDg5RTYwMiAv
KiBGb250UmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b250UmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0FDQ0U2
MjBEQTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnREZXNjcmlwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTM3QUZGREY0MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJD
UkxGTGluZVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
aGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTM3QUZGREY1MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRCdWZmZXJDUkxGTGlu
ZVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0MyMzYwQTEwOTdFREVE
MDBFRjlGNzIgLyogRm9udENvbXBsZXhUZXh0TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZvbnRDb21wbGV4VGV4dE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTM3QzIzNjBFMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRy
b2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGxleFRl
eHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdDMjM2MEYx
MDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV4VGV4dENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzMxLDggKzE4NzMxLDggQEAKIAkJCQkzM0MwQ0NEMzExMkM1
RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0LmggKi8sCiAJCQkJMUE0QTk1NEIwQjRFREND
QjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8sCiAJCQkJMUE0QTk1NEMwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oICovLAotCQkJCTM3QUZGREY0MTM3MEEwQjgwMEU4OTVD
MCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgKi8sCi0JCQkJMzdBRkZERjUxMzcw
QTBCODAwRTg5NUMwIC8qIFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmggKi8sCisJCQkJMzc1
NjlFMDAxM0FGMTcyQzAwQ0RCQThFIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNwcCAqLywK
KwkJCQkzNzU2OUUwMjEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIu
aCAqLywKIAkJCQk5MzMwOUVBMDA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCAqLywK
IAkJCQk0QjMwNDNDNjBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCAqLywKIAkJCQlGNTg3ODY2
MjAyREUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJhdG9yLmggKi8sCkBAIC0yMjMxMSw3ICsy
MjMxMSw2IEBACiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFi
aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFy
ZWRCdWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTM3QUZGREY3MTM3MEEwQjgwMEU4OTVDMCAv
KiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4Nzcw
RUIxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRTFCMUQ0MEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMjI4NzEsNiArMjI4NzAsNyBAQAogCQkJCUUxQkU1MTJFMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTM3NTY5RTA1MTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yNTE4Miw3ICsyNTE4Miw2IEBACiAJCQkJQjJBRkZDOTMwRDAw
QTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOTU0
RDBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxMkREOEUzMEQ5MUUyQjQwMDBGODlFRSAvKiBTaGFyZWRCdWZmZXJDRi5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkzN0FGRkRGNjEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxp
bmVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTk1NTIwQjRFRENGRjAwMkQ4QzND
IC8qIFNoYXJlZEJ1ZmZlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MEVBMTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzMwOUVBMjA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXJNYWMubW0gaW4gU291
cmNlcyAqLywKQEAgLTI1NjA4LDYgKzI1NjA3LDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAy
RUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
NTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzNzU2OUUwMzEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9taHRtbC9NSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9t
aHRtbC9NSFRNTFBhcnNlci5jcHAKaW5kZXggODMxMDJjYmZlM2FkZTIwYjY5OGY0Mzk0Mzk4ZGJh
OTRhNzRmY2U5ZS4uODRhMjZlZDUwMjQ2OThkODQ3MWI3OGQ3NGU5M2U3MTdmZGNkZDA5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MUGFyc2Vy
LmNwcApAQCAtNDMsMTAgKzQzLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IGJvb2wgc2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVh
ZGVyJiBsaW5lUmVhZGVyLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5KQorc3RhdGljIGJvb2wgc2tp
cExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyJiBsaW5lUmVh
ZGVyLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5KQogewogICAgIFN0cmluZyBsaW5lOwotICAgIHdo
aWxlICghKGxpbmUgPSBsaW5lUmVhZGVyLm5leHRMaW5lKCkpLmlzTnVsbCgpKSB7CisgICAgd2hp
bGUgKCEobGluZSA9IGxpbmVSZWFkZXIubmV4dENodW5rKCkpLmlzTnVsbCgpKSB7CiAgICAgICAg
IGlmIChsaW5lID09IGJvdW5kYXJ5KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpA
QCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgYm9vbCBza2lwTGluZXNVbnRpbEJvdW5kYXJ5Rm91bmQo
U2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXImIGxpbmVSZWFkZXIsCiB9CiAKIE1IVE1MUGFyc2Vy
OjpNSFRNTFBhcnNlcihTaGFyZWRCdWZmZXIqIGRhdGEpCi0gICAgOiBtX2xpbmVSZWFkZXIoZGF0
YSkKKyAgICA6IG1fbGluZVJlYWRlcihkYXRhLCAiXHJcbiIpCiB7CiB9CiAKQEAgLTE0Nyw3ICsx
NDcsNyBAQCBQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gTUhUTUxQYXJzZXI6OnBhcnNlTmV4
dFBhcnQoY29uc3QgTUlNRUhlYWRlciYgbWltZUhlYQogICAgIGNvbnN0IGJvb2wgY2hlY2tCb3Vu
ZGFyeSA9ICFlbmRPZlBhcnRCb3VuZGFyeS5pc0VtcHR5KCk7CiAgICAgYm9vbCBlbmRPZlBhcnRS
ZWFjaGVkID0gZmFsc2U7CiAgICAgU3RyaW5nIGxpbmU7Ci0gICAgd2hpbGUgKCEobGluZSA9IG1f
bGluZVJlYWRlci5uZXh0TGluZSgpKS5pc051bGwoKSkgeworICAgIHdoaWxlICghKGxpbmUgPSBt
X2xpbmVSZWFkZXIubmV4dENodW5rKCkpLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChjaGVja0Jv
dW5kYXJ5ICYmIChsaW5lID09IGVuZE9mUGFydEJvdW5kYXJ5IHx8IGxpbmUgPT0gZW5kT2ZEb2N1
bWVudEJvdW5kYXJ5KSkgewogICAgICAgICAgICAgZW5kT2ZBcmNoaXZlUmVhY2hlZCA9IChsaW5l
ID09IGVuZE9mRG9jdW1lbnRCb3VuZGFyeSk7CiAgICAgICAgICAgICBlbmRPZlBhcnRSZWFjaGVk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRN
TFBhcnNlci5oCmluZGV4IDUwMjYwMjk1ZTFjNGIyNjc1OWQ1NjQ4MDJlNzQxNGNhZjIxMzk4NmQu
LjA0M2M1MGY0NmI4ZDk1YTFlZTczYWMyNDIxNWJkZGRkMTlhNmMyOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MUGFyc2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuaApAQCAtMzIsNyAr
MzIsNyBAQAogI2RlZmluZSBNSFRNTFBhcnNlcl9oCiAKICNpZiBFTkFCTEUoTUhUTUwpCi0jaW5j
bHVkZSAiU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZm
ZXJDaHVua1JlYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWRkUmVz
b3VyY2VUb0FyY2hpdmUoQXJjaGl2ZVJlc291cmNlKiwgTUhUTUxBcmNoaXZlKik7CiAKLSAgICBT
aGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlciBtX2xpbmVSZWFkZXI7CisgICAgU2hhcmVkQnVmZmVy
Q2h1bmtSZWFkZXIgbV9saW5lUmVhZGVyOwogICAgIFZlY3RvcjxSZWZQdHI8QXJjaGl2ZVJlc291
cmNlPiA+IG1fcmVzb3VyY2VzOwogICAgIFZlY3RvcjxSZWZQdHI8TUhUTUxBcmNoaXZlPiA+IG1f
ZnJhbWVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TUlNRUhlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFk
ZXIuY3BwCmluZGV4IDg4YmZhYWExZGQwZTQyMTlhMmNjMTQ4ODdkNmQyOThhZjc5YWM5MGEuLmZi
Y2Y4MmM3ZTYwNWVlZWUyZjRkMGQwZDQ4ZTAyNTdhZmZjYzUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAog
I2luY2x1ZGUgIk1JTUVIZWFkZXIuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlUGFyc2VyLmgi
Ci0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCIKKyNpbmNsdWRlICJTaGFy
ZWRCdWZmZXJDaHVua1JlYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KQEAgLTQzLDEzICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gS2V5VmFsdWVNYXA7CiAKLXN0YXRpYyBLZXlWYWx1ZU1hcCBy
ZXRyaWV2ZUtleVZhbHVlUGFpcnMoV2ViQ29yZTo6U2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIq
IGJ1ZmZlcikKK3N0YXRpYyBLZXlWYWx1ZU1hcCByZXRyaWV2ZUtleVZhbHVlUGFpcnMoV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIqIGJ1ZmZlcikKIHsKICAgICBLZXlWYWx1ZU1hcCBr
ZXlWYWx1ZVBhaXJzOwogICAgIFN0cmluZyBsaW5lOwogICAgIFN0cmluZyBrZXk7CiAgICAgU3Ry
aW5nQnVpbGRlciB2YWx1ZTsKLSAgICB3aGlsZSAoIShsaW5lID0gYnVmZmVyLT5uZXh0TGluZSgp
KS5pc051bGwoKSkgeworICAgIHdoaWxlICghKGxpbmUgPSBidWZmZXItPm5leHRDaHVuaygpKS5p
c051bGwoKSkgewogICAgICAgICBpZiAobGluZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBicmVh
azsgLy8gRW1wdHkgbGluZSBtZWFucyBlbmQgb2Yga2V5L3ZhbHVlIHNlY3Rpb24uCiAgICAgICAg
IGlmIChsaW5lWzBdID09ICdcdCcpIHsKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIEtleVZhbHVl
TWFwIHJldHJpZXZlS2V5VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFyZWRCdWZmZXJDUkxGTGluZVJl
YWRlciogYnUKICAgICByZXR1cm4ga2V5VmFsdWVQYWlyczsKIH0KIAotUGFzc1JlZlB0cjxNSU1F
SGVhZGVyPiBNSU1FSGVhZGVyOjpwYXJzZUhlYWRlcihTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRl
ciogYnVmZmVyKQorUGFzc1JlZlB0cjxNSU1FSGVhZGVyPiBNSU1FSGVhZGVyOjpwYXJzZUhlYWRl
cihTaGFyZWRCdWZmZXJDaHVua1JlYWRlciogYnVmZmVyKQogewogICAgIFJlZlB0cjxNSU1FSGVh
ZGVyPiBtaW1lSGVhZGVyID0gYWRvcHRSZWYobmV3IE1JTUVIZWFkZXIpOwogICAgIEtleVZhbHVl
TWFwIGtleVZhbHVlUGFpcnMgPSByZXRyaWV2ZUtleVZhbHVlUGFpcnMoYnVmZmVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmgKaW5kZXggNjY4YmMxYTRh
YzUzZGNjYmM1NDc4ZDljZWZjYzY0NWQ5NTFlNjg0OS4uZjRhNDU1NjA0OTg1YTc5NWRhOTk0ZmQw
NjZkYTQzZGJhNDdhOTBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9NSU1FSGVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9N
SU1FSGVhZGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlckNodW5r
UmVhZGVyOwogCiAvLyBGSVhNRTogVGhpcyBjbGFzcyBpcyBhIGxpbWl0ZWQgTUlNRSBwYXJzZXIg
dXNlZCB0byBwYXJzZSB0aGUgTUlNRSBoZWFkZXJzIG9mIE1IVE1MIGZpbGVzLgogY2xhc3MgTUlN
RUhlYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1JTUVIZWFkZXI+IHsKQEAgLTQ5LDcgKzQ5LDcg
QEAgcHVibGljOgogICAgICAgICBVbmtub3duCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1JTUVIZWFkZXI+IHBhcnNlSGVhZGVyKFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyKik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TUlNRUhlYWRlcj4gcGFyc2VIZWFkZXIoU2hhcmVkQnVm
ZmVyQ2h1bmtSZWFkZXIqIGNyTEZMaW5lUmVhZGVyKTsKIAogICAgIGJvb2wgaXNNdWx0aXBhcnQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoIm11bHRpcGFydC8iKTsg
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97752</attachid>
            <date>2011-06-19 23:21:28 -0700</date>
            <delta_ts>2011-06-20 15:36:48 -0700</delta_ts>
            <desc>Manually created patch</desc>
            <filename>chunk_reader.patch</filename>
            <type>text/plain</type>
            <size>30817</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTY2YTdkYy4uMzgxZjNmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwMzcsNyArMTAzNyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKLSAgICBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXJDUkxGTGluZVJlYWRlci5jcHAKKyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5jcHAKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKICAgICBwbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmNwcAogICAgIHBsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyNjk5ZmQwLi41NmQyNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTEtMDYtMTkgIEpheSBDaXZlbGxpICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2luZyBTaGFyZWRCdWZm
ZXJDUkxGTGluZVJlYWRlciBtb3JlIGdlbmVyaWMsIHNvIGl0IGNhbiBiZSB1c2VkIHRvIHJlYWQg
TUhUTUwKKyAgICAgICAgZmlsZSB3aXRoIGJpbmFyeSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTY2CisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1IVE1MUGFyc2VyOjpNSFRNTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpN
SFRNTFBhcnNlcjo6cGFyc2VOZXh0UGFydCk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxQYXJzZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXJDUkxGTGluZVJlYWRlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVu
a1JlYWRlcjo6U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXI6OnNldFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
aGFyZWRCdWZmZXJDaHVua1JlYWRlcjo6bmV4dENodW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
aGFyZWRCdWZmZXJDaHVua1JlYWRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL01JTUVIZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmV0cmlldmVLZXlWYWx1
ZVBhaXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVIZWFkZXI6OnBhcnNlSGVhZGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuaDoKKwogMjAxMS0wNi0xNCAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzYyNjc3PiBQYXJ0IDIvMjogUmVtb3ZlIGR1cGxpY2F0ZSBoZWFkZXIgZW50cmllcyBp
biBXZWJDb3JlIHByb2plY3QgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
NDQ3MmNiYS4uN2Y4MGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjY5
LDggKzI2NjksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NlY3VyZVRleHRJbnB1dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBcCi0J
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZFRpbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NvdW5kLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVBdXRo
b3JpemVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZGQwY2FkOC4uMDdhZGU3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNzg4LDcgKzc4OCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vU2Ny
b2xsYmFyVGhlbWUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oJywKKyAgICAgICAgICAgICdwbGF0
Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9T
eXN0ZW1UaW1lLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1RoZW1lLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1RoZW1lVHlwZXMuaCcsCkBAIC0zNjQwLDcgKzM2NDAsNyBAQAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL1NlY3VyZVRleHRJbnB1dC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1NlY3VyZVRleHRJbnB1dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRl
ci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2hhcmVkVGltZXIuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vU291bmQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU3VkZGVuVGVybWluYXRp
b24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDBmNTY1YTcuLjY3MzVjNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CkBAIC0xMDU2LDcgKzEwNTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIFwKICAgICBw
bGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIFwKLSAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxG
TGluZVJlYWRlci5jcHAgXAorICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmNw
cCBcCiAgICAgcGxhdGZvcm0vdGV4dC9TdHJpbmcuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1Rl
eHRCb3VuZGFyaWVzLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwKQEAg
LTIwNTksNyArMjA1OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1Njcm9sbFZpZXcu
aCBcCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggXAogICAgIHBsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5oIFwKLSAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIFwK
KyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIFwKICAgICBwbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuaCBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0u
aCBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNmZlNTEwZi4uMzRmNTBiOCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2
NjQ2LDExICsyNjY0NiwxMSBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAiCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVxTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZDJlZTFjZS4uY2IxMTU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODA1LDYgKzgwNSw4IEBACiAJCTM3
MkMwMEM0MTI5NjExRjEwMDVDOTU3NSAvKiBUZXh0Qm91bmRhcmllcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzJDMDBDMzEyOTYxMUYxMDA1Qzk1
NzUgLyogVGV4dEJvdW5kYXJpZXMuY3BwICovOyB9OwogCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1
NzUgLyogRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3MkMwMEQ4MTI5NjE5RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3NDQ1NzBGMERC
MDVGQTUwMEFFMDk5MiAvKiBTVkdHbHlwaE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzc0NDU3MEUwREIwNUZBNTAwQUUwOTkyIC8qIFNWR0dseXBo
TWFwLmggKi87IH07CisJCTM3NTY5RTAzMTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJD
aHVua1JlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzU2OUUwMDEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIu
Y3BwICovOyB9OworCQkzNzU2OUUwNTEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1
bmtSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3NTY5RTAyMTNBRjE3MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oICov
OyB9OwogCQkzNzVDRDIzMjExOUQ0M0M4MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NUNEMjMxMTE5RDQzQzgw
MEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovOyB9OwogCQkzNzVDRDIzQjExOUQ0NEVBMDBBMkE4
NTkgLyogSHlwaGVuYXRpb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzNzVDRDIzOTExOUQ0NEVBMDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMu
bW0gKi87IH07CiAJCTM3NzRBQkE1MEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVl
c3RDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODI0LDgg
KzgyNiw2IEBACiAJCTM3OUU2MUNDMTI2Q0E1QzQwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
NzlFNjFDODEyNkNBNUMzMDBCNjNFOEQgLyogQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oICovOyB9
OwogCQkzN0FDQ0U0MjBEQTI5ODBGMDA4OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QUNDRTQxMERBMjk4
MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3QUNDRjY5MERBNDE0RTcwMDg5RTYwMiAvKiBG
b250RGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzdBQ0NFNjIwREEyQUE5NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAg
Ki87IH07Ci0JCTM3QUZGREY2MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGlu
ZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0FGRkRGNDEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIu
Y3BwICovOyB9OwotCQkzN0FGRkRGNzEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JM
RkxpbmVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3QUZGREY1MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRl
ci5oICovOyB9OwogCQkzN0MyMzYwQjEwOTdFREVEMDBFRjlGNzIgLyogRm9udENvbXBsZXhUZXh0
TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3
QzIzNjBBMTA5N0VERUQwMEVGOUY3MiAvKiBGb250Q29tcGxleFRleHRNYWMuY3BwICovOyB9Owog
CQkzN0MyMzYxMDEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzIzNjBFMTA5
N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwogCQkzN0My
MzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0MyMzYwRjEwOTdFRTc3MDBF
RjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmggKi87IH07CkBAIC03MjA0LDYgKzcyMDQs
OCBAQAogCQkzNzJDMDBDMzEyOTYxMUYxMDA1Qzk1NzUgLyogVGV4dEJvdW5kYXJpZXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEJvdW5kYXJpZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzJDMDBEODEyOTYxOUY4MDA1Qzk1NzUgLyog
RmluZE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmluZE9wdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc0NDU3MEUwREIwNUZBNTAwQUUw
OTkyIC8qIFNWR0dseXBoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0dseXBoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3NTY5RTAwMTNBRjE3
MkMwMENEQkE4RSAvKiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3NTY5RTAyMTNBRjE3MkMwMENEQkE4RSAvKiBTaGFy
ZWRCdWZmZXJDaHVua1JlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
aGFyZWRCdWZmZXJDaHVua1JlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
NzVDRDIzMTExOUQ0M0M4MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSHlwaGVuYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzc1Q0QyMzkxMTlENDRFQTAwQTJBODU5IC8qIEh5cGhlbmF0aW9uTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSHlwaGVuYXRpb25NYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBP
dmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03MjIzLDggKzcyMjUsNiBAQAogCQkzNzlFNjFDODEyNkNBNUMzMDBCNjNFOEQgLyogQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
YXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3
QUNDRTQxMERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb250UmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzN0FDQ0U2MjBEQTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnREZXNjcmlw
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM3QUZGREY0MTM3MEEwQjgw
MEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM3QUZGREY1MTM3MEEwQjgwMEU4OTVDMCAvKiBT
aGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzN0MyMzYwQTEwOTdFREVEMDBFRjlGNzIgLyogRm9udENvbXBsZXhUZXh0TWFjLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRDb21wbGV4VGV4dE1h
Yy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3QzIzNjBFMTA5N0VFNzcwMEVG
OUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzdDMjM2MEYxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29u
dHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV4VGV4dENv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzMxLDggKzE4NzMx
LDggQEAKIAkJCQkzM0MwQ0NEMzExMkM1RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0Lmgg
Ki8sCiAJCQkJMUE0QTk1NEIwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8s
CiAJCQkJMUE0QTk1NEMwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oICovLAotCQkJ
CTM3QUZGREY0MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5j
cHAgKi8sCi0JCQkJMzdBRkZERjUxMzcwQTBCODAwRTg5NUMwIC8qIFNoYXJlZEJ1ZmZlckNSTEZM
aW5lUmVhZGVyLmggKi8sCisJCQkJMzc1NjlFMDAxM0FGMTcyQzAwQ0RCQThFIC8qIFNoYXJlZEJ1
ZmZlckNodW5rUmVhZGVyLmNwcCAqLywKKwkJCQkzNzU2OUUwMjEzQUYxNzJDMDBDREJBOEUgLyog
U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCAqLywKIAkJCQk5MzMwOUVBMDA5OUVCNzhDMDA1NkU1
ODEgLyogU2hhcmVkVGltZXIuaCAqLywKIAkJCQk0QjMwNDNDNjBBRTAzNzAzMDBBODI2NDcgLyog
U291bmQuaCAqLywKIAkJCQlGNTg3ODY2MjAyREUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJh
dG9yLmggKi8sCkBAIC0yMjMxMSw3ICsyMjMxMSw2IEBACiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAw
N0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBB
NURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5NTRF
MEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTM3
QUZGREY3MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDk4NzcwRUIxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1
ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQ0MEZGNTk4Njkw
MDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjI4NzEsNiArMjI4
NzAsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRp
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVy
b1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTM3NTY5RTA1MTNBRjE3MkMwMENEQkE4RSAvKiBT
aGFyZWRCdWZmZXJDaHVua1JlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNTE4Miw3ICsyNTE4
Miw2IEBACiAJCQkJQjJBRkZDOTMwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgaW4g
U291cmNlcyAqLywKIAkJCQkxQTRBOTU0RDBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkREOEUzMEQ5MUUyQjQwMDBGODlFRSAvKiBTaGFy
ZWRCdWZmZXJDRi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzN0FGRkRGNjEzNzBBMEI4MDBFODk1
QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE0QTk1NTIwQjRFRENGRjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlck1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5ODc3MEVBMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUVBMjA5OUVCNzhDMDA1NkU1ODEgLyog
U2hhcmVkVGltZXJNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTI1NjA4LDYgKzI1NjA3LDcgQEAK
IAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9s
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzNzU2OUUwMzEzQUYxNzJDMDBDREJBOEUgLyogU2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTFBhcnNlci5jcHAKaW5kZXggODMxMDJj
Yi4uODRhMjZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21o
dG1sL01IVE1MUGFyc2VyLmNwcApAQCAtNDMsMTAgKzQzLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIGJvb2wgc2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKFNoYXJlZEJ1
ZmZlckNSTEZMaW5lUmVhZGVyJiBsaW5lUmVhZGVyLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5KQor
c3RhdGljIGJvb2wgc2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKFNoYXJlZEJ1ZmZlckNodW5r
UmVhZGVyJiBsaW5lUmVhZGVyLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5KQogewogICAgIFN0cmlu
ZyBsaW5lOwotICAgIHdoaWxlICghKGxpbmUgPSBsaW5lUmVhZGVyLm5leHRMaW5lKCkpLmlzTnVs
bCgpKSB7CisgICAgd2hpbGUgKCEobGluZSA9IGxpbmVSZWFkZXIubmV4dENodW5rKCkpLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChsaW5lID09IGJvdW5kYXJ5KQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgYm9vbCBza2lwTGluZXNVbnRp
bEJvdW5kYXJ5Rm91bmQoU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXImIGxpbmVSZWFkZXIsCiB9
CiAKIE1IVE1MUGFyc2VyOjpNSFRNTFBhcnNlcihTaGFyZWRCdWZmZXIqIGRhdGEpCi0gICAgOiBt
X2xpbmVSZWFkZXIoZGF0YSkKKyAgICA6IG1fbGluZVJlYWRlcihkYXRhLCAiXHJcbiIpCiB7CiB9
CiAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gTUhUTUxQ
YXJzZXI6OnBhcnNlTmV4dFBhcnQoY29uc3QgTUlNRUhlYWRlciYgbWltZUhlYQogICAgIGNvbnN0
IGJvb2wgY2hlY2tCb3VuZGFyeSA9ICFlbmRPZlBhcnRCb3VuZGFyeS5pc0VtcHR5KCk7CiAgICAg
Ym9vbCBlbmRPZlBhcnRSZWFjaGVkID0gZmFsc2U7CiAgICAgU3RyaW5nIGxpbmU7Ci0gICAgd2hp
bGUgKCEobGluZSA9IG1fbGluZVJlYWRlci5uZXh0TGluZSgpKS5pc051bGwoKSkgeworICAgIHdo
aWxlICghKGxpbmUgPSBtX2xpbmVSZWFkZXIubmV4dENodW5rKCkpLmlzTnVsbCgpKSB7CiAgICAg
ICAgIGlmIChjaGVja0JvdW5kYXJ5ICYmIChsaW5lID09IGVuZE9mUGFydEJvdW5kYXJ5IHx8IGxp
bmUgPT0gZW5kT2ZEb2N1bWVudEJvdW5kYXJ5KSkgewogICAgICAgICAgICAgZW5kT2ZBcmNoaXZl
UmVhY2hlZCA9IChsaW5lID09IGVuZE9mRG9jdW1lbnRCb3VuZGFyeSk7CiAgICAgICAgICAgICBl
bmRPZlBhcnRSZWFjaGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9taHRtbC9NSFRNTFBhcnNlci5oCmluZGV4IDUwMjYwMjkuLjA0M2M1MGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MUGFyc2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuaApAQCAt
MzIsNyArMzIsNyBAQAogI2RlZmluZSBNSFRNTFBhcnNlcl9oCiAKICNpZiBFTkFCTEUoTUhUTUwp
Ci0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCIKKyNpbmNsdWRlICJTaGFy
ZWRCdWZmZXJDaHVua1JlYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
YWRkUmVzb3VyY2VUb0FyY2hpdmUoQXJjaGl2ZVJlc291cmNlKiwgTUhUTUxBcmNoaXZlKik7CiAK
LSAgICBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlciBtX2xpbmVSZWFkZXI7CisgICAgU2hhcmVk
QnVmZmVyQ2h1bmtSZWFkZXIgbV9saW5lUmVhZGVyOwogICAgIFZlY3RvcjxSZWZQdHI8QXJjaGl2
ZVJlc291cmNlPiA+IG1fcmVzb3VyY2VzOwogICAgIFZlY3RvcjxSZWZQdHI8TUhUTUxBcmNoaXZl
PiA+IG1fZnJhbWVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjNmZDhjYy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRC
dWZmZXJDUkxGTGluZVJlYWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmgi
Ci0KLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU2hhcmVkQnVmZmVyQ1JMRkxpbmVS
ZWFkZXI6OlNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyKFNoYXJlZEJ1ZmZlciogYnVmZmVyKQot
ICAgIDogbV9idWZmZXIoYnVmZmVyKQotICAgICwgbV9idWZmZXJQb3NpdGlvbigwKQotICAgICwg
bV9zZWdtZW50KDApCi0gICAgLCBtX3NlZ21lbnRMZW5ndGgoMCkKLSAgICAsIG1fc2VnbWVudElu
ZGV4KDApCi0gICAgLCBtX3JlYWNoZWRFbmRPZkZpbGUoZmFsc2UpCi17Ci19Ci0KLVN0cmluZyBT
aGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlcjo6bmV4dExpbmUoKQotewotICAgIGlmIChtX3JlYWNo
ZWRFbmRPZkZpbGUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIGJvb2wgcHJldmlv
dXNDaGFyYWN0ZXJXYXNDUiA9IGZhbHNlOwotICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRl
cjsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBib29sIHJlYWNoZWRFbmRPZkxpbmUgPSBm
YWxzZTsKLSAgICAgICAgd2hpbGUgKG1fc2VnbWVudEluZGV4IDwgbV9zZWdtZW50TGVuZ3RoKSB7
Ci0gICAgICAgICAgICByZWFjaGVkRW5kT2ZMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICBjaGFy
IGN1cnJlbnRDaGFyYWN0ZXIgPSBtX3NlZ21lbnRbbV9zZWdtZW50SW5kZXhdOwotICAgICAgICAg
ICAgaWYgKHByZXZpb3VzQ2hhcmFjdGVyV2FzQ1IpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vy
cmVudENoYXJhY3RlciA9PSAnXG4nKQotICAgICAgICAgICAgICAgICAgICByZWFjaGVkRW5kT2ZM
aW5lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKCdccicpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50
Q2hhcmFjdGVyICE9ICdccicpCi0gICAgICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQo
Y3VycmVudENoYXJhY3Rlcik7Ci0KLSAgICAgICAgICAgIHByZXZpb3VzQ2hhcmFjdGVyV2FzQ1Ig
PSAoY3VycmVudENoYXJhY3RlciA9PSAnXHInKTsKLSAgICAgICAgICAgIG1fc2VnbWVudEluZGV4
Kys7Ci0gICAgICAgICAgICBpZiAocmVhY2hlZEVuZE9mTGluZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
UmVhZCB0aGUgbmV4dCBzZWdtZW50LgotICAgICAgICBtX3NlZ21lbnRJbmRleCA9IDA7Ci0gICAg
ICAgIG1fYnVmZmVyUG9zaXRpb24gKz0gbV9zZWdtZW50TGVuZ3RoOwotICAgICAgICBtX3NlZ21l
bnRMZW5ndGggPSBtX2J1ZmZlci0+Z2V0U29tZURhdGEobV9zZWdtZW50LCBtX2J1ZmZlclBvc2l0
aW9uKTsKLSAgICAgICAgaWYgKCFtX3NlZ21lbnRMZW5ndGgpIHsKLSAgICAgICAgICAgIG1fcmVh
Y2hlZEVuZE9mRmlsZSA9IHRydWU7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXNDaGFyYWN0ZXJX
YXNDUikKLSAgICAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXHInKTsKLSAgICAg
ICAgICAgIFN0cmluZyBsaW5lID0gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwotICAgICAgICAg
ICAgcmV0dXJuIChsaW5lLmlzRW1wdHkoKSAmJiAhcmVhY2hlZEVuZE9mTGluZSkgPyBTdHJpbmco
KSA6IGxpbmU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGlu
ZVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVS
ZWFkZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ2OTk5My4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhcmVkQnVmZmVyQ1JMRkxp
bmVSZWFkZXJfaAotI2RlZmluZSBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlcl9oCi0KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci1jbGFzcyBTdHJp
bmdCdWlsZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNoYXJlZEJ1ZmZl
cjsKLQotY2xhc3MgU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIgewotcHVibGljOgotICAgIGV4
cGxpY2l0IFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyKFNoYXJlZEJ1ZmZlciopOwotCi0gICAg
Ly8gUmV0dXJucyB0aGUgbmV4dCBsaW5lIHJlYWQgZnJvbSB0aGUgYnVmZmVyLgotICAgIC8vIFJl
dHVybnMgYSBudWxsIHN0cmluZyB3aGVuIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBoYXMgYmVlbiBy
ZWFjaGVkLgotICAgIFN0cmluZyBuZXh0TGluZSgpOwotCi1wcml2YXRlOgotICAgIFNoYXJlZEJ1
ZmZlciogbV9idWZmZXI7Ci0gICAgc2l6ZV90IG1fYnVmZmVyUG9zaXRpb247Ci0gICAgY29uc3Qg
Y2hhciogbV9zZWdtZW50OwotICAgIHNpemVfdCBtX3NlZ21lbnRMZW5ndGg7Ci0gICAgc2l6ZV90
IG1fc2VnbWVudEluZGV4OwotICAgIGJvb2wgbV9yZWFjaGVkRW5kT2ZGaWxlOwotfTsKLQotfQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ckNodW5rUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNo
dW5rUmVhZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODhmODli
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
Q2h1bmtSZWFkZXIuY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCIKKworI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitTaGFyZWRCdWZmZXJDaHVua1JlYWRlcjo6U2hhcmVkQnVmZmVyQ2h1bmtSZWFk
ZXIoU2hhcmVkQnVmZmVyKiBidWZmZXIsIGNvbnN0IFN0cmluZyYgc2VwYXJhdG9yKQorICAgIDog
bV9idWZmZXIoYnVmZmVyKQorICAgICwgbV9idWZmZXJQb3NpdGlvbigwKQorICAgICwgbV9zZWdt
ZW50KDApCisgICAgLCBtX3NlZ21lbnRMZW5ndGgoMCkKKyAgICAsIG1fc2VnbWVudEluZGV4KDAp
CisgICAgLCBtX3JlYWNoZWRFbmRPZkZpbGUoZmFsc2UpCisgICAgLCBtX3NlcGFyYXRvcihzZXBh
cmF0b3IpCisgICAgLCBtX3NlcGFyYXRvckluZGV4KDApCit7Cit9CisKK3ZvaWQgU2hhcmVkQnVm
ZmVyQ2h1bmtSZWFkZXI6OnNldFNlcGFyYXRvcihjb25zdCBTdHJpbmcmIHNlcGFyYXRvcikKK3sK
KyAgICBtX3NlcGFyYXRvciA9IHNlcGFyYXRvcjsKK30KKworU3RyaW5nIFNoYXJlZEJ1ZmZlckNo
dW5rUmVhZGVyOjpuZXh0Q2h1bmsoYm9vbCBpbmNsdWRlU2VwYXJhdG9yKQoreworICAgIGlmICht
X3JlYWNoZWRFbmRPZkZpbGUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmlu
Z0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICB3aGls
ZSAobV9zZWdtZW50SW5kZXggPCBtX3NlZ21lbnRMZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXIg
Y3VycmVudENoYXJhY3RlciA9IG1fc2VnbWVudFttX3NlZ21lbnRJbmRleCsrXTsKKyAgICAgICAg
ICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyICE9IG1fc2VwYXJhdG9yW21fc2VwYXJhdG9ySW5kZXhd
KSB7CisgICAgICAgICAgICAgIGlmIChtX3NlcGFyYXRvckluZGV4ID4gMCkgeworICAgICAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKG1fc2VwYXJhdG9yLnN1YnN0cmluZygwLCBtX3Nl
cGFyYXRvckluZGV4KSk7CisgICAgICAgICAgICAgICAgbV9zZXBhcmF0b3JJbmRleCA9IDA7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoY3VycmVu
dENoYXJhY3Rlcik7CisgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbV9zZXBhcmF0b3JJbmRleCsrOworICAgICAgICAgICAgaWYgKG1fc2VwYXJhdG9y
SW5kZXggPT0gbV9zZXBhcmF0b3IubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgaWYgKGluY2x1
ZGVTZXBhcmF0b3IpCisgICAgICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobV9zZXBh
cmF0b3IpOworICAgICAgICAgICAgICBtX3NlcGFyYXRvckluZGV4ID0gMDsKKyAgICAgICAgICAg
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIC8vIFJlYWQgdGhlIG5leHQgc2VnbWVudC4KKyAgICAgICAgbV9zZWdt
ZW50SW5kZXggPSAwOworICAgICAgICBtX2J1ZmZlclBvc2l0aW9uICs9IG1fc2VnbWVudExlbmd0
aDsKKyAgICAgICAgbV9zZWdtZW50TGVuZ3RoID0gbV9idWZmZXItPmdldFNvbWVEYXRhKG1fc2Vn
bWVudCwgbV9idWZmZXJQb3NpdGlvbik7CisgICAgICAgIGlmICghbV9zZWdtZW50TGVuZ3RoKSB7
CisgICAgICAgICAgICBtX3JlYWNoZWRFbmRPZkZpbGUgPSB0cnVlOworICAgICAgICAgICAgaWYg
KG1fc2VwYXJhdG9ySW5kZXggPiAwKQorICAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZChtX3NlcGFyYXRvci5zdWJzdHJpbmcoMCwgbV9zZXBhcmF0b3JJbmRleCkpOworICAgICAgICAg
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIubGVuZ3RoKCkgPiAwID8gc3RyaW5nQnVpbGRlci50b1N0
cmluZygpIDogU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFN0cmluZygp
OyAvLyBDb21waWxlciBpcyB1bmhhcHB5IHdpdGhvdXQgdGhpcy4KK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM3NjdkNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXJfaAorI2RlZmluZSBTaGFyZWRC
dWZmZXJDaHVua1JlYWRlcl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmdCdWlsZGVyOworfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgU2hhcmVkQnVmZmVyQ2h1bmtS
ZWFkZXIgeworcHVibGljOgorICAgIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyKFNoYXJlZEJ1ZmZl
ciosIGNvbnN0IFN0cmluZyYgc2VwYXJhdG9yKTsKKworICAgIHZvaWQgc2V0U2VwYXJhdG9yKGNv
bnN0IFN0cmluZyYpOworCisgICAgLy8gUmV0dXJucyBhIG51bGwgc3RyaW5nIHdoZW4gdGhlIGVu
ZCBvZiB0aGUgYnVmZmVyIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgU3RyaW5nIG5leHRDaHVuayhi
b29sIGluY2x1ZGVTZXBhcmF0b3IgPSBmYWxzZSk7CisKK3ByaXZhdGU6CisgICAgU2hhcmVkQnVm
ZmVyKiBtX2J1ZmZlcjsKKyAgICBzaXplX3QgbV9idWZmZXJQb3NpdGlvbjsKKyAgICBjb25zdCBj
aGFyKiBtX3NlZ21lbnQ7CisgICAgc2l6ZV90IG1fc2VnbWVudExlbmd0aDsKKyAgICBzaXplX3Qg
bV9zZWdtZW50SW5kZXg7CisgICAgYm9vbCBtX3JlYWNoZWRFbmRPZkZpbGU7CisgICAgU3RyaW5n
IG1fc2VwYXJhdG9yOworICAgIHNpemVfdCBtX3NlcGFyYXRvckluZGV4OworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhl
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3Bw
CmluZGV4IDg4YmZhYWEuLmZiY2Y4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9NSU1FSGVhZGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIk1JTUVI
ZWFkZXIuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlUGFyc2VyLmgiCi0jaW5jbHVkZSAiU2hh
cmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTQzLDEzICs0
MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gS2V5VmFsdWVNYXA7CiAKLXN0YXRpYyBLZXlWYWx1ZU1hcCByZXRyaWV2ZUtleVZhbHVl
UGFpcnMoV2ViQ29yZTo6U2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIqIGJ1ZmZlcikKK3N0YXRp
YyBLZXlWYWx1ZU1hcCByZXRyaWV2ZUtleVZhbHVlUGFpcnMoV2ViQ29yZTo6U2hhcmVkQnVmZmVy
Q2h1bmtSZWFkZXIqIGJ1ZmZlcikKIHsKICAgICBLZXlWYWx1ZU1hcCBrZXlWYWx1ZVBhaXJzOwog
ICAgIFN0cmluZyBsaW5lOwogICAgIFN0cmluZyBrZXk7CiAgICAgU3RyaW5nQnVpbGRlciB2YWx1
ZTsKLSAgICB3aGlsZSAoIShsaW5lID0gYnVmZmVyLT5uZXh0TGluZSgpKS5pc051bGwoKSkgewor
ICAgIHdoaWxlICghKGxpbmUgPSBidWZmZXItPm5leHRDaHVuaygpKS5pc051bGwoKSkgewogICAg
ICAgICBpZiAobGluZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBicmVhazsgLy8gRW1wdHkgbGlu
ZSBtZWFucyBlbmQgb2Yga2V5L3ZhbHVlIHNlY3Rpb24uCiAgICAgICAgIGlmIChsaW5lWzBdID09
ICdcdCcpIHsKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIEtleVZhbHVlTWFwIHJldHJpZXZlS2V5
VmFsdWVQYWlycyhXZWJDb3JlOjpTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlciogYnUKICAgICBy
ZXR1cm4ga2V5VmFsdWVQYWlyczsKIH0KIAotUGFzc1JlZlB0cjxNSU1FSGVhZGVyPiBNSU1FSGVh
ZGVyOjpwYXJzZUhlYWRlcihTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlciogYnVmZmVyKQorUGFz
c1JlZlB0cjxNSU1FSGVhZGVyPiBNSU1FSGVhZGVyOjpwYXJzZUhlYWRlcihTaGFyZWRCdWZmZXJD
aHVua1JlYWRlciogYnVmZmVyKQogewogICAgIFJlZlB0cjxNSU1FSGVhZGVyPiBtaW1lSGVhZGVy
ID0gYWRvcHRSZWYobmV3IE1JTUVIZWFkZXIpOwogICAgIEtleVZhbHVlTWFwIGtleVZhbHVlUGFp
cnMgPSByZXRyaWV2ZUtleVZhbHVlUGFpcnMoYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmgKaW5kZXggNjY4YmMxYS4uZjRhNDU1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVyLmgKQEAgLTM3LDcgKzM3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTaGFyZWRCdWZmZXJDUkxGTGlu
ZVJlYWRlcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyOwogCiAvLyBGSVhNRTogVGhp
cyBjbGFzcyBpcyBhIGxpbWl0ZWQgTUlNRSBwYXJzZXIgdXNlZCB0byBwYXJzZSB0aGUgTUlNRSBo
ZWFkZXJzIG9mIE1IVE1MIGZpbGVzLgogY2xhc3MgTUlNRUhlYWRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE1JTUVIZWFkZXI+IHsKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBVbmtu
b3duCiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1JTUVIZWFkZXI+IHBhcnNlSGVh
ZGVyKFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TUlNRUhlYWRlcj4gcGFyc2VIZWFkZXIoU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIqIGNyTEZMaW5l
UmVhZGVyKTsKIAogICAgIGJvb2wgaXNNdWx0aXBhcnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRl
bnRUeXBlLnN0YXJ0c1dpdGgoIm11bHRpcGFydC8iKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97870</attachid>
            <date>2011-06-20 15:36:48 -0700</date>
            <delta_ts>2011-06-20 17:36:43 -0700</delta_ts>
            <desc>Another try at uploading a manual patch</desc>
            <filename>chunk_reader.patch</filename>
            <type>text/plain</type>
            <size>30080</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOGY5Zjc2ZS4uOGJkYzIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwNDIsNyArMTA0Miw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAogICAgIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKLSAgICBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXJDUkxGTGluZVJlYWRlci5jcHAKKyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5jcHAKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKICAgICBwbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmNwcAogICAgIHBsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmMzE2ZTFhLi5kNzA2ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTEtMDYtMTkgIEpheSBDaXZlbGxpICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2luZyBTaGFyZWRCdWZm
ZXJDUkxGTGluZVJlYWRlciBtb3JlIGdlbmVyaWMsIHNvIGl0IGNhbiBiZSB1c2VkIHRvIHJlYWQg
TUhUTUwKKyAgICAgICAgZmlsZSB3aXRoIGJpbmFyeSBwYXJ0cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTY2CisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2tpcExpbmVzVW50aWxCb3VuZGFyeUZvdW5kKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1IVE1MUGFyc2VyOjpNSFRNTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpN
SFRNTFBhcnNlcjo6cGFyc2VOZXh0UGFydCk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxQYXJzZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1Jl
YWRlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXJDUkxGTGluZVJlYWRlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXJDaHVu
a1JlYWRlcjo6U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXI6OnNldFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
aGFyZWRCdWZmZXJDaHVua1JlYWRlcjo6bmV4dENodW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
aGFyZWRCdWZmZXJDaHVua1JlYWRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL01JTUVIZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmV0cmlldmVLZXlWYWx1
ZVBhaXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVIZWFkZXI6OnBhcnNlSGVhZGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuaDoKKwogMjAxMS0wNi0yMCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxk
IGZpeDsgRml4IExlb3BhcmQgV2ViQ29yZSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGZlMzQyMjguLjBiOWE5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjc0Myw4ICsyNzQzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNSTEZMaW5lUmVh
ZGVyLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVS
ZWFkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFk
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRUaW1lci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Tb3VuZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlQXV0aG9yaXplci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE5NTJiMmMuLjlhZGY0
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc4OCw3ICs3ODgsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1Njcm9sbGJhclRoZW1lLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1NlYXJjaFBv
cHVwTWVudS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCcsCi0gICAg
ICAgICAgICAncGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vU3lzdGVtVGltZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9UaGVtZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9UaGVtZVR5cGVzLmgnLApAQCAtMzY2OCw3ICszNjY4LDcg
QEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9TZWN1cmVUZXh0SW5wdXQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
U2hhcmVkQnVmZmVyLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JM
RkxpbmVSZWFkZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVu
a1JlYWRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1NoYXJlZFRpbWVyLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1NvdW5kLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1N1ZGRl
blRlcm1pbmF0aW9uLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5ZTNmYWUxLi40MmFhZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtMTA2MSw3ICsxMDYxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNw
cCBcCiAgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcCBcCi0gICAgcGxhdGZvcm0vU2hhcmVk
QnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwIFwKKyAgICBwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVu
a1JlYWRlci5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Qm91bmRhcmllcy5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
LmNwcCBcCkBAIC0yMDc3LDcgKzIwNzcsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9T
Y3JvbGxWaWV3LmggXAogICAgIHBsYXRmb3JtL1NlYXJjaFBvcHVwTWVudS5oIFwKICAgICBwbGF0
Zm9ybS9TaGFyZWRCdWZmZXIuaCBcCi0gICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVS
ZWFkZXIuaCBcCisgICAgcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCBcCiAgICAg
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggXAogICAgIHBsYXRmb3JtL3NxbC9TUUxpdGVG
aWxlU3lzdGVtLmggXAogICAgIHBsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDAzNjk0ODcu
LmM2MjAxZGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yNjY2NiwxMSArMjY2NjYsMTEgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFk
ZXIuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cU2hhcmVkQnVmZmVyQ2h1bmtS
ZWFkZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5oIgorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDlmYWZjNDQuLjZkNDY5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTgwNCw2ICs4MDQs
OCBAQAogCQkzNzJDMDBDNDEyOTYxMUYxMDA1Qzk1NzUgLyogVGV4dEJvdW5kYXJpZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcyQzAwQzMxMjk2
MTFGMTAwNUM5NTc1IC8qIFRleHRCb3VuZGFyaWVzLmNwcCAqLzsgfTsKIAkJMzcyQzAwRDkxMjk2
MTlGODAwNUM5NTc1IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzNzJDMDBEODEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
NzQ0NTcwRjBEQjA1RkE1MDBBRTA5OTIgLyogU1ZHR2x5cGhNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NDQ1NzBFMERCMDVGQTUwMEFFMDk5MiAv
KiBTVkdHbHlwaE1hcC5oICovOyB9OworCQkzNzU2OUUwMzEzQUYxNzJDMDBDREJBOEUgLyogU2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzc1NjlFMDAxM0FGMTcyQzAwQ0RCQThFIC8qIFNoYXJlZEJ1ZmZlckNo
dW5rUmVhZGVyLmNwcCAqLzsgfTsKKwkJMzc1NjlFMDUxM0FGMTcyQzAwQ0RCQThFIC8qIFNoYXJl
ZEJ1ZmZlckNodW5rUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzNzU2OUUwMjEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtS
ZWFkZXIuaCAqLzsgfTsKIAkJMzc1Q0QyMzIxMTlENDNDODAwQTJBODU5IC8qIEh5cGhlbmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVDRDIz
MTExOUQ0M0M4MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLzsgfTsKIAkJMzc1Q0QyM0IxMTlE
NDRFQTAwQTJBODU5IC8qIEh5cGhlbmF0aW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc1Q0QyMzkxMTlENDRFQTAwQTJBODU5IC8qIEh5cGhl
bmF0aW9uTWFjLm1tICovOyB9OwogCQkzNzc0QUJBNTBGQTIxRUI0MDBBRDdERTkgLyogT3Zlcmxh
cFRlc3RSZXF1ZXN0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzNzc0QUJBMzBGQTIxRUI0MDBBRDdERTkgLyogT3ZlcmxhcFRlc3RSZXF1ZXN0
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTgyMyw4ICs4MjUsNiBAQAogCQkzNzlFNjFDQzEyNkNBNUM0MDBCNjNFOEQgLyogQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzc5RTYxQzgxMjZDQTVDMzAwQjYzRThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5
cGUuaCAqLzsgfTsKIAkJMzdBQ0NFNDIwREEyOTgwRjAwODlFNjAyIC8qIEZvbnRSZW5kZXJpbmdN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0FD
Q0U0MTBEQTI5ODBGMDA4OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0FDQ0Y2OTBEQTQxNEU3MDA4
OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM3QUNDRTYyMERBMkFBOTYwMDg5RTYwMiAvKiBGb250RGVzY3Jp
cHRpb24uY3BwICovOyB9OwotCQkzN0FGRkRGNjEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVm
ZmVyQ1JMRkxpbmVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzdBRkZERjQxMzcwQTBCODAwRTg5NUMwIC8qIFNoYXJlZEJ1ZmZlckNSTEZM
aW5lUmVhZGVyLmNwcCAqLzsgfTsKLQkJMzdBRkZERjcxMzcwQTBCODAwRTg5NUMwIC8qIFNoYXJl
ZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0FGRkRGNTEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JM
RkxpbmVSZWFkZXIuaCAqLzsgfTsKIAkJMzdDMjM2MEIxMDk3RURFRDAwRUY5RjcyIC8qIEZvbnRD
b21wbGV4VGV4dE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0MyMzYwQTEwOTdFREVEMDBFRjlGNzIgLyogRm9udENvbXBsZXhUZXh0TWFjLmNw
cCAqLzsgfTsKIAkJMzdDMjM2MTAxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
N0MyMzYwRTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCAqLzsg
fTsKIAkJMzdDMjM2MTExMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDMjM2MEYx
MDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oICovOyB9OwpAQCAtNzI0
Miw2ICs3MjQyLDggQEAKIAkJMzcyQzAwQzMxMjk2MTFGMTAwNUM5NTc1IC8qIFRleHRCb3VuZGFy
aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRCb3VuZGFy
aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcyQzAwRDgxMjk2MTlGODAw
NUM5NTc1IC8qIEZpbmRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZpbmRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3NDQ1NzBFMERC
MDVGQTUwMEFFMDk5MiAvKiBTVkdHbHlwaE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdHbHlwaE1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzNzU2
OUUwMDEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzNzU2OUUwMjEzQUYxNzJDMDBDREJB
OEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEh5cGhlbmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTM3NUNEMjM5MTE5RDQ0RUEwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbk1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEh5cGhlbmF0aW9u
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzc0QUJBMzBGQTIxRUI0MDBB
RDdERTkgLyogT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzI2MSw4ICs3MjYzLDYgQEAKIAkJMzc5RTYxQzgxMjZDQTVDMzAwQjYz
RThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzN0FDQ0U0MTBEQTI5ODBGMDA4OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFJlbmRlcmluZ01vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdBQ0NFNjIwREEyQUE5NjAwODlFNjAyIC8qIEZv
bnREZXNjcmlwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
b250RGVzY3JpcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzN0FGRkRG
NDEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzN0FGRkRGNTEzNzBBMEI4MDBF
ODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzdDMjM2MEExMDk3RURFRDAwRUY5RjcyIC8qIEZvbnRDb21wbGV4
VGV4dE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250Q29t
cGxleFRleHRNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0MyMzYwRTEw
OTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3QzIzNjBGMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21w
bGV4VGV4dENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
cGxleFRleHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg1
Nyw4ICsxODg1Nyw4IEBACiAJCQkJMzNDMENDRDMxMTJDNUU2MjAwQ0UwNTdEIC8qIFNlY3VyZVRl
eHRJbnB1dC5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZm
ZXIuY3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIu
aCAqLywKLQkJCQkzN0FGRkRGNDEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxp
bmVSZWFkZXIuY3BwICovLAotCQkJCTM3QUZGREY1MTM3MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRC
dWZmZXJDUkxGTGluZVJlYWRlci5oICovLAorCQkJCTM3NTY5RTAwMTNBRjE3MkMwMENEQkE4RSAv
KiBTaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAgKi8sCisJCQkJMzc1NjlFMDIxM0FGMTcyQzAw
Q0RCQThFIC8qIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmggKi8sCiAJCQkJOTMzMDlFQTAwOTlF
Qjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmggKi8sCiAJCQkJNEIzMDQzQzYwQUUwMzcwMzAw
QTgyNjQ3IC8qIFNvdW5kLmggKi8sCiAJCQkJRjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNT
TEtleUdlbmVyYXRvci5oICovLApAQCAtMjI0NDEsNyArMjI0NDEsNiBAQAogCQkJCUE4MEU2Q0U4
MEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOTQwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQkzN0FGRkRGNzEzNzBBMEI4MDBFODk1QzAgLyogU2hhcmVkQnVmZmVyQ1JMRkxpbmVS
ZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5ODc3MEVCMTI0MkM1MzUwMDIyMjZCQSAvKiBT
aGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlF
Qjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUxQjFE
NDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
MzMwLDcgKzI1MzI5LDYgQEAKIAkJCQlCMkFGRkM5MzBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVB
cmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0RURDQ0IwMDJEOEMzQyAvKiBT
aGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREQ4RTMwRDkxRTJCNDAwMEY4
OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTM3QUZGREY2MTM3
MEEwQjgwMEU4OTVDMCAvKiBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTRBOTU1MjBCNEVEQ0ZGMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4NzcwRUExMjQyQzUzNTAwMjIyNkJBIC8qIFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RUEyMDk5RUI3OEMw
MDU2RTU4MSAvKiBTaGFyZWRUaW1lck1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwCmluZGV4IDgz
MTAyY2IuLjg0YTI2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZl
L21odG1sL01IVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9taHRtbC9NSFRNTFBhcnNlci5jcHAKQEAgLTQzLDEwICs0MywxMCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIHNraXBMaW5lc1VudGlsQm91bmRhcnlGb3VuZChTaGFy
ZWRCdWZmZXJDUkxGTGluZVJlYWRlciYgbGluZVJlYWRlciwgY29uc3QgU3RyaW5nJiBib3VuZGFy
eSkKK3N0YXRpYyBib29sIHNraXBMaW5lc1VudGlsQm91bmRhcnlGb3VuZChTaGFyZWRCdWZmZXJD
aHVua1JlYWRlciYgbGluZVJlYWRlciwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSkKIHsKICAgICBT
dHJpbmcgbGluZTsKLSAgICB3aGlsZSAoIShsaW5lID0gbGluZVJlYWRlci5uZXh0TGluZSgpKS5p
c051bGwoKSkgeworICAgIHdoaWxlICghKGxpbmUgPSBsaW5lUmVhZGVyLm5leHRDaHVuaygpKS5p
c051bGwoKSkgewogICAgICAgICBpZiAobGluZSA9PSBib3VuZGFyeSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGJvb2wgc2tpcExpbmVz
VW50aWxCb3VuZGFyeUZvdW5kKFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyJiBsaW5lUmVhZGVy
LAogfQogCiBNSFRNTFBhcnNlcjo6TUhUTUxQYXJzZXIoU2hhcmVkQnVmZmVyKiBkYXRhKQotICAg
IDogbV9saW5lUmVhZGVyKGRhdGEpCisgICAgOiBtX2xpbmVSZWFkZXIoZGF0YSwgIlxyXG4iKQog
ewogfQogCkBAIC0xNDcsNyArMTQ3LDcgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IE1I
VE1MUGFyc2VyOjpwYXJzZU5leHRQYXJ0KGNvbnN0IE1JTUVIZWFkZXImIG1pbWVIZWEKICAgICBj
b25zdCBib29sIGNoZWNrQm91bmRhcnkgPSAhZW5kT2ZQYXJ0Qm91bmRhcnkuaXNFbXB0eSgpOwog
ICAgIGJvb2wgZW5kT2ZQYXJ0UmVhY2hlZCA9IGZhbHNlOwogICAgIFN0cmluZyBsaW5lOwotICAg
IHdoaWxlICghKGxpbmUgPSBtX2xpbmVSZWFkZXIubmV4dExpbmUoKSkuaXNOdWxsKCkpIHsKKyAg
ICB3aGlsZSAoIShsaW5lID0gbV9saW5lUmVhZGVyLm5leHRDaHVuaygpKS5pc051bGwoKSkgewog
ICAgICAgICBpZiAoY2hlY2tCb3VuZGFyeSAmJiAobGluZSA9PSBlbmRPZlBhcnRCb3VuZGFyeSB8
fCBsaW5lID09IGVuZE9mRG9jdW1lbnRCb3VuZGFyeSkpIHsKICAgICAgICAgICAgIGVuZE9mQXJj
aGl2ZVJlYWNoZWQgPSAobGluZSA9PSBlbmRPZkRvY3VtZW50Qm91bmRhcnkpOwogICAgICAgICAg
ICAgZW5kT2ZQYXJ0UmVhY2hlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuaAppbmRleCA1MDI2MDI5Li4wNDNjNTBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTFBhcnNlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MUGFyc2VyLmgK
QEAgLTMyLDcgKzMyLDcgQEAKICNkZWZpbmUgTUhUTUxQYXJzZXJfaAogCiAjaWYgRU5BQkxFKE1I
VE1MKQotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmgiCisjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGFkZFJlc291cmNlVG9BcmNoaXZlKEFyY2hpdmVSZXNvdXJjZSosIE1IVE1MQXJjaGl2ZSop
OwogCi0gICAgU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIgbV9saW5lUmVhZGVyOworICAgIFNo
YXJlZEJ1ZmZlckNodW5rUmVhZGVyIG1fbGluZVJlYWRlcjsKICAgICBWZWN0b3I8UmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gPiBtX3Jlc291cmNlczsKICAgICBWZWN0b3I8UmVmUHRyPE1IVE1MQXJj
aGl2ZT4gPiBtX2ZyYW1lczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGIzZmQ4Y2MuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRl
ci5oIgotCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNoYXJlZEJ1ZmZlckNSTEZM
aW5lUmVhZGVyOjpTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlcihTaGFyZWRCdWZmZXIqIGJ1ZmZl
cikKLSAgICA6IG1fYnVmZmVyKGJ1ZmZlcikKLSAgICAsIG1fYnVmZmVyUG9zaXRpb24oMCkKLSAg
ICAsIG1fc2VnbWVudCgwKQotICAgICwgbV9zZWdtZW50TGVuZ3RoKDApCi0gICAgLCBtX3NlZ21l
bnRJbmRleCgwKQotICAgICwgbV9yZWFjaGVkRW5kT2ZGaWxlKGZhbHNlKQotewotfQotCi1TdHJp
bmcgU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXI6Om5leHRMaW5lKCkKLXsKLSAgICBpZiAobV9y
ZWFjaGVkRW5kT2ZGaWxlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBib29sIHBy
ZXZpb3VzQ2hhcmFjdGVyV2FzQ1IgPSBmYWxzZTsKLSAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1
aWxkZXI7Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgYm9vbCByZWFjaGVkRW5kT2ZMaW5l
ID0gZmFsc2U7Ci0gICAgICAgIHdoaWxlIChtX3NlZ21lbnRJbmRleCA8IG1fc2VnbWVudExlbmd0
aCkgewotICAgICAgICAgICAgcmVhY2hlZEVuZE9mTGluZSA9IGZhbHNlOwotICAgICAgICAgICAg
Y2hhciBjdXJyZW50Q2hhcmFjdGVyID0gbV9zZWdtZW50W21fc2VnbWVudEluZGV4XTsKLSAgICAg
ICAgICAgIGlmIChwcmV2aW91c0NoYXJhY3Rlcldhc0NSKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGN1cnJlbnRDaGFyYWN0ZXIgPT0gJ1xuJykKLSAgICAgICAgICAgICAgICAgICAgcmVhY2hlZEVu
ZE9mTGluZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXHInKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vy
cmVudENoYXJhY3RlciAhPSAnXHInKQotICAgICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKGN1cnJlbnRDaGFyYWN0ZXIpOwotCi0gICAgICAgICAgICBwcmV2aW91c0NoYXJhY3Rlcldh
c0NSID0gKGN1cnJlbnRDaGFyYWN0ZXIgPT0gJ1xyJyk7Ci0gICAgICAgICAgICBtX3NlZ21lbnRJ
bmRleCsrOwotICAgICAgICAgICAgaWYgKHJlYWNoZWRFbmRPZkxpbmUpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAgICAgfQotCi0gICAgICAg
IC8vIFJlYWQgdGhlIG5leHQgc2VnbWVudC4KLSAgICAgICAgbV9zZWdtZW50SW5kZXggPSAwOwot
ICAgICAgICBtX2J1ZmZlclBvc2l0aW9uICs9IG1fc2VnbWVudExlbmd0aDsKLSAgICAgICAgbV9z
ZWdtZW50TGVuZ3RoID0gbV9idWZmZXItPmdldFNvbWVEYXRhKG1fc2VnbWVudCwgbV9idWZmZXJQ
b3NpdGlvbik7Ci0gICAgICAgIGlmICghbV9zZWdtZW50TGVuZ3RoKSB7Ci0gICAgICAgICAgICBt
X3JlYWNoZWRFbmRPZkZpbGUgPSB0cnVlOwotICAgICAgICAgICAgaWYgKHByZXZpb3VzQ2hhcmFj
dGVyV2FzQ1IpCi0gICAgICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xyJyk7Ci0g
ICAgICAgICAgICBTdHJpbmcgbGluZSA9IHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKLSAgICAg
ICAgICAgIHJldHVybiAobGluZS5pc0VtcHR5KCkgJiYgIXJlYWNoZWRFbmRPZkxpbmUpID8gU3Ry
aW5nKCkgOiBsaW5lOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JM
RkxpbmVSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNSTEZM
aW5lUmVhZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNjk5OTMuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFk
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYXJlZEJ1ZmZlckNS
TEZMaW5lUmVhZGVyX2gKLSNkZWZpbmUgU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXJfaAotCi0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotY2xhc3Mg
U3RyaW5nQnVpbGRlcjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTaGFyZWRC
dWZmZXI7Ci0KLWNsYXNzIFNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyIHsKLXB1YmxpYzoKLSAg
ICBleHBsaWNpdCBTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlcihTaGFyZWRCdWZmZXIqKTsKLQot
ICAgIC8vIFJldHVybnMgdGhlIG5leHQgbGluZSByZWFkIGZyb20gdGhlIGJ1ZmZlci4KLSAgICAv
LyBSZXR1cm5zIGEgbnVsbCBzdHJpbmcgd2hlbiB0aGUgZW5kIG9mIHRoZSBidWZmZXIgaGFzIGJl
ZW4gcmVhY2hlZC4KLSAgICBTdHJpbmcgbmV4dExpbmUoKTsKLQotcHJpdmF0ZToKLSAgICBTaGFy
ZWRCdWZmZXIqIG1fYnVmZmVyOwotICAgIHNpemVfdCBtX2J1ZmZlclBvc2l0aW9uOwotICAgIGNv
bnN0IGNoYXIqIG1fc2VnbWVudDsKLSAgICBzaXplX3QgbV9zZWdtZW50TGVuZ3RoOwotICAgIHNp
emVfdCBtX3NlZ21lbnRJbmRleDsKLSAgICBib29sIG1fcmVhY2hlZEVuZE9mRmlsZTsKLX07Ci0K
LX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRC
dWZmZXJDaHVua1JlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXJDaHVua1JlYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg4
Zjg5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1
ZmZlckNodW5rUmVhZGVyLmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgiCisKKyNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXI6OlNoYXJlZEJ1ZmZlckNodW5r
UmVhZGVyKFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBjb25zdCBTdHJpbmcmIHNlcGFyYXRvcikKKyAg
ICA6IG1fYnVmZmVyKGJ1ZmZlcikKKyAgICAsIG1fYnVmZmVyUG9zaXRpb24oMCkKKyAgICAsIG1f
c2VnbWVudCgwKQorICAgICwgbV9zZWdtZW50TGVuZ3RoKDApCisgICAgLCBtX3NlZ21lbnRJbmRl
eCgwKQorICAgICwgbV9yZWFjaGVkRW5kT2ZGaWxlKGZhbHNlKQorICAgICwgbV9zZXBhcmF0b3Io
c2VwYXJhdG9yKQorICAgICwgbV9zZXBhcmF0b3JJbmRleCgwKQoreworfQorCit2b2lkIFNoYXJl
ZEJ1ZmZlckNodW5rUmVhZGVyOjpzZXRTZXBhcmF0b3IoY29uc3QgU3RyaW5nJiBzZXBhcmF0b3Ip
Cit7CisgICAgbV9zZXBhcmF0b3IgPSBzZXBhcmF0b3I7Cit9CisKK1N0cmluZyBTaGFyZWRCdWZm
ZXJDaHVua1JlYWRlcjo6bmV4dENodW5rKGJvb2wgaW5jbHVkZVNlcGFyYXRvcikKK3sKKyAgICBp
ZiAobV9yZWFjaGVkRW5kT2ZGaWxlKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBT
dHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAg
d2hpbGUgKG1fc2VnbWVudEluZGV4IDwgbV9zZWdtZW50TGVuZ3RoKSB7CisgICAgICAgICAgICBj
aGFyIGN1cnJlbnRDaGFyYWN0ZXIgPSBtX3NlZ21lbnRbbV9zZWdtZW50SW5kZXgrK107CisgICAg
ICAgICAgICBpZiAoY3VycmVudENoYXJhY3RlciAhPSBtX3NlcGFyYXRvclttX3NlcGFyYXRvcklu
ZGV4XSkgeworICAgICAgICAgICAgICBpZiAobV9zZXBhcmF0b3JJbmRleCA+IDApIHsKKyAgICAg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChtX3NlcGFyYXRvci5zdWJzdHJpbmcoMCwg
bV9zZXBhcmF0b3JJbmRleCkpOworICAgICAgICAgICAgICAgIG1fc2VwYXJhdG9ySW5kZXggPSAw
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGN1
cnJlbnRDaGFyYWN0ZXIpOworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIG1fc2VwYXJhdG9ySW5kZXgrKzsKKyAgICAgICAgICAgIGlmIChtX3NlcGFy
YXRvckluZGV4ID09IG1fc2VwYXJhdG9yLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgIGlmIChp
bmNsdWRlU2VwYXJhdG9yKQorICAgICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKG1f
c2VwYXJhdG9yKTsKKyAgICAgICAgICAgICAgbV9zZXBhcmF0b3JJbmRleCA9IDA7CisgICAgICAg
ICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBSZWFkIHRoZSBuZXh0IHNlZ21lbnQuCisgICAgICAgIG1f
c2VnbWVudEluZGV4ID0gMDsKKyAgICAgICAgbV9idWZmZXJQb3NpdGlvbiArPSBtX3NlZ21lbnRM
ZW5ndGg7CisgICAgICAgIG1fc2VnbWVudExlbmd0aCA9IG1fYnVmZmVyLT5nZXRTb21lRGF0YSht
X3NlZ21lbnQsIG1fYnVmZmVyUG9zaXRpb24pOworICAgICAgICBpZiAoIW1fc2VnbWVudExlbmd0
aCkgeworICAgICAgICAgICAgbV9yZWFjaGVkRW5kT2ZGaWxlID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChtX3NlcGFyYXRvckluZGV4ID4gMCkKKyAgICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQobV9zZXBhcmF0b3Iuc3Vic3RyaW5nKDAsIG1fc2VwYXJhdG9ySW5kZXgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLmxlbmd0aCgpID4gMCA/IHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKSA6IFN0cmluZygpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdHJp
bmcoKTsgLy8gQ29tcGlsZXIgaXMgdW5oYXBweSB3aXRob3V0IHRoaXMuCit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlckNodW5rUmVhZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNzY3ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyX2gKKyNkZWZpbmUgU2hh
cmVkQnVmZmVyQ2h1bmtSZWFkZXJfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nQnVpbGRlcjsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFNoYXJlZEJ1ZmZlckNo
dW5rUmVhZGVyIHsKK3B1YmxpYzoKKyAgICBTaGFyZWRCdWZmZXJDaHVua1JlYWRlcihTaGFyZWRC
dWZmZXIqLCBjb25zdCBTdHJpbmcmIHNlcGFyYXRvcik7CisKKyAgICB2b2lkIHNldFNlcGFyYXRv
cihjb25zdCBTdHJpbmcmKTsKKworICAgIC8vIFJldHVybnMgYSBudWxsIHN0cmluZyB3aGVuIHRo
ZSBlbmQgb2YgdGhlIGJ1ZmZlciBoYXMgYmVlbiByZWFjaGVkLgorICAgIFN0cmluZyBuZXh0Q2h1
bmsoYm9vbCBpbmNsdWRlU2VwYXJhdG9yID0gZmFsc2UpOworCitwcml2YXRlOgorICAgIFNoYXJl
ZEJ1ZmZlciogbV9idWZmZXI7CisgICAgc2l6ZV90IG1fYnVmZmVyUG9zaXRpb247CisgICAgY29u
c3QgY2hhciogbV9zZWdtZW50OworICAgIHNpemVfdCBtX3NlZ21lbnRMZW5ndGg7CisgICAgc2l6
ZV90IG1fc2VnbWVudEluZGV4OworICAgIGJvb2wgbV9yZWFjaGVkRW5kT2ZGaWxlOworICAgIFN0
cmluZyBtX3NlcGFyYXRvcjsKKyAgICBzaXplX3QgbV9zZXBhcmF0b3JJbmRleDsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01J
TUVIZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FSGVhZGVy
LmNwcAppbmRleCA4OGJmYWFhLi5mYmNmODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJN
SU1FSGVhZGVyLmgiCiAKICNpbmNsdWRlICJDb250ZW50VHlwZVBhcnNlci5oIgotI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ2h1
bmtSZWFkZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC00Mywx
MyArNDMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IEtleVZhbHVlTWFwOwogCi1zdGF0aWMgS2V5VmFsdWVNYXAgcmV0cmlldmVLZXlW
YWx1ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlckNSTEZMaW5lUmVhZGVyKiBidWZmZXIpCitz
dGF0aWMgS2V5VmFsdWVNYXAgcmV0cmlldmVLZXlWYWx1ZVBhaXJzKFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlckNodW5rUmVhZGVyKiBidWZmZXIpCiB7CiAgICAgS2V5VmFsdWVNYXAga2V5VmFsdWVQYWly
czsKICAgICBTdHJpbmcgbGluZTsKICAgICBTdHJpbmcga2V5OwogICAgIFN0cmluZ0J1aWxkZXIg
dmFsdWU7Ci0gICAgd2hpbGUgKCEobGluZSA9IGJ1ZmZlci0+bmV4dExpbmUoKSkuaXNOdWxsKCkp
IHsKKyAgICB3aGlsZSAoIShsaW5lID0gYnVmZmVyLT5uZXh0Q2h1bmsoKSkuaXNOdWxsKCkpIHsK
ICAgICAgICAgaWYgKGxpbmUuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7IC8vIEVtcHR5
IGxpbmUgbWVhbnMgZW5kIG9mIGtleS92YWx1ZSBzZWN0aW9uLgogICAgICAgICBpZiAobGluZVsw
XSA9PSAnXHQnKSB7CkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBLZXlWYWx1ZU1hcCByZXRyaWV2
ZUtleVZhbHVlUGFpcnMoV2ViQ29yZTo6U2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIqIGJ1CiAg
ICAgcmV0dXJuIGtleVZhbHVlUGFpcnM7CiB9CiAKLVBhc3NSZWZQdHI8TUlNRUhlYWRlcj4gTUlN
RUhlYWRlcjo6cGFyc2VIZWFkZXIoU2hhcmVkQnVmZmVyQ1JMRkxpbmVSZWFkZXIqIGJ1ZmZlcikK
K1Bhc3NSZWZQdHI8TUlNRUhlYWRlcj4gTUlNRUhlYWRlcjo6cGFyc2VIZWFkZXIoU2hhcmVkQnVm
ZmVyQ2h1bmtSZWFkZXIqIGJ1ZmZlcikKIHsKICAgICBSZWZQdHI8TUlNRUhlYWRlcj4gbWltZUhl
YWRlciA9IGFkb3B0UmVmKG5ldyBNSU1FSGVhZGVyKTsKICAgICBLZXlWYWx1ZU1hcCBrZXlWYWx1
ZVBhaXJzID0gcmV0cmlldmVLZXlWYWx1ZVBhaXJzKGJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVIZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5oCmluZGV4IDY2OGJjMWEuLmY0YTQ1NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5oCkBAIC0zNyw3
ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhcmVkQnVmZmVyQ1JM
RkxpbmVSZWFkZXI7CitjbGFzcyBTaGFyZWRCdWZmZXJDaHVua1JlYWRlcjsKIAogLy8gRklYTUU6
IFRoaXMgY2xhc3MgaXMgYSBsaW1pdGVkIE1JTUUgcGFyc2VyIHVzZWQgdG8gcGFyc2UgdGhlIE1J
TUUgaGVhZGVycyBvZiBNSFRNTCBmaWxlcy4KIGNsYXNzIE1JTUVIZWFkZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxNSU1FSGVhZGVyPiB7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
VW5rbm93bgogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNSU1FSGVhZGVyPiBwYXJz
ZUhlYWRlcihTaGFyZWRCdWZmZXJDUkxGTGluZVJlYWRlciopOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1JTUVIZWFkZXI+IHBhcnNlSGVhZGVyKFNoYXJlZEJ1ZmZlckNodW5rUmVhZGVyKiBjckxG
TGluZVJlYWRlcik7CiAKICAgICBib29sIGlzTXVsdGlwYXJ0KCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZW50VHlwZS5zdGFydHNXaXRoKCJtdWx0aXBhcnQvIik7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>