<?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>79460</bug_id>
          
          <creation_ts>2012-02-24 00:35:26 -0800</creation_ts>
          <short_desc>RunLoop should be an event processing loop for all threads.</short_desc>
          <delta_ts>2012-05-03 03:34:38 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dimich</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>jbates</cc>
    
    <cc>levin</cc>
    
    <cc>menard</cc>
    
    <cc>nduca</cc>
    
    <cc>paroga</cc>
    
    <cc>sam</cc>
    
    <cc>skyul</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564043</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 00:35:26 -0800</bug_when>
    <thetext>RunLoop origins from CFRunLoop of Cocoa that is part of the fundamental
infrastructure associated with threads.
RunLoop can be used as a common event loop on every threads in WebKit.
For example, ScrollThread can use RunLoop in order to remove boilerplate code
related to handle an event loop and its own tasks.

Referential bugs : Bug 66962 , Bug 76751</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564045</commentid>
    <comment_count>1</comment_count>
      <attachid>128677</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 00:36:45 -0800</bug_when>
    <thetext>Created attachment 128677
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564046</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 00:37:59 -0800</bug_when>
    <thetext>If this patch will be passed, I want to apply following classes.
 ScrollingThread
 StorageThread
 FileThread
 DatabaseThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564057</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 00:47:24 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; RunLoop origins from CFRunLoop of Cocoa that is part of the fundamental
&gt; infrastructure associated with threads.
Android Looper is also very similar to CFRunLoop.
Looper and Handler in Android is very comfortable to communicate between threads.
I want something like those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564143</commentid>
    <comment_count>4</comment_count>
      <attachid>128696</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 02:48:24 -0800</bug_when>
    <thetext>Created attachment 128696
ScrollThread patch

This patch can makes ScrollThread succinct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564422</commentid>
    <comment_count>5</comment_count>
      <attachid>128677</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-24 10:11:28 -0800</bug_when>
    <thetext>Comment on attachment 128677
patch

This doesn&apos;t make sense, there&apos;s no point in calling RunLoop::run() on anything other than the current run loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564850</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-24 20:59:23 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 128677 [details])
&gt; This doesn&apos;t make sense, there&apos;s no point in calling RunLoop::run() on anything other than the current run loop.

Yes, only the current run loop calls RunLoop::run() now.
But, if changing RunLoop::run() from static to normal member method, we can use RunLoop in another thread like attachment 128696.

I sumited this patch because I agree with Carlsson&apos;s change log of revision 106565.
&quot;Hopefully we&apos;ll be able to make ScrollingThread use the new WebCore::RunLoop class eventually.&quot;

What point do I need to do more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615140</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-05-03 03:34:38 -0700</bug_when>
    <thetext>I think Bug 51857 is the meta bug of this bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128677</attachid>
            <date>2012-02-24 00:36:45 -0800</date>
            <delta_ts>2012-02-24 10:11:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-RunLoop-should-be-an-event-processing-loop-for-all-t.patch</filename>
            <type>text/plain</type>
            <size>12683</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSAyZmMzZTU1NGExYTJlZDM1YWU5N2NhZDI5NWU1NDQ5ZmM4NzJlNTVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IEZyaSwgMjQgRmViIDIwMTIgMTY6MTI6MTAgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBSdW5Mb29wIHNob3VsZCBiZSBhbiBldmVudCBwcm9jZXNzaW5nIGxvb3AgZm9yIGFsbCB0aHJl
YWRzLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDYwCgpSdW5M
b29wIG9yaWdpbnMgZnJvbSBDRlJ1bkxvb3Agb2YgQ29jb2EgdGhhdCBpcyBwYXJ0IG9mIHRoZSBm
dW5kYW1lbnRhbAppbmZyYXN0cnVjdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhyZWFkcy4KUnVuTG9v
cCBjYW4gYmUgdXNlZCBhcyBhIGNvbW1vbiBldmVudCBsb29wIG9uIGV2ZXJ5IHRocmVhZHMgaW4g
V2ViS2l0LgpGb3IgZXhhbXBsZSwgU2Nyb2xsVGhyZWFkIGNhbiB1c2UgUnVuTG9vcCBpbiBvcmRl
ciB0byByZW1vdmUgYm9pbGVycGxhdGUgY29kZQpyZWxhdGVkIHRvIGhhbmRsZSBhbiBldmVudCBs
b29wIGFuZCBpdHMgb3duIHRhc2tzLgotLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxv
b3AuY3BwICAgICAgICAgICAgICAgIHwgICAgNSArKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW5Mb29wLmggICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysrKystCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgICAgICAgICB8ICAgIDcgKy0tLS0tCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbSAgICAgICAgICB8ICAgIDYg
KystLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCAgICAgICAgICAg
fCAgIDI0ICsrKysrKysrKy0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9S
dW5Mb29wV2luLmNwcCAgICAgICAgIHwgICAgOCArKysrLS0KIC4uLi9QbHVnaW5Qcm9jZXNzL2d0
ay9QbHVnaW5Qcm9jZXNzTWFpbkd0ay5jcHAgICAgIHwgICAgMiArLQogLi4uL1BsdWdpblByb2Nl
c3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tICAgICAgfCAgICAyICstCiAuLi4vUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcCAgICAgICB8ICAgIDIgKy0KIC4uLi9V
SVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgICAgIHwgICAgMiArLQog
Li4uL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4uY3BwICAgfCAgICAy
ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8
ICAgIDIgKy0KIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNw
cCAgIHwgICAgMiArLQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5H
dGsuY3BwICAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzTWFpbk1hYy5tbSB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc01haW5RdC5jcHAgIHwgICAgMiArLQogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4v
V2ViUHJvY2Vzc01haW5XaW4uY3BwICAgfCAgICAyICstCiAxNyBmaWxlcyBjaGFuZ2VkLCA0NiBp
bnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3Au
Y3BwCmluZGV4IGNiYmNhNGMuLmE2NDc3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3Au
Y3BwCkBAIC01NSw2ICs1NSwxMSBAQCBSdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKIAogI2VuZGlm
CiAKK2Jvb2wgUnVuTG9vcDo6aXNNYWluKCkKK3sKKyAgICByZXR1cm4gdGhpcyA9PSBtYWluKCk7
Cit9CisKIHZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQogewogICAgIFZlY3RvcjxGdW5jdGlv
bjx2b2lkKCk+ID4gZnVuY3Rpb25RdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaAppbmRl
eCAxZjE5YzgzLi4xMmY1OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCkBAIC00Myw2
ICs0MywxMiBAQCB0eXBlZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKIHR5
cGVkZWYgaW50IGdib29sZWFuOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkKK1FUX0JFR0lO
X05BTUVTUEFDRQorY2xhc3MgUUV2ZW50TG9vcDsKK1FUX0VORF9OQU1FU1BBQ0UKKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJ1bkxvb3AgewpAQCAtNTYsNyArNjIsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsK
IAotICAgIHN0YXRpYyB2b2lkIHJ1bigpOworICAgIC8vIEZJWE1FIDogTUFDICYgUVQgYWxsb3cg
cmVlbnRyYW5jZSBidXQgV0lOICYgR1RLIGRvIG5vdC4KKyAgICB2b2lkIHJ1bigpOwogICAgIHZv
aWQgc3RvcCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTI5LDYgKzEzNiw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7CiAgICAgdm9pZCB3YWtlVXAoKTsKKyAgICBi
b29sIGlzTWFpbigpOwogCiAgICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsKICAgICBWZWN0
b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKQEAgLTE1MiwxMCArMTYwLDEw
IEBAIHByaXZhdGU6CiAgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CiAgICAgY2xhc3MgVGlt
ZXJPYmplY3Q7CiAgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7CisgICAgUUV2ZW50TG9v
cCogbV9jdXJyZW50RXZlbnRMb29wOwogI2VsaWYgUExBVEZPUk0oR1RLKQogcHVibGljOgogICAg
IHN0YXRpYyBnYm9vbGVhbiBxdWV1ZVdvcmsoUnVuTG9vcCopOwotICAgIEdNYWluTG9vcCogbWFp
bkxvb3AoKTsKIHByaXZhdGU6CiAgICAgR01haW5Db250ZXh0KiBtX3J1bkxvb3BDb250ZXh0Owog
ICAgIEdNYWluTG9vcCogbV9ydW5Mb29wTWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SdW5Mb29wR3RrLmNwcAppbmRleCA5MjlhN2I5Li43YmNlMGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCkBAIC01MywxMiArNTMsNyBAQCBSdW5Mb29w
Ojp+UnVuTG9vcCgpCiAKIHZvaWQgUnVuTG9vcDo6cnVuKCkKIHsKLSAgICBnX21haW5fbG9vcF9y
dW4oUnVuTG9vcDo6bWFpbigpLT5tYWluTG9vcCgpKTsKLX0KLQotR01haW5Mb29wKiBSdW5Mb29w
OjptYWluTG9vcCgpCi17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW47CisgICAgZ19tYWluX2xv
b3BfcnVuKG1fcnVuTG9vcE1haW4pOwogfQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQppbmRleCA0NmZhNGMyLi42MjM5MmY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpAQCAtOTQsOCAr
OTQsOCBAQCBSdW5Mb29wOjp+UnVuTG9vcCgpCiAKIHZvaWQgUnVuTG9vcDo6cnVuKCkKIHsKLSAg
ICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgaWYgKGN1cnJlbnQoKSA9PSBtYWlu
KCkgJiYgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCA9PSAxKSB7CisgICAgbV9uZXN0aW5nTGV2
ZWwrKzsKKyAgICBpZiAoaXNNYWluKCkgJiYgbV9uZXN0aW5nTGV2ZWwgPT0gMSkgewogICAgICAg
ICAvLyBVc2UgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gZm9yIHRoZSBtYWluIHJ1biBsb29wLgogICAg
ICAgICBbTlNBcHAgcnVuXTsKICAgICB9IGVsc2UgewpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQg
UnVuTG9vcDo6cnVuKCkKICAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7CiAgICAgICAgIFtwb29sIGRy
YWluXTsKICAgICB9Ci0gICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOworICAgIG1fbmVz
dGluZ0xldmVsLS07CiB9CiAKIHZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKaW5kZXggMmE4
N2UyZi4uMDlhYTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3Bw
CkBAIC01OSwzNyArNTksMzUgQEAgcHJpdmF0ZToKICAgICBRTWV0YU1ldGhvZCBtX21ldGhvZDsK
IH07CiAKLXN0YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOwotCiB2b2lkIFJ1bkxv
b3A6OnJ1bigpCiB7Ci0gICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZh
bHNlOwotICAgIGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykgewotICAgICAgICBtYWluRXZl
bnRMb29wSXNSdW5uaW5nID0gdHJ1ZTsKKyAgICBpZiAoaXNNYWluKCkgJiYgIW1fY3VycmVudEV2
ZW50TG9vcCkKICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOwotICAgICAgICBtYWlu
RXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0gICAgfSBlbHNlIHsKKyAgICBlbHNlIHsKICAg
ICAgICAgUUV2ZW50TG9vcCBldmVudExvb3A7CiAKLSAgICAgICAgUUV2ZW50TG9vcCogcHJldmlv
dXNFdmVudExvb3AgPSBjdXJyZW50RXZlbnRMb29wOwotICAgICAgICBjdXJyZW50RXZlbnRMb29w
ID0gJmV2ZW50TG9vcDsKKyAgICAgICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3AgPSBt
X2N1cnJlbnRFdmVudExvb3A7CisgICAgICAgIG1fY3VycmVudEV2ZW50TG9vcCA9ICZldmVudExv
b3A7CiAKICAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKIAotICAgICAgICBjdXJyZW50RXZlbnRM
b29wID0gcHJldmlvdXNFdmVudExvb3A7CisgICAgICAgIG1fY3VycmVudEV2ZW50TG9vcCA9IHBy
ZXZpb3VzRXZlbnRMb29wOwogICAgIH0KIH0KIAogdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKLSAg
ICBpZiAoY3VycmVudEV2ZW50TG9vcCkKLSAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+ZXhpdCgp
OwotICAgIGVsc2UKKyAgICBpZiAobV9jdXJyZW50RXZlbnRMb29wKQorICAgICAgICBtX2N1cnJl
bnRFdmVudExvb3AtPmV4aXQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpbigp
KTsKICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOworICAgIH0KIH0KIAogUnVuTG9v
cDo6UnVuTG9vcCgpCiAgICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkK
KyAgICAsIG1fY3VycmVudEV2ZW50TG9vcCgwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKaW5kZXggMTY2M2I2Ni4uYjRjZTIwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiV2luZG93c0V4dHJhcy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAK
QEAgLTg0LDggKzg1LDYgQEAgdm9pZCBSdW5Mb29wOjpzdG9wKCkKIAogYm9vbCBSdW5Mb29wOjpy
ZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQogewotICAgIC8vIEZJWE1FOiBUaGlz
IHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCiAgICAgV05EQ0xBU1Mgd2lu
ZG93Q2xhc3MgPSB7IDAgfTsKICAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5M
b29wOjpSdW5Mb29wV25kUHJvYzsKICAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBz
aXplb2YoUnVuTG9vcCopOwpAQCAtOTYsNyArOTUsMTAgQEAgYm9vbCBSdW5Mb29wOjpyZWdpc3Rl
clJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQogCiBSdW5Mb29wOjpSdW5Mb29wKCkKIHsKLSAg
ICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICAvLyBUaGlzIHJlYWxs
eSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgorICAgIGJvb2wgZmlyc3RUaW1lID0gaXNN
YWluVGhyZWFkKCkgJiYgIW1haW4oKTsKKyAgICBpZiAoZmlyc3RUaW1lKQorICAgICAgICByZWdp
c3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKIAogICAgIG1fcnVuTG9vcE1lc3NhZ2VX
aW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUsIDAs
IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VTRURF
RkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Qcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Qcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggOTkyZDc0
MC4uYWRlYjhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9ndGsv
UGx1Z2luUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvZ3RrL1BsdWdpblByb2Nlc3NNYWluR3RrLmNwcApAQCAtNjgsNyArNjgsNyBAQCBXS19FWFBP
UlQgaW50IFBsdWdpblByb2Nlc3NNYWluR3RrKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAKICAg
ICBpbnQgc29ja2V0ID0gYXRvaShhcmd2WzFdKTsKICAgICBXZWJLaXQ6OlBsdWdpblByb2Nlc3M6
OnNoYXJlZCgpLmluaXRpYWxpemUoc29ja2V0LCBSdW5Mb29wOjptYWluKCkpOwotICAgIFJ1bkxv
b3A6OnJ1bigpOworICAgIFJ1bkxvb3A6Om1haW4oKS0+cnVuKCk7CiAKICAgICByZXR1cm4gMDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01haW5NYWMubW0KaW5kZXggODU2MWY5OS4uNmY0MGFlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMu
bW0KQEAgLTExMSw3ICsxMTEsNyBAQCBpbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFu
ZExpbmUmIGNvbW1hbmRMaW5lKQogCiAgICAgW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRp
b25dOwogCi0gICAgUnVuTG9vcDo6cnVuKCk7CisgICAgUnVuTG9vcDo6bWFpbigpLT5ydW4oKTsK
ICAgICAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCmluZGV4IGQzYTBlYzMuLmU0YjQ1
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJv
Y2Vzc01haW5RdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVn
aW5Qcm9jZXNzTWFpblF0LmNwcApAQCAtNjIsNyArNjIsNyBAQCBpbnQgUGx1Z2luUHJvY2Vzc01h
aW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQogICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAotICAg
IFJ1bkxvb3A6OnJ1bigpOworICAgIFJ1bkxvb3A6Om1haW4oKS0+cnVuKCk7CiAKICAgICByZXR1
cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9UaHJlYWRMYXVuY2hlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcAppbmRleCAzN2QwNDVmLi4xZmVhYWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExh
dW5jaGVyUXQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIHdlYlRocmVhZEJvZHko
dm9pZCogLyogY29udGV4dCAqLykKICAgICAvLyBGSVhNRTogV2UgZG8gbm90IHN1cHBvcnQgdGhy
ZWFkZWQgbW9kZSBmb3Igbm93LgogCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlhbGl6
ZSgtMSwgUnVuTG9vcDo6Y3VycmVudCgpKTsKLSAgICBSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5M
b29wOjpjdXJyZW50KCktPnJ1bigpOwogfQogCiBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIFRocmVhZExhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNw
cAppbmRleCA1YWJlYzdhLi41OGE1NGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcApAQCAtNDUs
NyArNDUsNyBAQCBzdGF0aWMgdm9pZCB3ZWJUaHJlYWRCb2R5KHZvaWQqIGNvbnRleHQpCiAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwogCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
aW5pdGlhbGl6ZShjbGllbnRJZGVudGlmaWVyLCBSdW5Mb29wOjpjdXJyZW50KCkpOwotICAgIFJ1
bkxvb3A6OnJ1bigpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+cnVuKCk7CiB9CiAKIENvcmVJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgVGhyZWFkTGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVh
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMmMxYzM5OS4uNzQ1MTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMjkyNSw3ICsyOTI1LDcgQEAgdm9pZCBXZWJQYWdlOjpydW5N
b2RhbCgpCiAKICAgICBtX2lzUnVubmluZ01vZGFsID0gdHJ1ZTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bk1vZGFsKCkpOwotICAgIFJ1bkxvb3A6OnJ1bigpOworICAgIFJ1
bkxvb3A6Om1haW4oKS0+cnVuKCk7CiAgICAgQVNTRVJUKCFtX2lzUnVubmluZ01vZGFsKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01h
aW5FZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5F
ZmwuY3BwCmluZGV4IDA4ZjNiYjUuLjYyZDE4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAg
V0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFpbkVmbChpbnQgYXJnYywgY2hhciogYXJndltdKQog
CiAgICAgaW50IHNvY2tldCA9IGF0b2koYXJndlsxXSk7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuaW5pdGlhbGl6ZShzb2NrZXQsIFJ1bkxvb3A6Om1haW4oKSk7Ci0gICAgUnVuTG9vcDo6cnVu
KCk7CisgICAgUnVuTG9vcDo6bWFpbigpLT5ydW4oKTsKIAogICAgIHJldHVybiAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAK
aW5kZXggYWFjYzI3Yi4uODFmNzM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtNjQsNyArNjQsNyBAQCBXS19FWFBP
UlQgaW50IFdlYlByb2Nlc3NNYWluR3RrKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgU291
cFNlc3Npb24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Np
b24oKTsKICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmVfYnlfdHlwZShzZXNzaW9uLCBXRUJf
VFlQRV9BVVRIX0RJQUxPRyk7CiAKLSAgICBSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5Mb29wOjpt
YWluKCktPnJ1bigpOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCmluZGV4IDRlMmIxNTUuLmY4ZjRh
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWluTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWluTWFjLm1tCkBAIC0xNzMsNyArMTczLDcgQEAgaW50IFdlYlByb2Nlc3NNYWluKGNvbnN0IENv
bW1hbmRMaW5lJiBjb21tYW5kTGluZSkKIAogICAgIFdLQVhSZWdpc3RlclJlbW90ZUFwcCgpOwog
ICAgIAotICAgIFJ1bkxvb3A6OnJ1bigpOworICAgIFJ1bkxvb3A6Om1haW4oKS0+cnVuKCk7CiAK
ICAgICAvLyBGSVhNRTogRG8gbW9yZSBjbGVhbnVwIGhlcmUuCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCmluZGV4IDkxZTdhZTQuLmZj
YzlmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vz
c01haW5RdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNz
TWFpblF0LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIFFfREVDTF9FWFBPUlQgaW50IFdlYlByb2Nl
c3NNYWluUXQoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgV2ViS2l0OjpXZWJQcm9jZXNz
OjpzaGFyZWQoKS5pbml0aWFsaXplKGlkZW50aWZpZXIsIFJ1bkxvb3A6Om1haW4oKSk7CiAKLSAg
ICBSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5Mb29wOjptYWluKCktPnJ1bigpOwogCiAgICAgLy8g
RklYTUU6IERvIG1vcmUgY2xlYW51cCBoZXJlLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKaW5kZXggMmE3MDY4NS4uOTljNjFl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc01h
aW5XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NN
YWluV2luLmNwcApAQCAtNzksNyArNzksNyBAQCBpbnQgV2ViUHJvY2Vzc01haW4oY29uc3QgQ29t
bWFuZExpbmUmIGNvbW1hbmRMaW5lKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLmluaXRpYWxpemUoY2xpZW50SWRlbnRpZmllciwgUnVuTG9vcDo6bWFpbigp
KTsKLSAgICBSdW5Mb29wOjpydW4oKTsKKyAgICBSdW5Mb29wOjptYWluKCktPnJ1bigpOwogCiAg
ICAgcmV0dXJuIDA7CiB9Ci0tIAoxLjcuNS40Cgo=
</data>
<flag name="review"
          id="131127"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>128696</attachid>
            <date>2012-02-24 02:48:24 -0800</date>
            <delta_ts>2012-02-24 02:50:52 -0800</delta_ts>
            <desc>ScrollThread patch</desc>
            <filename>0001-ScrollThread-uses-RunLoop-instead-of-CFRunLoop.patch</filename>
            <type>text/plain</type>
            <size>10553</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSBmYmExYzU2MjlmZTQ1M2JiZWMxNjgxNmM1ZjI0ZWQ2ZDBiNzZmZjRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IEZyaSwgMjQgRmViIDIwMTIgMTk6Mzk6MzMgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBTY3JvbGxUaHJlYWQgdXNlcyBSdW5Mb29wIGluc3RlYWQgb2YgQ0ZSdW5Mb29wLgogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDYwCgpSZXZpc2lvbiAxMDgxNDAg
