<?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>72597</bug_id>
          
          <creation_ts>2011-11-17 04:00:48 -0800</creation_ts>
          <short_desc>[Qt] Layer violation: ThirdPartyCookiesQt.cpp uses QWebSettings in two places</short_desc>
          <delta_ts>2011-11-18 00:24:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>
          
          <blocked>72593</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504727</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-17 04:00:48 -0800</bug_when>
    <thetext>We should pass the NetworkingContext instead and add missing functionality there as interface between WebCore and WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504797</commentid>
    <comment_count>1</comment_count>
      <attachid>115577</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-17 06:20:38 -0800</bug_when>
    <thetext>Created attachment 115577
[Qt] Layer violation: ThirdPartyCookiesQt.cpp uses QWebSettings in two places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504967</commentid>
    <comment_count>2</comment_count>
      <attachid>115577</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-17 10:27:31 -0800</bug_when>
    <thetext>Comment on attachment 115577
[Qt] Layer violation: ThirdPartyCookiesQt.cpp uses QWebSettings in two places

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

&gt; Source/WebKit/qt/Api/qwebsettings.cpp:401
&gt;  

All the other settings have a verb, Always_allow_, etc. Perhaps UseGlobalSetting? Come to think of it, isn&apos;t this handled by &quot;If a setting is not configured, then it is looked
up in the global settings object, which can be accessed using globalSettings()&quot;. Ie, do we need an enum for it, or is the behavior enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505066</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-17 12:01:25 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 115577 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115577&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/Api/qwebsettings.cpp:401
&gt; &gt;  
&gt; 
&gt; All the other settings have a verb, Always_allow_, etc. Perhaps UseGlobalSetting? Come to think of it, isn&apos;t this handled by &quot;If a setting is not configured, then it is looked
&gt; up in the global settings object, which can be accessed using globalSettings()&quot;. Ie, do we need an enum for it, or is the behavior enough?

Yeah the main issue is that the &quot;inheritance&quot; of settings from global settings only works for things that can be enabled, disabled or unset. For the enum the &quot;unset&quot; option is what the patch adds.

Another option would be to just keep the old behaviour and say that the setting only has an effect on QWebSettings::globalSettings(). But now that we _can_ support it per page, we might as well.

How about QWebSettings::UseGlobalThirdPartyCookieSetting ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505550</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-17 23:57:04 -0800</bug_when>
    <thetext>For the time being I&apos;m preparing a patch that doesn&apos;t change the behaviour, i.e. always query QWebSettings::globalSettings().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505555</commentid>
    <comment_count>5</comment_count>
      <attachid>115751</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-18 00:07:02 -0800</bug_when>
    <thetext>Created attachment 115751
Updated patch with no qwebsettings changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505564</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-18 00:24:06 -0800</bug_when>
    <thetext>Committed r100731: &lt;http://trac.webkit.org/changeset/100731&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115577</attachid>
            <date>2011-11-17 06:20:38 -0800</date>
            <delta_ts>2011-11-18 00:06:56 -0800</delta_ts>
            <desc>[Qt] Layer violation: ThirdPartyCookiesQt.cpp uses QWebSettings in two places</desc>
            <filename>bug-72597-20111117152057.patch</filename>
            <type>text/plain</type>
            <size>30906</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVlMWVmNzY1YTAzNWQ0
