------art_13995_2718062.1167685909606
Content-Type: multipart/alternative; 
	boundary---art_13996_14893456.1167685909606"

------art_13996_14893456.1167685909606
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello.  This is my first ever ruby program of more than 10 lines, so be
gentle.  :)  I'm a java programmer by profession and it will probably show
in my solution, but I thought I'd post it and get feedback on my code.

I didn't do any of the extra credit, although the to_s on the LetterGrid
class is an alternate output format.  Wildcards would be very easy to add.

I attached both my solution and some test cases I wrote along the way.  If
attachments are not appropriate, I can re-submit with my code copied into
the body of the message (sorry for my n00b ignorance here!)

Thanks!
  John

------art_13996_14893456.1167685909606
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello.  This is my first ever ruby program of more than 10 lines, so be gentle.  :)  I'm a java programmer by profession and it will probably show in my solution, but I thought I'd post it and get feedback on my code.
<br><br>I didn&#39;t do any of the extra credit, although the to_s on the LetterGrid class is an alternate output format.&nbsp; Wildcards would be very easy to add.<br><br>I attached both my solution and some test cases I wrote along the way.&nbsp; If attachments are not appropriate, I can re-submit with my code copied into the body of the message (sorry for my n00b ignorance here!)
<br><br>Thanks!<br>&nbsp; John<br><br><br>

------art_13996_14893456.1167685909606--

------art_13995_2718062.1167685909606
Content-Type: application/octet-stream; name=wordsearch.rb
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ewfdz39o
Content-Disposition: attachment; filename="wordsearch.rb"

