tag:blogger.com,1999:blog-18408680017471221962024-03-14T02:05:50.907+08:00HoneyHoney有些事,现在不做,以后就没有机会了!醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.comBlogger317125tag:blogger.com,1999:blog-1840868001747122196.post-5819757395620508122020-12-01T22:48:00.004+08:002020-12-02T10:26:11.984+08:00Javascript,真烂<p> 最近在看ES6,看得自己快吐了。我第一次遇到这么恶心的编程语言。真的,it sucks!</p><h3 style="text-align: left;">一直在改动</h3><p>最大的改动还是在ES6。感觉上就是吸收了很多编程语言的优势,试图加入很多东西,比如Symbol,生成器,迭代器这些在之前版本里面都没有的功能,以及对之前一些有缺陷方法的替换方法。比如,Array(3)和Array.of(3)。原始的方法里面根据输入的不同,返回的类型还不一样,完全不符合常理啊!所以有了新方法,那实现一种功能,还有好几种方法,还得记住这些方法有哪些缺陷。一个前端工程师至少有3-5年的沉淀,记住这些演变过程。OMG。无论是Ruby还是数据库系统,都没有这么激进的改动,都是符合一些理论基础的,所以对之前的方法基本很少改动,一般都是在底层上面做性能优化。个人觉得,JavaScript在ES6之前就不是一个成熟完备的语言。</p><h3 style="text-align: left;">疯狂的继承</h3><p>单构造函数,或者编写一个类,就有N多种写法(详见高程三),每个写法还有各自的缺陷,以至于最后出了一个关键字class来解决分歧。实际上,javascript的继承关系和其他编程语言就不是一类的。这原型继承稍不留神就要出错,比如实例属性写到prototype上去...</p><h3 style="text-align: left;">全局变量</h3><p>你定义的变量都是全局变量,所有作用域都可见,都可以修改。变量越多,你都不知道谁改了你的变量。</p><h3 style="text-align: left;">没有块级作用域</h3><p>虽然With和Try...Catch有块级作用域,但是在For循环里面却没有,导致内部定义的局部变量在外部可以访问了,这也是为啥let的出现。</p><h3 style="text-align: left;">+</h3><p>如果是数字,那就是加法。否则,就是转换成字符串,再拼接起来。Amazing!</p>
<pre style="text-align: left;"><code class="javascript">
var arr = [1, 2, 3] //undefined
var arr2 = [4, 5, 6]; //undefined
arr + arr2 // '1,2,34,5,6'
</code></pre>
<h3 style="text-align: left;">伪数组</h3><div>执行typeof,它告诉你,数组是一个对象。</div>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-51407293293383391112020-07-28T10:36:00.000+08:002020-07-28T10:36:30.051+08:00CodeWar - 3kyuAlphabeticAnagrams<h3 style="text-align: left;">要求</h3><div>给定字母组合'DBAA’,求在所有组合中的rank。</div><h3 style="text-align: left;">思路</h3><div>用递归法。针对第一个字母D,首字母排在D之前的有‘A','A','B'三种可能,在这三种可能下,分别有n!种排列。考虑到去重,则'AA' 和 'AA'是重复的,即有2!种重复的可能。</div><pre><code class="ruby">
def listPosition(word)
# 如果word就只有一个字母,就返回1
return 1 if word.size == 1
# 对word按照字母顺序排序
sorted_chars = word.chars.sort
# 计算每个字母的顺序
p word_to_num_by_index = word.chars.map { |e| sorted_chars.index(e) }
# 去重考虑,比如有N个'A',计算所有的排列,即n!,再累乘
p k = sorted_chars.uniq.map { |e| (1..sorted_chars.count(e)).reduce(&:*) }.reduce(&:*)
# 针对第一个字母,先考虑剩下的字母所有的排列,即(n-1)!, 再乘以该字母在序列word_to_num_by_index中的序号
# 假如'DBAC',首字母为'D',在字母序列word_to_num_by_index中排3,则可能出现以'A','B','C'打头的3种情况
# 最后还需要处理k来去重
p counter = (1..(word_to_num_by_index.size-1)).inject(&:*) * word_to_num_by_index[0] / k
counter + listPosition(word[1..-1])
end
p listPosition('DBAA')
# 针对 'DBAA','D'在排序序列中排3,在以'D'打头之前有 3 * (4-1)! / 2 种可能
# 针对 'BAA','B'在排序序列中排2,在以'B'打头之前有 2 * (3-1)! / 2 种可能
# 针对 'AA','A'在排序序列中排0,在以'A'打头之前有 0 * (2-1)! / 2 种可能
# 针对 'A',只有一种可能
</code></pre>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-30945371824623703232020-07-14T11:28:00.000+08:002020-07-14T11:28:02.099+08:00从eval, class_eval, instance_eval 和 singleton_class 说起最近在刷CodeWar,整理来说,比exercism.io难多了。因为选择的是快速升级,所以没有刷几道题,难度就蹭蹭蹭地往上窜,有时候发现之前一晃而过的地方,啪啪地被打脸,原来真的就是一晃而过。<div><br /></div><div><ul style="text-align: left;"><li>eval</li></ul></div>
<pre><code class="ruby">
class A
attr_reader :x
def initialize(x)
@x = x
end
def get_binding
binding
end
end
a = A.new(1)
b = A.new(2)
eval 'p @x', a.get_binding
eval 'p @x', b.get_binding
</code></pre>
<div><br /></div><div>我们可以用eval str, binding 这种方式,执行一段字符串,同时切换上下文context。我们还可以用instance_eval来实现达到同样的目的。</div><div><br /></div><div><ul style="text-align: left;"><li>instance_eval</li></ul></div>
<pre><code class="ruby">
class A
attr_reader :x
def initialize(x)
@x = x
end
def get_binding
binding
end
end
a = A.new(1)
b = A.new(2)
a.instance_eval 'p @x'
b.instance_eval 'p @x'
</code></pre>
<div><br /></div><div>instance_eval 还可以执行代码块。</div><div><pre><code class="ruby">
p a.instance_eval { @x }
p b.instance_eval { @x }
</code></pre>
</div><div>还可以单独给实例创建方法,这个方法不在class上,反而是在singleton_class上。同样的逻辑,我们也可以给class上执行instance_eval,这样创建的就是class method了。</div><div>
<pre><code class="ruby">
a.instance_eval do
def speak
puts 'ya ya ya!'
end
end
a.speak
b.instance_eval do
def speak
puts 'bia bia bia!'
end
end
b.speak
p a.methods # => [:speak, :x, :get_binding, ...]
p a.class.instance_methods(false) # => [:x, :get_binding]
p a.singleton_class.instance_methods(false) # => [:speak]</code></pre></div><div><ul style="text-align: left;"><li>class_eval</li></ul></div><div>相当比较简单,只能够在class上面执行class_eval, 创建出来的实例方法。比如在<a href="http://zhongxiao37.blogspot.com/2020/06/yield.html">http://zhongxiao37.blogspot.com/2020/06/yield.html</a> 中,将yield换成class_eval,context就变成了class,而不再是main了。</div><div><br /></div><div><ul style="text-align: left;"><li>instance_exec & class_exec</li></ul><div>instance_exec 和 class_exec 相比 _eval,多了可以传入参数的功能。可以参考 <a href="https://www.saturnflyer.com/blog/the-difference-between-instanceeval-and-instanceexec">https://www.saturnflyer.com/blog/the-difference-between-instanceeval-and-instanceexec</a></div></div><div><br /></div><div>比如下面这个例子,如果不需要考虑引用实例的方法,变量,用yield就行了。 </div><div>
<pre><code class="ruby">
class C
attr_reader :name
def initialize(name)
@name = name
end
def build(m, &block)
self.singleton_class.define_method(m) do |v|
yield v
end
self
end
end
a = C.new('jack').build(:speak) do |word|
"says #{word}"
end
b = C.new('jane').build(:speak) do |word|
"yells #{word}"
end
p a.speak('hello')
p b.speak('bye')
</code></pre>
</div>如果还需要用到实例自己的方法,变量,比如这里的name,那就需要用instance_exec,第一个v其实就是speak传入的参数,进而在传入block的word变量。<div>
<pre><code class="ruby">
class B
attr_reader :name
def initialize(name)
@name = name
end
def build(m, &block)
self.singleton_class.define_method(m) do |v|
instance_exec v, &block
end
self
end
end
a = B.new('jack').build(:speak) do |word|
"#{name} says #{word}"
end
b = B.new('jane').build(:speak) do |word|
"#{name} yells #{word}"
end
p a.speak('hello')
p b.speak('bye')
</code></pre>
</div><div><ul style="text-align: left;"><li>extend</li></ul></div>还有另外一种方法去扩展实例方法,即extend。像下面这种方法,实际上也会在singleton_class上面创建实例方法。这里需要注意的是,用到了instance_eval,这样的话,最后一段就不需要像其他each方法一样,还要写{|e| puts e.name},自动绑定到每个元素上执行了。<div><br /></div><div>
<pre><code class="ruby">
module InstanceEach
def each(&block)
self.size.times { |i| self[i].instance_eval &block }
self
end
end
t = Array.new(@cnt) { A.new('') }.extend(InstanceEach)
t.each { puts name }
</code></pre>
</div>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-69993089189950625952020-06-30T13:22:00.002+08:002020-07-01T10:02:31.658+08:00通过yield动态创建方法前任留下了一个祖传代码,看着挺好的,通过一个build方法,就可以动态创建一个新的类。等到自己去实现第二个类的时候,出了问题。say方法被覆盖了。第一感觉就是,类被重新打开,然后被覆写了。<br /><div><br /></div><pre style="text-align: left;"><img alt="" height="447" src="data:image/png;base64,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" width="283" /></pre>后来,在尝试打印self的时候,发现block是在顶级作用域main里面执行的。导致的结果就是,第二次会覆盖第一次的方法定义,而且所有地方都有这个方法,无论是类方法,还是实例方法。<pre style="text-align: left;"><img alt="" height="143" src="data:image/png;base64,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" width="309" /></pre>问题到这里,就是切换context的问题了。用class_eval可以切换context到新建的类执行代码块,进而定义实例方法。<pre style="text-align: left;"><img alt="" height="198" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAf4AAAE2CAYAAACA1PD8AAAgAElEQVR4Aey9d3sUR9Y+/HwVaXpmWhrlhBAChAQISYAQAklIAgQKZITIGUwSOdhgnLCNMes17K699u46rbPXeZ1xwnlt4+x13v09z3ud97prVK2anp4cNOH80Vd1V+6qu+uuc+pU9f/oWTbiK7w2aGsZRbecnk33/amLLr+ykq5cXps2F9754rl2QhswfsLDD7cbtxtjgDEwEhj4n5EoNNnLLC3RBemlE9H7e1dMANAmyd6vXH8ehBkDjIF0wAATfxgaD0i7IMLLr/TT/l0NQupNN+KDpI93lxMCkH86fDD8jkwMjAHGQLJjgIk/ROLvXVBpkP60+qK0Jzu0gSR/VvvzgJjsAyLXnzGcDhhg4g+R+C/e3iGIDtJupADJ1m2Up9s9rhxdizjfSOsVanop+d963eykq3uo78rxmRgYA4yBZMdA1InfleOgqgljxFVSmp9yRHD/XW41fzSk2+sd0+m/2mqP6x2tN+naDG0BqR9tE+kHUTzaRtPm2z2uqfPsVN2oUX4xDziRti+nZwwxBhgDUSP+3Dyd2uY0077Bq+j4iUPiWrCwM2IiSDSQSrV2NOq13VFDz9rni+t9bZGYALyj9SVdm8G+Ae2CnQ2RtkvzYgf97pMcn9dVf8yicXXJpxWJtF04PQ/WjAHGQLQwEBXib++YTQcO7jEIn4k/dIBucE5IWuIHGKM1IVKJ/8D9WbT3niza/7csOvV8tjEZuPE1F5VWht7G0fpoOB9ue8YAYyCZMRAV4t+zd4cgfZB/59xWGty/iyX+EG0HmPjdA4lK/FD7qx+XGrbssNMjTI3H957txu3B7cEYYAyoGIgK8W/esk6o+aHuR+Y7r9qStsQ/Uc+llc6xdMJRT9c6ptJmZzWN1V0BSSpU4q/Rc2mjcwIdd9TTjY7ptMVZTa3OEnIFYRzYqBfSVY6JBBuDU46p4n6GHniHgr90sZD4zcQPbJ1+0S35774ry7JNyydo1LbKQX17nbTimJPa1zhoYrOdslyBP/zxDRrN3eig5UectPSgU9xXTQu8rFAyxkYzeuy0aJ+TFu11UmO3ne0RQpz4qoMS3wfGKrcRt1EkGIgK8ZsrkI7ED+v86x3T6DdtwMNYD8Z7v2irBDGb20l9DoX4H7K3e5UhjQSfsc+nSj3bkhRR3h32Zp9pMRFQ66TeB0oXD+LPK7bRLW+5hMp/3Q3eBwbtvJhlLAeY7QSwXACCVt9JvV97ve4zLSYCalz1HhOLs++666SWee0L2VTTFHjSoObF9777h9uG24YxED0MMPGHKJn4IrgH7HMMQn3c3kmHHFNo0FFLd9tb6FdtQEjW/oAbCvG/rnXTj1o/3WtvpWOOetrmqKHrHNPoK225qMN72iLCVkFzefOco4w6PmBvp4OOKbTTMZFuczSJtGcdM7zSII9g0vlqF3MdAj2r6vyqqZpYyx9VpVFti512XBgm9knNdq+6Hnssm257z0Vbb8+ivj1O6ljrICwJnHnDTcwnn822lPyntNkN0kcZ3TudNHeDgwZO6SLtwEnvSQbeY8E2p5Fu8K9Z4rlnl5Ouedqtlbj1HZffyUagtuBwbwxzm3CbMAYixwATfxSIv9s52iDU/Y5aL0KCGn2Jc4yXvwrgUIh/mbOSRuneZNTrrDDqgTqp+eP+UXunCIdWwByWr9tpsp7n5R9sulgQvypBy3uQ6fQF3qSPekLdXljm/VFge6BM3zDXOy2WDRAO8ja3S06+jSpqvCX34gob3fK2e0LRf7VnX+QW2OjaIWPEDWc8w8z587N3f3GbcJswBmKLASb+KBA/pGeo2l/Tukm3kLSDAXEoxO8rPxz+I6X+rY5qLxKTSwTQSPjKw8o/mHSxIH5I6rDgP3NpWJV+/mMXbT2fRbmFwX8Y2Tk2Q+qHat78jnKJYM/d3sRvjiufF+5wS/uoX3aud12kNgDhMg273u3EbcJtwhiIPwaY+KNA/Nh7D+KH2j1cEIdK/M3OYjrnaBJS/CWth1AHXD9p/aIuByw0D6ud40UY6vqwvUPYHTToBZbLAup7BJMuFsSvGvflFNho9nIH3Ty0xr/5rLUkjYN+Vl+rE6T4409kC7U7VO9YAoBUD8JW3w33s5YNnx2AcwIwORg7RbNcFpBp1980bBOAcnCdeHLoeirbMEJEmf5sC2R+7MZ/8OM25zZPVwww8UdI/FhL/1lbJQh1nbPKi1SCBVYoxH/eMdMgcJA4DAq/11aK6z9DxoWw9jeXXaA76EELw0AcHoQdAr52BASTLtbEL9+la4tb0j7/kYugbpf+cNdcN0zGIFzEwdIALmgK4AerezUN7jGp2KnYDyAeLpwdgB0CVjsC9t83bG9w9rKL/F1WSwXmOvCzZ19ye3B7MAZihwEm/giJH+AE6YKArdTrwYI3WOKHrQDKwgVjvEl6nofE/k/7AhFmRfyyLjOdxXSzo1EsTci84N7iw7gvmHTxIv4J0zVByiDmybOH1+uxhU4SNozxRtd4SuyHHnIb3FkRv3w/5N1/Qqejjw4fFoQ8V5nW8BEfywII23LOWvMg82Q3doMXty23LWMgPAww8UeB+F/VugXZ3uBnO1wggEJbAPL9l7bESyJV0945tB3vSftcy3hfDln24xwBNZ2v+2l6IcHYD2V/ri3zmET4SgN/c7orb68Rp/f5SxNMmGrVr6r6ZdrKycPE39Q7TPzrb3RL+zjpT8ZV3ZuGLPux117193U/rl4Txn4gd6zTm6V+TC4QZmUQ6CtP9g9vkOJ243ZjDEQXA0z8USD+i/ZZgjivaMuoUPc2HgsGtPOd5SIPEHCVnuOTnP5ibxPxoLI356vuLgiW+JGHWjbW/M35+npW03319/gQ/5zVw+vxqsQPgz8QMVT25vrCkh9huIIlfuRR1z6cDmv+ar6wA0B+5z5wEQ4NUsP4PrqDFLcntydjILoYiBrx5xdkk7x27d4mTu7r7esy/OSpfsnegVYq7Vo931jnh4V/qa5IlbqNdjgm0h7HZL/kgNP9cNAPiB+H5VTo3gSGtsNJe4iDuFDzy/acoufT5SEjQ4RbEf9pxzTqc1Z4SPVZuo2kFsHXxCWYdFdeiz7xl1dphO10OLinYqIm9tbf/KZ7rd4sheOkPRDx7R+6hJpftsuYyRqdfGZYdW9F/MsOOWlal+l0v2wbSS0CyjLvInDl2ejUc+58cThQ2ThP8i8qt1HPVU5LY0JZN3ajO5hxe3J7MgaCw0BUiH98VYUgevlzHit3957tBkklc+dYET/e57CjzpDYv9FW0FP2efSEfS59qi0V/iDsQO99u2K0B4PBL7Rl4ipXJgF1er44vAfkDkO+5+xdBLX/D1q/uL7VVojyrIj/La1XhEGlj7phkvL10NIA8sPxwlZ1DCadr3axys+fn6rql1K62T33vovqO4bV/MgPSwDSch+GfAfuc//gRxrdyRP/rIj/xFNuAgfBY6kAh/ioWwihZbCqc0OnXRj1oX4oB2Via+Cxx7OFJgD+VicMWuXFfsENWNxO3E6MgcgxEBXiHzd+dEDihxYgFTrMH8EtdJYTTs0DiaoXTtrD6XeB3h9W9Vc7GsS2PPXoX7P0v8hZQZ9oSzzKwDPKwB59lG21tRAGfSB9tW64/05bQdc4GgjSv1Udg0nnr12s8vTlN3PRsCpfEj6I/IZXXHT479m04qjT55/5pnfZ6bqXhvf8Iz2e6+bYDWM8nOhnLhsGfSB9WZ50cUDP4v1O0rOt2wX5jJnktgWQuwZkWmgeMImAJsFcHj/7bk9uG24bxkDsMRAV4k+njgqG4HCq3hxnKXU6ywg/04lF++TqdmFgh3X2cUH8BMiog24j/Eiow1lGXc5ymqoXELbrGeG+bB4CpAumXQKW4avsEPyhgodhHtbnS8eG9gGNrnYfDQxtAtb0sc0v2DojLnYFIC1+9oPliWDTcjxuK8YAYyCeGGDiD4FU0DGJQnDxBEmgskpLdNEul1/pZ7ILEU+B2pbDmRAYA4yBaGOAiT/Egfr+u7oEybW1BFbdR7uzEjU/tAUmRGibRK0j14sHT8YAY4Ax4MYAE3+IxH/x9g5Bcvt3NTDJDbUd2gLEf+t1s7lNQsQTD0RMRowBxkC8McDEH+JA3bugUpDc5VdW0rT6orQnOrSBXP5gLQgPYPEewLg8xhxjIHQMMPGHSPwAmVT3g/wHd02l1tmjCOvc6QRAvDPeXZI+NCHp9P78rqEPNtxm3GaMgcTAABN/GMQPkpfkL4kvnV2QfrpNfHgAS4wBjPuB+4ExEDoGmPjDIH4JNKj9sa6NSQAs2tOJ/PHOIHxW74f+0Un8sMttxxhgDIwEBpj4IyD+kegwLpMHCsYAY4AxwBiIBANM/Ez8vDbPGEg5DKzsX0Jr1/XT2HHlKfdukQz4sU5bOXaUaPelS3u43RN4XGHiD7NzaqdUE65Yf0icf3xm9gW5mVRR5H3pWZncxyF+I/iFMU5QVK/s3Pj0I76Xpct66T//+VFcmAAk0jeU6jjbum2D0fYdnS0J1faJhIORrkvUiB8zvZnN02h+V7u4ZjQ10Khy3u4W7w7+UFtMP2n9hPP8Y1U2fv/7tH2eOPcfZeEK5idEsapPNPL93ZIM+v+u9b5GFYRG/LmuTNrTlkmv7sigb49k0G/XuK+rWkLLx/xO+DsgfkKEq7LW80+A5rixel59yv1PA/wJ0V8Zy4+4/5Qo/1sA9+p/ZPtN4y8/hF37QrZ4d/yPwV/cnFwnXb58SZDPp59+QHj2Fx9hM53FNOiYTPgnBX5u1e8cSzh221+6FVMzRd9+eTjDbzxzHtHCmTnfaD8Dxz8ed2N3+dTgsVtSmk/fffeFaP+XX34upLaJ9jtwfr4n2xETP37Qs33HJsuf9Bw9doDwa95sl/+PNRk7KFElfvkTnmXOyph8dLOdJR4/+cHfAL/SltNxR31MyosXNk4vzKDH1ruvT/a7JwBwQy3/zmXDk4f/dzKDvj3qvjpqgh88rcrMK7IZPxEaVzcyxL/5rC7qMHDSPyl2rHPQ/vuyxCV/XXzN05ERv/yJ0owe/2PJ5s1rDYkT449VW6p+tzpmeOBZ/sDqpMP/AV3ACyaKL2wNDSPRwpn6DrG4nzE205gIN1SEht1bbr3B6ANW+fsm31j0W7B5Rkz806ZPEaR/7PhB2rJ1PS1e0k2rBpbRkaP7jclAT+/8gB9gsBXmeP6BFGvi/4N9thgoL2k9VK8XpGS/Xhgi778NhDaoT6scHiyPzM2kshC1Bf6wnQjEv+yQk44/kU3dOwNL0fJdWvvdf1uMF/FDyoSa/8cfv6HRFSV+8QnNlST6x+ydtMsxifY7aukFexcFIv7HN7iJ/+yi0DAi2wVuuDhT84jV/eZmN5Z/PpFBWSEud02unUC//faD6IdHH33Abx/Eqv6cr3+eiJj46+onijU180eWl58lJgLHTxwSE4DikryUAkC6SvzP2bvEYJnsqn1/A8Obu9yD+oGO0CSdq+e7B8sP9oU+WPqrD8ISgfgD1dEqPJ7E3zij3pA077xwe8Dx5gbHdIHlt7Re0k2/pA70x8qvj7gxsnFmaBhR2yhcnKl5xOr+9sXu9/vntvAmNg8+9FfRF5gAVE0YE7AvYvUenK/1BCBi4vfXsFjzl8TPhnDWHeCv/fyF5egaLXSW0zFHPR1x1FG7s4yydJtYd4cU40/VX6lni3CsZ0JFv8Q5hkp0H1KcbiNIRvL6SFssBsvbHE2GH8Jq9dhM7OoqMmlLcyZduyCDburJoP3tmTR3YiZlZ/sfcCeOyqT1TZl0S18GHZ2bSd21/uPLtobxFVT0UOOiHOlv7WZSz5Th67Wd7nSPbcjw8K8dHSifwNgwE/+YyRp1rnPQssNOmrnYQUXlvvOY0manujl2yrX4zXB1oybCSsZYp8fviSfPtntc5ROCX2oIlfhhBNjQaae+PU7q3eUU5erZNgpG1b9lyzqD+LHEaN1nw+952jFNYPkhe3vAuGpe40uGNTvTKzNp1vhMGpyTSdd3Z9DaGZmUlxO4v0PD2XCdYYAK+4LTCzLoUEfwuIbUDo0UJir4jvBN9E/LpMJc67q+tN2N5XOLPYkf+XRNHsK8+Kas02/YMGD0BYwt1fbj++H+HKm2iCnxw+BPEj80AyP1krEodyQl/nI9i56xzxeDllRVwr1gn0VXtGXC3xfxb3FW07+1lV5pYRSI9XtzW+Xpdq+4apny/nrHdK+05rxCeS7Ky6S/DmTQ/55yD0Bmw7uLyz0HJJl3jiuTsI5qlQ5r+MhXxrVy26vdg/r/nQocd9KoYQIw1099xiBrVVYofirxw3ju/EcuY80fxnM3vOqimhnehAzLemlkVzXNOxyqe4RjEmFVnz13ZxnpZT6B1vjVfEIh/sJRNtr/N+/y1t/kNipE+f7W+M+cOW2QTTCCBoz4gN/vtZU0TndZvr/6LvJ+Sb273/97MoOAQ7Wvcf/27gwaXei/z0PBGcoF4foyDPzHJv9YnVCWKWwRzPXE8w/HM6htgmddMamGih/hUPnL9y7Nz6RH1rn98e67WofDZBzptrXNNPriyJFBIw8Zzu7Ikn9MiV+V+AuLcrjzQ9wW5evjeMI+VwxYv2ir6KxjhrBINk8ErIh/0FFrkDjiw5L5sKOO3tH6jAFwrGkAzNZtQisA7QCuL4YmFg/bO8Sz9J/vjO5+aTnAYADCPaSbvW2ZdNdKt6WxFZlicMQgiAFLDsoHOzLpuS0ZBCKH/9k+6wmDbOt9c9yD+rt7/MdD/OqyTLqmK0NcKgFAyyD94U4d43uAlOUGclXiBwFe+3w29e110uJBJ13/snsScMvbLioo9RxQIiX+OQMOWnHUKS6s06PsWBH/3nvcpH/7hy5RxoJtTq+JgD/ix3oy1vd/+eX7oKz5oTX7YEiDdZ99TtDjk1zSAZ5wQcNzuDOTnt/ifoafWVI2928oOIOFPSbByBe4/tvqDEIdsHNE1gHaBnMZeIbW6vtj7njfHc2ge1dlCO0ENGiXrnL7Q6umpoUxn8wXRn4IaxiTSVjCgv83RwJrw7D0K7dU3n33BY/81bL43vN7jVd7xIz4sca/Z+8OIfGvW78q5Tp+pCR+1ap+rXO80a4YxOSEAFKMmfjH6Nn0nbZCEDy2LalrmoW6wxgAL9pnGXlagfANrUfksd1R4zeeVdpg/aCmlwPP/EmegxLyGFOUSVC3mvPDljmkw+DYUuUZLgdrbK9z+VkmwMCIPP60wnogNZcpn7HlCel+CsMYSubhz1WJH2rv0srhAWN0jUa3vusm/97dnks2kRK/WqdgrfrVNMFK/NBWSI3C7OXD2ofsHBvJCUEgif+TT94TZPPee296YUOtk7yfqhfQ19pyYzK8zlkVVLqH1roxgv4Ggcr84EryD7QjJBScYcKLsqDFWjXdE9eYdCDs84Oe9UBdsOTw0aA7HC6+K7WukOy3zcr0Mt7DcgXyxLcCDRqWFrC1D36YLGDCq+bj6/6bbz4X/fHaay8GFd9XPuw//K1Hqy1iRvxY14Ga/9DhfVRalprW39HqhFDyuX5oXfITbYlY01fTqlbKZuI/MCTtw+ofkwQ1He6lNgBLBeYw9TkexI+tbxhkcDUOSRxqHazuq0qHByesYZrjTC4fznOKnzX3D4cGSn9qTHPeeAYBoL4vhmkMZZWn6qcSPyRwNQz3G864t9odfdRz21yyEL/c+3/dP12ENX31/Rrm2o1JgS+JH4KGlDCffOoRj/RqXvIeNimfa0sF6b+t9QoXKv86Pd8jLZbGxCRXMf777KC7r0HyMj/pygkm7ET82aEEizMQ76cH3OVZ4Xp3qxvX0Gjlm2wLZF1+vTrDcqIs62x2b+51lweShy2B1JZhl4svmwBzHnh+442XRJ98//2XXu1kFZ/9PHEfy/aICfG3tDYZa/vTG+tSstNHSuK/x94qBqm/2Fu92hWSu1xzNxM/1v9lGLbi4Xpz6IJV88faEiMcxn++QBcP4odqU6oncUDKqa4MAnH7qhP8EUdOFjbNdBsuwXhJXpCU5Lp/83jrvHBYj8xjtklj4K9shMF+AGlvi2B7l78yVOJv7Pbey96+xr1t7swlz7XqZCH+LefcE5et57O8+hmHF0ltgC/iR9uBYED+wRwcI3F8ztFEubqdXtEWCvzDP18fbt+ftVWES2rIsHYvMbJuhjeOJBFj7dxXf4aCs9WN7vKAXazVm/Nc1jBcH7P9ivyGYBtgTufv+VllyUK+K4z9/KWxCvvoo3dFf3z88eWQ01rlx37RmxhEnfixrx97+iHtd871JifuvMg6D3uMQeDnHTMtPyZpuGcm/mcVY8AftH7yd032Y6EvB8xYqvqBEUjc0sBIDj5v7cogGFZZYejRIeKVcf250A5Y5QHLf6T7zzUZQVlmq3lggoK0mHSo/tG6V4l/4sxhYpL5N/UOS8Wq9X6yEP/BB9z2A2uusz4c6OzQUoY/4pd7+L/99orfPhivu8Q39KPWTzBeRRtO0vOMpbA77M3CDxMAfGuXtT4jP4kRLCfBMl+2v3TPDEnLr+/0TZQyj2BwdmufG1e+NEm7h5YBvjjkWR7U8fIb8DXRlXX2dDPp30M2ATI9XGgwzLYAnuk8xzVoYORe/kd4L78XTvy1XTzCokr8kIJxWhZIP5jtNPF4wViVMVISv1zH/53dgvh1m5BOMFiZif9xe6cYxKAxiKRN4kX8qGNlcaaQ5KURkhyINjR5D7gY+BCOk/Ow/97Xhe2AMAK0aoNj89yDpb9B2yod6inrFuzShFU+/vxU4q9t8Sb+mX1uiR/W/jgrX+YViPhPPOXfql/mAzeWa/xyHX+tD+I/94HbhsEf8f/hj3cY6v6KMaVGG6jvgPuNzgniW3jKPs8jzoBznPDH97PKOU6o/XH/qL3TiAcjPvT1x4OeRCvLkNIyjPGkn9kNBWdyDf/P/db5nR86avqZzZ7hcucB6hqKel7dqYLvDtsVvxqa1D6wxrMM83upzw0Nk4y+uOnMaZ9toabh++HvNtZtETXir64ZS4ePDArSX75iEXd0lCz4zQCQKvsHLfYej9azjIHLTPyw/scghjP2zXmG8hxP4lfrhS1HUqqG5b4aBhWnJF5sk1LDQrl/cI178nDHUs/8A+XRV+cuXxpDBYqPcFg9f/HFJ/T1158ZV9PMqT7rrhJ/85Jh4zdZ1rxNbuIXa+QK9jAJkFv/JjV7TxhuftNNqJ3rvfOUeUs3HOJvWeGuF3YeyHysXGzZgzp/5wVvVT/OKAhG1X/w0F6DbNrmuKV2q7KkPcuL9gVedfq9vVl8JzCEfcA+R9wfdQwvV2KdG1h73uKoXqji5Xo4zpCwKht+oeDsvb3u8rDubs4PhC7V+eZdLnLJIRRMIn8sjeH9IOEXD219xb8n5PcV7BLYkiXdRl/gGGVz3fk5fiRv1dZRIX6c1w8jPkj6A6uXp+TZ/ObGGymJ/5BjihiMYIiENX21XpuGJBkriR9GSvDHemWNnuuRTs0j0P1IET/qJfcxv2yx3ijVk9tn+x5wA70b9l9jgINRVKC4avjxIU0Btlep/v7uJ1RXGgOjNEqbO6/NZ3qV+EHA5rx33+XeCgfJ2Rx20xtucp+9zBMvOJxHEmqsiL+ufXgJomyct1GprGvPVe4f+9z6jsvroKG2Ve7JA+rqT+JftHih0abYUSTzNrsLnOXGtwDLfjUcJ/bB9gXfCi5sXy1SDreSRnn4B4NZcwTjO+DnykG3Nbyar3ofCs6g4keeZoke+UGrhTBY3JuPh1Yl/oWTg8fzdUP/IHhH2c4Km5t/DRkYWtVDfTd5f+21x42+wJ5+6c/uyBK+bP+IiR+Sy/4DuwXpb9u+kXA0b0Ghy+ty5XgOOrIC7IYGBOyzB3ljUMIPRmT7Yd3yfW2RMWCZJX6sZcpw7OGv0j3PVajQswiTClj/yzyt3FgTP4h7Z4v5RDH3aX1SuoGq1Fw37NWXg25njac6HwePIM9Ae/jfGNrXjEEvlPXMUCQ4We9IiP/c+y4Cocq8ZnTbDakep/hJf+keetCtzoc7qspNvphISPU6CDVWxI8TAbEvH2Wsu0H3ecIg4uG9EG/VNcMTG0wWTj3vrn8g4se4Aw0KJlLvvvsGZWVbTzRA5NgVg28Ihq0NKvnrNrra0WB8R+r+/pL8YYkeWIN0LNsYJ+LBDxdO8ZP+Vm4oOJPn+cMeAHvpZX5rG4eNVa328NeMGg7H9kMsR8m0sP4/0plpOcF9YqP7HXBehowPF7Yr8v16ApyCifX9K1c+Fv2ALZY89oc2xqvtHqv7iIkf/1yGpB/oSjVDv5GS+AGEM45GY2DCViSs+3+jraBftQHD30z8SIcjfmHUhwEPLs7dx3GlIHM5mZCGTb4AF2vilwfwQIqBOhWDljwXHQMP1t+lClKtY+sEz0EZywJYH8V56FB3Iu0fA+zNv6HbHU8OcKgDDj0x79VWy8X9v4b+5heKtiES4gcBYs37wP1ZBKM4SazYyqeu78t6Sot/pIPaH+luet1FkK7l2rkV8c/f7KBDD2Ubl1wWQFrVHxK5LMvKXXParcYX9X7fJcpGHjipT42/8vhwvKufyhYTk5vfchnvF4j4kZf6Zzh/dkbznKOM7wXYx2QY9i9ycoxvRF7yW8JhOBIbMO7DPSaJcq88nmHcp76T1X0oOMNhOrIs5I9Jg1oeDo7ytW1QasiQDrsCoD3A2ftyT/4OC+2Y/NZwdoBad5RxeY/7nVEH3YedDNJs2LjakPZPnDjkkY+aJ9974j+e7REx8bd3zA5I+pgUYIIQzxdL6bJ0G+EnOZKsMUBB9Y8DSD4b2puM8/et2qBWzxfr/P9RJglIj0kDJhB9zgrLdDKv17RuMSBudVT7jSfjh+r+fmmGsW6JAUte2B51siuDIHX5ynNRXSZJVaxMB/eXqzPEuqr5UB9zPlBpQhLC7gF1sFWPLTWnUe0LcGa7OdzXM4zPfv75O2OAhDl0Qf4AACAASURBVJQ6a3ajz/TqljZI9adfHJaCQYhX/TGL8outBxIcggOjOcSTF9bc6zvsdOwxdz4da73Ju/+EZxqZ1uziXH1f7wl/TEZwwiBO/pP2BsjD6v8CSw44jckI4uBgItgJ3PCKWxtgtZVRLRt/hpPt+vjjD/mt1wy9iF6yLzAIXhL98/Yumukspj8PbZ39WltB0IhhpwnwBAKEBklOKOEHYz+cLqnWxdd9qDjDlj1JyBLXOCAo0JIUdh1Ada/WE+kxCXhyYwZBK6DWEQdjyfytfiONg3xkOOqkplXvX331BYFrbK8cOy66J3qq5fC99fceTLtETPzBFJKKcUZS4pftCfU9TvJrdhaTy+JQHhnPysVaZpNeRF3OcpquF1Kxso5pFT+efpAu6isyCaf2zZuYKfbw4yCTYOqAdVcYWUE6Q3rkE8xPU4LJO9HijJmkUW2rnQrKghsAoE7HD3uQLtHeRa0PdiLUNGmEHwhZaTDUuFb3t5690ZhQwbrcKo7qB6PYOc5ScZXpw8sMahyrexjXgSADnTFhlTZUP0wW8JMd/CBHVdsHkw8mAEiLtX4Y55UH+I9AMHn6igMBT9qssLQf3Hfpqy1j6c/Er1hAx7KhOe/E/Qi4b1Krb8pHF4tDfHBynD91P/d79Pt9zdqV4sS+5557Uth5cRtHv42j0aZM/GESfyJI/NEAAOeRmB8m9wv3C2OAMRArDDDxh0n8seoQzpc/dsYAY4AxwBiIJQaY+MMkfpb4+cOM5YfJeTO+GAOMgVhhgIk/TOKPVYdwvvyxMwYYA4wBxkAsMcDEHybxs8TPH2YsP0zOm/HFGGAMxAoDTPxhEn+sOoTz5Y+dMcAYYAwwBmKJASb+MImfJX7+MGP5YXLejC/GAGMgVhhg4g+T+GPVIZwvf+yJjIGV/Uto7br+tD+RrXLsKNEOS5f2BDwgKJH7k+uWnuMNE3+YxB9viT/e5UVrQMjOd1FueYnXFa38OZ/4DVxLl/Uap7JhApBIbY/T6SqKvC9/Z8pHUv+t2zYYbcHHkccPg5H0Gacd7qeoEH9unk41E8dRS2sTdS3ooPld7YR/i+PPfdzYw42dSm1RWFNN4xavoPoD19Dk7YNUuaCHsnK9jzudduImWvT2915XTmkhYyPMSedI4Cgn10mXL18SZPfppx8QnkeiHr7KVH9II8+ThzuqILijnmW+OBoX/5/HL5a/PeI+5x5n3V/V4plPSWk+fffdF6I9Xn75uRFriw+1xfST1k+LAvxjQ74fu6k5HofarxETP47HPHb8oOWPeuAPKSHRBolQG8kqfrwl8HiXZ/XO8CtrmkldT7/rReQg94UvfCQkezVt3Z6jNOv8X8Q1/4lLIh1cNQ7fJ/5gtHnzWkPCPXrsQML13+mFGfTYeveFH9iA9OGGiq07lw3/GOr/ncygb4+6L6uf1qh/Ahwplf/n2jLxkyH5B8FQ35fjJ/63F4s+ipj4IdXj73uD+3dR/6ql1N0zj1asXEwHDu4xJgMg/1hUnvOML2irVq6h3te/EuTd/fKn1Hzb3TRlzxFquukC9bx6hXpe/ox0H/9AR19NP3mLSDvzzEXGQxJJ++g7SLX4+cqPP36T8Jo8+Q/7vw2ERvz4kY3UFhyZm0llAbQF+BPgb7/9INrl0UcfGBFMM/HHdwxMFc6JmPghzY+v8v6Va7bLTqvXrDDIv6g4d0Q+jFh1VLwl8HiXZ263qhVrDCm/88EXqWDCeI/+hOq/bvC4h585j477nxd5TNy00288czp+HtnBrXFGvSHt33nh9oTvuzd3uaX2A0H+JlfiC7+5BfF/sC+D8JdH6e/PffChv4q2wQSgaoL1r7D9pY80jIl/ZL+NSPtvpNJHTPz+Ko4ZMbQBuHDvLy6HJS6A88aUU/dL/xKkveCZy+Qqygu5L2Hk13fpG5HHqFktQaUvGD+Wxi/tFzYEDYdO0aRNV1F5S1tQaQsn1hAmK1N2HxZ2CBM37CBRrsvuN3246YLGr26jbudocRXqDirXs2i5s5Kuc0yj3Y5JVKfn+60fyqnUswmq3ROOejruqKclzjFUYvqtco6uGeXg982B6tfhLBPxK/Rsr7hbtqwziD/Uv93VVWTSluZMunZBBt3Uk0H7292/TMavl/3VaeKoTFrflEm39GXQ0bmZ1F3rP77MC0Z+UNGDwPFrZulv7WZSz5Th67Wd7nSPbcjw8K8d7TufDRsGjLaJpWYT/bnQWU7HHPV0xFFH7c4yytJtFAzxN+qFtNlZTaeHMNbpLKNsPXHHG+u+4vpGs11iSvxjx5UbxJ9qhn7xlsDjXZ4KMhjwSQO96oENAQZT6w+0bGazyKPvre/IVRhY+9P+t2eMMmXZ0m3948OUne9NUKgz8sbSQ9+b31qmbzx11rL+4aZT2ymYe5Dwf7XV4tronEDfaCuMZ/j/qPULUveV1xZnNf1bW+mRBulg5DXbOWxMm6vbhdEXwjDQ+8oP/qjTz9oqkScmAOa4Z86cNsgNODSHWz0X5WXSXwcy6H9PDa+ZSzU63IvLrdXwOa5Mwnq9VTqs4SNfq/KkX3u1W2r/v1OB404aNazaV+tmvsfEQ+ZvdtvaZhptc+TIoM945nShPGNy+Ix9vlefX7DPoit+1viBgdscTV7pgImn7PPEBDKUenBc67EtGdslZsQP0t+0ea0g/u07NsXkg0jGBk+2OmflZQmjPZDuvMdep6yc8Ky5a9ZvE0Tc+dBLAbGQX1kh4sKIcPrVNxOWBiZv30ctFx4wyBySvFVbzrr9XhEHNge4n7R5F9Ws20ozrrudel//kiZv2xvVdFZ18OenEj8G4Pe1RXTKMZXut8+h37QBMUh/pC0ml6551XPQUWsM4iCCQcdkOuyoo3e0PuH/vbaSxuouI92zQ2RxwFFr+FnVrcVZItKD/PMttANYv8b6/i+/fB+0oe4j69yE//OJDML9oY5M2tuWSXetdFvKW5Ep1Ov/2ORO99+T7snBwY5Mem5LBoHIQchn+6wnDPK99s1xk/m7e/zHQ/zqsky6pitDXJiISMKHlkH6w506xjfxQ6BB2+C6++4LfttZ1jFU9wn7XNE/v2ir6Kxjhuh380TAyrjvjKPRwMsD9jkiHSYCyAfYe9m+MCb1DfX9OH78JxRRJf4lS3tozdqVwtBPqvhh5IetfqnWufGWwONdnuwvWPFLSbtq+UDY/dh04+9FPo2nzwXMI6esiEa3tVsaCrZcfEjk0/qHh7zyKagaZ9TVakkgt7yU8ipHRy2dbKNQXJX4IaWX6sNbILuc5cZADTJW8x2jZ9N3Q9qBmx2NpCuqWiwZfKAtFmkv2mcZ6bB8gAH+b3b/yyNYYkC8F+xdRlq17E8+eU8Q23vvvWkZrsbFPdT0kkTnT/ImzTFFmTS+xNsfW+aQDqTfUuUZLtffsbXO5WeZ4N5VbgL/04rAxK/We/lUd9k/nQh+fV+m/+abz0X7vPbai0G1j0wXjAstDvoG11rnsF0NVP9yQoAwM/EDLz9o/SLdLY4ZHvVa7hxr5MnbAONPusH0e6zjRJX49+zdYaj2JfFX14z1AF2sX4jzjy6QVaM+rH+H277zHn1dkHL1msi0PxM37hD5tN31qFddRjXPMoi/uG6KV7ivuoebzld+/vxV4ofEbo77tbZcDMornJ7fDaR2DPBY08Wgb04ntQFQ/cowDOpI8y9t+LCdNc7x9Ly9S6z3ynh321tEvOsd0420MiwvP8uQaJ986hGvcBlPdbH1TRJ/41hPAlfjqfdVpZn043E3acMWQA3D/eTy4Tyn+Flz/3DQnceu1uDKleXABgF1fnGbd9kyji/3jTdeEm30/fdfetXbV5pg/a8fmrx9oi0Ra/pqOtiKoH+tiB/LSPCHdI9JgJoO929qPSJcnSia4/BzdMfSRGrPqBL/xEnjqa5+IjXPmk442Qvkj7382OKXSC8djbrEWwKPd3myjRoGT9DR391Df109QP8otNHlIht9UmSjf4VyFdvos/Jscf2rWAsubbFGn5Y56NMyJ306SqfPRmW5r/IskQ/8rerw2VA43E9LHRRseeGms6pDIL+viuyE6zOLNvxyKOzzIs92ulKkiTRIhzhWl8xXLd/s94WSj4wny7SqD+J8NTqLvhqdTV+W65ZtLvMZdjPpqzL39WVZJl0pyaRPizP9pkUcmebzkkz6rNj7kuG+8xrOw3cca+x+UepOi3oMv4d1XHP4l7J9RmeFnNacl/lZ9hdccxieZf+a+w74kVixSifx9EWR3TJfqzSp4vdRkY0uFdro/gIb7c+10aTs1CV4OY6b3agSvzlzbAOSkj8mBOZwfk5swPXk2Oi1iaPpq2IbX9wGjAHGQEpi4MsiG92eb6PxaTQBiCnxg9h3XrVFkH/fogUpRfzxlsDjWZ4ry0Zn8pnsecLDGGAMpA8GPiyy0QJXYgtj0RKWY078GzetEcQ/sHp5ShF/tDog0fIB6d9bkD4fOw/s3NeMAcaAxMAXRTZanpP65B9T4s8vyKaDh/ayxB+F41njJfGfzuNBQA4C7DIWGAPphwHYMjSluOQfMfHjb3y48LMeVXodVV5E69avMtb4QVxqON8n3qxyliv9PnIe2LnPGQOMATMGni20UVYUBLZE5bmIiX/5ikUGuR86vI9wWM/uPds9/tiHn/YkagOEW694SeCyfvEo7+9+VPyXplbT6RvO0Zq/v0Tz/vh36n7wRVr2yue0/NUrVLdmE+Vn2XxejbsPiXiIi2vxs+/Roqffoek7Bj3SFBXn0aKn3jLiopyO83+hJc99INLI9NO27vFIh7I7zt9r5D33zvup7aY7qe/JN4285t/1GBUV5UYtnXzf2glj6Ld/f+lxLeyc7VWOjF+qa/QfbaW4WvRCr3hvaAtE2C7HBK+wRc5R9G9tuQiH+7x9Lv3d3kpI89OQ/532Jq90f7XPMsrscY4S4eXiZD93Xp9ri7zSyPpK9+yNp4x3XNoz12f8p9dn0P9dnUE/HM6gFzZl0N8HMuirA24/+L++NYMq8jK90ndWZdL/nhiO9+X+DHp8bQa9uT2Dfj3m9r9raYZXOlk/uGcWDKeXdfj2YAZdP99/un/tcafb1exdLzV/8/2WdSuNNjl5ZJ/fupnThvJ8q2Oa0X9vawvpSXs7fa0tpV+0FYZ/v3OMV/nbnVVGOPr4cfscekfrNvzusjd7pQmlXskatyjLRlOzbXQ8z71rw0z68nlVCqv8Iyb+pplTadv2jR5ELy358ce+2S0zCD/skQTGbuJJ+uiT+mzfs/4/F9ppxuBx46x9eaBP36Wvadb5e6mwuspv/2blOmnS1t3U8cALhDQyfdXy1V7pyme30vyn3jLi4IjfjvuepeIptdTzyufCf8xc74NmcMJf9z8/MdLJMvCPgSm7DpGr2PoM/HDTSRxXjCmln3/+ztjrjhPcZs1u9HovGR/HqP5n6IQ+nKEu/aX7utYt9ldvc1ifmVCr59PT9nlGHnIf96/agDjQpc/iv+y7hg7owcl+6hkAj9s7RVl/CXDAD+qGf23I93z8ce/Dk2T9f780g74/5t4TL/fyw/3heAad7Mqgknzf++sX1WWS3Ievpv3l6gx6cI33oT6yTOnmujLpSGcmvbXLfQiQzGNzs+8ycQSwjDdrvO94sgzVffXVF4z9+zipVA2L6r1uE6c7ymOV0efoy3XOKvpMWyr6EP9rsCoTB/t8MXSsr8TKT1q/+McDzvq3SpNOftOzbfQ+tkVa7Nh4rCB12ydi4pcgwXr+mMoycUofDu0pLSugLD+/aJXpktWNhwSutk2sy9uVaw3+N4tsVDik8srK1QUBj57TQSVTG3ySqVrvcO5RTklDA5W3tBJO8Qs6D5ediibViB/5YAKBPwgGdcRwuOlGUBVYoDuoSS8inPY3XS+kYtNPeoJusxDe4dazNxoTnIaGST77BT/gqa/IJJzaN29ipjh8B2fwB1MnHNs7ocz9Ix+kRz55OcGlDSb/aMXp6Gwx2uLEiUNBvVukZePwJ5zk1+wstjzS2Wf+uo1q9Fya7yynqXpBaGlDwIfP8hM8j6U51mMftvmNSvC6h9vmUSP+cCvA6RJjVnmHj+17g7mJUT/Gycj3A+x4Xn75OcJJdaH+pS/V+g9Hk6MdnnvuSSooHP4/Qqq9Z7q8z+uF1uTfnqJGfkz8Yc7oYi2Bmz+4WJf3gI/1/XkpCnxz+/LzyE8suA+Spw8apk4m9Ur2vrvgQ/BJ1a19TPxhEn+yA91c/0d8ED8s/c1x+ZnbhDGQ3hhQSR/3yY6HW30Q/0CKGvgx8YdJ/LGWwM0fUqzLY+JP74HcjDd+Zjz4w0C6EP9qJn7+EPx9CMkexsTP+E52DHP944dhJv74tXUscP0/48YWEV/DbRBsI8daAjfXI9blMfEn94dsxgs/B+7Pttmj6JbTs+m+P82nd19eSVcurxX3F25rJ4RxG/puQyZ+322TDLhh4jdNfJKh02JRRyb+5P6QY4GJVM2zpMRJIHcQvb8LcRA3Vdshkvdi4k/u8YKJP0zij7UEbv4oY10eE39yf8hmvPCz7/68/675gvAvv9JP+3c1COleEjwkffjJCQHIn9vSuy2Z+L3bJJlwwsQfJvEnUycHU1cm/uT+kIPpY45jo54FlQbpT633fTgUwiT5s9rf+9tg4vduk2T6vpj4wyT+WEvgZhDFuryUIH6XnbLysjyvXFbVmrGUsM9x6L+L59wqfkj1gdpBSv63XjfbiJubp9PiJd20ZEk3lZZaHwPtK9/Wtpm0YcOAx7Wyf4mRt6908faf0dQg3q+tbabPujHxM/FbGgdOn1ZDLbOnimtCVallnEQ0Koz3R5Yo5aUC8dfvv9rrrP65D7/sc/BKlLbnergH0Xj0n1Tzq1L8TGcxDTom082ORjrhqKd+51gapetiCQBSP9LIPgJ5438MuFYNLDP8Zbg/95FH7jfSyjzg5iTY5PSZZx4X9fzgg7d9vh8TPxO/F6lPqR1Lh48MGn/tmzq12itOIpI+6uTvw1XDYi2Bq2XhPtblpQLxTxjYQG13PSqueY+9LiYBcx9+Jeg+Nbc5P8d3cItH/0n1vezbWx0zxE9u5A9spHvS0SAM+xAfFv8yfiTEf/XVh+mZZ58Q19dff2ZMApj444sz2Zeq6+sAn5Tdxx8LAt60abVB+vhTXyoSvwqaVLhPBeJX+2H8slVM/GEeTqW240jdx6r/VOLvdo42SP8xeyfhL4b7HbX0gr2LQPx4dzU+niMhfrUtb7zxFBN/AuGTid+05h3qxKCjvUmQ/oGDewzyT0Xij7UErg4SuI91eUz8Iy91mPs8nZ/jQfw3OKYL4n9L6yXd9Ita/P0Q7c/Eb/1dsKrful2S5ZuNqnHfxJpyOnBwNx05OkhyAsASf3IAJFGJH7/WHduziGqvOkh1e49R1co1lFcR+HCVUImjoGocVS0foNqd+6n+wDU0oX8tlc1oIt3lJgB/H3RxXR1Vr9lMWKOu23NU3OO3wv7SICzcdIHy9RWOdqtc0CPasnbnARozv9vnr5Xx6+WKjrmUW15i/R4uhwhHnJySAq84kbQn6h9q//l6Z7O/SuSnHdME8T9k971lT42PvFSJf+fOzXTjTdeKPxZ++ukH9MijD9Cu3du82sJcBzyHKvFXV1fS2bM30rPPPkGvv/5PevXVF+jixfPU3jFseGhVDvxGV5TQtdcep7///W+EdfuPP3lPLDccP36QKsd6f0u+1vhdOQ6RD8q9//57qH/VUuNHPb7KThZ/lvgjkPgHBpYIKb+vby7NmDGZJf4oqrLSTeKHdX794Anqe/NbL4O9vktfC2L2N6iEQhyzbr/Xq4xFb38v/Nr+9Kjficb0a27xmRYTAV91DDedr/wC+WMi0/PqFa+6zn/iTSptbPSq57xH3TYSmMhY5T26vVPk1ffWd5RfWeERJ5L2lGWF0n8yTTCuSuQw4sOa/vfaShqnW/9aV42P/FXiVw301Pt77/0jZbvsHm1irlsoxN+1oIO++upTY2lALeuXX76nfYNX+Sxr0eKF9PnnH1mmRT4PPHCvV1or4ocdwt/u+7ORzzvvvC4mHVLyN79fsj0z8YdJ/M3NdYLo9+7dQVXjS1Ke+JMN2IHqm2gSf/Ntdxsk1XLn/TR56x6auGknNd34e+q79I2QrP29UyjE0XH/89T72hc088xFqt0xSBNWrae6weO08IWPRB1AgrrFQF7e0mrUsfncn2nSlt1UvWYTTT12g0g79ej1XoMq6hxuOn/v6y8M7SYnMq1/eoQmbtxBk7ftJRg+wr/n5c+8JjdTdh1yv/vjb1i+Q+O150R46x8f9goPtz3Vdwil/9R0ge5VIs/RNfpAWyzI/z77HK/3QF5qfDybiR9GejfccFJI/t9//6VBjAOrl1vmJ+sXLPGDcD/88B0jX0j8119/Df35zxcNv19//TdNqavxKm98VQWpdXrllefp6muO0LHjB+nhh+8T6YMh/rz8LKEtkBOOf/7zGdEOkvThyvdKVpeJPwzirxpfSnv2bhfE39IyVVjws8QfXRV/Okn8UB9Lopq0yVuagRodamp/g0woxAH1d06Z946Ois75Rj0g4ZrLm33HfW7y+9MjXmHZ+dlUWF3l5Y88wk1nLj+Y59zRZdT98qeing2HT3vUJ7vARfOfuCTCQORqfoU11ca7l0731AhAG9P90r9EODQJajrch9ueaj6h9J+aLtC9SuRT9QL6WlsuiB+S/zqnd3+p8ZG3Svwg3JnN04z3n9/VbpDxK6++YPhb1SlY4t+4aY2RJ5YS1B0Ax48fNMKgfjeXc9dddxrhv7/zHEFVr8bp7Z1P69ev8vBDuCrxFxS66IknHzbywa6E4pI8Q8UvyV/NNxnvmfjDIP4lSxYI0t+wcZWxbS/ViT8Zwe2vzokk8UN6BvF33Pec16Dk7x3UsGgQR1aO05D6J/Sv86qLVGlDI6GWHeg+3HSB8rUKn7R5l2jLBc++T1kW+8WlNmDBcx94vUP7X58WaRsOXesRBmJH//S+/pXl+r5VPeAXqD3VdNHoPzU/eS+JvFbPo8+1pYL039Z6DZV/ne55KM93J9bQd8fWGMZ/KvFjX77MV7ovv/ycIMnffvuBcNiP9De7wRL/7edvMUi3s7PFI7+i4lxDon/rrVc9wlDeF198ItJimaAkhMOGJPF/9fVnwhZASvqPP/4QYSKAvCXhS9f8fsn2zMQfIvHDYv/osQN05Oh+qpsyLm2IP9YSuPnDiXV5iUT8UgUNtbu5HYJ9DpU4SqdNo2nHbxTSeOeDLwo1OOrR+/qXguRAoOayxy1aJsJAgrPO/0XYHRRNnmS5LKCmDTedmkew943X3mbUEe8lrof+SZ3ieonmP/WWEW42mqxZv02EdT19mfRszXj/mTdfFP7NZ+8y/Mz1Cac91TxC7T81rb97SfxvaD2C7M85mihXt9Mr2kLxDP98fXh9/j/6asIlrf5V4j9yxBuft9xyvUHUkyZ7axBk3YIlfnnoDyYSZokdeUmS/ve/v/Loi7JRhUY97rn3jx5hsg6+XJmnJHzp4t1lGkn40pX+yeoy8YdI/Nt3bBTS/qJF8w3SxxZAlvijq+qP9QeVMMTvslPvG18LYhm/tN8YaEJ9/1CIY9rVZwzyA4nDoBDr3rhgvAY/WMGb65Cd76JZ5+7xSIu48x5/Q+wQ8LUjINx05vKDecaBRqgTLhj3+bvMSxOYCEjjyvLZreL9XYW5hpHg2O5FXm2COoXbnur7hNJ/arpA9yD+L59eI0j+R62f8oZIfpKeR99pK4T/HfZm8V6YAGAJ4Nexq433VIl/2/aNhr8s99y5Mwbhts1x5yPDVDdY4n/ttRcNqV1NL+9Vgzv1COHGGfVGPc6c8VzikWl9ub6IHwZ9hUU54p0l4UvXV17J4s/EHwLxw4gP2/Vw7du3k3bv3mZc+wZ3eoU1z6zzmByEekZAPOIHC9RYS+DmesS6vIQh/iwb9bzyuSAqK/W6uV18PQdLHLAVkMQIYzxsH1QN+ebc+5QItyJ+WXbJ1KkEdTiWJmRecKce8T/ghptOlhuMi2UI1KXppgteJBVKepA54o9bvFzkhzV+rPWb84hGeyLPYPvPXH6gZxD/tyfdxP+UfZ5H/Qec4wTRg+xXOccR1P64/7nFmvj37tvpkR5ln77uaoNwp02f4hUu6xcs8WNNHRL3jz9+Y5nXo48+IMJhb6Cu/1fXjDXqgfV9WW4wrkr8526/2WONX9oSSMKXbjD5JnIcJv4wiV9OAPy5ba3TU4b4ExnE4dQtkYi/475nBblgP30474I00BaA8LqeftdvHo2nzop4LRcfsoy38PkPRTjOEQimLsVTagmW8ygb6+rqJMJf+nDT+csTYZjMoC5W1veB0iJctiPaAWv0s867tz5iCcEqfbTaU5YbqP+s6uDPD8T//aCb+F+0L/B6h9/bmwXZQ/p/wD5H3H9/1RojnirxgxTNZf31r3cZhKtK4OZ4sMyXKvSaieO88pHx//Sn3xvxJlRXesV7/4O3RfjHH1/2CMvK1sRkAWVg37/MLxhXEj/2+yP+2HHlhr0A8luzZgWv8Udxq3YwfRLtOBEf4NPQMIGmWlydnc2GxD9nTqOIM6GqLGWIP9YSuLmjY11eIhF/42n3VjEYnGUXulWL5vYI9FzeOkcQHkgvf+wYnwPfzFv+IOJBZW/OU+5VRx7BEj/yUMsWa/5BDhLhpjPXW32G1T3qj+UTHKqjhgVz7yrKE1sdkcf4JSuNZRjU1Sp9tNpTbQt//WdVB39+IP6vf+8m/p+1VQTLfjU+Tux7c2j9H9L+b0Wr6cqr1sT/5Zf/Imx1k+mxrv7DD18LIr5y5WPDX4arLrSjkvitLOtlXJzvL+MdP+45+Zw7r80Ie+op750l0tAQ6Zct7/OqD+peMabUy18Sv/qTHvyNUNbju+++oO6eeR7kL+ubrC5Ll6dplwAAIABJREFU/CFI/P5U77zGz2v84Q4C2Eom1/lh4e8q9rS0rl69kWB45i9/sT59yW0rMP3kLT5PoMMBNSA1HAok1PxDJF04sYbmPfqaMXmwIv66fceoYu58T6k+WyMp9fqauISbzt/7+gqDOl7+sAiHEZlJFCfz4YwEK+NFmSfON5CTB7hmYz8ZD24k7anmE2z/qWmCuQfxg8g/0ZYIaR7H9Tao5K/b6GpHgwgD8f80d7XYyy/zViV+ECGM7ybXTqC6+okeFvDXnLQ++Ejmo5I2Dtg5dHgfzZs/R1weKvvqSvrpp28F6cLdunU9jaksIxzqg9MCJRlb/Smwb9ECIxxLBZhsVE0YI07rw6+F3377taAP8EG9oeGQ5V269DI1NtYZ5C/fK1ldJn4mfr+EIoEdawlcliPdWJeXSBI/3hkHzIBkcHX/81/U+oeHqOXCA4J04OfrRDnZXnCnnbjJyANbz6CuxpVTVmz0cdGkGkOihSFf292PEdT+0ghO7le3Iv7Oh14S+UOl33LhQcIkZeGLHxtl4nhhtT7yPtx0Mn2oLo7flaf2wcU7YkthxwMvGBMsTI585Ttm/kLjndD2DQdP+owbSXuayw+m/8xpAj0L4r+8luY5R9Gv2oAgeEj+z9jn0z32VnpfW2SQPogf1ze3DvejmfglEaouiBzH5Aaqi1y/V9PiHucBqGlhnGeOoz5DsodqX00j79W9/GoaeR/MAT4yL2zlw7ZBmRbr/bzGn1wCnuzLiFX9vqT+GY2TDFU/lgJ8xUs0f9kw6eYmGvGj/UFY8uhYOQmAi5PhylvaLAc6j35zOQgn0GFbnrROR3rz+fNj5nZR1z/e8SA3PKMMaRxntbUQBn0gfbVuuMeBOShX3QKn1ivcdGoeod5Di4J1frlLQdYZpyBi0iI0Fz6WJLD/X53QlEz1/x+CcNvT652C7D+vdD7eA/Ek8eN+hl5EL9kXeBH98/Yumukspj/bW0XYb/mrqUJ3q/SnN9YZxAcJWP29LggRZ+jDsC6YOuEgnPO/u9XjZD7kMbtlhld6GBJiy54kXbg4rvfChduNvfW+yty0eS1h6UFNi3ucCLjO4gAfuYXwjUsve9UDUr7UQMCgEDsXQP6+yk4Wf5b4oyTxJxqhB1ufYIEaawncXI9Yl5eIxC/bAKfqlc1splGzWqhgfHCDqkwbrJuVqxMM7LC2nFc5OqSBDEsEo2bNptFt7VRUO5mwXS+YcsNNF0zevuKgbiBu1LW4bgphDd9X3Ej8I2nPSMoNlFYlfhl3tJ5Fc5yl4irTPQ/dsYov08GFpD2jqYGaZk6lcePKY9KWsjyc/48lhVmzposTA/MLskMqD0Z6bW0zxemDGE8C/U9AlmvlSklfulZxksmPiZ+JP6SPKZnA7a+uiUz8/uqd6mGwpC+dPj3kC/vtU71twnm/QESu5llS4hQagsuvhH+ehJpfKt1Lwpdusr8bEz8Tf1ADZqwlcPOHFOvymPgTc60uf1yl11KCVNP7c7FMYsYQP9vo/rvmCzJvm+39O1pz+yAOJgpIYw5L92dJ+NJN9vZg4mfiT8uPnIk/MYkf1u2wyg/1KmsaPl412QflaNb/4rl2Qeb7d/m3U0CZiAPiv/W6wP+8j2YdkyEvSfjSTYY6+6sjEz8Tf1DEH2sJ3AzSWJfHxJ+YxG/GAT9H1k89CyoFmb/78kqaWu/9R0bZvgiTywLBaAdkunRxJeFLN9nfm4mfiT8o4k92oJvrz8QfGaGY25OfE7c9pbof5D94VQO1zhpFWM9Hn4Hk4SdJHxoC7kvvvpSEL91kbyNfxD+Q4/3uyf6uqP//pMJLjMQ7xFoCN79TrMu7v8BGXxV7X/NdqQl8c/vyc/r0M0hekr8keCsXpC8nBIwPT3xIwpdusrfPxXzvsQ/j4XImfs+OT/aO5vp79ud5H8A/mOcZj9uN2yNVMAC1P9bvMQmA5T7IH/cgfFbv+8e5JHzpJjsmLhVaE/+cFBV8WOL3c9iHPzDHWgI3lx3r8nbmWgP/3SIblYTZRuZ34Gf/gym3D7dPsmBAEr50k6XeVvXsz7Ee+74oslFpio59TPwp2rFWAPfnV5ttDX6ou+4rsFEhtxOv9TIGGANDGJCEL11/Y0sih81y2eijIuux7+GC1J2IMvGHOZjFWgI3fyzxKA8Eb7XOD7/XCm20KddGmCCU4w90fHEbMAYYA0mIgTHZNprtstH1eTb63AfpY8xblqLr++CWqBA/zqbGH6p8XaVlnr++NJMaPyfGzLLRZaMv/XwIviYF7O97wsRtw23DGEg+DDxZmBhjcqy4MSrEv2/wKuOHPMdPHPK6x48cYvUCI5VvPCRw9d3iVd6xvOT7SHlg5T5jDDAGooWBj4ts1JDNxB+QtCXx79q9jfAnKPM1bfqUgHmoJMf3Iwe6rCwb/cGHhX+0PizOhwdpxgBjIBExANV/bwqr+CW3RlXix5+jZMap7sZLApftGM/ysrNsdJIlf5/2Dok4YHGdmEgZA5Fh4HKRjVJ1+57kEeky8Ydp3CcbMJXddpeNsNbFAwq3AWOAMZCqGICUf2OejSrSiAuY+MPs7HhK4JhcxLs8dULT5rLRA7kF9HV+CX1dmENfF2YZ15eFOr1fpBH2+5svGe+jIjt9paSBP54/LLJ7pUEemHlfKXQaZch8Pi10EsrDs6+05jrws3e/cJtwm6QzBt4qstGLhTa6K99GO3JtNC7F1/PVsVzeR5X4t27bQNu2byS4S5f1UtPMqZSVraWN+l82aqq5g45a+q+2WlzP2OfToGMyHXbU0Ttan/D7XltJY3WXRz/n6XYjDdK+ry2iU46pdL99Dv2mDYiwj7TF5NK98fGEfa4I/0VbRWcdM0R5KFfWAe4yZ6VHeanW5vw+I2fnwm3PbZ/qGIgq8VtZ9G/eso6KS/JSbpCOtwQe7/Ik8Mfo2fSdtkKQ7s2ORtL14UGhUHfQB9piEXbRPsujj1Xi/1BbTKW6boR3OcsNEm9xlhj+KHO2s8QIW+scb4Tl6BrJCQET/3AfyH5il9uEMcAYCBYDUSH+7Ts2UU/vfIL1/sRJ42lGUwNt3LTG2NY3sHq5MYAHWzGOlxggPjAk7X+uLSOQr7lfpDbgirbMI0wlfmgIzOm+1pYLgl/hHOsRdr1jmvD/RFtCWcokA+m7naONSQFL/ImBD3O/8jP3C2Mg8TEQFeL31dFLlvYY5D+hOrVUs/GWwONdnuzTC/ZZBtle0noI15tD11taL32sLTHCK/Vsg8RV4l/oLDf8Zb5va70i3VZHtUfYPfZW4f8Xe6uHP9JBwyDV/Uz8iT+4yL5ml/uKMZBYGIgp8ecXZBvEP2t2o9dAzmBILDBY9cezytr6D1o/+bsm68NLOirxN+lFXn3/htYjSHy7o8Yj7AV7l/A/75jp4S/r9m9tpQhn4k987Mg+Y5f7ijGQWBiIKfGjs/fu2ynIH0sBqdT58ZbA412e7KvH7Z2CaCGJS79gXJX4Z4RA/HId/3d2C+LXbfSztoqJP8ydKMH0G8dJrAGa+4P7IxYYiDnxHzq8TxD/vPlzQiKOWLws5xn6RwSreqjXn7bPC6n/wiV+ubTwoL3dq7zRepaoCxv3hd6PjH1uM8YAY0BiIKbEDylVWvrXN0zyGshlJZLRjbcEHu/yZJ9scVYLsoWkXaPnBt2H4RL/IccUUR62CGJNX9YD7ibnBCZ+lvY9MKHig++Z2BgDwWEgYuJvbZtJHZ0tXlv28Kc+eYb/4P5dhPV+7pTgOiWR2gkEjj34kLKxl75Kz/Hoxwo9i0DWsP5X6x0u8eM8AKnOv9Uxw8hzvO4y6sESf/LhSMUG33P/MQZGFgMRE39vX5ch1e8/sFsc4ANXSvrHjh+kKXWeBlyp0OnxlsDjXZ7aR7DKh1EfCBfuc/YuesjeTjDQkyR9h93zD4zhEj/KPeNoNCR7WP9j3f8bbQX9OnTwDxP/yA4aKjb4nvuCMZB8GIiY+JtnTSdI9JLoVReH94wd572Vi4GSfECp1fPFOv9/FPIFAYOMQcx9zgpDOkf/5up2knEb9UKPMIS/rnULct9msuoX2NBt4pQ/OalAOVD9r3NW0WfaUpFuiXOMV56Mq+TDFfcZ9xljIP4YiJj4ZaeNKi8i7NWHin/c+NGUl5+V0gNzvCXweJcn+9XsFugOwvY8nL43XS+kYt0Zs36G1gAn+TU7iy2P9jXXjZ/jP4Bwm3ObMwaSDwNRI37u/OTrfO4z7jPGAGOAMZB+GGDiD9NKOt4SeLzL48Eg/QYD7nPuc8ZAemCAiT9M4ucPJD0+EO5n7mfGAGMg1TDAxB8m8cdbAo93eakGdH4fHrwZA4wBxoAbA0z8YRI/A4gHEcYAY4AxwBhIRgww8YdJ/CyB8wefjB8815lxyxhgDDDxh0n8/PHwx8MYYAwwBhgDyYgBJv4wiZ8lfv7gk/GD5zozbhkDjAEm/jCJnz8e/ngYA4wBxgBjIBkxwMQfJvGzxM8ffDJ+8Fxnxi1jgDEQVeLPytaocuwoapo5lRZ2zxV/7cPveHPz9Jgd68ogHlkQf6gtpp+0flpkOquf+2Vk+4Xbn9ufMcAY8IWBqBF/YVEObdq81vJnPRs2rk454meJ3/1Rfa4tEz/NWeasTLk+9vXRsD8PqIwBxkAyYyAqxF9ckkd79u4QpH/02AEC0Xf3zKMlS3to957ttHHTGiaFMJcUEh1cTPw8ACY6Rrl+jFHGgCcGokL8UOvjd7yHDu+jSZOrvEh+dEWJl1+ydwRL/G4gMfF7flDJjmuuP/cnYyD1MRAx8eP3uwcP7RXEP2t2Y8oRfCJ/BJV6NkHFfsJRT8cd9YR/1Jf4+k2ubqNu52hxFeoOKtezaLmzkq5zTKPdjklUp+f77bscXaOFznI65qinI446aneWUZZuIyb+1B8kEvkb4Lox/hgDoWMgYuJvmDrZkPYxCUiXThhpiX+Ls5r+ra0U6+v/1VYbLozt8A97cz/g3/Yy3kbnBPpGW2E8w/9HrV9MIszp8IxJwjP2+R7xkeaCfRZd4TV+r7a2akP2C31w4jbjNmMMxAYDERN/a9tMQfxY1y8pzReW/LiHod+ixQupumYsD4xRXt8fdNQaJAxCHnRMpsOOOnpH6xP+32sraazu8mh3lfhB2u9ri+iUYyrdb59Dv2kDIt1H2mJy6ZpHOnx4T9jnivBftFV01jFDlGeeCLBxX2w+UB74uF0ZA4yBaGMgYuKX6/vrNwzQrt3bxCQA6/3yOnb8IHXObfUik2i/SLzzGymJf4yeTd8NSes3OxpJ14c/CqjwP9AWC5K+aJ/l0eYq8UMrUKoPb7HscpaLNJgQtJi0BdAewB/XWud4I0+o/uWEAGFM/MP9EG8scnnc9owBxkAoGIiY+FesXOxB8nPntYm9/JD0IfljAgDyx/7+UCrGca2BfGBI2sfaOsjX3E5SGwAVvBqmEj80BGoY7r/WlgtyX+H01NBc75gm/D/Rlog1fTUdbAbkpICJ37q/1Pbie24jxgBjIBEwEDHxL1+xyCB+qPbVl8rJddL+A7tF+NJlvR5harxkvB8piR/r6pJsL2k9hOvNoestrZc+1pYY4TD+k22rEj+M9KS/dN/WekW6rY5qj7B77K3C/y92b60NNAyyLkz8PKBJLLHLWGAMJDYGIiZ+7NeXav26+okepIHOx2QA4Zu3rPMKY3CEDo5nFSO7H7R+8ndN1vOMNleJv0kvMvxlH7yh9QgS3+6o8Qh7wd4l/M87Znr4y3TSwJCJP/S+lG3ILrcdY4AxEE8MREz87R2zDeK3Opq3o7NFhA/u32VJHPF82WiWNVIS/+P2TkHEkMRDeR+V+GeEQPxyHf93dgvi1230s7ZK1IeJnweuUPDIcRkvjIGRw0DExN84o94g/jGVZV5ktGBhpwjfedUWrzDu+NA7Hlb1UK8/bZ8XUnuGS/xyaeFBe7tXeaP1LFEX1IeJP/S+ZPxzmzEGGAMjgYGIib+oOJdwTC/U+XPaPS3J8ULSwG9g9XIv4hiJF45WmSMl8WP/PogWknaNnht0m4ZL/IccU0R52CKINX21/TY5JzDxR3mrptq+fM+kwBhgDMQCAxETPyoFUgfxQ6rHuf2yotOmTzG0Ac2zphv+Mpzd0EENAscefJA/9tJX6Tke7VqhZxHIGtb/avuGS/w4D0Cq8291zDDyHK+7jHqwxB96P6p9w/fcfowBxkA8MRAV4h83fjQdOLhHkDyO7127rp+2bF1vkP72HZsIv+yN54vFuqyRkvjxXrDKh1EfCBfuc/YuesjeTjDQkyR9h73Zo73DJX6Ud8bRaEj2sP7Huj9O/vt16OAfJn4etGL9vXH+jDHGQPQwEBXiR4dUjCklELy08JcutvvlFwxvK+POi07n1er5Yp3/Pwr5goBBxiDmPmeFB/Hn6naScRv1Qo8w9MnrWrcg920mq37RX7pNnPInJxUoB6r/dc4q+kxbKtLhPwHct9HpW25HbkfGAGMglhiIGvHLSuK8/gnVlQQtgJWVv4yX7O5ISvxq2xXoDsL2PJy+N10vpGJfP+mJwlo0tAY4ya/ZWWx5tK9aL77ngYsxwBhgDCQmBqJO/NzRidnR3C/cL4wBxgBjgDEADDDxhykJJ4rEzx8yf8iMAcYAY4AxEAoGmPjDJP5QGpnj8kfJGGAMMAYYA4mCASb+MImfJX7+iBPlI+Z6MBYZA4yBUDDAxB8m8YfSyByXP0rGAGOAMcAYSBQMMPGHSfws8fNHnCgfMdeDscgYYAyEggEm/jCJP5RG5rj8UTIGGAOMAcZAomCAiT9M4meJnz/iRPmIuR6MRcYAYyAUDDDxh0n8oTQyx+WPkjHAGGAMMAYSBQNM/GESP0v8/BEnykfM9WAsMgYYA6FgIGLixxn9k2snBLwqx47is9zDnGSE0qEclwcAxgBjgDHAGPCHgYiJf+myXq8f88gf9Kju6jUrUor4WeLnD8vfh8VhjA/GAGMgUTEQMfG3d8ymTZvXWl5bt20wJgWIl6iNwPXiD5QxwBhgDDAG0gUDERO/v4aqb5gkiP/Y8YNUXJKXUsTPEj8PEv6wz2GMD8YAYyBRMRBT4l+zdqUgfriJ2gBcL/44GQOMAcYAYyCdMBAz4i8tKyBI+ljnb5g6OeWInyV+HijSaaDgd2W8MwZSBwMxI/6589oE6R84uIdcOY6UI37+CFLnI+C+5L5kDDAG0gkDMSH+rGyN9uzdIYi/t68rJUmfJX4eKNJpoOB3ZbwzBlIHAzEhfuzrl1v5xo4rT0ni548gdT4C7kvuS8YAYyCdMBAT4l81sEwQ//Ydm1KW9Fni54EinQYKflfGO2MgdTAQdeIvKs6lo8cOCOJvaW1KWeLnjyB1PgLuS+5LxgBjIJ0wEHXin9M+S5A+yL+g0JWyxM8SPw8U6TRQ8Lsy3hkDqYOBqBP/rt3bBPH3r1qasqTPH0DqfADcl9yXjAHGQLphIKrEXzNxnCB9GPZNqatJaeJniZ8Hi3QbLPh9GfOMgdTAQFSJf/mKRYL4B/fvImzpY5CkBki4H7kfGQOMAcZA6mAgasSfX5BNR47uF8S/YGFnypM+S/yp8xHwgMZ9yRhgDKQTBqJG/DObpxlq/tEVJSlP/OkEEn5XHhQZA4wBxkDqYCBqxJ9uoGCJP3U+gnTDLr8vY5cxkN4YYOLPSm8A8ADA/c8YYAwwBtILA0z8YRI/S/zp9aHwwMj9zRhgDKQKBpj4wyT+VAEAvwcPZowBxgBjIL0wwMQfJvGzxJ9eHwoPjNzfjAHGQKpggIk/TOJPFQDwe/BgxhhgDDAG0gsDTPxhEj9L/On1ofDAyP3NGGAMpAoGmPjDJP5UAQC/Bw9mjAHGAGMgvTDAxB8m8bPEn14fCg+M3N+MAcZAqmCAiT9M4k8VAPB78GDGGGAMMAbSCwNM/GESP0v86fWh8MDI/c0YYAykCgaiSvzVNWOppbWJFnbPpTnts6iufiJlu+x8bn+Yk4twQPahtph+0vppkbMiZu3e7RxNT9vn0efaMlEWyjvlmBqV8nILbXTbey5xVdbyHx7DwcBIpnHlDfff+IaR779rX8gWWJrexePQSOKCy06sSVNUiL+oOJc2bFxt/KTn+IlDxv2u3duoasKYqJBCIoEnUSV+kPF/tdW0zFkZkzaf7SwR+aMMXN9qK+grbTkdd9RHpby8Ihv97pMccY2rG3niSCTMjVRdmpc4aOeFLFq01xmwj0H8sv+qpo18/934mkvUZ0YPE/9I4YfLTSzSR39Ehfg3blpjEP2mzWupvWM2rRpYZvymd9/gVVRQ6Ao4aDBAIgdIrIn/D/bZgvAvaT1UrxdEvU+Z+CPHQLS/o8WDTkGeu+/KCtjfTPyJ13/RxgPnl/x9HDHxl48uNki/b9ECj4Fh6rRaI6xxRnQkwkQBXbpK/M/ZuwTxR0u1b+5PJv7EG1SY+BOvT8zfDT9zH4WCgYiJv75hkkHuEyeN9yD+nFynIfUvWNjpERZKJTmuN6hzdI0WOsvpmKOejjjqqN1ZRlm6Tay7B1L1V+rZYinghKNeqOiXOMdQie5DjavbCGv68vpIWyyI/zZHk+GHsFo9Lyr9ayb+MZM16lznoGWHnTRzsYOKyr3bQsVH+QSN2lY5qG+vk1Ycc1L7GgdNbLZTlst/OuSBNem5Gx20/IiTlh50ivtg1NUlY2wEVfKifU6hDm/stlN+ceDy1HoHuq9rt9PUuXYaNV6jBduc1LvLSdIGAmWjznjv7Bzf5YZST7w3ysO15TZdSPxHH802/GQY+kutu1niLxxlo6Zeu+i/+ZsdVDk5sPof/TBntYOWHXIS0tS2Bu6/7FwbNXTaqW+Pu20mz7aTnm0jVvV79o/aV3yfvm0TMfGXlOYbxA9jPhVMhUU5dPTYARE+bfoUjzA1XjLej6TEX65n0TP2+YKA5Vo73Av2WXQlwBr/Fmc1/Vtb6ZUWRoFYvzf3RZ5u94qrlinvr3dM90prziuYZ5X4QWbnP3Kv0cp14xtedVHNDGvy2Hkxy1hflvGlu/9vWQTi81WHtde7yU3GV13Uw1c6TCzOvutZR6SFUVlNk3U9feXlz//WoTJufnO4LNxvOONZb7yHVT6h1nPXn3y3pdo21aa+UIkfE5Gb3xquL9LBcNPXejvSDpzyfB9Z1r57ffcfJhfoXxlXuutv0pn442hYbIU79vM95oxk20RM/Kg81vVh0Ld6zQqClA+/rGyNOue2Cv8jR/dTXn7g9cGRbIhkKvsJ+1xBxr9oq+isYwYNOiZ7TQSsjPsGHbUGiWPigHSHHXX0jtYn/L/XVtJY3dMWI1u3Ca0AtAO4vhiaWDxs7xDP0n++s9yScEJtV5X4MYBf+3y2kN6hbr7+ZTeJ3PK2iwpKvT+oY4+5Lbi33p4lJL+OtW5NwZk33OlOPpttKflPabMbpLHjQhZ173TS3A0OQUJIO3DSmkwheUuSGfxrlpDEe3Y56Zqns4X/re+4/E42QmkbSfzX/dNF/Sd0QhvIsrH2vu13buLDJAQEquYdTj1nLXO4NRj7nAapoi+EVgOajaHLPJlSiR/1O/VcNi054KTtv88yJnGnX7Tuh5XHh0l/x53u9lx9SqfbP3S/6+GHsz3eS77j3nvc74546Cu8r3ki4GuyIfNg1xMz3B6p3R5RIf4xlWW0Zet6QfKHDu8TEwAY9GEyAIl/dssMyw82mcE1UhK/alW/1jm8tALVv5wQQAo3E/8YPZu+01YIgr/Z0Ui6PgzsQt1BHwyp8C/aZ/ntqze0HpHHdkeN33jh9q1K/FDTllYO13N0jUaSAHt3e0vhGNwLy4bjyzpMmz9M7A1zva27QZwgKZC3TCPdnHwbVdR4S+7FFTaDfPuv9pwY5BbYxIQFeUIil3lF4sr3xrsgH2ghkD80IDJfqdZWt9FFo57hrvFD66FO0Oo7hvth4kzPfkA9z152E/wqU3tiqQDvisu8LQ/aHxk2e7nDaAssecgJAcKZ+L2/C4kbdtOvbaJC/ADO9MY6Onb8oCB7dTtf08zo7O9mcLrBeb1jmiDeT7QlYk1fbRestUvVu5n4DwxJ+7D6xyRBTYd7qQ3AUoE5TH2OJ/GvOOpN7lK1jfVmtV7+7kECUuqHytscVy4R7Lnbm/jNceXzwh1u4gXZYn1Z+ktXStkIl36RuJL4x0xy913neocgPEi2Mt/Df3drGmpbhkk1GvUMl/jRBrJu0j1zyU3uM/s8+wHLAiBoSO2YBMj40j3xpPvdzBMpOQGCJgRr+jI+XEzy5KSAid+zbdR24vv0a5uoEP/SZb2C8EH8S5b2UGvbTIIx38FDe4X/wOrllF8Q/ECdDEAcKYn/HnurIPe/2Fs9Bjm0GSR3X8SP9X8Zhq14uN4cut7SeuljbYkRDuM/X30QT+KHkZy5HiBuDOYgEHMYnqsbNVp9rU6Q4o8/kS3U7lC9Y20Z6UCE5nRQa0uCuOqPWcIgcOwUzXJZQKbF+rFMg3JwgZzE9VQ2QZ0tw83qcJlHKK4k/rJxbuJv7XfXWd1iB40FylSl4mjUM1zih7Gd+R2vfsrdLuYJGJYOUPcTT1ljD32KcKz1q3luOef233re0x9xcBiU7AMm/vQjNxUnfO/Z/xET/+TaCYaUP2t2o8dHOaq8iKD6hwaArfo9Gz5cIL4wtJ3uvGOmR1vL/KThnlnif1YxBvxB6yd/12Q/FvrxJH6zOhjvqKp9oVKX7w13zXXDZIwBH4aBWGfHdf5jN/FbHUKTU2ATB9RIkpDuqeezhaW81Y6A/fe5SRZxoaL2d1ktFaj1DuZeEn/xaPc7zx6arOBgHZleqrZnKBOmaNQzXOKfMN1bs4QJEtoMOzVkveHKCQreQfWX9+g3pEOfSD+4Bx9w54e+V/3lvTS8ZOL3/FZk+7Cbnu0SMfH39nUJYsdavpVUDw0AiH/Hzs2WH2ayAm+kJH65jv87uwXx6zb6WVslJHfvokeeAAAgAElEQVQz8T9u7xT+0BhE0ubxJH5VZS3rDBUxCACkrhIytAPwxwUDL9gDqOGHHnIThBXxy7xBVDCcwzKCzAuuec0Z8bEsgDBInDJ9LF0z8UstRSDij0Y9wyV+q62Qvoh/zWn3pA0TFat2hIEg2tusEZCTnbU+iP/cB+4JHxN/ehKcFZbYLwon9+GEPhA7jPusGlRODCD5W4WzX2gfpFTZP2hv92rP0XqWoa43Ez+s/6Hqxxn7kbR5PIkfR8Wa6zpvk5v4xZquslVp/Y1u4vAlMd40ZNkPlbI5T6vncfWaMPYD2WCdXp1EID4mFwizMgi0yi9Sv3CJPxr1jAfxYycF2hM7B6zaStp27Pqj58RAagrUCZBMjzMfkCcuJv7QxhnZhuymZrtFLPH39M4XxL//wG7LH/Ls3bdThOPM/lQC0UhJ/IccUwSBY+sd1vTVNt3knOCT+LF/H8QPjUCNnuuRTs0j0H08iX/zWW9pWlrgmwkea7wY4K0IQDXyCpb40Q44NEcSB9b81baRtgaQKHFokBoWi/twiT8a9eza6iblI49Yk7L6vup2vlAk/pmLhu0s1F0JyBvGk3LHAiYyank9V7nrhuUc89KPNBhk4k9N8lJxwPeh9XHExI+DeaQVf3fPPLF/X3YCLP1l2KLFCz0+WBmH3dA6DPvspTr/VsfwNsnxuove1xb5JH4cxCPDsYe/Ss/x6I8KPYswqYD1v78+iSfxn3vfJchX1gdr1/JAH5ziJ/3h4qQ9DPCwCoeaX4bh5L+Tzwyr7q2IHyfETesynQ6XbSOpRQDpwFBM5gkXBIc96igTlvXS6E7GgbQJUrIyJpRxQnHDJf5o1FPaVaDtITkjT191D5f4kU6e07DvL1ke7S3398NOA5oYtWwYTgIn6IdV1wxPCtAfsAeAPy6W+H33mdqefJ8e7RQx8QMo6zcMGAS/e892ghX/1m0bDL/B/bsIf/BLJVCNlMSPNjzjaDQI/m2tV+zf/0ZbQb9qA4a/WdWPdDjiF0Z9kPzh4tz9h+ztBDKXk4k77M1++ymexI8BGxL1gfuzhBGXPMgFa/Bm1TuOgpWW+yCIA/dliX3c0ujulqET5KyIH+vGKAsED00CDvGR287gj+NjrbALq3W59xwuysTWwGOPZ4t6I+26G4bJyCqPYP3CJX7kH2k9IUlLUsY7QbqWOxjMmpBwiR/1RDsjf1w4nwDaHXkYEvw23mLdlnJigDjYNYA+xImBEi/wZ+JPD0IL9ntK93hRIX6cygerfZzQJyV86favWkqw7k/3ho7q++s2wk9yJFmDyKH6X+esos+0pYLYcf6+VZm1er5Y5/+PMklAekwaYDjY56ywTCfzek3rFvlvdVT7jSfjh+qqW7Ag1avb4jCAY7udr3PwsY3tupfc0h/i4sJz3Ry7YYyHs9zNdYJBn1Qly3RwcTre4v1Or/3hanrsq8c6v9w1INODdEBA0CSo8cO9lyf1yX8VwP4BZeGEO5mnNORrXOhdZqT1xM4EHKeLdpJaF5RvttwH8cu2MKvsUU+croh0OFVR1lt1QdA3ve7Zh5jQCaNM0z59NR2M/6QhH/LHRKllhYNueMWdl9XWUDU93/PEIJ0wEBXilw3mynHQ6IoSws96xo4rT+ljekdS4pftDfU9TvJrdhaTy+JQHhnPyi3QHdSkF1GXs5ym64VU7OsnPYoBnVU+8fADaeFHLQUWp/KZywfxQB2M9fnSsaENZqOrNcJOApwwB0kW2/zM+ft6RlyQINKC8PKi/JMeX+WG6p8s9SyvcvdhoPMU1PdH3+P/CDjLwawRUuPxffC45rZKzbaKKvEzSFITJNyvkfcrTg/ED21Cvcx/v+O+iLwvuA25DdMdA0z8YUq0iSDxpzt4k+n9R1UNnykPVXSwFzQIyfSeXFcmVcZA4mOAiT9M4mdwJz64E6mPYH2OXQChXpOamfgTqR+5LvzdpwIGmPjDJH6W+HkASIUBgN+BccwYSD8MMPGHSfz8saTfx8J9zn3OGGAMpAIGmPjDJH6W+HkASIUBgN+BccwYSD8MMPGHSfz8saTfx8J9zn3OGGAMpAIGmPjDJH6W+HkASIUBgN+BccwYSD8MMPGHSfz8saTfx8J9zn3OGGAMpAIGmPjDJP54S/zxLi8VwM3vwIM0Y4AxwBjwxkDUiD8rW6NJk6uotW2mOLcff+YrH13Mh4+EObFgsHqDNZHb5PjBRvrsnTXiGj3a9+9rCwod9PGlAfr4zQGqnVzA30eSfR+5uXaj/xrqCke8/17+x1KBpQXzrP/NIb+ZYPEp47ObXONPqP0VFeLHT3g2b1nn9YMe/KgHP+8JtVLJED/eEni8y0uEPhjbt5RmnbuHanceSHgMXXNkBl25vFZcFRW+ib+wyGnEq5sy8sSRCP080nVYumg8/el8Bw3uagiIs9w8u9F/0xpG/udjb76wQtSnd+FYv3UPFp8j3RdcfnwmHBETPyT9bds3CtLH3/l6eudTS2sT4a988g99XQs6/IKSOzs+nZ1s7Txl1yFa9Pb3NPuO+xIeP8EOrEz8iYf1A7unCvK858LcgDhj4k+8/ku2cS0R6hsx8U+bPsUg+Lr6iR4fTnfPPBF28NBeysn1/h1qIjRAuHWItwQe7/LCbZdopmPi50E2mnjylRcTP+PMFzZS1T9i4pfkvvOqLR6kjwYbX1VhTAowQUjVRkzp93I5qKJjrriy87OpaNJEql6zier2HaPKhX2UU+pbXV3e0krlLW2UXeDy6vvSadNEWF7FKI+wkoYGo7ymm+4UEn/Hfc8afrIursJcj3RqHxTX1VH1ms1Uv/9qqttzVNwjXzVOtO/DlfgnTcynDasn0tH902lJ7zgaNSrLbz0nVOXSwIpqGryqgU4caqS1q2qouamUsl2a33R434b6Itq0bhJhvffwvmniPhh1NZYuoErev7tBqMO7uyqpuDi6E/n2tnKa11FB48fl0PZNtbRnR71hA4Gyjx2YTqtXVpMrx/d7hlJPvDfKw3X+5jYh8T/5QI/hJ8OgoVGxYpb4y8qy/v/2rvM/iiPb/jH09LQkBAgESAIhIUwQJiMQEgJJgIQEAhENmBxsmWQc1mnfrsM627teZ7Owu44PnL1rcF7HZ3vfe97nzelTvd8p6baqe3qkUc9oguZ86F91V3WFvvd0n6pbt6pV+5pKrb+9u2apWTMH99uAHrZ3z1CnexYo5KlfNlkVFg1MvqOLLbWqsVxde+hKLZvldZNUQeEoRVP/wHIzdcfzflklTfzbtm/S5L51W5fnBYGQMQ1w/MQxnd6+vjUmPZcVke4ReLrrE90Ul5Vq8oXJvbbnBtX+wffuNeJaXvlQTaiN7dQVjClw7wsi3aZfvKHTa7bu8uBi2YPPuvlQfrxj4oIFnnzS3gU33xU3DzoCcl+qwzDEDzKDQ6D4BiB87/UutXhhaWA7H3ugyXOvme/cEy1qIN+CH91SFzcvOgLx5IGOxeeXt8TkhVPZ4kXB7YxX1kDxn13qreOTdza7deH87juWu9d4XjxHUDlDbecTD6/ylGvK0jxftMD7jCbxowP2yW+6PeXAcTPefDscA2+7cYnnfqnrucea4+oPnQvoV+6V8K7blqkP3uQcfxAeGNdP8kGySJr4QfiYyx+M+DHnH9QAxg2soEzLxyR+kPDqFy6p2Qd7FMzwra/+TpPsmtc/jxnVhyX+aes3qtmHT+hjxWPP6/KbX3rPjZM0v6UAcoKFQToKS+99Qs3ce1RbJ+ad+aFa88YXat71dwwbBk/3zFcgLxxlZfFH7eYcPz7g77zSqUfvMDdffq1Lf9w//W23Ki11Ytr6yrk27VH+4F0NeuS3c2uvpeCjt3vJ8s2XOgJHjg31k13S+Nn9K9XhfbVq946ZmoSQ99YblsTUBXkevHqOm+8Xj7f0jsQPzFWvv7Bex3/27hY1ZUqsNScMZoX43724UaETBRkIwWHu/eF7GvQ1OiEgULOOMO3s6qjSFgxYMYRUoQtcm4e/M2USP9r31sud6uQ189Wj9za6nbjfXNgQaIG5+VS/A+hP71up5Xn7jUvU1x9u08/2wnNrPc8lz/jMT5t1Ou6DrmARkTaLjOJ1NqSMRPEp9zPM7u9ysvpJmvgTNfXv3rM9ENTJPkCm8qd7BJ7u+kSuJvG3XvxEFZdPcvVYMqNGtb3735psZ+zwTvWEJX6pF+FQ5/jhBAjir3/s124bpTxMU5TUVMfES3q6QpP4MVqbahBnTc0Y3XHAx/yaQ3Nj2oqPO0Z//ra2rKpwSXLVyvKYdBAnygR5+/OOGRtRM2rGxMRjSaKQ7w+uX+xJHzfO1h0WlHnX7cs8af7yE70W4sezIA+sECgfFhApQ0a35jK6VLQz7Bw/rB5mB21lQ5mrhyWLJrrtRvvRzi8ub9Xpt/jk2b620s3nX5YH6w/kgGNTZz9+MeUhHQKkDUb8IkOGI5vQE9Vv0sSP9frivQ9yMiuWTgHSDx/Z50kz7+N59oLRJH7Ml/t1JfPwfrLNBPHX3feUJv7lD5+Naae/3Zm6Nok/yMQupm3MNyfaRpCAjPp3bpkRk0+mCJ5+dHVMWrw6Du/rHe1jDhnzy/77ZJQNMvanhbkW4ofPA/Lv3n6FJjuMbKW8F55dq+Pq6/r9QlLRzrDEj5G3tE3Cj/umKtavm+ZJw7QACBqj9qB9Hi7+ql2n+ztSmA5CPlhCMKcv9SBEJw9pJH6vXEwZ8TxYNkkTP+bxDx66WpO/LOfDJj7mcj4Q/4GDezygzXWFpHsEnu76RD8m8Vc0NcfoECN9jLKbX/7Ak5YJ4sc0gZj66+5/Wk3v3qHGz5qpnCKvaVieLROhSfxwkvO3AXPV+JCDQPxpuF44f4K646YlCqP4C79s12Z3mN6xIRDygQj9+WDWFoJ4/KEm7RA4Z/a4wGkByYv5Y8mDenCAnHC8+ut29dsLG9x0vzlcyhhKKMRfWTlat39L13RdvrnEDhYLtMkcFaeinWGJH852/md87fneaRB/BwzTB2g7ZOfPg2voFOmY6zfTH+hzPHzo7gZPPO7BZlCiI474gwnOlCXP+2WUNPFDmOUVpe5afhn9C9ljXT/O4QRIwfcLPldkYRJ/6bx5MTqc1tGlybb9ve+UU9g/MswE8ReOLdIb/gj5S7j6xcuqumurcorsmPanWw8m8fvNwWiLafaFSd1s3w9vXup+6PHBh2Mg5tlxfPtxr5Ng0CY0Y8faeoMaIQkJ3365U68QCFoRcO6JVrcumKgHOoKmCsx2J3IuxC+j4a7Oal0/NtaR/GLaXtfa32FKRTvDEv+CebE7k6KDBPlipYa0G6F0UJ79mZfY5R7oDfmgE4lD+Kun1uh46N6Ml3NxvCTx5963VXSYiTAlxI+GFxZFFEaljSuXqeaWRnXFzCpVNNpWnRvWaeJf37EmELiZeOhU1JnuEXi66xMZmcQ/adGiGB1O69ikib/t0v940gYl/vNv63x+r36pF+FQ5/glLzooV568Va187jXXAoBOwLzTt3naKPenMzSJ3zRZSxtgIgYBgNRNQoZ1QAgbDl7wBzCXgD3fZwYPIn4pe8H8Cdpx7uVzbW5ZKNM/54z7MS2ANIw4Jf9whjHE32elGIz4U9HOsMQftBQyHvHf0ddpQ0clSI5wEIS8/RYB6ez8xw+Cif+/Puh1DCTxk/iDcBUvLmXEH1QBiP+640c18a9oCAZuUD7GZQ+ITeLHun2/bmZefUST6+rn3/WmFdmq/f3/02mTFsd6ja9966te4t+225vP2Ls9LPGbbZwwZ7Z29gPxt776acbN/ibxY6tYs60433vVLE0AmNM10+7sM73HGzF++Fbvsi6YlM188c7n1pZoZz+QDebxzU4E8qBzgbSzP++fY49XViriwxJ/KtqZDuI/sr9WyxMrB4Lkhbl9yPuJh7y7B4qlwOwASX7s+YA8OEj82fPNFP1kczisxL9k6Xx37r9kfO/cXTYLYyhtS/cIPN31iSxM4l94270xHy049YFUlz3wTEwalvkhDdMBUh7C8bNn6Xik1QxA/FfsOqjva3z2oie/WVYi52X1DW59es7f6Fwkkj+V95jEf9+P6mOe66lHekfafoJ/qG85WxABmE5eiRI/ngmb5ghxYM7ffE7xNcCIEpsGmWnDcR6W+FPRTjjpQQ4vnR3codJczjeUEX9HW68lB/WYqxIgSzhPyooFdGRM+R490NthwHSOf+oHGxqJ/kj8JH4TN4Odp4T4QUrV0/v/DgWzP0j/+jPHNfF3dAavTx2scUzPPJhN4sfSvbJl/WRVua7D3dBnamvsR7PhyZc14SIcO613XhY77i1/5JxLxAMR/9TWNn0fLAcov6A4dm27iRHsJlixqtk7qi+01MJb7tHltL72mSosyWwH1CT+r97fpslXngFz17KhD3bxk3iE2GkPH3l4hcPML2nwgn/zxQ6XAIKIHzvEtaye4hnVw0NcrAggHTiKSZkIQXBYo4464Vk/rc/pTu7BXgUgpSBnQrlnKGFY4k9FO7HzHp4TsgeB+vcJMJ8jLPEjn+zT8NzPmz3yvqlvfT/8NGCJMevDPgnACdp365n+ZZVwgoQ/AOJxkPgz/6009Zbt5ykh/rb2Fk3wMOvDex/e/eLkt2//LjWhtP9Dle0CSbR96R6Bp7s+kYNJ/Biht136X7Xi8RcUyFxM+Y3PXPB8rCQvvOqRBwfuXfH4iwpWgHXvfKPaLn+n4wcifmz123LhY7cM5Gs6/5Y+gkbuTX1+AzDpo3OBTXzWvPmlm796c+b3kjCJHx9sjKh/+VSrduL6+sNeBz3MwftN79gKFrvCIQ8I4vyTrQpWAXG6+13fhjdBxI95Y+SDSR9zxtjER5adIR7bx4rOzBBe67L2HCHqxNLA/zzfptuNvPF20jPLSeQ8LPGj7GTbiZH0pVc3uiSK0bWsYPBbQsISP9oJOUNmOLA/Aaw7shkS4n7yw+WBejA3/sGqAegQOwYKXpCXxE/iT+Q9k3tSQvz4G9+p0z0u2YP0T566Vm3sah9xP+cRweVLaBI/fpPbcuETl0hB6PhtbtH44I5dweioWnDTnZ77kb98RaNaefZ1HT99y1WBHzuRLzbdwc57GK1LRwP1Bq0wgEMfSF86GxKufedr7ShorjqQ8tMdmkuwMKo3l8XhA47ldvH2wccytncNgsL9uG6sL3Od8bCXu/+ZsBOe7OmOPHJgg54Tx+bFrA8388OigHl+WTUgeUE6ICBYEsz7w57LZkHyrwL4P6Au7HAnZYojX9AyyGTbiZUJ2E4X1g+xuqB+OERK/QhhDRBZYM99Mw3n2F0R+bCroj8N1yBo8ccQWWIpJpwy/ev0zfxw/hNHPuRDR2nzhmrdgcB1kEzM/Dxnx8DEQEqIHwXi73uV08q0Nz+W95mVjMTzdI/A012f6MwkfuzUh/jxM2eoyXXLB/xBj+RHiO11MUUg+c204TgfN71KTa5bpjsY8CfAMr/hqCdVZYK08KOWiRMHnspAfSAemIMxPz916tCeq2b6GIWVBNhhDiNZLPNL9BlwL5avIS/mqMf7fl6TaDnDfV+utLO6uljrsHc/hf5lsAPJB9YG/B8BezmYKz4GysM0En4QBlJG/EGFMy73QRdE/NRr7us11TrE7oH4oc1QD0x9pLotLI/4JAYGxgCJP6SHd7pH4OmuT14cEv/AL5DIKd/DqqpidwpBTNiJhE0Nsbvf5bss+fx854YbAyT+kMQ/3IrJlvJJ/PwIJYJFeJ9jFcBQj7ol3p/ZJFIX7yEmiYHkMEDiD0n86R6Bp7s+ebHgWT/v9O36KJ7sdXSSexgm9xJSfpQfMUAMpBMDJP6QxJ9OJbEufhSIAWKAGCAGUoUBEn9I4s/UCDxVimc5/IgQA8QAMZCfGCDxhyR+vjD5+cJQ79Q7MUAM5DoGSPwhiZ8jfr78uf7ys/3EMDGQnxgg8Yckfr4w+fnCUO/UOzFADOQ6Bkj8IYmfI36+/Ln+8rP9xDAxkJ8YiEv8RaNt/cc9/HWvdOLYhHbXGjuuUM2aPV01NNapefNnJ5yP4Mtd8H1udai/Wt1qfbQiIYxQ17mra+qOuiMGRgYGYoi/eIyjVjQsVdf2HHZ/utO6pmnQj/qc2hmev/LJ3/lWNzcMmjcXwcQRf+8L8K21Uf3b2qY2Rnt/u5uLumSbR8bHjHqkHomBxDDgIf7GlcvU8RPHXMIX8h6M+K+YWaWuP3Nc5zt0eK9au2612rV7m1vOyqbg301SSYkpKZvlROLPfR1mM77YNuKLGEg9BjzEf+yag5qsQf5Nq+pVz3VH9PVgxL/zqi36vsNH9qkxYwvcEX73lg06/sTJa0bc73k54u8FI4k/9S8lP3SUKTFADAwnBjzEf/XendrMD3M/KsXoHaP+gYh/4qRx6swNJ/R98xfMcUm/sCiiDh66WsejDDNtOB8on8qe6hRqE/uN9lx1gz1XdUanqFInzt/OnFFqbbRcHyWOrcqcAtUVnaput+ero/ZMVesM7Mcx2rHUmmiZOmPPVaftWtUYnaQKnFGKxM8PVD69c3xW4n0kYMBD/P4HSoT4Fy+Z55J7yfjRLvFj2kCmChBu2NjmpvnrycXrTI/490Zr1J+szXp+HXPscsDZblm0NEbWY5yIe8/u6HT1B2uTe428f7G6487To5NwMdLsuR95HonUqd9zjj9G1rmIZ7aZhEYM5A8GkiZ+zN+D2K+59pD7AZxcNl47+p063aP27d+l03fs7HbTCbDkANZjz3ZJGITcY89Sp+xa9ZHVruP/aG1WlU6RR94m8YO0P7XWq1vseepspEH909qq831hdagix/Lkg65eiqzS6X+3tqh77EW6Pn9HgM59yemU7wTlRwwQA+nCQNLEv66tWRP7gYN7XMKQOX8s62trb4lJT9fDDWc9mRrxT3EK1fd9o/U77YXKcfpfFpjwP7M6NEk/Gqlz9QE5mMQPq8BEp3c6B2kt0TKdBx2C5T5rAawHiMexI1rllgnTv3QIkEbi79fDcOKOZVPOxAAxkCwGkib+zd2dmth379muSWHBwlp9jZF+QaGlmlsa9TUcBZNtLPOPUsf7RvuYWwf5+mUi1gCY4M00k/hhITDTcP6d1aXJfVO00pN2hz1fx39ldeo5fTMffAakU0Di58fIxAbPiQdiIHsxkDTxd21ar4kdjoHYwAcEj6V9ldPKNIG0tK7U6eZUwEgARKZG/JhXF7J9z1qncLzfd3xgtakvrU43Hc5/ImuT+OGkJ/ESfmi16Xz77BpP2pOReh3/dKTeE498sDBIW0j82fuSi44ZUkfEADEADCRN/GvWrtLEjqV8HZ1r9bm5CqB9fauOgwWAoEsedK8aTnZ/trrVQMcsZ4wrc5P4Fzvj3XjRyWVrnSbxA/YMT9obkRYdf7+9xBMv+cTBkMSfvG5FpgwpS2KAGBhODCRN/JjHN733jxzd71mzL1MB27ZvCiSO4Xy44Sw7UyP+FyNNmogxEh/K85nEv2gIxC/z+A9EAojfGaX+Zm3R7SHx80M1FDzyXuKFGMgcBpImfqzPN4kfu/iZCpWtfzHyN+N5Hk7p8KqHef1CZPWQ5BmW+GVq4VykMaa+cqdAtwXtIfGH0yffA8qNGCAG0o2BpIkfO/Wdvv46Tf7bd2z2kMPUyslup8DfIUj3g6a6vkyN+LF+H0SLkfYMp9gj74GeMSzxn7Tn6PqwRBBz+mYde6LTSfwh/+5oypHn/PATA8RAOjEQQ/xw0JMDZnuM5rEkT+JkVz+zkeLgd/LUtapiykRNDqOLo+4afmwFbN7P8/AgB4FjDT7IH2vpq53+TZMg1wqnQIGs4f1vyjks8WM/ADHn320vcsuscorcdnDEH16fpo54TjkSA8RAOjDgIf6q6gp3hG6a783zo8cOuB9/aWB5Ram7rz+274UjH/bnRz54+M+9cmZMHsmbq2GmRvyQF7zy4dQHwkX4WqRFnY80KjjoCUk/GFnqkXlY4kd9P7YXuiN7eP9j3h87//2jb+MfEj8/Vrn6HrPdxG4+YsBD/NOqygclflgBggRVVj5BYRMfs5OA+f3auVcE3h9UBuMSfwlnO2P1PP+/DPIFAYOMQczt0QqP3IudiJJ7FzolnjTI/ZK1VpP7fp9Xv9aJM0rv8iedCtQD0//OaLX6xtqg8+E/AdRf4vqjrCgrYoAYyBQGPMSfikaMKylSNTMqFX7ek4rysrWMTI74TZmMc2yF5XnYfW+BU6ImxPtJTwrmomE1wE5+S6MTArf2NdvFc37UiAFigBjITgyknPip6OxUNPVCvRADxAAxQAwAAyT+kCPhbBnx80Xmi0wMEAPEADEwFAyQ+EMS/1CEzHv5UhIDxAAxQAxkCwZI/CGJnyN+vsTZ8hKzHcQiMUAMDAUDJP6QxD8UIfNevpTEADFADBAD2YIBEj+Jf0SvvsiWF43t4EefGCAGsgUDJH4SP4mfGCAGiAFiII8wQOLPI2VnS2+T7eDIhxggBoiBzGGAxE/iZ0+fGCAGiAFiII8wQOLPI2Wzh525HjZlT9kTA8RAtmAgLvEXjbZV9fQp+iidODbh3mDYfNkikFxvx+dWh/qr1a3W+/bqz/XnYvv50SQGiAFiIDUYiCF+/HZ3RcNShR/syA93Wtc0DUr8YfNRkalRpMjxW2uj/mnOxujUQXUmeRimVgeUJ+VJDBAD2YwBD/E3rlymjp845hJ+osQfNl82CyZX20bi5wcnV7HLdhO7xEB6MOAh/mPXHNSkD/JvWlWveq47oq8HG/GHzUclp17JJP7Uy5Q4pUyJAWJgJGHAQ/xX792pzfww2+MhDx3emxDxh803kgSJZ5nqFCqY2G+056ob7LkK/6gvjfebXGeUWhst10eJY6syp0B1Raeq2+356qg9U9U6A/tVjHYstSZaps7Yc9Vpu1Y1RiepAmeUIvHzAzXS3is+DzFNDKQWAx7i9ws3UeJPVT5/Obl0va4yracAAARESURBVDdao/5kbdbz6/+2trkhnO3wD3v/s+Df9nLf7uh09Qdrk3uN+L9Y3boT4c+Ha3QSLkaaPfcjzyOROvV7zvHHyDpIhoxL7YeE8qQ8iYHcwQCJPwXL+Xrs2S4Jg5B77FnqlF2rPrLadfwfrc2q0inyEJJJ/CDtT6316hZ7njobaVD/tLbqfF9YHarIsTz58HK9FFml0/9ubVH32It0ff6OAJ37cucl5AeTuiIGiIF0YoDEnyTxT3EK1fd9o/U77YXKcfoBDBP+Z1aHJulHI3UeAjeJH1aBiU7v9AqU3xIt03nQIVjusxbAeoB4HDuiVW6ZMP1LhwBpJP5+PaTzhWJdlDsxQAxkOwZI/EkS//G+0T7m1kG+foWLNQAmeDPNJH5YCMw0nH9ndWly3xSt9KTdYc/X8V9ZnXpO38wHnwHpFJD4+fExscFz4oEYIAYEAyT+JIkf8+pCtu9Z6xSO9/uOD6w29aXV6abD+U8EbxI/nPQkXsIPrTadb59d40l7MlKv45+O1HvikQ8WBmkLiZ8vuWCJIbFADBADJgZI/EkS/6uGk92frW410DHLGeOStUn8i53xbrwo57K1TpP4AXuGJ+2NSIuOv99e4omXfOJgSOLniy6YYEgsEAPEgIkBEn+SxP9ipEkTMUbipmAHOzeJf9EQiF/m8R+IBBC/M0r9zdqi20Pi54s+GAaZTowQA/mJARJ/ksQPr3qY1y9EVqeF+GVq4VykMaa+cqdAtwXtIfHn5wvNDzn1TgwQA4NhgMSfJPFj/T6IFiPtGU5xDBnHU0DYEf9Je46uD0sEMadvlr8nOp3En6Q+TXnynB9QYoAYGIkYiCH+seMKlRxHju7XO/e1tbe4cbKrn18YkgfhUPL5y8m1axA41uCD/LGWvtoZ7SHjCqdAgazh/W8+W1jix34AYs6/217kllnlFLnt4IifHysTazwnHogBYsDEgIf4q6orNNHLz3mCwqPHDrhkIwWFzSf5cz2EVz6c+kC4CF+LtKjzkUYFBz0h6QcjSz1yC0v8kNWP7YXuyB7e/5j3x85//+jb+IfEz5c8198ptp8YJgaGDwMe4p9WVT4o8WM071dI2Hz+cnL5erYzVs/z/8sgXxAwyBjE3B6t8Mit2IkouXehU+JJgxwuWWs1ue/3efVrGTmj9C5/0qlAPTD974xWq2+sDTof/hOQy/Jk24fvpadsKVtiIL8x4CF+giF5MIxzbIXledh9b4FToibE+0lPCuaiYTXATn5LoxMCt/alPpPXJ2VIGRIDxMBIwwCJPwUEPNJAwefhh44YIAaIgZGLARI/iZ9TAsQAMUAMEAN5hAESfx4pmz34kduDp26pW2KAGEgUAyR+Ej97+sQAMUAMEAN5hAESfx4pO9HeIO/jyIEYIAaIgZGLARI/iZ89fWKAGCAGiIE8wgCJP4+UzR78yO3BU7fULTFADCSKgf8Hd08+AZOItCUAAAAASUVORK5CYII=" width="326" /></pre><pre style="text-align: left;"><br /></pre>参考 https://stackoverflow.com/questions/19319138/dynamically-create-a-class-inherited-from-activerecord醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-23031497566949744952020-06-16T15:08:00.000+08:002020-06-16T15:08:32.519+08:00你在用open-uri 么?看完<a href="http://sakurity.com/blog/2015/02/28/openuri.html">http://sakurity.com/blog/2015/02/28/openuri.html</a>,赶紧看一下自己的项目。还好还好,只有内部项目在用。要不回头黑客上传一个文件,然后再调用命令执行一下,简直不能够再欢喜了。醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-59174981350468175042020-03-12T10:03:00.001+08:002020-03-12T10:14:05.191+08:00利用Nginx做端口转发<h2>问题</h2>支持访问http://localhost和https://localhost,把80和443端口都转发到Nginx server,通过Nginx server再转发给Rails App。<br />
<h2>解决</h2>首先搭建一个F5的load balance,把所有的request都转发到8680端口。<br />
再搭建一个Nginx server,模拟服务器上面的80端口。把所有的request都转发到3000端口。<br />
<br />
其实这个Nginx server有些鸡肋,本来就可以直接把F5转发到3000端口的,但是一般Rails都是搭配Nginx的,就单纯再模拟一次Nginx。<br />
<br />
<h2>步骤<br />
</h2>创建self-trusted cert on host machine<br />
<pre code="bash">openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt
</pre><br />
<br />
docker-compose.yml<br />
<pre><code class="xml">version: '2'
services:
f5:
image: nginx:latest
volumes:
- ./tmp/nginx/f5_https_pool.conf:/etc/nginx/conf.d/f5_https_pool.conf
- ./tmp/nginx/f5_http_pool.conf:/etc/nginx/conf.d/default.conf
- ./tmp/ssl:/etc/nginx/ssl
ports:
- 80:80
- 443:443
nginx:
image: nginx:latest
volumes:
- ./tmp/nginx/nginx_server.conf:/etc/nginx/conf.d/default.conf
ports:
- 8680:8680
</code></pre><br />
<br />
tmp/nginx/nginx_server.conf<br />
<pre><code class="bash">upstream rails {
server host.docker.internal:3000;
}
server {
listen 8680 default_server;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_redirect off;
proxy_pass http://rails;
}
}
</code></pre><br />
<br />
tmp/nginx/f5_http_pool.conf<br />
<pre><code class="bash">upstream nginx_server {
server host.docker.internal:8680;
}
server {
listen 80;
server_name localhost;
# return 301 https://$host$request_uri;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto http;
proxy_redirect off;
proxy_pass http://nginx_server;
}
}
</code></pre><br />
tmp/nginx/f5_https_pool.conf<br />
<pre><code class="bash">server {
listen 443 ssl default_server;
server_name localhost;
ssl_certificate /etc/nginx/ssl/localhost.crt;
ssl_certificate_key /etc/nginx/ssl/localhost.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_pass http://nginx_server;
}
}
</code></pre>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-19607949757104888012019-09-18T10:23:00.001+08:002019-09-18T10:23:13.815+08:00Python 不要使用可变类型作为参数的默认值<br />
《流畅的python》一书中有一小节提到过,不要使用可变类型作为参数的默认值。 碰巧自己刷题的时候没有意识到这个,成功踩雷。在python里面,变量都是对象的引用而已。在下面的例子中,修改一个变量,另外一个变量也会变,因为他们其实是同一个对象。<br />
<div class="page" title="Page 360">
<div class="layoutArea">
<div class="column">
<span style="font-family: "simsun"; font-size: 20.000000pt;"> </span> </div>
</div>
</div>
<br />
<br />
<pre><code class="python">
def f(v = []):
return v
a = f()
b = f()
a.append(1)
print(a == b) # don't use mutable obj as default param
print(a is b)
c = f()
d = f()
c += [1]
print(id(c))
print(id(d))
print(c == d)
print (c is d)
</code></pre>
<pre><code class="python">
</code></pre>
虽然说可以用 a = a + [1] 来避免,但还是不要用可变类型作为参数默认值。醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-72616780981231289522019-06-28T14:30:00.002+08:002019-06-28T14:34:54.092+08:00Python, Ruby Thread Safe?最近在刷python的题,遇到经典的银行提款的问题。做完以后,想在Ruby上面也实验一番,进而发现了更多好玩的知识点,略微整理一下。<br />
<br />
<h3>问题回顾</h3><br />
从银行账户里面取钱和存钱,多线程操作,看是否会导致账户余额出错。按道理来说,最后应该还是1000块钱。<br />
<pre><code class="python">
class BankAccount(object):
def __init__(self):
self.balance = 0
pass
def withdraw(self, amount):
self.balance -= amount
def deposit(self, amount):
self.balance += amount
</code></pre><br />
<pre><code class="python">
def test_can_handle_concurrent_transactions(self):
account = BankAccount()
account.open()
account.deposit(1000)
self.adjust_balance_concurrently(account)
self.assertEqual(account.get_balance(), 1000)
def adjust_balance_concurrently(self, account):
def transact():
account.deposit(5)
time.sleep(0.001)
account.withdraw(5)
# Greatly improve the chance of an operation being interrupted
# by thread switch, thus testing synchronization effectively
try:
sys.setswitchinterval(1e-12)
except AttributeError:
# For Python 2 compatibility
sys.setcheckinterval(1)
threads = [threading.Thread(target=transact) for _ in range(1000)]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
</code></pre><br />
结果,上面这个python测试代码通常是失败的。根据<a href="https://opensource.com/article/17/4/grok-gil">https://opensource.com/article/17/4/grok-gil</a>,`+=`不是原子性操作,中间可以GIL切换到其他线程上面去操作了,进而导致问题。要想避免这个问题,引入lock即以。<br />
<br />
<pre><code class="python">
lock <span style="background-color: #1e1e1e; color: #d4d4d4; font-family: "menlo" , "monaco" , "courier new" , monospace; font-size: 12px;">=</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: "menlo" , "monaco" , "courier new" , monospace; font-size: 12px;"> threading.Lock()</span></code></pre><pre><code class="python">class BankAccount(object):
def __init__(self):
self.balance = 0
pass
def withdraw(self, amount):
with lock:
self.balance -= amount
def deposit(self, amount):
with lock:
self.balance += amount
</code></pre><br />
但是,Ruby代码却不会有这样的问题。根据<a href="https://www.jstorimer.com/blogs/workingwithcode/8100871-nobody-understands-the-gil-part-2-implementation">https://www.jstorimer.com/blogs/workingwithcode/8100871-nobody-understands-the-gil-part-2-implementation</a>,all methods in MRI are atomic. 所有操作都是原子性,没法在分割的,即不会出现中间GIL 切换到其他现成上面去。<br />
<pre><code class="ruby">
class BankAccount
attr_accessor :balance
def initialize
@balance = 0
@semapore = Mutex.new
end
def deposit(amount)
@balance += amount
end
def withdraw(amount)
@balance -= amount
end
end
account = BankAccount.new
account.deposit(1000)
threads = []
1000.times do
threads << Thread.new do
account.withdraw(1)
end
end
threads.each(&:join)
p account.balance
</code></pre><br />
那,有没有办法在Ruby里面去模拟这种情况呢?有,而且应用还颇为广泛。<br />
如下面这段代码,先把balance缓存起来,然后sleep,再做操作,就会出现GIL切换线程的现象,进而出现线程安全问题。这种情况在很多地方都会出现,中间的sleep常常表现为系统进行其他的操作,但时间不可预知。回过头再把缓存的数据进行操作的时候,其他线程早就已经更改了。这种情况最典型的例子就是秒杀时候inventory的问题。<br />
<br />
将注释去掉,引入`semapore.synchronize`即可。<br />
<br />
<pre><code class="ruby">
def withdraw(amount)
# @semapore.synchronize do
balance = @balance
sleep rand(10) / 10000.0
@balance = balance - amount
# end
end
</code></pre><br />
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-78397625693592481632018-11-09T13:50:00.004+08:002018-11-09T13:51:32.045+08:00IE doesn't redirect 302 from POST > redirect > GET?You may expect IE will redirect 302 for POST to a GET request. The truth is IE does it. However, the default developer tools sucks.<br />
<br />
As you could see from the screenshot below, you will always see POST after 302 response in IE developer tools.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-sJFUKJNAgjs/W-Uc_VC6x3I/AAAAAAAAEfk/4Fyu2rVWzN42KGwZpE5_NldhvgPOeCojQCLcBGAs/s1600/QQ20181109-133150.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="167" data-original-width="728" height="146" src="https://1.bp.blogspot.com/-sJFUKJNAgjs/W-Uc_VC6x3I/AAAAAAAAEfk/4Fyu2rVWzN42KGwZpE5_NldhvgPOeCojQCLcBGAs/s640/QQ20181109-133150.png" width="640" /></a></div>
<br />
If you see details for these request, you will see both POST and GET requests. How could it be?<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-qUDKxWR52xY/W-UdEgH0cjI/AAAAAAAAEfs/a5jFPIi7R9UHGn8zqaUhTS1G1iwMmS-TQCLcBGAs/s1600/QQ20181109-133227.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="439" data-original-width="707" height="396" src="https://2.bp.blogspot.com/-qUDKxWR52xY/W-UdEgH0cjI/AAAAAAAAEfs/a5jFPIi7R9UHGn8zqaUhTS1G1iwMmS-TQCLcBGAs/s640/QQ20181109-133227.png" width="640" /></a></div>
<br />
<br />
While, if you use other network monitor tools to monitor the network, you will see only GET request.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-Yjq7NMyCfIA/W-UdAKyAVBI/AAAAAAAAEf0/QqCg2mGcSwQLBep8lKsPuDQR_6L1Lx3nACEwYBhgL/s1600/QQ20181109-133419.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="483" height="640" src="https://2.bp.blogspot.com/-Yjq7NMyCfIA/W-UdAKyAVBI/AAAAAAAAEf0/QqCg2mGcSwQLBep8lKsPuDQR_6L1Lx3nACEwYBhgL/s640/QQ20181109-133419.png" width="638" /></a></div>
<br />
It will bring developers into wrong directions as they would think it's the HTTP method error. For example: <a href="https://stackoverflow.com/questions/28513449/ie-ignores-303-redirect-in-post-redirect-get-scenario" target="_blank">https://stackoverflow.com/questions/28513449/ie-ignores-303-redirect-in-post-redirect-get-scenario </a><br />
<br />
And I would share another IE bug. If there is underscore in your domain, no cookies will be set.<br />
<br />
See <a class="external-link" href="https://blogs.msdn.microsoft.com/ieinternals/2009/08/20/internet-explorer-cookie-internals-faq/" rel="nofollow" style="background-color: #f4f5f7; color: #0065ff; cursor: pointer; font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 14px;">https://blogs.msdn.microsoft.com/ieinternals/2009/08/20/internet-explorer-cookie-internals-faq/</a><br />
<br />醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-2375280058644291262018-09-04T16:10:00.001+08:002018-09-04T16:10:22.624+08:00Ruby: How to Override Class Method With a Module<br />
<h3>
<span style="font-weight: normal;">You have a class with a class method. Write a module that, when included, will override that class method.</span></h3>
<br />
在这篇文章里面已经介绍了一种方法 <a href="http://tech.tulentsev.com/2012/02/ruby-how-to-override-class-method-with-a-module/" target="_blank">http://tech.tulentsev.com/2012/02/ruby-how-to-override-class-method-with-a-module/</a>,但我还可以分享另外的方法。<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
方法一:用instance_eval。原文中的方法。<br />
<pre><code class="ruby">
module BooModule
def self.included base
base.instance_eval do
def bar
puts "module"
end
end
end
end
class KlassC
def self.bar
puts 'class'
end
end
KlassC.send(:include, BooModule)
KlassC.bar #=> module
p KlassC.ancestors
</code></pre>
<br />
方法二:用 class << base ; end<br />
<br />
<pre><code class="ruby">
module TooModule
def self.included base
class << base
def bar
puts "module"
end
end
end
end
class KlassD
def self.bar
puts 'class'
end
end
KlassD.send(:include, TooModule)
KlassD.bar #=> module
p KlassD.ancestors
</code></pre>
<br />
方法三:用prepend。如果你知道extend实际上就是class << base; include ClassMethods end的话,你就很好理解为啥prepend在这里可以起作用了。前两者都是直接修改类方法,而这直接通过修改继承链的方法去覆盖类方法。<br />
<br />
<pre><code class="ruby">
module GooModule
def self.included base
class << base
prepend ClassMethods
end
end
module ClassMethods
def bar
puts "module"
end
end
end
class KlassE
def self.bar
puts 'class'
end
end
KlassE.send(:include, GooModule)
KlassE.bar #=> module
p KlassE.ancestors
</code></pre>
<br /></div>
<br />
能够直接用prepend么?不行。你可以试试下面的例子。虽然说,被prepend的module会放到class的继承链的下方,但实际上,类方法却不受影响。<br />
<br />
<pre><code class="ruby">
module FooModule
def self.included base
base.extend ClassMethods
end
def self.prepended base
base.extend ClassMethods
end
module ClassMethods
def bar
puts "module"
end
end
end
class KlassA
include FooModule
def self.bar
puts 'class'
end
end
KlassA.bar #=> class
p KlassA.ancestors
class KlassB
prepend FooModule
def self.bar
puts 'class'
end
end
KlassB.bar #=> class
p KlassB.ancestors
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-73000918303784681092018-09-04T14:01:00.001+08:002018-09-04T14:03:04.319+08:00Show test case name in verbose mode for Minitest 5.11.3最新的5.11.3 minitest不知道为什么,在verbose模式下,把对应的测试 用例的名字给抹掉了。这样的话,导致分析测试用例performance的时候,非常得不友好。<br />
<br />
https://github.com/seattlerb/minitest/blob/master/lib/minitest.rb#L617<br />
<br />
<pre><code class="ruby">
def record result # :nodoc:
io.print "%.2f s = " % [result.time] if options[:verbose]
io.print result.result_code
io.puts if options[:verbose]
end
end
</code></pre><br />
将上述代码替换成下面代码,就可以看到某个test用掉多少时间。<br />
<pre><code class="ruby">
def record result # :nodoc:
io.print "%s#%s = %.2f s = " % [result.klass, result.name, result.time] if options[:verbose]
io.print result.result_code
io.puts if options[:verbose]
end
</code></pre><br />
输出<br />
<pre><code class="ruby">Run options: -n test_viewing_transaction --verbose --seed 39465
# Running:
TransactionsControllerTest#test_viewing_transaction = 6.13 s = .
Finished in 7.851562s, 0.1274 runs/s, 0.1274 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
</code></pre>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-53713889320209324172018-08-30T11:29:00.000+08:002018-09-04T13:50:02.975+08:00List docker contrainer IP<br />
罗列所有container的IP地址<br />
<pre><code class="bash">
docker ps -q | xargs -n 1 docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{ .Name }}'
</code></pre><br />
单独monitor某个contrainer的logs<br />
<br />
<pre><code class="bash">
docker ps -a | grep payments | sed 's/ .*//' | xargs docker logs -f
</code></pre>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-41512573733964331262018-08-21T15:31:00.002+08:002018-08-21T15:31:55.064+08:00Implement DatabaseCleaner in Rails 4DatabaseCleaner上面的example过时了。按照示例去做的话,会报错 unknown method 'before'。在github上找到了答案,还是比较简单的。<br />
<br />
<pre><code class="ruby">
class ActiveSupport::TestCase
include FactoryGirl::Syntax::Methods
ActiveRecord::Migration.check_pending!
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.logger = Rails.logger
setup { DatabaseCleaner.start }
teardown { DatabaseCleaner.clean }
end
</code></pre><br />
配置完成以后,就可以在MYSQL去monitor query,看具体是如何操作数据库的。<br />
<br />
<pre><code class="shell">mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | OFF |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
mysql> SET GLOBAL general_log = 'ON';
</code></pre><br />
观察log<br />
<pre><code class="shell">
tail -f -n300 /var/run/mysqld/mysqld.log
</code></pre><br />
最后,重置改动。<br />
<pre><code class="shell">
mysql> SET GLOBAL general_log = 'OFF';
</code></pre><br />
<ol><li>https://stackoverflow.com/questions/568564/how-can-i-view-live-mysql-queries</li>
<li>https://github.com/metaskills/minitest-spec-rails/issues/44#issuecomment-244155657</li>
</ol>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-34087469723689916282018-01-22T14:39:00.005+08:002020-07-29T11:02:41.478+08:00MySQL下的死锁之前分析过SQL SERVER的死锁,但基本都是基于READ COMMITTED下的死锁。玩得高级点的,就是key lookup lock。最近不幸玩了MySQL,拿原来的理解去尝试分析,结果不对,然后才发现,MySQL的默认隔离级别是REPEATABLE READ。呵呵~<br />
<br />
在RR级别下,除了常规的RECORD LOCK,还有一个GAP LOCK。即两条记录之前的间隙。这样的话,就不会允许在范围内插入数据了。h<a href="ttp://blog.csdn.net/wanghai__/article/details/7067118">ttp://blog.csdn.net/wanghai__/article/details/7067118</a> 这里有个很好的例子去模拟死锁。<br />
<br />
至于分析锁,首先执行<br />
<pre><code class="shell">set global innodb_status_output_locks=on;</code></pre>
<br />
然后,再执行<br />
<pre><code class="shell">SHOW ENGINE INNODB STATUS \G</code></pre>
就可以拿到所有session的锁了。<br />
<br />
-- session 1<br />
mysql> start transaction;<br />
mysql> delete from game_summaries where game_id = 2;<br />
<br />
-- session 2<br />
mysql> start transaction;<br />
mysql> delete from game_summaries where game_id = 3;<br />
<br />
-- session 1<br />
mysql> insert into game_summaries(game_id, score) values (2, 0);<br />
-- waiting<br />
<br />
-- session 2<br />
mysql> insert into game_summaries(game_id, score) values(3, 0);<br />
-- deadlock occurs<br />
<br />
<br />
Deadlock info<br />
<pre><code class="sql">
------------------------
LATEST DETECTED DEADLOCK
------------------------
2018-02-11 02:19:51 0x7ff5b7b83700
*** (1) TRANSACTION:
TRANSACTION 365986, ACTIVE 59 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 16, OS thread handle 140693325752064, query id 1184 172.18.0.1 root update
insert into game_summaries(game_id, score) values (2, 0)
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 3445 page no 4 n bits 72 index index_game_summaries_on_game_id of table `TEST`.`game_summaries` trx id 365986 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0
0: len 4; hex 80000009; asc ;;
1: len 4; hex 80000002; asc ;;
*** (2) TRANSACTION:
TRANSACTION 365987, ACTIVE 45 sec inserting
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 17, OS thread handle 140693326018304, query id 1186 172.18.0.1 root update
insert into game_summaries(game_id, score) values(3, 0)
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 3445 page no 4 n bits 72 index index_game_summaries_on_game_id of table `TEST`.`game_summaries` trx id 365987 lock_mode X locks gap before rec
Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0
0: len 4; hex 80000009; asc ;;
1: len 4; hex 80000002; asc ;;
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 3445 page no 4 n bits 72 index index_game_summaries_on_game_id of table `TEST`.`game_summaries` trx id 365987 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0
0: len 4; hex 80000009; asc ;;
1: len 4; hex 80000002; asc ;;
*** WE ROLL BACK TRANSACTION (2)</code></pre>
<br />
<br />
然后就按照下面两篇文章去分析锁就行了。<br />
<br />
<br />
<ol>
<li>http://keithlan.github.io/2017/06/21/innodb_locks_algorithms/</li>
<li>http://keithlan.github.io/2017/06/05/innodb_locks_1/</li>
</ol>
<div>
如果你有SQL SERVER的背景知识,简单来说,就是基本的record lock(以及相关的index),加上gap lock。一旦有gap lock,这个范围内是不允许插入数据的。这就增加了死锁发生的几率。这种情况更多是发生在DELETE & INSERT 组合情况下。</div><div>在上面的例子里面,两个delete statement所加的gap lock是不会相互冲突的。但是会阻止后续的插入。</div>
<div>
<br /></div>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-25805282496526131212017-10-30T09:43:00.000+08:002017-10-30T09:43:02.472+08:00Include a new Module to included Module won't add methods故事是这样的,如果我在创建一个实例以后,再去编辑类并增加一个方法,这个实例是能够发现新的方法的。<br />
<pre><code class="ruby">
class Dog
def name
end
end
a_dog = Dog.new
p a_dog.methods
class Dog
def age
end
end
p a_dog.methods
</code></pre>
<br />
同理,在已经included 的module里增加一个新的方法。<br />
<pre><code class="ruby">
module Professor
def lectures
end
end
class Mathematician
attr_accessor :first_name, :last_name
include Professor
end
fett = Mathematician.new
p fett.methods
module Professor
def primary_classroom
end
end
p fett.methods # this will have new method
</code></pre>
<br />
但是,如果在已经included的module里面include一个新的module,这样就不行了。<br />
<pre><code class="ruby">
module Employee
def hired_date
end
end
module Professor
include Employee
end
p fett.methods # this will not have hired_date method until Mathematician included Professor again
</code></pre>
<br />
原因在于,前两者影响的是方法表而已,而实例对应的klass里面留下的只是方法表pointer,而不是具体的方法。所以,在方法表里面增加方法是可行的。<br />
但是,include 一个新的module,是会改变super pointer。在第一次include的时候,就已经“复制”好module并设置好了super pointer,不会再次改变。除非,重新打开类再include一次。<br />
<br />
<br />醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-49997944934329626832017-10-20T11:15:00.002+08:002017-10-20T11:15:32.594+08:00用最少硬币找零问题给指定的硬币类型,用最少的硬币个数,找出指定的amount。比如,现在有[2, 5, 10, 20, 50]这几种硬币,找出21块钱出来。<br />
<br />
这个其实是算法导论里面动态规划。无意间,发现还有其他的实现方法。记录下来。<br />
<br />
首先是动态规划。原来是,21块钱,可以拆分成19+2, 16+5, 11+10, 1+20。19又可以继续拆分成17+2, 14+5, 9+10。以此类推下去。里面有个技术点就是,还可以用block去定义Hash,厉害了。代码如下:<br />
<pre><code class="ruby">
def change(coins, amount, results = [])
return [] if amount == 0
coins.sort! { |a, b| a <=> b }
optimal_change = Hash.new do |hash, key|
if key < coins.min
hash[key] = []
elsif coins.include?(key)
hash[key] = [key]
else
hash[key] = coins
.reject { |coin| coin > key }
.map { |coin| [coin] + hash[key - coin] }
.reject { |change| change.inject(&:+) != key }
.min { |a, b| a.size <=> b.size } || []
end
puts hash
hash[key]
end
optimal_change[amount].empty? ? -1 : optimal_change[amount].sort
end
</code></pre>
<br />
<br />
<br />
另外一种方法是,创建一个数组,从1到amount,然后逐一用coin去替代,最后一个就是amount对应的coin了。<br />
<br />
<pre><code class="ruby">
def change(coins, total_change)
return -1 if total_change < 0 || coins.any? { |x| x < 1 }
m = [[]] + [nil] * total_change
coins.size
.times
.to_a
.product((1..m.size - 1).to_a)
.each { |c, t|
if coins[c] == t
m[t] = [coins[c]]
else
(1..t - 1).select { |t2| coins[c] + t2 == t }
.reject { |t2| m[t2].nil? }
.each { |t2|
m[t] = m[t2] + [coins[c]] if m[t].nil? || m[t2].size + 1 < m[t].size
}
end
}
m[-1].nil? ? -1 : m[-1]
end
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-24841511941025782222017-10-17T09:41:00.000+08:002017-10-17T09:41:01.586+08:00Include & PrependRuby的include和prepend有一个重要的知识点,就是多重包含的时候,后面的Module会被ignore掉,只会包含一次。<br />
<br />
<pre><code class="ruby">
module C
end
module M
end
class B
include M
include C
end
p B.ancestors
# [B, C, M, Object, Kernel, BasicObject]
class A
prepend M
prepend C
end
p A.ancestors
# [C, M, A, Object, Kernel, BasicObject]
class D
include M
prepend C
end
p D.ancestors
# [C, D, M, Object, Kernel, BasicObject]
module M
include C
end
class E
prepend C
include M
end
p E.ancestors
# [C, E, M, Object, Kernel, BasicObject]
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-77998644549860164122017-09-25T14:09:00.001+08:002017-09-25T14:09:08.096+08:00exercism.io - Poker in Ruby<a href="http://exercism.io/exercises/ruby/poker/readme">http://exercism.io/exercises/ruby/poker/readme</a><br />
来玩玩德州扑克~<br />
德州扑克里面,每人会有五张牌,然后两个人比点。规则是先比牌型,再是点数,最后是花色。牌型一共有9种,从高到低依次是:同花顺,四条,葫芦,同花,顺子,三条,两对,一对,散牌。<br />
<br />
基本思路是,针对每一手牌hand,依次判断其是哪种牌型,再讲改牌型的点数按大小排序,方便后面比点的时候用。<br />
<br />
目前来看,这道题稍微有点难,只有30多个人完成了。<br />
<br />
<pre><code class="ruby">
class Poker
RANKING_CATEGORIES = {
:straight_flush => 9,
:square => 8,
:full => 7,
:flush => 6,
:straight => 5,
:three => 4,
:two_pairs => 3,
:one_pair => 2,
:high_card => 1
}
CARD_RANKING = {
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
'6' => 6,
'7' => 7,
'8' => 8,
'9' => 9,
'10' => 10,
'J' => 11,
'Q' => 12,
'K' => 13,
'A' => 14
}
def initialize(hands)
@hands = hands.map { |e| Hand.new(e).tap(&:hand_nubmer_groups) }
end
def best_hand
largest_rank_hands = @hands.group_by { |e| e.rank }.sort.last.last #get the largest rank hands
return largest_rank_hands.map(&:hand) if largest_rank_hands.size == 1
largest_rank_hands.group_by { |e| e.point }.sort.last.last.map(&:hand)
end
class Hand
attr_reader :hand
def initialize(hand)
@hand = hand
end
# 找出最高的rank,比如同花顺,既是同花,又是顺子,但只能够取最高rank的,即同花顺
def rank
RANKING_CATEGORIES.map { |k, v| self.send(:"#{k}?") ? v : 0 }.max
end
# 根据不同牌型,返回对应的点数以便后面比点。比如,四条就会返回是4张相同牌的数字,三条/葫芦就会范围3张相同牌的点数
# 两对的时候,就需要将点数顺序颠倒一次,大的放到前面
# 顺子就返回最小的那个点,因为‘A2345'是小于'910JQK'
# 同花或者散牌,就直接将点数顺序颠倒,在比点
def point
return hand_nubmer_groups.find { |k, v| v.size == 4 }.first if square? # #find will convert Hash to Array
return hand_nubmer_groups.find { |k, v| v.size == 3 }.first if three? || full?
return hand_nubmer_groups.select { |k, v| v.size == 2 }.keys.reverse if two_pairs? || one_pair?
return hand_nubmers.min if straight? # straight, compare the lowest number to avoid 'A2345' > '910JQK'
hand_nubmers.reverse # flush or high card, compare the points from high to low
end
# e[0..-2]是为了避免'10S'这种情况
def hand_nubmers
@hand_nubmers ||= @hand.map { |e| CARD_RANKING[e[0..-2]] }.sort
end
# 将手里的牌进行分组,相同点数的分到一组,方便统计是否为对子/三条/四条
def hand_nubmer_groups
@hand_nubmer_groups ||= hand_nubmers.group_by { |i| i }
end
def straight_flush?
straight? && flush?
end
def flush?
@hand.map { |e| e[-1] }.uniq.size == 1
end
def straight?
all_5_different_values? && ((hand_nubmers.max - hand_nubmers.min == 4) || ( hand_nubmers == [2,3,4,5,14] ))
end
def square?
hand_nubmer_groups.any? { |k, v| v.size == 4 }
end
def full?
hand_nubmer_groups.any? { |k, v| v.size == 3 } && hand_nubmer_groups.any? { |k, v| v.size == 2 }
end
def three?
hand_nubmer_groups.any? { |k, v| v.size == 3 } && hand_nubmer_groups.keys.size == 3
end
def two_pairs?
hand_nubmer_groups.any? { |k, v| v.size == 2 } && hand_nubmer_groups.keys.size == 3
end
def one_pair?
hand_nubmer_groups.keys.size == 4
end
def high_card?
all_5_different_values? && !straight?
end
def all_5_different_values?
hand_nubmers.uniq.size == 5
end
end
end
</code></pre>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com2tag:blogger.com,1999:blog-1840868001747122196.post-1529074600634879482017-09-22T10:58:00.004+08:002017-09-22T11:01:26.557+08:00exercise.io - Kindergarten Garden in Ruby最近在做exercise.io上面的题练习Ruby,顺便分享一下自己的代码。<br />
<a href="http://exercism.io/exercises/ruby/kindergarten-garden/readme">http://exercism.io/exercises/ruby/kindergarten-garden/readme</a><br />
<br />
这道题相对比较简单,主要是用each_slice进行一次分组,并且通过Hash做一个key-value转换。最后就只需要按照students的序号,找到之前分好组里对应需要的plants就行了。有趣的是,测试用例里面是通过student的名字在找其拥有的plants,那就需要点元编程的技巧了。这里需要用到define_singleton_method去动态定义以student命名的方法。<br />
<pre><code class="ruby">
class Garden
DEFAULT_STUDENTS = %w(alice bob charlie david eve fred ginny harriet ileana joseph kincaid larry)
PLANTS = {
'R' => :radishes,
'C' => :clover,
'G' => :grass,
'V' => :violets
}
def initialize(plants, students=DEFAULT_STUDENTS)
@plants = plants
@students = students.sort
distribute_plants
end
def distribute_plants
# 将两行plants拆分成每两个一组,并对每个plant进行映射转换('R'=>:radishes)
plants_grouped = @plants.split("\n")
.map { |r| r.chars #每一行plants
.each_slice(2) #每两个一组
.map { |plants|
plants.map { |plant| PLANTS[plant] } #每个plant转换一次
}
}
# 给每个student分配plants
@students.each_with_index do |s, i|
break if plants_grouped.first.size < i + 1 # plants不够,就不再分配给student了
#创建singleton method,因为每个garden对应的plants分配是不一样的。define_method是对整个Class创建实例方法
define_singleton_method(s.downcase) do
plants_grouped.map { |e| e[i] }.flatten # 通过索引i,找到student对应的那组plant
end
end
end
end
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-78070480270270503422017-09-06T17:20:00.003+08:002017-09-06T17:20:45.289+08:00B+Tree中的intermediate index pageSQL SERVER的index是按照B+tree来存储的。在dm_db_database_page_allocations可以看到这类page的type是2,即index page。<br />
每个index page存储着key - pointer关系,其childPage可能还是intermediate page,也可能是leaf page。leaf page就存储着具体的data。<br />
<br />
如下图中的page 623876就是一个intermediate page。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-fQgs3Q0vbMw/Wa-84uicLEI/AAAAAAAAEdM/pYVz9Wz9c4YFUyZfeB5lnt2cAMMD27BCACLcBGAs/s1600/index_page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="338" data-original-width="486" src="https://4.bp.blogspot.com/-fQgs3Q0vbMw/Wa-84uicLEI/AAAAAAAAEdM/pYVz9Wz9c4YFUyZfeB5lnt2cAMMD27BCACLcBGAs/s1600/index_page.png" /></a></div>
<br />
其数据即存储着ChildPageId和key pointer。比如这个例子中,id小于477的,都存在page 623874上。其中level表示该page是root node page。<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-sY3-gajJW04/Wa-84eB105I/AAAAAAAAEdI/9sOMS5e8N90jmeHwY0WrBfksXP09MwUjwCEwYBhgL/s1600/intermediate_index_page.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="186" data-original-width="575" height="206" src="https://4.bp.blogspot.com/-sY3-gajJW04/Wa-84eB105I/AAAAAAAAEdI/9sOMS5e8N90jmeHwY0WrBfksXP09MwUjwCEwYBhgL/s640/intermediate_index_page.png" width="640" /></a></div>
<br />
用fn_PhysLocCracker来实验一下,就可以验证上面的观点。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-pOvP5Ev6_-M/Wa-9uyTWmbI/AAAAAAAAEdU/HhCTL6B30t4syLcNj_3MqjaUF79t4opPQCLcBGAs/s1600/internal_storage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="340" data-original-width="314" src="https://1.bp.blogspot.com/-pOvP5Ev6_-M/Wa-9uyTWmbI/AAAAAAAAEdU/HhCTL6B30t4syLcNj_3MqjaUF79t4opPQCLcBGAs/s1600/internal_storage.png" /></a></div>
<br />
<pre><code class="sql">
DROP TABLE LargeTable
CREATE TABLE LargeTable (keyval int,
dataval int,
constraint pk_largetable primary key (keyval)
)
INSERT INTO LargeTable(keyval, dataval)
select n, rand(10)
from dbo.GetNums(10000000)
SELECT allocated_page_file_id as PageFID, allocated_page_page_id as PagePID,
object_id as ObjectID, partition_id AS PartitionID,
allocation_unit_type_desc as AU_type, page_type as PageType
FROM sys.dm_db_database_page_allocations(db_id('event_service'), object_id('LargeTable'),
1, null, 'DETAILED');
GO
DBCC TRACEON (3604);
GO
DBCC PAGE ('event_service', 1, 623876, 3);
GO
DBCC TRACEON (3604);
GO
DBCC PAGE ('event_service', 1, 608307, 3);
GO
select *
from LargeTable t
CROSS APPLY sys.fn_PhysLocCracker(%%physloc%%) AS flc
WHERE keyval < 478
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-72906975155740652692017-09-06T15:23:00.002+08:002017-09-28T17:44:24.446+08:00Default value stays after default constraint is dropped同事问了一个问题,在drop default constraint之后,是否会引起大的IO。答案是,No。<br />
<br />
其实两年我就问过这个问题,结果还是被无情地打脸了,忘记完了。<br />
<a href="https://dba.stackexchange.com/questions/90771/default-value-stays-after-i-dropped-the-default-constraint">https://dba.stackexchange.com/questions/90771/default-value-stays-after-i-dropped-the-default-constraint</a><br />
<br />
长话短说,在每次创建default constraint的时候,在system_internals_partition_columns表内都会记录default value,从而实现所谓的metadata change。即sql server 2012以后,增加一个NOT NULL WITH DEFAULT CONSTRAINT是metadata change。随后删除这个constraint并不会改变system_internals_partition_columns里面值,也不会引起大的IO。<br />
<br />
<br />
<a href="http://rusanu.com/2011/07/13/online-non-null-with-values-column-add-in-sql-server-11/">http://rusanu.com/2011/07/13/online-non-null-with-values-column-add-in-sql-server-11/</a><br />
<br />
<pre><code class="sql">
IF OBJECT_ID('LobData') IS NOT NULL
DROP TABLE dbo.LobData
create table dbo.LobData
(
ID int not null
);
insert into dbo.LobData(ID)
values (1);
SELECT allocated_page_file_id as PageFID, allocated_page_page_id as PagePID,
object_id as ObjectID, partition_id AS PartitionID,
allocation_unit_type_desc as AU_type, page_type as PageType
FROM sys.dm_db_database_page_allocations(db_id('event_service'), object_id('LobData'),
null, null, 'DETAILED');
GO
DBCC TRACEON (3604);
GO
DBCC PAGE ('event_service', 1, 610871, 3);
GO
ALTER TABLE LobData ADD DATA VARCHAR(20) NOT NULL constraint df_lobdata default('yes')
insert into dbo.LobData(ID)
values (2);
select * from LobData
ALTER TABLE LOBDATA DROP CONSTRAINT df_lobdata;
ALTER TABLE LobData ADD constraint df_lobdata default('no') for data;
insert into dbo.LobData(ID)
values (3);
select * from LobData
select pc.*
from sys.system_internals_partitions p
join sys.system_internals_partition_columns pc on p.partition_id = pc.partition_id
where p.object_id = object_id('lobdata');
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-11206367497263816382017-09-04T15:05:00.000+08:002017-09-04T15:05:05.630+08:00Skip the locked records in multiple threads/sessions同事瞎折腾,问了一个问题:<br />
起100个线程连接数据库,如何保证同一个query得到100条不同的结果。<br />
<br />
在SQL SERVER下,是可以通过这么实现的。每次读的时候,强制加一个U/X锁,这个时候,再用HINT READPAST,即可跳过已经被锁住的记录,读取下一条记录。<br />
<pre><code class="sql">
BEGIN TRANSACTION
SELECT TOP 1 * FROM T1 WITH(READPAST, UPDLOCK)
</code></pre>
<br />
微软官网这么解释<br />
<span style="background-color: white; color: #222222; font-family: , "segoe ui" , "segoe" , "segoe wp" , "helvetica neue" , "helvetica" , sans-serif; font-size: 16px;"><b>READPAST</b></span><br />
<span style="background-color: white; color: #222222; font-family: , "segoe ui" , "segoe" , "segoe wp" , "helvetica neue" , "helvetica" , sans-serif; font-size: 16px;">Specifies that the Database Engine not read rows that are locked by other transactions. When READPAST is specified, row-level locks are skipped but page-level locks are not skipped.</span><br />
<br />
但是这里还是会发生LOCK escalate的,即key lock会升级成为page lock,或者table lock。<br />
<br />
<a href="https://docs.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table">https://docs.microsoft.com/en-us/sql/t-sql/queries/hints-transact-sql-table</a>醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-38585679708314719582017-08-29T14:16:00.003+08:002017-08-29T14:16:40.171+08:00Ruby中的Scope<br />
<br />
<br />
<ol>
<li>def...end, class...end, module...end都是作用域门,进入他们就会出现新的scope</li>
<li>block是特殊的scope,block中initialize的局部变量在外部没法访问</li>
<li>扁平作用域可以用,define_method, Class.new, Module.new来实现。</li>
</ol>
<div>
<a href="https://www.sitepoint.com/understanding-scope-in-ruby/">https://www.sitepoint.com/understanding-scope-in-ruby/</a></div>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-6193784767216213662017-08-25T17:37:00.001+08:002017-08-25T17:37:07.151+08:00Hooks in Ruby钩子们,来吧<br />
<br />
<pre><code class="ruby">https://www.sitepoint.com/rubys-important-hook-methods/
# included
module Person
def name
puts "My name is Person"
end
module ClassMethods
def class_method_1
puts "Class method is called"
end
end
module InstanceMethods
def instance_method_1
puts "instance method is called"
end
end
def self.included(receiver)
receiver.extend ClassMethods
receiver.send :include, InstanceMethods
puts "#{receiver} included #{self}"
end
end
class User
include Person
end
user = User.new
user.name
user.instance_method_1
user.class.class_method_1
p User.ancestors
puts "="*16
# extended
module Animal
def name
puts "I'm an animal"
end
def self.extended(receiver)
puts "#{receiver} extended #{self}"
end
end
class Dog
extend Animal
end
Dog.name
puts "="*16
# prepended
module Ship
def name
puts "I'm a ship"
end
module ClassMethods
def class_method_1
puts "Class method is called"
end
end
module InstanceMethods
def instance_method_1
puts "instance method is called"
end
end
def self.prepended(receiver)
receiver.extend ClassMethods
receiver.send :prepend, InstanceMethods
puts "#{receiver} prepended #{self}"
end
end
class Boat
prepend Ship
def name
puts "I'm a boat. I should be overried by Ship so you won't see me."
end
end
Boat.new.name
Boat.new.instance_method_1
p Boat.ancestors
Boat.class_method_1
puts "="*16
# inherited
class Parent
def self.inherited(child_class)
puts "#{child_class} inherits #{self}"
end
def name
"My name is Parent"
end
end
class Child < Parent
end
puts Child.new.name # => My name is Parent
p Child.ancestors
puts "="*16
# method_missing
class Coffee
def price
2
end
def name
"I'm a coffee"
end
end
class Milk
def initialize(coffee)
@coffee = coffee
end
def price
super + 0.2
end
def method_missing(meth, *args)
"#{meth} not defined on #{self}"
if @coffee.respond_to?(meth)
@coffee.send(meth, *args)
else
super
end
end
end
coffee = Coffee.new
coffee_with_milk = Milk.new(coffee)
p coffee_with_milk.price
p coffee_with_milk.name
p coffee_with_milk.class.instance_methods(false) #you won't see #name method
</code></pre>
<br />
<br />
<br />
<br />
<br />醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0tag:blogger.com,1999:blog-1840868001747122196.post-75982158799545222252017-08-25T14:59:00.003+08:002017-08-25T14:59:54.463+08:00Inherit in RubyRuby中的继承不仅仅可以继承实例方法,还可以继承类方法。但是,对于MIXIN的类方法,只能够用BASE.EXTEND来实现了。<br />
<br />
<pre><code class="ruby">
class Person
def self.method_1
puts "I'm Person class method 1"
end
class << self
def method_2
puts "I'm Person class method 2"
end
end
def method_3
puts "I'm instance method 3"
end
protected
def protected_method_1
puts "I'm protected_method_1"
end
private
def private_method_1
puts "I'm private_method_1"
end
end
class Phoenix < Person
def method_4
puts "I'm instance method 4"
end
def call_protected_method_1
puts "going to call protected_method_1 from Phoenix"
protected_method_1
end
def call_private_method_1
puts "going to call private_method_1 from Phoenix"
private_method_1
end
end
Phoenix.method_1 #ok to inherit class methods
Phoenix.method_2 #ok to inherit class methods
phoenix = Phoenix.new
phoenix.method_3 #ok to inherit instance methods
phoenix.method_4 #ok
phoenix.call_protected_method_1 #ok to call protected method in parent class
# phoenix.protected_method_1 # failed. you could not call it directly
phoenix.call_private_method_1 #ok to call private method in parent class
# phoenix.private_method_1 #failed
# However, mixin class methods could not be inherited unless call base.extend
</code></pre>
醉·醉·鱼http://www.blogger.com/profile/01380241964049324619noreply@blogger.com0