Hex Artifact Content Вы: nobody
Вход

Artifact 7c9cc581b0e225c5bc3194a1c6b1554b83b42a0a:


0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69  ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 74 65 73 74 53  pt..$uname testS
0020: 74 72 65 61 6d 50 61 72 73 65 72 0d 0a 24 64 6e  treamParser..$dn
0030: 61 6d 65 20 d0 a2 d0 b5 d1 81 d1 82 d1 8b 20 d0  ame .......... .
0040: ba d0 bb d0 b0 d1 81 d1 81 d0 b0 20 53 74 72 65  ........... Stre
0050: 61 6d 50 61 72 73 65 72 0d 0a 24 61 64 64 69 6e  amParser..$addin
0060: 20 73 74 64 6c 69 62 0d 0a 0d 0a 73 74 64 6c 69   stdlib....stdli
0070: 62 2e 72 65 71 75 69 72 65 28 27 6a 73 55 6e 69  b.require('jsUni
0080: 74 43 6f 72 65 2e 6a 73 27 2c 20 53 65 6c 66 53  tCore.js', SelfS
0090: 63 72 69 70 74 29 3b 0d 0a 73 74 64 6c 69 62 2e  cript);..stdlib.
00a0: 72 65 71 75 69 72 65 28 27 53 74 72 65 61 6d 4c  require('StreamL
00b0: 69 62 2e 6a 73 27 2c 20 53 65 6c 66 53 63 72 69  ib.js', SelfScri
00c0: 70 74 29 3b 0d 0a 0d 0a 2f 2f 7b 20 d0 98 d0 bd  pt);....//{ ....
00d0: d0 b8 d1 86 d0 b8 d0 b0 d0 bb d0 b8 d0 b7 d0 b0  ................
00e0: d1 86 d0 b8 d1 8f 20 44 41 54 41 5f 44 49 52 0d  ...... DATA_DIR.
00f0: 0a 76 61 72 20 73 6e 65 67 6f 70 61 74 46 6f 6c  .var snegopatFol
0100: 64 65 72 20 3d 20 70 72 6f 66 69 6c 65 52 6f 6f  der = profileRoo
0110: 74 2e 67 65 74 56 61 6c 75 65 28 22 53 6e 65 67  t.getValue("Sneg
0120: 6f 70 61 74 2f 4d 61 69 6e 46 6f 6c 64 65 72 22  opat/MainFolder"
0130: 29 3b 0d 0a 76 61 72 20 44 41 54 41 5f 44 49 52  );..var DATA_DIR
0140: 20 3d 20 73 6e 65 67 6f 70 61 74 46 6f 6c 64 65   = snegopatFolde
0150: 72 20 2b 20 22 73 63 72 69 70 74 73 5c 5c 54 65  r + "scripts\\Te
0160: 73 74 73 5c 5c 41 75 74 6f 6d 61 74 65 64 5c 5c  sts\\Automated\\
0170: 53 74 72 65 61 6d 4c 69 62 5c 5c 64 61 74 61 5c  StreamLib\\data\
0180: 5c 22 3b 0d 0a 2f 2f 7d 20 d0 98 d0 bd d0 b8 d1  \";..//} .......
0190: 86 d0 b8 d0 b0 d0 bb d0 b8 d0 b7 d0 b0 d1 86 d0  ................
01a0: b8 d1 8f 0d 0a 0d 0a 76 61 72 20 53 50 20 3d 20  .......var SP = 
01b0: 6e 75 6c 6c 3b 0d 0a 0d 0a 2f 2f 7b 20 73 65 74  null;....//{ set
01c0: 55 70 2f 74 65 61 72 44 6f 77 6e 0d 0a 66 75 6e  Up/tearDown..fun
01d0: 63 74 69 6f 6e 20 73 65 74 55 70 28 29 20 7b 0d  ction setUp() {.
01e0: 0a 20 20 20 20 53 50 20 3d 20 53 74 72 65 61 6d  .    SP = Stream
01f0: 46 61 63 74 6f 72 79 2e 43 72 65 61 74 65 50 61  Factory.CreatePa
0200: 72 73 65 72 28 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75  rser();..}....fu
0210: 6e 63 74 69 6f 6e 20 74 65 61 72 44 6f 77 6e 28  nction tearDown(
0220: 29 20 7b 0d 0a 20 20 20 20 53 50 20 3d 20 6e 75  ) {..    SP = nu
0230: 6c 6c 3b 0d 0a 7d 0d 0a 2f 2f 7d 20 73 65 74 55  ll;..}..//} setU
0240: 70 2f 74 65 61 72 44 6f 77 6e 0d 0a 0d 0a 2f 2f  p/tearDown....//
0250: 7b 20 d0 9f d1 80 d0 be d1 81 d1 82 d1 8b d0 b5  { ..............
0260: 20 d1 82 d0 b5 d1 81 d1 82 d1 8b 0d 0a 66 75 6e   ............fun
0270: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74  ction macrosTest
0280: 50 61 72 73 65 72 5f 45 6d 70 74 79 41 72 72 61  Parser_EmptyArra
0290: 79 28 29 0d 0a 7b 0d 0a 20 20 20 20 53 50 2e 73  y()..{..    SP.s
02a0: 65 74 53 74 72 65 61 6d 28 27 7b 7d 27 29 3b 0d  etStream('{}');.
02b0: 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 61 79  .    assertArray
02c0: 45 71 75 61 6c 73 28 5b 5d 2c 20 53 50 2e 70 61  Equals([], SP.pa
02d0: 72 73 65 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75  rse());..}....fu
02e0: 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73  nction macrosTes
02f0: 74 50 61 72 73 65 72 5f 53 69 6d 70 6c 65 41 72  tParser_SimpleAr
0300: 72 61 79 5f 4e 75 6d 62 65 72 73 28 29 0d 0a 7b  ray_Numbers()..{
0310: 0d 0a 20 20 20 20 53 50 2e 73 65 74 53 74 72 65  ..    SP.setStre
0320: 61 6d 28 27 7b 31 2c 32 2c 33 7d 27 29 3b 0d 0a  am('{1,2,3}');..
0330: 20 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45      assertArrayE
0340: 71 75 61 6c 73 28 5b 31 2c 20 32 2c 20 33 5d 2c  quals([1, 2, 3],
0350: 20 53 50 2e 70 61 72 73 65 28 29 29 3b 0d 0a 7d   SP.parse());..}
0360: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63  ....function mac
0370: 72 6f 73 54 65 73 74 50 61 72 73 65 72 5f 53 69  rosTestParser_Si
0380: 6d 70 6c 65 41 72 72 61 79 5f 53 74 72 69 6e 67  mpleArray_String
0390: 73 28 29 0d 0a 7b 0d 0a 20 20 20 20 53 50 2e 73  s()..{..    SP.s
03a0: 65 74 53 74 72 65 61 6d 28 27 7b 22 74 65 73 74  etStream('{"test
03b0: 20 73 74 72 69 6e 67 22 2c 20 22 73 65 63 6f 6e   string", "secon
03c0: 64 20 73 74 72 69 6e 67 22 7d 27 29 3b 0d 0a 20  d string"}');.. 
03d0: 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71     assertArrayEq
03e0: 75 61 6c 73 28 5b 22 74 65 73 74 20 73 74 72 69  uals(["test stri
03f0: 6e 67 22 2c 20 22 73 65 63 6f 6e 64 20 73 74 72  ng", "second str
0400: 69 6e 67 22 5d 2c 20 53 50 2e 70 61 72 73 65 28  ing"], SP.parse(
0410: 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69  ));..}....functi
0420: 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 50 61 72  on macrosTestPar
0430: 73 65 72 5f 53 69 6d 70 6c 65 41 72 72 61 79 5f  ser_SimpleArray_
0440: 45 6d 70 74 79 53 74 72 69 6e 67 73 28 29 0d 0a  EmptyStrings()..
0450: 7b 0d 0a 20 20 20 20 53 50 2e 73 65 74 53 74 72  {..    SP.setStr
0460: 65 61 6d 28 27 7b 22 22 2c 20 22 22 7d 27 29 3b  eam('{"", ""}');
0470: 0d 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 61  ..    assertArra
0480: 79 45 71 75 61 6c 73 28 5b 22 22 2c 20 22 22 5d  yEquals(["", ""]
0490: 2c 20 53 50 2e 70 61 72 73 65 28 29 29 3b 0d 0a  , SP.parse());..
04a0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61  }....function ma
04b0: 63 72 6f 73 54 65 73 74 50 61 72 73 65 72 5f 53  crosTestParser_S
04c0: 69 6d 70 6c 65 41 72 72 61 79 5f 51 75 6f 74 65  impleArray_Quote
04d0: 73 49 6e 53 74 72 69 6e 67 31 28 29 0d 0a 7b 0d  sInString1()..{.
04e0: 0a 20 20 20 20 53 50 2e 73 65 74 53 74 72 65 61  .    SP.setStrea
04f0: 6d 28 27 7b 22 22 22 22 2c 20 22 74 68 69 73 20  m('{"""", "this 
0500: 69 73 20 22 22 71 75 6f 74 65 64 22 22 20 77 6f  is ""quoted"" wo
0510: 72 64 22 7d 27 29 3b 0d 0a 20 20 20 20 61 73 73  rd"}');..    ass
0520: 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 28 5b  ertArrayEquals([
0530: 27 22 27 2c 20 27 74 68 69 73 20 69 73 20 22 71  '"', 'this is "q
0540: 75 6f 74 65 64 22 20 77 6f 72 64 27 5d 2c 20 53  uoted" word'], S
0550: 50 2e 70 61 72 73 65 28 29 29 3b 0d 0a 7d 0d 0a  P.parse());..}..
0560: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f  ..function macro
0570: 73 54 65 73 74 50 61 72 73 65 72 5f 53 69 6d 70  sTestParser_Simp
0580: 6c 65 41 72 72 61 79 5f 51 75 6f 74 65 73 49 6e  leArray_QuotesIn
0590: 53 74 72 69 6e 67 32 28 29 0d 0a 7b 0d 0a 20 20  String2()..{..  
05a0: 20 20 53 50 2e 73 65 74 53 74 72 65 61 6d 28 27    SP.setStream('
05b0: 7b 22 22 22 22 22 22 7d 27 29 3b 0d 0a 20 20 20  {""""""}');..   
05c0: 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75 61   assertArrayEqua
05d0: 6c 73 28 5b 27 22 22 27 5d 2c 20 53 50 2e 70 61  ls(['""'], SP.pa
05e0: 72 73 65 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75  rse());..}....fu
05f0: 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73  nction macrosTes
0600: 74 50 61 72 73 65 72 5f 4d 75 6c 74 69 64 69 6d  tParser_Multidim
0610: 65 6e 73 69 6f 6e 61 6c 41 72 72 61 79 28 29 0d  ensionalArray().
0620: 0a 7b 0d 0a 20 20 20 20 53 50 2e 73 65 74 53 74  .{..    SP.setSt
0630: 72 65 61 6d 28 27 7b 7b 31 2c 20 32 2c 20 33 7d  ream('{{1, 2, 3}
0640: 2c 20 7b 22 66 69 72 73 74 22 2c 20 22 73 65 63  , {"first", "sec
0650: 6f 6e 64 22 2c 20 22 74 68 69 72 64 22 2c 20 7b  ond", "third", {
0660: 22 61 72 72 61 79 20 69 6e 73 69 64 65 20 6f 66  "array inside of
0670: 20 61 72 72 61 79 22 7d 7d 7d 27 29 3b 0d 0a 20   array"}}}');.. 
0680: 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71     assertArrayEq
0690: 75 61 6c 73 28 5b 5b 31 2c 32 2c 33 5d 2c 20 5b  uals([[1,2,3], [
06a0: 27 66 69 72 73 74 27 2c 20 27 73 65 63 6f 6e 64  'first', 'second
06b0: 27 2c 20 27 74 68 69 72 64 27 2c 20 5b 27 61 72  ', 'third', ['ar
06c0: 72 61 79 20 69 6e 73 69 64 65 20 6f 66 20 61 72  ray inside of ar
06d0: 72 61 79 27 5d 5d 5d 2c 20 53 50 2e 70 61 72 73  ray']]], SP.pars
06e0: 65 28 29 29 3b 0d 0a 7d 0d 0a 2f 2f 7d 20 d0 9f  e());..}..//} ..
06f0: d1 80 d0 be d1 81 d1 82 d1 8b d0 b5 20 d1 82 d0  ............ ...
0700: b5 d1 81 d1 82 d1 8b 0d 0a 0d 0a 2f 2f 7b 20 d0  ...........//{ .
0710: a2 d0 b5 d1 81 d1 82 d1 8b 20 d1 81 20 d0 b4 d0  ......... .. ...
0720: b0 d0 bd d0 bd d1 8b d0 bc d0 b8 20 d0 b8 d0 b7  ........... ....
0730: 20 d1 84 d0 b0 d0 b9 d0 bb d0 be d0 b2 0d 0a 66   ..............f
0740: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65  unction macrosTe
0750: 73 74 50 61 72 73 65 72 5f 74 65 6d 70 6c 30 5f  stParser_templ0_
0760: 45 6d 70 74 79 5f 73 74 28 29 20 7b 0d 0a 0d 0a  Empty_st() {....
0770: 20 20 20 20 76 61 72 20 66 6e 61 6d 65 20 3d 20      var fname = 
0780: 27 74 65 6d 70 6c 30 5f 45 6d 70 74 79 2e 73 74  'templ0_Empty.st
0790: 27 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 54 72  ';..    assertTr
07a0: 75 65 28 22 d0 a4 d0 b0 d0 b9 d0 bb 20 d1 81 20  ue("........ .. 
07b0: d1 82 d0 b5 d1 81 d1 82 d0 be d0 b2 d1 8b d0 bc  ................
07c0: d0 b8 20 d0 b4 d0 b0 d0 bd d0 bd d1 8b d0 bc d0  .. .............
07d0: b8 20 d0 bd d0 b5 20 d1 81 d1 83 d1 89 d0 b5 d1  . .... .........
07e0: 81 d1 82 d0 b2 d1 83 d0 b5 d1 82 3a 20 22 20 2b  ...........: " +
07f0: 20 64 61 74 61 46 69 6c 65 28 66 6e 61 6d 65 29   dataFile(fname)
0800: 2c 20 64 61 74 61 46 69 6c 65 45 78 69 73 74 73  , dataFileExists
0810: 28 66 6e 61 6d 65 29 29 3b 0d 0a 20 20 20 20 0d  (fname));..    .
0820: 0a 20 20 20 20 61 73 73 65 72 74 54 72 75 65 28  .    assertTrue(
0830: 53 50 2e 72 65 61 64 53 74 72 65 61 6d 46 72 6f  SP.readStreamFro
0840: 6d 46 69 6c 65 28 64 61 74 61 46 69 6c 65 28 66  mFile(dataFile(f
0850: 6e 61 6d 65 29 29 29 3b 20 20 20 20 0d 0a 20 20  name)));    ..  
0860: 20 20 76 61 72 20 61 20 3d 20 53 50 2e 70 61 72    var a = SP.par
0870: 73 65 28 53 50 2e 67 65 74 53 74 72 65 61 6d 28  se(SP.getStream(
0880: 29 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 41  ));..    assertA
0890: 72 72 61 79 45 71 75 61 6c 73 28 5b 31 2c 5b 30  rrayEquals([1,[0
08a0: 2c 5b 27 45 6d 70 74 79 27 2c 31 2c 30 2c 27 22  ,['Empty',1,0,'"
08b0: 64 64 64 27 2c 27 27 5d 5d 5d 2c 61 29 3b 0d 0a  ddd','']]],a);..
08c0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61  }....function ma
08d0: 63 72 6f 73 54 65 73 74 50 61 72 73 65 72 5f 74  crosTestParser_t
08e0: 65 6d 70 6c 31 5f 73 74 28 29 20 7b 0d 0a 0d 0a  empl1_st() {....
08f0: 20 20 20 20 76 61 72 20 66 6e 61 6d 65 20 3d 20      var fname = 
0900: 27 74 65 6d 70 6c 31 2e 73 74 27 3b 0d 0a 20 20  'templ1.st';..  
0910: 20 20 61 73 73 65 72 74 54 72 75 65 28 22 d0 a4    assertTrue("..
0920: d0 b0 d0 b9 d0 bb 20 d1 81 20 d1 82 d0 b5 d1 81  ...... .. ......
0930: d1 82 d0 be d0 b2 d1 8b d0 bc d0 b8 20 d0 b4 d0  ............ ...
0940: b0 d0 bd d0 bd d1 8b d0 bc d0 b8 20 d0 bd d0 b5  ........... ....
0950: 20 d1 81 d1 83 d1 89 d0 b5 d1 81 d1 82 d0 b2 d1   ...............
0960: 83 d0 b5 d1 82 3a 20 22 20 2b 20 64 61 74 61 46  .....: " + dataF
0970: 69 6c 65 28 66 6e 61 6d 65 29 2c 20 64 61 74 61  ile(fname), data
0980: 46 69 6c 65 45 78 69 73 74 73 28 66 6e 61 6d 65  FileExists(fname
0990: 29 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 61  ));..    ..    a
09a0: 73 73 65 72 74 54 72 75 65 28 53 50 2e 72 65 61  ssertTrue(SP.rea
09b0: 64 53 74 72 65 61 6d 46 72 6f 6d 46 69 6c 65 28  dStreamFromFile(
09c0: 64 61 74 61 46 69 6c 65 28 66 6e 61 6d 65 29 29  dataFile(fname))
09d0: 29 3b 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20  );    ..    ..  
09e0: 20 20 76 61 72 20 65 20 3d 20 5b 31 2c 5b 31 2c    var e = [1,[1,
09f0: 5b 22 54 6d 70 6c 31 22 2c 31 2c 30 2c 22 22 2c  ["Tmpl1",1,0,"",
0a00: 22 22 5d 2c 0d 0a 20 20 20 20 20 20 20 20 5b 30  ""],..        [0
0a10: 2c 5b 22 d0 a8 d0 b0 d0 b1 d0 bb d0 be d0 bd 31  ,["............1
0a20: 20 2d 20 d0 90 d0 b2 d1 82 d0 be d0 bc d0 b0 d1   - .............
0a30: 82 d0 b8 d1 87 d0 b5 d1 81 d0 ba d0 b8 20 d0 b7  ............. ..
0a40: d0 b0 d0 bc d0 b5 d0 bd d1 8f d1 82 d1 8c 20 d0  .............. .
0a50: b8 20 d0 b2 d0 ba d0 bb d1 8e d1 87 d0 b0 d1 82  . ..............
0a60: d1 8c 20 d0 b2 20 d0 ba d0 be d0 bd d1 82 d0 b5  .. .. ..........
0a70: d0 ba d1 81 d1 82 d0 bd d0 be d0 b5 20 d0 bc d0  ............ ...
0a80: b5 d0 bd d1 8e 22 2c 30 2c 31 2c 0d 0a 20 20 20  .....",0,1,..   
0a90: 20 20 20 20 20 22 d0 90 d0 b2 d1 82 d0 be d0 bc       "..........
0aa0: d0 b0 d1 82 d0 b8 d1 87 d0 b5 d1 81 d0 ba d0 b8  ................
0ab0: 20 d0 b7 d0 b0 d0 bc d0 b5 d0 bd d1 8f d1 82 d1   ...............
0ac0: 8c 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83 22 2c  . ............",
0ad0: 22 d0 a1 d0 be d0 b4 d0 b5 d1 80 d0 b6 d0 b8 d0  "...............
0ae0: bc d0 be d0 b5 20 d1 88 d0 b0 d0 b1 d0 bb d0 be  ..... ..........
0af0: d0 bd d0 b0 22 5d 5d 5d 5d 3b 0d 0a 20 20 20 20  ...."]]]];..    
0b00: 0d 0a 20 20 20 20 76 61 72 20 61 20 3d 20 53 50  ..    var a = SP
0b10: 2e 70 61 72 73 65 28 53 50 2e 67 65 74 53 74 72  .parse(SP.getStr
0b20: 65 61 6d 28 29 29 3b 0d 0a 20 20 20 20 61 73 73  eam());..    ass
0b30: 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 28 65  ertArrayEquals(e
0b40: 2c 20 61 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 7d 20  , a);..}....//} 
0b50: d0 a2 d0 b5 d1 81 d1 82 d1 8b 20 d1 81 20 d0 b4  .......... .. ..
0b60: d0 b0 d0 bd d0 bd d1 8b d0 bc d0 b8 20 d0 b8 d0  ............ ...
0b70: b7 20 d1 84 d0 b0 d0 b9 d0 bb d0 be d0 b2 0d 0a  . ..............
0b80: 0d 0a 2f 2f 7b 20 d0 92 d1 81 d0 bf d0 be d0 bc  ..//{ ..........
0b90: d0 be d0 b3 d0 b0 d1 82 d0 b5 d0 bb d1 8c d0 bd  ................
0ba0: d1 8b d0 b5 20 d1 84 d1 83 d0 bd d0 ba d1 86 d0  .... ...........
0bb0: b8 d0 b8 0d 0a 66 75 6e 63 74 69 6f 6e 20 64 61  .....function da
0bc0: 74 61 46 69 6c 65 28 66 69 6c 65 4e 61 6d 65 29  taFile(fileName)
0bd0: 20 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 44   {..    return D
0be0: 41 54 41 5f 44 49 52 20 2b 20 66 69 6c 65 4e 61  ATA_DIR + fileNa
0bf0: 6d 65 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f  me..}....functio
0c00: 6e 20 64 61 74 61 46 69 6c 65 45 78 69 73 74 73  n dataFileExists
0c10: 28 66 69 6c 65 4e 61 6d 65 29 20 7b 0d 0a 20 20  (fileName) {..  
0c20: 20 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28    var f = v8New(
0c30: 27 46 69 6c 65 27 2c 20 64 61 74 61 46 69 6c 65  'File', dataFile
0c40: 28 66 69 6c 65 4e 61 6d 65 29 29 3b 0d 0a 20 20  (fileName));..  
0c50: 20 20 72 65 74 75 72 6e 20 28 66 2e 45 78 69 73    return (f.Exis
0c60: 74 28 29 20 26 26 20 66 2e 49 73 46 69 6c 65 28  t() && f.IsFile(
0c70: 29 29 3b 0d 0a 7d 0d 0a 2f 2f 7d 20 d0 92 d1 81  ));..}..//} ....
0c80: d0 bf d0 be d0 bc d0 be d0 b3 d0 b0 d1 82 d0 b5  ................
0c90: d0 bb d1 8c d0 bd d1 8b d0 b5 20 d1 84 d1 83 d0  .......... .....
0ca0: bd d0 ba d1 86 d0 b8 d0 b8 0d 0a                 ...........