IyEvc3cvYmluL3J1YnkKcmVxdWlyZSAnZGVsZWdhdGUnCgpjbGFzcyBMZXR0ZXJHcmlkCiAgYXR0
cl9yZWFkZXIgOmNoYXJhY3RlclJvd3MKICBkZWYgaW5pdGlhbGl6ZSgqcm93cykKICAgIEBjaGFy
YWN0ZXJSb3dzID0gcm93cy5jb2xsZWN0e3x4fCBHcmlkTGV0dGVyU2VxdWVuY2UubmV3KHgpfQog
IGVuZAoKICBkZWYgW10oa2V5KQogICAgQGNoYXJhY3RlclJvd3Nba2V5XQogIGVuZAogIAogIGRl
ZiBlYWNoCiAgICBAY2hhcmFjdGVyUm93cy5lYWNoIHsgfGN8IHlpZWxkIGMgfQogIGVuZAogIAog
IGRlZiBzZXF1ZW5jZXMKICAgIChob3Jpel9zZXF1ZW5jZXMgKyB2ZXJ0X3NlcXVlbmNlcyArIGRp
YWdfcmlnaHRfc2VxdWVuY2VzICsgZGlhZ19sZWZ0X3NlcXVlbmNlcykudW5pcQogIGVuZAogIAog
IGRlZiBob3Jpel9zZXF1ZW5jZXMKICAgIHJlc3VsdCA9IEBjaGFyYWN0ZXJSb3dzICsgQGNoYXJh
Y3RlclJvd3MuY29sbGVjdHt8eHwgeC5yZXZlcnNlfQogICAgcmVzdWx0LnVuaXEKICBlbmQKICAK
ICBkZWYgdmVydF9zZXF1ZW5jZXMKICAgIHJlc3VsdCA9IFtdCiAgICBAY2hhcmFjdGVyUm93cy5l
YWNoe3xyb3d8IHJvdy5lYWNoX3dpdGhfaW5kZXgge3xjLGl8IHJlc3VsdFtpXSA/IHJlc3VsdFtp
XSA8PCBjIDogcmVzdWx0W2ldID0gW2NdfSB9CiAgICByZXN1bHQuY29sbGVjdCF7fHh8IEdyaWRM
ZXR0ZXJTZXF1ZW5jZS5uZXcoeCl9CiAgICByZXN1bHQgKz0gcmVzdWx0LmNvbGxlY3R7fHh8IHgu
cmV2ZXJzZX0KICAgIHJlc3VsdC51bmlxCiAgZW5kIAogIAogIGRlZiBkaWFnX3JpZ2h0X3NlcXVl
bmNlcwogICAgZGlhZ19zZXF1ZW5jZXMoQGNoYXJhY3RlclJvd3MpCiAgZW5kIAogIAogIGRlZiBk
aWFnX3NlcXVlbmNlcyhhcnJheVRvTG9va0F0KQogICAgbGlzdHMgPSByaWdodF9kaWFnKGFycmF5
VG9Mb29rQXQubGVuZ3RoLTEsIGFycmF5VG9Mb29rQXRbMF0ubGVuZ3RoLTEpCiAgICBzZXFzID0g
bGlzdHMuY29sbGVjdHt8eHwgeC5pbmplY3QoR3JpZExldHRlclNlcXVlbmNlLm5ldygiIikpe3xh
Y2N1bSwgeXwgYWNjdW0gPDwgYXJyYXlUb0xvb2tBdFt5WzBdXVt5WzFdXX19CiAgICBzZXFzICs9
IHNlcXMuY29sbGVjdHt8eHwgeC5yZXZlcnNlfQogICAgc2Vxcy51bmlxICAgIAogIGVuZAogIAog
IGRlZiBkaWFnX2xlZnRfc2VxdWVuY2VzCiAgICBkaWFnX3NlcXVlbmNlcyhAY2hhcmFjdGVyUm93
cy5yZXZlcnNlKQogIGVuZAogIAogIGRlZiB0b19zCiAgICBAY2hhcmFjdGVyUm93cy5pbmplY3Qo
IiIpe3xhY2N1bSwgcm93fCBhY2N1bSArPSAocm93LnRvX3MgKyAiXG4iKX0KICBlbmQKICAKICBk
ZWYgc2VhcmNoKCp0b2tlbnMpCiAgICBzID0gc2VxdWVuY2VzCiAgICBzLmVhY2ggZG8gfHN8IAog
ICAgICBzZXEgPSBHcmlkTGV0dGVyU2VxdWVuY2UubmV3KHMpCiAgICAgIHRva2Vucy5lYWNoe3x0
b2tlbnwgc2VxLmZpbmRBbmRNYXJrKHRva2VuKX0KICAgIGVuZAogIGVuZAplbmQKCmNsYXNzIEdy
aWRMZXR0ZXIKICBkZWYgaW5pdGlhbGl6ZShjaGFyKQogICAgQGNoYXIgPSBjaGFyCiAgICBAZm91
bmQgPSBmYWxzZQogIGVuZAogIAogIGF0dHJfYWNjZXNzb3IgOmZvdW5kCiAgYXR0cl9yZWFkZXIg
OmNoYXIKCiAgZGVmIGVxbD8ob2JqZWN0KQogICAgc2VsZiA9PSAob2JqZWN0KQogIGVuZAogIAog
IGRlZiA9PShvYmplY3QpCiAgICBvYmplY3QuZXF1YWw/KHNlbGYpIHx8IChvYmplY3QuaW5zdGFu
Y2Vfb2Y/KHNlbGYuY2xhc3MpICYmCiAgICAgICAgICAgb2JqZWN0LmNoYXIgPT0gY2hhciAmJiBv
YmplY3QuZm91bmQgPT0gZm91bmQpCiAgZW5kCiAgCiAgZGVmIHRvX3MKICAgIGlmIChAZm91bmQp
CiAgICAgIEBjaGFyLnVwY2FzZQogICAgZWxzZQogICAgICBAY2hhci5kb3duY2FzZQogICAgZW5k
CiAgZW5kCmVuZAoKY2xhc3MgR3JpZExldHRlclNlcXVlbmNlIDwgRGVsZWdhdGVDbGFzcyhBcnJh
eSkKICBkZWYgaW5pdGlhbGl6ZSh2YWx1ZSkKICAgIGlmICh2YWx1ZS5pbnN0YW5jZV9vZj8oU3Ry
aW5nKSkKICAgICAgc3VwZXIodmFsdWUuc3BsaXQoLy8pLmNvbGxlY3R7fHh8IEdyaWRMZXR0ZXIu
bmV3KHgpfSkKICAgIGVsc2UKICAgICAgc3VwZXIKICAgIGVuZAogIGVuZAogIAogIGRlZiB0b19z
CiAgICBqb2luKCIgIikKICBlbmQKICAKICBkZWYgZmluZChwYXR0ZXJuKQogICAgc3RyaW5ndmFs
ID0gam9pbgogICAgcmVzdWx0cyA9IFtdCiAgICBpID0gMAogICAgd2hpbGUgKGxvYyA9IHN0cmlu
Z3ZhbC5pbmRleChSZWdleHAubmV3KHBhdHRlcm4sICJpIiksIGkpKQogICAgICByZXN1bHRzIDw8
IFtsb2MsIChsb2MgLTEgKyBwYXR0ZXJuLmxlbmd0aCldCiAgICAgIGkgPSBsb2MgKyAxCiAgICBl
bmQKICAgIHJlc3VsdHMKICBlbmQKICAKICBkZWYgbWFya0ZvdW5kKHJhbmdlcykKICAgIHJhbmdl
cy5lYWNoe3xyfCBzZWxmW1JhbmdlLm5ldygqcildLmVhY2h7fHh8IHguZm91bmQgPSB0cnVlfX0K
ICBlbmQKICAKICBkZWYgZmluZEFuZE1hcmsocGF0dGVybikKICAgIG1hcmtGb3VuZChmaW5kKHBh
dHRlcm4pKQogIGVuZAplbmQKCmRlZiByaWdodF9kaWFnKHJvd3MsIGNvbHVtbnMpCiAgbWF4cj1y
b3dzCiAgbWlucj1yb3dzCiAgbWF4Yz0wCiAgbWluYz0wCiAgcmVzdWx0cyA9IFtdCiAgd2hpbGUg
KG1heHIgPj0gMCAmJiBtaW5jIDw9IGNvbHVtbnMpCiAgICB3aGlsZSAobWluciA+PSAwICYmIG1h
eGMgPD0gY29sdW1ucykgCiAgICAgIGNzID0gW10KICAgICAgcnMgPSBbXQogICAgICAobWluci4u
bWF4cikuZWFjaCB7fHJ8IHJzIDw8IHJ9ICAgICAgCiAgICAgIChtaW5jLi5tYXhjKS5lYWNoIHt8
Y3wgY3MgPDwgY30KICAgICAgCiAgICAgIG1pbnIgPSBtaW5yIC0gMQogICAgICBtYXhjID0gbWF4
YyArIDEKICAgICAgc3VicmVzdWx0ID0gW10KICAgICAgcnMuZWFjaF93aXRoX2luZGV4e3x4LGl8
IHN1YnJlc3VsdCA8PCBbeCwgY3NbaV1dfQogICAgICAjc3VicmVzdWx0LmVhY2h7fHh8IHB1dHMg
IiN7eFswXX0sICN7eFsxXX0ifQogICAgICAjcHV0cwogICAgICByZXN1bHRzIDw8IHN1YnJlc3Vs
dAogICAgZW5kCiAgICBtYXhyID0gbWF4ciAtIDEgaWYgKG1pbmMgPiAwIHx8IHJvd3MgPj0gY29s
dW1ucykKICAgIG1pbmMgPSBtaW5jICsgMSBpZiAobWF4ciA8IGNvbHVtbnMgfHwgY29sdW1ucyA+
PSByb3dzKQogICAgbWluciA9IDAKICAgIG1heGMgPSBjb2x1bW5zCiAgZW5kCiAgcmVzdWx0cwpl
bmQKCmlmIF9fRklMRV9fID09ICQwCiAgcm93cyA9IFtdCiAgd2hpbGUgKChyb3cgPSBnZXRzLmNo
b21wKSAhPSAiIiApCiAgICByb3dzIDw8IHJvdwogIGVuZAogIHdvcmRzID0gZ2V0cy5jaG9tcC5z
cGxpdCgvLC8pCiAgd29yZHMuY29sbGVjdHt8d29yZHwgd29yZC5zdHJpcCF9CgogIGcgPSBMZXR0
ZXJHcmlkLm5ldygqcm93cykKICBnLnNlYXJjaCgqd29yZHMpCgogIHB1dHMKICBnLmVhY2ggZG8g
fHJ8IAogICAgci5lYWNoIGRvIHxjfAogICAgICBpZiAoYy5mb3VuZCkKICAgICAgICBwcmludCBj
CiAgICAgIGVsc2UKICAgICAgICBwcmludCAiKyIKICAgICAgZW5kCiAgICAgIHByaW50ICIgIgog
ICAgZW5kCiAgICBwdXRzCiAgZW5kCmVuZA------art_13995_2718062.1167685909606
Content-Type: application/octet-stream; name=wordsearchtest.rb
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ewfdzigs
Content-Disposition: attachment; filename="wordsearchtest.rb"