c3VnZ2VzdGVkIHRoaXMuCi0tLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qICAgfCAgICA0IC0KIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RocmVhZC5jcHAgIHwgICAzNSArKystLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaCAgICB8ICAgMjMgKy0tLS0tLQogLi4uL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUaHJlYWRNYWMubW0gICAgICAgfCAgIDY5IC0tLS0tLS0t
LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDExOSBkZWxl
dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1NDMxY2EuLjhmYWM0ZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTYwMiw3ICs2MDIsNiBAQAogCQkxQUY2MkVFNjE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUY2MkVFMzE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMubW0gKi87IH07CiAJCTFBRjYyRUU3MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwICov
OyB9OwogCQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRjYyRUU1
MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFBRjYyRjI0MTREQUZFOTEwMDQx
NTU2QyAvKiBTY3JvbGxpbmdUaHJlYWRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY2MkYyMzE0REFGRTkxMDA0MTU1NkMgLyogU2Nyb2xsaW5n
VGhyZWFkTWFjLm1tICovOyB9OwogCQkxQUY2MkYyNTE0REFGRTlFMDA0MTU1NkMgLyogU2Nyb2xs
aW5nVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRjYyRjIwMTREQUZFNzkwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWQuY3BwICovOyB9
OwogCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY2MkYyMTE0REFGRTc5
MDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGOEUxMUExMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5
U2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUY4RTExOTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzM4Nyw3ICs3Mzg2LDYgQEAKIAkJ
MUFGNjJFRTUxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRjYyRjIwMTREQUZFNzkwMDQxNTU2QyAvKiBTY3Jv
bGxpbmdUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
b2xsaW5nVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGNjJGMjEx
NERBRkU3OTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMUFGNjJGMjMxNERBRkU5MTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RocmVhZE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGOEUxMTkxMjU2NTkyNjAwMjMw
RkY3IC8qIFByb3h5U2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b3h5U2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRjhFMTMyMTI1NjVB
NDQwMDIzMEZGNyAvKiBQcm94eVNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcm94eVNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5U2VydmVyQ0ZOZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNjUsNyArMTQwNjMsNiBAQAogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUY2MkVFMzE0REEyMkE3MDA0MTU1NkMg
LyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gKi8sCi0JCQkJMUFGNjJGMjMxNERBRkU5MTAw
NDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZE1hYy5tbSAqLywKIAkJCQkxQUFBRERFNzE0REM4REY4
MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMuaCAqLywKIAkJCQkxQUFBRERFNjE0REM4
REY4MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMubW0gKi8sCiAJCQkJMUFBQURERDgx
NERDNzRFQzAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVTdGF0ZU1hYy5tbSAqLywKQEAgLTI2Nzg0
LDcgKzI2NzgxLDYgQEAKIAkJCQkxQUY2MkVFNjE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzODY2QUYzODE0RjFDMTcxMDAy
ODNENjggLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JOb25lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBRjYyRjI1MTREQUZFOUUwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMUFGNjJGMjQxNERBRkU5MTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZE1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUFEREEzMTREQjQwOUYwMEFGNjRCMyAvKiBTY3Jv
bGxpbmdUcmVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUFEREUzMTREQzhDOEYwMEFGNjRC
MyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFBRERFODE0
REM4REY4MDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGVNYWMubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3Bw
CmluZGV4IGY5Mjk2OWMuLmMxZGRlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGluZ1RocmVhZC5oIgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKyNp
bmNsdWRlICJSdW5Mb29wLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTMgKzQ3
LDcgQEAgYm9vbCBTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpCiB2b2lkIFNjcm9s
bGluZ1RocmVhZDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiB7
CiAgICAgc2hhcmVkKCkuY3JlYXRlVGhyZWFkSWZOZWVkZWQoKTsKLQotICAgIHsKLSAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKHNoYXJlZCgpLm1fZnVuY3Rpb25zTXV0ZXgpOwotICAgICAgICBz
aGFyZWQoKS5tX2Z1bmN0aW9ucy5hcHBlbmQoZnVuY3Rpb24pOwotICAgIH0KLQotICAgIHNoYXJl
ZCgpLndha2VVcFJ1bkxvb3AoKTsKKyAgICBzaGFyZWQoKS5tX3J1bkxvb3AtPmRpc3BhdGNoKGZ1
bmN0aW9uKTsKIH0KIAogU2Nyb2xsaW5nVGhyZWFkJiBTY3JvbGxpbmdUaHJlYWQ6OnNoYXJlZCgp
CkBAIC03MSwxMCArNjYsNyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZO
ZWVkZWQoKQogICAgIC8vIFdhaXQgZm9yIHRoZSB0aHJlYWQgdG8gaW5pdGlhbGl6ZSB0aGUgcnVu
IGxvb3AuCiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbml0aWFsaXplUnVu
TG9vcENvbmRpdGlvbk11dGV4KTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHdoaWxlICgh
bV90aHJlYWRSdW5Mb29wKQotICAgICAgICAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlv
bi53YWl0KG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0jZW5kaWYKKyAgICAg
ICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi53YWl0KG1faW5pdGlhbGl6ZVJ1bkxvb3BD
b25kaXRpb25NdXRleCk7CiAgICAgfQogfQogCkBAIC04NywyMiArNzksMTUgQEAgdm9pZCBTY3Jv
bGxpbmdUaHJlYWQ6OnRocmVhZEJvZHkoKQogewogICAgIEFTU0VSVChpc0N1cnJlbnRUaHJlYWQo
KSk7CiAKLSAgICBpbml0aWFsaXplUnVuTG9vcCgpOwotfQotCi12b2lkIFNjcm9sbGluZ1RocmVh
ZDo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tU2Nyb2xsaW5nVGhyZWFkKCkKLXsKLSAgICBBU1NFUlQo
aXNDdXJyZW50VGhyZWFkKCkpOwotCi0gICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBmdW5j
dGlvbnM7Ci0gICAgCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgcnVuIGxvb3AuCiAgICAgewotICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvbnNNdXRleCk7Ci0gICAgICAgIG1fZnVu
Y3Rpb25zLnN3YXAoZnVuY3Rpb25zKTsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faW5p
dGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgICAgIG1fcnVuTG9vcCA9IFJ1bkxv
b3A6OmN1cnJlbnQoKTsKKworICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uLmJy
b2FkY2FzdCgpOwogICAgIH0KLSAgICAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0
aW9ucy5zaXplKCk7ICsraSkKLSAgICAgICAgZnVuY3Rpb25zW2ldKCk7CisKKyAgICBSdW5Mb29w
OjpjdXJyZW50KCktPnJ1bigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5oCmluZGV4IGQ4ZGZh
MmQuLjc4NDI1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RocmVhZC5oCkBAIC0zMywxMSArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQTEFURk9STShNQUMpCi0jaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFJ1bkxvb3A7CiAKIGNsYXNzIFNjcm9sbGluZ1RocmVhZCB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU2Nyb2xsaW5nVGhyZWFkKTsKQEAgLTU0LDI5ICs1MSwxMyBAQCBwcml2YXRlOgogICAg
IHZvaWQgY3JlYXRlVGhyZWFkSWZOZWVkZWQoKTsKICAgICBzdGF0aWMgdm9pZCB0aHJlYWRDYWxs
YmFjayh2b2lkKiBzY3JvbGxpbmdUaHJlYWQpOwogICAgIHZvaWQgdGhyZWFkQm9keSgpOwotICAg
IHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tU2Nyb2xsaW5nVGhyZWFkKCk7Ci0KLSAgICB2b2lk
IGluaXRpYWxpemVSdW5Mb29wKCk7Ci0gICAgdm9pZCB3YWtlVXBSdW5Mb29wKCk7Ci0KLSNpZiBQ
TEFURk9STShNQUMpCi0gICAgc3RhdGljIHZvaWQgdGhyZWFkUnVuTG9vcFNvdXJjZUNhbGxiYWNr
KHZvaWQqIHNjcm9sbGluZ1RocmVhZCk7Ci0gICAgdm9pZCB0aHJlYWRSdW5Mb29wU291cmNlQ2Fs
bGJhY2soKTsKLSNlbmRpZgogCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElkZW50aWZp
ZXI7CiAKICAgICBUaHJlYWRDb25kaXRpb24gbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbjsK
ICAgICBNdXRleCBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXg7CiAKLSAgICBNdXRl
eCBtX2Z1bmN0aW9uc011dGV4OwotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5j
dGlvbnM7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2Ug
V2ViQ29yZTo6UnVuTG9vcCBoZXJlLgotICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fdGhy
ZWFkUnVuTG9vcDsKLSAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wU291cmNlUmVmPiBtX3RocmVhZFJ1
bkxvb3BTb3VyY2U7Ci0jZW5kaWYKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RocmVhZE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTZhNzY4MS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVGhyZWFkTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTY3JvbGxpbmdU
aHJlYWQuaCIKLQotI2lmIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdm9pZCBTY3JvbGxpbmdUaHJlYWQ6OmluaXRpYWxpemVSdW5Mb29wKCkKLXsK
LSAgICAvLyBJbml0aWFsaXplIHRoZSBydW4gbG9vcC4KLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwotCi0gICAgICAg
IG1fdGhyZWFkUnVuTG9vcCA9IENGUnVuTG9vcEdldEN1cnJlbnQoKTsKLQotICAgICAgICBDRlJ1
bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIHRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjayB9OwotICAgICAgICBtX3RocmVhZFJ1bkxv
b3BTb3VyY2UgPSBhZG9wdENGKENGUnVuTG9vcFNvdXJjZUNyZWF0ZSgwLCAwLCAmY29udGV4dCkp
OwotICAgICAgICBDRlJ1bkxvb3BBZGRTb3VyY2UoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX3Ro
cmVhZFJ1bkxvb3BTb3VyY2UuZ2V0KCksIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSk7Ci0KLSAgICAg
ICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi5icm9hZGNhc3QoKTsKLSAgICB9Ci0KLSAg
ICBDRlJ1bkxvb3BSdW4oKTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUaHJlYWQ6Ondha2VVcFJ1bkxv
b3AoKQotewotICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3RocmVhZFJ1bkxvb3BTb3VyY2Uu
Z2V0KCkpOwotICAgIENGUnVuTG9vcFdha2VVcChtX3RocmVhZFJ1bkxvb3AuZ2V0KCkpOwotfQot
Ci12b2lkIFNjcm9sbGluZ1RocmVhZDo6dGhyZWFkUnVuTG9vcFNvdXJjZUNhbGxiYWNrKHZvaWQq
IHNjcm9sbGluZ1RocmVhZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxTY3JvbGxpbmdUaHJlYWQqPihz
Y3JvbGxpbmdUaHJlYWQpLT50aHJlYWRSdW5Mb29wU291cmNlQ2FsbGJhY2soKTsKLX0KLQotdm9p
ZCBTY3JvbGxpbmdUaHJlYWQ6OnRocmVhZFJ1bkxvb3BTb3VyY2VDYWxsYmFjaygpCi17Ci0gICAg
ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tU2Nyb2xsaW5nVGhyZWFkKCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCi0tIAox
LjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>