<?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>61231</bug_id>
          
          <creation_ts>2011-05-20 17:59:56 -0700</creation_ts>
          <short_desc>Move EventQueue&apos;s Document-specific methods to a subclass</short_desc>
          <delta_ts>2011-10-27 16:21:50 -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>DUPLICATE</resolution>
          <dup_id>57789</dup_id>
          
          <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>57789</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dimich</cc>
    
    <cc>levin</cc>
    
    <cc>mihaip</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407450</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 17:59:56 -0700</bug_when>
    <thetext>Move EventQueue&apos;s Document-specific methods to a subclass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407474</commentid>
    <comment_count>1</comment_count>
      <attachid>94307</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 19:47:11 -0700</bug_when>
    <thetext>Created attachment 94307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407475</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 19:51:56 -0700</bug_when>
    <thetext>Dave,

This is the refactoring we talked about around https://bugs.webkit.org/show_bug.cgi?id=57789#c8.  Could you take a look when you get a chance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407480</commentid>
    <comment_count>3</comment_count>
      <attachid>94307</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-20 20:07:53 -0700</bug_when>
    <thetext>Comment on attachment 94307
Patch

Attachment 94307 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8723329</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407484</commentid>
    <comment_count>4</comment_count>
      <attachid>94312</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 20:29:24 -0700</bug_when>
    <thetext>Created attachment 94312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407486</commentid>
    <comment_count>5</comment_count>
      <attachid>94307</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-05-20 20:44:44 -0700</bug_when>
    <thetext>Comment on attachment 94307
Patch

Attachment 94307 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8723332</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407495</commentid>
    <comment_count>6</comment_count>
      <attachid>94316</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 21:34:49 -0700</bug_when>
    <thetext>Created attachment 94316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407497</commentid>
    <comment_count>7</comment_count>
      <attachid>94312</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-05-20 21:59:06 -0700</bug_when>
    <thetext>Comment on attachment 94312
Patch

Attachment 94312 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8718689</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407502</commentid>
    <comment_count>8</comment_count>
      <attachid>94320</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-20 22:28:13 -0700</bug_when>
    <thetext>Created attachment 94320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407722</commentid>
    <comment_count>9</comment_count>
      <attachid>94320</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-22 18:04:18 -0700</bug_when>
    <thetext>Comment on attachment 94320
Patch

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

&gt; Source/WebCore/dom/EventQueue.cpp:64
&gt; +            eventTarget-&gt;toDOMWindow()-&gt;dispatchEvent(event, /* PassRefPtr&lt;EventTarget&gt; */ 0);

