<?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>81268</bug_id>
          
          <creation_ts>2012-03-15 14:42:24 -0700</creation_ts>
          <short_desc>Out-of-document radio buttons should be grouped when associated with a form</short_desc>
          <delta_ts>2012-03-16 13:17:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>darin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>579757</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-15 14:42:24 -0700</bug_when>
    <thetext>Out-of-document radio buttons should be grouped when associated with a form</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579766</commentid>
    <comment_count>1</comment_count>
      <attachid>132125</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-15 14:54:55 -0700</bug_when>
    <thetext>Created attachment 132125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580207</commentid>
    <comment_count>2</comment_count>
      <attachid>132125</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-16 00:01:50 -0700</bug_when>
    <thetext>Comment on attachment 132125
Patch

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

&gt; Source/WebCore/ChangeLog:65
&gt; +        * dom/CheckedRadioButtons.cpp:
&gt; +        (WebCore):
&gt; +        (WebCore::CheckedRadioButtons::addButton):
&gt; +        (WebCore::CheckedRadioButtons::updateCheckedState):
&gt; +        (WebCore::CheckedRadioButtons::requiredAttributeChanged):
&gt; +        (WebCore::CheckedRadioButtons::isRequiredGroup):
&gt; +        (WebCore::CheckedRadioButtons::removeButton):
&gt; +        * dom/CheckedRadioButtons.h:
&gt; +        (CheckedRadioButtons):
&gt; +        * html/HTMLInputElement.cpp:
&gt; +        (WebCore::HTMLInputElement::~HTMLInputElement):
&gt; +        (WebCore::HTMLInputElement::updateType):
&gt; +        (WebCore::HTMLInputElement::parseAttribute):
&gt; +        (WebCore::HTMLInputElement::setChecked):
&gt; +        (WebCore::HTMLInputElement::willChangeForm):
&gt; +        (WebCore::HTMLInputElement::didChangeForm):
&gt; +        (WebCore::HTMLInputElement::insertedIntoDocument):
&gt; +        (WebCore::HTMLInputElement::removedFromDocument):
&gt; +        (WebCore::HTMLInputElement::didMoveToNewDocument):
&gt; +        (WebCore::HTMLInputElement::requiredAttributeChanged):
&gt; +        (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
&gt; +        (WebCore):
&gt; +        (WebCore::HTMLInputElement::checkedRadioButtonForGroup):
&gt; +        (WebCore::HTMLInputElement::checkedRadioButtons):
&gt; +        (WebCore::HTMLInputElement::addRadioButton):
&gt; +        (WebCore::HTMLInputElement::removeRadioButton):
&gt; +        * html/HTMLInputElement.h:
&gt; +        (HTMLInputElement):
&gt; +        * html/RadioInputType.cpp:
&gt; +        (WebCore::RadioInputType::valueMissing):
&gt; +        (WebCore::RadioInputType::isKeyboardFocusable):
&gt; +        (WebCore::RadioInputType::willDispatchClick):

You had better add what is changed for each files/functions.

&gt; Source/WebCore/html/HTMLInputElement.h:345
&gt; +    void addRadioButton();
&gt; +    void removeRadioButton();

I&apos;d like to name them:
  addToRadioButtonGroup()
  removeFromRadioButtonGroup()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580692</commentid>
    <comment_count>3</comment_count>
      <attachid>132321</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-16 11:06:08 -0700</bug_when>
    <thetext>Created attachment 132321
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580866</commentid>
    <comment_count>4</comment_count>
      <attachid>132321</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 13:17:04 -0700</bug_when>
    <thetext>Comment on attachment 132321
Patch for landing

Clearing flags on attachment: 132321

Committed r111051: &lt;http://trac.webkit.org/changeset/111051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580868</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 13:17:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132125</attachid>
            <date>2012-03-15 14:54:55 -0700</date>
            <delta_ts>2012-03-16 11:06:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81268-20120315145453.patch</filename>
            <type>text/plain</type>
            <size>19807</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JjMDNiNDRlYzdiYTY5
NmMyM2ExZTZmNGY0ODA3ZWM5ZDM4MjgzYi4uNzZmOGEyYmI5NjYxZTUyYTQ3MjRmN2EwNzY4YmVj
NGY0MjhlMGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTAzLTE1ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE91dC1vZi1kb2N1bWVudCBy
YWRpbyBidXR0b25zIHNob3VsZCBiZSBncm91cGVkIHdoZW4gYXNzb2NpYXRlZCB3aXRoIGEgZm9y
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyNjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgdGhl
IEhUTUwgc3BlYywgYW5kIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94IGFuZCBJRSA4LzksIHJhZGlv
IGJ1dHRvbnMKKyAgICAgICAgd2l0aCBhIGZvcm0gb3duZXIgc2hvdWxkIGJlIGdyb3VwZWQsIGV2
ZW4gaWYgdGhhdCBmb3JtIGlzIG5vdCBpbiB0aGUgZG9jdW1lbnQuCisKKyAgICAgICAgcjEwNDY2
OCBhZGRlZCBtYW55IGluRG9jdW1lbnQoKSB0ZXN0cyB0byByYWRpbyBidXR0b24gZ3JvdXBpbmcg
Y29kZS4KKyAgICAgICAgV2hpbGUgdGhvc2UgYXJlIG5lY2Vzc2FyeSB0byBhdm9pZCB1bmF0dGFj
aGVkIDxpbnB1dCB0eXBlPXJhZGlvPgorICAgICAgICBlbGVtZW50cyBiZWluZyBncm91cGVkIHRv
Z2V0aGVyLCBpdCBhbHNvIGtlcHQgdGhlbSBmcm9tIGJlaW5nIGdyb3VwZWQKKyAgICAgICAgd2hl
biBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIG91dHNpZGUgdGhlIGRvY3VtZW50LgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgSFRNTElucHV0RWxlbWVudDo6Y2hlY2tlZFJhZGlvQnV0
dG9ucygpIG1ldGhvZAorICAgICAgICB0byByZXR1cm4gZWl0aGVyIGEgcG9pbnRlciB0byB0aGUg
cHJvcGVyIENoZWNrZWRSYWRpb0J1dHRvbnMgaW5zdGFuY2UKKyAgICAgICAgKGVpdGhlciB0aGUg
ZG9jdW1lbnQncyBvciBhIGZvcm0ncyksIGJ1dCB3aWxsIHJldHVybiBudWxsIGlmIHRoZQorICAg
ICAgICBlbGVtZW50IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFueSByYWRpbyBidXR0
b24gZ3JvdXAuCisKKyAgICAgICAgVGhlIG1haW4gZmFsbG91dCBvZiB0aGlzIHdhcyB0aGF0IHRo
ZSBjYWxsZXJzIG9mIGNoZWNrZWRSYWRpb0J1dHRvbnMoKQorICAgICAgICBub3cgaGF2ZSB0byBj
aGVjayBmb3IgbnVsbCwgcmVzdWx0aW5nIGluIHRoZSBjcmVhdGlvbiBvZiBhIGZldyBoZWxwZXIK
KyAgICAgICAgbWV0aG9kcyBpbiBIVE1MSW5wdXRFbGVtZW50IHRvIHdyYXAgdGhlIG51bGwgY2hl
Y2tzLgorCisgICAgICAgIFRoaXMgcmVmYWN0b3JpbmcgaGFzIHRoZSBwbGVhc2FudCBzaWRlLWVm
ZmVjdCBvZiBleHBvc2luZyBhIGNsZWFuZXIgQVBJIGJldHdlZW4KKyAgICAgICAgSFRNTElucHV0
RWxlbWVudCBhbmQgUmFkaW9JbnB1dFR5cGUsIGFuZCBtYWtpbmcgYSBjbGVhcmVyIGNvbnRyYWN0
CisgICAgICAgIGJldHdlZW4gSFRNTElucHV0RWxlbWVudCBhbmQgQ2hlY2tlZFJhZGlvQnV0dG9u
cyAoZS5nLiwgYWxsCisgICAgICAgIENoZWNrZWRSYWRpb0J1dHRvbnMgbWV0aG9kcyB0aGF0IHRh
a2UgYW4gZWxlbWVudCBjYW4gbm93IGFzc3VtZSB0aGF0CisgICAgICAgIGl0IGlzIGEgcmFkaW8g
YnV0dG9uLCB3aGVyZSBwcmV2aW91c2x5IHNvbWUgY2hlY2tlZCBmb3IgdGhhdCBhbmQKKyAgICAg
ICAgb3RoZXJzIGFzc2VydGVkIGl0KS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3JhZGlv
L3JhZGlvLWdyb3VwLWluLWRldGFjaGVkLWZvcm0uaHRtbAorCisgICAgICAgICogZG9tL0NoZWNr
ZWRSYWRpb0J1dHRvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDaGVja2VkUmFkaW9CdXR0b25zOjphZGRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q2hl
Y2tlZFJhZGlvQnV0dG9uczo6dXBkYXRlQ2hlY2tlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNoZWNrZWRSYWRpb0J1dHRvbnM6OnJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDaGVja2VkUmFkaW9CdXR0b25zOjppc1JlcXVpcmVkR3JvdXApOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hlY2tlZFJhZGlvQnV0dG9uczo6cmVtb3ZlQnV0dG9uKToKKyAgICAgICAg
KiBkb20vQ2hlY2tlZFJhZGlvQnV0dG9ucy5oOgorICAgICAgICAoQ2hlY2tlZFJhZGlvQnV0dG9u
cyk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6On5IVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudDo6c2V0Q2hlY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Ojp3aWxsQ2hhbmdlRm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjpkaWRDaGFuZ2VGb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omlu
c2VydGVkSW50b0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnJlbW92ZWRGcm9tRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6cmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6OmlzSW5SZXF1aXJlZFJhZGlvQnV0dG9uR3JvdXApOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjaGVja2VkUmFkaW9C
dXR0b25Gb3JHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjaGVj
a2VkUmFkaW9CdXR0b25zKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmFk
ZFJhZGlvQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92
ZVJhZGlvQnV0dG9uKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxJbnB1dEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9JbnB1dFR5cGU6OnZhbHVlTWlzc2luZyk6CisgICAg
ICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xpY2spOgorCiAyMDEy
LTAzLTE1ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgRml4IGNhc3QtYWxp
Z24gR0NDIHdhcm5pbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hlY2tlZFJh
ZGlvQnV0dG9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hlY2tlZFJhZGlvQnV0dG9ucy5j
cHAKaW5kZXggOWI1YzUwMzM0ZTc0ZjU5MWNkMGNiZWY2NTQyMDBmNmE0NDVhMDBhOS4uNDcwZGEy
YWQ1YzczYjE3OTJhZTYyM2Q5NDgyNjhiOGQ2NTVlNmM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DaGVja2VkUmFkaW9CdXR0b25zLmNwcApAQCAtMTY1LDExICsxNjUsNiBAQCB2b2lkIFJhZGlv
QnV0dG9uR3JvdXA6OnNldE5lZWRzVmFsaWRpdHlDaGVja0ZvckFsbEJ1dHRvbnMoKQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRNYWtlUmFkaW9Hcm91cChIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KQotewotICAgIHJldHVybiBlbGVtZW50LT5pc1JhZGlvQnV0dG9u
KCkgJiYgIWVsZW1lbnQtPm5hbWUoKS5pc0VtcHR5KCkgJiYgZWxlbWVudC0+aW5Eb2N1bWVudCgp
OwotfQotCiAvLyBFeHBsaWNpdHkgZGVmaW5lIGVtcHR5IGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVj
dG9yIGluIG9yZGVyIHRvIHByZXZlbnQgdGhlCiAvLyBjb21waWxlciBmcm9tIGdlbmVyYXRpbmcg
dGhlbSBhcyBpbmxpbmVzLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHRvIGRlZmluZQogLy8gUmFkaW9C
dXR0b25Hcm91cCBpbiB0aGUgaGVhZGVyLgpAQCAtMTgzLDcgKzE3OCw4IEBAIENoZWNrZWRSYWRp
b0J1dHRvbnM6On5DaGVja2VkUmFkaW9CdXR0b25zKCkKIAogdm9pZCBDaGVja2VkUmFkaW9CdXR0
b25zOjphZGRCdXR0b24oSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIXNo
b3VsZE1ha2VSYWRpb0dyb3VwKGVsZW1lbnQpKQorICAgIEFTU0VSVChlbGVtZW50LT5pc1JhZGlv
QnV0dG9uKCkpOworICAgIGlmIChlbGVtZW50LT5uYW1lKCkuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoIW1fbmFtZVRvR3JvdXBNYXApCkBAIC0xOTcsNyArMTkzLDggQEAg
dm9pZCBDaGVja2VkUmFkaW9CdXR0b25zOjphZGRCdXR0b24oSFRNTElucHV0RWxlbWVudCogZWxl
bWVudCkKIAogdm9pZCBDaGVja2VkUmFkaW9CdXR0b25zOjp1cGRhdGVDaGVja2VkU3RhdGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIXNob3VsZE1ha2VSYWRpb0dyb3Vw
KGVsZW1lbnQpKQorICAgIEFTU0VSVChlbGVtZW50LT5pc1JhZGlvQnV0dG9uKCkpOworICAgIGlm
IChlbGVtZW50LT5uYW1lKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJU
KG1fbmFtZVRvR3JvdXBNYXApOwogICAgIGlmICghbV9uYW1lVG9Hcm91cE1hcCkKQEAgLTIwOSw3
ICsyMDYsOCBAQCB2b2lkIENoZWNrZWRSYWRpb0J1dHRvbnM6OnVwZGF0ZUNoZWNrZWRTdGF0ZShI
VE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogCiB2b2lkIENoZWNrZWRSYWRpb0J1dHRvbnM6OnJl
cXVpcmVkQXR0cmlidXRlQ2hhbmdlZChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAg
IGlmICghc2hvdWxkTWFrZVJhZGlvR3JvdXAoZWxlbWVudCkpCisgICAgQVNTRVJUKGVsZW1lbnQt
PmlzUmFkaW9CdXR0b24oKSk7CisgICAgaWYgKGVsZW1lbnQtPm5hbWUoKS5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9uYW1lVG9Hcm91cE1hcCk7CiAgICAgaWYgKCFt
X25hbWVUb0dyb3VwTWFwKQpAQCAtMjI4LDIxICsyMjYsMTggQEAgSFRNTElucHV0RWxlbWVudCog
Q2hlY2tlZFJhZGlvQnV0dG9uczo6Y2hlY2tlZEJ1dHRvbkZvckdyb3VwKGNvbnN0IEF0b21pY1N0
cmluZyYKICAgICByZXR1cm4gZ3JvdXAgPyBncm91cC0+Y2hlY2tlZEJ1dHRvbigpIDogMDsKIH0K
IAotYm9vbCBDaGVja2VkUmFkaW9CdXR0b25zOjppc0luUmVxdWlyZWRHcm91cChIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KSBjb25zdAorYm9vbCBDaGVja2VkUmFkaW9CdXR0b25zOjppc1JlcXVp
cmVkR3JvdXAoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIEFTU0VSVChl
bGVtZW50LT5pc1JhZGlvQnV0dG9uKCkpOwotICAgIGlmICghZWxlbWVudC0+aW5Eb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFtX25hbWVUb0dyb3VwTWFwKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSYWRpb0J1dHRvbkdyb3VwKiBncm91cCA9IG1fbmFt
ZVRvR3JvdXBNYXAtPmdldChlbGVtZW50LT5uYW1lKCkuaW1wbCgpKTsKKyAgICBSYWRpb0J1dHRv
bkdyb3VwKiBncm91cCA9IG1fbmFtZVRvR3JvdXBNYXAtPmdldChuYW1lLmltcGwoKSk7CiAgICAg
cmV0dXJuIGdyb3VwICYmIGdyb3VwLT5pc1JlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ2hlY2tlZFJh
ZGlvQnV0dG9uczo6cmVtb3ZlQnV0dG9uKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0g
ICAgaWYgKCFzaG91bGRNYWtlUmFkaW9Hcm91cChlbGVtZW50KSkKKyAgICBBU1NFUlQoZWxlbWVu
dC0+aXNSYWRpb0J1dHRvbigpKTsKKyAgICBpZiAoZWxlbWVudC0+bmFtZSgpLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9uYW1lVG9Hcm91cE1hcCkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGVja2VkUmFkaW9CdXR0b25zLmgKaW5kZXggZjA1MGZh
YTQ4YzE2MjQ0Yzk3NDVlMzAxOTA3MmFmNjE3MWY0OTQ3Mi4uMmFmOWU4ZWRkMzM4ZDMzZmFlMjAy
MmYwZjQ3Y2I0NzkzMDk2YTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoZWNr
ZWRSYWRpb0J1dHRvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hlY2tlZFJhZGlvQnV0
dG9ucy5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVpcmVkQXR0cmli
dXRlQ2hhbmdlZChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVCdXR0b24oSFRN
TElucHV0RWxlbWVudCopOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGNoZWNrZWRCdXR0b25Gb3JH
cm91cChjb25zdCBBdG9taWNTdHJpbmcmIGdyb3VwTmFtZSkgY29uc3Q7Ci0gICAgYm9vbCBpc0lu
UmVxdWlyZWRHcm91cChIVE1MSW5wdXRFbGVtZW50KikgY29uc3Q7CisgICAgYm9vbCBpc1JlcXVp
cmVkR3JvdXAoY29uc3QgQXRvbWljU3RyaW5nJiBncm91cE5hbWUpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPFJhZGlvQnV0
dG9uR3JvdXA+ID4gTmFtZVRvR3JvdXBNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCBlY2ExNDRhMjIzZDliMjc1NTI2ODY5MzdjZjM2OGE5NDc4N2ZjZWY3
Li5iOWY2NTdkZjExOGNhZWQ0Mjg1NzVhNDFiZTI1YzNlMDBmNTM0YTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEyNSw3ICsxMjUsOCBAQCBIVE1MSW5w
dXRFbGVtZW50Ojp+SFRNTElucHV0RWxlbWVudCgpCiAgICAgc2V0Rm9ybSgwKTsKICAgICAvLyBz
ZXRGb3JtKDApIG1heSByZWdpc3RlciB0aGlzIHRvIGEgZG9jdW1lbnQtbGV2ZWwgcmFkaW8gYnV0
dG9uIGdyb3VwLgogICAgIC8vIFdlIHNob3VsZCB1bnJlZ2lzdGVyIGl0IHRvIGF2b2lkIGFjY2Vz
c2luZyBhIGRlbGV0ZWQgb2JqZWN0LgotICAgIGRvY3VtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRv
bnMoKS5yZW1vdmVCdXR0b24odGhpcyk7CisgICAgaWYgKGlzUmFkaW9CdXR0b24oKSkKKyAgICAg
ICAgZG9jdW1lbnQoKS0+Y2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRvbih0aGlzKTsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MSW5wdXRFbGVtZW50Ojpmb3JtQ29udHJvbE5h
bWUoKSBjb25zdApAQCAtNTA5LDcgKzUxMCw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBk
YXRlVHlwZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjaGVja2VkUmFkaW9CdXR0
b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOworICAgIHJlbW92ZVJhZGlvQnV0dG9uKCk7CiAKICAg
ICBib29sIHdhc0F0dGFjaGVkID0gYXR0YWNoZWQoKTsKICAgICBpZiAod2FzQXR0YWNoZWQpCkBA
IC01NjQsNyArNTY1LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKIAog
ICAgIHNldENoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KGZhbHNlKTsKIAot
ICAgIGNoZWNrZWRSYWRpb0J1dHRvbnMoKS5hZGRCdXR0b24odGhpcyk7CisgICAgYWRkUmFkaW9C
dXR0b24oKTsKIAogICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgIG5vdGlmeUZvcm1T
dGF0ZUNoYW5nZWQoKTsKQEAgLTY5Myw5ICs2OTQsOSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIsIFN0eWxlUHJvcGVydHlT
ZQogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBuYW1lQXR0cikgewotICAgICAgICBjaGVja2Vk
UmFkaW9CdXR0b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOworICAgICAgICByZW1vdmVSYWRpb0J1
dHRvbigpOwogICAgICAgICBtX25hbWUgPSBhdHRyLT52YWx1ZSgpOwotICAgICAgICBjaGVja2Vk
UmFkaW9CdXR0b25zKCkuYWRkQnV0dG9uKHRoaXMpOworICAgICAgICBhZGRSYWRpb0J1dHRvbigp
OwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cik7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYXV0b2NvbXBsZXRlQXR0cikgewog
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+dmFsdWUoKSwgIm9mZiIpKSB7CkBA
IC05MTcsOCArOTE4LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRDaGVja2VkKGJvb2wg
bm93Q2hlY2tlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEIKICAgICBtX3JlZmxlY3Rz
Q2hlY2tlZEF0dHJpYnV0ZSA9IGZhbHNlOwogICAgIG1faXNDaGVja2VkID0gbm93Q2hlY2tlZDsK
ICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgaWYgKGlzUmFkaW9CdXR0b24oKSkKLSAg
ICAgICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLnVwZGF0ZUNoZWNrZWRTdGF0ZSh0aGlzKTsKKwor
ICAgIGlmIChDaGVja2VkUmFkaW9CdXR0b25zKiBidXR0b25zID0gY2hlY2tlZFJhZGlvQnV0dG9u
cygpKQorICAgICAgICAgICAgYnV0dG9ucy0+dXBkYXRlQ2hlY2tlZFN0YXRlKHRoaXMpOwogICAg
IGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkK
ICAgICAgICAgcmVuZGVyZXIoKS0+dGhlbWUoKS0+c3RhdGVDaGFuZ2VkKHJlbmRlcmVyKCksIENo
ZWNrZWRTdGF0ZSk7CiAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CkBAIC0xNDQyLDI3ICsx
NDQ0LDI3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFn
ZUNhY2hlKCkKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp3aWxsQ2hhbmdlRm9ybSgpCiB7Ci0g
ICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRvbih0aGlzKTsKKyAgICByZW1vdmVS
YWRpb0J1dHRvbigpOwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsQ2hhbmdl
Rm9ybSgpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZENoYW5nZUZvcm0oKQogewog
ICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaWRDaGFuZ2VGb3JtKCk7Ci0gICAgY2hl
Y2tlZFJhZGlvQnV0dG9ucygpLmFkZEJ1dHRvbih0aGlzKTsKKyAgICBhZGRSYWRpb0J1dHRvbigp
OwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKIHsK
ICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsK
ICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKLSAgICBjaGVja2VkUmFkaW9CdXR0b25zKCkuYWRk
QnV0dG9uKHRoaXMpOworICAgIGFkZFJhZGlvQnV0dG9uKCk7CiB9CiAKIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiB7CiAgICAgQVNTRVJUKGluRG9jdW1lbnQo
KSk7Ci0gICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRvbih0aGlzKTsKKyAgICBy
ZW1vdmVSYWRpb0J1dHRvbigpOwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpyZW1v
dmVkRnJvbURvY3VtZW50KCk7CiB9CiAKQEAgLTE0NzQsNyArMTQ3Niw4IEBAIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQog
ICAgICAgICAvLyBBbHdheXMgdW5yZWdpc3RlciBmb3IgY2FjaGUgY2FsbGJhY2tzIHdoZW4gbGVh
dmluZyBhIGRvY3VtZW50LCBldmVuIGlmIHdlIHdvdWxkIG90aGVyd2lzZSBsaWtlIHRvIGJlIHJl
Z2lzdGVyZWQKICAgICAgICAgaWYgKG5lZWRzU3VzcGVuc2lvbkNhbGxiYWNrKQogICAgICAgICAg
ICAgb2xkRG9jdW1lbnQtPnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tz
KHRoaXMpOwotICAgICAgICBvbGREb2N1bWVudC0+Y2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92
ZUJ1dHRvbih0aGlzKTsKKyAgICAgICAgaWYgKGlzUmFkaW9CdXR0b24oKSkKKyAgICAgICAgICAg
IG9sZERvY3VtZW50LT5jaGVja2VkUmFkaW9CdXR0b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOwog
ICAgIH0KIAogICAgIGlmIChuZWVkc1N1c3BlbnNpb25DYWxsYmFjaykKQEAgLTE0OTgsNyArMTUw
MSw4IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QK
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsKICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7
Ci0gICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCh0aGlz
KTsKKyAgICBpZiAoQ2hlY2tlZFJhZGlvQnV0dG9ucyogYnV0dG9ucyA9IGNoZWNrZWRSYWRpb0J1
dHRvbnMoKSkKKyAgICAgICAgYnV0dG9ucy0+cmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKHRoaXMp
OwogfQogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQpAQCAtMTc4MSwxMyArMTc4NSw2IEBAIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICByZXR1cm4g
bV9pbnB1dFR5cGUtPnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogfQogCi1DaGVja2VkUmFkaW9C
dXR0b25zJiBIVE1MSW5wdXRFbGVtZW50OjpjaGVja2VkUmFkaW9CdXR0b25zKCkgY29uc3QKLXsK
LSAgICBpZiAoSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCA9IGZvcm0oKSkKLSAgICAgICAg
cmV0dXJuIGZvcm1FbGVtZW50LT5jaGVja2VkUmFkaW9CdXR0b25zKCk7Ci0gICAgcmV0dXJuIGRv
Y3VtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKTsKLX0KLQogdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpwYXJzZU1heExlbmd0aEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkKIHsKICAg
ICBpbnQgbWF4TGVuZ3RoOwpAQCAtMTgyMSw0ICsxODE4LDQyIEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6aXNJbmRldGVybWluYXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnN1
cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSAmJiBpbmRldGVybWluYXRlKCk7CiB9CiAK
K2Jvb2wgSFRNTElucHV0RWxlbWVudDo6aXNJblJlcXVpcmVkUmFkaW9CdXR0b25Hcm91cCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzUmFkaW9CdXR0b24oKSk7CisgICAgaWYgKENoZWNrZWRSYWRp
b0J1dHRvbnMqIGJ1dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0b25zKCkpCisgICAgICAgIHJldHVy
biBidXR0b25zLT5pc1JlcXVpcmVkR3JvdXAobmFtZSgpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK0hUTUxJbnB1dEVsZW1lbnQqIEhUTUxJbnB1dEVsZW1lbnQ6OmNoZWNrZWRSYWRpb0J1dHRv
bkZvckdyb3VwKCkgY29uc3QKK3sKKyAgICBpZiAoQ2hlY2tlZFJhZGlvQnV0dG9ucyogYnV0dG9u
cyA9IGNoZWNrZWRSYWRpb0J1dHRvbnMoKSkKKyAgICAgICAgcmV0dXJuIGJ1dHRvbnMtPmNoZWNr
ZWRCdXR0b25Gb3JHcm91cChuYW1lKCkpOworICAgIHJldHVybiAwOworfQorCitDaGVja2VkUmFk
aW9CdXR0b25zKiBIVE1MSW5wdXRFbGVtZW50OjpjaGVja2VkUmFkaW9CdXR0b25zKCkgY29uc3QK
K3sKKyAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYg
KEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3JtKCkpCisgICAgICAgIHJldHVybiAm
Zm9ybUVsZW1lbnQtPmNoZWNrZWRSYWRpb0J1dHRvbnMoKTsKKyAgICBpZiAoaW5Eb2N1bWVudCgp
KQorICAgICAgICByZXR1cm4gJmRvY3VtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6YWRkUmFkaW9C
dXR0b24oKQoreworICAgIGlmIChDaGVja2VkUmFkaW9CdXR0b25zKiBidXR0b25zID0gY2hlY2tl
ZFJhZGlvQnV0dG9ucygpKQorICAgICAgICBidXR0b25zLT5hZGRCdXR0b24odGhpcyk7Cit9CisK
K2lubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZVJhZGlvQnV0dG9uKCkKK3sKKyAg
ICBpZiAoQ2hlY2tlZFJhZGlvQnV0dG9ucyogYnV0dG9ucyA9IGNoZWNrZWRSYWRpb0J1dHRvbnMo
KSkKKyAgICAgICAgYnV0dG9ucy0+cmVtb3ZlQnV0dG9uKHRoaXMpOworfQorCiB9IC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA2ZGI1Zjc3NmEw
N2M1NWJjNWM1ODBiYWFkNjM0Mjc5NTY5NTcxYTM0Li5iNDBmMjNmMjI5ZGFiZTZkYzljYmYzMzhh
YWI5ZmFhNTMxYTc1YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApA
QCAtMjIxLDEwICsyMjEsOSBAQCBwdWJsaWM6CiAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGVj
dGVkT3B0aW9uKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUg
cHVibGljIHNvIHRoZXkgY2FuIGJlIHVzZWQgaW4gSW5wdXRUeXBlIGNsYXNzZXMuCi0gICAgLy8g
T3RoZXJ3aXNlLCB0aGV5IHdvdWxkIGJlIHByaXZhdGUuCi0gICAgQ2hlY2tlZFJhZGlvQnV0dG9u
cyYgY2hlY2tlZFJhZGlvQnV0dG9ucygpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlQ2hlY2tlZFJh
ZGlvQnV0dG9ucygpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGNoZWNrZWRSYWRpb0J1dHRvbkZv
ckdyb3VwKCkgY29uc3Q7CisgICAgYm9vbCBpc0luUmVxdWlyZWRSYWRpb0J1dHRvbkdyb3VwKCkg
Y29uc3Q7CisKICAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcik7CiAKICAgICB2b2lkIGNhY2hlU2VsZWN0aW9uSW5SZXNwb25zZVRv
U2V0VmFsdWUoaW50IGNhcmV0T2Zmc2V0KSB7IGNhY2hlU2VsZWN0aW9uKGNhcmV0T2Zmc2V0LCBj
YXJldE9mZnNldCwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOyB9CkBAIC0zNDAsNiArMzM5LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZU1heExlbmd0aEF0dHJpYnV0ZShBdHRyaWJ1dGUq
KTsKICAgICB2b2lkIHVwZGF0ZVZhbHVlSWZOZWVkZWQoKTsKIAorICAgIC8vIFJldHVybnMgbnVs
bCBpZiB0aGlzIGlzbid0IGFzc29jaWF0ZWQgd2l0aCBhbnkgcmFkaW8gYnV0dG9uIGdyb3VwLgor
ICAgIENoZWNrZWRSYWRpb0J1dHRvbnMqIGNoZWNrZWRSYWRpb0J1dHRvbnMoKSBjb25zdDsKKyAg
ICB2b2lkIGFkZFJhZGlvQnV0dG9uKCk7CisgICAgdm9pZCByZW1vdmVSYWRpb0J1dHRvbigpOwor
CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV92YWx1ZUlmRGlydHk7CiAg
ICAgU3RyaW5nIG1fc3VnZ2VzdGVkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwCmluZGV4IGNlYTAxMzJlOGJmOWUxNDI4ZTQ1M2UyOWU3MjY1ZTM5MjFkYjQ4YTAuLjE1
NWJlODkxZGE2YTI0ZWExNzFmNzRjZTZjM2FmZTI2NTU3OTYzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC00OCw3ICs0OCw3IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgUmFkaW9JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIGJvb2wgUmFkaW9J
bnB1dFR5cGU6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdAogewotICAgIHJldHVy
biBlbGVtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5pc0luUmVxdWlyZWRHcm91cChlbGVt
ZW50KCkpICYmICFlbGVtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5jaGVja2VkQnV0dG9u
Rm9yR3JvdXAoZWxlbWVudCgpLT5uYW1lKCkpOworICAgIHJldHVybiBlbGVtZW50KCktPmlzSW5S
ZXF1aXJlZFJhZGlvQnV0dG9uR3JvdXAoKSAmJiAhZWxlbWVudCgpLT5jaGVja2VkUmFkaW9CdXR0
b25Gb3JHcm91cCgpOwogfQogCiBTdHJpbmcgUmFkaW9JbnB1dFR5cGU6OnZhbHVlTWlzc2luZ1Rl
eHQoKSBjb25zdApAQCAtMTMwLDcgKzEzMCw3IEBAIGJvb2wgUmFkaW9JbnB1dFR5cGU6OmlzS2V5
Ym9hcmRGb2N1c2FibGUoKSBjb25zdAogICAgIH0KIAogICAgIC8vIEFsbG93IGtleWJvYXJkIGZv
Y3VzIGlmIHdlJ3JlIGNoZWNrZWQgb3IgaWYgbm90aGluZyBpbiB0aGUgZ3JvdXAgaXMgY2hlY2tl
ZC4KLSAgICByZXR1cm4gZWxlbWVudCgpLT5jaGVja2VkKCkgfHwgIWVsZW1lbnQoKS0+Y2hlY2tl
ZFJhZGlvQnV0dG9ucygpLmNoZWNrZWRCdXR0b25Gb3JHcm91cChlbGVtZW50KCktPm5hbWUoKSk7
CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+Y2hlY2tlZCgpIHx8ICFlbGVtZW50KCktPmNoZWNrZWRS
YWRpb0J1dHRvbkZvckdyb3VwKCk7CiB9CiAKIGJvb2wgUmFkaW9JbnB1dFR5cGU6OnNob3VsZFNl
bmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKQpAQCAtMTUyLDcgKzE1Miw3IEBAIFBh
c3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPiBSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNo
Q2xpY2soKQogICAgIE93blB0cjxDbGlja0hhbmRsaW5nU3RhdGU+IHN0YXRlID0gYWRvcHRQdHIo
bmV3IENsaWNrSGFuZGxpbmdTdGF0ZSk7CiAKICAgICBzdGF0ZS0+Y2hlY2tlZCA9IGVsZW1lbnQo
KS0+Y2hlY2tlZCgpOwotICAgIHN0YXRlLT5jaGVja2VkUmFkaW9CdXR0b24gPSBlbGVtZW50KCkt
PmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAoZWxlbWVudCgpLT5u
YW1lKCkpOworICAgIHN0YXRlLT5jaGVja2VkUmFkaW9CdXR0b24gPSBlbGVtZW50KCktPmNoZWNr
ZWRSYWRpb0J1dHRvbkZvckdyb3VwKCk7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgc3RhdGUt
PmluZGV0ZXJtaW5hdGUgPSBlbGVtZW50KCktPmluZGV0ZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOGMx
ODYyZTIzY2U5YjRhZjMwOWJjYWZmMjBiNjZmMTM2NWRjNDEyLi5kZjRkNTI4MzRjNmE5MTcwODNl
NDRhNDE0Y2Q3MjJiYWE3ODM5NTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTUg
IEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3V0LW9mLWRvY3Vt
ZW50IHJhZGlvIGJ1dHRvbnMgc2hvdWxkIGJlIGdyb3VwZWQgd2hlbiBhc3NvY2lhdGVkIHdpdGgg
YSBmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTI2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hl
ZC1mb3JtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3Jv
dXAuaHRtbDogVXBkYXRlZCB0byBtYXRjaCBuZXcgYmVoYXZpb3IuCisKIDIwMTItMDMtMTUgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgRW5hYmxl
IGFuaW1WYWwgc3VwcG9ydCBmb3IgU1ZHTnVtYmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JhZGlvL3JhZGlvLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3JvdXAtZXhwZWN0ZWQudHh0CmluZGV4IDRiMGIzYzU1NDA1
OGM4OTEyNWYyNDkwMTlkOTFmYWVhZWJjOTk3Y2MuLmJhNzA4OTVmZTA4NTkyMzk4YzMwMGViOTk1
MmM4ZjczYjMxOTU2OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8v
cmFkaW8tZ3JvdXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFk
aW8vcmFkaW8tZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC00NSw3ICs0NSw3IEBAIEFkZGluZyB0aGUg
b3JwaGFuIHRyZWUgdG8gYSBkb2N1bWVudDoKIFBBU1Mgb3JwaGFuRGl2LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpbnB1dCIpWzBdLmNoZWNrZWQgaXMgZmFsc2UKIFBBU1Mgb3JwaGFuRGl2LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzFdLmNoZWNrZWQgaXMgdHJ1ZQogUGFyc2luZyBhbiBv
cnBoYW4gZm9ybToKLVBBU1Mgb3JwaGFuRGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp
WzBdLmNoZWNrZWQgaXMgdHJ1ZQorUEFTUyBvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImlucHV0IilbMF0uY2hlY2tlZCBpcyBmYWxzZQogUEFTUyBvcnBoYW5EaXYuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImlucHV0IilbMV0uY2hlY2tlZCBpcyB0cnVlCiAKIE1vdmluZyBhIHJhZGlvIGJ1
dHRvbiB0byBhbm90aGVyIERvY3VtZW50OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3JvdXAtaW4tZGV0YWNoZWQtZm9ybS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQwMDhlZDE4N2I1ZGYyODMzOTZkNDEzMTg5MWJkMTVi
NjA1OTQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8v
cmFkaW8tZ3JvdXAtaW4tZGV0YWNoZWQtZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorUmFkaW8gYnV0dG9ucyB3aXRoaW4gdGhlIHNhbWUgZm9ybSBvdXRzaWRlIGEgZG9jdW1lbnQg
c2hvdWxkIHN0aWxsIGJlIHVwZGF0ZWQgYXBwcm9wcmlhdGVseSB3aGVuIG9uZSBvZiB0aGVtIGlz
IGNoZWNrZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJhZGlvMS5j
aGVja2VkIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRp
by1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jh
ZGlvL3JhZGlvLWdyb3VwLWluLWRldGFjaGVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjRiYmU2
NDFiNjFkNDk2NTg3OTUzMGUyYjhkMmUxMWJhZjg2MWY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLmh0
bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignUmFkaW8gYnV0dG9ucyB3aXRoaW4gdGhlIHNhbWUgZm9ybSBvdXRzaWRlIGEgZG9jdW1l
bnQgc2hvdWxkIHN0aWxsIGJlIHVwZGF0ZWQgYXBwcm9wcmlhdGVseSB3aGVuIG9uZSBvZiB0aGVt
IGlzIGNoZWNrZWQuJyk7CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9y
bScpOwordmFyIHJhZGlvMSA9IGZvcm0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKSk7Cit2YXIgcmFkaW8yID0gZm9ybS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpbnB1dCcpKTsKK3JhZGlvMS50eXBlID0gcmFkaW8yLnR5cGUgPSAncmFkaW8n
OworcmFkaW8xLm5hbWUgPSByYWRpbzIubmFtZSA9ICdwcmVmJzsKK3JhZGlvMS5jaGVja2VkID0g
dHJ1ZTsKK3JhZGlvMi5jaGVja2VkID0gdHJ1ZTsKK3Nob3VsZEJlRmFsc2UoJ3JhZGlvMS5jaGVj
a2VkJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cmFkaW8vcmFkaW8tZ3JvdXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFk
aW8tZ3JvdXAuaHRtbAppbmRleCA5YzgwMGFhYzYwOGZjNWM1OGNmNTg1OGUyNDFiMWExNDIwYzQ1
MzA4Li5jZTdmYWI5ZTkwMzRkOTcyNDZjMmM2Yjg4NWYzZmMxYTI1NGI3NTc2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JhZGlvL3JhZGlvLWdyb3VwLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC5odG1sCkBAIC0xMTQsNyArMTE0
LDcgQEAgc2hvdWxkQmVUcnVlKCdvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0
IilbMV0uY2hlY2tlZCcpOwogZGVidWcoJ1BhcnNpbmcgYW4gb3JwaGFuIGZvcm06Jyk7CiBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKG9ycGhhbkRpdik7CiBvcnBoYW5EaXYuaW5uZXJIVE1MID0g
Jzxmb3JtPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9bmFtZTMgY2hlY2tlZD48aW5wdXQgdHlwZT1y
YWRpbyBuYW1lPW5hbWUzIGNoZWNrZWQ+PC9mb3JtPic7Ci1zaG91bGRCZVRydWUoJ29ycGhhbkRp
di5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5jaGVja2VkJyk7CitzaG91bGRCZUZh
bHNlKCdvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uY2hlY2tlZCcp
Owogc2hvdWxkQmVUcnVlKCdvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iilb
MV0uY2hlY2tlZCcpOwogCiBkZWJ1ZygnJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132321</attachid>
            <date>2012-03-16 11:06:08 -0700</date>
            <delta_ts>2012-03-16 13:17:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-81268-20120316110607.patch</filename>
            <type>text/plain</type>
            <size>20941</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JjMDNiNDRlYzdiYTY5
NmMyM2ExZTZmNGY0ODA3ZWM5ZDM4MjgzYi4uNmJhODA4MmMxNWI3NmZhYWU0MjQxYTUxZWNmYmQ0
ZjRkNTA3MWFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTE1ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE91dC1vZi1kb2N1bWVudCBy
YWRpbyBidXR0b25zIHNob3VsZCBiZSBncm91cGVkIHdoZW4gYXNzb2NpYXRlZCB3aXRoIGEgZm9y
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyNjgK
KworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICBQZXIgdGhlIEhU
TUwgc3BlYywgYW5kIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94IGFuZCBJRSA4LzksIHJhZGlvIGJ1
dHRvbnMKKyAgICAgICAgd2l0aCBhIGZvcm0gb3duZXIgc2hvdWxkIGJlIGdyb3VwZWQsIGV2ZW4g
aWYgdGhhdCBmb3JtIGlzIG5vdCBpbiB0aGUgZG9jdW1lbnQuCisKKyAgICAgICAgcjEwNDY2OCBh
ZGRlZCBtYW55IGluRG9jdW1lbnQoKSB0ZXN0cyB0byByYWRpbyBidXR0b24gZ3JvdXBpbmcgY29k
ZS4KKyAgICAgICAgV2hpbGUgdGhvc2UgYXJlIG5lY2Vzc2FyeSB0byBhdm9pZCB1bmF0dGFjaGVk
IDxpbnB1dCB0eXBlPXJhZGlvPgorICAgICAgICBlbGVtZW50cyBiZWluZyBncm91cGVkIHRvZ2V0
aGVyLCBpdCBhbHNvIGtlcHQgdGhlbSBmcm9tIGJlaW5nIGdyb3VwZWQKKyAgICAgICAgd2hlbiBh
c3NvY2lhdGVkIHdpdGggYSBmb3JtIG91dHNpZGUgdGhlIGRvY3VtZW50LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY2hhbmdlcyB0aGUgSFRNTElucHV0RWxlbWVudDo6Y2hlY2tlZFJhZGlvQnV0dG9u
cygpIG1ldGhvZAorICAgICAgICB0byByZXR1cm4gZWl0aGVyIGEgcG9pbnRlciB0byB0aGUgcHJv
cGVyIENoZWNrZWRSYWRpb0J1dHRvbnMgaW5zdGFuY2UKKyAgICAgICAgKGVpdGhlciB0aGUgZG9j
dW1lbnQncyBvciBhIGZvcm0ncyksIGJ1dCB3aWxsIHJldHVybiBudWxsIGlmIHRoZQorICAgICAg
ICBlbGVtZW50IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFueSByYWRpbyBidXR0b24g
Z3JvdXAuCisKKyAgICAgICAgVGhlIG1haW4gZmFsbG91dCBvZiB0aGlzIHdhcyB0aGF0IHRoZSBj
YWxsZXJzIG9mIGNoZWNrZWRSYWRpb0J1dHRvbnMoKQorICAgICAgICBub3cgaGF2ZSB0byBjaGVj
ayBmb3IgbnVsbCwgcmVzdWx0aW5nIGluIHRoZSBjcmVhdGlvbiBvZiBhIGZldyBoZWxwZXIKKyAg
ICAgICAgbWV0aG9kcyBpbiBIVE1MSW5wdXRFbGVtZW50IHRvIHdyYXAgdGhlIG51bGwgY2hlY2tz
LgorCisgICAgICAgIFRoaXMgcmVmYWN0b3JpbmcgaGFzIHRoZSBwbGVhc2FudCBzaWRlLWVmZmVj
dCBvZiBleHBvc2luZyBhIGNsZWFuZXIgQVBJIGJldHdlZW4KKyAgICAgICAgSFRNTElucHV0RWxl
bWVudCBhbmQgUmFkaW9JbnB1dFR5cGUsIGFuZCBtYWtpbmcgYSBjbGVhcmVyIGNvbnRyYWN0Cisg
ICAgICAgIGJldHdlZW4gSFRNTElucHV0RWxlbWVudCBhbmQgQ2hlY2tlZFJhZGlvQnV0dG9ucyAo
ZS5nLiwgYWxsCisgICAgICAgIENoZWNrZWRSYWRpb0J1dHRvbnMgbWV0aG9kcyB0aGF0IHRha2Ug
YW4gZWxlbWVudCBjYW4gbm93IGFzc3VtZSB0aGF0CisgICAgICAgIGl0IGlzIGEgcmFkaW8gYnV0
dG9uLCB3aGVyZSBwcmV2aW91c2x5IHNvbWUgY2hlY2tlZCBmb3IgdGhhdCBhbmQKKyAgICAgICAg
b3RoZXJzIGFzc2VydGVkIGl0KS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3JhZGlvL3Jh
ZGlvLWdyb3VwLWluLWRldGFjaGVkLWZvcm0uaHRtbAorCisgICAgICAgICogZG9tL0NoZWNrZWRS
YWRpb0J1dHRvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6IFJlbW92ZWQgc2hvdWxkTWFrZVJh
ZGlvR3JvdXAoKSBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpDaGVja2VkUmFk
aW9CdXR0b25zOjphZGRCdXR0b24pOiBSZXBsYWNlIGNhbGwgdG8gc2hvdWxkTWFrZVJhZGlvR3Jv
dXAKKyAgICAgICAgd2l0aCBhcHByb3ByaWF0ZSBhc3NlcnQgYW5kIG5hbWUgY2hlY2suCisgICAg
ICAgIChXZWJDb3JlOjpDaGVja2VkUmFkaW9CdXR0b25zOjp1cGRhdGVDaGVja2VkU3RhdGUpOiBk
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNoZWNrZWRSYWRpb0J1dHRvbnM6OnJlcXVpcmVkQXR0
cmlidXRlQ2hhbmdlZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hlY2tlZFJhZGlvQnV0
dG9uczo6aXNSZXF1aXJlZEdyb3VwKTogUmVuYW1lZCBmcm9tIGlzSW5SZXF1aXJlZEdyb3VwLAor
ICAgICAgICBjaGFuZ2VkIHRvIHRha2Ugb25seSBhIGdyb3VwIG5hbWUsIG5vdCBhbiBlbGVtZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hlY2tlZFJhZGlvQnV0dG9uczo6cmVtb3ZlQnV0dG9uKTog
UmVwbGFjZSBjYWxsIHRvIHNob3VsZE1ha2VSYWRpb0dyb3VwLgorICAgICAgICB3aXRoIGFwcHJv
cHJpYXRlIGFzc2VydCBhbmQgbmFtZSBjaGVjay4KKyAgICAgICAgKiBkb20vQ2hlY2tlZFJhZGlv
QnV0dG9ucy5oOgorICAgICAgICAoQ2hlY2tlZFJhZGlvQnV0dG9ucyk6CisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6On5IVE1MSW5wdXRFbGVtZW50KTogQWRkZWQgaXNSYWRpb0J1dHRvbiBjaGVjaworICAgICAg
ICBub3cgdGhhdCBpdCdzIGFzc2VydGVkIGluIENoZWNrZWRSYWRpb0J1dHRvbnMuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKTogQ2FsbCBoZWxwZXIgbWV0
aG9kIGluc3RlYWQgb2YKKyAgICAgICAgY2FsbGluZyBkaXJlY3RseSBpbnRvIENoZWNrZWRSYWRp
b0J1dHRvbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Q2hl
Y2tlZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lsbENo
YW5nZUZvcm0pOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmRp
ZENoYW5nZUZvcm0pOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6IEFkZGVkIGlzUmFkaW9C
dXR0b24gY2hlY2suCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyZXF1aXJl
ZEF0dHJpYnV0ZUNoYW5nZWQpOiBDaGVjayBmb3IgbWVtYmVyc2hpcCBpbiBhIGdyb3VwCisgICAg
ICAgIGJlZm9yZSBjYWxsaW5nIGludG8gQ2hlY2tlZFJhZGlvQnV0dG9ucy4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzSW5SZXF1aXJlZFJhZGlvQnV0dG9uR3JvdXApOiBB
ZGRlZCBoZWxwZXIgbWV0aG9kIGZvciB1c2UgYnkgUmFkaW9JbnB1dFR5cGUuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNoZWNrZWRSYWRp
b0J1dHRvbkZvckdyb3VwKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpjaGVja2VkUmFkaW9CdXR0b25zKTogQ2hhbmdlZCB0byByZXR1cm4gYQorICAgICAgICBw
b2ludGVyLCBvbmx5IHJldHVybiBub24tbnVsbCBpZiBhY3R1YWxseSBhIG1lbWJlciBvZiBhIGdy
b3VwLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YWRkVG9SYWRpb0J1dHRv
bkdyb3VwKTogSGVscGVyIG1ldGhvZCBmb3IKKyAgICAgICAgdXNlIGluIEhUTUxJbnB1dEVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyZW1vdmVGcm9tUmFkaW9C
dXR0b25Hcm91cCk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgor
ICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6IEFkZGVkL3JlbW92ZWQgbWV0aG9kcywgcmVtb3Zl
ZCBvdXRkYXRlZCBjb21tZW50IGFib3V0IHZpc2liaWxpdHkuCisgICAgICAgICogaHRtbC9SYWRp
b0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6dmFsdWVN
aXNzaW5nKTogQ2FsbCBuZXcgSFRNTElucHV0RWxlbWVudCBtZXRob2RzIGluc3RlYWQKKyAgICAg
ICAgb2YgaW50ZXJhY3RpbmcgZGlyZWN0bHkgd2l0aCBDaGVja2VkUmFkaW9CdXR0b25zLgorICAg
ICAgICAoV2ViQ29yZTo6UmFkaW9JbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBkaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvSW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hDbGljayk6
IGRpdHRvLgorCiAyMDEyLTAzLTE1ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAg
ICAgRml4IGNhc3QtYWxpZ24gR0NDIHdhcm5pbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hlY2tlZFJhZGlvQnV0dG9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hlY2tl
ZFJhZGlvQnV0dG9ucy5jcHAKaW5kZXggOWI1YzUwMzM0ZTc0ZjU5MWNkMGNiZWY2NTQyMDBmNmE0
NDVhMDBhOS4uNDcwZGEyYWQ1YzczYjE3OTJhZTYyM2Q5NDgyNjhiOGQ2NTVlNmM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGVja2VkUmFkaW9CdXR0b25zLmNwcApAQCAtMTY1LDExICsxNjUs
NiBAQCB2b2lkIFJhZGlvQnV0dG9uR3JvdXA6OnNldE5lZWRzVmFsaWRpdHlDaGVja0ZvckFsbEJ1
dHRvbnMoKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRNYWtlUmFk
aW9Hcm91cChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotewotICAgIHJldHVybiBlbGVtZW50
LT5pc1JhZGlvQnV0dG9uKCkgJiYgIWVsZW1lbnQtPm5hbWUoKS5pc0VtcHR5KCkgJiYgZWxlbWVu
dC0+aW5Eb2N1bWVudCgpOwotfQotCiAvLyBFeHBsaWNpdHkgZGVmaW5lIGVtcHR5IGNvbnN0cnVj
dG9yIGFuZCBkZXN0cnVjdG9yIGluIG9yZGVyIHRvIHByZXZlbnQgdGhlCiAvLyBjb21waWxlciBm
cm9tIGdlbmVyYXRpbmcgdGhlbSBhcyBpbmxpbmVzLiBTbyB3ZSBkb24ndCBuZWVkIHRvIHRvIGRl
ZmluZQogLy8gUmFkaW9CdXR0b25Hcm91cCBpbiB0aGUgaGVhZGVyLgpAQCAtMTgzLDcgKzE3OCw4
IEBAIENoZWNrZWRSYWRpb0J1dHRvbnM6On5DaGVja2VkUmFkaW9CdXR0b25zKCkKIAogdm9pZCBD
aGVja2VkUmFkaW9CdXR0b25zOjphZGRCdXR0b24oSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKLSAgICBpZiAoIXNob3VsZE1ha2VSYWRpb0dyb3VwKGVsZW1lbnQpKQorICAgIEFTU0VSVChl
bGVtZW50LT5pc1JhZGlvQnV0dG9uKCkpOworICAgIGlmIChlbGVtZW50LT5uYW1lKCkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fbmFtZVRvR3JvdXBNYXApCkBAIC0x
OTcsNyArMTkzLDggQEAgdm9pZCBDaGVja2VkUmFkaW9CdXR0b25zOjphZGRCdXR0b24oSFRNTElu
cHV0RWxlbWVudCogZWxlbWVudCkKIAogdm9pZCBDaGVja2VkUmFkaW9CdXR0b25zOjp1cGRhdGVD
aGVja2VkU3RhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBpZiAoIXNob3Vs
ZE1ha2VSYWRpb0dyb3VwKGVsZW1lbnQpKQorICAgIEFTU0VSVChlbGVtZW50LT5pc1JhZGlvQnV0
dG9uKCkpOworICAgIGlmIChlbGVtZW50LT5uYW1lKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAgICAgQVNTRVJUKG1fbmFtZVRvR3JvdXBNYXApOwogICAgIGlmICghbV9uYW1lVG9Hcm91
cE1hcCkKQEAgLTIwOSw3ICsyMDYsOCBAQCB2b2lkIENoZWNrZWRSYWRpb0J1dHRvbnM6OnVwZGF0
ZUNoZWNrZWRTdGF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogCiB2b2lkIENoZWNrZWRS
YWRpb0J1dHRvbnM6OnJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZChIVE1MSW5wdXRFbGVtZW50KiBl
bGVtZW50KQogewotICAgIGlmICghc2hvdWxkTWFrZVJhZGlvR3JvdXAoZWxlbWVudCkpCisgICAg
QVNTRVJUKGVsZW1lbnQtPmlzUmFkaW9CdXR0b24oKSk7CisgICAgaWYgKGVsZW1lbnQtPm5hbWUo
KS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9uYW1lVG9Hcm91cE1h
cCk7CiAgICAgaWYgKCFtX25hbWVUb0dyb3VwTWFwKQpAQCAtMjI4LDIxICsyMjYsMTggQEAgSFRN
TElucHV0RWxlbWVudCogQ2hlY2tlZFJhZGlvQnV0dG9uczo6Y2hlY2tlZEJ1dHRvbkZvckdyb3Vw
KGNvbnN0IEF0b21pY1N0cmluZyYKICAgICByZXR1cm4gZ3JvdXAgPyBncm91cC0+Y2hlY2tlZEJ1
dHRvbigpIDogMDsKIH0KIAotYm9vbCBDaGVja2VkUmFkaW9CdXR0b25zOjppc0luUmVxdWlyZWRH
cm91cChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSBjb25zdAorYm9vbCBDaGVja2VkUmFkaW9C
dXR0b25zOjppc1JlcXVpcmVkR3JvdXAoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAog
ewotICAgIEFTU0VSVChlbGVtZW50LT5pc1JhZGlvQnV0dG9uKCkpOwotICAgIGlmICghZWxlbWVu
dC0+aW5Eb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFtX25hbWVU
b0dyb3VwTWFwKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSYWRpb0J1dHRvbkdyb3Vw
KiBncm91cCA9IG1fbmFtZVRvR3JvdXBNYXAtPmdldChlbGVtZW50LT5uYW1lKCkuaW1wbCgpKTsK
KyAgICBSYWRpb0J1dHRvbkdyb3VwKiBncm91cCA9IG1fbmFtZVRvR3JvdXBNYXAtPmdldChuYW1l
LmltcGwoKSk7CiAgICAgcmV0dXJuIGdyb3VwICYmIGdyb3VwLT5pc1JlcXVpcmVkKCk7CiB9CiAK
IHZvaWQgQ2hlY2tlZFJhZGlvQnV0dG9uczo6cmVtb3ZlQnV0dG9uKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFzaG91bGRNYWtlUmFkaW9Hcm91cChlbGVtZW50KSkKKyAg
ICBBU1NFUlQoZWxlbWVudC0+aXNSYWRpb0J1dHRvbigpKTsKKyAgICBpZiAoZWxlbWVudC0+bmFt
ZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9uYW1lVG9Hcm91cE1h
cCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NoZWNr
ZWRSYWRpb0J1dHRvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGVja2VkUmFkaW9CdXR0b25z
LmgKaW5kZXggZjA1MGZhYTQ4YzE2MjQ0Yzk3NDVlMzAxOTA3MmFmNjE3MWY0OTQ3Mi4uMmFmOWU4
ZWRkMzM4ZDMzZmFlMjAyMmYwZjQ3Y2I0NzkzMDk2YTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2hlY2tlZFJhZGlvQnV0dG9ucy5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZChIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdm9pZCBy
ZW1vdmVCdXR0b24oSFRNTElucHV0RWxlbWVudCopOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGNo
ZWNrZWRCdXR0b25Gb3JHcm91cChjb25zdCBBdG9taWNTdHJpbmcmIGdyb3VwTmFtZSkgY29uc3Q7
Ci0gICAgYm9vbCBpc0luUmVxdWlyZWRHcm91cChIVE1MSW5wdXRFbGVtZW50KikgY29uc3Q7Cisg
ICAgYm9vbCBpc1JlcXVpcmVkR3JvdXAoY29uc3QgQXRvbWljU3RyaW5nJiBncm91cE5hbWUpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwg
T3duUHRyPFJhZGlvQnV0dG9uR3JvdXA+ID4gTmFtZVRvR3JvdXBNYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBlY2ExNDRhMjIzZDliMjc1NTI2ODY5Mzdj
ZjM2OGE5NDc4N2ZjZWY3Li5hNTA2OGVkNjViOTc1YjRjMzhkN2I3MmYxODY4NDBhMmNmZjEzODkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEyNSw3ICsx
MjUsOCBAQCBIVE1MSW5wdXRFbGVtZW50Ojp+SFRNTElucHV0RWxlbWVudCgpCiAgICAgc2V0Rm9y
bSgwKTsKICAgICAvLyBzZXRGb3JtKDApIG1heSByZWdpc3RlciB0aGlzIHRvIGEgZG9jdW1lbnQt
bGV2ZWwgcmFkaW8gYnV0dG9uIGdyb3VwLgogICAgIC8vIFdlIHNob3VsZCB1bnJlZ2lzdGVyIGl0
IHRvIGF2b2lkIGFjY2Vzc2luZyBhIGRlbGV0ZWQgb2JqZWN0LgotICAgIGRvY3VtZW50KCktPmNo
ZWNrZWRSYWRpb0J1dHRvbnMoKS5yZW1vdmVCdXR0b24odGhpcyk7CisgICAgaWYgKGlzUmFkaW9C
dXR0b24oKSkKKyAgICAgICAgZG9jdW1lbnQoKS0+Y2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92
ZUJ1dHRvbih0aGlzKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MSW5wdXRFbGVtZW50
Ojpmb3JtQ29udHJvbE5hbWUoKSBjb25zdApAQCAtNTA5LDcgKzUxMCw3IEBAIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBj
aGVja2VkUmFkaW9CdXR0b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOworICAgIHJlbW92ZUZyb21S
YWRpb0J1dHRvbkdyb3VwKCk7CiAKICAgICBib29sIHdhc0F0dGFjaGVkID0gYXR0YWNoZWQoKTsK
ICAgICBpZiAod2FzQXR0YWNoZWQpCkBAIC01NjQsNyArNTY1LDcgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50Ojp1cGRhdGVUeXBlKCkKIAogICAgIHNldENoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJv
bENoYW5nZUV2ZW50KGZhbHNlKTsKIAotICAgIGNoZWNrZWRSYWRpb0J1dHRvbnMoKS5hZGRCdXR0
b24odGhpcyk7CisgICAgYWRkVG9SYWRpb0J1dHRvbkdyb3VwKCk7CiAKICAgICBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKTsKICAgICBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7CkBAIC02OTMsOSAr
Njk0LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyLCBTdHlsZVByb3BlcnR5U2UKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gbmFtZUF0dHIpIHsKLSAgICAgICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLnJlbW92ZUJ1dHRv
bih0aGlzKTsKKyAgICAgICAgcmVtb3ZlRnJvbVJhZGlvQnV0dG9uR3JvdXAoKTsKICAgICAgICAg
bV9uYW1lID0gYXR0ci0+dmFsdWUoKTsKLSAgICAgICAgY2hlY2tlZFJhZGlvQnV0dG9ucygpLmFk
ZEJ1dHRvbih0aGlzKTsKKyAgICAgICAgYWRkVG9SYWRpb0J1dHRvbkdyb3VwKCk7CiAgICAgICAg
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKICAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhdXRvY29tcGxldGVBdHRyKSB7CiAgICAgICAgIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShhdHRyLT52YWx1ZSgpLCAib2ZmIikpIHsKQEAgLTkxNyw4ICs5
MTgsOSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQoYm9vbCBub3dDaGVja2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QgogICAgIG1fcmVmbGVjdHNDaGVja2VkQXR0
cmlidXRlID0gZmFsc2U7CiAgICAgbV9pc0NoZWNrZWQgPSBub3dDaGVja2VkOwogICAgIHNldE5l
ZWRzU3R5bGVSZWNhbGMoKTsKLSAgICBpZiAoaXNSYWRpb0J1dHRvbigpKQotICAgICAgICBjaGVj
a2VkUmFkaW9CdXR0b25zKCkudXBkYXRlQ2hlY2tlZFN0YXRlKHRoaXMpOworCisgICAgaWYgKENo
ZWNrZWRSYWRpb0J1dHRvbnMqIGJ1dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0b25zKCkpCisgICAg
ICAgICAgICBidXR0b25zLT51cGRhdGVDaGVja2VkU3RhdGUodGhpcyk7CiAgICAgaWYgKHJlbmRl
cmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQogICAgICAgICBy
ZW5kZXJlcigpLT50aGVtZSgpLT5zdGF0ZUNoYW5nZWQocmVuZGVyZXIoKSwgQ2hlY2tlZFN0YXRl
KTsKICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKQEAgLTE0NDIsMjcgKzE0NDQsMjcgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKQog
CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OndpbGxDaGFuZ2VGb3JtKCkKIHsKLSAgICBjaGVja2Vk
UmFkaW9CdXR0b25zKCkucmVtb3ZlQnV0dG9uKHRoaXMpOworICAgIHJlbW92ZUZyb21SYWRpb0J1
dHRvbkdyb3VwKCk7CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxDaGFuZ2VG
b3JtKCk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGlkQ2hhbmdlRm9ybSgpCiB7CiAg
ICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZENoYW5nZUZvcm0oKTsKLSAgICBjaGVj
a2VkUmFkaW9CdXR0b25zKCkuYWRkQnV0dG9uKHRoaXMpOworICAgIGFkZFRvUmFkaW9CdXR0b25H
cm91cCgpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50
KCkKIHsKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQoKTsKICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKLSAgICBjaGVja2VkUmFkaW9CdXR0b25z
KCkuYWRkQnV0dG9uKHRoaXMpOworICAgIGFkZFRvUmFkaW9CdXR0b25Hcm91cCgpOwogfQogCiB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQogewogICAgIEFTU0VS
VChpbkRvY3VtZW50KCkpOwotICAgIGNoZWNrZWRSYWRpb0J1dHRvbnMoKS5yZW1vdmVCdXR0b24o
dGhpcyk7CisgICAgcmVtb3ZlRnJvbVJhZGlvQnV0dG9uR3JvdXAoKTsKICAgICBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCkBAIC0xNDc0LDcg
KzE0NzYsOCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERv
Y3VtZW50KiBvbGREb2N1bWVudCkKICAgICAgICAgLy8gQWx3YXlzIHVucmVnaXN0ZXIgZm9yIGNh
Y2hlIGNhbGxiYWNrcyB3aGVuIGxlYXZpbmcgYSBkb2N1bWVudCwgZXZlbiBpZiB3ZSB3b3VsZCBv
dGhlcndpc2UgbGlrZSB0byBiZSByZWdpc3RlcmVkCiAgICAgICAgIGlmIChuZWVkc1N1c3BlbnNp
b25DYWxsYmFjaykKICAgICAgICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyRm9yUGFnZUNh
Y2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKLSAgICAgICAgb2xkRG9jdW1lbnQtPmNoZWNr
ZWRSYWRpb0J1dHRvbnMoKS5yZW1vdmVCdXR0b24odGhpcyk7CisgICAgICAgIGlmIChpc1JhZGlv
QnV0dG9uKCkpCisgICAgICAgICAgICBvbGREb2N1bWVudC0+Y2hlY2tlZFJhZGlvQnV0dG9ucygp
LnJlbW92ZUJ1dHRvbih0aGlzKTsKICAgICB9CiAKICAgICBpZiAobmVlZHNTdXNwZW5zaW9uQ2Fs
bGJhY2spCkBAIC0xNDk4LDcgKzE1MDEsOCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJlY2Fs
Y1dpbGxWYWxpZGF0ZSgpIGNvbnN0CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlcXVpcmVkQXR0
cmlidXRlQ2hhbmdlZCgpCiB7CiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnJlcXVp
cmVkQXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIGNoZWNrZWRSYWRpb0J1dHRvbnMoKS5yZXF1aXJl
ZEF0dHJpYnV0ZUNoYW5nZWQodGhpcyk7CisgICAgaWYgKENoZWNrZWRSYWRpb0J1dHRvbnMqIGJ1
dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0b25zKCkpCisgICAgICAgIGJ1dHRvbnMtPnJlcXVpcmVk
QXR0cmlidXRlQ2hhbmdlZCh0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKQEAg
LTE3ODEsMTMgKzE3ODUsNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9s
ZGVyVGV4dCgpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT51cGRhdGVQbGFjZWhvbGRlclRleHQo
KTsKIH0KIAotQ2hlY2tlZFJhZGlvQnV0dG9ucyYgSFRNTElucHV0RWxlbWVudDo6Y2hlY2tlZFJh
ZGlvQnV0dG9ucygpIGNvbnN0Ci17Ci0gICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1l
bnQgPSBmb3JtKCkpCi0gICAgICAgIHJldHVybiBmb3JtRWxlbWVudC0+Y2hlY2tlZFJhZGlvQnV0
dG9ucygpOwotICAgIHJldHVybiBkb2N1bWVudCgpLT5jaGVja2VkUmFkaW9CdXR0b25zKCk7Ci19
Ci0KIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXhMZW5ndGhBdHRyaWJ1dGUoQXR0cmli
dXRlKiBhdHRyaWJ1dGUpCiB7CiAgICAgaW50IG1heExlbmd0aDsKQEAgLTE4MjEsNCArMTgxOCw0
MiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1faW5wdXRUeXBlLT5zdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNlKCkgJiYg
aW5kZXRlcm1pbmF0ZSgpOwogfQogCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzSW5SZXF1aXJl
ZFJhZGlvQnV0dG9uR3JvdXAoKSBjb25zdAoreworICAgIEFTU0VSVChpc1JhZGlvQnV0dG9uKCkp
OworICAgIGlmIChDaGVja2VkUmFkaW9CdXR0b25zKiBidXR0b25zID0gY2hlY2tlZFJhZGlvQnV0
dG9ucygpKQorICAgICAgICByZXR1cm4gYnV0dG9ucy0+aXNSZXF1aXJlZEdyb3VwKG5hbWUoKSk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitIVE1MSW5wdXRFbGVtZW50KiBIVE1MSW5wdXRFbGVt
ZW50OjpjaGVja2VkUmFkaW9CdXR0b25Gb3JHcm91cCgpIGNvbnN0Cit7CisgICAgaWYgKENoZWNr
ZWRSYWRpb0J1dHRvbnMqIGJ1dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0b25zKCkpCisgICAgICAg
IHJldHVybiBidXR0b25zLT5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKKyAgICByZXR1
cm4gMDsKK30KKworQ2hlY2tlZFJhZGlvQnV0dG9ucyogSFRNTElucHV0RWxlbWVudDo6Y2hlY2tl
ZFJhZGlvQnV0dG9ucygpIGNvbnN0Cit7CisgICAgaWYgKCFpc1JhZGlvQnV0dG9uKCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIGlmIChIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50ID0gZm9y
bSgpKQorICAgICAgICByZXR1cm4gJmZvcm1FbGVtZW50LT5jaGVja2VkUmFkaW9CdXR0b25zKCk7
CisgICAgaWYgKGluRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuICZkb2N1bWVudCgpLT5jaGVj
a2VkUmFkaW9CdXR0b25zKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lubGluZSB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmFkZFRvUmFkaW9CdXR0b25Hcm91cCgpCit7CisgICAgaWYgKENoZWNrZWRS
YWRpb0J1dHRvbnMqIGJ1dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0b25zKCkpCisgICAgICAgIGJ1
dHRvbnMtPmFkZEJ1dHRvbih0aGlzKTsKK30KKworaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cmVtb3ZlRnJvbVJhZGlvQnV0dG9uR3JvdXAoKQoreworICAgIGlmIChDaGVja2VkUmFkaW9C
dXR0b25zKiBidXR0b25zID0gY2hlY2tlZFJhZGlvQnV0dG9ucygpKQorICAgICAgICBidXR0b25z
LT5yZW1vdmVCdXR0b24odGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDZkYjVmNzc2YTA3YzU1YmM1YzU4MGJhYWQ2MzQy
Nzk1Njk1NzFhMzQuLmFhMGJjMmZkMzA0NGQyMjNhZjY3ZGM3YWFhYzAwYzc2ZGI4MjQ5ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMjEsMTAgKzIyMSw5IEBA
IHB1YmxpYzoKICAgICBIVE1MT3B0aW9uRWxlbWVudCogc2VsZWN0ZWRPcHRpb24oKSBjb25zdDsK
ICNlbmRpZgogCi0gICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBwdWJsaWMgc28gdGhleSBjYW4g
YmUgdXNlZCBpbiBJbnB1dFR5cGUgY2xhc3Nlcy4KLSAgICAvLyBPdGhlcndpc2UsIHRoZXkgd291
bGQgYmUgcHJpdmF0ZS4KLSAgICBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0
b25zKCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVDaGVja2VkUmFkaW9CdXR0b25zKCk7CisgICAg
SFRNTElucHV0RWxlbWVudCogY2hlY2tlZFJhZGlvQnV0dG9uRm9yR3JvdXAoKSBjb25zdDsKKyAg
ICBib29sIGlzSW5SZXF1aXJlZFJhZGlvQnV0dG9uR3JvdXAoKSBjb25zdDsKKwogICAgIHZvaWQg
c2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKTsK
IAogICAgIHZvaWQgY2FjaGVTZWxlY3Rpb25JblJlc3BvbnNlVG9TZXRWYWx1ZShpbnQgY2FyZXRP
ZmZzZXQpIHsgY2FjaGVTZWxlY3Rpb24oY2FyZXRPZmZzZXQsIGNhcmV0T2Zmc2V0LCBTZWxlY3Rp
b25IYXNOb0RpcmVjdGlvbik7IH0KQEAgLTM0MCw2ICszMzksMTEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhcnNlTWF4TGVuZ3RoQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZvaWQgdXBkYXRl
VmFsdWVJZk5lZWRlZCgpOwogCisgICAgLy8gUmV0dXJucyBudWxsIGlmIHRoaXMgaXNuJ3QgYXNz
b2NpYXRlZCB3aXRoIGFueSByYWRpbyBidXR0b24gZ3JvdXAuCisgICAgQ2hlY2tlZFJhZGlvQnV0
dG9ucyogY2hlY2tlZFJhZGlvQnV0dG9ucygpIGNvbnN0OworICAgIHZvaWQgYWRkVG9SYWRpb0J1
dHRvbkdyb3VwKCk7CisgICAgdm9pZCByZW1vdmVGcm9tUmFkaW9CdXR0b25Hcm91cCgpOworCiAg
ICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV92YWx1ZUlmRGlydHk7CiAgICAg
U3RyaW5nIG1fc3VnZ2VzdGVkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUu
Y3BwCmluZGV4IGNlYTAxMzJlOGJmOWUxNDI4ZTQ1M2UyOWU3MjY1ZTM5MjFkYjQ4YTAuLjE1NWJl
ODkxZGE2YTI0ZWExNzFmNzRjZTZjM2FmZTI2NTU3OTYzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFkaW9JbnB1dFR5cGUuY3BwCkBAIC00OCw3ICs0OCw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
UmFkaW9JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIGJvb2wgUmFkaW9JbnB1
dFR5cGU6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdAogewotICAgIHJldHVybiBl
bGVtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5pc0luUmVxdWlyZWRHcm91cChlbGVtZW50
KCkpICYmICFlbGVtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5jaGVja2VkQnV0dG9uRm9y
R3JvdXAoZWxlbWVudCgpLT5uYW1lKCkpOworICAgIHJldHVybiBlbGVtZW50KCktPmlzSW5SZXF1
aXJlZFJhZGlvQnV0dG9uR3JvdXAoKSAmJiAhZWxlbWVudCgpLT5jaGVja2VkUmFkaW9CdXR0b25G
b3JHcm91cCgpOwogfQogCiBTdHJpbmcgUmFkaW9JbnB1dFR5cGU6OnZhbHVlTWlzc2luZ1RleHQo
KSBjb25zdApAQCAtMTMwLDcgKzEzMCw3IEBAIGJvb2wgUmFkaW9JbnB1dFR5cGU6OmlzS2V5Ym9h
cmRGb2N1c2FibGUoKSBjb25zdAogICAgIH0KIAogICAgIC8vIEFsbG93IGtleWJvYXJkIGZvY3Vz
IGlmIHdlJ3JlIGNoZWNrZWQgb3IgaWYgbm90aGluZyBpbiB0aGUgZ3JvdXAgaXMgY2hlY2tlZC4K
LSAgICByZXR1cm4gZWxlbWVudCgpLT5jaGVja2VkKCkgfHwgIWVsZW1lbnQoKS0+Y2hlY2tlZFJh
ZGlvQnV0dG9ucygpLmNoZWNrZWRCdXR0b25Gb3JHcm91cChlbGVtZW50KCktPm5hbWUoKSk7Cisg
ICAgcmV0dXJuIGVsZW1lbnQoKS0+Y2hlY2tlZCgpIHx8ICFlbGVtZW50KCktPmNoZWNrZWRSYWRp
b0J1dHRvbkZvckdyb3VwKCk7CiB9CiAKIGJvb2wgUmFkaW9JbnB1dFR5cGU6OnNob3VsZFNlbmRD
aGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKQpAQCAtMTUyLDcgKzE1Miw3IEBAIFBhc3NP
d25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPiBSYWRpb0lucHV0VHlwZTo6d2lsbERpc3BhdGNoQ2xp
Y2soKQogICAgIE93blB0cjxDbGlja0hhbmRsaW5nU3RhdGU+IHN0YXRlID0gYWRvcHRQdHIobmV3
IENsaWNrSGFuZGxpbmdTdGF0ZSk7CiAKICAgICBzdGF0ZS0+Y2hlY2tlZCA9IGVsZW1lbnQoKS0+
Y2hlY2tlZCgpOwotICAgIHN0YXRlLT5jaGVja2VkUmFkaW9CdXR0b24gPSBlbGVtZW50KCktPmNo
ZWNrZWRSYWRpb0J1dHRvbnMoKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAoZWxlbWVudCgpLT5uYW1l
KCkpOworICAgIHN0YXRlLT5jaGVja2VkUmFkaW9CdXR0b24gPSBlbGVtZW50KCktPmNoZWNrZWRS
YWRpb0J1dHRvbkZvckdyb3VwKCk7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgc3RhdGUtPmlu
ZGV0ZXJtaW5hdGUgPSBlbGVtZW50KCktPmluZGV0ZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOGMxODYy
ZTIzY2U5YjRhZjMwOWJjYWZmMjBiNjZmMTM2NWRjNDEyLi5iNWE1NGQ0MjA4ODU3MTY1Yzk3MDQy
NGE4ZGYyYTkxYmE5YzcwZTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTUgIEFk
YW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgT3V0LW9mLWRvY3VtZW50
IHJhZGlvIGJ1dHRvbnMgc2hvdWxkIGJlIGdyb3VwZWQgd2hlbiBhc3NvY2lhdGVkIHdpdGggYSBm
b3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTI2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgICogZmFzdC9m
b3Jtcy9yYWRpby9yYWRpby1ncm91cC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3Jt
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3JvdXAuaHRt
bDogVXBkYXRlZCB0byBtYXRjaCBuZXcgYmVoYXZpb3IuCisKIDIwMTItMDMtMTUgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgRW5hYmxlIGFuaW1W
YWwgc3VwcG9ydCBmb3IgU1ZHTnVtYmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3JhZGlvL3JhZGlvLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvcmFkaW8vcmFkaW8tZ3JvdXAtZXhwZWN0ZWQudHh0CmluZGV4IDRiMGIzYzU1NDA1OGM4OTEy
NWYyNDkwMTlkOTFmYWVhZWJjOTk3Y2MuLmJhNzA4OTVmZTA4NTkyMzk4YzMwMGViOTk1MmM4Zjcz
YjMxOTU2OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFkaW8t
Z3JvdXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFk
aW8tZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC00NSw3ICs0NSw3IEBAIEFkZGluZyB0aGUgb3JwaGFu
IHRyZWUgdG8gYSBkb2N1bWVudDoKIFBBU1Mgb3JwaGFuRGl2LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbnB1dCIpWzBdLmNoZWNrZWQgaXMgZmFsc2UKIFBBU1Mgb3JwaGFuRGl2LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzFdLmNoZWNrZWQgaXMgdHJ1ZQogUGFyc2luZyBhbiBvcnBoYW4g
Zm9ybToKLVBBU1Mgb3JwaGFuRGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmNo
ZWNrZWQgaXMgdHJ1ZQorUEFTUyBvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0
IilbMF0uY2hlY2tlZCBpcyBmYWxzZQogUEFTUyBvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0IilbMV0uY2hlY2tlZCBpcyB0cnVlCiAKIE1vdmluZyBhIHJhZGlvIGJ1dHRvbiB0
byBhbm90aGVyIERvY3VtZW50OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
YWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3JvdXAtaW4tZGV0YWNoZWQtZm9ybS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQwMDhlZDE4N2I1ZGYyODMzOTZkNDEzMTg5MWJkMTViNjA1OTQ0
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFkaW8t
Z3JvdXAtaW4tZGV0YWNoZWQtZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUmFk
aW8gYnV0dG9ucyB3aXRoaW4gdGhlIHNhbWUgZm9ybSBvdXRzaWRlIGEgZG9jdW1lbnQgc2hvdWxk
IHN0aWxsIGJlIHVwZGF0ZWQgYXBwcm9wcmlhdGVseSB3aGVuIG9uZSBvZiB0aGVtIGlzIGNoZWNr
ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJhZGlvMS5jaGVja2Vk
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91
cC1pbi1kZXRhY2hlZC1mb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JhZGlvL3Jh
ZGlvLWdyb3VwLWluLWRldGFjaGVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjRiYmU2NDFiNjFk
NDk2NTg3OTUzMGUyYjhkMmUxMWJhZjg2MWY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC1pbi1kZXRhY2hlZC1mb3JtLmh0bWwKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
UmFkaW8gYnV0dG9ucyB3aXRoaW4gdGhlIHNhbWUgZm9ybSBvdXRzaWRlIGEgZG9jdW1lbnQgc2hv
dWxkIHN0aWxsIGJlIHVwZGF0ZWQgYXBwcm9wcmlhdGVseSB3aGVuIG9uZSBvZiB0aGVtIGlzIGNo
ZWNrZWQuJyk7CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOwor
dmFyIHJhZGlvMSA9IGZvcm0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKSk7Cit2YXIgcmFkaW8yID0gZm9ybS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpbnB1dCcpKTsKK3JhZGlvMS50eXBlID0gcmFkaW8yLnR5cGUgPSAncmFkaW8nOworcmFk
aW8xLm5hbWUgPSByYWRpbzIubmFtZSA9ICdwcmVmJzsKK3JhZGlvMS5jaGVja2VkID0gdHJ1ZTsK
K3JhZGlvMi5jaGVja2VkID0gdHJ1ZTsKK3Nob3VsZEJlRmFsc2UoJ3JhZGlvMS5jaGVja2VkJyk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8v
cmFkaW8tZ3JvdXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmFkaW8vcmFkaW8tZ3Jv
dXAuaHRtbAppbmRleCA5YzgwMGFhYzYwOGZjNWM1OGNmNTg1OGUyNDFiMWExNDIwYzQ1MzA4Li5j
ZTdmYWI5ZTkwMzRkOTcyNDZjMmM2Yjg4NWYzZmMxYTI1NGI3NTc2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3JhZGlvL3JhZGlvLWdyb3VwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC5odG1sCkBAIC0xMTQsNyArMTE0LDcgQEAg
c2hvdWxkQmVUcnVlKCdvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMV0u
Y2hlY2tlZCcpOwogZGVidWcoJ1BhcnNpbmcgYW4gb3JwaGFuIGZvcm06Jyk7CiBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKG9ycGhhbkRpdik7CiBvcnBoYW5EaXYuaW5uZXJIVE1MID0gJzxmb3Jt
PjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9bmFtZTMgY2hlY2tlZD48aW5wdXQgdHlwZT1yYWRpbyBu
YW1lPW5hbWUzIGNoZWNrZWQ+PC9mb3JtPic7Ci1zaG91bGRCZVRydWUoJ29ycGhhbkRpdi5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5jaGVja2VkJyk7CitzaG91bGRCZUZhbHNlKCdv
cnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uY2hlY2tlZCcpOwogc2hv
dWxkQmVUcnVlKCdvcnBoYW5EaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMV0uY2hl
Y2tlZCcpOwogCiBkZWJ1ZygnJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>