<?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>124032</bug_id>
          
          <creation_ts>2013-11-07 22:51:06 -0800</creation_ts>
          <short_desc>[AX] Clean up static_cast&lt;&gt; to cast from AccessibilityObject</short_desc>
          <delta_ts>2013-11-10 08:57:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mario</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948553</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-07 22:51:06 -0800</bug_when>
    <thetext>ACCESSIBILITY_OBJECT_TYPE_CASTS can support more helpful casting functions. So, we need to use them as much as possible. This patch cleans up all static_cast&lt;&gt; in accessibility.
This patch generates toAccessibilityFoo() in order to replace static_cast&lt;&gt; with it.

 - Generate toAccessibilityARIAGridRow()
 - Generate toAccessibilityImageMapLink()
 - Generate toAccessibilityListBox()
 - Generate toAccessibilityListBoxOption()
 - Generate toAccessibilityMenuListOption()
 - Generate toAccessibilityMenuListPopup()
 - Generate toAccessibilityScrollbar()
 - Generate toAccessibilitySlider()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948554</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-11-07 22:51:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/15421896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948555</commentid>
    <comment_count>2</comment_count>
      <attachid>216361</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-07 22:55:11 -0800</bug_when>
    <thetext>Created attachment 216361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948559</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-07 23:48:38 -0800</bug_when>
    <thetext>Mario, how do you think ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948578</commentid>
    <comment_count>4</comment_count>
      <attachid>216361</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-11-08 02:07:33 -0800</bug_when>
    <thetext>Comment on attachment 216361
Patch

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