Instead of putting in this comment and using an implicit conversion, just put in PassRefPtr&lt;EventTarget&gt;(). (We&apos;ll likely want to remove the implicit constructor anyway eventually like we did for OwnPtr.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408156</commentid>
    <comment_count>10</comment_count>
      <attachid>94462</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-05-23 12:34:38 -0700</bug_when>
    <thetext>Created attachment 94462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408494</commentid>
    <comment_count>11</comment_count>
      <attachid>94462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 17:19:08 -0700</bug_when>
    <thetext>Comment on attachment 94462
Patch

Rejecting attachment 94462 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-7&apos;, &apos;build&apos;...&quot; exit_code: 2

Last 500 characters of output:
E_APP_SUPPORT_DIR /Developer/Library/Xcode
    setenv XCODE_VERSION_ACTUAL 0322
    setenv XCODE_VERSION_MAJOR 0300
    setenv XCODE_VERSION_MINOR 0320
    setenv YACC /Developer/usr/bin/yacc
    /bin/sh -c /mnt/git/webkit-commit-queue/WebKitBuild/WebCore.build/Debug/WebCore.build/Script-5DF50887116F3077005202AB.sh

** BUILD FAILED **


The following build commands failed:
WebCore:
	Ld /mnt/git/webkit-commit-queue/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore normal x86_64
(1 failure)


Full output: http://queues.webkit.org/results/8729329</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408503</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-23 17:29:30 -0700</bug_when>
    <thetext>Undefined symbols:
  &quot;__ZN7WebCore18DocumentEventQueue28enqueueOrDispatchScrollEventEN3WTF10PassRefPtrINS_4NodeEEENS0_21ScrollEventTargetTypeE&quot;, referenced from:
      __ZN7WebCore12EventHandler15sendScrollEventEv in EventHandler.o
      __ZN7WebCore11RenderLayer8scrollToEii in RenderLayer.o
      __ZN7WebCore13RenderListBox8scrollToEi in RenderListBox.o
  &quot;__ZN7WebCore18DocumentEventQueue6createEPNS_22ScriptExecutionContextE&quot;, referenced from:
      __ZN7WebCore8DocumentC1EPNS_5FrameERKNS_4KURLEbb in Document.o
      __ZN7WebCore8DocumentC2EPNS_5FrameERKNS_4KURLEbb in Document.o
ld: symbol(s) not found
collect2: ld returned 1 exit status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492069</commentid>
    <comment_count>13</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-10-27 16:21:50 -0700</bug_when>
    <thetext>57789 took care of this

*** This bug has been marked as a duplicate of bug 57789 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94307</attachid>
            <date>2011-05-20 19:47:11 -0700</date>
            <delta_ts>2011-05-20 20:44:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61231-20110520194710.patch</filename>
            <type>text/plain</type>
            <size>19410</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li41ZmYxMmVkOWNlYzE5ODAxYWY2ZDUyMzdiY2NiZWE3
NWJlNjY5MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjAgIERhdmlk
IEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRXZlbnRRdWV1ZSdzIERvY3VtZW50LXNwZWNp
ZmljIG1ldGhvZHMgdG8gYSBzdWJjbGFzcyBpbgorICAgICAgICBwcmVwYXJhdGlvbiBmb3IgbWFr
aW5nIEV2ZW50UXVldWUgYXZhaWxhYmxlIGluIFdvcmtlckNvbnRleHQuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZXZlbnRRdWV1ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVu
dFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2
ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1l
bnRFdmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6Y2Fu
Y2VsUXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6
cmVtb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1
ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1
ZXVlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmguCisgICAg
ICAgICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6
cmVtb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVk
RXZlbnRzKToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZFNjcm9s
bEV2ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzY3JvbGxU
byk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICogc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoK
KwogMjAxMS0wNS0yMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYWUw
NWVjZDIwODA2ODNmZDA3ODA1OTZkMWZhMDdiMTg2NDUxMzA0Zi4uMmNlMmYwMGI5MGMzNDAzZmVi
N2Q1MDRhMWNjMWEyOGJiYzQ1MzdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQ0OCw2ICsyNDQ4
LDggQEAKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgnLAogICAgICAgICAgICAgJ2Rv
bS9Eb2N1bWVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3Bw
JywKKyAgICAgICAgICAgICdkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgnLAogICAgICAgICAgICAg
J2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDhiNzNjZWI3YmYyMjVhNDljMTNmNGNj
YjM3MzdiMmU4MTRkNDZkZTQuLjFlZGRlYThkZWY3NTBmZjEzZTIxYWMxMzRmYWVlOWIyM2Y5YjNi
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgpAQCAtNjIsNyArNjMs
NiBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIKQEAgLTQwOCw3ICs0MDgsNyBAQCBEb2N1
bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRN
TCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3VzZXNWaWV3U291cmNlU3R5bGVzKGZhbHNlKQogICAg
ICwgbV9zYXdFbGVtZW50c0luS25vd25OYW1lc3BhY2VzKGZhbHNlKQogICAgICwgbV91c2luZ0dl
b2xvY2F0aW9uKGZhbHNlKQotICAgICwgbV9ldmVudFF1ZXVlKEV2ZW50UXVldWU6OmNyZWF0ZSh0
aGlzKSkKKyAgICAsIG1fZXZlbnRRdWV1ZShEb2N1bWVudEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlz
KSkKICAgICAsIG1fd2Vha1JlZmVyZW5jZShEb2N1bWVudFdlYWtSZWZlcmVuY2U6OmNyZWF0ZSh0
aGlzKSkKICAgICAsIG1faWRBdHRyaWJ1dGVOYW1lKGlkQXR0cikKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDM2MmM0NTgyYzcyOGZjOTY1MjExZjEx
MjY3ZTRlOGE1MTM3ZmY4NTkuLjA2NTZmZTEwNWYxNzI4ODUwMDIxNjc4MzI2YjhkY2NmNTc2MTdm
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBDaGFyYWN0ZXJEYXRhOwogY2xhc3MgQ29tbWVudDsKIGNs
YXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIERvY3VtZW50RXZlbnRRdWV1ZTsKIGNs
YXNzIERPTUltcGxlbWVudGF0aW9uOwogY2xhc3MgRE9NU2VsZWN0aW9uOwogY2xhc3MgRE9NV2lu
ZG93OwpAQCAtNzgsNyArNzksNiBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgRW50aXR5UmVmZXJl
bmNlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwotY2xhc3MgRXZlbnRRdWV1
ZTsKIGNsYXNzIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJh
bWVWaWV3OwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5xdWV1ZVBh
Z2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsKICAgICB2b2lkIGVucXVldWVI
YXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJM
KTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBzdGF0ZU9iamVjdCk7Ci0gICAgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZS5nZXQoKTsgfQorICAgIERvY3VtZW50RXZlbnRRdWV1
ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZS5nZXQoKTsgfQogCiAg
ICAgdm9pZCBhZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKik7
CiAgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3Rl
bmVyKik7CkBAIC0xMzc0LDcgKzEzNzQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzaW5n
R2VvbG9jYXRpb247CiAKLSAgICBPd25QdHI8RXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAg
IE93blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKIAogICAgIFJlZlB0cjxE
b2N1bWVudFdlYWtSZWZlcmVuY2U+IG1fd2Vha1JlZmVyZW5jZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWY4NDk4MDZjNzE0YTkwOGRk
YjlhNjJkZGVjMDJhMGQwMmZlODFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgor
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBib29sIHNob3VsZERpc3BhdGNo
U2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NF
UlRfQVJHKGRvY3VtZW50LCBkb2N1bWVudCk7CisgICAgcmV0dXJuIGFwcGxpY2F0aW9uSXNTYWZh
cmkoKSAmJiAoZG9jdW1lbnQtPnVybCgpLnByb3RvY29sSXMoImZlZWQiKSB8fCBkb2N1bWVudC0+
dXJsKCkucHJvdG9jb2xJcygiZmVlZHMiKSk7Cit9CisKK1Bhc3NPd25QdHI8RG9jdW1lbnRFdmVu
dFF1ZXVlPiBEb2N1bWVudEV2ZW50UXVldWU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRG9jdW1lbnRFdmVudFF1ZXVl
KGNvbnRleHQpKTsKK30KKworRG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2ZW50UXVldWUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEV2ZW50UXVldWUoY29udGV4
dCkKK3sKK30KKworRG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1lbnRFdmVudFF1ZXVlKCkKK3sK
K30KKwordm9pZCBEb2N1bWVudEV2ZW50UXVldWU6OmNhbmNlbFF1ZXVlZEV2ZW50cygpCit7Cisg
ICAgRXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZlbnRzKCk7CisgICAgbV9ub2Rlc1dpdGhRdWV1
ZWRTY3JvbGxFdmVudHMuY2xlYXIoKTsKKworfQordm9pZCBEb2N1bWVudEV2ZW50UXVldWU6OnJl
bW92ZUV2ZW50KEV2ZW50KiBldmVudCkKK3sKKyAgICBFdmVudFF1ZXVlOjpyZW1vdmVFdmVudChl
dmVudCk7CisgICAgaWYgKE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQor
ICAgICAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5yZW1vdmUobm9kZSk7Cit9Cit2
b2lkIERvY3VtZW50RXZlbnRRdWV1ZTo6ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQYXNz
UmVmUHRyPE5vZGU+IHRhcmdldCwgU2Nyb2xsRXZlbnRUYXJnZXRUeXBlIHRhcmdldFR5cGUpCit7
CisgICAgLy8gUGVyIHRoZSBXM0MgQ1NTT00gVmlldyBNb2R1bGUsIHNjcm9sbCBldmVudHMgZmly
ZWQgYXQgdGhlIGRvY3VtZW50IHNob3VsZCBidWJibGUsIG90aGVycyBzaG91bGQgbm90LgorICAg
IGJvb2wgY2FuQnViYmxlID0gdGFyZ2V0VHlwZSA9PSBTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0
OworICAgIFJlZlB0cjxFdmVudD4gc2Nyb2xsRXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zY3JvbGxFdmVudCwgY2FuQnViYmxlLCBmYWxzZSAvKiBub24gY2FuY2VsbGVhYmxlICov
KTsKKyAgICAgCisgICAgaWYgKHNob3VsZERpc3BhdGNoU2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5
KHRhcmdldC0+ZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNj
cm9sbEV2ZW50LnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
IW1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLmFkZCh0YXJnZXQuZ2V0KCkpLnNlY29uZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2Nyb2xsRXZlbnQtPnNldFRhcmdldCh0YXJnZXQpOwor
ICAgIGVucXVldWVFdmVudChzY3JvbGxFdmVudC5yZWxlYXNlKCkpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE1NWY4NGE3ZTFkNjRh
YWM1ZTYxNDQ5YWUwZTA3ZmYzZDk1YTFkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisKKyNpZm5kZWYgRG9jdW1lbnRFdmVudFF1ZXVlX2gKKyNkZWZpbmUgRG9jdW1lbnRFdmVudFF1
ZXVlX2gKKworI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50RXZlbnRRdWV1ZSA6IHB1
YmxpYyBFdmVudFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBlbnVtIFNjcm9sbEV2ZW50VGFyZ2V0VHlw
ZSB7CisgICAgICAgIFNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQsCisgICAgICAgIFNjcm9sbEV2
ZW50RWxlbWVudFRhcmdldAorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxEb2N1bWVu
dEV2ZW50UXVldWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgfkRvY3Vt
ZW50RXZlbnRRdWV1ZSgpOworCisgICAgdm9pZCBlbnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50
KFBhc3NSZWZQdHI8Tm9kZT4sIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSk7CisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUV2ZW50KEV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRG9jdW1lbnRF
dmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBIYXNoU2V0PE5vZGUqPiBt
X25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50czsKKworfTsKKworfQorCisjZW5kaWYgLy8gRG9j
dW1lbnRFdmVudFF1ZXVlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1
ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcAppbmRleCBlZGYwNGY3
ZmU5MDExZjNmNWExMDQ3NTdjOTVlMWE1OGE5YzI0YTQzLi41NzM1ZWQ5OWI1MTIzYmEzNTlmNWMx
OGVhM2VhMmFkYmQ5NjBiYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRR
dWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwCkBAIC0zMSwx
NiArMzEsOSBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0gICAgCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVu
dFN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIEFTU0VSVF9BUkcoZG9j
dW1lbnQsIGRvY3VtZW50KTsKLSAgICByZXR1cm4gYXBwbGljYXRpb25Jc1NhZmFyaSgpICYmIChk
b2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVlZCIpIHx8IGRvY3VtZW50LT51cmwoKS5wcm90
b2NvbElzKCJmZWVkcyIpKTsKLX0KIAogUGFzc093blB0cjxFdmVudFF1ZXVlPiBFdmVudFF1ZXVl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKQEAgLTY4LDcgKzYx
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgRXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0ID0g
ZXZlbnQtPnRhcmdldCgpOwogICAgICAgICBpZiAoZXZlbnRUYXJnZXQtPnRvRE9NV2luZG93KCkp
Ci0gICAgICAgICAgICBldmVudFRhcmdldC0+dG9ET01XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgMCk7CisgICAgICAgICAgICBldmVudFRhcmdldC0+dG9ET01XaW5kb3coKS0+ZGlzcGF0
Y2hFdmVudChldmVudCwgLyogUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gKi8gMCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAg
ICB9CkBAIC0xMDIsOCArOTUsNiBAQCBwcml2YXRlOgogCiB2b2lkIEV2ZW50UXVldWU6OnJlbW92
ZUV2ZW50KEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoTm9kZSogbm9kZSA9IGV2ZW50LT50YXJn
ZXQoKS0+dG9Ob2RlKCkpCi0gICAgICAgIG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLnJl
bW92ZShub2RlKTsKICAgICBtX2V2ZW50VGFza01hcC5yZW1vdmUoZXZlbnQpOwogfQogCkBAIC0x
MTUsMjQgKzEwNiw2IEBAIHZvaWQgRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8
RXZlbnQ+IHBycEV2ZW50KQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2so
dGFzay5yZWxlYXNlKCkpOwogfQogCi12b2lkIEV2ZW50UXVldWU6OmVucXVldWVPckRpc3BhdGNo
U2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIFNjcm9sbEV2ZW50VGFyZ2V0VHlw
ZSB0YXJnZXRUeXBlKQotewotICAgIC8vIFBlciB0aGUgVzNDIENTU09NIFZpZXcgTW9kdWxlLCBz
Y3JvbGwgZXZlbnRzIGZpcmVkIGF0IHRoZSBkb2N1bWVudCBzaG91bGQgYnViYmxlLCBvdGhlcnMg
c2hvdWxkIG5vdC4KLSAgICBib29sIGNhbkJ1YmJsZSA9IHRhcmdldFR5cGUgPT0gU2Nyb2xsRXZl
bnREb2N1bWVudFRhcmdldDsKLSAgICBSZWZQdHI8RXZlbnQ+IHNjcm9sbEV2ZW50ID0gRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQsIGNhbkJ1YmJsZSwgZmFsc2UgLyogbm9u
IGNhbmNlbGxlYWJsZSAqLyk7Ci0gICAgIAotICAgIGlmIChzaG91bGREaXNwYXRjaFNjcm9sbEV2
ZW50U3luY2hyb25vdXNseSh0YXJnZXQtPmRvY3VtZW50KCkpKSB7Ci0gICAgICAgIHRhcmdldC0+
ZGlzcGF0Y2hFdmVudChzY3JvbGxFdmVudC5yZWxlYXNlKCkpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKCFtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5hZGQodGFyZ2V0
LmdldCgpKS5zZWNvbmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNjcm9sbEV2ZW50LT5zZXRU
YXJnZXQodGFyZ2V0KTsKLSAgICBlbnF1ZXVlRXZlbnQoc2Nyb2xsRXZlbnQucmVsZWFzZSgpKTsK
LX0KLQogYm9vbCBFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAg
RXZlbnREaXNwYXRjaGVyVGFzayogdGFzayA9IG1fZXZlbnRUYXNrTWFwLmdldChldmVudCk7CkBA
IC0xNTAsNyArMTIzLDYgQEAgdm9pZCBFdmVudFF1ZXVlOjpjYW5jZWxRdWV1ZWRFdmVudHMoKQog
ICAgICAgICB0YXNrLT5jYW5jZWwoKTsKICAgICB9CiAgICAgbV9ldmVudFRhc2tNYXAuY2xlYXIo
KTsKLSAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5jbGVhcigpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50UXVldWUuaAppbmRleCBiZThkYWZmMTQyNDNjNzAyOTE3MTI5MjBhYzY4ZWU0
NDhhYmJlMTA1Li5iOTdkZGEzOWFlMTQ3MzJhYjI4Yjc2MWExYTgyMWZhZjU2NzRjOGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFF1ZXVlLmgKQEAgLTM5LDI1ICszOSwxOSBAQCBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCiBjbGFzcyBFdmVudFF1ZXVlIHsKIHB1YmxpYzoKLSAgICBlbnVtIFNj
cm9sbEV2ZW50VGFyZ2V0VHlwZSB7Ci0gICAgICAgIFNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQs
Ci0gICAgICAgIFNjcm9sbEV2ZW50RWxlbWVudFRhcmdldAotICAgIH07CiAKICAgICBzdGF0aWMg
UGFzc093blB0cjxFdmVudFF1ZXVlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwot
ICAgIH5FdmVudFF1ZXVlKCk7CisgICAgdmlydHVhbCB+RXZlbnRRdWV1ZSgpOwogCiAgICAgdm9p
ZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwotICAgIHZvaWQgZW5xdWV1ZU9yRGlz
cGF0Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5vZGU+LCBTY3JvbGxFdmVudFRhcmdldFR5cGUp
OwogICAgIGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQqKTsKLSAgICB2b2lkIGNhbmNlbFF1ZXVlZEV2
ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxRdWV1ZWRFdmVudHMoKTsKIAotcHJpdmF0
ZToKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKICAg
ICBleHBsaWNpdCBFdmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIHZv
aWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKLQotICAgIEhhc2hTZXQ8Tm9kZSo+IG1fbm9kZXNXaXRo
UXVldWVkU2Nyb2xsRXZlbnRzOworcHJpdmF0ZToKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKICAgICBjbGFzcyBFdmVudERpc3BhdGNoZXJU
YXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDA3MTc5NmI3ZWQ4YTNj
ZmU0ZmY4Yzc3MDEwOWFjNGMyMWEyNmU2N2EuLmNhMTIyYjUzODA1YmI0ZGZlMTIzNDEwNmI4OGRh
MzkzNTlhYWVkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM0LDEx
ICszNCwxMSBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ1N0YXRlLmgiCiAjaW5j
bHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC0zMDM3LDcgKzMwMzcsNyBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2ZW50KCkKIHsKICAgICBzZXRGcmFtZVdhc1Njcm9s
bGVkQnlVc2VyKCk7CiAgICAgaWYgKG1fZnJhbWUtPnZpZXcoKSAmJiBtX2ZyYW1lLT5kb2N1bWVu
dCgpKQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVucXVldWVP
ckRpc3BhdGNoU2Nyb2xsRXZlbnQobV9mcmFtZS0+ZG9jdW1lbnQoKSwgRXZlbnRRdWV1ZTo6U2Ny
b2xsRXZlbnREb2N1bWVudFRhcmdldCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmV2
ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChtX2ZyYW1lLT5kb2N1bWVu
dCgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQpOwogfQog
CiB2b2lkIEV2ZW50SGFuZGxlcjo6c2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBjOTM3NjA0NjIzZTE5MDBiODhk
OTI2MjI1OWZiNzlmYzQyZDdhMzI2Li4wZDA0ZDExZjUwNGI2OWExMGY4NWM1Y2Q5YzY2NzE2N2Jh
YTdmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTUw
LDggKzUwLDggQEAKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVl
dWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgi
CiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFp
bnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCByZWN0Rm9yUmVwYWludCk7CiAKICAg
ICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KLSAgICByZW5kZXJlcigpLT5ub2Rl
KCktPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVu
dChyZW5kZXJlcigpLT5ub2RlKCksIEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxlbWVudFRhcmdl
dCk7CisgICAgcmVuZGVyZXIoKS0+bm9kZSgpLT5kb2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVu
cXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQocmVuZGVyZXIoKS0+bm9kZSgpLCBEb2N1bWVudEV2
ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxlbWVudFRhcmdldCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBzY3JvbGxU
b0FuY2hvciwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdu
bWVudCYgYWxpZ25ZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CmluZGV4IDBiN2UzY2M3ZDllZWIwNDhjZGVlOGQ5YWI3YjNjMzA3NTJhNzlkYWYuLjE1ZGRhZTRh
OWYzYmMzYWNlZDcyODUwMWYzMTZkZWEzZDU5NTQyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlICJDU1NG
b250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJF
dmVudEhhbmRsZXIuaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgpAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6c2Nyb2xsVG8oaW50
IG5ld09mZnNldCkKIAogICAgIG1faW5kZXhPZmZzZXQgPSBuZXdPZmZzZXQ7CiAgICAgcmVwYWlu
dCgpOwotICAgIG5vZGUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlT3JEaXNw
YXRjaFNjcm9sbEV2ZW50KG5vZGUoKSwgRXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFy
Z2V0KTsKKyAgICBub2RlKCktPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlz
cGF0Y2hTY3JvbGxFdmVudChub2RlKCksIERvY3VtZW50RXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRF
bGVtZW50VGFyZ2V0KTsKIH0KIAogaW50IFJlbmRlckxpc3RCb3g6Oml0ZW1IZWlnaHQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAppbmRleCBkNTRiOTY5YTFjZjZl
ZTYxYTQ2YjcwNDNjY2NkMWMwYzJjMTFjNjYzLi40YzE5OTBlODY1OTk1ZTMxMjQxZDkzMTM2OGUz
MWI3OTA4NzgzODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcApAQCAt
MjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAKICNpbmNsdWRlICJEb2N1
bWVudC5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50
UXVldWUuaCIKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBmOGQ4MThhMzUxZWExNzM4YThkZTFhZGU4MDEyNjBj
YmM4NDcwZjg0Li4zNDg5M2YwZWYzZjlhMmI5MTRlYTUzMDY0NzE4ZTU3ZWU2NTE1MWM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTMyLDEwICszMiwxMCBAQAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5j
bHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkN1cnNvcldpdGhWYWx1ZS5oIgogI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDcxMGJiNzYxNzMx
ZTZiYTRiMDBkNmVlZWVhNjIzNWU4MjAxOWRjYTEuLjM0OGFhZWVkNGQ3ODI5MTc1ZTZlYmRhNGE3
MDljYzgyMGMzNGE4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJh
bnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24u
Y3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2lu
Y2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1
ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNp
bmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIK
</data>
<flag name="commit-queue"
          id="87601"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94312</attachid>
            <date>2011-05-20 20:29:24 -0700</date>
            <delta_ts>2011-05-20 21:59:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61231-20110520202923.patch</filename>
            <type>text/plain</type>
            <size>20577</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li41ZmYxMmVkOWNlYzE5ODAxYWY2ZDUyMzdiY2NiZWE3
NWJlNjY5MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjAgIERhdmlk
IEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRXZlbnRRdWV1ZSdzIERvY3VtZW50LXNwZWNp
ZmljIG1ldGhvZHMgdG8gYSBzdWJjbGFzcyBpbgorICAgICAgICBwcmVwYXJhdGlvbiBmb3IgbWFr
aW5nIEV2ZW50UXVldWUgYXZhaWxhYmxlIGluIFdvcmtlckNvbnRleHQuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZXZlbnRRdWV1ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVu
dFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2
ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1l
bnRFdmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6Y2Fu
Y2VsUXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6
cmVtb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1
ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1
ZXVlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmguCisgICAg
ICAgICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6
cmVtb3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVk
RXZlbnRzKToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZFNjcm9s
bEV2ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzY3JvbGxU
byk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICogc3RvcmFn
ZS9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoK
KwogMjAxMS0wNS0yMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCAwOWRmZmUyNDQwMmI1MjQ5NWIzNzhkZDg3MWViNzhjZDhhZDUyZWQ3Li4yNmQ1
NTE5ZWEzODMyOWZiMGZiMGZiMDg0YzliNTI4ODRhMTk0NWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTExMDMsNiArMTEwMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFlMDVlY2QyMDgwNjgzZmQwNzgwNTk2ZDFmYTA3
YjE4NjQ1MTMwNGYuLjJjZTJmMDBiOTBjMzQwM2ZlYjdkNTA0YTFjYzFhMjhiYmM0NTM3YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTI0NDgsNiArMjQ0OCw4IEBACiAgICAgICAgICAgICAnZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKKyAgICAgICAg
ICAgICdkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0RvY3Vt
ZW50RXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwJywKICAgICAg
ICAgICAgICdkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDJj
NTI2MThlYjQyYjA4YTQ5ZDc4ODk5MjU1YjM4M2NmNTVjNzc1OTkuLjhlZjI3NmViMzA3MDRmZTk0
MGE2ODc0YTVjNmZiNjJmYzBmZDRiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NzQsNiArNDc0LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAg
XAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50
LmNwcCBcCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAog
ICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDhiNzNjZWI3YmYyMjVhNDljMTNmNGNjYjM3MzdiMmU4MTRkNDZkZTQuLjFlZGRlYThkZWY3
NTBmZjEzZTIxYWMxMzRmYWVlOWIyM2Y5YjNiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgpAQCAtNjIsNyArNjMsNiBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5o
IgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0j
aW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQu
aCIKQEAgLTQwOCw3ICs0MDgsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3VzZXNW
aWV3U291cmNlU3R5bGVzKGZhbHNlKQogICAgICwgbV9zYXdFbGVtZW50c0luS25vd25OYW1lc3Bh
Y2VzKGZhbHNlKQogICAgICwgbV91c2luZ0dlb2xvY2F0aW9uKGZhbHNlKQotICAgICwgbV9ldmVu
dFF1ZXVlKEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fZXZlbnRRdWV1ZShEb2N1
bWVudEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fd2Vha1JlZmVyZW5jZShEb2N1
bWVudFdlYWtSZWZlcmVuY2U6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1faWRBdHRyaWJ1dGVOYW1l
KGlkQXR0cikKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDM2MmM0NTgyYzcyOGZjOTY1MjExZjExMjY3ZTRlOGE1MTM3ZmY4NTkuLjA2NTZmZTEwNWYx
NzI4ODUwMDIxNjc4MzI2YjhkY2NmNTc2MTdmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02
Myw2ICs2Myw3IEBAIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBDaGFyYWN0
ZXJEYXRhOwogY2xhc3MgQ29tbWVudDsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2Ns
YXNzIERvY3VtZW50RXZlbnRRdWV1ZTsKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uOwogY2xhc3Mg
RE9NU2VsZWN0aW9uOwogY2xhc3MgRE9NV2luZG93OwpAQCAtNzgsNyArNzksNiBAQCBjbGFzcyBF
bGVtZW50OwogY2xhc3MgRW50aXR5UmVmZXJlbmNlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVu
dExpc3RlbmVyOwotY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNzIEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3OwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNp
c3RlbmNlKTsKICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBv
bGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2
ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCk7Ci0gICAg
RXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZS5nZXQo
KTsgfQorICAgIERvY3VtZW50RXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZXZlbnRRdWV1ZS5nZXQoKTsgfQogCiAgICAgdm9pZCBhZGRNZWRpYUNhblN0YXJ0TGlzdGVu
ZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0
TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKik7CkBAIC0xMzc0LDcgKzEzNzQsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX3VzaW5nR2VvbG9jYXRpb247CiAKLSAgICBPd25QdHI8RXZl
bnRRdWV1ZT4gbV9ldmVudFF1ZXVlOworICAgIE93blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IG1f
ZXZlbnRRdWV1ZTsKIAogICAgIFJlZlB0cjxEb2N1bWVudFdlYWtSZWZlcmVuY2U+IG1fd2Vha1Jl
ZmVyZW5jZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRR
dWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNWY4NDk4MDZjNzE0YTkwOGRkYjlhNjJkZGVjMDJhMGQwMmZlODFlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAg
LTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGlj
IGlubGluZSBib29sIHNob3VsZERpc3BhdGNoU2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5KERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlRfQVJHKGRvY3VtZW50LCBkb2N1bWVudCk7Cisg
ICAgcmV0dXJuIGFwcGxpY2F0aW9uSXNTYWZhcmkoKSAmJiAoZG9jdW1lbnQtPnVybCgpLnByb3Rv
Y29sSXMoImZlZWQiKSB8fCBkb2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVlZHMiKSk7Cit9
CisKK1Bhc3NPd25QdHI8RG9jdW1lbnRFdmVudFF1ZXVlPiBEb2N1bWVudEV2ZW50UXVldWU6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRG9jdW1lbnRFdmVudFF1ZXVlKGNvbnRleHQpKTsKK30KKworRG9jdW1lbnRFdmVu
dFF1ZXVlOjpEb2N1bWVudEV2ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKKyAgICA6IEV2ZW50UXVldWUoY29udGV4dCkKK3sKK30KKworRG9jdW1lbnRFdmVudFF1ZXVl
Ojp+RG9jdW1lbnRFdmVudFF1ZXVlKCkKK3sKK30KKwordm9pZCBEb2N1bWVudEV2ZW50UXVldWU6
OmNhbmNlbFF1ZXVlZEV2ZW50cygpCit7CisgICAgRXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZl
bnRzKCk7CisgICAgbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuY2xlYXIoKTsKKworfQor
dm9pZCBEb2N1bWVudEV2ZW50UXVldWU6OnJlbW92ZUV2ZW50KEV2ZW50KiBldmVudCkKK3sKKyAg
ICBFdmVudFF1ZXVlOjpyZW1vdmVFdmVudChldmVudCk7CisgICAgaWYgKE5vZGUqIG5vZGUgPSBl
dmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpKQorICAgICAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9s
bEV2ZW50cy5yZW1vdmUobm9kZSk7Cit9Cit2b2lkIERvY3VtZW50RXZlbnRRdWV1ZTo6ZW5xdWV1
ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgU2Nyb2xsRXZl
bnRUYXJnZXRUeXBlIHRhcmdldFR5cGUpCit7CisgICAgLy8gUGVyIHRoZSBXM0MgQ1NTT00gVmll
dyBNb2R1bGUsIHNjcm9sbCBldmVudHMgZmlyZWQgYXQgdGhlIGRvY3VtZW50IHNob3VsZCBidWJi
bGUsIG90aGVycyBzaG91bGQgbm90LgorICAgIGJvb2wgY2FuQnViYmxlID0gdGFyZ2V0VHlwZSA9
PSBTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0OworICAgIFJlZlB0cjxFdmVudD4gc2Nyb2xsRXZl
bnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCwgY2FuQnViYmxlLCBm
YWxzZSAvKiBub24gY2FuY2VsbGVhYmxlICovKTsKKyAgICAgCisgICAgaWYgKHNob3VsZERpc3Bh
dGNoU2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5KHRhcmdldC0+ZG9jdW1lbnQoKSkpIHsKKyAgICAg
ICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNjcm9sbEV2ZW50LnJlbGVhc2UoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRz
LmFkZCh0YXJnZXQuZ2V0KCkpLnNlY29uZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Nyb2xs
RXZlbnQtPnNldFRhcmdldCh0YXJnZXQpOworICAgIGVucXVldWVFdmVudChzY3JvbGxFdmVudC5y
ZWxlYXNlKCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGE1NWY4NGE3ZTFkNjRhYWM1ZTYxNDQ5YWUwZTA3ZmYzZDk1YTFkYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgRG9jdW1lbnRFdmVudFF1ZXVl
X2gKKyNkZWZpbmUgRG9jdW1lbnRFdmVudFF1ZXVlX2gKKworI2luY2x1ZGUgIkV2ZW50UXVldWUu
aCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50RXZlbnRRdWV1ZSA6IHB1YmxpYyBFdmVudFF1ZXVlIHsKK3B1YmxpYzoKKyAg
ICBlbnVtIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSB7CisgICAgICAgIFNjcm9sbEV2ZW50RG9jdW1l
bnRUYXJnZXQsCisgICAgICAgIFNjcm9sbEV2ZW50RWxlbWVudFRhcmdldAorICAgIH07CisKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CisgICAgfkRvY3VtZW50RXZlbnRRdWV1ZSgpOworCisgICAgdm9pZCBl
bnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4sIFNjcm9sbEV2ZW50
VGFyZ2V0VHlwZSk7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygpOworCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUV2ZW50KEV2ZW50Kik7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgRG9jdW1lbnRFdmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKKyAgICBIYXNoU2V0PE5vZGUqPiBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50czsK
KworfTsKKworfQorCisjZW5kaWYgLy8gRG9jdW1lbnRFdmVudFF1ZXVlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFF1ZXVlLmNwcAppbmRleCBlZGYwNGY3ZmU5MDExZjNmNWExMDQ3NTdjOTVlMWE1OGE5YzI0
YTQzLi41NzM1ZWQ5OWI1MTIzYmEzNTlmNWMxOGVhM2VhMmFkYmQ5NjBiYTg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50UXVldWUuY3BwCkBAIC0zMSwxNiArMzEsOSBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVk
ZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudFN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3Vt
ZW50KQotewotICAgIEFTU0VSVF9BUkcoZG9jdW1lbnQsIGRvY3VtZW50KTsKLSAgICByZXR1cm4g
YXBwbGljYXRpb25Jc1NhZmFyaSgpICYmIChkb2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVl
ZCIpIHx8IGRvY3VtZW50LT51cmwoKS5wcm90b2NvbElzKCJmZWVkcyIpKTsKLX0KIAogUGFzc093
blB0cjxFdmVudFF1ZXVlPiBFdmVudFF1ZXVlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKIHsKQEAgLTY4LDcgKzYxLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
RXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0ID0gZXZlbnQtPnRhcmdldCgpOwogICAgICAgICBpZiAo
ZXZlbnRUYXJnZXQtPnRvRE9NV2luZG93KCkpCi0gICAgICAgICAgICBldmVudFRhcmdldC0+dG9E
T01XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChldmVudCwgMCk7CisgICAgICAgICAgICBldmVudFRh
cmdldC0+dG9ET01XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChldmVudCwgLyogUGFzc1JlZlB0cjxF
dmVudFRhcmdldD4gKi8gMCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGV2ZW50VGFyZ2V0
LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICB9CkBAIC0xMDIsOCArOTUsNiBAQCBwcml2YXRl
OgogCiB2b2lkIEV2ZW50UXVldWU6OnJlbW92ZUV2ZW50KEV2ZW50KiBldmVudCkKIHsKLSAgICBp
ZiAoTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkpCi0gICAgICAgIG1fbm9k
ZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLnJlbW92ZShub2RlKTsKICAgICBtX2V2ZW50VGFza01h
cC5yZW1vdmUoZXZlbnQpOwogfQogCkBAIC0xMTUsMjQgKzEwNiw2IEBAIHZvaWQgRXZlbnRRdWV1
ZTo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHBycEV2ZW50KQogICAgIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2sodGFzay5yZWxlYXNlKCkpOwogfQogCi12b2lkIEV2
ZW50UXVldWU6OmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiB0
YXJnZXQsIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQotewotICAgIC8vIFBlciB0
aGUgVzNDIENTU09NIFZpZXcgTW9kdWxlLCBzY3JvbGwgZXZlbnRzIGZpcmVkIGF0IHRoZSBkb2N1
bWVudCBzaG91bGQgYnViYmxlLCBvdGhlcnMgc2hvdWxkIG5vdC4KLSAgICBib29sIGNhbkJ1YmJs
ZSA9IHRhcmdldFR5cGUgPT0gU2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldDsKLSAgICBSZWZQdHI8
RXZlbnQ+IHNjcm9sbEV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2Nyb2xsRXZl
bnQsIGNhbkJ1YmJsZSwgZmFsc2UgLyogbm9uIGNhbmNlbGxlYWJsZSAqLyk7Ci0gICAgIAotICAg
IGlmIChzaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50U3luY2hyb25vdXNseSh0YXJnZXQtPmRvY3Vt
ZW50KCkpKSB7Ci0gICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChzY3JvbGxFdmVudC5yZWxl
YXNlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX25vZGVzV2l0aFF1
ZXVlZFNjcm9sbEV2ZW50cy5hZGQodGFyZ2V0LmdldCgpKS5zZWNvbmQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHNjcm9sbEV2ZW50LT5zZXRUYXJnZXQodGFyZ2V0KTsKLSAgICBlbnF1ZXVlRXZl
bnQoc2Nyb2xsRXZlbnQucmVsZWFzZSgpKTsKLX0KLQogYm9vbCBFdmVudFF1ZXVlOjpjYW5jZWxF
dmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgRXZlbnREaXNwYXRjaGVyVGFzayogdGFzayA9IG1f
ZXZlbnRUYXNrTWFwLmdldChldmVudCk7CkBAIC0xNTAsNyArMTIzLDYgQEAgdm9pZCBFdmVudFF1
ZXVlOjpjYW5jZWxRdWV1ZWRFdmVudHMoKQogICAgICAgICB0YXNrLT5jYW5jZWwoKTsKICAgICB9
CiAgICAgbV9ldmVudFRhc2tNYXAuY2xlYXIoKTsKLSAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9s
bEV2ZW50cy5jbGVhcigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaAppbmRleCBiZThk
YWZmMTQyNDNjNzAyOTE3MTI5MjBhYzY4ZWU0NDhhYmJlMTA1Li5iOTdkZGEzOWFlMTQ3MzJhYjI4
Yjc2MWExYTgyMWZhZjU2NzRjOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmgKQEAgLTM5LDI1
ICszOSwxOSBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBFdmVudFF1
ZXVlIHsKIHB1YmxpYzoKLSAgICBlbnVtIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSB7Ci0gICAgICAg
IFNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQsCi0gICAgICAgIFNjcm9sbEV2ZW50RWxlbWVudFRh
cmdldAotICAgIH07CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxFdmVudFF1ZXVlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotICAgIH5FdmVudFF1ZXVlKCk7CisgICAgdmlydHVh
bCB+RXZlbnRRdWV1ZSgpOwogCiAgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4pOwotICAgIHZvaWQgZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5v
ZGU+LCBTY3JvbGxFdmVudFRhcmdldFR5cGUpOwogICAgIGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQq
KTsKLSAgICB2b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxRdWV1ZWRFdmVudHMoKTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKICAgICBleHBsaWNpdCBFdmVudFF1ZXVlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIHZvaWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKLQotICAg
IEhhc2hTZXQ8Tm9kZSo+IG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzOworcHJpdmF0ZToK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAK
ICAgICBjbGFzcyBFdmVudERpc3BhdGNoZXJUYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDA3MTc5NmI3ZWQ4YTNjZmU0ZmY4Yzc3MDEwOWFjNGMyMWEyNmU2N2EuLmNh
MTIyYjUzODA1YmI0ZGZlMTIzNDEwNmI4OGRhMzkzNTlhYWVkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTM0LDExICszNCwxMSBAQAogI2luY2x1ZGUgIkN1cnNvci5o
IgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRHJhZ1N0YXRlLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50
LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgi
CkBAIC0zMDM3LDcgKzMwMzcsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2ZW50
KCkKIHsKICAgICBzZXRGcmFtZVdhc1Njcm9sbGVkQnlVc2VyKCk7CiAgICAgaWYgKG1fZnJhbWUt
PnZpZXcoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5ldmVudFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQobV9mcmFtZS0+
ZG9jdW1lbnQoKSwgRXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldCk7CisgICAg
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hT
Y3JvbGxFdmVudChtX2ZyYW1lLT5kb2N1bWVudCgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9s
bEV2ZW50RG9jdW1lbnRUYXJnZXQpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6c2V0RnJhbWVX
YXNTY3JvbGxlZEJ5VXNlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAppbmRleCBjOTM3NjA0NjIzZTE5MDBiODhkOTI2MjI1OWZiNzlmYzQyZDdhMzI2Li4wZDA0ZDEx
ZjUwNGI2OWExMGY4NWM1Y2Q5YzY2NzE2N2JhYTdmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTUwLDggKzUwLDggQEAKICNpbmNsdWRlICJDU1NTdHls
ZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIu
aCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC0x
Mzg0LDcgKzEzODQsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkp
CiAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCByZWN0Rm9yUmVwYWludCk7CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBl
dmVudC4KLSAgICByZW5kZXJlcigpLT5ub2RlKCktPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+
ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChyZW5kZXJlcigpLT5ub2RlKCksIEV2ZW50UXVl
dWU6OlNjcm9sbEV2ZW50RWxlbWVudFRhcmdldCk7CisgICAgcmVuZGVyZXIoKS0+bm9kZSgpLT5k
b2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQocmVu
ZGVyZXIoKS0+bm9kZSgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxlbWVudFRh
cmdldCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3Qg
SW50UmVjdCYgcmVjdCwgYm9vbCBzY3JvbGxUb0FuY2hvciwgY29uc3QgU2Nyb2xsQWxpZ25tZW50
JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDBiN2UzY2M3ZDllZWIwNDhjZGVlOGQ5
YWI3YjNjMzA3NTJhNzlkYWYuLjE1ZGRhZTRhOWYzYmMzYWNlZDcyODUwMWYzMTZkZWEzZDU5NTQy
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTM0
LDggKzM0LDggQEAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NT
dHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKLSNpbmNsdWRlICJFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQg
UmVuZGVyTGlzdEJveDo6c2Nyb2xsVG8oaW50IG5ld09mZnNldCkKIAogICAgIG1faW5kZXhPZmZz
ZXQgPSBuZXdPZmZzZXQ7CiAgICAgcmVwYWludCgpOwotICAgIG5vZGUoKS0+ZG9jdW1lbnQoKS0+
ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KG5vZGUoKSwgRXZlbnRR
dWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0KTsKKyAgICBub2RlKCktPmRvY3VtZW50KCkt
PmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChub2RlKCksIERvY3Vt
ZW50RXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0KTsKIH0KIAogaW50IFJlbmRl
ckxpc3RCb3g6Oml0ZW1IZWlnaHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlLmNwcAppbmRleCBkNTRiOTY5YTFjZjZlZTYxYTQ2YjcwNDNjY2NkMWMwYzJjMTFjNjYzLi40
YzE5OTBlODY1OTk1ZTMxMjQxZDkzMTM2OGUzMWI3OTA4NzgzODkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIklEQkRh
dGFiYXNlLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUu
aCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJBbnkuaCIK
ICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZUVycm9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBmOGQ4
MThhMzUxZWExNzM4YThkZTFhZGU4MDEyNjBjYmM4NDcwZjg0Li4zNDg5M2YwZWYzZjlhMmI5MTRl
YTUzMDY0NzE4ZTU3ZWU2NTE1MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5j
cHAKQEAgLTMyLDEwICszMiwxMCBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IklEQkN1cnNvcldpdGhWYWx1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNh
Y3Rpb24uY3BwCmluZGV4IDcxMGJiNzYxNzMxZTZiYTRiMDBkNmVlZWVhNjIzNWU4MjAxOWRjYTEu
LjM0OGFhZWVkNGQ3ODI5MTc1ZTZlYmRhNGE3MDljYzgyMGMzNGE4NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCi0jaW5j
bHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIK
</data>
<flag name="commit-queue"
          id="87607"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94316</attachid>
            <date>2011-05-20 21:34:49 -0700</date>
            <delta_ts>2011-05-20 22:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61231-20110520213448.patch</filename>
            <type>text/plain</type>
            <size>22714</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIxNTI1
MTU4NGQyOTdiNmQ5NTllYTA5YTFlYzBiNjhlZjRmNGIxZi4uN2VkNjc4N2YyNjAyMTdhOGQ5ODA4
MWFlNzMwNjE5MTQyZmYzN2EyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU0OSw2ICs1NDks
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5jcHAKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKICAgICBkb20vRG9j
dW1lbnQuY3BwCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKICAgICBkb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogICAg
IGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlhZmRi
OWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li41ZmYxMmVkOWNlYzE5ODAxYWY2ZDUyMzdiY2NiZWE3NWJl
NjY5MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjAgIERhdmlkIEdy
b2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRXZlbnRRdWV1ZSdzIERvY3VtZW50LXNwZWNpZmlj
IG1ldGhvZHMgdG8gYSBzdWJjbGFzcyBpbgorICAgICAgICBwcmVwYXJhdGlvbiBmb3IgbWFraW5n
IEV2ZW50UXVldWUgYXZhaWxhYmxlIGluIFdvcmtlckNvbnRleHQuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpE
b2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZXZlbnRRdWV1ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudFN5
bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2ZW50
UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1lbnRF
dmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6Y2FuY2Vs
UXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1ZXVl
T3JEaXNwYXRjaFNjcm9sbEV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1ZXVl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmguCisgICAgICAg
ICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZl
bnRzKToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzY3JvbGxUbyk6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICogc3RvcmFnZS9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoKKwog
MjAxMS0wNS0yMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCAwOWRmZmUyNDQwMmI1MjQ5NWIzNzhkZDg3MWViNzhjZDhhZDUyZWQ3Li4yNmQ1NTE5
ZWEzODMyOWZiMGZiMGZiMDg0YzliNTI4ODRhMTk0NWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTExMDMsNiArMTEwMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFlMDVlY2QyMDgwNjgzZmQwNzgwNTk2ZDFmYTA3YjE4
NjQ1MTMwNGYuLjJjZTJmMDBiOTBjMzQwM2ZlYjdkNTA0YTFjYzFhMjhiYmM0NTM3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTI0NDgsNiArMjQ0OCw4IEBACiAgICAgICAgICAgICAnZG9tL0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKKyAgICAgICAgICAg
ICdkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0RvY3VtZW50
RXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDJjNTI2
MThlYjQyYjA4YTQ5ZDc4ODk5MjU1YjM4M2NmNTVjNzc1OTkuLjhlZjI3NmViMzA3MDRmZTk0MGE2
ODc0YTVjNmZiNjJmYzBmZDRiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NzQsNiArNDc0LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAgXAog
ICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50LmNw
cCBcCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogICAg
IGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODdjMzg2Mjc1MTA0MGNhOTE5NTEwNzY5ZDA0Njc0
ZTJmZTY4MWY0OC4uZjlmNjVjNTQwZmM3YzMzNTM1NzVkZTA1MTQyN2RmMTY0ZDYwZGEyMiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzMzU0
LDYgKzQzMzU0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudEV2ZW50UXVldWUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRG9jdW1lbnRFdmVu
dFF1ZXVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxEb2N1bWVudEZyYWdtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA4YjczY2ViN2JmMjI1YTQ5YzEzZjRjY2Iz
NzM3YjJlODE0ZDQ2ZGU0Li4xZWRkZWE4ZGVmNzUwZmYxM2UyMWFjMTM0ZmFlZTliMjNmOWIzYmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKQEAgLTYyLDcgKzYzLDYg
QEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCkBAIC00MDgsNyArNDA4LDcgQEAgRG9jdW1l
bnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUws
IGJvb2wgaXNIVE1MKQogICAgICwgbV91c2VzVmlld1NvdXJjZVN0eWxlcyhmYWxzZSkKICAgICAs
IG1fc2F3RWxlbWVudHNJbktub3duTmFtZXNwYWNlcyhmYWxzZSkKICAgICAsIG1fdXNpbmdHZW9s
b2NhdGlvbihmYWxzZSkKLSAgICAsIG1fZXZlbnRRdWV1ZShFdmVudFF1ZXVlOjpjcmVhdGUodGhp
cykpCisgICAgLCBtX2V2ZW50UXVldWUoRG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykp
CiAgICAgLCBtX3dlYWtSZWZlcmVuY2UoRG9jdW1lbnRXZWFrUmVmZXJlbmNlOjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX2lkQXR0cmlidXRlTmFtZShpZEF0dHIpCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzNjJjNDU4MmM3MjhmYzk2NTIxMWYxMTI2
N2U0ZThhNTEzN2ZmODU5Li4wNjU2ZmUxMDVmMTcyODg1MDAyMTY3ODMyNmI4ZGNjZjU3NjE3ZjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0OwogY2xhc3MgQ2hhcmFjdGVyRGF0YTsKIGNsYXNzIENvbW1lbnQ7CiBjbGFz
cyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBEb2N1bWVudEV2ZW50UXVldWU7CiBjbGFz
cyBET01JbXBsZW1lbnRhdGlvbjsKIGNsYXNzIERPTVNlbGVjdGlvbjsKIGNsYXNzIERPTVdpbmRv
dzsKQEAgLTc4LDcgKzc5LDYgQEAgY2xhc3MgRWxlbWVudDsKIGNsYXNzIEVudGl0eVJlZmVyZW5j
ZTsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKLWNsYXNzIEV2ZW50UXVldWU7
CiBjbGFzcyBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1l
VmlldzsKQEAgLTEwNDMsNyArMTA0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVucXVldWVQYWdl
c2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7CiAgICAgdm9pZCBlbnF1ZXVlSGFz
aGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCk7
CiAgICAgdm9pZCBlbnF1ZXVlUG9wc3RhdGVFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc3RhdGVPYmplY3QpOwotICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUoKSBjb25z
dCB7IHJldHVybiBtX2V2ZW50UXVldWUuZ2V0KCk7IH0KKyAgICBEb2N1bWVudEV2ZW50UXVldWUq
IGV2ZW50UXVldWUoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UXVldWUuZ2V0KCk7IH0KIAogICAg
IHZvaWQgYWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciopOwog
ICAgIHZvaWQgcmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ciopOwpAQCAtMTM3NCw3ICsxMzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV91c2luZ0dl
b2xvY2F0aW9uOwogCi0gICAgT3duUHRyPEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKKyAgICBP
d25QdHI8RG9jdW1lbnRFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7CiAKICAgICBSZWZQdHI8RG9j
dW1lbnRXZWFrUmVmZXJlbmNlPiBtX3dlYWtSZWZlcmVuY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVmODQ5ODA2YzcxNGE5MDhkZGI5
YTYyZGRlYzAyYTBkMDJmZTgxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKKwor
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGREaXNwYXRjaFNj
cm9sbEV2ZW50U3luY2hyb25vdXNseShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJU
X0FSRyhkb2N1bWVudCwgZG9jdW1lbnQpOworICAgIHJldHVybiBhcHBsaWNhdGlvbklzU2FmYXJp
KCkgJiYgKGRvY3VtZW50LT51cmwoKS5wcm90b2NvbElzKCJmZWVkIikgfHwgZG9jdW1lbnQtPnVy
bCgpLnByb3RvY29sSXMoImZlZWRzIikpOworfQorCitQYXNzT3duUHRyPERvY3VtZW50RXZlbnRR
dWV1ZT4gRG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERvY3VtZW50RXZlbnRRdWV1ZShj
b250ZXh0KSk7Cit9CisKK0RvY3VtZW50RXZlbnRRdWV1ZTo6RG9jdW1lbnRFdmVudFF1ZXVlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBFdmVudFF1ZXVlKGNvbnRleHQp
Cit7Cit9CisKK0RvY3VtZW50RXZlbnRRdWV1ZTo6fkRvY3VtZW50RXZlbnRRdWV1ZSgpCit7Cit9
CisKK3ZvaWQgRG9jdW1lbnRFdmVudFF1ZXVlOjpjYW5jZWxRdWV1ZWRFdmVudHMoKQoreworICAg
IEV2ZW50UXVldWU6OmNhbmNlbFF1ZXVlZEV2ZW50cygpOworICAgIG1fbm9kZXNXaXRoUXVldWVk
U2Nyb2xsRXZlbnRzLmNsZWFyKCk7CisKK30KK3ZvaWQgRG9jdW1lbnRFdmVudFF1ZXVlOjpyZW1v
dmVFdmVudChFdmVudCogZXZlbnQpCit7CisgICAgRXZlbnRRdWV1ZTo6cmVtb3ZlRXZlbnQoZXZl
bnQpOworICAgIGlmIChOb2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSkKKyAg
ICAgICAgbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMucmVtb3ZlKG5vZGUpOworfQordm9p
ZCBEb2N1bWVudEV2ZW50UXVldWU6OmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiB0YXJnZXQsIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQorewor
ICAgIC8vIFBlciB0aGUgVzNDIENTU09NIFZpZXcgTW9kdWxlLCBzY3JvbGwgZXZlbnRzIGZpcmVk
IGF0IHRoZSBkb2N1bWVudCBzaG91bGQgYnViYmxlLCBvdGhlcnMgc2hvdWxkIG5vdC4KKyAgICBi
b29sIGNhbkJ1YmJsZSA9IHRhcmdldFR5cGUgPT0gU2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldDsK
KyAgICBSZWZQdHI8RXZlbnQ+IHNjcm9sbEV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuc2Nyb2xsRXZlbnQsIGNhbkJ1YmJsZSwgZmFsc2UgLyogbm9uIGNhbmNlbGxlYWJsZSAqLyk7
CisgICAgIAorICAgIGlmIChzaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50U3luY2hyb25vdXNseSh0
YXJnZXQtPmRvY3VtZW50KCkpKSB7CisgICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChzY3Jv
bGxFdmVudC5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFt
X25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5hZGQodGFyZ2V0LmdldCgpKS5zZWNvbmQpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNjcm9sbEV2ZW50LT5zZXRUYXJnZXQodGFyZ2V0KTsKKyAg
ICBlbnF1ZXVlRXZlbnQoc2Nyb2xsRXZlbnQucmVsZWFzZSgpKTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNTVmODRhN2UxZDY0YWFj
NWU2MTQ0OWFlMGUwN2ZmM2Q5NWExZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLwor
CisjaWZuZGVmIERvY3VtZW50RXZlbnRRdWV1ZV9oCisjZGVmaW5lIERvY3VtZW50RXZlbnRRdWV1
ZV9oCisKKyNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudEV2ZW50UXVldWUgOiBwdWJs
aWMgRXZlbnRRdWV1ZSB7CitwdWJsaWM6CisgICAgZW51bSBTY3JvbGxFdmVudFRhcmdldFR5cGUg
eworICAgICAgICBTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0LAorICAgICAgICBTY3JvbGxFdmVu
dEVsZW1lbnRUYXJnZXQKKyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8RG9jdW1lbnRF
dmVudFF1ZXVlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIH5Eb2N1bWVu
dEV2ZW50UXVldWUoKTsKKworICAgIHZvaWQgZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQ
YXNzUmVmUHRyPE5vZGU+LCBTY3JvbGxFdmVudFRhcmdldFR5cGUpOworICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWxRdWV1ZWRFdmVudHMoKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVFdmVudChFdmVudCopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERvY3VtZW50RXZl
bnRRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgSGFzaFNldDxOb2RlKj4gbV9u
b2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHM7CisKK307CisKK30KKworI2VuZGlmIC8vIERvY3Vt
ZW50RXZlbnRRdWV1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAKaW5kZXggZWRmMDRmN2Zl
OTAxMWYzZjVhMTA0NzU3Yzk1ZTFhNThhOWMyNGE0My4uNTczNWVkOTliNTEyM2JhMzU5ZjVjMThl
YTNlYTJhZGJkOTYwYmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVl
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcApAQCAtMzEsMTYg
KzMxLDkgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotc3RhdGljIGlubGluZSBib29sIHNob3VsZERpc3BhdGNoU2Nyb2xsRXZlbnRT
eW5jaHJvbm91c2x5KERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBBU1NFUlRfQVJHKGRvY3Vt
ZW50LCBkb2N1bWVudCk7Ci0gICAgcmV0dXJuIGFwcGxpY2F0aW9uSXNTYWZhcmkoKSAmJiAoZG9j
dW1lbnQtPnVybCgpLnByb3RvY29sSXMoImZlZWQiKSB8fCBkb2N1bWVudC0+dXJsKCkucHJvdG9j
b2xJcygiZmVlZHMiKSk7Ci19CiAKIFBhc3NPd25QdHI8RXZlbnRRdWV1ZT4gRXZlbnRRdWV1ZTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC02OCw3ICs2MSw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEV2ZW50VGFyZ2V0KiBldmVudFRhcmdldCA9IGV2
ZW50LT50YXJnZXQoKTsKICAgICAgICAgaWYgKGV2ZW50VGFyZ2V0LT50b0RPTVdpbmRvdygpKQot
ICAgICAgICAgICAgZXZlbnRUYXJnZXQtPnRvRE9NV2luZG93KCktPmRpc3BhdGNoRXZlbnQoZXZl
bnQsIDApOworICAgICAgICAgICAgZXZlbnRUYXJnZXQtPnRvRE9NV2luZG93KCktPmRpc3BhdGNo
RXZlbnQoZXZlbnQsIC8qIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+ICovIDApOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBldmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAg
fQpAQCAtMTAyLDggKzk1LDYgQEAgcHJpdmF0ZToKIAogdm9pZCBFdmVudFF1ZXVlOjpyZW1vdmVF
dmVudChFdmVudCogZXZlbnQpCiB7Ci0gICAgaWYgKE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0
KCktPnRvTm9kZSgpKQotICAgICAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5yZW1v
dmUobm9kZSk7CiAgICAgbV9ldmVudFRhc2tNYXAucmVtb3ZlKGV2ZW50KTsKIH0KIApAQCAtMTE1
LDI0ICsxMDYsNiBAQCB2b2lkIEV2ZW50UXVldWU6OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiBwcnBFdmVudCkKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKHRh
c2sucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBFdmVudFF1ZXVlOjplbnF1ZXVlT3JEaXNwYXRjaFNj
cm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBTY3JvbGxFdmVudFRhcmdldFR5cGUg
dGFyZ2V0VHlwZSkKLXsKLSAgICAvLyBQZXIgdGhlIFczQyBDU1NPTSBWaWV3IE1vZHVsZSwgc2Ny
b2xsIGV2ZW50cyBmaXJlZCBhdCB0aGUgZG9jdW1lbnQgc2hvdWxkIGJ1YmJsZSwgb3RoZXJzIHNo
b3VsZCBub3QuCi0gICAgYm9vbCBjYW5CdWJibGUgPSB0YXJnZXRUeXBlID09IFNjcm9sbEV2ZW50
RG9jdW1lbnRUYXJnZXQ7Ci0gICAgUmVmUHRyPEV2ZW50PiBzY3JvbGxFdmVudCA9IEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBjYW5CdWJibGUsIGZhbHNlIC8qIG5vbiBj
YW5jZWxsZWFibGUgKi8pOwotICAgICAKLSAgICBpZiAoc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVu
dFN5bmNocm9ub3VzbHkodGFyZ2V0LT5kb2N1bWVudCgpKSkgewotICAgICAgICB0YXJnZXQtPmRp
c3BhdGNoRXZlbnQoc2Nyb2xsRXZlbnQucmVsZWFzZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmICghbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuYWRkKHRhcmdldC5n
ZXQoKSkuc2Vjb25kKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzY3JvbGxFdmVudC0+c2V0VGFy
Z2V0KHRhcmdldCk7Ci0gICAgZW5xdWV1ZUV2ZW50KHNjcm9sbEV2ZW50LnJlbGVhc2UoKSk7Ci19
Ci0KIGJvb2wgRXZlbnRRdWV1ZTo6Y2FuY2VsRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIEV2
ZW50RGlzcGF0Y2hlclRhc2sqIHRhc2sgPSBtX2V2ZW50VGFza01hcC5nZXQoZXZlbnQpOwpAQCAt
MTUwLDcgKzEyMyw2IEBAIHZvaWQgRXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZlbnRzKCkKICAg
ICAgICAgdGFzay0+Y2FuY2VsKCk7CiAgICAgfQogICAgIG1fZXZlbnRUYXNrTWFwLmNsZWFyKCk7
Ci0gICAgbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuY2xlYXIoKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFF1ZXVlLmgKaW5kZXggYmU4ZGFmZjE0MjQzYzcwMjkxNzEyOTIwYWM2OGVlNDQ4
YWJiZTEwNS4uYjk3ZGRhMzlhZTE0NzMyYWIyOGI3NjFhMWE4MjFmYWY1Njc0YzhkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRRdWV1ZS5oCkBAIC0zOSwyNSArMzksMTkgQEAgY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIAogY2xhc3MgRXZlbnRRdWV1ZSB7CiBwdWJsaWM6Ci0gICAgZW51bSBTY3Jv
bGxFdmVudFRhcmdldFR5cGUgewotICAgICAgICBTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0LAot
ICAgICAgICBTY3JvbGxFdmVudEVsZW1lbnRUYXJnZXQKLSAgICB9OwogCiAgICAgc3RhdGljIFBh
c3NPd25QdHI8RXZlbnRRdWV1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLSAg
ICB+RXZlbnRRdWV1ZSgpOworICAgIHZpcnR1YWwgfkV2ZW50UXVldWUoKTsKIAogICAgIHZvaWQg
ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKLSAgICB2b2lkIGVucXVldWVPckRpc3Bh
dGNoU2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiwgU2Nyb2xsRXZlbnRUYXJnZXRUeXBlKTsK
ICAgICBib29sIGNhbmNlbEV2ZW50KEV2ZW50Kik7Ci0gICAgdm9pZCBjYW5jZWxRdWV1ZWRFdmVu
dHMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUXVldWVkRXZlbnRzKCk7CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUV2ZW50KEV2ZW50Kik7CiAgICAg
ZXhwbGljaXQgRXZlbnRRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICB2b2lk
IHJlbW92ZUV2ZW50KEV2ZW50Kik7Ci0KLSAgICBIYXNoU2V0PE5vZGUqPiBtX25vZGVzV2l0aFF1
ZXVlZFNjcm9sbEV2ZW50czsKK3ByaXZhdGU6CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiAgICAgY2xhc3MgRXZlbnREaXNwYXRjaGVyVGFz
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNzE3OTZiN2VkOGEzY2Zl
NGZmOGM3NzAxMDlhYzRjMjFhMjZlNjdhLi5jYTEyMmI1MzgwNWJiNGRmZTEyMzQxMDZiODhkYTM5
MzU5YWFlZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNCwxMSAr
MzQsMTEgQEAKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdTdGF0ZS5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtMzAzNyw3ICszMDM3LDcgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnNlbmRTY3JvbGxFdmVudCgpCiB7CiAgICAgc2V0RnJhbWVXYXNTY3JvbGxl
ZEJ5VXNlcigpOwogICAgIGlmIChtX2ZyYW1lLT52aWV3KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQo
KSkKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlT3JE
aXNwYXRjaFNjcm9sbEV2ZW50KG1fZnJhbWUtPmRvY3VtZW50KCksIEV2ZW50UXVldWU6OlNjcm9s
bEV2ZW50RG9jdW1lbnRUYXJnZXQpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5ldmVu
dFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQobV9mcmFtZS0+ZG9jdW1lbnQo
KSwgRG9jdW1lbnRFdmVudFF1ZXVlOjpTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0KTsKIH0KIAog
dm9pZCBFdmVudEhhbmRsZXI6OnNldEZyYW1lV2FzU2Nyb2xsZWRCeVVzZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYzkzNzYwNDYyM2UxOTAwYjg4ZDky
NjIyNTlmYjc5ZmM0MmQ3YTMyNi4uMGQwNGQxMWY1MDRiNjlhMTBmODVjNWNkOWM2NjcxNjdiYWE3
ZjNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01MCw4
ICs1MCw4IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNocm9t
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVl
LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50
VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcmVjdEZvclJlcGFpbnQpOwogCiAgICAg
Ly8gU2NoZWR1bGUgdGhlIHNjcm9sbCBET00gZXZlbnQuCi0gICAgcmVuZGVyZXIoKS0+bm9kZSgp
LT5kb2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQo
cmVuZGVyZXIoKS0+bm9kZSgpLCBFdmVudFF1ZXVlOjpTY3JvbGxFdmVudEVsZW1lbnRUYXJnZXQp
OworICAgIHJlbmRlcmVyKCktPm5vZGUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1
ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KHJlbmRlcmVyKCktPm5vZGUoKSwgRG9jdW1lbnRFdmVu
dFF1ZXVlOjpTY3JvbGxFdmVudEVsZW1lbnRUYXJnZXQpOwogfQogCiB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgc2Nyb2xsVG9B
bmNob3IsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1l
bnQmIGFsaWduWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApp
bmRleCAwYjdlM2NjN2Q5ZWViMDQ4Y2RlZThkOWFiN2IzYzMwNzUyYTc5ZGFmLi4xNWRkYWU0YTlm
M2JjM2FjZWQ3Mjg1MDFmMzE2ZGVhM2Q1OTU0MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiQ1NTRm9u
dFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZl
bnRIYW5kbGVyLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnNjcm9sbFRvKGludCBu
ZXdPZmZzZXQpCiAKICAgICBtX2luZGV4T2Zmc2V0ID0gbmV3T2Zmc2V0OwogICAgIHJlcGFpbnQo
KTsKLSAgICBub2RlKCktPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0
Y2hTY3JvbGxFdmVudChub2RlKCksIEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxlbWVudFRhcmdl
dCk7CisgICAgbm9kZSgpLT5kb2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVucXVldWVPckRpc3Bh
dGNoU2Nyb2xsRXZlbnQobm9kZSgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxl
bWVudFRhcmdldCk7CiB9CiAKIGludCBSZW5kZXJMaXN0Qm94OjppdGVtSGVpZ2h0KCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAKaW5kZXggZDU0Yjk2OWExY2Y2ZWU2
MWE0NmI3MDQzY2NjZDFjMGMyYzExYzY2My4uNGMxOTkwZTg2NTk5NWUzMTI0MWQ5MzEzNjhlMzFi
NzkwODc4Mzg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAKQEAgLTI3
LDcgKzI3LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiSURCQW55LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCUmVxdWVzdC5jcHAKaW5kZXggZjhkODE4YTM1MWVhMTczOGE4ZGUxYWRlODAxMjYwY2Jj
ODQ3MGY4NC4uMzQ4OTNmMGVmM2Y5YTJiOTE0ZWE1MzA2NDcxOGU1N2VlNjUxNTFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBAIC0zMiwxMCArMzIsMTAgQEAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1
ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJDdXJzb3JXaXRoVmFsdWUuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA3MTBiYjc2MTczMWU2
YmE0YjAwZDZlZWVlYTYyMzVlODIwMTlkY2ExLi4zNDhhYWVlZDRkNzgyOTE3NWU2ZWJkYTRhNzA5
Y2M4MjBjMzRhODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5z
YWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNw
cApAQCAtMjksOCArMjksOCBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJFdmVudEV4Y2VwdGlvbi5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5j
bHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94320</attachid>
            <date>2011-05-20 22:28:13 -0700</date>
            <delta_ts>2011-05-23 12:34:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61231-20110520222812.patch</filename>
            <type>text/plain</type>
            <size>23247</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIxNTI1
MTU4NGQyOTdiNmQ5NTllYTA5YTFlYzBiNjhlZjRmNGIxZi4uN2VkNjc4N2YyNjAyMTdhOGQ5ODA4
MWFlNzMwNjE5MTQyZmYzN2EyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU0OSw2ICs1NDks
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5jcHAKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKICAgICBkb20vRG9j
dW1lbnQuY3BwCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKICAgICBkb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogICAg
IGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlhZmRi
OWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li41ZmYxMmVkOWNlYzE5ODAxYWY2ZDUyMzdiY2NiZWE3NWJl
NjY5MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjAgIERhdmlkIEdy
b2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRXZlbnRRdWV1ZSdzIERvY3VtZW50LXNwZWNpZmlj
IG1ldGhvZHMgdG8gYSBzdWJjbGFzcyBpbgorICAgICAgICBwcmVwYXJhdGlvbiBmb3IgbWFraW5n
IEV2ZW50UXVldWUgYXZhaWxhYmxlIGluIFdvcmtlckNvbnRleHQuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpE
b2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZXZlbnRRdWV1ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudFN5
bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2ZW50
UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1lbnRF
dmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6Y2FuY2Vs
UXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1ZXVl
T3JEaXNwYXRjaFNjcm9sbEV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1ZXVl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmguCisgICAgICAg
ICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZl
bnRzKToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzY3JvbGxUbyk6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICogc3RvcmFnZS9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoKKwog
MjAxMS0wNS0yMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCAwOWRmZmUyNDQwMmI1MjQ5NWIzNzhkZDg3MWViNzhjZDhhZDUyZWQ3Li4yNmQ1NTE5
ZWEzODMyOWZiMGZiMGZiMDg0YzliNTI4ODRhMTk0NWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTExMDMsNiArMTEwMyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFlMDVlY2QyMDgwNjgzZmQwNzgwNTk2ZDFmYTA3YjE4
NjQ1MTMwNGYuLjJjZTJmMDBiOTBjMzQwM2ZlYjdkNTA0YTFjYzFhMjhiYmM0NTM3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTI0NDgsNiArMjQ0OCw4IEBACiAgICAgICAgICAgICAnZG9tL0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKKyAgICAgICAgICAg
ICdkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0RvY3VtZW50
RXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDJjNTI2
MThlYjQyYjA4YTQ5ZDc4ODk5MjU1YjM4M2NmNTVjNzc1OTkuLjhlZjI3NmViMzA3MDRmZTk0MGE2
ODc0YTVjNmZiNjJmYzBmZDRiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NzQsNiArNDc0LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAgXAog
ICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50LmNw
cCBcCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogICAg
IGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODdjMzg2Mjc1MTA0MGNhOTE5NTEwNzY5ZDA0Njc0
ZTJmZTY4MWY0OC4uZjlmNjVjNTQwZmM3YzMzNTM1NzVkZTA1MTQyN2RmMTY0ZDYwZGEyMiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzMzU0
LDYgKzQzMzU0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudEV2ZW50UXVldWUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRG9jdW1lbnRFdmVu
dFF1ZXVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxEb2N1bWVudEZyYWdtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBkZjEwMTM4ZjY0MTUzYWUwYTRh
MjMwZDE0ZDNhNzhhNDZjNGRhYzBlLi41NWZlNWM0YzcwYmU4ZmNjNzdiMmRmY2FlYjIyODliNmMx
MmI3MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAK
ICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50LmNwcCIKKyNpbmNs
dWRlICJEb2N1bWVudEV2ZW50UXVldWUuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
Y3BwIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAi
RG9jdW1lbnRPcmRlcmVkTWFwLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDhiNzNj
ZWI3YmYyMjVhNDljMTNmNGNjYjM3MzdiMmU4MTRkNDZkZTQuLjFlZGRlYThkZWY3NTBmZjEzZTIx
YWMxMzRmYWVlOWIyM2Y5YjNiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2
ZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oIgpAQCAtNjIsNyArNjMsNiBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAi
RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIKQEAgLTQw
OCw3ICs0MDgsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3VzZXNWaWV3U291cmNl
U3R5bGVzKGZhbHNlKQogICAgICwgbV9zYXdFbGVtZW50c0luS25vd25OYW1lc3BhY2VzKGZhbHNl
KQogICAgICwgbV91c2luZ0dlb2xvY2F0aW9uKGZhbHNlKQotICAgICwgbV9ldmVudFF1ZXVlKEV2
ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fZXZlbnRRdWV1ZShEb2N1bWVudEV2ZW50
UXVldWU6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fd2Vha1JlZmVyZW5jZShEb2N1bWVudFdlYWtS
ZWZlcmVuY2U6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1faWRBdHRyaWJ1dGVOYW1lKGlkQXR0cikK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDM2MmM0
NTgyYzcyOGZjOTY1MjExZjExMjY3ZTRlOGE1MTM3ZmY4NTkuLjA2NTZmZTEwNWYxNzI4ODUwMDIx
Njc4MzI2YjhkY2NmNTc2MTdmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02Myw2ICs2Myw3
IEBAIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBDaGFyYWN0ZXJEYXRhOwog
Y2xhc3MgQ29tbWVudDsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIERvY3Vt
ZW50RXZlbnRRdWV1ZTsKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uOwogY2xhc3MgRE9NU2VsZWN0
aW9uOwogY2xhc3MgRE9NV2luZG93OwpAQCAtNzgsNyArNzksNiBAQCBjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRW50aXR5UmVmZXJlbmNlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVy
OwotY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNzIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDsKIGNsYXNz
IEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3OwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsK
ICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNv
bnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCk7Ci0gICAgRXZlbnRRdWV1
ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZS5nZXQoKTsgfQorICAg
IERvY3VtZW50RXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRR
dWV1ZS5nZXQoKTsgfQogCiAgICAgdm9pZCBhZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFD
YW5TdGFydExpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIo
TWVkaWFDYW5TdGFydExpc3RlbmVyKik7CkBAIC0xMzc0LDcgKzEzNzQsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3VzaW5nR2VvbG9jYXRpb247CiAKLSAgICBPd25QdHI8RXZlbnRRdWV1ZT4g
bV9ldmVudFF1ZXVlOworICAgIE93blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1
ZTsKIAogICAgIFJlZlB0cjxEb2N1bWVudFdlYWtSZWZlcmVuY2U+IG1fd2Vha1JlZmVyZW5jZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NWY4NDk4MDZjNzE0YTkwOGRkYjlhNjJkZGVjMDJhMGQwMmZlODFlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTAsMCArMSw4
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50RXZlbnRRdWV1ZS5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNp
bmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBi
b29sIHNob3VsZERpc3BhdGNoU2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5KERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICBBU1NFUlRfQVJHKGRvY3VtZW50LCBkb2N1bWVudCk7CisgICAgcmV0dXJu
IGFwcGxpY2F0aW9uSXNTYWZhcmkoKSAmJiAoZG9jdW1lbnQtPnVybCgpLnByb3RvY29sSXMoImZl
ZWQiKSB8fCBkb2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVlZHMiKSk7Cit9CisKK1Bhc3NP
d25QdHI8RG9jdW1lbnRFdmVudFF1ZXVlPiBEb2N1bWVudEV2ZW50UXVldWU6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
RG9jdW1lbnRFdmVudFF1ZXVlKGNvbnRleHQpKTsKK30KKworRG9jdW1lbnRFdmVudFF1ZXVlOjpE
b2N1bWVudEV2ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6
IEV2ZW50UXVldWUoY29udGV4dCkKK3sKK30KKworRG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1l
bnRFdmVudFF1ZXVlKCkKK3sKK30KKwordm9pZCBEb2N1bWVudEV2ZW50UXVldWU6OmNhbmNlbFF1
ZXVlZEV2ZW50cygpCit7CisgICAgRXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZlbnRzKCk7Cisg
ICAgbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuY2xlYXIoKTsKKworfQordm9pZCBEb2N1
bWVudEV2ZW50UXVldWU6OnJlbW92ZUV2ZW50KEV2ZW50KiBldmVudCkKK3sKKyAgICBFdmVudFF1
ZXVlOjpyZW1vdmVFdmVudChldmVudCk7CisgICAgaWYgKE5vZGUqIG5vZGUgPSBldmVudC0+dGFy
Z2V0KCktPnRvTm9kZSgpKQorICAgICAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5y
ZW1vdmUobm9kZSk7Cit9Cit2b2lkIERvY3VtZW50RXZlbnRRdWV1ZTo6ZW5xdWV1ZU9yRGlzcGF0
Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgU2Nyb2xsRXZlbnRUYXJnZXRU
eXBlIHRhcmdldFR5cGUpCit7CisgICAgLy8gUGVyIHRoZSBXM0MgQ1NTT00gVmlldyBNb2R1bGUs
IHNjcm9sbCBldmVudHMgZmlyZWQgYXQgdGhlIGRvY3VtZW50IHNob3VsZCBidWJibGUsIG90aGVy
cyBzaG91bGQgbm90LgorICAgIGJvb2wgY2FuQnViYmxlID0gdGFyZ2V0VHlwZSA9PSBTY3JvbGxF
dmVudERvY3VtZW50VGFyZ2V0OworICAgIFJlZlB0cjxFdmVudD4gc2Nyb2xsRXZlbnQgPSBFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCwgY2FuQnViYmxlLCBmYWxzZSAvKiBu
b24gY2FuY2VsbGVhYmxlICovKTsKKyAgICAgCisgICAgaWYgKHNob3VsZERpc3BhdGNoU2Nyb2xs
RXZlbnRTeW5jaHJvbm91c2x5KHRhcmdldC0+ZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgdGFyZ2V0
LT5kaXNwYXRjaEV2ZW50KHNjcm9sbEV2ZW50LnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoIW1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLmFkZCh0YXJn
ZXQuZ2V0KCkpLnNlY29uZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Nyb2xsRXZlbnQtPnNl
dFRhcmdldCh0YXJnZXQpOworICAgIGVucXVldWVFdmVudChzY3JvbGxFdmVudC5yZWxlYXNlKCkp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1
ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGE1NWY4NGE3ZTFkNjRhYWM1ZTYxNDQ5YWUwZTA3ZmYzZDk1YTFkYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgRG9jdW1lbnRFdmVudFF1ZXVlX2gKKyNkZWZp
bmUgRG9jdW1lbnRFdmVudFF1ZXVlX2gKKworI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3Vt
ZW50RXZlbnRRdWV1ZSA6IHB1YmxpYyBFdmVudFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBlbnVtIFNj
cm9sbEV2ZW50VGFyZ2V0VHlwZSB7CisgICAgICAgIFNjcm9sbEV2ZW50RG9jdW1lbnRUYXJnZXQs
CisgICAgICAgIFNjcm9sbEV2ZW50RWxlbWVudFRhcmdldAorICAgIH07CisKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CisgICAgfkRvY3VtZW50RXZlbnRRdWV1ZSgpOworCisgICAgdm9pZCBlbnF1ZXVlT3JE
aXNwYXRjaFNjcm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4sIFNjcm9sbEV2ZW50VGFyZ2V0VHlw
ZSk7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUV2ZW50KEV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgRG9jdW1lbnRFdmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAg
ICBIYXNoU2V0PE5vZGUqPiBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50czsKKworfTsKKwor
fQorCisjZW5kaWYgLy8gRG9jdW1lbnRFdmVudFF1ZXVlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVl
LmNwcAppbmRleCBlZGYwNGY3ZmU5MDExZjNmNWExMDQ3NTdjOTVlMWE1OGE5YzI0YTQzLi41NzM1
ZWQ5OWI1MTIzYmEzNTlmNWMxOGVhM2VhMmFkYmQ5NjBiYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
UXVldWUuY3BwCkBAIC0zMSwxNiArMzEsOSBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
RGlzcGF0Y2hTY3JvbGxFdmVudFN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3VtZW50KQotewot
ICAgIEFTU0VSVF9BUkcoZG9jdW1lbnQsIGRvY3VtZW50KTsKLSAgICByZXR1cm4gYXBwbGljYXRp
b25Jc1NhZmFyaSgpICYmIChkb2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVlZCIpIHx8IGRv
Y3VtZW50LT51cmwoKS5wcm90b2NvbElzKCJmZWVkcyIpKTsKLX0KIAogUGFzc093blB0cjxFdmVu
dFF1ZXVlPiBFdmVudFF1ZXVlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKIHsKQEAgLTY4LDcgKzYxLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgRXZlbnRUYXJn
ZXQqIGV2ZW50VGFyZ2V0ID0gZXZlbnQtPnRhcmdldCgpOwogICAgICAgICBpZiAoZXZlbnRUYXJn
ZXQtPnRvRE9NV2luZG93KCkpCi0gICAgICAgICAgICBldmVudFRhcmdldC0+dG9ET01XaW5kb3co
KS0+ZGlzcGF0Y2hFdmVudChldmVudCwgMCk7CisgICAgICAgICAgICBldmVudFRhcmdldC0+dG9E
T01XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChldmVudCwgLyogUGFzc1JlZlB0cjxFdmVudFRhcmdl
dD4gKi8gMCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRj
aEV2ZW50KGV2ZW50KTsKICAgICB9CkBAIC0xMDIsOCArOTUsNiBAQCBwcml2YXRlOgogCiB2b2lk
IEV2ZW50UXVldWU6OnJlbW92ZUV2ZW50KEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoTm9kZSog
bm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkpCi0gICAgICAgIG1fbm9kZXNXaXRoUXVl
dWVkU2Nyb2xsRXZlbnRzLnJlbW92ZShub2RlKTsKICAgICBtX2V2ZW50VGFza01hcC5yZW1vdmUo
ZXZlbnQpOwogfQogCkBAIC0xMTUsMjQgKzEwNiw2IEBAIHZvaWQgRXZlbnRRdWV1ZTo6ZW5xdWV1
ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHBycEV2ZW50KQogICAgIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+cG9zdFRhc2sodGFzay5yZWxlYXNlKCkpOwogfQogCi12b2lkIEV2ZW50UXVldWU6
OmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQsIFNj
cm9sbEV2ZW50VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKQotewotICAgIC8vIFBlciB0aGUgVzNDIENT
U09NIFZpZXcgTW9kdWxlLCBzY3JvbGwgZXZlbnRzIGZpcmVkIGF0IHRoZSBkb2N1bWVudCBzaG91
bGQgYnViYmxlLCBvdGhlcnMgc2hvdWxkIG5vdC4KLSAgICBib29sIGNhbkJ1YmJsZSA9IHRhcmdl
dFR5cGUgPT0gU2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldDsKLSAgICBSZWZQdHI8RXZlbnQ+IHNj
cm9sbEV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQsIGNhbkJ1
YmJsZSwgZmFsc2UgLyogbm9uIGNhbmNlbGxlYWJsZSAqLyk7Ci0gICAgIAotICAgIGlmIChzaG91
bGREaXNwYXRjaFNjcm9sbEV2ZW50U3luY2hyb25vdXNseSh0YXJnZXQtPmRvY3VtZW50KCkpKSB7
Ci0gICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChzY3JvbGxFdmVudC5yZWxlYXNlKCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX25vZGVzV2l0aFF1ZXVlZFNjcm9s
bEV2ZW50cy5hZGQodGFyZ2V0LmdldCgpKS5zZWNvbmQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHNjcm9sbEV2ZW50LT5zZXRUYXJnZXQodGFyZ2V0KTsKLSAgICBlbnF1ZXVlRXZlbnQoc2Nyb2xs
RXZlbnQucmVsZWFzZSgpKTsKLX0KLQogYm9vbCBFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVu
dCogZXZlbnQpCiB7CiAgICAgRXZlbnREaXNwYXRjaGVyVGFzayogdGFzayA9IG1fZXZlbnRUYXNr
TWFwLmdldChldmVudCk7CkBAIC0xNTAsNyArMTIzLDYgQEAgdm9pZCBFdmVudFF1ZXVlOjpjYW5j
ZWxRdWV1ZWRFdmVudHMoKQogICAgICAgICB0YXNrLT5jYW5jZWwoKTsKICAgICB9CiAgICAgbV9l
dmVudFRhc2tNYXAuY2xlYXIoKTsKLSAgICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5j
bGVhcigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaAppbmRleCBiZThkYWZmMTQyNDNj
NzAyOTE3MTI5MjBhYzY4ZWU0NDhhYmJlMTA1Li5iOTdkZGEzOWFlMTQ3MzJhYjI4Yjc2MWExYTgy
MWZhZjU2NzRjOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmgKQEAgLTM5LDI1ICszOSwxOSBA
QCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBFdmVudFF1ZXVlIHsKIHB1
YmxpYzoKLSAgICBlbnVtIFNjcm9sbEV2ZW50VGFyZ2V0VHlwZSB7Ci0gICAgICAgIFNjcm9sbEV2
ZW50RG9jdW1lbnRUYXJnZXQsCi0gICAgICAgIFNjcm9sbEV2ZW50RWxlbWVudFRhcmdldAotICAg
IH07CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxFdmVudFF1ZXVlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOwotICAgIH5FdmVudFF1ZXVlKCk7CisgICAgdmlydHVhbCB+RXZlbnRR
dWV1ZSgpOwogCiAgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwotICAg
IHZvaWQgZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5vZGU+LCBTY3Jv
bGxFdmVudFRhcmdldFR5cGUpOwogICAgIGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQqKTsKLSAgICB2
b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygpOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxRdWV1ZWRF
dmVudHMoKTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
RXZlbnQoRXZlbnQqKTsKICAgICBleHBsaWNpdCBFdmVudFF1ZXVlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKIAotICAgIHZvaWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKLQotICAgIEhhc2hTZXQ8
Tm9kZSo+IG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzOworcHJpdmF0ZToKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKICAgICBjbGFz
cyBFdmVudERpc3BhdGNoZXJUYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDA3MTc5NmI3ZWQ4YTNjZmU0ZmY4Yzc3MDEwOWFjNGMyMWEyNmU2N2EuLmNhMTIyYjUzODA1
YmI0ZGZlMTIzNDEwNmI4OGRhMzkzNTlhYWVkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTM0LDExICszNCwxMSBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1
ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RHJhZ1N0YXRlLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC0zMDM3
LDcgKzMwMzcsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2ZW50KCkKIHsKICAg
ICBzZXRGcmFtZVdhc1Njcm9sbGVkQnlVc2VyKCk7CiAgICAgaWYgKG1fZnJhbWUtPnZpZXcoKSAm
JiBtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5ldmVu
dFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQobV9mcmFtZS0+ZG9jdW1lbnQo
KSwgRXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldCk7CisgICAgICAgIG1fZnJh
bWUtPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVu
dChtX2ZyYW1lLT5kb2N1bWVudCgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RG9j
dW1lbnRUYXJnZXQpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6c2V0RnJhbWVXYXNTY3JvbGxl
ZEJ5VXNlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBj
OTM3NjA0NjIzZTE5MDBiODhkOTI2MjI1OWZiNzlmYzQyZDdhMzI2Li4wZDA0ZDExZjUwNGI2OWEx
MGY4NWM1Y2Q5YzY2NzE2N2JhYTdmM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKQEAgLTUwLDggKzUwLDggQEAKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKLSNpbmNs
dWRlICJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC0xMzg0LDcgKzEz
ODQsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50IHkpCiAgICAgICAg
IHJlbmRlcmVyKCktPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCByZWN0
Rm9yUmVwYWludCk7CiAKICAgICAvLyBTY2hlZHVsZSB0aGUgc2Nyb2xsIERPTSBldmVudC4KLSAg
ICByZW5kZXJlcigpLT5ub2RlKCktPmRvY3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9y
RGlzcGF0Y2hTY3JvbGxFdmVudChyZW5kZXJlcigpLT5ub2RlKCksIEV2ZW50UXVldWU6OlNjcm9s
bEV2ZW50RWxlbWVudFRhcmdldCk7CisgICAgcmVuZGVyZXIoKS0+bm9kZSgpLT5kb2N1bWVudCgp
LT5ldmVudFF1ZXVlKCktPmVucXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQocmVuZGVyZXIoKS0+
bm9kZSgpLCBEb2N1bWVudEV2ZW50UXVldWU6OlNjcm9sbEV2ZW50RWxlbWVudFRhcmdldCk7CiB9
CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgSW50UmVjdCYg
cmVjdCwgYm9vbCBzY3JvbGxUb0FuY2hvciwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgs
IGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDBiN2UzY2M3ZDllZWIwNDhjZGVlOGQ5YWI3YjNjMzA3
NTJhNzlkYWYuLjE1ZGRhZTRhOWYzYmMzYWNlZDcyODUwMWYzMTZkZWEzZDU5NTQyM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTM0LDggKzM0LDgg
QEAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVl
dWUuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgi
CiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgUmVuZGVyTGlz
dEJveDo6c2Nyb2xsVG8oaW50IG5ld09mZnNldCkKIAogICAgIG1faW5kZXhPZmZzZXQgPSBuZXdP
ZmZzZXQ7CiAgICAgcmVwYWludCgpOwotICAgIG5vZGUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1
ZSgpLT5lbnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KG5vZGUoKSwgRXZlbnRRdWV1ZTo6U2Ny
b2xsRXZlbnRFbGVtZW50VGFyZ2V0KTsKKyAgICBub2RlKCktPmRvY3VtZW50KCktPmV2ZW50UXVl
dWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChub2RlKCksIERvY3VtZW50RXZlbnRR
dWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0KTsKIH0KIAogaW50IFJlbmRlckxpc3RCb3g6
Oml0ZW1IZWlnaHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcApp
bmRleCBkNTRiOTY5YTFjZjZlZTYxYTQ2YjcwNDNjY2NkMWMwYzJjMTFjNjYzLi40YzE5OTBlODY1
OTk1ZTMxMjQxZDkzMTM2OGUzMWI3OTA4NzgzODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgi
CiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKKyNpbmNs
dWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9y
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBmOGQ4MThhMzUxZWEx
NzM4YThkZTFhZGU4MDEyNjBjYmM4NDcwZjg0Li4zNDg5M2YwZWYzZjlhMmI5MTRlYTUzMDY0NzE4
ZTU3ZWU2NTE1MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTMy
LDEwICszMiwxMCBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJF
dmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkN1cnNv
cldpdGhWYWx1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRXZl
bnREaXNwYXRjaGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlRy
YW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IDcxMGJiNzYxNzMxZTZiYTRiMDBkNmVlZWVhNjIzNWU4MjAxOWRjYTEuLjM0OGFhZWVk
NGQ3ODI5MTc1ZTZlYmRhNGE3MDljYzgyMGMzNGE4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiRXZl
bnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJh
c2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94462</attachid>
            <date>2011-05-23 12:34:38 -0700</date>
            <delta_ts>2011-05-23 17:19:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61231-20110523123437.patch</filename>
            <type>text/plain</type>
            <size>23240</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIxNTI1
MTU4NGQyOTdiNmQ5NTllYTA5YTFlYzBiNjhlZjRmNGIxZi4uN2VkNjc4N2YyNjAyMTdhOGQ5ODA4
MWFlNzMwNjE5MTQyZmYzN2EyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU0OSw2ICs1NDks
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5jcHAKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKICAgICBkb20vRG9j
dW1lbnQuY3BwCisgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKICAgICBkb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAogICAg
IGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NGJiNDJmNWRjM2M5NTA2Nzli
NjE0MDdkOTRjNGRmMWZkMWI3ZWQ1Li5jMDEzY2E0OGZkMzlkMjg0Y2IyM2VkODg0ZDg5YjEyNjE2
ZmEwYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMjAgIERhdmlkIEdy
b2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRXZlbnRRdWV1ZSdzIERvY3VtZW50LXNwZWNpZmlj
IG1ldGhvZHMgdG8gYSBzdWJjbGFzcyBpbgorICAgICAgICBwcmVwYXJhdGlvbiBmb3IgbWFraW5n
IEV2ZW50UXVldWUgYXZhaWxhYmxlIGluIFdvcmtlckNvbnRleHQuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpE
b2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6ZXZlbnRRdWV1ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudFN5
bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2ZW50
UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjp+RG9jdW1lbnRF
dmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6Y2FuY2Vs
UXVldWVkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1ZXVl
T3JEaXNwYXRjaFNjcm9sbEV2ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRFdmVudFF1ZXVl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmguCisgICAgICAg
ICogZG9tL0V2ZW50UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6cmVt
b3ZlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6Y2FuY2VsUXVldWVkRXZl
bnRzKToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZFNjcm9sbEV2
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzY3JvbGxUbyk6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgICogc3RvcmFnZS9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcDoKKwog
MjAxMS0wNS0yMyAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDVkZjYzZGQ0MzkwMjFiZGQxZWJmNzA0ZTE0MGE4NjA0MmM4ZGM0M2EuLjg4YWYyOGYy
ZmQ4OWE3M2Y5YjQ0ZTc4ZWU1MGYxNGM1M2VlN2E1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMTEwMyw2ICsxMTAzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTRmYWI2NGRlMWE0OWQ5NmI3ZjA5YTVlZDMwNTdjMzVm
MDQwYzdhMS4uOTk1NGUxNzI0YWRiODc5ZGI5YzY2MWNkOWMyNzIzYzUyZDc4NjIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMjQ0OCw2ICsyNDQ4LDggQEAKICAgICAgICAgICAgICdkb20vRGV2aWNl
T3JpZW50YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAnLAorICAgICAgICAgICAg
J2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwJywKKyAgICAgICAgICAgICdkb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMmM1MjYx
OGViNDJiMDhhNDlkNzg4OTkyNTViMzgzY2Y1NWM3NzU5OS4uOGVmMjc2ZWIzMDcwNGZlOTQwYTY4
NzRhNWM2ZmI2MmZjMGZkNGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTQ3NCw2ICs0NzQsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBcCiAg
ICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIFwKICAgICBkb20vRG9jdW1lbnQuY3Bw
IFwKKyAgICBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwIFwKICAgICBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCiAgICAg
ZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1ZDMzOTczNWY5ZTY0NTM5ZDEwYzIzNTNjMzQ1ZWI4
Y2U5MDk4YzAyLi40MmE5MmY5Njc2M2NkYTQ5ODQ3M2U0ZmQzMGI2Nzc2NTU5YmY4MTQ0IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDMzNTQs
NiArNDMzNTQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXERvY3VtZW50RXZlbnRRdWV1ZS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudEV2ZW50
UXVldWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXERvY3VtZW50RnJhZ21lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGRmMTAxMzhmNjQxNTNhZTBhNGEy
MzBkMTRkM2E3OGE0NmM0ZGFjMGUuLjU1ZmU1YzRjNzBiZThmY2M3N2IyZGZjYWViMjI4OWI2YzEy
YjcyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNTcsNiArNTcsNyBAQAog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnQuY3BwIgorI2luY2x1
ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5j
cHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJE
b2N1bWVudE9yZGVyZWRNYXAuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2QyYjZk
ZGI5YzNhYTlhMmJjNGRiZTVmYTdlYzk2ZThiMTNlYjE2OS4uZDJjZWY4OWM1MDc4YjZhYmMzMGFh
MmRiYWE2NzZjYmE5ZjgzYmE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MCw2ICs1
MCw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZl
bnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCkBAIC02Miw3ICs2Myw2IEBACiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJF
dmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgpAQCAtNDA4
LDcgKzQwOCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fdXNlc1ZpZXdTb3VyY2VT
dHlsZXMoZmFsc2UpCiAgICAgLCBtX3Nhd0VsZW1lbnRzSW5Lbm93bk5hbWVzcGFjZXMoZmFsc2Up
CiAgICAgLCBtX3VzaW5nR2VvbG9jYXRpb24oZmFsc2UpCi0gICAgLCBtX2V2ZW50UXVldWUoRXZl
bnRRdWV1ZTo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9ldmVudFF1ZXVlKERvY3VtZW50RXZlbnRR
dWV1ZTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV93ZWFrUmVmZXJlbmNlKERvY3VtZW50V2Vha1Jl
ZmVyZW5jZTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9pZEF0dHJpYnV0ZU5hbWUoaWRBdHRyKQog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzYyYzQ1
ODJjNzI4ZmM5NjUyMTFmMTEyNjdlNGU4YTUxMzdmZjg1OS4uMDY1NmZlMTA1ZjE3Mjg4NTAwMjE2
NzgzMjZiOGRjY2Y1NzYxN2Y0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYzLDYgKzYzLDcg
QEAgY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIENoYXJhY3RlckRhdGE7CiBj
bGFzcyBDb21tZW50OwogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5OworY2xhc3MgRG9jdW1l
bnRFdmVudFF1ZXVlOwogY2xhc3MgRE9NSW1wbGVtZW50YXRpb247CiBjbGFzcyBET01TZWxlY3Rp
b247CiBjbGFzcyBET01XaW5kb3c7CkBAIC03OCw3ICs3OSw2IEBAIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBFbnRpdHlSZWZlcmVuY2U7CiBjbGFzcyBFdmVudDsKIGNsYXNzIEV2ZW50TGlzdGVuZXI7
Ci1jbGFzcyBFdmVudFF1ZXVlOwogY2xhc3MgRm9ybUFzc29jaWF0ZWRFbGVtZW50OwogY2xhc3Mg
RnJhbWU7CiBjbGFzcyBGcmFtZVZpZXc7CkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBlbnF1ZXVlUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UpOwog
ICAgIHZvaWQgZW5xdWV1ZUhhc2hjaGFuZ2VFdmVudChjb25zdCBTdHJpbmcmIG9sZFVSTCwgY29u
c3QgU3RyaW5nJiBuZXdVUkwpOwogICAgIHZvaWQgZW5xdWV1ZVBvcHN0YXRlRXZlbnQoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0YXRlT2JqZWN0KTsKLSAgICBFdmVudFF1ZXVl
KiBldmVudFF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudFF1ZXVlLmdldCgpOyB9CisgICAg
RG9jdW1lbnRFdmVudFF1ZXVlKiBldmVudFF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudFF1
ZXVlLmdldCgpOyB9CiAKICAgICB2b2lkIGFkZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNh
blN0YXJ0TGlzdGVuZXIqKTsKICAgICB2b2lkIHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihN
ZWRpYUNhblN0YXJ0TGlzdGVuZXIqKTsKQEAgLTEzNzQsNyArMTM3NCw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1fdXNpbmdHZW9sb2NhdGlvbjsKIAotICAgIE93blB0cjxFdmVudFF1ZXVlPiBt
X2V2ZW50UXVldWU7CisgICAgT3duUHRyPERvY3VtZW50RXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVl
OwogCiAgICAgUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gbV93ZWFrUmVmZXJlbmNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1
Zjg0OTgwNmM3MTRhOTA4ZGRiOWE2MmRkZWMwMmEwZDAyZmU4MWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcApAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRFdmVudFF1ZXVlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIGJv
b2wgc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudFN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIEFTU0VSVF9BUkcoZG9jdW1lbnQsIGRvY3VtZW50KTsKKyAgICByZXR1cm4g
YXBwbGljYXRpb25Jc1NhZmFyaSgpICYmIChkb2N1bWVudC0+dXJsKCkucHJvdG9jb2xJcygiZmVl
ZCIpIHx8IGRvY3VtZW50LT51cmwoKS5wcm90b2NvbElzKCJmZWVkcyIpKTsKK30KKworUGFzc093
blB0cjxEb2N1bWVudEV2ZW50UXVldWU+IERvY3VtZW50RXZlbnRRdWV1ZTo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
b2N1bWVudEV2ZW50UXVldWUoY29udGV4dCkpOworfQorCitEb2N1bWVudEV2ZW50UXVldWU6OkRv
Y3VtZW50RXZlbnRRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDog
RXZlbnRRdWV1ZShjb250ZXh0KQoreworfQorCitEb2N1bWVudEV2ZW50UXVldWU6On5Eb2N1bWVu
dEV2ZW50UXVldWUoKQoreworfQorCit2b2lkIERvY3VtZW50RXZlbnRRdWV1ZTo6Y2FuY2VsUXVl
dWVkRXZlbnRzKCkKK3sKKyAgICBFdmVudFF1ZXVlOjpjYW5jZWxRdWV1ZWRFdmVudHMoKTsKKyAg
ICBtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cy5jbGVhcigpOworCit9Cit2b2lkIERvY3Vt
ZW50RXZlbnRRdWV1ZTo6cmVtb3ZlRXZlbnQoRXZlbnQqIGV2ZW50KQoreworICAgIEV2ZW50UXVl
dWU6OnJlbW92ZUV2ZW50KGV2ZW50KTsKKyAgICBpZiAoTm9kZSogbm9kZSA9IGV2ZW50LT50YXJn
ZXQoKS0+dG9Ob2RlKCkpCisgICAgICAgIG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLnJl
bW92ZShub2RlKTsKK30KK3ZvaWQgRG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1ZXVlT3JEaXNwYXRj
aFNjcm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0LCBTY3JvbGxFdmVudFRhcmdldFR5
cGUgdGFyZ2V0VHlwZSkKK3sKKyAgICAvLyBQZXIgdGhlIFczQyBDU1NPTSBWaWV3IE1vZHVsZSwg
c2Nyb2xsIGV2ZW50cyBmaXJlZCBhdCB0aGUgZG9jdW1lbnQgc2hvdWxkIGJ1YmJsZSwgb3RoZXJz
IHNob3VsZCBub3QuCisgICAgYm9vbCBjYW5CdWJibGUgPSB0YXJnZXRUeXBlID09IFNjcm9sbEV2
ZW50RG9jdW1lbnRUYXJnZXQ7CisgICAgUmVmUHRyPEV2ZW50PiBzY3JvbGxFdmVudCA9IEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBjYW5CdWJibGUsIGZhbHNlIC8qIG5v
biBjYW5jZWxsZWFibGUgKi8pOworICAgICAKKyAgICBpZiAoc2hvdWxkRGlzcGF0Y2hTY3JvbGxF
dmVudFN5bmNocm9ub3VzbHkodGFyZ2V0LT5kb2N1bWVudCgpKSkgeworICAgICAgICB0YXJnZXQt
PmRpc3BhdGNoRXZlbnQoc2Nyb2xsRXZlbnQucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmICghbV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMuYWRkKHRhcmdl
dC5nZXQoKSkuc2Vjb25kKQorICAgICAgICByZXR1cm47CisKKyAgICBzY3JvbGxFdmVudC0+c2V0
VGFyZ2V0KHRhcmdldCk7CisgICAgZW5xdWV1ZUV2ZW50KHNjcm9sbEV2ZW50LnJlbGVhc2UoKSk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVl
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYTU1Zjg0YTdlMWQ2NGFhYzVlNjE0NDlhZTBlMDdmZjNkOTVhMWRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBEb2N1bWVudEV2ZW50UXVldWVfaAorI2RlZmlu
ZSBEb2N1bWVudEV2ZW50UXVldWVfaAorCisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgorCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1l
bnRFdmVudFF1ZXVlIDogcHVibGljIEV2ZW50UXVldWUgeworcHVibGljOgorICAgIGVudW0gU2Ny
b2xsRXZlbnRUYXJnZXRUeXBlIHsKKyAgICAgICAgU2Nyb2xsRXZlbnREb2N1bWVudFRhcmdldCwK
KyAgICAgICAgU2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0CisgICAgfTsKKworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPERvY3VtZW50RXZlbnRRdWV1ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKKyAgICB+RG9jdW1lbnRFdmVudFF1ZXVlKCk7CisKKyAgICB2b2lkIGVucXVldWVPckRp
c3BhdGNoU2Nyb2xsRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiwgU2Nyb2xsRXZlbnRUYXJnZXRUeXBl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUXVldWVkRXZlbnRzKCk7CisKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRXZlbnQoRXZlbnQqKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBEb2N1bWVudEV2ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAg
IEhhc2hTZXQ8Tm9kZSo+IG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzOworCit9OworCit9
CisKKyNlbmRpZiAvLyBEb2N1bWVudEV2ZW50UXVldWVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUu
Y3BwCmluZGV4IGVkZjA0ZjdmZTkwMTFmM2Y1YTEwNDc1N2M5NWUxYTU4YTljMjRhNDMuLjY4MzQw
MDg5YjM2ZmQ3NDJkZDBmNWNmZjYwOTBiNmY5MDI4ZTVmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRR
dWV1ZS5jcHAKQEAgLTMxLDE2ICszMSw5IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRE
aXNwYXRjaFNjcm9sbEV2ZW50U3luY2hyb25vdXNseShEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0g
ICAgQVNTRVJUX0FSRyhkb2N1bWVudCwgZG9jdW1lbnQpOwotICAgIHJldHVybiBhcHBsaWNhdGlv
bklzU2FmYXJpKCkgJiYgKGRvY3VtZW50LT51cmwoKS5wcm90b2NvbElzKCJmZWVkIikgfHwgZG9j
dW1lbnQtPnVybCgpLnByb3RvY29sSXMoImZlZWRzIikpOwotfQogCiBQYXNzT3duUHRyPEV2ZW50
UXVldWU+IEV2ZW50UXVldWU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogewpAQCAtNjgsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBFdmVudFRhcmdl
dCogZXZlbnRUYXJnZXQgPSBldmVudC0+dGFyZ2V0KCk7CiAgICAgICAgIGlmIChldmVudFRhcmdl
dC0+dG9ET01XaW5kb3coKSkKLSAgICAgICAgICAgIGV2ZW50VGFyZ2V0LT50b0RPTVdpbmRvdygp
LT5kaXNwYXRjaEV2ZW50KGV2ZW50LCAwKTsKKyAgICAgICAgICAgIGV2ZW50VGFyZ2V0LT50b0RP
TVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0Pigp
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQo
ZXZlbnQpOwogICAgIH0KQEAgLTEwMiw4ICs5NSw2IEBAIHByaXZhdGU6CiAKIHZvaWQgRXZlbnRR
dWV1ZTo6cmVtb3ZlRXZlbnQoRXZlbnQqIGV2ZW50KQogewotICAgIGlmIChOb2RlKiBub2RlID0g
ZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKSkKLSAgICAgICAgbV9ub2Rlc1dpdGhRdWV1ZWRTY3Jv
bGxFdmVudHMucmVtb3ZlKG5vZGUpOwogICAgIG1fZXZlbnRUYXNrTWFwLnJlbW92ZShldmVudCk7
CiB9CiAKQEAgLTExNSwyNCArMTA2LDYgQEAgdm9pZCBFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gcHJwRXZlbnQpCiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5wb3N0VGFzayh0YXNrLnJlbGVhc2UoKSk7CiB9CiAKLXZvaWQgRXZlbnRRdWV1ZTo6ZW5xdWV1
ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCwgU2Nyb2xsRXZl
bnRUYXJnZXRUeXBlIHRhcmdldFR5cGUpCi17Ci0gICAgLy8gUGVyIHRoZSBXM0MgQ1NTT00gVmll
dyBNb2R1bGUsIHNjcm9sbCBldmVudHMgZmlyZWQgYXQgdGhlIGRvY3VtZW50IHNob3VsZCBidWJi
bGUsIG90aGVycyBzaG91bGQgbm90LgotICAgIGJvb2wgY2FuQnViYmxlID0gdGFyZ2V0VHlwZSA9
PSBTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0OwotICAgIFJlZlB0cjxFdmVudD4gc2Nyb2xsRXZl
bnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCwgY2FuQnViYmxlLCBm
YWxzZSAvKiBub24gY2FuY2VsbGVhYmxlICovKTsKLSAgICAgCi0gICAgaWYgKHNob3VsZERpc3Bh
dGNoU2Nyb2xsRXZlbnRTeW5jaHJvbm91c2x5KHRhcmdldC0+ZG9jdW1lbnQoKSkpIHsKLSAgICAg
ICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNjcm9sbEV2ZW50LnJlbGVhc2UoKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRz
LmFkZCh0YXJnZXQuZ2V0KCkpLnNlY29uZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2Nyb2xs
RXZlbnQtPnNldFRhcmdldCh0YXJnZXQpOwotICAgIGVucXVldWVFdmVudChzY3JvbGxFdmVudC5y
ZWxlYXNlKCkpOwotfQotCiBib29sIEV2ZW50UXVldWU6OmNhbmNlbEV2ZW50KEV2ZW50KiBldmVu
dCkKIHsKICAgICBFdmVudERpc3BhdGNoZXJUYXNrKiB0YXNrID0gbV9ldmVudFRhc2tNYXAuZ2V0
KGV2ZW50KTsKQEAgLTE1MCw3ICsxMjMsNiBAQCB2b2lkIEV2ZW50UXVldWU6OmNhbmNlbFF1ZXVl
ZEV2ZW50cygpCiAgICAgICAgIHRhc2stPmNhbmNlbCgpOwogICAgIH0KICAgICBtX2V2ZW50VGFz
a01hcC5jbGVhcigpOwotICAgIG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzLmNsZWFyKCk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oCmluZGV4IGJlOGRhZmYxNDI0M2M3MDI5MTcx
MjkyMGFjNjhlZTQ0OGFiYmUxMDUuLmI5N2RkYTM5YWUxNDczMmFiMjhiNzYxYTFhODIxZmFmNTY3
NGM4ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaApAQCAtMzksMjUgKzM5LDE5IEBAIGNsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEV2ZW50UXVldWUgewogcHVibGljOgot
ICAgIGVudW0gU2Nyb2xsRXZlbnRUYXJnZXRUeXBlIHsKLSAgICAgICAgU2Nyb2xsRXZlbnREb2N1
bWVudFRhcmdldCwKLSAgICAgICAgU2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0Ci0gICAgfTsKIAog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEV2ZW50UXVldWU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7Ci0gICAgfkV2ZW50UXVldWUoKTsKKyAgICB2aXJ0dWFsIH5FdmVudFF1ZXVlKCk7
CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7Ci0gICAgdm9pZCBl
bnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4sIFNjcm9sbEV2ZW50
VGFyZ2V0VHlwZSk7CiAgICAgYm9vbCBjYW5jZWxFdmVudChFdmVudCopOwotICAgIHZvaWQgY2Fu
Y2VsUXVldWVkRXZlbnRzKCk7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFF1ZXVlZEV2ZW50cygp
OwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFdmVudChF
dmVudCopOwogICAgIGV4cGxpY2l0IEV2ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
OwogCi0gICAgdm9pZCByZW1vdmVFdmVudChFdmVudCopOwotCi0gICAgSGFzaFNldDxOb2RlKj4g
bV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHM7Citwcml2YXRlOgogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogICAgIGNsYXNzIEV2ZW50
RGlzcGF0Y2hlclRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDcx
Nzk2YjdlZDhhM2NmZTRmZjhjNzcwMTA5YWM0YzIxYTI2ZTY3YS4uY2ExMjJiNTM4MDViYjRkZmUx
MjM0MTA2Yjg4ZGEzOTM1OWFhZWQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiQ3Vy
c29yTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnU3Rh
dGUuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5j
bHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKQEAgLTMwMzcsNyArMzAz
Nyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kU2Nyb2xsRXZlbnQoKQogewogICAgIHNldEZy
YW1lV2FzU2Nyb2xsZWRCeVVzZXIoKTsKICAgICBpZiAobV9mcmFtZS0+dmlldygpICYmIG1fZnJh
bWUtPmRvY3VtZW50KCkpCi0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmV2ZW50UXVldWUo
KS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChtX2ZyYW1lLT5kb2N1bWVudCgpLCBFdmVu
dFF1ZXVlOjpTY3JvbGxFdmVudERvY3VtZW50VGFyZ2V0KTsKKyAgICAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KG1fZnJh
bWUtPmRvY3VtZW50KCksIERvY3VtZW50RXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnREb2N1bWVudFRh
cmdldCk7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpzZXRGcmFtZVdhc1Njcm9sbGVkQnlVc2Vy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGM5Mzc2MDQ2
MjNlMTkwMGI4OGQ5MjYyMjU5ZmI3OWZjNDJkN2EzMjYuLjBkMDRkMTFmNTA0YjY5YTEwZjg1YzVj
ZDljNjY3MTY3YmFhN2YzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtNTAsOCArNTAsOCBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNp
bmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgotI2luY2x1ZGUgIkV2
ZW50UXVldWUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKQEAgLTEzODQsNyArMTM4NCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICAgICAgcmVuZGVy
ZXIoKS0+cmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHJlY3RGb3JSZXBh
aW50KTsKIAogICAgIC8vIFNjaGVkdWxlIHRoZSBzY3JvbGwgRE9NIGV2ZW50LgotICAgIHJlbmRl
cmVyKCktPm5vZGUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5lbnF1ZXVlT3JEaXNwYXRj
aFNjcm9sbEV2ZW50KHJlbmRlcmVyKCktPm5vZGUoKSwgRXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRF
bGVtZW50VGFyZ2V0KTsKKyAgICByZW5kZXJlcigpLT5ub2RlKCktPmRvY3VtZW50KCktPmV2ZW50
UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChyZW5kZXJlcigpLT5ub2RlKCks
IERvY3VtZW50RXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFyZ2V0KTsKIH0KIAogdm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBJbnRSZWN0JiByZWN0LCBi
b29sIHNjcm9sbFRvQW5jaG9yLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBhbGlnblkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKaW5kZXggMGI3ZTNjYzdkOWVlYjA0OGNkZWU4ZDlhYjdiM2MzMDc1MmE3OWRh
Zi4uMTVkZGFlNGE5ZjNiYzNhY2VkNzI4NTAxZjMxNmRlYTNkNTk1NDIzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMzQsOCArMzQsOCBAQAogI2lu
Y2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgotI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCkBAIC02MTYsNyArNjE2LDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojpz
Y3JvbGxUbyhpbnQgbmV3T2Zmc2V0KQogCiAgICAgbV9pbmRleE9mZnNldCA9IG5ld09mZnNldDsK
ICAgICByZXBhaW50KCk7Ci0gICAgbm9kZSgpLT5kb2N1bWVudCgpLT5ldmVudFF1ZXVlKCktPmVu
cXVldWVPckRpc3BhdGNoU2Nyb2xsRXZlbnQobm9kZSgpLCBFdmVudFF1ZXVlOjpTY3JvbGxFdmVu
dEVsZW1lbnRUYXJnZXQpOworICAgIG5vZGUoKS0+ZG9jdW1lbnQoKS0+ZXZlbnRRdWV1ZSgpLT5l
bnF1ZXVlT3JEaXNwYXRjaFNjcm9sbEV2ZW50KG5vZGUoKSwgRG9jdW1lbnRFdmVudFF1ZXVlOjpT
Y3JvbGxFdmVudEVsZW1lbnRUYXJnZXQpOwogfQogCiBpbnQgUmVuZGVyTGlzdEJveDo6aXRlbUhl
aWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCmluZGV4IGQ1
NGI5NjlhMWNmNmVlNjFhNDZiNzA0M2NjY2QxYzBjMmMxMWM2NjMuLjRjMTk5MGU4NjU5OTVlMzEy
NDFkOTMxMzY4ZTMxYjc5MDg3ODM4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2UuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkFueS5oIgogI2luY2x1ZGUgIklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCmluZGV4IGY4ZDgxOGEzNTFlYTE3MzhhOGRl
MWFkZTgwMTI2MGNiYzg0NzBmODQuLjM0ODkzZjBlZjNmOWEyYjkxNGVhNTMwNjQ3MThlNTdlZTY1
MTUxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcApAQCAtMzIsMTAgKzMy
LDEwIEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50RXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiSURCQ3Vyc29yV2l0aFZh
bHVlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJFdmVudERpc3Bh
dGNoZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXgg
NzEwYmI3NjE3MzFlNmJhNGIwMGQ2ZWVlZWE2MjM1ZTgyMDE5ZGNhMS4uMzQ4YWFlZWQ0ZDc4Mjkx
NzVlNmViZGE0YTcwOWNjODIwYzM0YTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJU
cmFuc2FjdGlvbi5jcHAKQEAgLTI5LDggKzI5LDggQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKLSNpbmNsdWRlICJFdmVudFF1ZXVl
LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgo=
</data>
<flag name="review"
          id="87767"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="87770"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>