<?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>51896</bug_id>
          
          <creation_ts>2011-01-04 14:08:17 -0800</creation_ts>
          <short_desc>Send over text checker state to the web process</short_desc>
          <delta_ts>2011-01-04 14:55:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329203</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-01-04 14:08:17 -0800</bug_when>
    <thetext>Send over text checker state to the web process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329219</commentid>
    <comment_count>1</comment_count>
      <attachid>77932</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-01-04 14:27:19 -0800</bug_when>
    <thetext>Created attachment 77932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329221</commentid>
    <comment_count>2</comment_count>
      <attachid>77932</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-01-04 14:32:54 -0800</bug_when>
    <thetext>Comment on attachment 77932
Patch

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

Do you need to update WebKit2.pro?

r=me if you fix these issues.

&gt; WebKit2/UIProcess/mac/TextCheckerMac.mm:36
&gt; +TextCheckerState textCheckerState;

Will this cause a static constructor to be called?

&gt; WebKit2/UIProcess/mac/TextCheckerMac.mm:39
&gt; +static void initializeState() {
&gt; +    static bool didInitializeState = false;

{ on the wrong line.  I believe the = false is unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329222</commentid>
    <comment_count>3</comment_count>
      <attachid>77932</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-04 14:33:02 -0800</bug_when>
    <thetext>Comment on attachment 77932
Patch

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

&gt; WebKit2/UIProcess/mac/TextCheckerMac.mm:32
&gt; +#define WebAutomaticSpellingCorrectionEnabled @&quot;WebAutomaticSpellingCorrectionEnabled&quot;
&gt; +#define WebContinuousSpellCheckingEnabled @&quot;WebContinuousSpellCheckingEnabled&quot;
&gt; +#define WebGrammarCheckingEnabled @&quot;WebGrammarCheckingEnabled&quot;

Are macros really necessary? Could we do this another way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329231</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-01-04 14:41:59 -0800</bug_when>
    <thetext>Committed r75010: &lt;http://trac.webkit.org/changeset/75010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329238</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-04 14:54:28 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75010 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329240</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-04 14:55:18 -0800</bug_when>
    <thetext>Attachment 77932 did not build on qt:
Build output: http://queues.webkit.org/results/7216409</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329241</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-04 14:55:24 -0800</bug_when>
    <thetext>Attachment 77932 did not build on win:
Build output: http://queues.webkit.org/results/7237406</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77932</attachid>
            <date>2011-01-04 14:27:19 -0800</date>
            <delta_ts>2011-01-04 14:33:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51896-20110104142718.patch</filename>
            <type>text/plain</type>
            <size>24651</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NTAwNikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzQgQEAKKzIwMTEtMDEtMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZW5kIG92ZXIgdGV4dCBjaGVja2VyIHN0YXRlIHRvIHRoZSB3ZWIgcHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4OTYKKworICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmg6CisgICAgICAgIFJlbW92ZSAnY29uc3Qn
IGZyb20gdGhlIGFyZ3VtZW50LCB0aGlzIG1hdGNoZXMgYWxsIHRoZSBvdGhlciBBcmd1bWVudHMg
Y2xhc3Nlcy4KKworICAgICAgICAqIFNoYXJlZC9UZXh0Q2hlY2tlclN0YXRlLmg6IEFkZGVkLgor
ICAgICAgICBOZXcgY2xhc3Mgd2l0aCB0ZXh0IGNoZWNrZXIgc3RhdGUuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgQWRkIHRleHRDaGVja2Vy
U3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyB2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOl0pOiAgICAgICAgCisgICAgICAg
ICgtW1dLVmlldyB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZzpdKToKKyAgICAgICAgKC1b
V0tWaWV3IHRvZ2dsZUdyYW1tYXJDaGVja2luZzpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2ds
ZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbjpdKToKKyAgICAgICAgR2V0IHRoZSBuZWVkZWQg
ZmxhZ3MgZnJvbSB0aGUgdGV4dCBjaGVja2VyIHN0YXRlLgorCisgICAgICAgICogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmg6CisgICAgICAgIEFkZCBzdGF0ZSgpIGZ1bmN0aW9uLCByZW1vdmUgZ2V0
dGVycy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6ZW5zdXJlV2ViUHJvY2Vzcyk6CisgICAgICAgIEluaXRpYWxpemUg
dGhlIHRleHQgY2hlY2tlciBzdGF0ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVRleHRD
aGVja2VyU3RhdGUpOgorICAgICAgICBTZW5kIHRoZSBTZXRUZXh0Q2hlY2tlclN0YXRlIG1lc3Nh
Z2UgdG8gdGhlIHdlYiBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVN0YXRlKToKKyAgICAgICAg
SW5pdGlhbGl6ZSB0aGUgc3RhdGUgZnJvbSB0aGUgdXNlciBkZWZhdWx0cy4KKworICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlcjo6c3RhdGUpOgorICAgICAgICBSZXR1cm4gdGhlIHN0YXRlLgor
CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKToKKyAgICAgICAgTWFrZSBzdXJlIHRvIHdyaXRlIHRo
ZSBuZXcgc3RhdGUuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tl
clF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnN0YXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3Mvd2luL1RleHRDaGVja2VyV2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4
dENoZWNrZXI6OnN0YXRlKToKKyAgICAgICAgQWRkIHN0dWJzLgorCisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgVGV4dENoZWNrZXJTdGF0
ZS5oLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vzcyk6CisgICAgICAgIEluaXRpYWxpemUgbV90ZXh0
Q2hlY2tlclN0YXRlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFRleHRDaGVj
a2VyU3RhdGUpOgorICAgICAgICBVcGRhdGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBTZXRUZXh0Q2hlY2tlclN0YXRlIG1lc3Nh
Z2UuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgIEFkZCBUZXh0Q2hl
Y2tlclN0YXRlLmguCisKIDIwMTEtMDEtMDQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJ1YmJlcnN0YW1wZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDog
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAkocmV2aXNpb24gNzQ5ODgpCisrKyBXZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcg
KzU2LDcgQEAgaW5saW5lIEFyZ3VtZW50czAgT3V0KCkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VDE+IHN0cnVjdCBBcmd1bWVudHMxIHsKLSAgICB0eXBlZGVmIEFyZ3VtZW50czE8dHlwZW5hbWUg
V1RGOjpSZW1vdmVSZWZlcmVuY2U8VDE+OjpUeXBlPiBWYWx1ZVR5cGU7CisgICAgdHlwZWRlZiBB
cmd1bWVudHMxPHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8dHlwZW5hbWUgV1RGOjpSZW1vdmVS
ZWZlcmVuY2U8VDE+OjpUeXBlPjo6VHlwZT4gVmFsdWVUeXBlOwogCiAgICAgQXJndW1lbnRzMSgp
CiAgICAgewpJbmRleDogV2ViS2l0Mi9TaGFyZWQvVGV4dENoZWNrZXJTdGF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvU2hhcmVkL1RleHRDaGVja2VyU3RhdGUuaAkocmV2aXNpb24gMCkKKysr
IFdlYktpdDIvU2hhcmVkL1RleHRDaGVja2VyU3RhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGV4dENoZWNrZXJTdGF0ZV9oCisjZGVmaW5l
IFRleHRDaGVja2VyU3RhdGVfaAorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBUZXh0Q2hlY2tlclN0YXRlIHsKKyAgICBib29sIGlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOworICAgIGJvb2wgaXNHcmFtbWFyQ2hlY2tp
bmdFbmFibGVkOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgaXNBdXRvbWF0aWNTcGVs
bGluZ0NvcnJlY3Rpb25FbmFibGVkOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworbmFtZXNwYWNlIENvcmVJUEMgewordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJLaXQ6OlRleHRDaGVja2VyU3RhdGU+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJLaXQ6
OlRleHRDaGVja2VyU3RhdGU+IHsgfTsKK307CisKKyNlbmRpZiAvLyBUZXh0Q2hlY2tlclN0YXRl
X2gKSW5kZXg6IFdlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCShyZXZpc2lvbiA3NDk4OCkKKysrIFdlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyLT5lbmNvZGUo
c2hvdWxkVHJhY2tWaXNpdGVkTGlua3MpOwogICAgIGVuY29kZXItPmVuY29kZShzaG91bGRBbHdh
eXNVc2VDb21wbGV4VGV4dENvZGVQYXRoKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobGFuZ3VhZ2VD
b2RlKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUodGV4dENoZWNrZXJTdGF0ZSk7CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGVuY29kZXItPmVuY29kZShuc1VSTENhY2hlUGF0aCk7CiAgICAgZW5jb2Rl
ci0+ZW5jb2RlKG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7CkBAIC04OCw2ICs4OSw5IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMubGFuZ3VhZ2VDb2RlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMudGV4dENoZWNrZXJTdGF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVQ
YXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gNzQ5ODgpCisrKyBXZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNjks
NiArNzAsOCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICAgICBT
dHJpbmcgbGFuZ3VhZ2VDb2RlOwogCisgICAgVGV4dENoZWNrZXJTdGF0ZSB0ZXh0Q2hlY2tlclN0
YXRlOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFN0cmluZyBuc1VSTENhY2hlUGF0aDsKICAg
ICB1aW50NjRfdCBuc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHk7CkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1RleHRD
aGVja2VyLmgJKHJldmlzaW9uIDc0OTg5KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTcgKzI4LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitjbGFzcyBUZXh0Q2hlY2tlclN0YXRlOworCiBjbGFzcyBUZXh0Q2hlY2tlciB7CiBw
dWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIHN0YXRlKCk7CiAgICAg
c3RhdGljIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKLSAgICBzdGF0
aWMgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwotICAgIHN0YXRpYyB2
b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKTsKIAotICAgIHN0YXRp
YyBib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOworICAgIHN0YXRpYyB2b2lkIHNldENv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHN0
YXRpYyB2b2lkIHNldEF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoYm9vbCk7Ci0g
ICAgc3RhdGljIGJvb2wgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKCk7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDc0OTg4KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJbW11dGFi
bGVBcnJheS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgiCiAjaW5j
bHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiV0tD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNp
bmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKQEAgLTE3NCw2ICsxNzUsOCBA
QCB2b2lkIFdlYkNvbnRleHQ6OmVuc3VyZVdlYlByb2Nlc3MoKQogCiAgICAgcGFyYW1ldGVycy5z
aG91bGRBbHdheXNVc2VDb21wbGV4VGV4dENvZGVQYXRoID0gbV9hbHdheXNVc2VzQ29tcGxleFRl
eHRDb2RlUGF0aDsKIAorICAgIHBhcmFtZXRlcnMudGV4dENoZWNrZXJTdGF0ZSA9IFRleHRDaGVj
a2VyOjpzdGF0ZSgpOworCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0
ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiA3NDk4OCkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKKyNpbmNs
dWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRl
bS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0
YVN0b3JlLmgiCkBAIC0zOTEsNCArMzkzLDEyIEBAIHNpemVfdCBXZWJQcm9jZXNzUHJveHk6OmZy
YW1lQ291bnRJblBhZ2UKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFRleHRD
aGVja2VyU3RhdGUoVGV4dENoZWNrZXI6OnN0YXRlKCkpLCAwKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24g
NzQ5ODgpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAyLDYgKzEwMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFt
ZXNGcm9tUGFnZShXZWJQYWdlUHJveHkqKTsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUuCiAgICAg
c2l6ZV90IGZyYW1lQ291bnRJblBhZ2UoV2ViUGFnZVByb3h5KikgY29uc3Q7IC8vIEluY2x1ZGlu
ZyBtYWluIGZyYW1lLgogCisgICAgdm9pZCB1cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViUHJvY2Vzc1Byb3h5KFdlYkNvbnRleHQqKTsKIApJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDc0OTg5KQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW1wb3J0ICJSdW5Mb29wLmgi
CiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgorI2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgog
I2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS1N0cmluZ0NGLmgiCiAjaW1wb3J0ICJX
S1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTM0OCwxOSArMzQ5LDE5IEBAIC0gKEJP
T0wpdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTooaWQgPE4KIAogICAgIGlmIChhY3Rpb24gPT0g
QHNlbGVjdG9yKHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOikpIHsKICAgICAgICAgYm9v
bCBlbmFibGVkID0gVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2Vk
KCk7Ci0gICAgICAgIGJvb2wgY2hlY2tlZCA9IGVuYWJsZWQgJiYgVGV4dENoZWNrZXI6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgICAgIGJvb2wgY2hlY2tlZCA9IGVu
YWJsZWQgJiYgVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQ7CiAgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0
YXRlIDogTlNPZmZTdGF0ZV07CiAgICAgICAgIHJldHVybiBlbmFibGVkOwogICAgIH0KIAogICAg
IGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUdyYW1tYXJDaGVja2luZzopKSB7Ci0gICAg
ICAgIGJvb2wgY2hlY2tlZCA9IFRleHRDaGVja2VyOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KTsKKyAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFy
Q2hlY2tpbmdFbmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tl
ZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0K
IAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbjopKSB7Ci0gICAgICAgIGJvb2wgY2hlY2tlZCA9IFRleHRDaGVja2VyOjppc0F1dG9t
YXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKTsKKyAgICAgICAgYm9vbCBjaGVja2VkID0g
VGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVk
OwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6
IE5TT2ZmU3RhdGVdOwogICAgICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5zZWxlY3Rpb25TdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0KQEAgLTQyNCwyNSArNDI1LDMxIEBAIC0gKElC
QWN0aW9uKWNoZWNrU3BlbGxpbmc6KGlkKXNlbmRlcgogCiAtIChJQkFjdGlvbil0b2dnbGVDb250
aW51b3VzU3BlbGxDaGVja2luZzooaWQpc2VuZGVyCiB7Ci0gICAgYm9vbCBzcGVsbENoZWNraW5n
RW5hYmxlZCA9ICFUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKKyAgICBib29sIHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgp
LmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwogCisg
ICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCktPnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKwog
ICAgIGlmICghc3BlbGxDaGVja2luZ0VuYWJsZWQpCiAgICAgICAgIF9kYXRhLT5fcGFnZS0+dW5t
YXJrQWxsTWlzc3BlbGxpbmdzKCk7CiB9CiAKIC0gKElCQWN0aW9uKXRvZ2dsZUdyYW1tYXJDaGVj
a2luZzooaWQpc2VuZGVyCiB7Ci0gICAgYm9vbCBncmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gIVRl
eHRDaGVja2VyOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKyAgICBib29sIGdyYW1tYXJD
aGVja2luZ0VuYWJsZWQgPSAhVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tpbmdF
bmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1t
YXJDaGVja2luZ0VuYWJsZWQpOwogCisgICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCktPnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKKwogICAgIGlmICghZ3JhbW1hckNoZWNraW5nRW5hYmxlZCkK
ICAgICAgICAgX2RhdGEtPl9wYWdlLT51bm1hcmtBbGxCYWRHcmFtbWFyKCk7CiB9CiAKIC0gKElC
QWN0aW9uKXRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbjooaWQpc2VuZGVyCiB7Ci0g
ICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoIVRl
eHRDaGVja2VyOjppc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSk7CisgICAg
VGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoIVRleHRD
aGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCk7CisK
KyAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS0+dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwog
fQogCiAvLyBFdmVudHMKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMu
bW0JKHJldmlzaW9uIDc0OTg5KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2Vy
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMzkgQEAKIAogI2luY2x1ZGUgIlRl
eHRDaGVja2VyLmgiCiAKKyNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisKKyNkZWZpbmUg
V2ViQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCBAIldlYkF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbkVuYWJsZWQiCisjZGVmaW5lIFdlYkNvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCBAIldlYkNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCIKKyNkZWZpbmUgV2Vi
R3JhbW1hckNoZWNraW5nRW5hYmxlZCBAIldlYkdyYW1tYXJDaGVja2luZ0VuYWJsZWQiCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgYm9vbCBjb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQ7Ci1zdGF0aWMgYm9vbCBncmFtbWFyQ2hlY2tpbmdFbmFibGVkOwotc3RhdGljIGJvb2wg
YXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZDsKK1RleHRDaGVja2VyU3RhdGUgdGV4
dENoZWNrZXJTdGF0ZTsKKworc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN0YXRlKCkgeworICAgIHN0
YXRpYyBib29sIGRpZEluaXRpYWxpemVTdGF0ZSA9IGZhbHNlOworICAgIGlmIChkaWRJbml0aWFs
aXplU3RhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIHRleHRDaGVja2VyU3RhdGUuaXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZF0g
JiYgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCk7CisgICAg
dGV4dENoZWNrZXJTdGF0ZS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkdyYW1tYXJDaGVja2luZ0Vu
YWJsZWRdOworICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rp
b25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZv
cktleTpXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsKICAgICAKKyNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgaWYgKCFbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZF0pCisgICAgICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkID0gW05TU3BlbGxDaGVja2VyIGlzQXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZF07CisjZW5kaWYKKworICAgIGRpZEluaXRpYWxpemVT
dGF0ZSA9IHRydWU7Cit9CisKK2NvbnN0IFRleHRDaGVja2VyU3RhdGUmIFRleHRDaGVja2VyOjpz
dGF0ZSgpCit7CisgICAgaW5pdGlhbGl6ZVN0YXRlKCk7CisgICAgcmV0dXJuIHRleHRDaGVja2Vy
U3RhdGU7Cit9CisKIGJvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdB
bGxvd2VkKCkKIHsKICAgICBzdGF0aWMgYm9vbCBhbGxvd0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
ID0gdHJ1ZTsKQEAgLTQ2LDI3ICs3MywyNCBAQCBib29sIFRleHRDaGVja2VyOjppc0NvbnRpbnVv
dXNTcGVsbENoZWNrCiAgICAgcmV0dXJuIGFsbG93Q29udGludW91c1NwZWxsQ2hlY2tpbmc7CiB9
CiAKLWJvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkK
LXsKLSAgICByZXR1cm4gY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkICYmIGlzQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCk7Ci19Ci0KIHZvaWQgVGV4dENoZWNrZXI6OnNldENv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKQogewotICAgIGNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCA9IGlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOworICAgIGlmIChzdGF0ZSgpLmlzQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkID09IGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KQorICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHRl
eHRDaGVja2VyU3RhdGUuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBpc0NvbnRp
bnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBzZXRCb29sOmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGZv
cktleTpXZWJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdOwogCiAgICAgLy8gRklYTUU6
IHByZWZsaWdodCB0aGUgc3BlbGwgY2hlY2tlci4KIH0KIAotYm9vbCBUZXh0Q2hlY2tlcjo6aXNH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gZ3JhbW1hckNoZWNraW5nRW5h
YmxlZDsKLX0KLQogdm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChi
b29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCkKIHsKLSAgICBncmFtbWFyQ2hlY2tpbmdFbmFi
bGVkID0gaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOworICAgIGlmIChzdGF0ZSgpLmlzR3JhbW1h
ckNoZWNraW5nRW5hYmxlZCA9PSBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpCisgICAgICAgIHJl
dHVybjsKIAorICAgIHRleHRDaGVja2VyU3RhdGUuaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkID0g
aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOworICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHNldEJvb2w6aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkIGZvcktleTpXZWJH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkXTsgICAgCiAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdIHVwZGF0ZVBhbmVsc107CiAgICAgCiAgICAgLy8gV2UgY2FsbCBwcmVmbGln
aHRTcGVsbENoZWNrZXIoKSB3aGVuIHR1cm5pbmcgY29udGludW91cyBzcGVsbCBjaGVja2luZyBv
biwgYnV0IHdlIGRvbid0IG5lZWQgdG8gZG8gdGhhdCBoZXJlCkBAIC03NSwxNiArOTksMTMgQEAg
dm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYgogCiB2b2lkIFRleHRDaGVj
a2VyOjpzZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKGJvb2wgaXNBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKQogewotICAgIGlmIChhdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb25FbmFibGVkID09IGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxl
ZCkKKyAgICBpZiAoc3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQg
PT0gaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkID0gaXNBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkOwotICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3Bl
bGxDaGVja2VyXSB1cGRhdGVQYW5lbHNdOwotfQorICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRv
bWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkID0gaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJl
Y3Rpb25FbmFibGVkOworICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHNldEJvb2w6aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkIGZvcktleTpXZWJB
dXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXTsgICAgCiAKLWJvb2wgVGV4dENoZWNr
ZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJu
IGF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQ7CisgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIHVwZGF0ZVBhbmVsc107CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAJKHJldmlz
aW9uIDc0OTg4KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDE5IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIK
IAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKKyAgCitzdGF0aWMgVGV4dENoZWNrZXJTdGF0ZSB0
ZXh0Q2hlY2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBUZXh0Q2hlY2tlcjo6
c3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgCisgICAgcmV0dXJuIHRleHRD
aGVja2VyU3RhdGU7Cit9CisKIGJvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hl
Y2tpbmdBbGxvd2VkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1RleHRDaGVja2VyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy93aW4vVGV4dENoZWNrZXJXaW4uY3BwCShyZXZpc2lvbiA3NDk4OCkKKysrIFdlYktp
dDIvVUlQcm9jZXNzL3dpbi9UZXh0Q2hlY2tlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDkgKzI2LDE5IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKIAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKLSAgICAKKworc3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0
ZTsKKworY29uc3QgVGV4dENoZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRlKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgcmV0dXJuIHRleHRDaGVja2VyU3RhdGU7Cit9Cisg
IAogYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzQ5ODgpCisrKyBXZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw3IEBA
CiAJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCBpbiBDb3B5Rmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1MERCMUUxMTBBM0JEQzAw
MEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwICovOyB9OwogCQkxQTU5NEFCQTExMkExRkI2MDA5REU3
QzcgLyogV2ViVUlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUE1OTRBQjgxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmNwcCAq
LzsgfTsKIAkJMUE1OTRBQkIxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU5NEFCOTExMkExRkI2
MDA5REU3QzcgLyogV2ViVUlDbGllbnQuaCAqLzsgfTsKKwkJMUE1RTREQTQxMkQzQkQzRDAwOTlB
MkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNUU0REEzMTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0
YXRlLmggKi87IH07CiAJCTFBNjE2MTRGMTI3Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZE1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2
MTYxNEQxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5jcHAgKi87IH07CiAJCTFB
NjE2MTUwMTI3Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjE2MTRFMTI3Nzk4QjUwMDNBQ0Q4
NiAvKiBEb3dubG9hZE1hbmFnZXIuaCAqLzsgfTsKIAkJMUE2MTYxRDQxMjc4OTgxQzAwM0FDRDg2
IC8qIERvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQTYxNjFEMjEyNzg5ODFDMDAzQUNEODYgLyogRG93bmxvYWQuaCAqLzsgfTsKQEAgLTc4
MSw2ICs3ODIsNyBAQAogCQkxQTUwREIxRTExMEEzQkRDMDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5h
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBw
ZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3MuYXBw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQTU5NEFCODExMkExRkI2
MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViVUlDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViVUlDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUE1RTREQTMxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTYxNjE0RDEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxv
YWRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25s
b2FkTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjE2MTRFMTI3
Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRG93bmxvYWRNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBNjE2MUQyMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEb3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYzMiw2ICsxNjM0LDcgQEAKIAkJCQkxQUFCNEE4QzEyOTZGMEEyMDAyMzk1MkYgLyog
U2FuZGJveEV4dGVuc2lvbi5oICovLAogCQkJCTFBQTQxQUI0MTJDMDJFQzQwMDJCRTY3QiAvKiBT
ZWxlY3Rpb25TdGF0ZS5oICovLAogCQkJCUJDQkQzQzNBMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJp
bmdQYWlyVmVjdG9yLmggKi8sCisJCQkJMUE1RTREQTMxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRD
aGVja2VyU3RhdGUuaCAqLywKIAkJCQlCQ0IwQjBERjEyMzA1QUIxMDBCMTM0MUUgLyogVXNlck1l
c3NhZ2VDb2RlcnMuaCAqLywKIAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkgLyogVmlzaXRl
ZExpbmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0
ZWRMaW5rVGFibGUuaCAqLywKQEAgLTI4MjEsNiArMjgyNCw3IEBACiAJCQkJQkNDRjZBQ0ExMkM5
MUY1OTAwOEY5QzM1IC8qIFdLSW1hZ2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQzExMUYx
MkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0NGNkIyNTEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQTVFNERBNDEyRDNCRDNEMDA5OUEyQkIgLyogVGV4dENoZWNr
ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA3NDk4OCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3Mo
KQogI2lmIFBMQVRGT1JNKFFUKQogICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcigwKQogI2Vu
ZGlmCisgICAgLCBtX3RleHRDaGVja2VyU3RhdGUoKQogewogI2lmIFVTRShQTEFURk9STV9TVFJB
VEVHSUVTKQogICAgIC8vIEluaXRpYWxpemUgb3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMuCkBAIC02
MTAsNCArNjExLDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpjYW5jZWxEb3dubG9hZCh1aW50NjRfdAog
ICAgIERvd25sb2FkTWFuYWdlcjo6c2hhcmVkKCkuY2FuY2VsRG93bmxvYWQoZG93bmxvYWRJRCk7
CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0VGV4dENoZWNrZXJTdGF0ZShjb25zdCBUZXh0Q2hl
Y2tlclN0YXRlJiB0ZXh0Q2hlY2tlclN0YXRlKQoreworICAgIG1fdGV4dENoZWNrZXJTdGF0ZSA9
IHRleHRDaGVja2VyU3RhdGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiA3NDk4OCkKKysrIFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIlNo
YXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbmNsdWRlICJW
aXNpdGVkTGlua1RhYmxlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CkBAIC0xMDEsNiArMTAyLDggQEAgcHVibGljOgogCiAg
ICAgYm9vbCBzaG91bGRVc2VDdXN0b21SZXByZXNlbnRhdGlvbkZvck1JTUVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpIGNvbnN0IHsgcmV0dXJuIG1fbWltZVR5cGVzV2l0aEN1c3RvbVJlcHJl
c2VudGF0aW9ucy5jb250YWlucyhtaW1lVHlwZSk7IH0KIAorICAgIGNvbnN0IFRleHRDaGVja2Vy
U3RhdGUmIHRleHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRDaGVja2VyU3Rh
dGU7IH0KKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAKQEAgLTEzMiw2ICsxMzUsOCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBjYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElE
KTsKIAorICAgIHZvaWQgc2V0VGV4dENoZWNrZXJTdGF0ZShjb25zdCBUZXh0Q2hlY2tlclN0YXRl
Jik7CisKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
OwpAQCAtMTY3LDYgKzE3Miw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV2Vi
RnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFz
aD4gbV9taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50YXRpb25zOworCisgICAgVGV4dENoZWNr
ZXJTdGF0ZSBtX3RleHRDaGVja2VyU3RhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lv
biA3NDk4OCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC01MCw0ICs1MCw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mgewog
ICAgICMgRG93bmxvYWRzLiBUaGlzIHNob3VsZCByZWFsbHkgYmUgaW4gYSBEb3dubG9hZC5tZXNz
YWdlcy5pbiwgYnV0IGl0IHNlZW1lZCB1bm5lY2Vzc2FyeSB0byBjcmVhdGUgYSBuZXcgZmlsZSBq
dXN0IGZvcgogICAgICMgYSBzaW5nbGUgbWVzc2FnZS4KICAgICBDYW5jZWxEb3dubG9hZCh1aW50
NjRfdCBkb3dubG9hZElEKQorCisgICAgU2V0VGV4dENoZWNrZXJTdGF0ZShXZWJLaXQ6OlRleHRD
aGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZSkKIH0KSW5kZXg6IFdlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZp
c2lvbiA3NDk4OCkKKysrIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00OTksNiArNDk5LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxUZXh0Q2hlY2tlclN0YXRlLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxVc2VyTWVzc2FnZUNv
ZGVycy5oIgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>
<flag name="review"
          id="69173"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>