MjE3MmZiMGI0ZWFkMWFiOWFkODJhN2FhMS4uZTdlZWFhZjdkYmNiY2FhY2E3OTU1YTcyYTMyMzIy
MDBlZWY5NDI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTE3ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIExh
eWVyIHZpb2xhdGlvbjogVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgdXNlcyBRV2ViU2V0dGluZ3Mg
aW4gdHdvIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb3ZlZCBjb2RlIHRoYXQgcXVlcmllcyB0aGUgdGhpcmQgcGFydHkgY29va2llIHBvbGlj
eSBmcm9tIFFXZWJTZXR0aW5ncworICAgICAgICBvdXQgb2YgV2ViQ29yZS4gSW5zdGVhZCBOZXR3
b3JraW5nQ29udGV4dCBoYXMgbm93IHRoZSBpbnRlcmZhY2UgdGhhdCBhbGxvd3MKKyAgICAgICAg
ZGVsZWdhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBpbnRvIFdlYktpdC9xdC4KKworICAgICAgICBJ
biBvcmRlciB0byBkbyB0aGF0IHdlIG5lZWQgdG8gcGFzcyB0aGUgTmV0d29ya2luZ0NvbnRleHQg
YXJvdW5kLCB3aGljaCBpcyB1c2VkIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgamFy
IGFuZCB0aGUgb3JpZ2luYXRpbmcgZnJhbWUgb2JqZWN0IHBvaW50ZXIuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZCBpbnRlcmZhY2UuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIp
OiBQYXNzIE5ldHdvcmtpbmdDb250ZXh0IHRvIFJlc291cmNlUmVxdWVzdDo6dG9OZXR3b3JrUmVx
dWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdCk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0Lmg6
IFJlcGxhY2VkIG9yaWdpbmF0aW5nT2JqZWN0IHBhcmFtZXRlciB3aXRoIE5ldHdvcmtpbmdDb250
ZXh0LCB3aGljaCBjYW4KKyAgICAgICAgYWxzbyBwcm92aWRlIHRoZSBzYW1lIHBsdXMgbW9yZSAo
Y29va2llIGphciwgcG9saWN5IGNhbGxiYWNrKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdDo6dG9OZXR3b3JrUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0Nv
b2tpZUphclF0LmNwcDogU2ltcGxpZnkgdG8gdXNlIE5ldHdvcmtpbmdDb250ZXh0IHRvIGdldCBj
b29raWUgamFyIGFuZAorICAgICAgICBjYWxsIG5ldyB0aGlyZFBhcnR5Q29va2llUG9saWN5UGVy
bWl0cyBBUEkgdGhhdCB0YWtlcyB0aGUgY29udGV4dCBhcyBwYXJhbWV0ZXIuCisgICAgICAgIChX
ZWJDb3JlOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRDb29raWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0VuYWJs
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuY3BwOiBSZXBs
YWNlIHVwLWNhc3RpbmcgdG8gUVdlYkZyYW1lIGFuZCB1c2Ugb2YgUVdlYlNldHRpbmdzCisgICAg
ICAgIHdpdGggdXNlYWdlIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICAoV2ViQ29yZTo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Ro
aXJkUGFydHlDb29raWVzUXQuaDoKKwogMjAxMS0xMS0xNyAgWmVubyBBbGJpc3NlciAgPHplbm9A
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0gVG91Y2gvTW91c2UgZXZlbnRzIGFyZSBk
ZWxpdmVyZWQgd2l0aCB3cm9uZyBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMDM3NzIy
M2E3NGIzMjI1NDc3Zjk0ZDJiY2E4NzA1YWJlM2Y0OWFkMC4uNDg2ZDA1ZTY2YWM5YWU4NDgwNTM0
ODVhNDM2MTcxOGEyOTFkYTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAx
MS0xMS0xNyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAg
ICAgICAgW1F0XSBMYXllciB2aW9sYXRpb246IFRoaXJkUGFydHlDb29raWVzUXQuY3BwIHVzZXMg
UVdlYlNldHRpbmdzIGluIHR3byBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyNTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgTmV0d29ya2luZ0NvbnRleHQ6OnRoaXJkUGFy
dHlDb29raWVQb2xpY3lQZXJtaXNzaW9uLCB3aGljaCBxdWVyaWVzCisgICAgICAgIFFXZWJTZXR0
aW5ncyAoZmlyc3QgcGVyIHBhZ2UsIHRoZW4gZmFsbGJhY2sgdG8gZ2xvYmFsKS4KKworICAgICAg
ICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpnbG9iYWxT
ZXR0aW5ncyk6IE1ha2Ugc3VyZSB0aGF0IHRoZSBnbG9iYWwgc2V0dGluZ3MgaGF2ZSB0aGUgZGVm
YXVsdAorICAgICAgICBBbHdheXNBbGxvd1RoaXJkUGFydHlDb29raWVzIHNldHRpbmcuCisgICAg
ICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6IENoYW5nZWQgdGhlIHBlci1zZXR0aW5n
cyBkZWZhdWx0IHRvIEdsb2JhbCogdG8gZW5zdXJlCisgICAgICAgIHRoYXQgd2UgdXNlIFFXZWJT
ZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKSBsaWtlIGJlZm9yZSB0aGlzIHBhdGNoLgorICAgICAg
ICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyk6IEFkYXB0IHRvIHRoZQorICAgICAgICBjaGFu
Z2VkIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzIFdlYkNvcmUgQVBJIHRoYXQgb3BlcmF0
ZXMgb24gYSBuZXR3b3JraW5nIGNvbnRleHQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKTogUGFzcyBuZXR3b3JraW5n
CisgICAgICAgIGNvbnRleHQgdG8gUmVzb3VyY2VSZXF1ZXN0Ojp0b05ldHdvcmtSZXF1ZXN0Lgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudFF0OjpzdGFydERvd25sb2FkKTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24p
OiBJbXBsZW1lbnQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0Lmg6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAg
ICAgICAgKHRzdF9RV2ViUGFnZTo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeSk6IEFkYXB0IHRvIFF0
RFJUU3VwcG9ydCBBUEkgY2hhbmdlLgorCiAyMDExLTExLTE3ICBUb3IgQXJuZSBWZXN0YsO4ICA8
dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIE1vdmUgV2ViS2l0MiBD
KysgQVBJcyB0byBwcml2YXRlIEFQSSBhbmQgYnVpbGQgUU1MIGV4dGVuc2lvbiBwbHVnaW4gb24g
dG9wIG9mIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZDIxNWU3MjYwNTQ2ZTk1YjY5OGQyOTEyY2Y0YTMy
MzI3Zjk2YzU0Li41NjVkZjg1NGYzNDk3NzNlNTkzZmU1Nzc4MTlkY2VlY2UxMTJiZjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMTcgIFNpbW9uIEhhdXNtYW5uICA8c2lt
b24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gTGF5ZXIgdmlvbGF0aW9uOiBU
aGlyZFBhcnR5Q29va2llc1F0LmNwcCB1c2VzIFFXZWJTZXR0aW5ncyBpbiB0d28gcGxhY2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgbmV3IE5ldHdvcmtpbmdDb250ZXh0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5
UGVybWlzc2lvbgorICAgICAgICBBUEkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1p
c3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oOgorCiAyMDExLTExLTE3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9y
LmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBmb3J3YXJkaW5n
IGhlYWRlciBmb3IgV2ViS2l0MiBDIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDMxM2EwYTE3YmQyNzcyODZkMzQ1
YTBiN2Y2YzE0MThiNjZmZGY5MDYuLmFhMWViYjk3NTRkNWUwY2ZmNzA1MTM0ZDg0ZWY3ZDYxMWY1
N2FlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtpbmdDb250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xh
c3MgUU9iamVjdDsKIGNsYXNzIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjsKK2NsYXNzIFFVcmw7CiBR
VF9FTkRfTkFNRVNQQUNFCiAjZW5kaWYKIApAQCAtNTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBib29sIG1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBib29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXNzaW9uKGNvbnN0IFFV
cmwmKSBjb25zdCA9IDA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAKaW5kZXggN2EwMzI2ODg4Mjk1OTcxZDM4MjFiZjRiNTNiNWQyNjliNzhhMGY0YS4u
OTk4ZjFmNTA0NWI5NmRhNGZiODQ0ODA2OTJiOTk3NjllNzk1Yjc1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAKQEAgLTM5NSwxMSArMzk1LDcgQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRUeXBlIGxvYWQKICAg
ICBlbHNlCiAgICAgICAgIG1fbWV0aG9kID0gUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpDdXN0b21P
cGVyYXRpb247CiAKLSAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7Ci0gICAgaWYg
KG1fcmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKLSAgICAgICAgb3Jp
Z2luYXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRl
eHQtPm9yaWdpbmF0aW5nT2JqZWN0KCk7Ci0KLSAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1Jl
cXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOworICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVx
dWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQuZ2V0KCkpOwog
CiAgICAgbV9xdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogfQpAQCAt
NTU1LDExICs1NTEsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdChSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVybCYgcmVkaQogICAgIGlmICh3YXNBYm9y
dGVkKCkpIC8vIE5ldHdvcmsgZXJyb3IgY2FuY2VsbGVkIHRoZSByZXF1ZXN0LgogICAgICAgICBy
ZXR1cm47CiAKLSAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7Ci0gICAgaWYgKG1f
cmVzb3VyY2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKLSAgICAgICAgb3JpZ2lu
YXRpbmdPYmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQt
Pm9yaWdpbmF0aW5nT2JqZWN0KCk7Ci0KLSAgICBtX3JlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0
d29ya1JlcXVlc3Qob3JpZ2luYXRpbmdPYmplY3QpOworICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVl
c3QudG9OZXR3b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2Nv
bnRleHQuZ2V0KCkpOwogfQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0
YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZVJlcXVlc3QuaAppbmRleCBjZDZmNzYwMjZkOTY3NmExYjFmNDE0ZWQ0YzM5NTBhZWNiYTQ1OGNj
Li5hMTUwMTExMjQzOWM1OWViZGI1M2MzZjJhMDhiZWY0NjYwZmY5ZGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0LmgKQEAg
LTMxLDEwICszMSwxMCBAQAogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFOZXR3b3JrUmVx
dWVzdDsKLWNsYXNzIFFPYmplY3Q7CiBRVF9FTkRfTkFNRVNQQUNFCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0IDogcHVibGljIFJlc291cmNlUmVxdWVzdEJhc2UgewogICAgIHB1YmxpYzoKQEAgLTU5LDcg
KzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAg
ICAgICBRTmV0d29ya1JlcXVlc3QgdG9OZXR3b3JrUmVxdWVzdChRT2JqZWN0KiBvcmlnaW5hdGlu
Z09iamVjdCA9IDApIGNvbnN0OworICAgICAgICBRTmV0d29ya1JlcXVlc3QgdG9OZXR3b3JrUmVx
dWVzdChOZXR3b3JraW5nQ29udGV4dCogPSAwKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3RRdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAppbmRl
eCA0MTVjYTg5Y2U3MjFiNjI2YjJjYTBlYjkyZTcxOTE5NzE2YjRkOTgzLi5iZmIyNDE0MGJkZjRm
NWVmMTliOWQ5YWEyMTVmNWViODFkYjMwMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcApAQCAtMTgsNiAr
MTgsNyBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVGhpcmRQ
YXJ0eUNvb2tpZXNRdC5oIgogCkBAIC0zOSwxMSArNDAsMTEgQEAgdW5zaWduZWQgaW5pdGlhbGl6
ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgcmV0dXJuIDYgKiAoMSAr
IDMgKyAyKTsKIH0KIAotUU5ldHdvcmtSZXF1ZXN0IFJlc291cmNlUmVxdWVzdDo6dG9OZXR3b3Jr
UmVxdWVzdChRT2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1lKSBjb25zdAorUU5ldHdvcmtSZXF1ZXN0
IFJlc291cmNlUmVxdWVzdDo6dG9OZXR3b3JrUmVxdWVzdChOZXR3b3JraW5nQ29udGV4dCAqY29u
dGV4dCkgY29uc3QKIHsKICAgICBRTmV0d29ya1JlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0
LnNldFVybCh1cmwoKSk7Ci0gICAgcmVxdWVzdC5zZXRPcmlnaW5hdGluZ09iamVjdChvcmlnaW5h
dGluZ0ZyYW1lKTsKKyAgICByZXF1ZXN0LnNldE9yaWdpbmF0aW5nT2JqZWN0KGNvbnRleHQgPyBj
b250ZXh0LT5vcmlnaW5hdGluZ09iamVjdCgpIDogMCk7CiAKICAgICBjb25zdCBIVFRQSGVhZGVy
TWFwICZoZWFkZXJzID0gaHR0cEhlYWRlckZpZWxkcygpOwogICAgIGZvciAoSFRUUEhlYWRlck1h
cDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBoZWFkZXJzLmJlZ2luKCksIGVuZCA9IGhlYWRlcnMuZW5k
KCk7CkBAIC03OSw3ICs4MCw3IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJjZVJlcXVlc3Q6OnRv
TmV0d29ya1JlcXVlc3QoUU9iamVjdCogb3JpZ2luYXRpbmdGcmFtZSkgY29uCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIGlmICghYWxsb3dDb29raWVzKCkgfHwgIXRoaXJkUGFydHlDb29r
aWVQb2xpY3lQZXJtaXRzRm9yRnJhbWUob3JpZ2luYXRpbmdGcmFtZSwgdXJsKCksIGZpcnN0UGFy
dHlGb3JDb29raWVzKCkpKSB7CisgICAgaWYgKCFhbGxvd0Nvb2tpZXMoKSB8fCAhdGhpcmRQYXJ0
eUNvb2tpZVBvbGljeVBlcm1pdHMoY29udGV4dCwgdXJsKCksIGZpcnN0UGFydHlGb3JDb29raWVz
KCkpKSB7CiAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6Q29v
a2llU2F2ZUNvbnRyb2xBdHRyaWJ1dGUsIFFOZXR3b3JrUmVxdWVzdDo6TWFudWFsKTsKICAgICAg
ICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpDb29raWVMb2FkQ29udHJv
bEF0dHJpYnV0ZSwgUU5ldHdvcmtSZXF1ZXN0OjpNYW51YWwpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcAppbmRleCBmMjk1Y2YyMmNmMDIzMWUwYTM1
Y2I0YWMwYTU3ZWE0NmY5NjAwYTkyLi40MTNkYTczOGMwNzYwY2YzZTllOGJiNDFmNmI3NzEwOTBk
ZDVmZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJR
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCkBA
IC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNoYXJlZENvb2tp
ZUphclF0KiBzX3NoYXJlZENvb2tpZUphclF0ID0gMDsKIAotc3RhdGljIFFOZXR3b3JrQ29va2ll
SmFyICpjb29raWVKYXIoY29uc3QgRG9jdW1lbnQgKmRvY3VtZW50KQorc3RhdGljIE5ldHdvcmtp
bmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCiB7
CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC02MSwyMCArNjEsMjEg
QEAgc3RhdGljIFFOZXR3b3JrQ29va2llSmFyICpjb29raWVKYXIoY29uc3QgRG9jdW1lbnQgKmRv
Y3VtZW50KQogICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CiAgICAg
aWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiAwOwotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdl
ciogbWFuYWdlciA9IGxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKS0+bmV0d29ya0FjY2Vzc01h
bmFnZXIoKTsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gbWFuYWdlci0+Y29va2llSmFy
KCk7Ci0gICAgcmV0dXJuIGphcjsKKyAgICByZXR1cm4gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4
dCgpOwogfQogCiB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgUU5ldHdvcmtDb29raWVKYXIqIGph
ciA9IGNvb2tpZUphcihkb2N1bWVudCk7CisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQg
PSBuZXR3b3JraW5nQ29udGV4dChkb2N1bWVudCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICByZXR1cm47CisgICAgUU5ldHdvcmtDb29raWVKYXIqIGphciA9IGNvbnRleHQtPm5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1
cm47CiAKICAgICBRVXJsIHVybEZvckNvb2tpZXModXJsKTsKICAgICBRVXJsIGZpcnN0UGFydHlV
cmwoZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwotICAgIGlmICghdGhpcmRQYXJ0
eUNvb2tpZVBvbGljeVBlcm1pdHMoamFyLCB1cmxGb3JDb29raWVzLCBmaXJzdFBhcnR5VXJsKSkK
KyAgICBpZiAoIXRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKGNvbnRleHQsIHVybEZvckNv
b2tpZXMsIGZpcnN0UGFydHlVcmwpKQogICAgICAgICByZXR1cm47CiAKICAgICBRTGlzdDxRTmV0
d29ya0Nvb2tpZT4gY29va2llcyA9IFFOZXR3b3JrQ29va2llOjpwYXJzZUNvb2tpZXMoUVN0cmlu
Zyh2YWx1ZSkudG9MYXRpbjEoKSk7CkBAIC05MSwxMyArOTIsMTQgQEAgdm9pZCBzZXRDb29raWVz
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVl
KQogCiBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwm
IHVybCkKIHsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gY29va2llSmFyKGRvY3VtZW50
KTsKLSAgICBpZiAoIWphcikKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5ldHdv
cmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gY29udGV4dC0+bmV0d29y
a0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCk7CiAKICAgICBRVXJsIHVybEZvckNvb2tpZXMo
dXJsKTsKICAgICBRVXJsIGZpcnN0UGFydHlVcmwoZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29r
aWVzKCkpOwotICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMoamFyLCB1cmxG
b3JDb29raWVzLCBmaXJzdFBhcnR5VXJsKSkKKyAgICBpZiAoIXRoaXJkUGFydHlDb29raWVQb2xp
Y3lQZXJtaXRzKGNvbnRleHQsIHVybEZvckNvb2tpZXMsIGZpcnN0UGFydHlVcmwpKQogICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBRTGlzdDxRTmV0d29ya0Nvb2tpZT4gY29va2llcyA9
IGphci0+Y29va2llc0ZvclVybCh1cmxGb3JDb29raWVzKTsKQEAgLTExNiw5ICsxMTgsMTAgQEAg
U3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwp
CiAKIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCog
ZG9jdW1lbnQsIGNvbnN0IEtVUkwgJnVybCkKIHsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFy
ID0gY29va2llSmFyKGRvY3VtZW50KTsKLSAgICBpZiAoIWphcikKKyAgICBOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNv
bnRleHQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBRTmV0d29ya0Nvb2tpZUphciog
amFyID0gY29udGV4dC0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCk7CiAKICAg
ICBRTGlzdDxRTmV0d29ya0Nvb2tpZT4gY29va2llcyA9IGphci0+Y29va2llc0ZvclVybChRVXJs
KHVybCkpOwogICAgIGlmIChjb29raWVzLmlzRW1wdHkoKSkKQEAgLTEzMyw4ICsxMzYsMTAgQEAg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgS1VSTCAmdXJsKQogCiBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3Vt
ZW50KiBkb2N1bWVudCkKIHsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gY29va2llSmFy
KGRvY3VtZW50KTsKLSAgICByZXR1cm4gamFyOworICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0ID0gbmV0d29ya2luZ0NvbnRleHQoZG9jdW1lbnQpOworICAgIGlmICghY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFu
YWdlcigpLT5jb29raWVKYXIoKTsKIH0KIAogYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3Vt
ZW50KiwgY29uc3QgS1VSTCYsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2llc1F0LmNwcAppbmRleCAw
ZjFkMTdjYmY0ZDFjMjc2ZTAzYWFlMGMyNjBjNDZkOTMxODM0MmU3Li4yM2Q3MWU5ZmVkYWI5NzMx
YjczN2RhZDZmYjA3MWNiYzViODRmNDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2llc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2llc1F0LmNwcApAQCAtMjMsOSArMjMsNyBAQAogI2luY2x1
ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAicXdlYmZyYW1lLmgiCi0jaW5jbHVkZSAicXdlYnBhZ2UuaCIKLSNpbmNs
dWRlICJxd2Vic2V0dGluZ3MuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogCiAj
aW5jbHVkZSA8UUxpc3Q+CiAjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgpAQCAtMzQs
MTggKzMyLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFFUX1ZFUlNJT04gPj0gUVRf
VkVSU0lPTl9DSEVDSyg0LCA4LCAwKQotc3RhdGljIFFOZXR3b3JrQ29va2llSmFyKiBjb29raWVK
YXIoUU9iamVjdCogb3JpZ2luYXRpbmdGcmFtZSkKLXsKLSAgICBpZiAoIW9yaWdpbmF0aW5nRnJh
bWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIFFXZWJGcmFtZSogZnJhbWUgPSBxb2JqZWN0X2Nh
c3Q8UVdlYkZyYW1lKj4ob3JpZ2luYXRpbmdGcmFtZSk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZnJhbWUt
PnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKLSAgICBRTmV0d29ya0Nvb2tpZUphciog
amFyID0gbWFuYWdlci0+Y29va2llSmFyKCk7Ci0gICAgcmV0dXJuIGphcjsKLX0KLQogaW5saW5l
IHZvaWQgcmVtb3ZlVG9wTGV2ZWxEb21haW4oUVN0cmluZyogZG9tYWluLCBjb25zdCBRU3RyaW5n
JiB0b3BMZXZlbERvbWFpbikKIHsKICAgICBkb21haW4tPnJlbW92ZShkb21haW4tPmxlbmd0aCgp
IC0gdG9wTGV2ZWxEb21haW4ubGVuZ3RoKCksIHRvcExldmVsRG9tYWluLmxlbmd0aCgpKTsKQEAg
LTczLDM5ICs1OSwyMCBAQCBzdGF0aWMgYm9vbCB1cmxzU2hhcmVTYW1lRG9tYWluKGNvbnN0IFFV
cmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKIH0KICNlbmRpZgogCi1ib29sIHRo
aXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKFFOZXR3b3JrQ29va2llSmFyKiBqYXIsIGNvbnN0
IFFVcmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKK2Jvb2wgdGhpcmRQYXJ0eUNv
b2tpZVBvbGljeVBlcm1pdHMoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFFVcmwm
IHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFU
X1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkKLSAgICBpZiAoZmlyc3RQYXJ0eVVybC5pc0VtcHR5KCkp
CisgICAgUU5ldHdvcmtDb29raWVKYXIqIGphciA9IGNvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKCktPmNvb2tpZUphcigpOworICAgIGlmICghamFyKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIGlmICh1cmxzU2hhcmVTYW1lRG9tYWluKHVybCwgZmlyc3RQYXJ0eVVybCkpCisgICAg
aWYgKGZpcnN0UGFydHlVcmwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IHN3aXRjaCAoUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT50aGlyZFBhcnR5Q29va2ll
UG9saWN5KCkpIHsKLSAgICBjYXNlIFFXZWJTZXR0aW5nczo6QWx3YXlzQWxsb3dUaGlyZFBhcnR5
Q29va2llczoKKyAgICBpZiAodXJsc1NoYXJlU2FtZURvbWFpbih1cmwsIGZpcnN0UGFydHlVcmwp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIFFXZWJTZXR0aW5nczo6QWx3YXlzQmxv
Y2tUaGlyZFBhcnR5Q29va2llczoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgUVdl
YlNldHRpbmdzOjpBbGxvd1RoaXJkUGFydHlXaXRoRXhpc3RpbmdDb29raWVzOiB7Ci0gICAgICAg
IFFMaXN0PFFOZXR3b3JrQ29va2llPiBjb29raWVzID0gamFyLT5jb29raWVzRm9yVXJsKHVybCk7
Ci0gICAgICAgIHJldHVybiAhY29va2llcy5pc0VtcHR5KCk7Ci0gICAgfQotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwot
I2VuZGlmCi19CiAKLWJvb2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHNGb3JGcmFtZShR
T2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1lLCBjb25zdCBRVXJsJiB1cmwsIGNvbnN0IFFVcmwmIGZp
cnN0UGFydHlVcmwpCi17Ci0jaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDgs
IDApCi0gICAgUU5ldHdvcmtDb29raWVKYXIqIGphciA9IGNvb2tpZUphcihvcmlnaW5hdGluZ0Zy
YW1lKTsKLSAgICBpZiAoIWphcikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHRo
aXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKGphciwgdXJsLCBmaXJzdFBhcnR5VXJsKTsKKyAg
ICByZXR1cm4gY29udGV4dC0+dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24odXJsKTsK
ICNlbHNlCiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuaAppbmRleCBjZmUwMmIzNTQ1ZTMxZDU0Mjkw
NWYyYWI1NDM4OTNlYzNlOWI2ZmU1Li5iZmU3ZTIyZTNlODA1N2RiMjQ4M2U4OTQxODU1NGQzMzQ3
ZWUzMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UaGlyZFBhcnR5
Q29va2llc1F0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvVGhpcmRQYXJ0eUNv
b2tpZXNRdC5oCkBAIC0yMSwxMyArMjEsMTIgQEAKICNkZWZpbmUgVGhpcmRQYXJ0eUNvb2tpZXNR
dF9oCiAKIGNsYXNzIFFOZXR3b3JrQ29va2llSmFyOwotY2xhc3MgUU9iamVjdDsKIGNsYXNzIFFV
cmw7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCi1i
b29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKFFOZXR3b3JrQ29va2llSmFyKiAsIGNv
bnN0IFFVcmwmLCBjb25zdCBRVXJsJiBmaXJzdFBhcnR5VXJsKTsKLWJvb2wgdGhpcmRQYXJ0eUNv
b2tpZVBvbGljeVBlcm1pdHNGb3JGcmFtZShRT2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1lLCBjb25z
dCBRVXJsJiwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCk7Citib29sIHRoaXJkUGFydHlDb29r
aWVQb2xpY3lQZXJtaXRzKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUVVybCYsIGNvbnN0IFFV
cmwmIGZpcnN0UGFydHlVcmwpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3Mu
Y3BwCmluZGV4IDEyMTZlYzk3ZmI0Y2I3OGMyYTY1ODljYTA1NDlkOTA3ZmI5MzgyOWYuLjFmZjc4
NDRlYTZmMTVkMGRlMmYwZmJjMzk1NGVjYTY0OWRkODQ1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnNldHRpbmdzLmNwcApAQCAtMzA0LDggKzMwNCwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1By
aXZhdGU6OmFwcGx5KCkKIFFXZWJTZXR0aW5ncyogUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5n
cygpCiB7CiAgICAgc3RhdGljIFFXZWJTZXR0aW5ncyogZ2xvYmFsID0gMDsKLSAgICBpZiAoIWds
b2JhbCkKKyAgICBpZiAoIWdsb2JhbCkgewogICAgICAgICBnbG9iYWwgPSBuZXcgUVdlYlNldHRp
bmdzOworICAgICAgICBnbG9iYWwtPnNldFRoaXJkUGFydHlDb29raWVQb2xpY3koQWx3YXlzQWxs
b3dUaGlyZFBhcnR5Q29va2llcyk7CisgICAgfQogICAgIHJldHVybiBnbG9iYWw7CiB9CiAKQEAg
LTM5NSw2ICszOTcsNyBAQCBRV2ViU2V0dGluZ3MqIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGlu
Z3MoKQogICAgIFx2YWx1ZSBBbHdheXNCbG9ja1RoaXJkUGFydHlDb29raWVzIE5ldmVyIGFsbG93
IHRoaXJkLXBhcnR5IHJlc291cmNlcyB0byBzZXQgYW5kIHJldHJpZXZlIGNvb2tpZXMuCiAgICAg
XHZhbHVlIEFsbG93VGhpcmRQYXJ0eVdpdGhFeGlzdGluZ0Nvb2tpZXMgSWYgdGhlIGNvb2tpZSBq
YXIgYWxyZWFkeSBjb250YWlucyBjb29raWVzCiAgICAgICAgIGZyb20gYSB0aGlyZC1wYXJ0eSwg
YWxsb3cgaXQgdG8gc2V0IGFuZCByZXRyaWV2ZSBuZXcgYW5kIGV4aXN0aW5nIGNvb2tpZXMuCisg
ICAgXHZhbHVlIEdsb2JhbFRoaXJkUGFydHlDb29raWVQb2xpY3lTZXR0aW5nIFVzZSB0aGUgc2V0
dGluZ3MgZnJvbSBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCkuCiAKICAgICBcc2luY2Ug
UXRXZWJLaXQgMiwzCiAqLwpAQCAtNTQ1LDcgKzU0OCw3IEBAIFFXZWJTZXR0aW5nczo6UVdlYlNl
dHRpbmdzKCkKICAgICBkLT5vZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90YSA9IDUgKiAxMDI0ICog
MTAyNDsKICAgICBkLT5kZWZhdWx0VGV4dEVuY29kaW5nID0gUUxhdGluMVN0cmluZygiaXNvLTg4
NTktMSIpOwogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA4LCAwKQotICAg
IGQtPnRoaXJkUGFydHlDb29raWVQb2xpY3kgPSBBbHdheXNBbGxvd1RoaXJkUGFydHlDb29raWVz
OworICAgIGQtPnRoaXJkUGFydHlDb29raWVQb2xpY3kgPSBHbG9iYWxUaGlyZFBhcnR5Q29va2ll
UG9saWN5U2V0dGluZzsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5o
CmluZGV4IDQwZjdmNzNmOTRkMTk4YmYxZGYzNmEyOGM2YWMwYTczNTU2M2Y5OGYuLmFjMWZmMTQ2
NWVjZWVlZWVhOTJjMTI4MmJjN2RjM2VhOTJmYmE0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJz
ZXR0aW5ncy5oCkBAIC0xMDMsNyArMTAzLDggQEAgcHVibGljOgogICAgIGVudW0gVGhpcmRQYXJ0
eUNvb2tpZVBvbGljeSB7CiAgICAgICAgIEFsd2F5c0FsbG93VGhpcmRQYXJ0eUNvb2tpZXMsCiAg
ICAgICAgIEFsd2F5c0Jsb2NrVGhpcmRQYXJ0eUNvb2tpZXMsCi0gICAgICAgIEFsbG93VGhpcmRQ
YXJ0eVdpdGhFeGlzdGluZ0Nvb2tpZXMKKyAgICAgICAgQWxsb3dUaGlyZFBhcnR5V2l0aEV4aXN0
aW5nQ29va2llcywKKyAgICAgICAgR2xvYmFsVGhpcmRQYXJ0eUNvb2tpZVBvbGljeVNldHRpbmcK
ICAgICB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggMGI3N2RjNWFmMjA2
OWNlMjE1MjE4Nzc5ZTg1ZDRhM2UwMjcyZjg1MS4uNzNjYzgyN2NjOTkwZTMwMjMwMmY4ZmVkZDk3
OWRmZjNiOTY2ZDZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTEwODEsOSArMTA4MSwx
MCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNaW5pbXVtVGltZXJJbnRlcnZh
bChRV2ViUGFnZSogcGFnZSwgZG91YmxlIGludAogfQogCiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9W
RVJTSU9OX0NIRUNLKDQsIDgsIDApCi1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGly
ZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKFFOZXR3b3JrQ29va2llSmFyKiBqYXIsIGNvbnN0IFFV
cmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKK2Jvb2wgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MoUVdlYlBhZ2UgKnBhZ2UsIGNv
bnN0IFFVcmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKIHsKLSAgICByZXR1cm4g
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMoamFyLCB1cmwsIGZpcnN0UGFydHlVcmwpOwor
ICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOworICAgIHJl
dHVybiB0aGlyZFBhcnR5Q29va2llUG9saWN5UGVybWl0cyhjb3JlUGFnZS0+bWFpbkZyYW1lKCkt
PmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCB1cmwsIGZpcnN0UGFydHlVcmwpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCA1NmI2NmNjYzZkMThiZTRiMDFiYWM1ZWZk
Y2E5NGFlNmM5Y2UyOTE3Li4xMmJkOGNmNGE3Nzg4OWVkMWI0NDExOTc0Nzc2ZTFlZmQ3OWJjZWY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGdvQmFjayhRV2ViUGFnZSopOwogCiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDgsIDApCi0gICAgc3RhdGljIGJvb2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eUFsbG93cyhRTmV0d29ya0Nvb2tpZUphciosIGNvbnN0IFFVcmwmLCBjb25zdCBRVXJsJiBmaXJz
dFBhcnR5VXJsKTsKKyAgICBzdGF0aWMgYm9vbCB0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dz
KFFXZWJQYWdlKiwgY29uc3QgUVVybCYsIGNvbnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpOwogI2Vu
ZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwNGIxZTNmODkwMjQwNDk5MWE4MTEwNmQwMjZm
Y2ZiYzAyNzFjZmZmLi41YTgxY2YxMjczZTFjNzcyZWZkNjg1NDUwZjJmYjhhNDY5OTdkYWU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAKQEAgLTEyNDIsNyArMTI0Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRRdDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bmN0aW9u
IGZ1CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6U3Ry
aW5nJikKIHsKICAgICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKLSAgICBRTmV0d29ya1JlcXVlc3Qg
cihyZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIFFOZXR3b3JrUmVx
dWVzdCByKHJlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29y
a2luZ0NvbnRleHQoKSkpOwogICAgIFFXZWJQYWdlKiBwYWdlID0gbV93ZWJGcmFtZS0+cGFnZSgp
OwogCiAgICAgaWYgKCFwYWdlLT5kLT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgwLCByLCBRV2Vi
UGFnZTo6TmF2aWdhdGlvblR5cGUoYWN0aW9uLnR5cGUoKSkpKSB7CkBAIC0xMjYzLDcgKzEyNjMs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKEZyYW1lUG9saWN5RnVuYwogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlv
biBmdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
Rm9ybVN0YXRlPikKIHsKICAgICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKLSAgICBRTmV0d29ya1Jl
cXVlc3QgcihyZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIFFOZXR3
b3JrUmVxdWVzdCByKHJlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+
bmV0d29ya2luZ0NvbnRleHQoKSkpOwogICAgIFFXZWJQYWdlKnBhZ2UgPSBtX3dlYkZyYW1lLT5w
YWdlKCk7CiAgICAgUG9saWN5QWN0aW9uIHJlc3VsdDsKIApAQCAtMTMxOCw3ICsxMzE4LDcgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGVtaXQgbV93ZWJGcmFtZS0+cGFnZSgpLT5kb3dubG9hZFJlcXVlc3RlZChy
ZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIGVtaXQgbV93ZWJGcmFt
ZS0+cGFnZSgpLT5kb3dubG9hZFJlcXVlc3RlZChyZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9m
cmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCkpKTsKIH0KIAogUGFzc1JlZlB0cjxG
cmFtZT4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0UXQuY3BwCmluZGV4IGZmY2JmOTcxODNiMThlOGEwZGFiY2IwNjI0MTIx
YTk0OGIyMDA2MTEuLmZkM2JmZjYyNTE1ZjcxZDcyYjRhNDQ4M2Q1MTMyYTlkZjlmMDA2ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdC5jcHAKQEAgLTIyLDkgKzIyLDEwIEBACiAjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0LmgiCiAKICNpbmNsdWRlICJxd2ViZnJhbWUuaCIKKyNpbmNs
dWRlICJxd2ViZnJhbWVfcC5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAjaW5jbHVkZSA8UU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyPgotI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UU5ldHdv
cmtDb29raWVKYXI+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTYsNCArNTcsMzAgQEAg
Ym9vbCBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25z
dAogICAgIHJldHVybiBtX21pbWVTbmlmZmluZ0VuYWJsZWQ7CiB9CiAKK2Jvb2wgRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5UGVybWlzc2lvbihjb25zdCBR
VXJsJiB1cmwpIGNvbnN0Cit7CisgICAgUVdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IFFXZWJGcmFt
ZVByaXZhdGU6OmtpdChmcmFtZSgpKS0+cGFnZSgpLT5zZXR0aW5ncygpOworICAgIFFXZWJTZXR0
aW5nczo6VGhpcmRQYXJ0eUNvb2tpZVBvbGljeSBwb2xpY3kgPSBzZXR0aW5ncy0+dGhpcmRQYXJ0
eUNvb2tpZVBvbGljeSgpOworICAgIGlmIChwb2xpY3kgPT0gUVdlYlNldHRpbmdzOjpHbG9iYWxU
aGlyZFBhcnR5Q29va2llUG9saWN5U2V0dGluZykgeworICAgICAgICBzZXR0aW5ncyA9IFFXZWJT
ZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKTsKKyAgICAgICAgcG9saWN5ID0gc2V0dGluZ3MtPnRo
aXJkUGFydHlDb29raWVQb2xpY3koKTsKKyAgICB9CisgICAgQVNTRVJUKHBvbGljeSAhPSBRV2Vi
U2V0dGluZ3M6Okdsb2JhbFRoaXJkUGFydHlDb29raWVQb2xpY3lTZXR0aW5nKTsKKworICAgIHN3
aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBRV2ViU2V0dGluZ3M6OkFsd2F5c0FsbG93VGhpcmRQ
YXJ0eUNvb2tpZXM6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUVdlYlNldHRpbmdz
OjpBbHdheXNCbG9ja1RoaXJkUGFydHlDb29raWVzOgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgY2FzZSBRV2ViU2V0dGluZ3M6OkFsbG93VGhpcmRQYXJ0eVdpdGhFeGlzdGluZ0Nvb2tpZXM6
IHsKKyAgICAgICAgUUxpc3Q8UU5ldHdvcmtDb29raWU+IGNvb2tpZXMgPSBuZXR3b3JrQWNjZXNz
TWFuYWdlcigpLT5jb29raWVKYXIoKS0+Y29va2llc0ZvclVybCh1cmwpOworICAgICAgICByZXR1
cm4gIWNvb2tpZXMuaXNFbXB0eSgpOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmggYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5o
CmluZGV4IGYyM2JhOTU4MjJmNmVkNWFjYjEyMjllZWUxOTIzOGVkMmE3Y2YwMzEuLmM5NWU2MzBh
YzIxNGRkZGM5ZDY4OGE5MzNjMGM3OWVmNjk4ODRkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaApA
QCAtMzQsNiArMzQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUU9iamVjdCogb3JpZ2luYXRp
bmdPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbmV0
d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbWltZVNuaWZmaW5n
RW5hYmxlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCB0aGlyZFBhcnR5Q29va2llUG9saWN5
UGVybWlzc2lvbihjb25zdCBRVXJsJikgY29uc3Q7CiAKICAgICBRT2JqZWN0KiBtX29yaWdpbmF0
aW5nT2JqZWN0OwogICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbV9uZXR3b3JrQWNjZXNzTWFu
YWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3
ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdl
LmNwcAppbmRleCA1NTU4YzMwZTRiMjFiZjE5YmEyNDUzMjI0MWY4MDA5NWRkZjRiNGQ2Li4yYjlj
YzlmMjlhMGQ2ZTAwNTg3ZWQ5Yzg2N2ZmZmI3MDUxZmZkMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC0zMDIzLDM1ICszMDIz
LDM1IEBAIHZvaWQgdHN0X1FXZWJQYWdlOjp0aGlyZFBhcnR5Q29va2llUG9saWN5KCkKICAgICBR
VkVSSUZZKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCkpOwogCiAg
ICAgLy8gVGhlc2UgYXJlIGFsbCBmaXJzdC1wYXJ0eSBjb29raWVzLCBzbyBzaG91bGQgcGFzcy4K
LSAgICBRVkVSSUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9s
aWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisg
ICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
IiksIFFVcmwoImh0dHA6Ly9leGFtcGxlLmNvbSIpKSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAg
ICAgICAgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCBRVXJsKCJodHRwOi8vZG9jLmV4
YW1wbGUuY29tIikpKTsKLSAgICBRVkVSSUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGly
ZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+
Y29va2llSmFyKCksCisgICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRwOi8v
YWFhLnd3dy5leGFtcGxlLmNvbSIpLCBRVXJsKCJodHRwOi8vZG9jLmV4YW1wbGUuY29tIikpKTsK
LSAgICBRVkVSSUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9s
aWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisg
ICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRwOi8vZXhhbXBsZS5jb20iKSwg
UVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpKSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAg
ICAgICAgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvLnVrIiksIFFVcmwoImh0dHA6Ly9leGFt
cGxlLmNvLnVrIikpKTsKLSAgICBRVkVSSUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGly
ZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+
Y29va2llSmFyKCksCisgICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRwOi8v
d3d3LmV4YW1wbGUuY28udWsiKSwgUVVybCgiaHR0cDovL2RvYy5leGFtcGxlLmNvLnVrIikpKTsK
LSAgICBRVkVSSUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9s
aWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisg
ICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRwOi8vYWFhLnd3dy5leGFtcGxl
LmNvLnVrIiksIFFVcmwoImh0dHA6Ly9kb2MuZXhhbXBsZS5jby51ayIpKSk7Ci0gICAgUVZFUklG
WShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyht
X3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlko
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9w
YWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2V4YW1wbGUuY28udWsiKSwgUVVybCgiaHR0
cDovL3d3dy5leGFtcGxlLmNvLnVrIikpKTsKIAogICAgIC8vIFRoZXNlIGFyZSBhbGwgdGhpcmQt
cGFydHkgY29va2llcywgc28gc2hvdWxkIGZhaWwuCi0gICAgUVZFUklGWSghRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLT5uZXR3b3Jr
QWNjZXNzTWFuYWdlcigpLT5jb29raWVKYXIoKSwKKyAgICBRVkVSSUZZKCFEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UsCiAgICAgICAg
ICAgICBRVXJsKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIFFVcmwoImh0dHA6Ly9zbGFzaGRv
dC5vcmciKSkpOwotICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBh
cnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29v
a2llSmFyKCksCisgICAgUVZFUklGWSghRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFy
dHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2V4
YW1wbGUuY29tIiksIFFVcmwoImh0dHA6Ly9hbm90aGVyZXhhbXBsZS5jb20iKSkpOwotICAgIFFW
RVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxs
b3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisgICAgUVZF
UklGWSghRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxv
d3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2Fub3RoZXJleGFtcGxlLmNvbSIp
LCBRVXJsKCJodHRwOi8vZXhhbXBsZS5jb20iKSkpOwotICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29y
a0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisgICAgUVZFUklGWSghRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAg
ICAgICAgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvLnVrIiksIFFVcmwoImh0dHA6Ly9zbGFz
aGRvdC5jby51ayIpKSk7Ci0gICAgUVZFUklGWSghRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRo
aXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigp
LT5jb29raWVKYXIoKSwKKyAgICBRVkVSSUZZKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhp
cmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UsCiAgICAgICAgICAgICBRVXJsKCJodHRw
Oi8vZXhhbXBsZS5jby51ayIpLCBRVXJsKCJodHRwOi8vYW5vdGhlcmV4YW1wbGUuY28udWsiKSkp
OwotICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2ll
UG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCks
CisgICAgUVZFUklGWSghRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2Fub3RoZXJleGFt
cGxlLmNvLnVrIiksIFFVcmwoImh0dHA6Ly9leGFtcGxlLmNvLnVrIikpKTsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKaW5kZXggMDI0
OGY3MDlhMjU4YTg5ZTdiNGE1YzJlMDQ2NGY1MWJiZDEzYmU1YS4uYTZmM2FhYjcxYWI3NDg2NGZj
YTM0NzUyMDdjODk1NGU5YjYyNzI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCkBAIC01Myw0ICs1MywxMCBAQCBib29sIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6Om1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX21p
bWVTbmlmZmluZ0VuYWJsZWQ7CiB9CiAKK2Jvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24oY29uc3QgUVVybCAmKSBjb25zdAorewor
ICAgIC8vICMjIyBUT0RPLiBVc2VkIFFXZWJTZXR0aW5ncyBpbiBXSzEuCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgK
aW5kZXggZjJjZjI0OGZkY2MxOGMwMjM1YWZkNDVhYzExODExYTc0MzQ5NmNhMy4uMTBjMzQxYTE2
MmVkNjcxYmE5MTRmMDk2MGQ5OTE3MjExYjU1MWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTM0LDYgKzM0LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBR
TmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIG1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24oY29uc3QgUVVybCYpIGNvbnN0Owog
CiAgICAgUU9iamVjdCogbV9vcmlnaW5hdGluZ09iamVjdDsKICAgICBib29sIG1fbWltZVNuaWZm
aW5nRW5hYmxlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115751</attachid>
            <date>2011-11-18 00:07:02 -0800</date>
            <delta_ts>2011-11-18 00:16:49 -0800</delta_ts>
            <desc>Updated patch with no qwebsettings changes</desc>
            <filename>bug-72597-20111118090723.patch</filename>
            <type>text/plain</type>
            <size>28459</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI3N2Y4Mzg5ODQ0NTVl