(In reply to comment #3)
&gt; Mario, how do you think ?

I think it&apos;s a good cleanup. Setting the r+ now, but please fix those small things pointed out below before landing. Thanks!

&gt; Source/WebCore/accessibility/AccessibilityListBoxOption.h:65
&gt; -    bool isListBoxOption() const { return true; }
&gt; +    bool isListBoxOption() const OVERRIDE { return true; }

You should declare it as virtual and use the FINAL modifier here too if you are declaring this in upper classes as a virtual method (as you are)

&gt; Source/WebCore/accessibility/AccessibilitySlider.h:75
&gt; +    virtual bool isSliderThumb() const OVERRIDE { return true; }

FINAL missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949143</commentid>
    <comment_count>5</comment_count>
      <attachid>216526</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-10 08:05:14 -0800</bug_when>
    <thetext>Created attachment 216526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949144</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-11-10 08:15:10 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 216361 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216361&amp;action=review
&gt; 
&gt; (In reply to comment #3)
&gt; &gt; Mario, how do you think ?
&gt; 
&gt; I think it&apos;s a good cleanup. Setting the r+ now, but please fix those small things pointed out below before landing. Thanks!
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityListBoxOption.h:65
&gt; &gt; -    bool isListBoxOption() const { return true; }
&gt; &gt; +    bool isListBoxOption() const OVERRIDE { return true; }
&gt; 
&gt; You should declare it as virtual and use the FINAL modifier here too if you are declaring this in upper classes as a virtual method (as you are)
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilitySlider.h:75
&gt; &gt; +    virtual bool isSliderThumb() const OVERRIDE { return true; }
&gt; 
&gt; FINAL missing

Yes, right. Fixed them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949146</commentid>
    <comment_count>7</comment_count>
      <attachid>216526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-10 08:57:52 -0800</bug_when>
    <thetext>Comment on attachment 216526
Patch

Clearing flags on attachment: 216526

Committed r159026: &lt;http://trac.webkit.org/changeset/159026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949147</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-10 08:57:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216361</attachid>
            <date>2013-11-07 22:55:11 -0800</date>
            <delta_ts>2013-11-10 08:05:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124032-20131108155509.patch</filename>
            <type>text/plain</type>
            <size>26388</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4YjNlMmE3Mjk4YmFk
YTA0ZDMyMDAzN2MyNWI1NjJmYjA0YWNkZi4uM2U0OTgwMjdkZmNiMDc1MDVmYzE2MjQ3ZDNkN2Jh
MzA0MTNhODM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTExLTA3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FYXSBDbGVh
biB1cCBzdGF0aWNfY2FzdDw+IHRvIGNhc3QgZnJvbSBBY2Nlc3NpYmlsaXR5T2JqZWN0IAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQUNDRVNTSUJJTElU
WV9PQkpFQ1RfVFlQRV9DQVNUUyBjYW4gc3VwcG9ydCBtb3JlIGhlbHBmdWwgY2FzdGluZyBmdW5j
dGlvbnMuCisgICAgICAgIFNvLCB3ZSBuZWVkIHRvIHVzZSB0aGVtIGFzIG11Y2ggYXMgcG9zc2li
bGUuIFRoaXMgcGF0Y2ggY2xlYW5zIHVwIGFsbCBzdGF0aWNfY2FzdDw+IGluIGFjY2Vzc2liaWxp
dHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBnZW5lcmF0ZXMgdG9BY2Nlc3NpYmlsaXR5Rm9vKCkg
aW4gb3JkZXIgdG8gcmVwbGFjZSBzdGF0aWNfY2FzdDw+IHdpdGggaXQuIEJlbG93IHRvQWNjZXNz
aWJpbGl0eUZvbygpCisgICAgICAgIGFyZSBnZW5lcmF0ZWQuCisKKyAgICAgICAgLSB0b0FjY2Vz
c2liaWxpdHlBUklBR3JpZFJvdygpCisgICAgICAgIC0gdG9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rKCkKKyAgICAgICAgLSB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KCkKKyAgICAgICAgLSB0b0Fj
Y2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKCkKKyAgICAgICAgLSB0b0FjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbigpCisgICAgICAgIC0gdG9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCgpCisg
ICAgICAgIC0gdG9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkKKyAgICAgICAgLSB0b0FjY2Vzc2li
aWxpdHlTbGlkZXIoKQorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6c2V0U2VsZWN0ZWRDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6c2VsZWN0ZWRDaGlsZHJlbik6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveDo6bGlzdEJveE9wdGlvbkFjY2Vzc2liaWxp
dHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3gu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGlsZHJlbik6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlv
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24u
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjptZW51TGlz
dE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmlzTGlzdEJveE9wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc1NsaWRlclRodW1iKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6Z2V0RG9jdW1lbnRMaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRJbWFnZU1hcENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFRleHRGaWVsZENoaWxkcmVuKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphZGRDaGlsZFNjcm9sbGJhcik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlTbGlkZXI6OmFkZENoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTcGluQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlT
cGluQnV0dG9uOjphZGRDaGlsZHJlbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2Vi
S2l0QWNjZXNzaWJsZUludGVyZmFjZVNlbGVjdGlvbi5jcHA6CisgICAgICAgICh3ZWJraXRBY2Nl
c3NpYmxlU2VsZWN0aW9uQ2xlYXJTZWxlY3Rpb24pOgorICAgICAgICAod2Via2l0QWNjZXNzaWJs
ZVNlbGVjdGlvblNlbGVjdEFsbFNlbGVjdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNl
dFZhbHVlOmZvckF0dHJpYnV0ZTpdKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbik6CisKIDIwMTMtMTEtMDcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlIGhlbHBlcnMgc2hvdWxkIHRha2UgUmVuZGVy
U3R5bGUgYnkgY29uc3QgcmVmZXJlbmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDYyOTZkMjI2YmMw
ZjYwNGI5YzZmM2FmODFiMWFhYTYxMmE3NDIzNzYuLjc5NmJjOGFiZGI4ZTMyYWYyOTZhNzAxODNi
MDY3MDk3Mzg0NmU4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0x
MS0wNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFtBWF0gQ2xlYW4gdXAgc3RhdGljX2Nhc3Q8PiB0byBjYXN0IGZyb20gQWNjZXNzaWJpbGl0eU9i
amVjdCAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NDAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVz
ZSB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94IGluc3RlYWQgb2YgdXNpbmcgc3RhdGljX2Nhc3Q8QWNj
ZXNzaWJpbGl0eUxpc3RCb3gqPi4KKworICAgICAgICAqIEFjY2Vzc2libGVCYXNlLmNwcDoKKyAg
ICAgICAgKEFjY2Vzc2libGVCYXNlOjphY2NTZWxlY3QpOgorCiAyMDEzLTExLTA1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3MgYnVpbGQgZml4IGF0
dGVtcHQgYWZ0ZXIgcjE1ODcwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCmluZGV4IDUwZjg0ODVlYmRiOWU2NmJkMDg4OTFmNWQ5ZjA1MjIzNGFh
NjZhNzEuLmM5YWExODQxZmYwZGUyMDMzZjI1MWRjZWFmYTk0ODg5ZDY5Nzg3M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTQ5LDcg
KzE0OSw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmZvY3VzZWRJbWFn
ZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqIGFyCiAgICAgICAgIGlmICghY2hpbGQtPmlz
SW1hZ2VNYXBMaW5rKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAg
IGlmIChzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKj4oY2hpbGQpLT5hcmVh
RWxlbWVudCgpID09IGFyZWFFbGVtZW50KQorICAgICAgICBpZiAodG9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rKGNoaWxkKS0+YXJlYUVsZW1lbnQoKSA9PSBhcmVhRWxlbWVudCkKICAgICAgICAg
ICAgIHJldHVybiBjaGlsZDsKICAgICB9ICAgIAogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKaW5kZXggMzRj
MjE3N2ExY2M2OWQwYWJmNjk5YWFhYjFkNjcyMDYyYWNkYTUyZC4uM2EyZjg5MGFmZTc0NjgwNTRm
ODljNmViZjhjM2JjNDc0M2VjMjlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCkBAIC01MCw3ICs1MCw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQVJJQVRyZWVHcmlkUm93KCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRUYWJsZSgpIGNv
bnN0IE9WRVJSSURFOwogfTsgCi0gICAgCisKK0FDQ0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FT
VFMoQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LCBpc0FSSUFUcmVlR3JpZFJvdygpKQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlIAogCiAjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUltYWdlTWFwTGluay5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5SW1hZ2VNYXBMaW5rLmgKaW5kZXggM2IxZjdlYTdiMmE4Yjg2ODkzODlmMTUzMmRmMjRjYTdl
OTA3ZWJjMi4uMWQ3MjA0ZjQ2NzFlYWEyOTQ0ODM3YThkYTRlMWJkZWEzOGUxMWY0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKQEAgLTgwLDYgKzgwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNJbWFnZU1hcExpbmsoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
IH07CisKK0FDQ0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluaywgaXNJbWFnZU1hcExpbmsoKSkKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlM
aXN0Qm94LmNwcAppbmRleCA3YTNjOTcxMGY4MWYxY2I2MGMyMzAwODkxMWIyNWM4ZDc0NmM3MWU1
Li5hNzI5NDUzN2NlNGY0ZmNhMzc0ZDE1ZTJjMzMwMDgwYzZmNjFjM2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcApA
QCAtOTUsNyArOTUsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpzZXRTZWxlY3RlZENo
aWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgY2hpbAogICAgIC8vIGRpc2FibGUg
YW55IHNlbGVjdGVkIG9wdGlvbnMKICAgICB1bnNpZ25lZCBsZW5ndGggPSBtX2NoaWxkcmVuLnNp
emUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24qIGxpc3RCb3hPcHRpb24gPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbio+KG1fY2hpbGRyZW5baV0uZ2V0KCkpOworICAg
ICAgICBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiogbGlzdEJveE9wdGlvbiA9IHRvQWNjZXNz
aWJpbGl0eUxpc3RCb3hPcHRpb24obV9jaGlsZHJlbltpXS5nZXQoKSk7CiAgICAgICAgIGlmIChs
aXN0Qm94T3B0aW9uLT5pc1NlbGVjdGVkKCkpCiAgICAgICAgICAgICBsaXN0Qm94T3B0aW9uLT5z
ZXRTZWxlY3RlZChmYWxzZSk7CiAgICAgfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eUxpc3RCb3g6OnNldFNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yJiBjaGlsCiAgICAgICAgIGlmIChvYmotPnJvbGVWYWx1ZSgpICE9IExpc3RCb3hPcHRp
b25Sb2xlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKj4ob2JqKS0+c2V0U2VsZWN0
ZWQodHJ1ZSk7CisgICAgICAgIHRvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24ob2JqKS0+c2V0
U2VsZWN0ZWQodHJ1ZSk7CiAgICAgfQogfQogICAgIApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eUxpc3RCb3g6OnNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJiByZXN1bHQpCiAgICAgICAgIAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fY2hp
bGRyZW4uc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
ewotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24qPiht
X2NoaWxkcmVuW2ldLmdldCgpKS0+aXNTZWxlY3RlZCgpKQorICAgICAgICBpZiAodG9BY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbihtX2NoaWxkcmVuW2ldLmdldCgpKS0+aXNTZWxlY3RlZCgpKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2NoaWxkcmVuW2ldKTsKICAgICB9ICAgIAogfQpA
QCAtMTQ1LDcgKzE0NSw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlMaXN0
Qm94OjpsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChIVE1MCiAgICAgICAgIHJldHVy
biAwOwogICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RCb3hPYmplY3QgPSBtX3Jl
bmRlcmVyLT5kb2N1bWVudCgpLmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoTGlzdEJveE9w
dGlvblJvbGUpOwotICAgIHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uKj4o
bGlzdEJveE9iamVjdCktPnNldEhUTUxFbGVtZW50KGVsZW1lbnQpOworICAgIHRvQWNjZXNzaWJp
bGl0eUxpc3RCb3hPcHRpb24obGlzdEJveE9iamVjdCktPnNldEhUTUxFbGVtZW50KGVsZW1lbnQp
OwogICAgIAogICAgIHJldHVybiBsaXN0Qm94T2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCmluZGV4IGJhYmZlYmIw
MmQ5NzViN2Y1MmI1YTQ1MzRkM2Y4MmI1MTQwYjNlMGYuLmQzOTY4M2Q1MmUzNDQwYzIzNjc1OThi
MTJlMGEyOGMxNDllMmJjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKQEAgLTU2LDYgKzU2LDggQEAgcHJpdmF0ZToKICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChI
VE1MRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZWxl
bWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7
CiB9OworCitBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NBU1RTKEFjY2Vzc2liaWxpdHlMaXN0
Qm94LCBpc0xpc3RCb3goKSkKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9w
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJv
eE9wdGlvbi5oCmluZGV4IDcxMDgyMGNhYmI1NmYwM2RkM2E0MzBmNjdjOTgyNzk4NzMxZDQ1NWMu
LjJjOWIzMzYwMjk2OGUyOThjZGMxMTljNjcxNzk4NWE4YWE0MWUyNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0
aW9uLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGVsZW1lbnRSZWN0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICBib29sIGlzTGlzdEJv
eE9wdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzTGlzdEJveE9wdGlv
bigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICAKIHByaXZhdGU6CiAgICAg
SFRNTEVsZW1lbnQqIG1fb3B0aW9uRWxlbWVudDsKQEAgLTc0LDYgKzc0LDggQEAgcHJpdmF0ZToK
ICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVj
dChIVE1MRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKKworQUNDRVNTSUJJTElUWV9PQkpF
Q1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiwgaXNMaXN0Qm94T3B0aW9u
KCkpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXggYmY0
MzYxNGVmNTcyMmUzMWJmZmQ5ZWM2YzhiOGEzNWUwZjc5NzBkOC4uMDE4M2QzOGZmYjRlYTdhOTY2
YTMxYjMyNzNmMzk1MjM2NTNmNjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApAQCAtNjYsNyArNjYsNyBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWRkQ2hpbGRyZW4oKQogICAgIGlmICghbGlzdCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1vY2tPYmpl
Y3QqPihsaXN0KS0+c2V0UGFyZW50KHRoaXMpOworICAgIHRvQWNjZXNzaWJpbGl0eU1vY2tPYmpl
Y3QobGlzdCktPnNldFBhcmVudCh0aGlzKTsKICAgICBpZiAobGlzdC0+YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpKSB7CiAgICAgICAgIGNhY2hlLT5yZW1vdmUobGlzdC0+YXhPYmplY3RJRCgpKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1l
bnVMaXN0OjpkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4KQogICAgICAgICBB
U1NFUlQoY2hpbGRPYmplY3RzWzBdLT5pc01lbnVMaXN0UG9wdXAoKSk7CiAKICAgICAgICAgaWYg
KGNoaWxkT2JqZWN0c1swXS0+aXNNZW51TGlzdFBvcHVwKCkpIHsKLSAgICAgICAgICAgIGlmIChB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCogcG9wdXAgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmls
aXR5TWVudUxpc3RQb3B1cCo+KGNoaWxkT2JqZWN0c1swXS5nZXQoKSkpCisgICAgICAgICAgICBp
ZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwID0gdG9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3RQb3B1cChjaGlsZE9iamVjdHNbMF0uZ2V0KCkpKQogICAgICAgICAgICAgICAgIHBvcHVw
LT5kaWRVcGRhdGVBY3RpdmVPcHRpb24ob3B0aW9uSW5kZXgpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLmgKaW5kZXggZjQyMzEzODBkNTUzYTA1NTUyN2NlOTE2OTA4MjM2OTVh
MjkwZDcwYi4uNTNhNDVhMDJhZDVhODhmNWEzY2QxZGQ4NmExOGQ4MDAzMDEzZGU2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbi5oCkBAIC02Miw2ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBtX2VsZW1lbnQ7CiB9OwogCitBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NB
U1RTKEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiwgaXNNZW51TGlzdE9wdGlvbigpKQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAppbmRleCA4ZjEwMGNhYzI4ZWUzYmQ4Yzg5MTgw
YTMxYWQ5MWYzYTRmY2MxN2EwLi4xZWYyODkwYWZiNTJkNWQ5YzI5ZGExZmY4OTk0YTkyYThhM2Y1
ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcApAQCAtNzYsNyArNzYsNyBAQCBBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24qIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjptZW51TGlzdE9w
dGlvbkFjY2Vzc2liaQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoTWVudUxpc3RPcHRpb25Sb2xlKTsKICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QtPmlzTWVudUxpc3RPcHRp
b24oKSk7CiAKLSAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIG9wdGlvbiA9IHN0YXRp
Y19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbio+KG9iamVjdCk7CisgICAgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uKiBvcHRpb24gPSB0b0FjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbihvYmplY3QpOwogICAgIG9wdGlvbi0+c2V0RWxlbWVudChlbGVtZW50KTsKIAogICAgIHJl
dHVybiBvcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKaW5kZXggN2ZlM2VhYTg3ZGNkMThmZTA3MTYz
MWE5ZWU5NmQ0OWQ0OTgzNzYxNC4uMTQ4NjkwOWJkNDIzYzYzOWY1ZGFmMzFiNTQ3NzViY2EzOWJh
YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtNjIsNiArNjIsOCBAQCBwcml2YXRlOgogICAg
IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiogbWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5
T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7CiB9OwogCitBQ0NFU1NJQklMSVRZX09CSkVDVF9U
WVBFX0NBU1RTKEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLCBpc01lbnVMaXN0UG9wdXAoKSkK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAppbmRleCAzM2U3NjZhNTMzODQ0ZTc1MDg4MzBhMTU5NjRlMjEyYTY5OWE4
ZGQ5Li5kYzFiNmEwYmYyYjlhYjRkYjE1MTA2ZGU4YjE5NDczOTFlOWM3NmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAt
NDI4LDYgKzQyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2JveCgpIGNv
bnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IENoZWNrQm94Um9sZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gUmFkaW9C
dXR0b25Sb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGlzdEJveCgpIGNvbnN0IHsgcmV0dXJu
IHJvbGVWYWx1ZSgpID09IExpc3RCb3hSb2xlOyB9CisgICAgdmlydHVhbCBib29sIGlzTGlzdEJv
eE9wdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTWVk
aWFUaW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
TWVudVJlbGF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c01lbnUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNDM4LDYgKzQzOSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dEltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5wdXRTbGlkZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNjEzNTBkNjlkZjJhMmNmNzQxYWRiZWZmOGFiMThiNGEy
ZmNlOWRjNi4uMTI5MjkwN2VjNzVkODg4MzcyMDM5YmY1ZWU0NjNlYmI4N2Q5OTllYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCkBAIC0xNzMyLDcgKzE3MzIsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmdldERvY3VtZW50TGlua3MoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
JiByZQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgTm9kZSogcGFyZW50ID0gY3Vyci0+
cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBpc0hUTUxBcmVhRWxlbWVu
dChjdXJyKSAmJiBpc0hUTUxNYXBFbGVtZW50KHBhcmVudCkpIHsKLSAgICAgICAgICAgICAgICBB
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKiBhcmVhT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNz
aWJpbGl0eUltYWdlTWFwTGluayo+KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoSW1hZ2VN
YXBMaW5rUm9sZSkpOworICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsq
IGFyZWFPYmplY3QgPSB0b0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoYXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7CiAgICAgICAgICAgICAgICAgSFRNTE1h
cEVsZW1lbnQqIG1hcCA9IHRvSFRNTE1hcEVsZW1lbnQocGFyZW50KTsKICAgICAgICAgICAgICAg
ICBhcmVhT2JqZWN0LT5zZXRIVE1MQXJlYUVsZW1lbnQodG9IVE1MQXJlYUVsZW1lbnQoY3Vycikp
OwogICAgICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxNYXBFbGVtZW50KG1hcCk7CkBA
IC0yNzQxLDcgKzI3NDEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZElt
YWdlTWFwQ2hpbGRyZW4oKQogICAgICAgICAvLyBhZGQgYW4gPGFyZWE+IGVsZW1lbnQgZm9yIHRo
aXMgY2hpbGQgaWYgaXQgaGFzIGEgbGluawogICAgICAgICBpZiAoIWFyZWEtPmlzTGluaygpKQog
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsq
IGFyZWFPYmplY3QgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKj4oYXhP
YmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7CisgICAgICAgIEFj
Y2Vzc2liaWxpdHlJbWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSB0b0FjY2Vzc2liaWxpdHlJbWFn
ZU1hcExpbmsoYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7
CiAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxBcmVhRWxlbWVudCgmKmFyZWEpOwogICAgICAg
ICBhcmVhT2JqZWN0LT5zZXRIVE1MTWFwRWxlbWVudChtYXApOwogICAgICAgICBhcmVhT2JqZWN0
LT5zZXRQYXJlbnQodGhpcyk7CkBAIC0yNzcxLDcgKzI3NzEsNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmFkZFRleHRGaWVsZENoaWxkcmVuKCkKICAgICBpZiAoIXNwaW5CdXR0
b25FbGVtZW50IHx8ICFzcGluQnV0dG9uRWxlbWVudC0+aXNTcGluQnV0dG9uRWxlbWVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbiogYXhTcGluQnV0
dG9uID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24qPihheE9iamVjdENhY2hl
KCktPmdldE9yQ3JlYXRlKFNwaW5CdXR0b25Sb2xlKSk7CisgICAgQWNjZXNzaWJpbGl0eVNwaW5C
dXR0b24qIGF4U3BpbkJ1dHRvbiA9IHRvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24oYXhPYmplY3RD
YWNoZSgpLT5nZXRPckNyZWF0ZShTcGluQnV0dG9uUm9sZSkpOwogICAgIGF4U3BpbkJ1dHRvbi0+
c2V0U3BpbkJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8U3BpbkJ1dHRvbkVsZW1lbnQqPihzcGlu
QnV0dG9uRWxlbWVudCkpOwogICAgIGF4U3BpbkJ1dHRvbi0+c2V0UGFyZW50KHRoaXMpOwogICAg
IG1fY2hpbGRyZW4uYXBwZW5kKGF4U3BpbkJ1dHRvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCmluZGV4IGNm
MDM5ZDZhYTQ1YjUxOWMyNGU1MjU5Yzc2OWQ3NDBkYjNiMzI1MzYuLjkyZTgxY2E2Yzc5YjcwZDM2
ZDRjOWNmMzhjYTA5ZmE4NzAyYzUyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCkBAIC0xNDksNyArMTQ5
LDcgQEAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFk
ZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2MKICAgICBpZiAoIXNjcm9sbGJhcikKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogc2Nyb2xsQmFy
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNjcm9sbGJhcio+KGF4T2JqZWN0Q2Fj
aGUoKS0+Z2V0T3JDcmVhdGUoc2Nyb2xsYmFyKSk7CisgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ciogc2Nyb2xsQmFyT2JqZWN0ID0gdG9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKGF4T2JqZWN0Q2Fj
aGUoKS0+Z2V0T3JDcmVhdGUoc2Nyb2xsYmFyKSk7CiAgICAgc2Nyb2xsQmFyT2JqZWN0LT5zZXRQ
YXJlbnQodGhpcyk7CiAgICAgbV9jaGlsZHJlbi5hcHBlbmQoc2Nyb2xsQmFyT2JqZWN0KTsKICAg
ICByZXR1cm4gc2Nyb2xsQmFyT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAppbmRleCBmNjNiM2ZiYjU2YmFlMTc5
OTFmY2RiODRmMmQ0MGEyOTEzYTFiMWMwLi40ZmQ5MzNjYWFlNjQzODg1ZmNiNDg2YTljNWJiM2Iw
OWY4Y2MxN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIuaApAQCAtNjIsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxTY3JvbGxiYXI+IG1fc2Nyb2xsYmFyOwogfTsKIAorQUNDRVNTSUJJTElUWV9PQkpFQ1Rf
VFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLCBpc0FjY2Vzc2liaWxpdHlTY3JvbGxi
YXIoKSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQWNjZXNzaWJpbGl0
eVNjcm9sbGJhcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCAwY2FkZDhkNWRkNjAyZjQwYWU0MjkyNGIyOWUxYzZk
ZmYxMDgzNmMwLi42NDUwYmZkZWM2MjZiOGRmZDNkYTFiODFiMDEyMmM0NDU0ODA0MjcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRl
ci5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5U2xpZGVyOjphZGRDaGls
ZHJlbigpCiAKICAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fcmVuZGVyZXItPmRvY3VtZW50
KCkuYXhPYmplY3RDYWNoZSgpOwogCi0gICAgQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iKiB0aHVt
YiA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYio+KGNhY2hlLT5nZXRPckNy
ZWF0ZShTbGlkZXJUaHVtYlJvbGUpKTsKKyAgICBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIqIHRo
dW1iID0gdG9BY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoY2FjaGUtPmdldE9yQ3JlYXRlKFNsaWRl
clRodW1iUm9sZSkpOwogICAgIHRodW1iLT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICAvLyBCZWZv
cmUgYWN0dWFsbHkgYWRkaW5nIHRoZSB2YWx1ZSBpbmRpY2F0b3IgdG8gdGhlIGhpZXJhcmNoeSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNs
aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVy
LmgKaW5kZXggNTRjNWMzNzhiZTRiOGMwMDE2MDVjOTBlZjhjZjc4NDE0NzhhNmFmMy4uMzAyNTFh
ODA3NzVkMWRiYWM0ZTE0MzdlYTBjMTAxNWNiYmM1NzllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKQEAgLTcyLDYgKzcyLDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVt
Yj4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRlclRodW1iKCkgeyB9
CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2xpZGVyVGh1bWJSb2xlOyB9CiAKICAgICB2aXJ0dWFs
IExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBPVkVSUklERTsKQEAgLTgyLDYgKzg0LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKK0FDQ0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FT
VFMoQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iLCBpc1NsaWRlclRodW1iKCkpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAppbmRleCAyNmFmN2I3YzgwNDQzYWUzMGM0
MDBlNGYzYzE3MDExYjMyN2I4MmM4Li45NTUwNzk0ODMyNTg2YzBiMjVhNTVkZGRhOTRlY2I5MGRm
YmJiMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTcGluQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcApAQCAtODIsMTIgKzgyLDEyIEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b246OmFkZENoaWxkcmVuKCkKIHsKICAgICBtX2hhdmVDaGlsZHJlbiA9
IHRydWU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0KiBpbmNyZW1lbnRv
ciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uUGFydCo+KGF4T2JqZWN0Q2Fj
aGUoKS0+Z2V0T3JDcmVhdGUoU3BpbkJ1dHRvblBhcnRSb2xlKSk7CisgICAgQWNjZXNzaWJpbGl0
eVNwaW5CdXR0b25QYXJ0KiBpbmNyZW1lbnRvciA9IHRvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25Q
YXJ0KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoU3BpbkJ1dHRvblBhcnRSb2xlKSk7CiAg
ICAgaW5jcmVtZW50b3ItPnNldElzSW5jcmVtZW50b3IodHJ1ZSk7CiAgICAgaW5jcmVtZW50b3It
PnNldFBhcmVudCh0aGlzKTsKICAgICBtX2NoaWxkcmVuLmFwcGVuZChpbmNyZW1lbnRvcik7CiAK
LSAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQqIGRlY3JlbWVudG9yID0gc3RhdGljX2Nh
c3Q8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0Kj4oYXhPYmplY3RDYWNoZSgpLT5nZXRPckNy
ZWF0ZShTcGluQnV0dG9uUGFydFJvbGUpKTsKKyAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBh
cnQqIGRlY3JlbWVudG9yID0gdG9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQoYXhPYmplY3RD
YWNoZSgpLT5nZXRPckNyZWF0ZShTcGluQnV0dG9uUGFydFJvbGUpKTsKICAgICBkZWNyZW1lbnRv
ci0+c2V0SXNJbmNyZW1lbnRvcihmYWxzZSk7CiAgICAgZGVjcmVtZW50b3ItPnNldFBhcmVudCh0
aGlzKTsKICAgICBtX2NoaWxkcmVuLmFwcGVuZChkZWNyZW1lbnRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
U2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCmluZGV4IGMxZDNhMTE0MzY4MGVhMTE4Mzk0
MjkzY2Y4YmNmZDg1OTAxNDE3NTUuLjJmMzE3ZWMzYmFkN2UzMzBjZDdkOWMwODgxOGQxODU3YTU3
Y2ExYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCkBA
IC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rp
b25DbGVhclNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlvbikKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRJdGVtczsKICAg
ICBpZiAoY29yZVNlbGVjdGlvbi0+aXNMaXN0Qm94KCkgfHwgY29yZVNlbGVjdGlvbi0+aXNNZW51
TGlzdCgpKSB7CiAgICAgICAgIC8vIFNldCB0aGUgbGlzdCBvZiBzZWxlY3RlZCBpdGVtcyB0byBh
biBlbXB0eSBsaXN0OyB0aGVuIHZlcmlmeSB0aGF0IGl0IHdvcmtlZC4KLSAgICAgICAgQWNjZXNz
aWJpbGl0eUxpc3RCb3gqIGxpc3RCb3ggPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5TGlzdEJv
eCo+KGNvcmVTZWxlY3Rpb24pOworICAgICAgICBBY2Nlc3NpYmlsaXR5TGlzdEJveCogbGlzdEJv
eCA9IHRvQWNjZXNzaWJpbGl0eUxpc3RCb3goY29yZVNlbGVjdGlvbik7CiAgICAgICAgIGxpc3RC
b3gtPnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CiAgICAgICAgIGxpc3RCb3gt
PnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CiAgICAgICAgIHJldHVybiAhc2VsZWN0
ZWRJdGVtcy5zaXplKCk7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtp
dEFjY2Vzc2libGVTZWxlY3Rpb25TZWxlY3RBbGxTZWxlY3Rpb24oQXRrU2VsZWN0aW9uKiBzZWxl
Y3QKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBjaGlsZHJlbiA9IGNvcmVTZWxlY3Rpb24tPmNoaWxkcmVuKCk7CiAgICAgaWYgKGNvcmVTZWxl
Y3Rpb24tPmlzTGlzdEJveCgpKSB7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlMaXN0Qm94KiBsaXN0
Qm94ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3gqPihjb3JlU2VsZWN0aW9uKTsK
KyAgICAgICAgQWNjZXNzaWJpbGl0eUxpc3RCb3gqIGxpc3RCb3ggPSB0b0FjY2Vzc2liaWxpdHlM
aXN0Qm94KGNvcmVTZWxlY3Rpb24pOwogICAgICAgICBsaXN0Qm94LT5zZXRTZWxlY3RlZENoaWxk
cmVuKGNoaWxkcmVuKTsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkSXRlbXM7CiAgICAgICAgIGxpc3RCb3gtPnNlbGVjdGVk
Q2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDY3MTZlM2U4Yzk5NzFmYzJhMWUyZGFlZGNjMDg1MzdiZDMxMjM0OGMuLjQ1
MDczNGZhMTY3NGUxNDI5NjA2YTQ5ZDQyYjdlMzMyNjIyYzg0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0yNDc5LDcgKzI0NzksNyBAQCBzdGF0aWMgTlNT
dHJpbmcqIHJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAg
ICAgICAgICByZXR1cm4gY29udmVydFRvTlNBcnJheShyb3dzQ29weSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAobV9vYmplY3QtPmlzQVJJQVRyZWVHcmlkUm93KCkpIHsKICAgICAgICAgICAgIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciByb3dzQ29weTsKLSAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdyo+KG1fb2JqZWN0
KS0+ZGlzY2xvc2VkUm93cyhyb3dzQ29weSk7CisgICAgICAgICAgICB0b0FjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdyhtX29iamVjdCktPmRpc2Nsb3NlZFJvd3Mocm93c0NvcHkpOwogICAgICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRUb05TQXJyYXkocm93c0NvcHkpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMjQ5OCw3ICsyNDk4LDcgQEAgc3RhdGljIE5TU3RyaW5nKiByb2xlVmFsdWVUb05TU3RyaW5n
KEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICAgICAgfSBlbHNlIGlmIChtX29iamVjdC0+aXNBUklBVHJlZUdyaWRSb3co
KSkgewotICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm93ID0gc3RhdGljX2Nhc3Q8
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Kj4obV9vYmplY3QpLT5kaXNjbG9zZWRCeVJvdygpOwor
ICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm93ID0gdG9BY2Nlc3NpYmlsaXR5QVJJ
QUdyaWRSb3cobV9vYmplY3QpLT5kaXNjbG9zZWRCeVJvdygpOwogICAgICAgICAgICAgaWYgKCFy
b3cpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgICAgIHJldHVybiByb3ct
PndyYXBwZXIoKTsKQEAgLTMwNjksNyArMzA2OSw3IEBAIHN0YXRpYyBOU1N0cmluZyogcm9sZVZh
bHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIHNlbGVjdGVkQ2hpbGRyZW47CiAgICAgICAgIGNvbnZlcnRUb1ZlY3RvcihhcnJheSwgc2Vs
ZWN0ZWRDaGlsZHJlbik7Ci0gICAgICAgIHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlMaXN0Qm94
Kj4obV9vYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkQ2hpbGRyZW4pOworICAg
ICAgICB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KG1fb2JqZWN0KS0+c2V0U2VsZWN0ZWRDaGlsZHJl
bihzZWxlY3RlZENoaWxkcmVuKTsKICAgICB9IGVsc2UgaWYgKG1fb2JqZWN0LT5pc1RleHRDb250
cm9sKCkpIHsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0QXR0cmlidXRlXSkgewogICAgICAgICAgICAgbV9vYmpl
Y3QtPnNldFNlbGVjdGVkVGV4dChzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMGFlMWNkZmVmNmEwNDZiOWVhYjQ4NmRhNGE5NmRmNDM5
NmExNWMxNi4uNTJlZjA4ZjNhN2YwODBlZDRlOTljN2JhZWNhN2E5MGMwZjY3OWMyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zNzUsNyArMzc1
LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRp
b25JbmRleCkKICAgICBIVE1MRWxlbWVudCogbGlzdEl0ZW0gPSBzZWxlY3RFbGVtZW50KCkubGlz
dEl0ZW1zKClbbGlzdEluZGV4XTsKICAgICBBU1NFUlQobGlzdEl0ZW0pOwogICAgIGlmIChsaXN0
SXRlbS0+YXR0YWNoZWQoKSkgewotICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0KiBt
ZW51TGlzdCA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdCo+KGRvY3VtZW50KCku
YXhPYmplY3RDYWNoZSgpLT5nZXQodGhpcykpKQorICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU1l
bnVMaXN0KiBtZW51TGlzdCA9IHRvQWNjZXNzaWJpbGl0eU1lbnVMaXN0KGRvY3VtZW50KCkuYXhP
YmplY3RDYWNoZSgpLT5nZXQodGhpcykpKQogICAgICAgICAgICAgbWVudUxpc3QtPmRpZFVwZGF0
ZUFjdGl2ZU9wdGlvbihvcHRpb25JbmRleCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vQWNjZXNz
aWJsZUJhc2UuY3BwCmluZGV4IDIyMDFjOWIxZDc4Njg3M2RiYzM4ZjgwNDBmODVkYjkyODVlMTMz
NzYuLjg5MGY3ZDcwYzMxYjAzNTMwNmUwNjIyYmVhMmNkOTViZmUwZjJkNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTYxOSw3ICs2MTksNyBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlOjphY2NTZWxlY3QobG9uZyBzZWxlY3Rpb25GbGFn
cywgVkFSSUFOVAogICAgICAgICBpZiAocGFyZW50T2JqZWN0LT5pc0xpc3RCb3goKSkgewogICAg
ICAgICAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiA+IHNlbGVjdGVkQ2hp
bGRyZW4oMSk7CiAgICAgICAgICAgICBzZWxlY3RlZENoaWxkcmVuWzBdID0gY2hpbGRPYmplY3Q7
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5TGlzdEJveCo+KHBhcmVudE9i
amVjdCktPnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRDaGlsZHJlbik7CisgICAgICAgICAg
ICB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KHBhcmVudE9iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRy
ZW4oc2VsZWN0ZWRDaGlsZHJlbik7CiAgICAgICAgIH0gZWxzZSB7IC8vIGFueSBlbGVtZW50IG1h
eSBiZSBzZWxlY3RhYmxlIGJ5IHZpcnR1ZSBvZiBpdCBoYXZpbmcgdGhlIGFyaWEtc2VsZWN0ZWQg
cHJvcGVydHkKICAgICAgICAgICAgIEFTU0VSVCghcGFyZW50T2JqZWN0LT5pc011bHRpU2VsZWN0
YWJsZSgpKTsKICAgICAgICAgICAgIGNoaWxkT2JqZWN0LT5zZXRTZWxlY3RlZCh0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216526</attachid>
            <date>2013-11-10 08:05:14 -0800</date>
            <delta_ts>2013-11-10 08:57:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124032-20131111010512.patch</filename>
            <type>text/plain</type>
            <size>26406</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk5MjIyZmI5NWUzZDUw
NmM1ZWQwOGM3Zjg2OWRkMDlkNTg5ZWQ5OC4uMjAwMDkxNThjM2ViNmJhNGMzYzAxZDljMmRkYjM2
ODcxODI5OWU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTExLTEwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FYXSBDbGVh
biB1cCBzdGF0aWNfY2FzdDw+IHRvIGNhc3QgZnJvbSBBY2Nlc3NpYmlsaXR5T2JqZWN0IAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyaW8gU2FuY2hleiBQcmFkYS4KKworICAgICAgICBBQ0NFU1NJ
QklMSVRZX09CSkVDVF9UWVBFX0NBU1RTIGNhbiBzdXBwb3J0IG1vcmUgaGVscGZ1bCBjYXN0aW5n
IGZ1bmN0aW9ucy4KKyAgICAgICAgU28sIHdlIG5lZWQgdG8gdXNlIHRoZW0gYXMgbXVjaCBhcyBw
b3NzaWJsZS4gVGhpcyBwYXRjaCBjbGVhbnMgdXAgYWxsIHN0YXRpY19jYXN0PD4gaW4gYWNjZXNz
aWJpbGl0eS4KKworICAgICAgICBUaGlzIHBhdGNoIGdlbmVyYXRlcyB0b0FjY2Vzc2liaWxpdHlG
b28oKSBpbiBvcmRlciB0byByZXBsYWNlIHN0YXRpY19jYXN0PD4gd2l0aCBpdC4gQmVsb3cgdG9B
Y2Nlc3NpYmlsaXR5Rm9vKCkKKyAgICAgICAgYXJlIGdlbmVyYXRlZC4KKworICAgICAgICAtIHRv
QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93KCkKKyAgICAgICAgLSB0b0FjY2Vzc2liaWxpdHlJbWFn
ZU1hcExpbmsoKQorICAgICAgICAtIHRvQWNjZXNzaWJpbGl0eUxpc3RCb3goKQorICAgICAgICAt
IHRvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24oKQorICAgICAgICAtIHRvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uKCkKKyAgICAgICAgLSB0b0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVw
KCkKKyAgICAgICAgLSB0b0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKQorICAgICAgICAtIHRvQWNj
ZXNzaWJpbGl0eVNsaWRlcigpCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBj
aGFuZ2VzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94OjpzZXRTZWxlY3RlZENoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94OjpzZWxlY3RlZENoaWxkcmVuKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94OjpsaXN0Qm94T3B0aW9uQWNjZXNz
aWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dEJveC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRp
b24uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZl
T3B0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbi5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6Om1l
bnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNMaXN0Qm94T3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzU2xpZGVyVGh1bWIpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpnZXREb2N1bWVudExpbmtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmFkZEltYWdlTWFwQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkVGV4dEZpZWxkQ2hpbGRyZW4pOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmFkZENoaWxkU2Nyb2xsYmFyKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVNsaWRlcjo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVNwaW5CdXR0b246OmFkZENoaWxkcmVuKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKHdlYmtp
dEFjY2Vzc2libGVTZWxlY3Rpb25DbGVhclNlbGVjdGlvbik6CisgICAgICAgICh3ZWJraXRBY2Nl
c3NpYmxlU2VsZWN0aW9uU2VsZWN0QWxsU2VsZWN0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
Ol0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmls
aXR5U2V0VmFsdWU6Zm9yQXR0cmlidXRlOl0pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRl
QWN0aXZlT3B0aW9uKToKKwogMjAxMy0xMS0xMCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgR2VuZXJhdGUgdHlwZSBjYXN0aW5nIGhlbHBlcnMgZm9yIFdpZGdl
dCBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDYyOTZkMjI2YmMwZjYwNGI5YzZmM2FmODFi
MWFhYTYxMmE3NDIzNzYuLjQxZWQzYTkxNDE3NmRlZWQ5ZGUyZDFjYmFmNzM5ODE5ZGQ3ZWQzZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0xMS0xMCAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtBWF0gQ2xlYW4gdXAg
c3RhdGljX2Nhc3Q8PiB0byBjYXN0IGZyb20gQWNjZXNzaWJpbGl0eU9iamVjdCAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDAzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE1hcmlvIFNhbmNoZXogUHJhZGEuCisKKyAgICAgICAgVXNlIHRvQWNjZXNz
aWJpbGl0eUxpc3RCb3ggaW5zdGVhZCBvZiB1c2luZyBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5
TGlzdEJveCo+LgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAoQWNj
ZXNzaWJsZUJhc2U6OmFjY1NlbGVjdCk6CisKIDIwMTMtMTEtMDUgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBmaXggYXR0ZW1wdCBhZnRl
ciByMTU4NzA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKaW5kZXggNTE2MDhkOWI2MDdjMTgwNjA1MzdmMzJiNjZjZDJlNTljNzA5MjFmYS4uMDgw
ZWExYTA0OTBjM2ExNGMyMTVkZjg1ZDc5MDMwNzU5MjM4ZGMwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAg
QWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Zm9jdXNlZEltYWdlTWFwVUlFbGVt
ZW50KEhUTUxBcmVhRWxlbWVudCogYXIKICAgICAgICAgaWYgKCFjaGlsZC0+aXNJbWFnZU1hcExp
bmsoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsqPihjaGlsZCktPmFyZWFFbGVtZW50KCkg
PT0gYXJlYUVsZW1lbnQpCisgICAgICAgIGlmICh0b0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmso
Y2hpbGQpLT5hcmVhRWxlbWVudCgpID09IGFyZWFFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJu
IGNoaWxkOwogICAgIH0gICAgCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAppbmRleCAzNGMyMTc3YTFjYzY5
ZDBhYmY2OTlhYWFiMWQ2NzIwNjJhY2RhNTJkLi4zYTJmODkwYWZlNzQ2ODA1NGY4OWM2ZWJmOGMz
YmM0NzQzZWMyOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKQEAgLTUwLDcgKzUwLDkgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNBUklBVHJlZUdyaWRSb3coKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudFRhYmxlKCkgY29uc3QgT1ZFUlJJ
REU7CiB9OyAKLSAgICAKKworQUNDRVNTSUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3Np
YmlsaXR5QVJJQUdyaWRSb3csIGlzQVJJQVRyZWVHcmlkUm93KCkpCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUgCiAKICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3dfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1h
cExpbmsuaAppbmRleCAzYjFmN2VhN2IyYThiODY4OTM4OWYxNTMyZGYyNGNhN2U5MDdlYmMyLi4x
ZDcyMDRmNDY3MWVhYTI5NDQ4MzdhOGRhNGUxYmRlYTM4ZTExZjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
aApAQCAtODAsNiArODAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlTWFw
TGluaygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNQYXRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKKworQUND
RVNTSUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLCBp
c0ltYWdlTWFwTGluaygpKQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3Bw
CmluZGV4IDdhM2M5NzEwZjgxZjFjYjYwYzIzMDA4OTExYjI1YzhkNzQ2YzcxZTUuLmE3Mjk0NTM3
Y2U0ZjRmY2EzNzRkMTVlMmMzMzAwODBjNmY2MWMzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwCkBAIC05NSw3ICs5
NSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUxpc3RCb3g6OnNldFNlbGVjdGVkQ2hpbGRyZW4oQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsCiAgICAgLy8gZGlzYWJsZSBhbnkgc2VsZWN0
ZWQgb3B0aW9ucwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fY2hpbGRyZW4uc2l6ZSgpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBBY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbiogbGlzdEJveE9wdGlvbiA9IHN0YXRpY19jYXN0PEFjY2Vzc2li
aWxpdHlMaXN0Qm94T3B0aW9uKj4obV9jaGlsZHJlbltpXS5nZXQoKSk7CisgICAgICAgIEFjY2Vz
c2liaWxpdHlMaXN0Qm94T3B0aW9uKiBsaXN0Qm94T3B0aW9uID0gdG9BY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbihtX2NoaWxkcmVuW2ldLmdldCgpKTsKICAgICAgICAgaWYgKGxpc3RCb3hPcHRp
b24tPmlzU2VsZWN0ZWQoKSkKICAgICAgICAgICAgIGxpc3RCb3hPcHRpb24tPnNldFNlbGVjdGVk
KGZhbHNlKTsKICAgICB9CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5TGlz
dEJveDo6c2V0U2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNo
aWwKICAgICAgICAgaWYgKG9iai0+cm9sZVZhbHVlKCkgIT0gTGlzdEJveE9wdGlvblJvbGUpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgc3RhdGljX2Nh
c3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24qPihvYmopLT5zZXRTZWxlY3RlZCh0cnVlKTsK
KyAgICAgICAgdG9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbihvYmopLT5zZXRTZWxlY3RlZCh0
cnVlKTsKICAgICB9CiB9CiAgICAgCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5TGlzdEJveDo6c2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IHJlc3VsdCkKICAgICAgICAgCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gbV9jaGlsZHJlbi5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
IGlmIChzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbio+KG1fY2hpbGRyZW5b
aV0uZ2V0KCkpLT5pc1NlbGVjdGVkKCkpCisgICAgICAgIGlmICh0b0FjY2Vzc2liaWxpdHlMaXN0
Qm94T3B0aW9uKG1fY2hpbGRyZW5baV0uZ2V0KCkpLT5pc1NlbGVjdGVkKCkpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKG1fY2hpbGRyZW5baV0pOwogICAgIH0gICAgCiB9CkBAIC0xNDUsNyAr
MTQ1LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eUxpc3RCb3g6Omxpc3RC
b3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUwKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdEJveE9iamVjdCA9IG1fcmVuZGVyZXItPmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShMaXN0Qm94T3B0aW9uUm9sZSk7
Ci0gICAgc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24qPihsaXN0Qm94T2Jq
ZWN0KS0+c2V0SFRNTEVsZW1lbnQoZWxlbWVudCk7CisgICAgdG9BY2Nlc3NpYmlsaXR5TGlzdEJv
eE9wdGlvbihsaXN0Qm94T2JqZWN0KS0+c2V0SFRNTEVsZW1lbnQoZWxlbWVudCk7CiAgICAgCiAg
ICAgcmV0dXJuIGxpc3RCb3hPYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKaW5kZXggYmFiZmViYjAyZDk3NWI3ZjUy
YjVhNDUzNGQzZjgyYjUxNDBiM2UwZi4uZDM5NjgzZDUyZTM0NDBjMjM2NzU5OGIxMmUwYTI4YzE0
OWUyYmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3RCb3guaApAQCAtNTYsNiArNTYsOCBAQCBwcml2YXRlOgogICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGxpc3RCb3hPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50
KikgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBlbGVtZW50QWNjZXNz
aWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBPVkVSUklERTsKIH07CisKK0FD
Q0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eUxpc3RCb3gsIGlzTGlz
dEJveCgpKQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmgK
aW5kZXggNzEwODIwY2FiYjU2ZjAzZGQzYTQzMGY2N2M5ODI3OTg3MzFkNDU1Yy4uYjRlZDdhNzlm
Yzk5ZWM4YTMzZjgxMzMwN2JkZmJjOGE0ZTRmZjkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaApAQCAt
NjIsOCArNjIsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJl
Y3QoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBh
cmVudE9iamVjdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIGJvb2wgaXNMaXN0Qm94T3B0aW9uKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAorICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RCb3hP
cHRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisKIHByaXZhdGU6
CiAgICAgSFRNTEVsZW1lbnQqIG1fb3B0aW9uRWxlbWVudDsKICAgICAKQEAgLTc0LDYgKzc0LDgg
QEAgcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNz
aWJpbGl0eU9iamVjdChIVE1MRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKKworQUNDRVNT
SUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiwgaXNM
aXN0Qm94T3B0aW9uKCkpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5j
cHAKaW5kZXggYmY0MzYxNGVmNTcyMmUzMWJmZmQ5ZWM2YzhiOGEzNWUwZjc5NzBkOC4uMDE4M2Qz
OGZmYjRlYTdhOTY2YTMxYjMyNzNmMzk1MjM2NTNmNjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApAQCAtNjYs
NyArNjYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWRkQ2hpbGRyZW4oKQogICAg
IGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljX2Nhc3Q8QWNjZXNzaWJp
bGl0eU1vY2tPYmplY3QqPihsaXN0KS0+c2V0UGFyZW50KHRoaXMpOworICAgIHRvQWNjZXNzaWJp
bGl0eU1vY2tPYmplY3QobGlzdCktPnNldFBhcmVudCh0aGlzKTsKICAgICBpZiAobGlzdC0+YWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpKSB7CiAgICAgICAgIGNhY2hlLT5yZW1vdmUobGlzdC0+YXhP
YmplY3RJRCgpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0OjpkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4
KQogICAgICAgICBBU1NFUlQoY2hpbGRPYmplY3RzWzBdLT5pc01lbnVMaXN0UG9wdXAoKSk7CiAK
ICAgICAgICAgaWYgKGNoaWxkT2JqZWN0c1swXS0+aXNNZW51TGlzdFBvcHVwKCkpIHsKLSAgICAg
ICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCogcG9wdXAgPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCo+KGNoaWxkT2JqZWN0c1swXS5nZXQoKSkpCisg
ICAgICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwID0gdG9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RQb3B1cChjaGlsZE9iamVjdHNbMF0uZ2V0KCkpKQogICAgICAgICAg
ICAgICAgIHBvcHVwLT5kaWRVcGRhdGVBY3RpdmVPcHRpb24ob3B0aW9uSW5kZXgpOwogICAgICAg
ICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKaW5kZXggZjQyMzEzODBkNTUzYTA1NTUyN2Nl
OTE2OTA4MjM2OTVhMjkwZDcwYi4uNTNhNDVhMDJhZDVhODhmNWEzY2QxZGQ4NmExOGQ4MDAzMDEz
ZGU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCkBAIC02Miw2ICs2Miw4IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2VsZW1lbnQ7CiB9OwogCitBQ0NFU1NJQklMSVRZX09C
SkVDVF9UWVBFX0NBU1RTKEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiwgaXNNZW51TGlzdE9w
dGlvbigpKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAppbmRleCA4ZjEwMGNhYzI4
ZWUzYmQ4Yzg5MTgwYTMxYWQ5MWYzYTRmY2MxN2EwLi4xZWYyODkwYWZiNTJkNWQ5YzI5ZGExZmY4
OTk0YTkyYThhM2Y1ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcApAQCAtNzYsNyArNzYsNyBA
QCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVw
OjptZW51TGlzdE9wdGlvbkFjY2Vzc2liaQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVj
dCA9IGRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoTWVudUxpc3RPcHRp
b25Sb2xlKTsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihvYmplY3QtPmlz
TWVudUxpc3RPcHRpb24oKSk7CiAKLSAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIG9w
dGlvbiA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbio+KG9iamVjdCk7
CisgICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKiBvcHRpb24gPSB0b0FjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbihvYmplY3QpOwogICAgIG9wdGlvbi0+c2V0RWxlbWVudChlbGVtZW50
KTsKIAogICAgIHJldHVybiBvcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKaW5kZXggN2ZlM2VhYTg3
ZGNkMThmZTA3MTYzMWE5ZWU5NmQ0OWQ0OTgzNzYxNC4uMTQ4NjkwOWJkNDIzYzYzOWY1ZGFmMzFi
NTQ3NzViY2EzOWJhYTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApAQCAtNjIsNiArNjIsOCBAQCBw
cml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiogbWVudUxpc3RPcHRpb25B
Y2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7CiB9OwogCitBQ0NFU1NJQklM
SVRZX09CSkVDVF9UWVBFX0NBU1RTKEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLCBpc01lbnVM
aXN0UG9wdXAoKSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQWNjZXNz
aWJpbGl0eU1lbnVMaXN0UG9wdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBjMDQyNDliZTljMTdjYWU1OWNkZWU3NzQz
M2ZiY2FkMmRlMWQ0YTQ5Li4zNDI3NzJkNWRjMzg3MjUzMDQyYTFjYTlhZmJlZjBlZDhlZTNjMWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtNDI4LDYgKzQyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXND
aGVja2JveCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IENoZWNrQm94Um9sZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVl
KCkgPT0gUmFkaW9CdXR0b25Sb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGlzdEJveCgpIGNv
bnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IExpc3RCb3hSb2xlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzTGlzdEJveE9wdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTWVkaWFUaW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzTWVudVJlbGF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc01lbnUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNDM4LDYgKzQz
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dEltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW5wdXRTbGlkZXIoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRyb2woKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3QoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZDEwYzFiODgyMmZmNzIyMjcwZTll
OTg3YTA3ZmFjNTYwYzAwMjY1Yi4uNjhlMTI4Mzg3YzJjYTMxMTRlNDVhOTU4ZDc5YzljN2RmYTA2
MzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNzE4LDcgKzE3MTgsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmdldERvY3VtZW50TGlua3MoQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yJiByZQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgTm9kZSogcGFy
ZW50ID0gY3Vyci0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBpc0hU
TUxBcmVhRWxlbWVudChjdXJyKSAmJiBpc0hUTUxNYXBFbGVtZW50KHBhcmVudCkpIHsKLSAgICAg
ICAgICAgICAgICBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKiBhcmVhT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluayo+KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JD
cmVhdGUoSW1hZ2VNYXBMaW5rUm9sZSkpOworICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSB0b0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoYXhP
YmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7CiAgICAgICAgICAg
ICAgICAgSFRNTE1hcEVsZW1lbnQqIG1hcCA9IHRvSFRNTE1hcEVsZW1lbnQocGFyZW50KTsKICAg
ICAgICAgICAgICAgICBhcmVhT2JqZWN0LT5zZXRIVE1MQXJlYUVsZW1lbnQodG9IVE1MQXJlYUVs
ZW1lbnQoY3VycikpOwogICAgICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxNYXBFbGVt
ZW50KG1hcCk7CkBAIC0yNzI3LDcgKzI3MjcsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFkZEltYWdlTWFwQ2hpbGRyZW4oKQogICAgICAgICAvLyBhZGQgYW4gPGFyZWE+IGVs
ZW1lbnQgZm9yIHRoaXMgY2hpbGQgaWYgaXQgaGFzIGEgbGluawogICAgICAgICBpZiAoIWFyZWEt
PmlzTGluaygpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5SW1hZ2VN
YXBMaW5rKj4oYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7
CisgICAgICAgIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSB0b0FjY2Vz
c2liaWxpdHlJbWFnZU1hcExpbmsoYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1h
cExpbmtSb2xlKSk7CiAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxBcmVhRWxlbWVudCgmKmFy
ZWEpOwogICAgICAgICBhcmVhT2JqZWN0LT5zZXRIVE1MTWFwRWxlbWVudChtYXApOwogICAgICAg
ICBhcmVhT2JqZWN0LT5zZXRQYXJlbnQodGhpcyk7CkBAIC0yNzU3LDcgKzI3NTcsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFRleHRGaWVsZENoaWxkcmVuKCkKICAgICBp
ZiAoIXNwaW5CdXR0b25FbGVtZW50IHx8ICFzcGluQnV0dG9uRWxlbWVudC0+aXNTcGluQnV0dG9u
RWxlbWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRv
biogYXhTcGluQnV0dG9uID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b24qPihh
eE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKFNwaW5CdXR0b25Sb2xlKSk7CisgICAgQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b24qIGF4U3BpbkJ1dHRvbiA9IHRvQWNjZXNzaWJpbGl0eVNwaW5CdXR0
b24oYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShTcGluQnV0dG9uUm9sZSkpOwogICAgIGF4
U3BpbkJ1dHRvbi0+c2V0U3BpbkJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8U3BpbkJ1dHRvbkVs
ZW1lbnQqPihzcGluQnV0dG9uRWxlbWVudCkpOwogICAgIGF4U3BpbkJ1dHRvbi0+c2V0UGFyZW50
KHRoaXMpOwogICAgIG1fY2hpbGRyZW4uYXBwZW5kKGF4U3BpbkJ1dHRvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
Y3BwCmluZGV4IGNmMDM5ZDZhYTQ1YjUxOWMyNGU1MjU5Yzc2OWQ3NDBkYjNiMzI1MzYuLjkyZTgx
Y2E2Yzc5YjcwZDM2ZDRjOWNmMzhjYTA5ZmE4NzAyYzUyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCkBA
IC0xNDksNyArMTQ5LDcgQEAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXc6OmFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2MKICAgICBpZiAoIXNjcm9s
bGJhcikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ciogc2Nyb2xsQmFyT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNjcm9sbGJhcio+
KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoc2Nyb2xsYmFyKSk7CisgICAgQWNjZXNzaWJp
bGl0eVNjcm9sbGJhciogc2Nyb2xsQmFyT2JqZWN0ID0gdG9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoc2Nyb2xsYmFyKSk7CiAgICAgc2Nyb2xsQmFy
T2JqZWN0LT5zZXRQYXJlbnQodGhpcyk7CiAgICAgbV9jaGlsZHJlbi5hcHBlbmQoc2Nyb2xsQmFy
T2JqZWN0KTsKICAgICByZXR1cm4gc2Nyb2xsQmFyT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAppbmRleCBmNjNi
M2ZiYjU2YmFlMTc5OTFmY2RiODRmMmQ0MGEyOTEzYTFiMWMwLi40ZmQ5MzNjYWFlNjQzODg1ZmNi
NDg2YTljNWJiM2IwOWY4Y2MxN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaApAQCAtNjIsNiArNjIsOCBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxTY3JvbGxiYXI+IG1fc2Nyb2xsYmFyOwogfTsKIAorQUNDRVNTSUJJ
TElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLCBpc0FjY2Vzc2li
aWxpdHlTY3JvbGxiYXIoKSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
QWNjZXNzaWJpbGl0eVNjcm9sbGJhcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcAppbmRleCAwY2FkZDhkNWRkNjAyZjQwYWU0
MjkyNGIyOWUxYzZkZmYxMDgzNmMwLi42NDUwYmZkZWM2MjZiOGRmZDNkYTFiODFiMDEyMmM0NDU0
ODA0MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNsaWRlci5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5U2xp
ZGVyOjphZGRDaGlsZHJlbigpCiAKICAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fcmVuZGVy
ZXItPmRvY3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOwogCi0gICAgQWNjZXNzaWJpbGl0eVNsaWRl
clRodW1iKiB0aHVtYiA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlTbGlkZXJUaHVtYio+KGNh
Y2hlLT5nZXRPckNyZWF0ZShTbGlkZXJUaHVtYlJvbGUpKTsKKyAgICBBY2Nlc3NpYmlsaXR5U2xp
ZGVyVGh1bWIqIHRodW1iID0gdG9BY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoY2FjaGUtPmdldE9y
Q3JlYXRlKFNsaWRlclRodW1iUm9sZSkpOwogICAgIHRodW1iLT5zZXRQYXJlbnQodGhpcyk7CiAK
ICAgICAvLyBCZWZvcmUgYWN0dWFsbHkgYWRkaW5nIHRoZSB2YWx1ZSBpbmRpY2F0b3IgdG8gdGhl
IGhpZXJhcmNoeSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2xpZGVyLmgKaW5kZXggNTRjNWMzNzhiZTRiOGMwMDE2MDVjOTBlZjhjZjc4NDE0Nzhh
NmFmMy4uYTRjN2E5M2NkYWZhMzlkN2E1NGYwODEyZGExMTY4MWFiMTYwOTkzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmgKQEAg
LTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlTbGlkZXJUaHVtYj4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNsaWRl
clRodW1iKCkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXJUaHVtYigpIGNvbnN0IE9W
RVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2xpZGVyVGh1bWJSb2xl
OyB9CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBPVkVSUklE
RTsKQEAgLTgyLDYgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKK0FDQ0VTU0lCSUxJ
VFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iLCBpc1NsaWRlclRo
dW1iKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAppbmRleCAy
NmFmN2I3YzgwNDQzYWUzMGM0MDBlNGYzYzE3MDExYjMyN2I4MmM4Li45NTUwNzk0ODMyNTg2YzBi
MjVhNTVkZGRhOTRlY2I5MGRmYmJiMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmNwcApAQCAtODIsMTIgKzgy
LDEyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b246OmFkZENoaWxkcmVuKCkKIHsKICAg
ICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eVNwaW5CdXR0
b25QYXJ0KiBpbmNyZW1lbnRvciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlTcGluQnV0dG9u
UGFydCo+KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoU3BpbkJ1dHRvblBhcnRSb2xlKSk7
CisgICAgQWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0KiBpbmNyZW1lbnRvciA9IHRvQWNjZXNz
aWJpbGl0eVNwaW5CdXR0b25QYXJ0KGF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUoU3BpbkJ1
dHRvblBhcnRSb2xlKSk7CiAgICAgaW5jcmVtZW50b3ItPnNldElzSW5jcmVtZW50b3IodHJ1ZSk7
CiAgICAgaW5jcmVtZW50b3ItPnNldFBhcmVudCh0aGlzKTsKICAgICBtX2NoaWxkcmVuLmFwcGVu
ZChpbmNyZW1lbnRvcik7CiAKLSAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQqIGRlY3Jl
bWVudG9yID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNwaW5CdXR0b25QYXJ0Kj4oYXhPYmpl
Y3RDYWNoZSgpLT5nZXRPckNyZWF0ZShTcGluQnV0dG9uUGFydFJvbGUpKTsKKyAgICBBY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvblBhcnQqIGRlY3JlbWVudG9yID0gdG9BY2Nlc3NpYmlsaXR5U3BpbkJ1
dHRvblBhcnQoYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShTcGluQnV0dG9uUGFydFJvbGUp
KTsKICAgICBkZWNyZW1lbnRvci0+c2V0SXNJbmNyZW1lbnRvcihmYWxzZSk7CiAgICAgZGVjcmVt
ZW50b3ItPnNldFBhcmVudCh0aGlzKTsKICAgICBtX2NoaWxkcmVuLmFwcGVuZChkZWNyZW1lbnRv
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlSW50ZXJmYWNlU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCmluZGV4IGMx
ZDNhMTE0MzY4MGVhMTE4Mzk0MjkzY2Y4YmNmZDg1OTAxNDE3NTUuLjJmMzE3ZWMzYmFkN2UzMzBj
ZDdkOWMwODgxOGQxODU3YTU3Y2ExYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VTZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZh
Y2VTZWxlY3Rpb24uY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtp
dEFjY2Vzc2libGVTZWxlY3Rpb25DbGVhclNlbGVjdGlvbihBdGtTZWxlY3Rpb24qIHNlbGVjdGlv
bikKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Ig
c2VsZWN0ZWRJdGVtczsKICAgICBpZiAoY29yZVNlbGVjdGlvbi0+aXNMaXN0Qm94KCkgfHwgY29y
ZVNlbGVjdGlvbi0+aXNNZW51TGlzdCgpKSB7CiAgICAgICAgIC8vIFNldCB0aGUgbGlzdCBvZiBz
ZWxlY3RlZCBpdGVtcyB0byBhbiBlbXB0eSBsaXN0OyB0aGVuIHZlcmlmeSB0aGF0IGl0IHdvcmtl
ZC4KLSAgICAgICAgQWNjZXNzaWJpbGl0eUxpc3RCb3gqIGxpc3RCb3ggPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NpYmlsaXR5TGlzdEJveCo+KGNvcmVTZWxlY3Rpb24pOworICAgICAgICBBY2Nlc3NpYmls
aXR5TGlzdEJveCogbGlzdEJveCA9IHRvQWNjZXNzaWJpbGl0eUxpc3RCb3goY29yZVNlbGVjdGlv
bik7CiAgICAgICAgIGxpc3RCb3gtPnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7
CiAgICAgICAgIGxpc3RCb3gtPnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CiAgICAg
ICAgIHJldHVybiAhc2VsZWN0ZWRJdGVtcy5zaXplKCk7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3Rh
dGljIGdib29sZWFuIHdlYmtpdEFjY2Vzc2libGVTZWxlY3Rpb25TZWxlY3RBbGxTZWxlY3Rpb24o
QXRrU2VsZWN0aW9uKiBzZWxlY3QKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBjaGlsZHJlbiA9IGNvcmVTZWxlY3Rpb24tPmNoaWxkcmVuKCk7
CiAgICAgaWYgKGNvcmVTZWxlY3Rpb24tPmlzTGlzdEJveCgpKSB7Ci0gICAgICAgIEFjY2Vzc2li
aWxpdHlMaXN0Qm94KiBsaXN0Qm94ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUxpc3RCb3gq
Pihjb3JlU2VsZWN0aW9uKTsKKyAgICAgICAgQWNjZXNzaWJpbGl0eUxpc3RCb3gqIGxpc3RCb3gg
PSB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KGNvcmVTZWxlY3Rpb24pOwogICAgICAgICBsaXN0Qm94
LT5zZXRTZWxlY3RlZENoaWxkcmVuKGNoaWxkcmVuKTsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkSXRlbXM7CiAgICAgICAg
IGxpc3RCb3gtPnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IDY3MTZlM2U4Yzk5NzFmYzJhMWUyZGFlZGNj
MDg1MzdiZDMxMjM0OGMuLjQ1MDczNGZhMTY3NGUxNDI5NjA2YTQ5ZDQyYjdlMzMyNjIyYzg0N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0yNDc5LDcgKzI0
NzksNyBAQCBzdGF0aWMgTlNTdHJpbmcqIHJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0
eVJvbGUgdmFsdWUpCiAgICAgICAgICAgICByZXR1cm4gY29udmVydFRvTlNBcnJheShyb3dzQ29w
eSk7CiAgICAgICAgIH0gZWxzZSBpZiAobV9vYmplY3QtPmlzQVJJQVRyZWVHcmlkUm93KCkpIHsK
ICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciByb3dzQ29weTsKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdyo+KG1fb2JqZWN0KS0+ZGlzY2xvc2VkUm93cyhyb3dzQ29weSk7CisgICAgICAgICAg
ICB0b0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdyhtX29iamVjdCktPmRpc2Nsb3NlZFJvd3Mocm93
c0NvcHkpOwogICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb05TQXJyYXkocm93c0NvcHkpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjQ5OCw3ICsyNDk4LDcgQEAgc3RhdGljIE5TU3RyaW5nKiBy
b2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfSBlbHNlIGlmIChtX29iamVjdC0+
aXNBUklBVHJlZUdyaWRSb3coKSkgewotICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
cm93ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Kj4obV9vYmplY3QpLT5k
aXNjbG9zZWRCeVJvdygpOworICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm93ID0g
dG9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cobV9vYmplY3QpLT5kaXNjbG9zZWRCeVJvdygpOwog
ICAgICAgICAgICAgaWYgKCFyb3cpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgICAgIHJldHVybiByb3ctPndyYXBwZXIoKTsKQEAgLTMwNjksNyArMzA2OSw3IEBAIHN0YXRp
YyBOU1N0cmluZyogcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlbGVjdGVkQ2hpbGRyZW47CiAgICAgICAgIGNvbnZlcnRU
b1ZlY3RvcihhcnJheSwgc2VsZWN0ZWRDaGlsZHJlbik7Ci0gICAgICAgIHN0YXRpY19jYXN0PEFj
Y2Vzc2liaWxpdHlMaXN0Qm94Kj4obV9vYmplY3QpLT5zZXRTZWxlY3RlZENoaWxkcmVuKHNlbGVj
dGVkQ2hpbGRyZW4pOworICAgICAgICB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KG1fb2JqZWN0KS0+
c2V0U2VsZWN0ZWRDaGlsZHJlbihzZWxlY3RlZENoaWxkcmVuKTsKICAgICB9IGVsc2UgaWYgKG1f
b2JqZWN0LT5pc1RleHRDb250cm9sKCkpIHsKICAgICAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlz
RXF1YWxUb1N0cmluZzogTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0QXR0cmlidXRlXSkgewog
ICAgICAgICAgICAgbV9vYmplY3QtPnNldFNlbGVjdGVkVGV4dChzdHJpbmcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMGFlMWNkZmVmNmEwNDZi
OWVhYjQ4NmRhNGE5NmRmNDM5NmExNWMxNi4uNTJlZjA4ZjNhN2YwODBlZDRlOTljN2JhZWNhN2E5
MGMwZjY3OWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0zNzUsNyArMzc1LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCkKICAgICBIVE1MRWxlbWVudCogbGlzdEl0ZW0gPSBz
ZWxlY3RFbGVtZW50KCkubGlzdEl0ZW1zKClbbGlzdEluZGV4XTsKICAgICBBU1NFUlQobGlzdEl0
ZW0pOwogICAgIGlmIChsaXN0SXRlbS0+YXR0YWNoZWQoKSkgewotICAgICAgICBpZiAoQWNjZXNz
aWJpbGl0eU1lbnVMaXN0KiBtZW51TGlzdCA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51
TGlzdCo+KGRvY3VtZW50KCkuYXhPYmplY3RDYWNoZSgpLT5nZXQodGhpcykpKQorICAgICAgICBp
ZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0KiBtZW51TGlzdCA9IHRvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0KGRvY3VtZW50KCkuYXhPYmplY3RDYWNoZSgpLT5nZXQodGhpcykpKQogICAgICAgICAgICAg
bWVudUxpc3QtPmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihvcHRpb25JbmRleCk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCmluZGV4IDIyMDFjOWIxZDc4Njg3M2RiYzM4
ZjgwNDBmODVkYjkyODVlMTMzNzYuLjg5MGY3ZDcwYzMxYjAzNTMwNmUwNjIyYmVhMmNkOTViZmUw
ZjJkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTYxOSw3ICs2MTks
NyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlOjphY2NTZWxlY3Qo
bG9uZyBzZWxlY3Rpb25GbGFncywgVkFSSUFOVAogICAgICAgICBpZiAocGFyZW50T2JqZWN0LT5p
c0xpc3RCb3goKSkgewogICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiA+IHNlbGVjdGVkQ2hpbGRyZW4oMSk7CiAgICAgICAgICAgICBzZWxlY3RlZENoaWxkcmVu
WzBdID0gY2hpbGRPYmplY3Q7Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5
TGlzdEJveCo+KHBhcmVudE9iamVjdCktPnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRDaGls
ZHJlbik7CisgICAgICAgICAgICB0b0FjY2Vzc2liaWxpdHlMaXN0Qm94KHBhcmVudE9iamVjdCkt
PnNldFNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRDaGlsZHJlbik7CiAgICAgICAgIH0gZWxzZSB7
IC8vIGFueSBlbGVtZW50IG1heSBiZSBzZWxlY3RhYmxlIGJ5IHZpcnR1ZSBvZiBpdCBoYXZpbmcg
dGhlIGFyaWEtc2VsZWN0ZWQgcHJvcGVydHkKICAgICAgICAgICAgIEFTU0VSVCghcGFyZW50T2Jq
ZWN0LT5pc011bHRpU2VsZWN0YWJsZSgpKTsKICAgICAgICAgICAgIGNoaWxkT2JqZWN0LT5zZXRT
ZWxlY3RlZCh0cnVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>