cmVxdWlyZSAndGVzdC91bml0JwpyZXF1aXJlICd0ZXN0L3VuaXQvdGVzdHN1aXRlJwpyZXF1aXJl
ICd0ZXN0L3VuaXQvdWkvY29uc29sZS90ZXN0cnVubmVyJwpyZXF1aXJlICd3b3Jkc2VhcmNoJwoK
Y2xhc3MgTGV0dGVyR3JpZFRlc3QgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogIGRlZiB0ZXN0TG9h
ZGluZwogICAgYSA9IExldHRlckdyaWQubmV3KCJIRUxMTyIpCiAgICBhc3NlcnRfZXF1YWwoR3Jp
ZExldHRlclNlcXVlbmNlLm5ldygiSEVMTE8iKSwgYVswXSkKICAgIAogICAgYT1MZXR0ZXJHcmlk
Lm5ldygiSEVMTE8iLCJHT09EQllFIikKICAgIGFzc2VydF9lcXVhbChHcmlkTGV0dGVyU2VxdWVu
Y2UubmV3KCJIRUxMTyIpLCBhWzBdKQogICAgYXNzZXJ0X2VxdWFsKEdyaWRMZXR0ZXJTZXF1ZW5j
ZS5uZXcoIkdPT0RCWUUiKSwgYVsxXSkKICBlbmQKICAKICBkZWYgdGVzdFNlcXVlbmNlc1N1cGVy
U2ltcGxlCiAgICBhID0gTGV0dGVyR3JpZC5uZXcoIkEiKQogICAgYiA9IGEuc2VxdWVuY2VzCiAg
ICBhc3NlcnRfbm90X25pbChiKQogICAgYXNzZXJ0X2VxdWFsKDMsIGIubGVuZ3RoLCAicmVzdWx0
IHdhcyAje2J9IikKICAgIGFzc2VydChiLm1lbWJlcj8oR3JpZExldHRlclNlcXVlbmNlLm5ldygi
QSIpKSkKICAgIGFzc2VydCghYi5tZW1iZXI/KEdyaWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIkFBIikp
LCAiZm91bmQgQUEiKQogIGVuZAogIAogIGRlZiB0ZXN0U2VxdWVuY2VzT25lQnlUd28KICAgIGEg
PSBMZXR0ZXJHcmlkLm5ldygiQUIiKQogICAgYiA9IGEuc2VxdWVuY2VzCiAgICBhc3NlcnRfbm90
X25pbChiKQogICAgYXNzZXJ0X2VxdWFsKDYsIGIubGVuZ3RoLCAicmVzdWx0IHdhcyAje2J9IikK
ICAgIGFzc2VydChiLm1lbWJlcj8oR3JpZExldHRlclNlcXVlbmNlLm5ldygiQUIiKSkpCiAgICBh
c3NlcnQoYi5tZW1iZXI/KEdyaWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIkJBIikpKQogICAgYXNzZXJ0
KGIubWVtYmVyPyhHcmlkTGV0dGVyU2VxdWVuY2UubmV3KCJBIikpKQogICAgYXNzZXJ0KGIubWVt
YmVyPyhHcmlkTGV0dGVyU2VxdWVuY2UubmV3KCJCIikpKQogIGVuZAogIAogIGRlZiB0ZXN0Umln
aHREaWFncwogICAgYSA9IExldHRlckdyaWQubmV3KCJBQiIsICJDRCIpCiAgICBzZXF1ZW5jZXMg
PSBhLmRpYWdfcmlnaHRfc2VxdWVuY2VzCiAgICAKICAgIGFzc2VydF9ub3RfbmlsKHNlcXVlbmNl
cykKICAgIGFzc2VydF9lcXVhbCg0LCBzZXF1ZW5jZXMubGVuZ3RoLCAicmVzdWx0IHdhcyAje3Nl
cXVlbmNlcy5pbnNwZWN0fSIpCiAgICBhc3NlcnQoc2VxdWVuY2VzLm1lbWJlcj8oR3JpZExldHRl
clNlcXVlbmNlLm5ldygiQUQiKSkpCiAgICBhc3NlcnQoc2VxdWVuY2VzLm1lbWJlcj8oR3JpZExl
dHRlclNlcXVlbmNlLm5ldygiQiIpKSkKICAgIGFzc2VydChzZXF1ZW5jZXMubWVtYmVyPyhHcmlk
TGV0dGVyU2VxdWVuY2UubmV3KCJDIikpKQogICAgYXNzZXJ0KHNlcXVlbmNlcy5tZW1iZXI/KEdy
aWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIkRBIikpKQogIGVuZAogIAogIGRlZiB0ZXN0TGVmdERpYWdz
CiAgICBhID0gTGV0dGVyR3JpZC5uZXcoIkFCIiwgIkNEIikKICAgIHNlcXVlbmNlcyA9IGEuZGlh
Z19sZWZ0X3NlcXVlbmNlcwogICAgYXNzZXJ0X25vdF9uaWwoc2VxdWVuY2VzLCAibm90aGluZyBj
YW1lIGJhY2siKQogICAgYXNzZXJ0X2VxdWFsKDQsIHNlcXVlbmNlcy5sZW5ndGgsICJyZXN1bHQg
d2FzICN7c2VxdWVuY2VzLmluc3BlY3R9IikKICAgIGFzc2VydChzZXF1ZW5jZXMubWVtYmVyPyhH
cmlkTGV0dGVyU2VxdWVuY2UubmV3KCJBIikpKQogICAgYXNzZXJ0KHNlcXVlbmNlcy5tZW1iZXI/
KEdyaWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIkQiKSkpCiAgICBhc3NlcnQoc2VxdWVuY2VzLm1lbWJl
cj8oR3JpZExldHRlclNlcXVlbmNlLm5ldygiQkMiKSkpCiAgICBhc3NlcnQoc2VxdWVuY2VzLm1l
bWJlcj8oR3JpZExldHRlclNlcXVlbmNlLm5ldygiQ0IiKSkpCiAgZW5kCiAgICAKICBkZWYgdGVz
dFJpZ2h0RGlhZ0luZGljZXMzMgogICAgaW5kaWNlcyA9IHJpZ2h0X2RpYWcoMywyKQogICAgYXNz
ZXJ0X2VxdWFsKDYsIGluZGljZXMubGVuZ3RoKQogICAgYXNzZXJ0X2VxdWFsKFtbMywwXV0sIGlu
ZGljZXNbMF0pCiAgICBhc3NlcnRfZXF1YWwoW1syLDBdLFszLDFdXSwgaW5kaWNlc1sxXSkKICAg
IGFzc2VydF9lcXVhbChbWzEsMF0sWzIsMV0sWzMsMl1dLCBpbmRpY2VzWzJdKQogICAgYXNzZXJ0
X2VxdWFsKFtbMCwwXSxbMSwxXSxbMiwyXV0sIGluZGljZXNbM10pCiAgICBhc3NlcnRfZXF1YWwo
W1swLDFdLFsxLDJdXSwgaW5kaWNlc1s0XSkKICAgIGFzc2VydF9lcXVhbChbWzAsMl1dLCBpbmRp
Y2VzWzVdKQogIGVuZAoKICBkZWYgdGVzdFJpZ2h0RGlhZ0luZGljZXMyMwogICAgaW5kaWNlcyA9
IHJpZ2h0X2RpYWcoMiwzKQogICAgYXNzZXJ0X2VxdWFsKDYsIGluZGljZXMubGVuZ3RoKQogICAg
YXNzZXJ0X2VxdWFsKFtbMiwwXV0sIGluZGljZXNbMF0pCiAgICBhc3NlcnRfZXF1YWwoW1sxLDBd
LFsyLDFdXSwgaW5kaWNlc1sxXSkKICAgIGFzc2VydF9lcXVhbChbWzAsMF0sWzEsMV0sWzIsMl1d
LCBpbmRpY2VzWzJdKQogICAgYXNzZXJ0X2VxdWFsKFtbMCwxXSxbMSwyXSxbMiwzXV0sIGluZGlj
ZXNbM10pCiAgICBhc3NlcnRfZXF1YWwoW1swLDJdLFsxLDNdXSwgaW5kaWNlc1s0XSkKICAgIGFz
c2VydF9lcXVhbChbWzAsM11dLCBpbmRpY2VzWzVdKQogIGVuZAplbmQKCmNsYXNzIEdyaWRMZXR0
ZXJUZXN0IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICBkZWYgdGVzdEZvdW5kCiAgICBhID0gR3Jp
ZExldHRlci5uZXcoImEiKQogICAgYXNzZXJ0KCFhLmZvdW5kLCAid2Fzbid0IGluaXRpYWxpemVk
IHByb3Blcmx5IikKICAgIGEuZm91bmQ9dHJ1ZQogICAgYXNzZXJ0KGEuZm91bmQsICJzZXR0ZXIg
ZGlkbid0IHdvcmsiKQogICAgYS5mb3VuZCA9IGZhbHNlCiAgICBhc3NlcnQoIWEuZm91bmQsICJz
ZXR0ZXIgZGlkbid0IHdvcmsiKQogIGVuZAogIAogIGRlZiB0ZXN0RXF1YWxzCiAgICBhID0gR3Jp
ZExldHRlci5uZXcoImEiKQogICAgYiA9IEdyaWRMZXR0ZXIubmV3KCJhIikKICAgIGFzc2VydF9l
cXVhbChhLGIpCiAgICBiLmZvdW5kID0gdHJ1ZQogICAgYXNzZXJ0X25vdF9lcXVhbChhLGIpCiAg
ZW5kCiAgCmVuZAoKY2xhc3MgR3JpZExldHRlclNlcXVlbmNlVGVzdCA8IFRlc3Q6OlVuaXQ6OlRl
c3RDYXNlCiAgZGVmIHRlc3RTdHJpbmdFYWNoRml4bnVtcwogICAgYSA9IEdyaWRMZXR0ZXJTZXF1
ZW5jZS5uZXcoIkhlbGxvIFdvcmxkIikKICAgIGEuZWFjaCB7fHh8IGFzc2VydCgheC5mb3VuZCwg
IiN7eH0gd2Fzbid0IGZvdW5kPyIpfQogICAgYS5lYWNoIHt8eHwgeC5mb3VuZD10cnVlIH0KICAg
IGEuZWFjaCB7fHh8IGFzc2VydCh4LmZvdW5kKX0KICBlbmQgIAoKICBkZWYgdGVzdEZseXdlaWdo
dG5lc3MKICAgIGE9R3JpZExldHRlclNlcXVlbmNlLm5ldygiSGVsbG8gSGFuayIpCiAgICBhWzBd
LmZvdW5kID0gdHJ1ZQogICAgYXNzZXJ0KCFhWzZdLmZvdW5kLCAiZmx5d2VpZ2h0LiBibGFoLiIp
CiAgZW5kCiAgCiAgZGVmIHRlc3RSZXZlcnNlCiAgICBhID0gR3JpZExldHRlclNlcXVlbmNlLm5l
dygiSGVsbG8iKQogICAgYXNzZXJ0X2VxdWFsKEdyaWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIm9sbGVI
IiksIGEucmV2ZXJzZSkKICBlbmQKICAKICBkZWYgdGVzdEVxdWFscwogICAgYXNzZXJ0KEdyaWRM
ZXR0ZXJTZXF1ZW5jZS5uZXcoIkFBIikgIT0gR3JpZExldHRlclNlcXVlbmNlLm5ldygiQSIpLCAi
QUEgPT0gQT8iKQogICAgYXNzZXJ0KEdyaWRMZXR0ZXJTZXF1ZW5jZS5uZXcoIkEiKSAhPSBHcmlk
TGV0dGVyU2VxdWVuY2UubmV3KCJBQSIpLCAiQSA9PSBBQT8iKQogICAgYXNzZXJ0KEdyaWRMZXR0
ZXJTZXF1ZW5jZS5uZXcoIkFBIikgPT0gR3JpZExldHRlclNlcXVlbmNlLm5ldygiQUEiKSwgIkFB
ICE9IEFBPyIpCiAgICBhc3NlcnQoR3JpZExldHRlclNlcXVlbmNlLm5ldygiQUEiKSAhPSBHcmlk
TGV0dGVyU2VxdWVuY2UubmV3KCJBQiIpLCAiQUEgPT0gQUI/IikKICBlbmQKCiAgZGVmIHRlc3RG
aW5kaW5nRW1iZWRkZWRTdHJpbmdzCiAgICB0ID0gR3JpZExldHRlclNlcXVlbmNlLm5ldygiRE9H
Q0FUTUFOIikKICAgIGFzc2VydF9lcXVhbChbWzQsNF0sIFs3LDddXSwgdC5maW5kKCJBIikpCiAg
ICBhc3NlcnRfZXF1YWwoW1szLDVdXSwgdC5maW5kKCJDQVQiKSkKICAgIGFzc2VydF9lcXVhbChb
WzAsMl1dLCB0LmZpbmQoIkRPRyIpKQogICAgYXNzZXJ0X2VxdWFsKFtbNiw4XV0sIHQuZmluZCgi
TUFOIikpCiAgICBhc3NlcnRfZXF1YWwoW10sIHQuZmluZCgiRkxJQkJFUiIpKQogIGVuZAogIAog
IGRlZiB0ZXN0TWFya2luZ0ZvdW5kCiAgICB0ID0gR3JpZExldHRlclNlcXVlbmNlLm5ldygiRE9H
Q0FUTUFOIikKICAgIHQubWFya0ZvdW5kKFtbMyw1XSwgWzgsOF1dKQogICAgdFszLi41XS5lYWNo
e3x4fCBhc3NlcnQoeC5mb3VuZCl9CiAgICB0WzguLjhdLmVhY2h7fHh8IGFzc2VydCh4LmZvdW5k
KX0KICAgIHRbMC4uMl0uZWFjaHt8eHwgYXNzZXJ0KCF4LmZvdW5kKX0KICAgIHRbNi4uN10uZWFj
aHt8eHwgYXNzZXJ0KCF4LmZvdW5kKX0KICBlbmQKZW5kCgoK
------art_13995_2718062.1167685909606--