OTk1ZmI0ZmViMGVhZjU4YzRjMjk1NzczYi4uMzhhNjllZjYzYTYxMDgwYjgxY2M2ZDdkYzQ0NGU4
MGJiYTNlYjBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTExLTE3ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIExh
eWVyIHZpb2xhdGlvbjogVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgdXNlcyBRV2ViU2V0dGluZ3Mg
aW4gdHdvIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb3ZlZCBjb2RlIHRoYXQgcXVlcmllcyB0aGUgdGhpcmQgcGFydHkgY29va2llIHBvbGlj
eSBmcm9tIFFXZWJTZXR0aW5ncworICAgICAgICBvdXQgb2YgV2ViQ29yZS4gSW5zdGVhZCBOZXR3
b3JraW5nQ29udGV4dCBoYXMgbm93IHRoZSBpbnRlcmZhY2UgdGhhdCBhbGxvd3MKKyAgICAgICAg
ZGVsZWdhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBpbnRvIFdlYktpdC9xdC4KKworICAgICAgICBJ
biBvcmRlciB0byBkbyB0aGF0IHdlIG5lZWQgdG8gcGFzcyB0aGUgTmV0d29ya2luZ0NvbnRleHQg
YXJvdW5kLCB3aGljaCBpcyB1c2VkIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgamFy
IGFuZCB0aGUgb3JpZ2luYXRpbmcgZnJhbWUgb2JqZWN0IHBvaW50ZXIuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZCBpbnRlcmZhY2UuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIp
OiBQYXNzIE5ldHdvcmtpbmdDb250ZXh0IHRvIFJlc291cmNlUmVxdWVzdDo6dG9OZXR3b3JrUmVx
dWVzdC4KKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdCk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0Lmg6
IFJlcGxhY2VkIG9yaWdpbmF0aW5nT2JqZWN0IHBhcmFtZXRlciB3aXRoIE5ldHdvcmtpbmdDb250
ZXh0LCB3aGljaCBjYW4KKyAgICAgICAgYWxzbyBwcm92aWRlIHRoZSBzYW1lIHBsdXMgbW9yZSAo
Y29va2llIGphciwgcG9saWN5IGNhbGxiYWNrKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdDo6dG9OZXR3b3JrUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0Nv
b2tpZUphclF0LmNwcDogU2ltcGxpZnkgdG8gdXNlIE5ldHdvcmtpbmdDb250ZXh0IHRvIGdldCBj
b29raWUgamFyIGFuZAorICAgICAgICBjYWxsIG5ldyB0aGlyZFBhcnR5Q29va2llUG9saWN5UGVy
bWl0cyBBUEkgdGhhdCB0YWtlcyB0aGUgY29udGV4dCBhcyBwYXJhbWV0ZXIuCisgICAgICAgIChX
ZWJDb3JlOjpuZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRDb29raWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0VuYWJs
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29raWVzUXQuY3BwOiBSZXBs
YWNlIHVwLWNhc3RpbmcgdG8gUVdlYkZyYW1lIGFuZCB1c2Ugb2YgUVdlYlNldHRpbmdzCisgICAg
ICAgIHdpdGggdXNlYWdlIG9mIE5ldHdvcmtpbmdDb250ZXh0LgorICAgICAgICAoV2ViQ29yZTo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Ro
aXJkUGFydHlDb29raWVzUXQuaDoKKwogMjAxMS0xMS0xNyAgS2VuaWNoaSBJc2hpYmFzaGkgIDxi
YXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgY3Jhc2g6IFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6OnJvdW5kc0dseXBoQWR2YW5jZXMgb24gTGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAxNWUx
MzUyYTliOWVmMGFiNWM5YWRmZjdiMzAyNmQ5NWFmMDg1YmY3Li42ZmU0YTY0OWI1ZDIxNWIyM2Jk
MGRhNGY5YmNkYjQyZWM1YzZhNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAy
MDExLTExLTE3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAor
ICAgICAgICBbUXRdIExheWVyIHZpb2xhdGlvbjogVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgdXNl
cyBRV2ViU2V0dGluZ3MgaW4gdHdvIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRlZCBOZXR3b3JraW5nQ29udGV4dDo6dGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24sIHdoaWNoIHF1ZXJpZXMKKyAgICAgICAgdGhlIGds
b2JhbCBRV2ViU2V0dGluZ3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhp
cmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyk6IEFkYXB0IHRvIHRoZQorICAgICAgICBjaGFuZ2Vk
IHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzIFdlYkNvcmUgQVBJIHRoYXQgb3BlcmF0ZXMg
b24gYSBuZXR3b3JraW5nIGNvbnRleHQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKTogUGFzcyBuZXR3b3JraW5nCisg
ICAgICAgIGNvbnRleHQgdG8gUmVzb3VyY2VSZXF1ZXN0Ojp0b05ldHdvcmtSZXF1ZXN0LgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudFF0OjpzdGFydERvd25sb2FkKTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24pOiBJ
bXBsZW1lbnQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0Lmg6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAg
ICAgKHRzdF9RV2ViUGFnZTo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeSk6IEFkYXB0IHRvIFF0RFJU
U3VwcG9ydCBBUEkgY2hhbmdlLgorCisyMDExLTExLTE3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9u
LmhhdXNtYW5uQG5va2lhLmNvbT4KKwogICAgICAgICBbUXRdIExheWVyIHZpb2xhdGlvbjogcXRf
cnVudGltZS5jcHAgYWNjZXNzZXMgUVdlYkVsZW1lbnQgYW5kIFFURFJUTm9kZQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGQxMmY0YmU2ZjQ1NDZiY2UzOGQxNzgyY2IxYjQwOTM2YjUxOWY4ZDMuLjUzZjMxMTIyZTdl
MjM3YjgyYTlhMTgyMTNkNzliMDNmNjMzNGEwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMS0xMS0xNyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+
CisKKyAgICAgICAgW1F0XSBMYXllciB2aW9sYXRpb246IFRoaXJkUGFydHlDb29raWVzUXQuY3Bw
IHVzZXMgUVdlYlNldHRpbmdzIGluIHR3byBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgTmV0d29y
a2luZ0NvbnRleHQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXNzaW9uCisgICAgICAgIEFQ
SS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5UGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisK
IDIwMTEtMTEtMTcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIFRoZSBwcm9jZXNzIGZyZWV6ZXMgd2hlbiB5b3UgcmlnaHQgY2xpY2sgb24g
d2luZG93bGVzcyBGbGFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDMxM2EwYTE3YmQyNzcyODZkMzQ1YTBiN2Y2YzE0
MThiNjZmZGY5MDYuLmFhMWViYjk3NTRkNWUwY2ZmNzA1MTM0ZDg0ZWY3ZDYxMWY1N2FlMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUU9iamVj
dDsKIGNsYXNzIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjsKK2NsYXNzIFFVcmw7CiBRVF9FTkRfTkFN
RVNQQUNFCiAjZW5kaWYKIApAQCAtNTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBR
T2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFFOZXR3
b3JrQWNjZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBib29sIG1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBib29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXNzaW9uKGNvbnN0IFFVcmwmKSBjb25z
dCA9IDA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAK
aW5kZXggN2EwMzI2ODg4Mjk1OTcxZDM4MjFiZjRiNTNiNWQyNjliNzhhMGY0YS4uOTk4ZjFmNTA0
NWI5NmRhNGZiODQ0ODA2OTJiOTk3NjllNzk1Yjc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAK
QEAgLTM5NSwxMSArMzk1LDcgQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRUeXBlIGxvYWQKICAgICBlbHNlCiAg
ICAgICAgIG1fbWV0aG9kID0gUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpDdXN0b21PcGVyYXRpb247
CiAKLSAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7Ci0gICAgaWYgKG1fcmVzb3Vy
Y2VIYW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKLSAgICAgICAgb3JpZ2luYXRpbmdP
YmplY3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQtPm9yaWdp
bmF0aW5nT2JqZWN0KCk7Ci0KLSAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3Qob3Jp
Z2luYXRpbmdPYmplY3QpOworICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChtX3Jl
c291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQuZ2V0KCkpOwogCiAgICAgbV9x
dWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogfQpAQCAtNTU1LDExICs1
NTEsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdChSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgUVVybCYgcmVkaQogICAgIGlmICh3YXNBYm9ydGVkKCkpIC8v
IE5ldHdvcmsgZXJyb3IgY2FuY2VsbGVkIHRoZSByZXF1ZXN0LgogICAgICAgICByZXR1cm47CiAK
LSAgICBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IDA7Ci0gICAgaWYgKG1fcmVzb3VyY2VI
YW5kbGUtPmdldEludGVybmFsKCktPm1fY29udGV4dCkKLSAgICAgICAgb3JpZ2luYXRpbmdPYmpl
Y3QgPSBtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQtPm9yaWdpbmF0
aW5nT2JqZWN0KCk7Ci0KLSAgICBtX3JlcXVlc3QgPSBuZXdSZXF1ZXN0LnRvTmV0d29ya1JlcXVl
c3Qob3JpZ2luYXRpbmdPYmplY3QpOworICAgIG1fcmVxdWVzdCA9IG5ld1JlcXVlc3QudG9OZXR3
b3JrUmVxdWVzdChtX3Jlc291cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQuZ2V0
KCkpOwogfQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3Qu
aAppbmRleCBjZDZmNzYwMjZkOTY3NmExYjFmNDE0ZWQ0YzM5NTBhZWNiYTQ1OGNjLi5hMTUwMTEx
MjQzOWM1OWViZGI1M2MzZjJhMDhiZWY0NjYwZmY5ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTMxLDEwICsz
MSwxMCBAQAogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFOZXR3b3JrUmVxdWVzdDsKLWNs
YXNzIFFPYmplY3Q7CiBRVF9FTkRfTkFNRVNQQUNFCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0IDogcHVi
bGljIFJlc291cmNlUmVxdWVzdEJhc2UgewogICAgIHB1YmxpYzoKQEAgLTU5LDcgKzU5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBRTmV0
d29ya1JlcXVlc3QgdG9OZXR3b3JrUmVxdWVzdChRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9
IDApIGNvbnN0OworICAgICAgICBRTmV0d29ya1JlcXVlc3QgdG9OZXR3b3JrUmVxdWVzdChOZXR3
b3JraW5nQ29udGV4dCogPSAwKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZVJlcXVlc3RRdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAppbmRleCA0MTVjYTg5
Y2U3MjFiNjI2YjJjYTBlYjkyZTcxOTE5NzE2YjRkOTgzLi5iZmIyNDE0MGJkZjRmNWVmMTliOWQ5
YWEyMTVmNWViODFkYjMwMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcApAQCAtMTgsNiArMTgsNyBAQAog
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVGhpcmRQYXJ0eUNvb2tp
ZXNRdC5oIgogCkBAIC0zOSwxMSArNDAsMTEgQEAgdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1I
VFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgcmV0dXJuIDYgKiAoMSArIDMgKyAyKTsK
IH0KIAotUU5ldHdvcmtSZXF1ZXN0IFJlc291cmNlUmVxdWVzdDo6dG9OZXR3b3JrUmVxdWVzdChR
T2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1lKSBjb25zdAorUU5ldHdvcmtSZXF1ZXN0IFJlc291cmNl
UmVxdWVzdDo6dG9OZXR3b3JrUmVxdWVzdChOZXR3b3JraW5nQ29udGV4dCAqY29udGV4dCkgY29u
c3QKIHsKICAgICBRTmV0d29ya1JlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LnNldFVybCh1
cmwoKSk7Ci0gICAgcmVxdWVzdC5zZXRPcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ0ZyYW1l
KTsKKyAgICByZXF1ZXN0LnNldE9yaWdpbmF0aW5nT2JqZWN0KGNvbnRleHQgPyBjb250ZXh0LT5v
cmlnaW5hdGluZ09iamVjdCgpIDogMCk7CiAKICAgICBjb25zdCBIVFRQSGVhZGVyTWFwICZoZWFk
ZXJzID0gaHR0cEhlYWRlckZpZWxkcygpOwogICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBoZWFkZXJzLmJlZ2luKCksIGVuZCA9IGhlYWRlcnMuZW5kKCk7CkBAIC03
OSw3ICs4MCw3IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJjZVJlcXVlc3Q6OnRvTmV0d29ya1Jl
cXVlc3QoUU9iamVjdCogb3JpZ2luYXRpbmdGcmFtZSkgY29uCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAotICAgIGlmICghYWxsb3dDb29raWVzKCkgfHwgIXRoaXJkUGFydHlDb29raWVQb2xpY3lQ
ZXJtaXRzRm9yRnJhbWUob3JpZ2luYXRpbmdGcmFtZSwgdXJsKCksIGZpcnN0UGFydHlGb3JDb29r
aWVzKCkpKSB7CisgICAgaWYgKCFhbGxvd0Nvb2tpZXMoKSB8fCAhdGhpcmRQYXJ0eUNvb2tpZVBv
bGljeVBlcm1pdHMoY29udGV4dCwgdXJsKCksIGZpcnN0UGFydHlGb3JDb29raWVzKCkpKSB7CiAg
ICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6Q29va2llU2F2ZUNv
bnRyb2xBdHRyaWJ1dGUsIFFOZXR3b3JrUmVxdWVzdDo6TWFudWFsKTsKICAgICAgICAgcmVxdWVz
dC5zZXRBdHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpDb29raWVMb2FkQ29udHJvbEF0dHJpYnV0
ZSwgUU5ldHdvcmtSZXF1ZXN0OjpNYW51YWwpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0Nvb2tpZUphclF0LmNwcAppbmRleCBmMjk1Y2YyMmNmMDIzMWUwYTM1Y2I0YWMwYTU3
ZWE0NmY5NjAwYTkyLi5jOTAxMDhiYzRjN2ExYjBhMjExYzRjZDZlY2Y5OGU3MGZkNmJiNTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJRdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCkBAIC0zOCw5ICsz
OCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgIlRoaXJkUGFydHlDb29raWVzUXQuaCIKLSNpbmNsdWRlICJx
d2ViZnJhbWUuaCIKLSNpbmNsdWRlICJxd2VicGFnZS5oIgotI2luY2x1ZGUgInF3ZWJzZXR0aW5n
cy5oIgogI2luY2x1ZGUgPFFEYXRlVGltZT4KICNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFn
ZXI+CiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWU+CkBAIC01MSw3ICs0OCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIFNoYXJlZENvb2tpZUphclF0KiBzX3NoYXJlZENvb2tpZUph
clF0ID0gMDsKIAotc3RhdGljIFFOZXR3b3JrQ29va2llSmFyICpjb29raWVKYXIoY29uc3QgRG9j
dW1lbnQgKmRvY3VtZW50KQorc3RhdGljIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29u
dGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC02MSwyMCArNTgsMjEgQEAgc3RhdGljIFFOZXR3b3JrQ29va2ll
SmFyICpjb29raWVKYXIoY29uc3QgRG9jdW1lbnQgKmRvY3VtZW50KQogICAgIEZyYW1lTG9hZGVy
KiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJl
dHVybiAwOwotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGxvYWRlci0+bmV0
d29ya2luZ0NvbnRleHQoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKLSAgICBRTmV0d29ya0Nv
b2tpZUphciogamFyID0gbWFuYWdlci0+Y29va2llSmFyKCk7Ci0gICAgcmV0dXJuIGphcjsKKyAg
ICByZXR1cm4gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpOwogfQogCiB2b2lkIHNldENvb2tp
ZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiB7Ci0gICAgUU5ldHdvcmtDb29raWVKYXIqIGphciA9IGNvb2tpZUphcihkb2N1bWVudCk7
CisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBuZXR3b3JraW5nQ29udGV4dChkb2N1
bWVudCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAgUU5ldHdvcmtD
b29raWVKYXIqIGphciA9IGNvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUph
cigpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKICAgICBRVXJsIHVybEZvckNv
b2tpZXModXJsKTsKICAgICBRVXJsIGZpcnN0UGFydHlVcmwoZG9jdW1lbnQtPmZpcnN0UGFydHlG
b3JDb29raWVzKCkpOwotICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMoamFy
LCB1cmxGb3JDb29raWVzLCBmaXJzdFBhcnR5VXJsKSkKKyAgICBpZiAoIXRoaXJkUGFydHlDb29r
aWVQb2xpY3lQZXJtaXRzKGNvbnRleHQsIHVybEZvckNvb2tpZXMsIGZpcnN0UGFydHlVcmwpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBRTGlzdDxRTmV0d29ya0Nvb2tpZT4gY29va2llcyA9IFFO
ZXR3b3JrQ29va2llOjpwYXJzZUNvb2tpZXMoUVN0cmluZyh2YWx1ZSkudG9MYXRpbjEoKSk7CkBA
IC05MSwxMyArODksMTQgQEAgdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiBkb2N1bWVudCwgY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBTdHJpbmcgY29va2llcyhjb25z
dCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBRTmV0d29ya0Nv
b2tpZUphciogamFyID0gY29va2llSmFyKGRvY3VtZW50KTsKLSAgICBpZiAoIWphcikKKyAgICBO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsK
KyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBRTmV0d29y
a0Nvb2tpZUphciogamFyID0gY29udGV4dC0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2ll
SmFyKCk7CiAKICAgICBRVXJsIHVybEZvckNvb2tpZXModXJsKTsKICAgICBRVXJsIGZpcnN0UGFy
dHlVcmwoZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwotICAgIGlmICghdGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMoamFyLCB1cmxGb3JDb29raWVzLCBmaXJzdFBhcnR5VXJs
KSkKKyAgICBpZiAoIXRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKGNvbnRleHQsIHVybEZv
ckNvb2tpZXMsIGZpcnN0UGFydHlVcmwpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAg
ICBRTGlzdDxRTmV0d29ya0Nvb2tpZT4gY29va2llcyA9IGphci0+Y29va2llc0ZvclVybCh1cmxG
b3JDb29raWVzKTsKQEAgLTExNiw5ICsxMTUsMTAgQEAgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwpCiAKIFN0cmluZyBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwgJnVy
bCkKIHsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gY29va2llSmFyKGRvY3VtZW50KTsK
LSAgICBpZiAoIWphcikKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5ldHdvcmtp
bmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gY29udGV4dC0+bmV0d29ya0Fj
Y2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCk7CiAKICAgICBRTGlzdDxRTmV0d29ya0Nvb2tpZT4g
Y29va2llcyA9IGphci0+Y29va2llc0ZvclVybChRVXJsKHVybCkpOwogICAgIGlmIChjb29raWVz
LmlzRW1wdHkoKSkKQEAgLTEzMyw4ICsxMzMsMTAgQEAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCAmdXJsKQog
CiBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBR
TmV0d29ya0Nvb2tpZUphciogamFyID0gY29va2llSmFyKGRvY3VtZW50KTsKLSAgICByZXR1cm4g
amFyOworICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29ya2luZ0NvbnRleHQo
ZG9jdW1lbnQpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBjb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpLT5jb29raWVKYXIoKTsKIH0K
IAogYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYsIFZlY3Rv
cjxDb29raWU+JiByYXdDb29raWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9UaGlyZFBhcnR5Q29va2llc1F0LmNwcAppbmRleCAwZjFkMTdjYmY0ZDFjMjc2ZTAzYWFlMGMy
NjBjNDZkOTMxODM0MmU3Li4yM2Q3MWU5ZmVkYWI5NzMxYjczN2RhZDZmYjA3MWNiYzViODRmNDcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2ll
c1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2ll
c1F0LmNwcApAQCAtMjMsOSArMjMsNyBAQAogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUg
IkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAicXdlYmZyYW1l
LmgiCi0jaW5jbHVkZSAicXdlYnBhZ2UuaCIKLSNpbmNsdWRlICJxd2Vic2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8UUxpc3Q+CiAjaW5jbHVk
ZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgpAQCAtMzQsMTggKzMyLDYgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA4LCAwKQot
c3RhdGljIFFOZXR3b3JrQ29va2llSmFyKiBjb29raWVKYXIoUU9iamVjdCogb3JpZ2luYXRpbmdG
cmFtZSkKLXsKLSAgICBpZiAoIW9yaWdpbmF0aW5nRnJhbWUpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIFFXZWJGcmFtZSogZnJhbWUgPSBxb2JqZWN0X2Nhc3Q8UVdlYkZyYW1lKj4ob3JpZ2luYXRp
bmdGcmFtZSk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgUU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01h
bmFnZXIoKTsKLSAgICBRTmV0d29ya0Nvb2tpZUphciogamFyID0gbWFuYWdlci0+Y29va2llSmFy
KCk7Ci0gICAgcmV0dXJuIGphcjsKLX0KLQogaW5saW5lIHZvaWQgcmVtb3ZlVG9wTGV2ZWxEb21h
aW4oUVN0cmluZyogZG9tYWluLCBjb25zdCBRU3RyaW5nJiB0b3BMZXZlbERvbWFpbikKIHsKICAg
ICBkb21haW4tPnJlbW92ZShkb21haW4tPmxlbmd0aCgpIC0gdG9wTGV2ZWxEb21haW4ubGVuZ3Ro
KCksIHRvcExldmVsRG9tYWluLmxlbmd0aCgpKTsKQEAgLTczLDM5ICs1OSwyMCBAQCBzdGF0aWMg
Ym9vbCB1cmxzU2hhcmVTYW1lRG9tYWluKGNvbnN0IFFVcmwmIHVybCwgY29uc3QgUVVybCYgZmly
c3RQYXJ0eVVybCkKIH0KICNlbmRpZgogCi1ib29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJt
aXRzKFFOZXR3b3JrQ29va2llSmFyKiBqYXIsIGNvbnN0IFFVcmwmIHVybCwgY29uc3QgUVVybCYg
Zmlyc3RQYXJ0eVVybCkKK2Jvb2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHMoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFFVcmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQ
YXJ0eVVybCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkK
LSAgICBpZiAoZmlyc3RQYXJ0eVVybC5pc0VtcHR5KCkpCisgICAgUU5ldHdvcmtDb29raWVKYXIq
IGphciA9IGNvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpOworICAg
IGlmICghamFyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICh1cmxzU2hhcmVTYW1l
RG9tYWluKHVybCwgZmlyc3RQYXJ0eVVybCkpCisgICAgaWYgKGZpcnN0UGFydHlVcmwuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHN3aXRjaCAoUVdlYlNldHRpbmdzOjpn
bG9iYWxTZXR0aW5ncygpLT50aGlyZFBhcnR5Q29va2llUG9saWN5KCkpIHsKLSAgICBjYXNlIFFX
ZWJTZXR0aW5nczo6QWx3YXlzQWxsb3dUaGlyZFBhcnR5Q29va2llczoKKyAgICBpZiAodXJsc1No
YXJlU2FtZURvbWFpbih1cmwsIGZpcnN0UGFydHlVcmwpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBjYXNlIFFXZWJTZXR0aW5nczo6QWx3YXlzQmxvY2tUaGlyZFBhcnR5Q29va2llczoKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgUVdlYlNldHRpbmdzOjpBbGxvd1RoaXJkUGFy
dHlXaXRoRXhpc3RpbmdDb29raWVzOiB7Ci0gICAgICAgIFFMaXN0PFFOZXR3b3JrQ29va2llPiBj
b29raWVzID0gamFyLT5jb29raWVzRm9yVXJsKHVybCk7Ci0gICAgICAgIHJldHVybiAhY29va2ll
cy5pc0VtcHR5KCk7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi19CiAKLWJvb2wgdGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeVBlcm1pdHNGb3JGcmFtZShRT2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1l
LCBjb25zdCBRVXJsJiB1cmwsIGNvbnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpCi17Ci0jaWYgUVRf
VkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDgsIDApCi0gICAgUU5ldHdvcmtDb29raWVK
YXIqIGphciA9IGNvb2tpZUphcihvcmlnaW5hdGluZ0ZyYW1lKTsKLSAgICBpZiAoIWphcikKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJt
aXRzKGphciwgdXJsLCBmaXJzdFBhcnR5VXJsKTsKKyAgICByZXR1cm4gY29udGV4dC0+dGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeVBlcm1pc3Npb24odXJsKTsKICNlbHNlCiAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1RoaXJkUGFy
dHlDb29raWVzUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29r
aWVzUXQuaAppbmRleCBjZmUwMmIzNTQ1ZTMxZDU0MjkwNWYyYWI1NDM4OTNlYzNlOWI2ZmU1Li5i
ZmU3ZTIyZTNlODA1N2RiMjQ4M2U4OTQxODU1NGQzMzQ3ZWUzMWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2llc1F0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tpZXNRdC5oCkBAIC0yMSwxMyArMjEs
MTIgQEAKICNkZWZpbmUgVGhpcmRQYXJ0eUNvb2tpZXNRdF9oCiAKIGNsYXNzIFFOZXR3b3JrQ29v
a2llSmFyOwotY2xhc3MgUU9iamVjdDsKIGNsYXNzIFFVcmw7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCi1ib29sIHRoaXJkUGFydHlDb29raWVQb2xp
Y3lQZXJtaXRzKFFOZXR3b3JrQ29va2llSmFyKiAsIGNvbnN0IFFVcmwmLCBjb25zdCBRVXJsJiBm
aXJzdFBhcnR5VXJsKTsKLWJvb2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGljeVBlcm1pdHNGb3JGcmFt
ZShRT2JqZWN0KiBvcmlnaW5hdGluZ0ZyYW1lLCBjb25zdCBRVXJsJiwgY29uc3QgUVVybCYgZmly
c3RQYXJ0eVVybCk7Citib29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXRzKE5ldHdvcmtp
bmdDb250ZXh0KiwgY29uc3QgUVVybCYsIGNvbnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpOwogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggZTE5ZGNiNmVkZWZhODlhNTU3NmNlYThjNmJh
MTIxZWViY2MyODk5ZC4uMDcwMGY2ZGQ3NzZhOWI4NzQzYjBkODk2NTAwMzY1MTRkZGYwM2JkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTExMTksOSArMTExOSwxMCBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChRV2ViUGFnZSogcGFn
ZSwgZG91YmxlIGludAogfQogCiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQs
IDgsIDApCi1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9s
aWN5QWxsb3dzKFFOZXR3b3JrQ29va2llSmFyKiBqYXIsIGNvbnN0IFFVcmwmIHVybCwgY29uc3Qg
UVVybCYgZmlyc3RQYXJ0eVVybCkKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJk
UGFydHlDb29raWVQb2xpY3lBbGxvd3MoUVdlYlBhZ2UgKnBhZ2UsIGNvbnN0IFFVcmwmIHVybCwg
Y29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKIHsKLSAgICByZXR1cm4gdGhpcmRQYXJ0eUNvb2tp
ZVBvbGljeVBlcm1pdHMoamFyLCB1cmwsIGZpcnN0UGFydHlVcmwpOworICAgIFBhZ2UqIGNvcmVQ
YWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOworICAgIHJldHVybiB0aGlyZFBhcnR5
Q29va2llUG9saWN5UGVybWl0cyhjb3JlUGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5uZXR3
b3JraW5nQ29udGV4dCgpLCB1cmwsIGZpcnN0UGFydHlVcmwpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaAppbmRleCA0NDNhNWYxMzI2NWNlODA4YWQ3ZTU0OGU1NWI3NzJmMjU4NTQ5NmVh
Li43ZTM2NTU2ZjFmN2EyMzA3YjNhYzIxMDg1MzI2NzE3MGM3ZGU4ZTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oCkBAIC0yMzMsNyArMjMzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdvQmFj
ayhRV2ViUGFnZSopOwogCiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDgs
IDApCi0gICAgc3RhdGljIGJvb2wgdGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhRTmV0d29y
a0Nvb2tpZUphciosIGNvbnN0IFFVcmwmLCBjb25zdCBRVXJsJiBmaXJzdFBhcnR5VXJsKTsKKyAg
ICBzdGF0aWMgYm9vbCB0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKFFXZWJQYWdlKiwgY29u
c3QgUVVybCYsIGNvbnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpOwogI2VuZGlmCiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcAppbmRleCAwNGIxZTNmODkwMjQwNDk5MWE4MTEwNmQwMjZmY2ZiYzAyNzFjZmZmLi41
YTgxY2YxMjczZTFjNzcyZWZkNjg1NDUwZjJmYjhhNDY5OTdkYWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAK
QEAgLTEyNDIsNyArMTI0Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1CiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZy
YW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mIGFjdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6U3RyaW5nJikKIHsKICAgICBR
X0FTU0VSVChtX3dlYkZyYW1lKTsKLSAgICBRTmV0d29ya1JlcXVlc3QgcihyZXF1ZXN0LnRvTmV0
d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIFFOZXR3b3JrUmVxdWVzdCByKHJlcXVlc3Qu
dG9OZXR3b3JrUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSkp
OwogICAgIFFXZWJQYWdlKiBwYWdlID0gbV93ZWJGcmFtZS0+cGFnZSgpOwogCiAgICAgaWYgKCFw
YWdlLT5kLT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgwLCByLCBRV2ViUGFnZTo6TmF2aWdhdGlv
blR5cGUoYWN0aW9uLnR5cGUoKSkpKSB7CkBAIC0xMjYzLDcgKzEyNjMsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZy
YW1lUG9saWN5RnVuYwogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikKIHsK
ICAgICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKLSAgICBRTmV0d29ya1JlcXVlc3QgcihyZXF1ZXN0
LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIFFOZXR3b3JrUmVxdWVzdCByKHJl
cXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRl
eHQoKSkpOwogICAgIFFXZWJQYWdlKnBhZ2UgPSBtX3dlYkZyYW1lLT5wYWdlKCk7CiAgICAgUG9s
aWN5QWN0aW9uIHJlc3VsdDsKIApAQCAtMTMxOCw3ICsxMzE4LDcgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFF0OjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVt
aXQgbV93ZWJGcmFtZS0+cGFnZSgpLT5kb3dubG9hZFJlcXVlc3RlZChyZXF1ZXN0LnRvTmV0d29y
a1JlcXVlc3QobV93ZWJGcmFtZSkpOworICAgIGVtaXQgbV93ZWJGcmFtZS0+cGFnZSgpLT5kb3du
bG9hZFJlcXVlc3RlZChyZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCkt
Pm5ldHdvcmtpbmdDb250ZXh0KCkpKTsKIH0KIAogUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2Fk
ZXJDbGllbnRRdDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQuY3BwCmluZGV4IGZmY2JmOTcxODNiMThlOGEwZGFiY2IwNjI0MTIxYTk0OGIyMDA2MTEuLjAy
YjY0YTQ0MzQxOGY5OGVlNWY2M2E2NGIwMWFkMTkxNjlkMjE3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRRdC5jcHAKQEAgLTIyLDkgKzIyLDEwIEBACiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dFF0LmgiCiAKICNpbmNsdWRlICJxd2ViZnJhbWUuaCIKKyNpbmNsdWRlICJxd2ViZnJhbWVf
cC5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyPgotI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UU5ldHdvcmtDb29raWVKYXI+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTYsNCArNTcsMjIgQEAgYm9vbCBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0UXQ6Om1pbWVTbmlmZmluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBt
X21pbWVTbmlmZmluZ0VuYWJsZWQ7CiB9CiAKK2Jvb2wgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5UGVybWlzc2lvbihjb25zdCBRVXJsJiB1cmwpIGNvbnN0
Cit7CisgICAgc3dpdGNoIChRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnRoaXJkUGFy
dHlDb29raWVQb2xpY3koKSkgeworICAgIGNhc2UgUVdlYlNldHRpbmdzOjpBbHdheXNBbGxvd1Ro
aXJkUGFydHlDb29raWVzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFFXZWJTZXR0
aW5nczo6QWx3YXlzQmxvY2tUaGlyZFBhcnR5Q29va2llczoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGNhc2UgUVdlYlNldHRpbmdzOjpBbGxvd1RoaXJkUGFydHlXaXRoRXhpc3RpbmdDb29r
aWVzOiB7CisgICAgICAgIFFMaXN0PFFOZXR3b3JrQ29va2llPiBjb29raWVzID0gbmV0d29ya0Fj
Y2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCktPmNvb2tpZXNGb3JVcmwodXJsKTsKKyAgICAgICAg
cmV0dXJuICFjb29raWVzLmlzRW1wdHkoKTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQuaAppbmRleCBmMjNiYTk1ODIyZjZlZDVhY2IxMjI5ZWVlMTkyMzhlZDJhN2NmMDMxLi5jOTVl
NjMwYWMyMTRkZGRjOWQ2ODhhOTMzYzBjNzllZjY5ODg0ZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0
LmgKQEAgLTM0LDYgKzM0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFFPYmplY3QqIG9yaWdp
bmF0aW5nT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBRTmV0d29ya0FjY2Vzc01hbmFnZXIq
IG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG1pbWVTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgdGhpcmRQYXJ0eUNvb2tpZVBv
bGljeVBlcm1pc3Npb24oY29uc3QgUVVybCYpIGNvbnN0OwogCiAgICAgUU9iamVjdCogbV9vcmln
aW5hdGluZ09iamVjdDsKICAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1fbmV0d29ya0FjY2Vz
c01hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3Rz
dF9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2Vi
cGFnZS5jcHAKaW5kZXggNTU1OGMzMGU0YjIxYmYxOWJhMjQ1MzIyNDFmODAwOTVkZGY0YjRkNi4u
MmI5Y2M5ZjI5YTBkNmUwMDU4N2VkOWM4NjdmZmZiNzA1MWZmZDAzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApAQCAtMzAyMywzNSAr
MzAyMywzNSBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeSgpCiAg
ICAgUVZFUklGWShtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpKTsK
IAogICAgIC8vIFRoZXNlIGFyZSBhbGwgZmlyc3QtcGFydHkgY29va2llcywgc28gc2hvdWxkIHBh
c3MuCi0gICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tp
ZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigp
LAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCBRVXJsKCJodHRwOi8vZXhhbXBsZS5jb20iKSkpOwotICAgIFFWRVJJRlkoRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLT5u
ZXR3b3JrQWNjZXNzTWFuYWdlcigpLT5jb29raWVKYXIoKSwKKyAgICBRVkVSSUZZKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZSwKICAg
ICAgICAgICAgIFFVcmwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgUVVybCgiaHR0cDovL2Rv
Yy5leGFtcGxlLmNvbSIpKSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRo
aXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0
cDovL2FhYS53d3cuZXhhbXBsZS5jb20iKSwgUVVybCgiaHR0cDovL2RvYy5leGFtcGxlLmNvbSIp
KSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tp
ZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigp
LAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2V4YW1wbGUuY29t
IiksIFFVcmwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSkpOwotICAgIFFWRVJJRlkoRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLT5u
ZXR3b3JrQWNjZXNzTWFuYWdlcigpLT5jb29raWVKYXIoKSwKKyAgICBRVkVSSUZZKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZSwKICAg
ICAgICAgICAgIFFVcmwoImh0dHA6Ly93d3cuZXhhbXBsZS5jby51ayIpLCBRVXJsKCJodHRwOi8v
ZXhhbXBsZS5jby51ayIpKSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRo
aXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0
cDovL3d3dy5leGFtcGxlLmNvLnVrIiksIFFVcmwoImh0dHA6Ly9kb2MuZXhhbXBsZS5jby51ayIp
KSk7Ci0gICAgUVZFUklGWShEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tp
ZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigp
LAorICAgIFFWRVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgiaHR0cDovL2FhYS53d3cuZXhh
bXBsZS5jby51ayIpLCBRVXJsKCJodHRwOi8vZG9jLmV4YW1wbGUuY28udWsiKSkpOwotICAgIFFW
RVJJRlkoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxv
d3MobV9wYWdlLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpLT5jb29raWVKYXIoKSwKKyAgICBRVkVS
SUZZKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dz
KG1fcGFnZSwKICAgICAgICAgICAgIFFVcmwoImh0dHA6Ly9leGFtcGxlLmNvLnVrIiksIFFVcmwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jby51ayIpKSk7CiAKICAgICAvLyBUaGVzZSBhcmUgYWxsIHRo
aXJkLXBhcnR5IGNvb2tpZXMsIHNvIHNob3VsZCBmYWlsLgotICAgIFFWRVJJRlkoIUR1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0
d29ya0FjY2Vzc01hbmFnZXIoKS0+Y29va2llSmFyKCksCisgICAgUVZFUklGWSghRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAg
ICAgICAgICAgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCBRVXJsKCJodHRwOi8vc2xh
c2hkb3Qub3JnIikpKTsKLSAgICBRVkVSSUZZKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhp
cmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkt
PmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGly
ZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZSwKICAgICAgICAgICAgIFFVcmwoImh0dHA6
Ly9leGFtcGxlLmNvbSIpLCBRVXJsKCJodHRwOi8vYW5vdGhlcmV4YW1wbGUuY29tIikpKTsKLSAg
ICBRVkVSSUZZKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpLAorICAg
IFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5
QWxsb3dzKG1fcGFnZSwKICAgICAgICAgICAgIFFVcmwoImh0dHA6Ly9hbm90aGVyZXhhbXBsZS5j
b20iKSwgUVVybCgiaHR0cDovL2V4YW1wbGUuY29tIikpKTsKLSAgICBRVkVSSUZZKCFEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNvb2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUphcigpLAorICAgIFFWRVJJRlkoIUR1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZSwKICAg
ICAgICAgICAgIFFVcmwoImh0dHA6Ly93d3cuZXhhbXBsZS5jby51ayIpLCBRVXJsKCJodHRwOi8v
c2xhc2hkb3QuY28udWsiKSkpOwotICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Ojp0aGlyZFBhcnR5Q29va2llUG9saWN5QWxsb3dzKG1fcGFnZS0+bmV0d29ya0FjY2Vzc01hbmFn
ZXIoKS0+Y29va2llSmFyKCksCisgICAgUVZFUklGWSghRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnRoaXJkUGFydHlDb29raWVQb2xpY3lBbGxvd3MobV9wYWdlLAogICAgICAgICAgICAgUVVybCgi
aHR0cDovL2V4YW1wbGUuY28udWsiKSwgUVVybCgiaHR0cDovL2Fub3RoZXJleGFtcGxlLmNvLnVr
IikpKTsKLSAgICBRVkVSSUZZKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQYXJ0eUNv
b2tpZVBvbGljeUFsbG93cyhtX3BhZ2UtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCktPmNvb2tpZUph
cigpLAorICAgIFFWRVJJRlkoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp0aGlyZFBhcnR5Q29v
a2llUG9saWN5QWxsb3dzKG1fcGFnZSwKICAgICAgICAgICAgIFFVcmwoImh0dHA6Ly9hbm90aGVy
ZXhhbXBsZS5jby51ayIpLCBRVXJsKCJodHRwOi8vZXhhbXBsZS5jby51ayIpKSk7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmluZGV4
IDAyNDhmNzA5YTI1OGE4OWU3YjRhNWMyZTA0NjRmNTFiYmQxM2JlNWEuLmE2ZjNhYWI3MWFiNzQ4
NjRmY2EzNDc1MjA3Yzg5NTRlOWI2MjcyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcApAQCAtNTMsNCArNTMsMTAgQEAgYm9vbCBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjptaW1lU25pZmZpbmdFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
bV9taW1lU25pZmZpbmdFbmFibGVkOwogfQogCitib29sIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OnRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXNzaW9uKGNvbnN0IFFVcmwgJikgY29uc3QK
K3sKKyAgICAvLyAjIyMgVE9ETy4gVXNlZCBRV2ViU2V0dGluZ3MgaW4gV0sxLgorICAgIHJldHVy
biB0cnVlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCmluZGV4IGYyY2YyNDhmZGNjMThjMDIzNWFmZDQ1YWMxMTgxMWE3NDM0OTZjYTMuLjEwYzM0
MWExNjJlZDY3MWJhOTE0ZjA5NjBkOTkxNzIxMWI1NTFhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0zNCw2ICszNCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBtaW1lU25pZmZpbmdFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIHRoaXJkUGFydHlDb29raWVQb2xpY3lQZXJtaXNzaW9uKGNvbnN0IFFVcmwmKSBjb25z
dDsKIAogICAgIFFPYmplY3QqIG1fb3JpZ2luYXRpbmdPYmplY3Q7CiAgICAgYm9vbCBtX21pbWVT
bmlmZmluZ0VuYWJsZWQ7Cg==
</data>
<flag name="review"
          id="114744"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>