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 52 65 66 61 63 pt..$uname Refac
0020: 74 6f 72 69 6e 67 0d 0a 24 64 6e 61 6d 65 20 d0 toring..$dname .
0030: a0 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0 ................
0040: b8 d0 bd d0 b3 0d 0a 24 61 64 64 69 6e 20 67 6c .......$addin gl
0050: 6f 62 61 6c 0d 0a 24 61 64 64 69 6e 20 73 74 64 obal..$addin std
0060: 6c 69 62 0d 0a 24 61 64 64 69 6e 20 76 62 73 0d lib..$addin vbs.
0070: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f .../////////////
0080: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0090: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f ///////////..///
00d0: 2f 7b 20 43 d0 ba d1 80 d0 b8 d0 bf d1 82 20 22 /{ C.......... "
00e0: d0 a0 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 ................
00f0: d0 b8 d0 bd d0 b3 22 20 28 72 65 66 61 63 74 6f ......" (refacto
0100: 72 69 6e 67 2e 6a 73 29 20 d0 b4 d0 bb d1 8f 20 ring.js) ......
0110: d0 bf d1 80 d0 be d0 b5 d0 ba d1 82 d0 b0 20 22 .............. "
0120: d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 82 ................
0130: 22 0d 0a 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 d0 9e "..////..//// ..
0140: d0 bf d0 b8 d1 81 d0 b0 d0 bd d0 b8 d0 b5 3a 20 ..............:
0150: d0 a0 d0 b5 d0 b0 d0 bb d0 b8 d0 b7 d1 83 d0 b5 ................
0160: d1 82 20 d0 bf d1 80 d0 be d1 81 d1 82 d0 b5 d0 .. .............
0170: b9 d1 88 d0 b8 d0 b5 20 d0 b8 d0 bd d1 81 d1 82 ....... ........
0180: d1 80 d1 83 d0 bc d0 b5 d0 bd d1 82 d1 8b 20 d1 .............. .
0190: 80 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0 ................
01a0: b8 d0 bd d0 b3 d0 b0 2e 0d 0a 2f 2f 2f 2f 20 d0 ..........//// .
01b0: 90 d0 b2 d1 82 d0 be d1 80 3a 20 d0 90 d0 bb d0 .........: .....
01c0: b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9a ............. ..
01d0: d1 83 d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2 20 3c .............. <
01e0: 6b 75 6e 74 61 73 68 6f 76 40 67 6d 61 69 6c 2e kuntashov@gmail.
01f0: 63 6f 6d 3e 2c 20 68 74 74 70 3a 2f 2f 63 6f 6d com>, http://com
0200: 70 61 75 64 2e 72 75 2f 62 6c 6f 67 0d 0a 2f 2f paud.ru/blog..//
0210: 2f 2f 7d 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f //}..///////////
0220: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0230: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0240: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0250: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0260: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 0d /////////////...
0270: 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28 .stdlib.require(
0280: 27 54 65 78 74 57 69 6e 64 6f 77 2e 6a 73 27 2c 'TextWindow.js',
0290: 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a 73 SelfScript);..s
02a0: 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28 27 53 tdlib.require('S
02b0: 65 74 74 69 6e 67 73 4d 61 6e 61 67 65 6d 65 6e ettingsManagemen
02c0: 74 2e 6a 73 27 2c 20 53 65 6c 66 53 63 72 69 70 t.js', SelfScrip
02d0: 74 29 3b 0d 0a 0d 0a 73 74 64 6c 69 62 2e 72 65 t);....stdlib.re
02e0: 71 75 69 72 65 28 27 53 79 6e 74 61 78 41 6e 61 quire('SyntaxAna
02f0: 6c 79 73 69 73 2e 6a 73 27 2c 20 53 65 6c 66 53 lysis.js', SelfS
0300: 63 72 69 70 74 29 3b 0d 0a 2f 2f d0 94 d0 bb d1 cript);..//.....
0310: 8f 20 d0 be d1 82 d0 bb d0 b0 d0 b4 d0 ba d0 b8 . ..............
0320: 3a 20 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 : stdlib.require
0330: 28 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74 (profileRoot.get
0340: 56 61 6c 75 65 28 22 53 6e 65 67 6f 70 61 74 2f Value("Snegopat/
0350: 4d 61 69 6e 46 6f 6c 64 65 72 22 29 20 2b 20 27 MainFolder") + '
0360: 75 73 65 72 5c 5c 4c 69 62 73 5c 5c 53 79 6e 74 user\\Libs\\Synt
0370: 61 78 41 6e 61 6c 79 73 69 73 2e 6a 73 27 2c 20 axAnalysis.js',
0380: 53 65 6c 66 53 63 72 69 70 74 29 3b 20 0d 0a 0d SelfScript); ...
0390: 0a 67 6c 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47 .global.connectG
03a0: 6c 6f 62 61 6c 73 28 53 65 6c 66 53 63 72 69 70 lobals(SelfScrip
03b0: 74 29 3b 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f t);..../////////
03c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
03d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
03e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
03f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0400: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d ///////////////.
0410: 0a 2f 2f 2f 2f 7b 20 d0 9c d0 b0 d0 ba d1 80 d0 .////{ .........
0420: be d1 81 d1 8b 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 53 .......////....S
0430: 65 6c 66 53 63 72 69 70 74 2e 73 65 6c 66 5b 27 elfScript.self['
0440: 6d 61 63 72 6f 73 d0 92 d1 8b d0 b4 d0 b5 d0 bb macros..........
0450: d0 b8 d1 82 d1 8c 20 d0 bc d0 b5 d1 82 d0 be d0 ...... .........
0460: b4 20 28 65 78 74 72 61 63 74 20 6d 65 74 68 6f . (extract metho
0470: 64 29 27 5d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 d)'] = function
0480: 28 29 20 7b 0d 0a 20 20 20 20 72 65 66 61 63 74 () {.. refact
0490: 6f 72 28 45 78 74 72 61 63 74 4d 65 74 68 6f 64 or(ExtractMethod
04a0: 52 65 66 61 63 74 6f 72 69 6e 67 29 3b 0d 0a 7d Refactoring);..}
04b0: 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70 74 2e 73 ....SelfScript.s
04c0: 65 6c 66 5b 27 6d 61 63 72 6f 73 d0 9f d0 be d0 elf['macros.....
04d0: ba d0 b0 d0 b7 d0 b0 d1 82 d1 8c 20 d1 81 d0 bf ........... ....
04e0: d0 b8 d1 81 d0 be d0 ba 20 d0 bf d1 80 d0 be d1 ........ .......
04f0: 86 d0 b5 d0 b4 d1 83 d1 80 20 d0 b8 20 d1 84 d1 ......... .. ...
0500: 83 d0 bd d0 ba d1 86 d0 b8 d0 b9 20 d0 bc d0 be ........... ....
0510: d0 b4 d1 83 d0 bb d1 8f 27 5d 20 3d 20 66 75 6e ........'] = fun
0520: 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 ction () {..
0530: 76 61 72 20 74 77 20 3d 20 47 65 74 54 65 78 74 var tw = GetText
0540: 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 Window();.. i
0550: 66 20 28 21 74 77 29 20 72 65 74 75 72 6e 3b 0d f (!tw) return;.
0560: 0a 20 20 20 20 76 61 72 20 6d 6f 64 75 6c 65 20 . var module
0570: 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79 73 69 73 = SyntaxAnalysis
0580: 2e 41 6e 61 6c 79 73 65 54 65 78 74 44 6f 63 75 .AnalyseTextDocu
0590: 6d 65 6e 74 28 74 77 29 3b 0d 0a 20 20 20 20 76 ment(tw);.. v
05a0: 61 72 20 6d 65 74 68 4c 69 73 74 20 3d 20 6e 65 ar methList = ne
05b0: 77 20 4d 65 74 68 6f 64 4c 69 73 74 46 6f 72 6d w MethodListForm
05c0: 28 6d 6f 64 75 6c 65 29 3b 0d 0a 20 20 20 20 69 (module);.. i
05d0: 66 20 28 6d 65 74 68 4c 69 73 74 2e 73 65 6c 65 f (methList.sele
05e0: 63 74 4d 65 74 68 6f 64 28 29 29 0d 0a 20 20 20 ctMethod())..
05f0: 20 20 20 20 20 4d 65 73 73 61 67 65 28 6d 65 74 Message(met
0600: 68 4c 69 73 74 2e 53 65 6c 65 63 74 65 64 4d 65 hList.SelectedMe
0610: 74 68 6f 64 2e 4e 61 6d 65 29 3b 0d 0a 7d 0d 0a thod.Name);..}..
0620: 0d 0a 53 65 6c 66 53 63 72 69 70 74 2e 73 65 6c ..SelfScript.sel
0630: 66 5b 27 6d 61 63 72 6f 73 d0 a1 d0 be d0 b7 d0 f['macros.......
0640: b4 d0 b0 d1 82 d1 8c 20 d0 b7 d0 b0 d0 b3 d0 bb ....... ........
0650: d1 83 d1 88 d0 ba d1 83 20 d0 b4 d0 bb d1 8f 20 ........ ......
0660: d0 bd d0 b5 d1 81 d1 83 d1 89 d0 b5 d1 81 d1 82 ................
0670: d0 b2 d1 83 d1 8e d1 89 d0 b5 d0 b3 d0 be 20 d0 .............. .
0680: bc d0 b5 d1 82 d0 be d0 b4 d0 b0 27 5d 20 3d 20 ...........'] =
0690: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 function () {..
06a0: 20 20 20 72 65 66 61 63 74 6f 72 28 43 72 65 61 refactor(Crea
06b0: 74 65 4d 65 74 68 6f 64 53 74 75 62 52 65 66 61 teMethodStubRefa
06c0: 63 74 6f 72 69 6e 67 2c 20 74 72 75 65 29 3b 0d ctoring, true);.
06d0: 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 7d 20 d0 9c d0 b0 .}....////} ....
06e0: d0 ba d1 80 d0 be d1 81 d1 8b 0d 0a 0d 0a 66 75 ..............fu
06f0: 6e 63 74 69 6f 6e 20 72 65 66 61 63 74 6f 72 28 nction refactor(
0700: 72 65 66 61 63 74 6f 72 65 72 43 6c 61 73 73 2c refactorerClass,
0710: 20 77 69 74 68 6f 75 74 53 65 6c 65 63 74 69 6f withoutSelectio
0720: 6e 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 n) {.. ..
0730: 76 61 72 20 74 77 20 3d 20 47 65 74 54 65 78 74 var tw = GetText
0740: 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69 Window();.. i
0750: 66 20 28 21 74 77 29 20 72 65 74 75 72 6e 3b 0d f (!tw) return;.
0760: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 73 . .. var s
0770: 65 6c 54 65 78 74 20 3d 20 74 77 2e 47 65 74 53 elText = tw.GetS
0780: 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b 0d 0a electedText();..
0790: 20 20 20 20 69 66 20 28 21 73 65 6c 54 65 78 74 if (!selText
07a0: 20 26 26 20 21 77 69 74 68 6f 75 74 53 65 6c 65 && !withoutSele
07b0: 63 74 69 6f 6e 29 20 0d 0a 20 20 20 20 7b 0d 0a ction) .. {..
07c0: 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 65 28 Message(
07d0: 22 d0 9d d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb ".... ..........
07e0: d0 b5 d0 bd 20 d1 82 d0 b5 d0 ba d1 81 d1 82 2c .... ..........,
07f0: 20 d0 ba 20 d0 ba d0 be d1 82 d0 be d1 80 d0 be .. ............
0800: d0 bc d1 83 20 d0 bf d1 80 d0 b8 d0 bc d0 b5 d0 .... ...........
0810: bd d1 8f d0 b5 d1 82 d1 81 d1 8f 20 d1 80 d0 b5 ........... ....
0820: d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0 b8 d0 bd ................
0830: d0 b3 21 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 ..!");..
0840: 72 65 74 75 72 6e 3b 0d 0a 20 20 20 20 7d 0d 0a return;.. }..
0850: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 6d 6f .. var mo
0860: 64 75 6c 65 20 3d 20 53 79 6e 74 61 78 41 6e 61 dule = SyntaxAna
0870: 6c 79 73 69 73 2e 41 6e 61 6c 79 73 65 54 65 78 lysis.AnalyseTex
0880: 74 44 6f 63 75 6d 65 6e 74 28 74 77 29 3b 0d 0a tDocument(tw);..
0890: 20 20 20 20 76 61 72 20 72 65 66 61 63 74 6f 72 var refactor
08a0: 65 72 20 3d 20 6e 65 77 20 72 65 66 61 63 74 6f er = new refacto
08b0: 72 65 72 43 6c 61 73 73 28 6d 6f 64 75 6c 65 29 rerClass(module)
08c0: 3b 0d 0a 20 20 20 20 72 65 66 61 63 74 6f 72 65 ;.. refactore
08d0: 72 2e 72 65 66 61 63 74 6f 72 28 73 65 6c 54 65 r.refactor(selTe
08e0: 78 74 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 2f xt);..}..../////
08f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0900: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0910: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0920: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0930: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
0940: 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 4d 65 74 68 6f ///..////{ Metho
0950: 64 4c 69 73 74 46 6f 72 6d 0d 0a 2f 2f 2f 2f 0d dListForm..////.
0960: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 4d 65 74 68 ...function Meth
0970: 6f 64 4c 69 73 74 46 6f 72 6d 28 6d 6f 64 75 6c odListForm(modul
0980: 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 e) {.... this
0990: 2e 6d 6f 64 75 6c 65 20 3d 20 6d 6f 64 75 6c 65 .module = module
09a0: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 6f 72 69 67 ;.. this.orig
09b0: 69 6e 61 6c 4d 65 74 68 6f 64 4c 69 73 74 20 3d inalMethodList =
09c0: 20 6d 6f 64 75 6c 65 2e 67 65 74 4d 65 74 68 6f module.getMetho
09d0: 64 73 54 61 62 6c 65 28 29 3b 0d 0a 0d 0a 20 20 dsTable();....
09e0: 20 20 74 68 69 73 2e 66 6f 72 6d 20 3d 20 6c 6f this.form = lo
09f0: 61 64 53 63 72 69 70 74 46 6f 72 6d 28 53 65 6c adScriptForm(Sel
0a00: 66 53 63 72 69 70 74 2e 66 75 6c 6c 50 61 74 68 fScript.fullPath
0a10: 2e 72 65 70 6c 61 63 65 28 2f 5c 2e 6a 73 24 2f .replace(/\.js$/
0a20: 2c 20 27 2e 6d 65 74 68 6f 64 4c 69 73 74 2e 73 , '.methodList.s
0a30: 73 66 27 29 2c 20 74 68 69 73 29 3b 0d 0a 20 20 sf'), this);..
0a40: 20 20 74 68 69 73 2e 53 65 6c 65 63 74 65 64 4d this.SelectedM
0a50: 65 74 68 6f 64 20 3d 20 75 6e 64 65 66 69 6e 65 ethod = undefine
0a60: 64 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 d;.. .. th
0a70: 69 73 2e 73 65 74 74 69 6e 67 73 20 3d 20 53 65 is.settings = Se
0a80: 74 74 69 6e 67 73 4d 61 6e 61 67 65 6d 65 6e 74 ttingsManagement
0a90: 2e 43 72 65 61 74 65 4d 61 6e 61 67 65 72 28 53 .CreateManager(S
0aa0: 65 6c 66 53 63 72 69 70 74 2e 75 6e 69 71 75 65 elfScript.unique
0ab0: 4e 61 6d 65 20 2b 20 22 2f 4d 65 74 68 6f 64 4c Name + "/MethodL
0ac0: 69 73 74 46 6f 72 6d 22 2c 20 7b 0d 0a 20 20 20 istForm", {..
0ad0: 20 20 20 20 20 27 44 6f 4e 6f 74 46 69 6c 74 65 'DoNotFilte
0ae0: 72 27 3a 20 66 61 6c 73 65 2c 20 27 53 6f 72 74 r': false, 'Sort
0af0: 42 79 4e 61 6d 65 27 20 3a 20 66 61 6c 73 65 0d ByName' : false.
0b00: 0a 20 20 20 20 7d 29 3b 0d 0a 20 20 20 20 0d 0a . });.. ..
0b10: 20 20 20 20 74 68 69 73 2e 73 65 74 74 69 6e 67 this.setting
0b20: 73 2e 4c 6f 61 64 53 65 74 74 69 6e 67 73 28 29 s.LoadSettings()
0b30: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ;.. ..
0b40: 20 76 61 72 20 6d 65 74 68 4c 69 73 74 46 6f 72 var methListFor
0b50: 6d 20 3d 20 74 68 69 73 3b 0d 0a 20 20 20 20 74 m = this;.. t
0b60: 68 69 73 2e 74 63 57 61 74 63 68 65 72 20 3d 20 his.tcWatcher =
0b70: 6e 65 77 20 54 65 78 74 43 68 61 6e 67 65 73 57 new TextChangesW
0b80: 61 74 63 68 65 72 28 74 68 69 73 2e 66 6f 72 6d atcher(this.form
0b90: 2e 43 6f 6e 74 72 6f 6c 73 2e 53 65 61 72 63 68 .Controls.Search
0ba0: 54 65 78 74 2c 20 33 2c 20 66 75 6e 63 74 69 6f Text, 3, functio
0bb0: 6e 28 74 29 7b 6d 65 74 68 4c 69 73 74 46 6f 72 n(t){methListFor
0bc0: 6d 2e 66 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74 m.fillMethodList
0bd0: 28 74 29 7d 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 (t)});.. ..
0be0: 20 20 74 68 69 73 2e 69 63 6f 6e 73 20 3d 20 7b this.icons = {
0bf0: 0d 0a 20 20 20 20 20 20 20 20 27 50 72 6f 63 27 .. 'Proc'
0c00: 3a 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 : this.form.Cont
0c10: 72 6f 6c 73 2e 70 69 63 50 72 6f 63 2e 50 69 63 rols.picProc.Pic
0c20: 74 75 72 65 2c 0d 0a 20 20 20 20 20 20 20 20 27 ture,.. '
0c30: 46 75 6e 63 27 3a 20 74 68 69 73 2e 66 6f 72 6d Func': this.form
0c40: 2e 43 6f 6e 74 72 6f 6c 73 2e 70 69 63 46 75 6e .Controls.picFun
0c50: 63 2e 50 69 63 74 75 72 65 0d 0a 20 20 20 20 7d c.Picture.. }
0c60: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 .. .. this
0c70: 2e 66 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74 28 .fillMethodList(
0c80: 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c );..}....MethodL
0c90: 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 istForm.prototyp
0ca0: 65 2e 73 65 6c 65 63 74 4d 65 74 68 6f 64 20 3d e.selectMethod =
0cb0: 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a function () {..
0cc0: 20 20 20 20 74 68 69 73 2e 53 65 6c 65 63 74 65 this.Selecte
0cd0: 64 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 66 dMethod = this.f
0ce0: 6f 72 6d 2e 44 6f 4d 6f 64 61 6c 28 29 3b 0d 0a orm.DoModal();..
0cf0: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
0d00: 53 65 6c 65 63 74 65 64 4d 65 74 68 6f 64 20 3f SelectedMethod ?
0d10: 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0d 0a true : false;..
0d20: 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 }....MethodListF
0d30: 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4d 65 orm.prototype.Me
0d40: 74 68 6f 64 4c 69 73 74 53 65 6c 65 63 74 69 6f thodListSelectio
0d50: 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f n = function (Co
0d60: 6e 74 72 6f 6c 2c 20 53 65 6c 65 63 74 65 64 52 ntrol, SelectedR
0d70: 6f 77 2c 20 43 6f 6c 75 6d 6e 2c 20 44 65 66 61 ow, Column, Defa
0d80: 75 6c 74 48 61 6e 64 6c 65 72 29 20 7b 0d 0a 20 ultHandler) {..
0d90: 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6c 6f this.form.Clo
0da0: 73 65 28 53 65 6c 65 63 74 65 64 52 6f 77 2e 76 se(SelectedRow.v
0db0: 61 6c 2e 5f 6d 65 74 68 6f 64 29 3b 0d 0a 7d 0d al._method);..}.
0dc0: 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 6f 72 ...MethodListFor
0dd0: 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4d 65 74 68 m.prototype.Meth
0de0: 6f 64 4c 69 73 74 4f 6e 52 6f 77 4f 75 74 70 75 odListOnRowOutpu
0df0: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f t = function (Co
0e00: 6e 74 72 6f 6c 2c 20 52 6f 77 41 70 70 65 61 72 ntrol, RowAppear
0e10: 61 6e 63 65 2c 20 52 6f 77 44 61 74 61 29 20 7b ance, RowData) {
0e20: 0d 0a 20 20 20 20 76 61 72 20 6e 61 6d 65 43 65 .. var nameCe
0e30: 6c 6c 20 3d 20 52 6f 77 41 70 70 65 61 72 61 6e ll = RowAppearan
0e40: 63 65 2e 76 61 6c 2e 43 65 6c 6c 73 2e 4e 61 6d ce.val.Cells.Nam
0e50: 65 3b 0d 0a 20 20 20 20 6e 61 6d 65 43 65 6c 6c e;.. nameCell
0e60: 2e 53 65 74 50 69 63 74 75 72 65 28 20 52 6f 77 .SetPicture( Row
0e70: 44 61 74 61 2e 76 61 6c 2e 49 73 50 72 6f 63 20 Data.val.IsProc
0e80: 3f 20 74 68 69 73 2e 69 63 6f 6e 73 2e 50 72 6f ? this.icons.Pro
0e90: 63 20 3a 20 74 68 69 73 2e 69 63 6f 6e 73 2e 46 c : this.icons.F
0ea0: 75 6e 63 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 unc);..}....Meth
0eb0: 6f 64 4c 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f odListForm.proto
0ec0: 74 79 70 65 2e 43 6d 64 42 61 72 53 6f 72 74 42 type.CmdBarSortB
0ed0: 79 4e 61 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e yName = function
0ee0: 20 28 62 75 74 74 6f 6e 29 20 7b 0d 0a 20 20 20 (button) {..
0ef0: 20 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 button.val.Chec
0f00: 6b 20 3d 20 21 62 75 74 74 6f 6e 2e 76 61 6c 2e k = !button.val.
0f10: 43 68 65 63 6b 3b 0d 0a 20 20 20 20 74 68 69 73 Check;.. this
0f20: 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 6d 65 .form.SortByName
0f30: 20 3d 20 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 = button.val.Ch
0f40: 65 63 6b 3b 0d 0a 20 20 20 20 74 68 69 73 2e 73 eck;.. this.s
0f50: 6f 72 74 4d 65 74 68 6f 64 4c 69 73 74 28 62 75 ortMethodList(bu
0f60: 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b 29 3b tton.val.Check);
0f70: 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 ..}....MethodLis
0f80: 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e tForm.prototype.
0f90: 43 6d 64 42 61 72 44 6f 4e 6f 74 46 69 6c 74 65 CmdBarDoNotFilte
0fa0: 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 62 75 r = function (bu
0fb0: 74 74 6f 6e 29 20 7b 0d 0a 20 20 20 20 62 75 74 tton) {.. but
0fc0: 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b 20 3d 20 ton.val.Check =
0fd0: 21 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 !button.val.Chec
0fe0: 6b 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 k;.. this.for
0ff0: 6d 2e 44 6f 4e 6f 74 46 69 6c 74 65 72 20 3d 20 m.DoNotFilter =
1000: 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b button.val.Check
1010: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 6c 6c ;.. this.fill
1020: 4d 65 74 68 6f 64 4c 69 73 74 28 74 68 69 73 2e MethodList(this.
1030: 66 6f 72 6d 2e 53 65 61 72 63 68 54 65 78 74 29 form.SearchText)
1040: 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 ;..}....MethodLi
1050: 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 stForm.prototype
1060: 2e 43 6d 64 42 61 72 4d 61 69 6e d0 9e d0 9a 20 .CmdBarMain....
1070: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 d0 9a d0 bd = function (....
1080: d0 be d0 bf d0 ba d0 b0 29 20 7b 0d 0a 20 20 20 ........) {..
1090: 20 76 61 72 20 53 65 6c 65 63 74 65 64 52 6f 77 var SelectedRow
10a0: 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e = this.form.Con
10b0: 74 72 6f 6c 73 2e 4d 65 74 68 6f 64 4c 69 73 74 trols.MethodList
10c0: 2e 43 75 72 72 65 6e 74 52 6f 77 3b 0d 0a 20 20 .CurrentRow;..
10d0: 20 20 69 66 20 28 53 65 6c 65 63 74 65 64 52 6f if (SelectedRo
10e0: 77 29 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 w).. this
10f0: 2e 66 6f 72 6d 2e 43 6c 6f 73 65 28 53 65 6c 65 .form.Close(Sele
1100: 63 74 65 64 52 6f 77 2e 5f 6d 65 74 68 6f 64 29 ctedRow._method)
1110: 3b 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 ;.. else..
1120: 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 this.form.C
1130: 75 72 72 65 6e 74 43 6f 6e 74 72 6f 6c 20 3d 20 urrentControl =
1140: 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f this.form.Contro
1150: 6c 73 2e 53 65 61 72 63 68 54 65 78 74 3b 0d 0a ls.SearchText;..
1160: 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 }....MethodListF
1170: 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4f 6e orm.prototype.On
1180: 4f 70 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 Open = function
1190: 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 () {.... this
11a0: 2e 73 65 74 74 69 6e 67 73 2e 41 70 70 6c 79 54 .settings.ApplyT
11b0: 6f 46 6f 72 6d 28 74 68 69 73 2e 66 6f 72 6d 29 oForm(this.form)
11c0: 3b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f ;.... this.fo
11d0: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42 rm.Controls.CmdB
11e0: 61 72 2e 42 75 74 74 6f 6e 73 2e 53 6f 72 74 42 ar.Buttons.SortB
11f0: 79 4e 61 6d 65 2e 43 68 65 63 6b 20 3d 20 74 68 yName.Check = th
1200: 69 73 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 is.form.SortByNa
1210: 6d 65 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f me;.. this.fo
1220: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42 rm.Controls.CmdB
1230: 61 72 2e 42 75 74 74 6f 6e 73 2e 44 6f 4e 6f 74 ar.Buttons.DoNot
1240: 46 69 6c 74 65 72 2e 43 68 65 63 6b 20 3d 20 74 Filter.Check = t
1250: 68 69 73 2e 66 6f 72 6d 2e 44 6f 4e 6f 74 46 69 his.form.DoNotFi
1260: 6c 74 65 72 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 lter;.. ..
1270: 20 74 68 69 73 2e 6c 6f 61 64 65 64 4f 6e 4f 70 this.loadedOnOp
1280: 65 6e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 en = true;..
1290: 74 68 69 73 2e 74 63 57 61 74 63 68 65 72 2e 73 this.tcWatcher.s
12a0: 74 61 72 74 28 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 tart();..}....Me
12b0: 74 68 6f 64 4c 69 73 74 46 6f 72 6d 2e 70 72 6f thodListForm.pro
12c0: 74 6f 74 79 70 65 2e 42 65 66 6f 72 65 43 6c 6f totype.BeforeClo
12d0: 73 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 se = function (C
12e0: 61 6e 63 65 6c 2c 20 53 74 61 6e 64 61 72 64 48 ancel, StandardH
12f0: 61 6e 64 6c 65 72 29 20 7b 0d 0a 20 20 20 20 74 andler) {.. t
1300: 68 69 73 2e 74 63 57 61 74 63 68 65 72 2e 73 74 his.tcWatcher.st
1310: 6f 70 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e op();.. this.
1320: 73 61 76 65 53 65 74 74 69 6e 67 73 28 29 3b 0d saveSettings();.
1330: 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 .}....MethodList
1340: 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 66 Form.prototype.f
1350: 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74 20 3d 20 illMethodList =
1360: 66 75 6e 63 74 69 6f 6e 20 28 6e 65 77 54 65 78 function (newTex
1370: 74 29 20 7b 0d 0a 0d 0a 20 20 20 20 69 66 20 28 t) {.... if (
1380: 21 6e 65 77 54 65 78 74 20 7c 7c 20 6e 65 77 54 !newText || newT
1390: 65 78 74 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 24 ext.match(/^\s*$
13a0: 2f 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 /)).. {..
13b0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 6f 61 if (this.loa
13c0: 64 65 64 4f 6e 4f 70 65 6e 29 0d 0a 20 20 20 20 dedOnOpen)..
13d0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 61 this.loa
13e0: 64 65 64 4f 6e 4f 70 65 6e 20 3d 20 66 61 6c 73 dedOnOpen = fals
13f0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 e;.. else
1400: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
1410: 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73 is.form.Controls
1420: 2e 4d 65 74 68 6f 64 4c 69 73 74 2e 56 61 6c 75 .MethodList.Valu
1430: 65 20 3d 20 74 68 69 73 2e 6f 72 69 67 69 6e 61 e = this.origina
1440: 6c 4d 65 74 68 6f 64 4c 69 73 74 2e 43 6f 70 79 lMethodList.Copy
1450: 28 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 0d (); .
1460: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 73 65 . }.. else
1470: 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 .. {..
1480: 20 20 76 61 72 20 61 20 3d 20 6e 65 77 54 65 78 var a = newTex
1490: 74 2e 73 70 6c 69 74 28 2f 5c 73 2b 2f 29 3b 0d t.split(/\s+/);.
14a0: 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 . for (va
14b0: 72 20 69 3d 30 3b 20 69 3c 61 2e 6c 65 6e 67 74 r i=0; i<a.lengt
14c0: 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 20 20 20 h; i++)..
14d0: 20 20 20 20 20 61 5b 69 5d 20 3d 20 53 74 72 69 a[i] = Stri
14e0: 6e 67 55 74 69 6c 73 2e 61 64 64 53 6c 61 73 68 ngUtils.addSlash
14f0: 65 73 28 61 5b 69 5d 29 3b 0d 0a 20 20 20 20 20 es(a[i]);..
1500: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
1510: 20 76 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65 var re = new Re
1520: 67 45 78 70 28 61 2e 6a 6f 69 6e 28 22 2e 2a 3f gExp(a.join(".*?
1530: 22 29 2c 20 27 69 27 29 3b 20 20 20 20 0d 0a 20 "), 'i'); ..
1540: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
1550: 20 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 44 if (this.form.D
1560: 6f 4e 6f 74 46 69 6c 74 65 72 29 0d 0a 20 20 20 oNotFilter)..
1570: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 {..
1580: 20 20 20 20 76 61 72 20 63 75 72 72 65 6e 74 52 var currentR
1590: 6f 77 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0d ow = undefined;.
15a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 . ..
15b0: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6d var m
15c0: 65 74 68 4c 69 73 74 20 3d 20 74 68 69 73 2e 6f ethList = this.o
15d0: 72 69 67 69 6e 61 6c 4d 65 74 68 6f 64 4c 69 73 riginalMethodLis
15e0: 74 2e 43 6f 70 79 28 29 3b 0d 0a 20 20 20 20 20 t.Copy();..
15f0: 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 for (var
1600: 72 6f 77 4e 6f 20 3d 20 30 3b 20 72 6f 77 4e 6f rowNo = 0; rowNo
1610: 20 3c 20 6d 65 74 68 4c 69 73 74 2e 43 6f 75 6e < methList.Coun
1620: 74 28 29 3b 20 72 6f 77 4e 6f 2b 2b 29 0d 0a 20 t(); rowNo++)..
1630: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 {..
1640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
1650: 72 20 72 6f 77 20 3d 20 6d 65 74 68 4c 69 73 74 r row = methList
1660: 2e 47 65 74 28 72 6f 77 4e 6f 29 3b 0d 0a 20 20 .Get(rowNo);..
1670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
1680: 20 28 72 65 2e 74 65 73 74 28 72 6f 77 2e 4e 61 (re.test(row.Na
1690: 6d 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 me))..
16a0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 {..
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 cur
16c0: 72 65 6e 74 52 6f 77 20 3d 20 72 6f 77 3b 0d 0a rentRow = row;..
16d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16e0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 break;..
16f0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 }..
1700: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 }..
1710: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 ..
1720: 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 this.for
1730: 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 4d 65 74 68 6f m.Controls.Metho
1740: 64 4c 69 73 74 2e 56 61 6c 75 65 20 3d 20 6d 65 dList.Value = me
1750: 74 68 4c 69 73 74 3b 0d 0a 20 20 20 20 20 20 20 thList;..
1760: 20 20 20 20 20 69 66 20 28 63 75 72 72 65 6e 74 if (current
1770: 52 6f 77 29 0d 0a 20 20 20 20 20 20 20 20 20 20 Row)..
1780: 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e this.form.
1790: 43 6f 6e 74 72 6f 6c 73 2e 4d 65 74 68 6f 64 4c Controls.MethodL
17a0: 69 73 74 2e 43 75 72 72 65 6e 74 52 6f 77 20 3d ist.CurrentRow =
17b0: 20 63 75 72 72 65 6e 74 52 6f 77 3b 0d 0a 20 20 currentRow;..
17c0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
17d0: 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 7b else.. {
17e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 .. va
17f0: 72 20 6d 65 74 68 4c 69 73 74 20 3d 20 74 68 69 r methList = thi
1800: 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e s.form.Controls.
1810: 4d 65 74 68 6f 64 4c 69 73 74 2e 56 61 6c 75 65 MethodList.Value
1820: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d ;.. m
1830: 65 74 68 4c 69 73 74 2e 43 6c 65 61 72 28 29 3b ethList.Clear();
1840: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ..
1850: 20 20 66 6f 72 20 28 76 61 72 20 72 6f 77 4e 6f for (var rowNo
1860: 20 3d 20 30 3b 20 72 6f 77 4e 6f 20 3c 20 74 68 = 0; rowNo < th
1870: 69 73 2e 6f 72 69 67 69 6e 61 6c 4d 65 74 68 6f is.originalMetho
1880: 64 4c 69 73 74 2e 43 6f 75 6e 74 28 29 3b 20 72 dList.Count(); r
1890: 6f 77 4e 6f 2b 2b 29 0d 0a 20 20 20 20 20 20 20 owNo++)..
18a0: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 {..
18b0: 20 20 20 20 20 20 20 20 76 61 72 20 72 6f 77 20 var row
18c0: 3d 20 74 68 69 73 2e 6f 72 69 67 69 6e 61 6c 4d = this.originalM
18d0: 65 74 68 6f 64 4c 69 73 74 2e 47 65 74 28 72 6f ethodList.Get(ro
18e0: 77 4e 6f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 wNo);..
18f0: 20 20 20 20 20 20 20 69 66 20 28 72 65 2e 74 65 if (re.te
1900: 73 74 28 72 6f 77 2e 4e 61 6d 65 29 29 0d 0a 20 st(row.Name))..
1910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1920: 20 20 20 46 69 6c 6c 50 72 6f 70 65 72 74 79 56 FillPropertyV
1930: 61 6c 75 65 73 28 6d 65 74 68 4c 69 73 74 2e 41 alues(methList.A
1940: 64 64 28 29 2c 20 72 6f 77 29 3b 0d 0a 20 20 20 dd(), row);..
1950: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }..
1960: 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 }.. }..
1970: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 73 6f 72 .. this.sor
1980: 74 4d 65 74 68 6f 64 4c 69 73 74 28 74 68 69 73 tMethodList(this
1990: 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 6d 65 .form.SortByName
19a0: 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c );..}....MethodL
19b0: 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 istForm.prototyp
19c0: 65 2e 73 6f 72 74 4d 65 74 68 6f 64 4c 69 73 74 e.sortMethodList
19d0: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 73 6f 72 = function (sor
19e0: 74 42 79 4e 61 6d 65 29 20 7b 0d 0a 20 20 20 20 tByName) {..
19f0: 74 68 69 73 2e 66 6f 72 6d 2e 4d 65 74 68 6f 64 this.form.Method
1a00: 4c 69 73 74 2e 53 6f 72 74 28 73 6f 72 74 42 79 List.Sort(sortBy
1a10: 4e 61 6d 65 20 3f 20 27 4e 61 6d 65 27 20 3a 20 Name ? 'Name' :
1a20: 27 53 74 61 72 74 4c 69 6e 65 27 29 3b 0d 0a 7d 'StartLine');..}
1a30: 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 6f ....MethodListFo
1a40: 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 73 61 76 rm.prototype.sav
1a50: 65 53 65 74 74 69 6e 67 73 20 3d 20 66 75 6e 63 eSettings = func
1a60: 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 74 tion () {.. t
1a70: 68 69 73 2e 73 65 74 74 69 6e 67 73 2e 52 65 61 his.settings.Rea
1a80: 64 46 72 6f 6d 46 6f 72 6d 28 74 68 69 73 2e 66 dFromForm(this.f
1a90: 6f 72 6d 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e orm);.. this.
1aa0: 73 65 74 74 69 6e 67 73 2e 53 61 76 65 53 65 74 settings.SaveSet
1ab0: 74 69 6e 67 73 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f tings();..}..../
1ac0: 2f 2f 2f 7d 20 4d 65 74 68 6f 64 4c 69 73 74 46 ///} MethodListF
1ad0: 6f 72 6d 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f orm..../////////
1ae0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
1af0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
1b00: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
1b10: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
1b20: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d ///////////////.
1b30: 0a 2f 2f 2f 2f 7b 20 43 72 65 61 74 65 4d 65 74 .////{ CreateMet
1b40: 68 6f 64 53 74 75 62 52 65 66 61 63 74 6f 72 69 hodStubRefactori
1b50: 6e 67 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e 63 ng..////....func
1b60: 74 69 6f 6e 20 43 72 65 61 74 65 4d 65 74 68 6f tion CreateMetho
1b70: 64 53 74 75 62 52 65 66 61 63 74 6f 72 69 6e 67 dStubRefactoring
1b80: 28 6d 6f 64 75 6c 65 29 20 7b 0d 0a 0d 0a 20 20 (module) {....
1b90: 20 20 74 68 69 73 2e 6d 6f 64 75 6c 65 20 3d 20 this.module =
1ba0: 6d 6f 64 75 6c 65 3b 0d 0a 20 20 20 20 74 68 69 module;.. thi
1bb0: 73 2e 74 65 78 74 57 69 6e 64 6f 77 20 3d 20 74 s.textWindow = t
1bc0: 68 69 73 2e 6d 6f 64 75 6c 65 2e 74 65 78 74 57 his.module.textW
1bd0: 69 6e 64 6f 77 3b 0d 0a 7d 0d 0a 0d 0a 43 72 65 indow;..}....Cre
1be0: 61 74 65 4d 65 74 68 6f 64 53 74 75 62 52 65 66 ateMethodStubRef
1bf0: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 actoring.prototy
1c00: 70 65 2e 72 65 66 61 63 74 6f 72 20 3d 20 66 75 pe.refactor = fu
1c10: 6e 63 74 69 6f 6e 20 28 73 65 6c 65 63 74 65 64 nction (selected
1c20: 54 65 78 74 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 Text) {.. ..
1c30: 20 20 20 76 61 72 20 6d 65 74 68 6f 64 4e 61 6d var methodNam
1c40: 65 2c 20 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 e, methodSignatu
1c50: 72 65 2c 20 6d 61 74 63 68 65 73 3b 0d 0a 20 20 re, matches;..
1c60: 20 20 0d 0a 20 20 20 20 6d 65 74 68 6f 64 4e 61 .. methodNa
1c70: 6d 65 20 3d 20 74 68 69 73 2e 74 65 78 74 57 69 me = this.textWi
1c80: 6e 64 6f 77 2e 47 65 74 57 6f 72 64 55 6e 64 65 ndow.GetWordUnde
1c90: 72 43 75 72 73 6f 72 28 29 3b 0d 0a 20 20 20 20 rCursor();..
1ca0: 69 66 20 28 21 6d 65 74 68 6f 64 4e 61 6d 65 29 if (!methodName)
1cb0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
1cc0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 ;.. .. var
1cd0: 20 6d 65 74 68 6f 64 5f 63 61 6c 6c 5f 70 72 6f method_call_pro
1ce0: 63 20 3d 20 6e 65 77 20 52 65 67 45 78 70 28 22 c = new RegExp("
1cf0: 28 3f 3a 3b 5c 5c 73 2a 7c 5e 5c 5c 73 2a 29 22 (?:;\\s*|^\\s*)"
1d00: 20 2b 20 6d 65 74 68 6f 64 4e 61 6d 65 20 2b 20 + methodName +
1d10: 27 28 5c 5c 28 2e 2b 3f 5c 5c 29 29 27 29 3b 0d '(\\(.+?\\))');.
1d20: 0a 20 20 20 20 76 61 72 20 6d 65 74 68 6f 64 5f . var method_
1d30: 63 61 6c 6c 5f 66 75 6e 63 20 3d 20 6e 65 77 20 call_func = new
1d40: 52 65 67 45 78 70 28 6d 65 74 68 6f 64 4e 61 6d RegExp(methodNam
1d50: 65 20 2b 20 22 28 5c 5c 28 2e 2a 3f 5c 5c 29 29 e + "(\\(.*?\\))
1d60: 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 ");.. .. v
1d70: 61 72 20 6c 69 6e 65 20 3d 20 74 68 69 73 2e 74 ar line = this.t
1d80: 65 78 74 57 69 6e 64 6f 77 2e 47 65 74 4c 69 6e extWindow.GetLin
1d90: 65 28 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f e(this.textWindo
1da0: 77 2e 47 65 74 43 61 72 65 74 50 6f 73 28 29 2e w.GetCaretPos().
1db0: 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20 20 20 beginRow);..
1dc0: 0d 0a 20 20 20 20 76 61 72 20 6d 61 74 63 68 65 .. var matche
1dd0: 73 20 3d 20 6c 69 6e 65 2e 6d 61 74 63 68 28 6d s = line.match(m
1de0: 65 74 68 6f 64 5f 63 61 6c 6c 5f 70 72 6f 63 29 ethod_call_proc)
1df0: 3b 0d 0a 20 20 20 20 76 61 72 20 69 73 50 72 6f ;.. var isPro
1e00: 63 20 3d 20 28 6d 61 74 63 68 65 73 20 21 3d 20 c = (matches !=
1e10: 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 null);.. ..
1e20: 20 20 69 66 20 28 21 69 73 50 72 6f 63 29 0d 0a if (!isProc)..
1e30: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 6d {.. m
1e40: 61 74 63 68 65 73 20 3d 20 6c 69 6e 65 2e 6d 61 atches = line.ma
1e50: 74 63 68 28 6d 65 74 68 6f 64 5f 63 61 6c 6c 5f tch(method_call_
1e60: 66 75 6e 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 func);..
1e70: 69 66 20 28 21 6d 61 74 63 68 65 73 29 0d 0a 20 if (!matches)..
1e80: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
1e90: 6e 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d n;.. }.. .
1ea0: 0a 20 20 20 20 6d 65 74 68 6f 64 53 69 67 6e 61 . methodSigna
1eb0: 74 75 72 65 20 3d 20 6d 65 74 68 6f 64 4e 61 6d ture = methodNam
1ec0: 65 20 2b 20 6d 61 74 63 68 65 73 5b 31 5d 3b 0d e + matches[1];.
1ed0: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70 . .. var p
1ee0: 72 6f 63 54 65 6d 70 6c 61 74 65 20 3d 20 22 5c rocTemplate = "\
1ef0: 6e 22 20 20 0d 0a 20 20 20 20 2b 20 22 d0 9f d1 n" .. + "...
1f00: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 20 ...............
1f10: d0 98 d0 bc d1 8f d0 9c d0 b5 d1 82 d0 be d0 b4 ................
1f20: d0 b0 28 29 5c 6e 22 0d 0a 20 20 20 20 2b 20 22 ..()\n".. + "
1f30: 5c 74 2f 2f 54 4f 44 4f 3a 20 d0 94 d0 be d0 b1 \t//TODO: ......
1f40: d0 b0 d0 b2 d1 8c d1 82 d0 b5 20 d0 b8 d1 81 d1 .......... .....
1f50: 85 d0 be d0 b4 d0 bd d1 8b d0 b9 20 d0 ba d0 be ........... ....
1f60: d0 b4 20 d0 bf d1 80 d0 be d1 86 d0 b5 d0 b4 d1 .. .............
1f70: 83 d1 80 d1 8b 2e 5c 6e 22 20 0d 0a 20 20 20 20 ......\n" ..
1f80: 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1 + ".............
1f90: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 5c ...............\
1fa0: 6e 22 3b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 66 n";.... var f
1fb0: 75 6e 63 54 65 6d 70 6c 61 74 65 20 3d 20 22 5c uncTemplate = "\
1fc0: 6e 22 20 0d 0a 20 20 20 20 2b 20 22 d0 a4 d1 83 n" .. + "....
1fd0: d0 bd d0 ba d1 86 d0 b8 d1 8f 20 d0 98 d0 bc d1 .......... .....
1fe0: 8f d0 9c d0 b5 d1 82 d0 be d0 b4 d0 b0 28 29 5c .............()\
1ff0: 6e 22 0d 0a 20 20 20 20 2b 20 22 5c 74 2f 2f 54 n".. + "\t//T
2000: 4f 44 4f 3a 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d1 ODO: ...........
2010: 8c d1 82 d0 b5 20 d0 b8 d1 81 d1 85 d0 be d0 b4 ..... ..........
2020: d0 bd d1 8b d0 b9 20 d0 ba d0 be d0 b4 20 d1 84 ...... ...... ..
2030: d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 2e 5c 6e 22 .............\n"
2040: 20 0d 0a 20 20 20 20 2b 20 22 5c 74 d0 92 d0 be .. + "\t....
2050: d0 b7 d0 b2 d1 80 d0 b0 d1 82 20 d0 9d d0 b5 d0 .......... .....
2060: be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 ................
2070: bd d0 be 3b 5c 6e 22 0d 0a 20 20 20 20 2b 20 22 ...;\n".. + "
2080: d0 9a d0 be d0 bd d0 b5 d1 86 d0 a4 d1 83 d0 bd ................
2090: d0 ba d1 86 d0 b8 d0 b8 5c 6e 22 3b 0d 0a 20 20 ........\n";..
20a0: 20 20 0d 0a 20 20 20 20 76 61 72 20 73 74 75 62 .. var stub
20b0: 43 6f 64 65 20 3d 20 69 73 50 72 6f 63 20 3f 20 Code = isProc ?
20c0: 70 72 6f 63 54 65 6d 70 6c 61 74 65 20 3a 20 66 procTemplate : f
20d0: 75 6e 63 54 65 6d 70 6c 61 74 65 3b 0d 0a 20 20 uncTemplate;..
20e0: 20 20 73 74 75 62 43 6f 64 65 20 3d 20 73 74 75 stubCode = stu
20f0: 62 43 6f 64 65 2e 72 65 70 6c 61 63 65 28 27 d0 bCode.replace('.
2100: 98 d0 bc d1 8f d0 9c d0 b5 d1 82 d0 be d0 b4 d0 ................
2110: b0 28 29 27 2c 20 6d 65 74 68 6f 64 53 69 67 6e .()', methodSign
2120: 61 74 75 72 65 29 3b 0d 0a 20 20 20 20 0d 0a 20 ature);.. ..
2130: 20 20 20 76 61 72 20 6d 65 74 68 6f 64 4c 69 73 var methodLis
2140: 74 20 3d 20 6e 65 77 20 4d 65 74 68 6f 64 4c 69 t = new MethodLi
2150: 73 74 46 6f 72 6d 28 74 68 69 73 2e 6d 6f 64 75 stForm(this.modu
2160: 6c 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 6d 65 le);.. if (me
2170: 74 68 6f 64 4c 69 73 74 2e 73 65 6c 65 63 74 4d thodList.selectM
2180: 65 74 68 6f 64 28 29 29 0d 0a 20 20 20 20 7b 0d ethod()).. {.
2190: 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 6e 73 . var ins
21a0: 65 72 74 4c 69 6e 65 49 6e 64 65 78 20 3d 20 6d ertLineIndex = m
21b0: 65 74 68 6f 64 4c 69 73 74 2e 53 65 6c 65 63 74 ethodList.Select
21c0: 65 64 4d 65 74 68 6f 64 2e 45 6e 64 4c 69 6e 65 edMethod.EndLine
21d0: 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 74 + 1;.. t
21e0: 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e 49 his.textWindow.I
21f0: 6e 73 65 72 74 4c 69 6e 65 28 69 6e 73 65 72 74 nsertLine(insert
2200: 4c 69 6e 65 49 6e 64 65 78 20 2b 20 31 2c 20 73 LineIndex + 1, s
2210: 74 75 62 43 6f 64 65 29 3b 0d 0a 20 20 20 20 20 tubCode);..
2220: 20 20 20 74 68 69 73 2e 74 65 78 74 57 69 6e 64 this.textWind
2230: 6f 77 2e 53 65 74 43 61 72 65 74 50 6f 73 28 69 ow.SetCaretPos(i
2240: 6e 73 65 72 74 4c 69 6e 65 49 6e 64 65 78 20 2b nsertLineIndex +
2250: 20 33 2c 20 31 29 3b 0d 0a 20 20 20 20 7d 0d 0a 3, 1);.. }..
2260: 7d 0d 0a 0d 0a 2f 2f 2f 2f 7d 20 43 72 65 61 74 }....////} Creat
2270: 65 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 eMethodRefactori
2280: 6e 67 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ng....//////////
2290: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
22a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
22b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
22c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
22d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a //////////////..
22e0: 2f 2f 2f 2f 7b 20 45 78 74 72 61 63 74 4d 65 74 ////{ ExtractMet
22f0: 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 0d 0a hodRefactoring..
2300: 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e ////....function
2310: 20 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 ExtractMethodRe
2320: 66 61 63 74 6f 72 69 6e 67 28 6d 6f 64 75 6c 65 factoring(module
2330: 29 20 7b 0d 0a 20 20 20 20 74 68 69 73 2e 6d 6f ) {.. this.mo
2340: 64 75 6c 65 20 3d 20 6d 6f 64 75 6c 65 3b 0d 0a dule = module;..
2350: 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 20 3d 20 this.form =
2360: 6c 6f 61 64 53 63 72 69 70 74 46 6f 72 6d 28 53 loadScriptForm(S
2370: 65 6c 66 53 63 72 69 70 74 2e 66 75 6c 6c 50 61 elfScript.fullPa
2380: 74 68 2e 72 65 70 6c 61 63 65 28 2f 5c 2e 6a 73 th.replace(/\.js
2390: 24 2f 2c 20 27 2e 65 78 74 72 61 63 74 4d 65 74 $/, '.extractMet
23a0: 68 6f 64 2e 73 73 66 27 29 2c 20 74 68 69 73 29 hod.ssf'), this)
23b0: 3b 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e ; .. this.
23c0: 50 61 72 61 6d 73 20 3d 20 74 68 69 73 2e 66 6f Params = this.fo
23d0: 72 6d 2e 50 61 72 61 6d 73 3b 0d 0a 20 20 20 20 rm.Params;..
23e0: 74 68 69 73 2e 52 65 74 75 72 6e 56 61 6c 75 65 this.ReturnValue
23f0: 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 52 65 74 = this.form.Ret
2400: 75 72 6e 56 61 6c 75 65 3b 0d 0a 20 20 20 20 74 urnValue;.. t
2410: 68 69 73 2e 53 69 67 6e 61 74 75 72 65 50 72 65 his.SignaturePre
2420: 76 69 65 77 20 3d 20 74 68 69 73 2e 66 6f 72 6d view = this.form
2430: 2e 53 69 67 6e 61 74 75 72 65 50 72 65 76 69 65 .SignaturePrevie
2440: 77 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 w;..}....Extract
2450: 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e MethodRefactorin
2460: 67 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 74 56 g.prototype.getV
2470: 61 72 52 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 arRe = function
2480: 28 76 61 72 4e 61 6d 65 29 20 7b 0d 0a 20 20 20 (varName) {..
2490: 20 72 65 74 75 72 6e 20 6e 65 77 20 52 65 67 45 return new RegE
24a0: 78 70 28 22 28 5b 5e 5c 5c 77 5c 5c 64 d0 90 2d xp("([^\\w\\d..-
24b0: d1 8f 5c 2e 5d 7c 5e 29 22 20 2b 20 76 61 72 4e ..\.]|^)" + varN
24c0: 61 6d 65 20 2b 20 22 28 5b 5e 5c 5c 77 5c 5c 64 ame + "([^\\w\\d
24d0: d0 90 2d d1 8f 5d 7c 24 29 22 2c 20 27 69 27 29 ..-..]|$)", 'i')
24e0: 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d ;..}....ExtractM
24f0: 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 ethodRefactoring
2500: 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 66 61 63 .prototype.refac
2510: 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 tor = function (
2520: 73 65 6c 65 63 74 65 64 54 65 78 74 29 20 7b 0d selectedText) {.
2530: 0a 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 20 3d ... var sel =
2540: 20 74 68 69 73 2e 6d 6f 64 75 6c 65 2e 74 65 78 this.module.tex
2550: 74 57 69 6e 64 6f 77 2e 47 65 74 53 65 6c 65 63 tWindow.GetSelec
2560: 74 69 6f 6e 28 29 3b 0d 0a 0d 0a 20 20 20 20 2f tion();.... /
2570: 2f 20 30 2e 20 d0 9e d0 bf d1 80 d0 b5 d0 b4 d0 / 0. ...........
2580: b5 d0 bb d0 b8 d1 82 d1 8c 20 d0 bf d0 b5 d1 80 ......... ......
2590: d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b5 20 d0 .............. .
25a0: b2 d0 bd d1 83 d1 82 d1 80 d0 b8 20 d0 b2 d1 8b ........... ....
25b0: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 be d0 b3 ................
25c0: d0 be 20 d0 b1 d0 bb d0 be d0 ba d0 b0 20 d0 ba .. .......... ..
25d0: d0 be d0 b4 d0 b0 20 28 d1 80 d0 b0 d1 81 d0 bf ...... (........
25e0: d0 b0 d1 80 d1 81 d0 b8 d1 82 d1 8c 20 d0 b5 d0 ............ ...
25f0: b3 d0 be 29 2e 0d 0a 20 20 20 20 76 61 72 20 65 ...)... var e
2600: 78 74 43 6f 6e 74 65 78 74 20 3d 20 74 68 69 73 xtContext = this
2610: 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65 78 74 28 .getCodeContext(
2620: 73 65 6c 65 63 74 65 64 54 65 78 74 29 3b 0d 0a selectedText);..
2630: 20 20 20 20 76 61 72 20 65 78 74 56 61 72 73 20 var extVars
2640: 3d 20 65 78 74 43 6f 6e 74 65 78 74 2e 41 75 74 = extContext.Aut
2650: 6f 6d 61 74 69 63 56 61 72 73 3b 0d 0a 0d 0a 20 omaticVars;....
2660: 20 20 20 2f 2f 20 31 2e 20 d0 9e d0 bf d1 80 d0 // 1. .......
2670: b5 d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c 20 d0 bb ............. ..
2680: d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b5 ................
2690: 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 ...............
26a0: bd d1 8b d0 b5 20 d1 87 d0 b0 d1 81 d1 82 d0 b8 ..... ..........
26b0: 20 d0 ba d0 be d0 b4 d0 b0 20 d0 bc d0 b5 d1 82 ........ ......
26c0: d0 be d0 b4 d0 b0 20 d0 b2 d1 8b d1 88 d0 b5 20 ...... ........
26d0: d0 b2 d1 8b d0 b4 d0 b5 d0 bb d1 8f d0 b5 d0 bc ................
26e0: d0 be d0 b3 d0 be 20 d0 ba d0 be d0 b4 d0 b0 2e ...... .........
26f0: 0d 0a 20 20 20 20 2f 2f 20 32 2e 20 d0 9e d0 bf .. // 2. ....
2700: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c ................
2710: 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 ...............
2720: 80 d1 8b 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 b0 ... ............
2730: 2c 20 d0 b8 d0 b7 20 d0 ba d0 be d1 82 d0 be d1 , .... .........
2740: 80 d0 be d0 b3 d0 be 20 d0 b2 d1 8b d0 b4 d0 b5 ....... ........
2750: d0 bb d1 8f d0 b5 d1 82 d1 81 d1 8f 20 d0 ba d0 ............ ...
2760: be d0 b4 2e 0d 0a 20 20 20 20 76 61 72 20 63 75 ...... var cu
2770: 72 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 6d rMethod = this.m
2780: 6f 64 75 6c 65 2e 67 65 74 41 63 74 69 76 65 4c odule.getActiveL
2790: 69 6e 65 4d 65 74 68 6f 64 28 29 3b 0d 0a 20 20 ineMethod();..
27a0: 20 20 0d 0a 20 20 20 20 76 61 72 20 63 6f 64 65 .. var code
27b0: 42 65 66 6f 72 65 20 3d 20 74 68 69 73 2e 6d 6f Before = this.mo
27c0: 64 75 6c 65 2e 74 65 78 74 57 69 6e 64 6f 77 2e dule.textWindow.
27d0: 52 61 6e 67 65 28 63 75 72 4d 65 74 68 6f 64 2e Range(curMethod.
27e0: 53 74 61 72 74 4c 69 6e 65 2c 20 31 2c 20 73 65 StartLine, 1, se
27f0: 6c 2e 62 65 67 69 6e 52 6f 77 2d 31 29 2e 47 65 l.beginRow-1).Ge
2800: 74 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 76 61 tText();.. va
2810: 72 20 63 6f 6e 74 65 78 74 42 65 66 6f 72 65 20 r contextBefore
2820: 3d 20 74 68 69 73 2e 67 65 74 43 6f 64 65 43 6f = this.getCodeCo
2830: 6e 74 65 78 74 28 63 6f 64 65 42 65 66 6f 72 65 ntext(codeBefore
2840: 29 3b 0d 0a 0d 0a 20 20 20 20 2f 2f 20 33 2e 20 );.... // 3.
2850: d0 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b8 ................
2860: d1 82 d1 8c 2c 20 d0 ba d0 b0 d0 ba d0 b8 d0 b5 ...., ..........
2870: 20 31 2b 32 20 d0 b8 d0 bd d0 b8 d1 86 d0 b8 d0 1+2 ...........
2880: b0 d0 bb d0 b8 d0 b7 d0 b8 d1 80 d1 83 d1 8e d1 ................
2890: 82 d1 81 d1 8f 20 d0 b2 20 30 20 28 41 75 74 6f ..... .. 0 (Auto
28a0: 6d 61 74 69 63 56 61 72 73 29 2c 20 d0 b0 20 d0 maticVars), .. .
28b0: ba d0 b0 d0 ba d0 b8 d0 b5 20 d0 b8 d1 81 d0 bf ......... ......
28c0: d0 be d0 bb d1 8c d0 b7 d1 83 d1 8e d1 82 d1 81 ................
28d0: d1 8f 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 .. .. this.fi
28e0: 6c 6c 50 61 72 61 6d 73 28 63 6f 6e 74 65 78 74 llParams(context
28f0: 42 65 66 6f 72 65 2e 41 75 74 6f 6d 61 74 69 63 Before.Automatic
2900: 56 61 72 73 2c 20 65 78 74 56 61 72 73 2c 20 73 Vars, extVars, s
2910: 65 6c 65 63 74 65 64 54 65 78 74 29 3b 20 20 20 electedText);
2920: 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 6c 6c .. this.fill
2930: 50 61 72 61 6d 73 28 63 75 72 4d 65 74 68 6f 64 Params(curMethod
2940: 2e 50 61 72 61 6d 73 2c 20 65 78 74 56 61 72 73 .Params, extVars
2950: 2c 20 73 65 6c 65 63 74 65 64 54 65 78 74 29 3b , selectedText);
2960: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 0d 0a .. ..
2970: 20 20 20 20 2f 2f 20 34 2e 20 d0 a2 d0 b5 20 d0 // 4. .... .
2980: bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 ................
2990: 8b d0 b5 2c 20 d0 ba d0 be d1 82 d0 be d1 80 d1 ..., ...........
29a0: 8b d0 b5 20 d0 b8 d1 81 d0 bf d0 be d0 bb d1 8c ... ............
29b0: d0 b7 d1 83 d1 8e d1 82 d1 81 d1 8f 20 d0 b2 20 ............ ..
29c0: d0 be d1 81 d1 82 d0 b0 d0 bb d1 8c d0 bd d0 be ................
29d0: d0 b9 20 d1 87 d0 b0 d1 81 d1 82 d0 b8 20 d0 ba .. .......... ..
29e0: d0 be d0 b4 d0 b0 20 2d 20 d0 b2 d0 be d0 b7 d0 ...... - .......
29f0: b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc d1 8b d0 ................
2a00: b5 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 . ..............
2a10: d1 8f 2e 0d 0a 20 20 20 20 76 61 72 20 63 6f 64 ..... var cod
2a20: 65 41 66 74 65 72 20 3d 20 74 68 69 73 2e 6d 6f eAfter = this.mo
2a30: 64 75 6c 65 2e 74 65 78 74 57 69 6e 64 6f 77 2e dule.textWindow.
2a40: 52 61 6e 67 65 28 73 65 6c 2e 65 6e 64 52 6f 77 Range(sel.endRow
2a50: 20 2b 20 31 2c 20 31 2c 20 63 75 72 4d 65 74 68 + 1, 1, curMeth
2a60: 6f 64 2e 45 6e 64 4c 69 6e 65 29 2e 47 65 74 54 od.EndLine).GetT
2a70: 65 78 74 28 29 3b 0d 0a 20 20 20 20 76 61 72 20 ext();.. var
2a80: 63 6f 6e 74 65 78 74 41 66 74 65 72 20 3d 20 74 contextAfter = t
2a90: 68 69 73 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65 his.getCodeConte
2aa0: 78 74 28 63 6f 64 65 41 66 74 65 72 29 3b 0d 0a xt(codeAfter);..
2ab0: 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 .. this.f
2ac0: 69 6c 6c 52 65 74 75 72 6e 56 61 6c 75 65 73 28 illReturnValues(
2ad0: 63 6f 6e 74 65 78 74 41 66 74 65 72 2e 41 75 74 contextAfter.Aut
2ae0: 6f 6d 61 74 69 63 56 61 72 73 2c 20 65 78 74 56 omaticVars, extV
2af0: 61 72 73 2c 20 63 6f 64 65 41 66 74 65 72 29 3b ars, codeAfter);
2b00: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 .. ..
2b10: 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 44 6f if (this.form.Do
2b20: 4d 6f 64 61 6c 28 29 29 0d 0a 20 20 20 20 20 20 Modal())..
2b30: 20 20 74 68 69 73 2e 65 78 74 72 61 63 74 4d 65 this.extractMe
2b40: 74 68 6f 64 28 73 65 6c 65 63 74 65 64 54 65 78 thod(selectedTex
2b50: 74 29 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 t);..}....Extrac
2b60: 74 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 tMethodRefactori
2b70: 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e 66 69 6c ng.prototype.fil
2b80: 6c 50 61 72 61 6d 73 20 3d 20 66 75 6e 63 74 69 lParams = functi
2b90: 6f 6e 20 28 65 78 74 41 72 67 73 2c 20 65 78 74 on (extArgs, ext
2ba0: 56 61 72 73 2c 20 73 6f 75 72 63 65 29 20 7b 0d Vars, source) {.
2bb0: 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d . for (var i=
2bc0: 30 3b 20 69 3c 65 78 74 41 72 67 73 2e 6c 65 6e 0; i<extArgs.len
2bd0: 67 74 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b gth; i++).. {
2be0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 76 61 .. var va
2bf0: 72 4e 61 6d 65 20 3d 20 65 78 74 41 72 67 73 5b rName = extArgs[
2c00: 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 i];.. var
2c10: 20 72 65 20 3d 20 74 68 69 73 2e 67 65 74 56 61 re = this.getVa
2c20: 72 52 65 28 76 61 72 4e 61 6d 65 29 3b 0d 0a 20 rRe(varName);..
2c30: 20 20 20 20 20 20 20 69 66 20 28 72 65 2e 74 65 if (re.te
2c40: 73 74 28 73 6f 75 72 63 65 29 20 26 26 20 65 78 st(source) && ex
2c50: 74 56 61 72 73 2e 69 6e 64 65 78 4f 66 28 76 61 tVars.indexOf(va
2c60: 72 4e 61 6d 65 29 20 3d 3d 20 2d 31 29 0d 0a 20 rName) == -1)..
2c70: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
2c80: 61 64 64 50 61 72 61 6d 28 76 61 72 4e 61 6d 65 addParam(varName
2c90: 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 29 3b 0d , true, false);.
2ca0: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 45 78 74 . }..}....Ext
2cb0: 72 61 63 74 4d 65 74 68 6f 64 52 65 66 61 63 74 ractMethodRefact
2cc0: 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e oring.prototype.
2cd0: 66 69 6c 6c 52 65 74 75 72 6e 56 61 6c 75 65 73 fillReturnValues
2ce0: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 65 78 74 = function (ext
2cf0: 41 72 67 73 2c 20 65 78 74 56 61 72 73 2c 20 73 Args, extVars, s
2d00: 6f 75 72 63 65 29 20 7b 0d 0a 20 20 20 20 2f 2f ource) {.. //
2d10: 64 65 62 75 67 67 65 72 3b 0d 0a 20 20 20 20 66 debugger;.. f
2d20: 6f 72 20 28 76 61 72 20 69 3d 30 3b 20 69 3c 65 or (var i=0; i<e
2d30: 78 74 56 61 72 73 2e 6c 65 6e 67 74 68 3b 20 69 xtVars.length; i
2d40: 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 ++).. {..
2d50: 20 20 20 20 76 61 72 20 76 61 72 4e 61 6d 65 20 var varName
2d60: 3d 20 65 78 74 56 61 72 73 5b 69 5d 3b 0d 0a 20 = extVars[i];..
2d70: 20 20 20 20 20 20 20 76 61 72 20 72 65 20 3d 20 var re =
2d80: 74 68 69 73 2e 67 65 74 56 61 72 52 65 28 76 61 this.getVarRe(va
2d90: 72 4e 61 6d 65 29 3b 0d 0a 20 20 20 20 20 20 20 rName);..
2da0: 20 69 66 20 28 72 65 2e 74 65 73 74 28 73 6f 75 if (re.test(sou
2db0: 72 63 65 29 20 26 26 20 65 78 74 41 72 67 73 2e rce) && extArgs.
2dc0: 69 6e 64 65 78 4f 66 28 76 61 72 4e 61 6d 65 29 indexOf(varName)
2dd0: 20 3d 3d 20 2d 31 29 0d 0a 20 20 20 20 20 20 20 == -1)..
2de0: 20 20 20 20 20 74 68 69 73 2e 61 64 64 52 65 74 this.addRet
2df0: 75 72 6e 56 61 6c 75 65 28 76 61 72 4e 61 6d 65 urnValue(varName
2e00: 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a );.. }..}....
2e10: 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66 ExtractMethodRef
2e20: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 actoring.prototy
2e30: 70 65 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65 78 pe.getCodeContex
2e40: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 63 6f t = function (co
2e50: 64 65 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 65 de) {.. var e
2e60: 78 74 72 61 63 74 65 64 43 6f 64 65 20 3d 20 22 xtractedCode = "
2e70: d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 ................
2e80: d0 b0 20 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 .. .............
2e90: bd d0 bd d1 8b d0 b9 d0 9c d0 b5 d1 82 d0 be d0 ................
2ea0: b4 28 29 5c 6e 22 20 2b 20 63 6f 64 65 20 2b 20 .()\n" + code +
2eb0: 22 5c 6e d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1 "\n.............
2ec0: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 22 ..............."
2ed0: 3b 0d 0a 20 20 20 20 76 61 72 20 65 78 74 72 61 ;.. var extra
2ee0: 63 74 65 64 43 6f 6e 74 65 78 74 20 3d 20 53 79 ctedContext = Sy
2ef0: 6e 74 61 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61 ntaxAnalysis.Ana
2f00: 6c 79 73 65 4d 6f 64 75 6c 65 28 65 78 74 72 61 lyseModule(extra
2f10: 63 74 65 64 43 6f 64 65 2c 20 66 61 6c 73 65 29 ctedCode, false)
2f20: 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 65 78 ;.. return ex
2f30: 74 72 61 63 74 65 64 43 6f 6e 74 65 78 74 2e 67 tractedContext.g
2f40: 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d 65 28 22 etMethodByName("
2f50: d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd ................
2f60: d1 8b d0 b9 d0 9c d0 b5 d1 82 d0 be d0 b4 22 29 ..............")
2f70: 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d ;..}....ExtractM
2f80: 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 ethodRefactoring
2f90: 2e 70 72 6f 74 6f 74 79 70 65 2e 61 64 64 50 61 .prototype.addPa
2fa0: 72 61 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ram = function (
2fb0: 70 61 72 61 6d 4e 61 6d 65 2c 20 69 73 50 61 72 paramName, isPar
2fc0: 61 6d 2c 20 69 73 56 61 6c 29 20 7b 0d 0a 20 20 am, isVal) {..
2fd0: 20 20 69 66 20 28 21 74 68 69 73 2e 50 61 72 61 if (!this.Para
2fe0: 6d 73 2e 46 69 6e 64 28 70 61 72 61 6d 4e 61 6d ms.Find(paramNam
2ff0: 65 2c 20 27 4e 61 6d 65 27 29 29 0d 0a 20 20 20 e, 'Name'))..
3000: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 {.. var
3010: 70 61 72 61 6d 52 6f 77 20 3d 20 74 68 69 73 2e paramRow = this.
3020: 50 61 72 61 6d 73 2e 41 64 64 28 29 3b 0d 0a 20 Params.Add();..
3030: 20 20 20 20 20 20 20 70 61 72 61 6d 52 6f 77 2e paramRow.
3040: 4e 61 6d 65 20 3d 20 70 61 72 61 6d 4e 61 6d 65 Name = paramName
3050: 3b 0d 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d ;.. param
3060: 52 6f 77 2e 69 73 50 61 72 61 6d 20 3d 20 69 73 Row.isParam = is
3070: 50 61 72 61 6d 20 3f 20 74 72 75 65 20 3a 20 66 Param ? true : f
3080: 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 70 alse;.. p
3090: 61 72 61 6d 52 6f 77 2e 69 73 56 61 6c 20 3d 20 aramRow.isVal =
30a0: 69 73 56 61 6c 20 3f 20 74 72 75 65 20 3a 20 66 isVal ? true : f
30b0: 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d alse;.. }..}.
30c0: 0a 0d 0a 45 78 74 72 61 63 74 4d 65 74 68 6f 64 ...ExtractMethod
30d0: 52 65 66 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 Refactoring.prot
30e0: 6f 74 79 70 65 2e 61 64 64 52 65 74 75 72 6e 56 otype.addReturnV
30f0: 61 6c 75 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 alue = function
3100: 28 76 61 72 4e 61 6d 65 29 20 7b 0d 0a 20 20 20 (varName) {..
3110: 20 69 66 20 28 21 74 68 69 73 2e 52 65 74 75 72 if (!this.Retur
3120: 6e 56 61 6c 75 65 2e 46 69 6e 64 28 76 61 72 4e nValue.Find(varN
3130: 61 6d 65 2c 20 27 4e 61 6d 65 27 29 29 0d 0a 20 ame, 'Name'))..
3140: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 {.. va
3150: 72 20 72 6f 77 20 3d 20 74 68 69 73 2e 52 65 74 r row = this.Ret
3160: 75 72 6e 56 61 6c 75 65 2e 41 64 64 28 29 3b 0d urnValue.Add();.
3170: 0a 20 20 20 20 20 20 20 20 72 6f 77 2e 4e 61 6d . row.Nam
3180: 65 20 3d 20 76 61 72 4e 61 6d 65 3b 0d 0a 20 20 e = varName;..
3190: 20 20 7d 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 }..}....Extrac
31a0: 74 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 tMethodRefactori
31b0: 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e 42 74 4f ng.prototype.BtO
31c0: 4b 43 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f KClick = functio
31d0: 6e 20 28 43 6f 6e 74 72 6f 6c 29 20 7b 0d 0a 0d n (Control) {...
31e0: 0a 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 66 . if (!this.f
31f0: 6f 72 6d 2e 4e 61 6d 65 2e 6d 61 74 63 68 28 2f orm.Name.match(/
3200: 5e 5b 5f 5c 77 d0 90 2d d1 8f 5d 28 3f 3a 5b 5f ^[_\w..-..](?:[_
3210: 5c 77 5c 64 d0 90 2d d1 8f 5d 2a 29 24 2f 29 29 \w\d..-..]*)$/))
3220: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .. {..
3230: 20 44 6f 4d 65 73 73 61 67 65 42 6f 78 28 22 d0 DoMessageBox(".
3240: 98 d0 bc d1 8f 20 d0 bc d0 b5 d1 82 d0 be d0 b4 ..... ..........
3250: d0 b0 20 d0 b4 d0 be d0 bb d0 b6 d0 bd d0 be 20 .. ............
3260: d0 b1 d1 8b d1 82 d1 8c 20 d0 bf d1 80 d0 b0 d0 ........ .......
3270: b2 d0 b8 d0 bb d1 8c d0 bd d1 8b d0 bc 20 d0 b8 ............. ..
3280: d0 b4 d0 b5 d0 bd d1 82 d0 b8 d1 84 d0 b8 d0 ba ................
3290: d0 b0 d1 82 d0 be d1 80 d0 be d0 bc 21 22 29 3b ............!");
32a0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
32b0: 3b 0d 0a 20 20 20 20 7d 20 20 20 20 0d 0a 20 20 ;.. } ..
32c0: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 .. this.for
32d0: 6d 2e 43 6c 6f 73 65 28 74 72 75 65 29 3b 0d 0a m.Close(true);..
32e0: 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d 65 74 68 }....ExtractMeth
32f0: 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 2e 70 72 odRefactoring.pr
3300: 6f 74 6f 74 79 70 65 2e 42 74 43 61 6e 63 65 6c ototype.BtCancel
3310: 43 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e Click = function
3320: 20 28 43 6f 6e 74 72 6f 6c 29 20 7b 0d 0a 20 20 (Control) {..
3330: 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6c 6f 73 this.form.Clos
3340: 65 28 66 61 6c 73 65 29 3b 0d 0a 7d 0d 0a 0d 0a e(false);..}....
3350: 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66 ExtractMethodRef
3360: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 actoring.prototy
3370: 70 65 2e 65 78 74 72 61 63 74 4d 65 74 68 6f 64 pe.extractMethod
3380: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 6f 75 72 = function(sour
3390: 63 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 ce) {.... var
33a0: 20 74 77 20 3d 20 74 68 69 73 2e 6d 6f 64 75 6c tw = this.modul
33b0: 65 2e 74 65 78 74 57 69 6e 64 6f 77 3b 0d 0a 20 e.textWindow;..
33c0: 20 20 20 76 61 72 20 73 65 6c 20 3d 20 74 77 2e var sel = tw.
33d0: 47 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0d GetSelection();.
33e0: 0a 0d 0a 20 20 20 20 76 61 72 20 70 61 72 61 6d ... var param
33f0: 73 20 3d 20 6e 65 77 20 41 72 72 61 79 3b 0d 0a s = new Array;..
3400: 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d 30 for (var i=0
3410: 3b 20 69 3c 74 68 69 73 2e 50 61 72 61 6d 73 2e ; i<this.Params.
3420: 43 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 0d 0a 20 Count(); i++)..
3430: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 {.. va
3440: 72 20 70 61 72 61 6d 52 6f 77 20 3d 20 74 68 69 r paramRow = thi
3450: 73 2e 50 61 72 61 6d 73 2e 47 65 74 28 69 29 3b s.Params.Get(i);
3460: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 61 .. if (pa
3470: 72 61 6d 52 6f 77 2e 49 73 50 61 72 61 6d 29 0d ramRow.IsParam).
3480: 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 . par
3490: 61 6d 73 2e 70 75 73 68 28 28 70 61 72 61 6d 52 ams.push((paramR
34a0: 6f 77 2e 49 73 56 61 6c 20 3f 20 27 d0 97 d0 bd ow.IsVal ? '....
34b0: d0 b0 d1 87 20 27 20 3a 20 27 27 29 20 2b 20 70 .... ' : '') + p
34c0: 61 72 61 6d 52 6f 77 2e 4e 61 6d 65 29 3b 0d 0a aramRow.Name);..
34d0: 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 }.. ..
34e0: 20 2f 2f 20 d0 9e d1 82 d0 ba d0 be d1 80 d1 80 // ............
34f0: d0 b5 d0 ba d1 82 d0 b8 d1 80 d1 83 d0 b5 d0 bc ................
3500: 20 d0 be d1 82 d1 81 d1 82 d1 83 d0 bf 2e 0d 0a ...............
3510: 20 20 20 20 76 61 72 20 73 72 63 49 6e 64 65 6e var srcInden
3520: 74 20 3d 20 53 74 72 69 6e 67 55 74 69 6c 73 2e t = StringUtils.
3530: 67 65 74 49 6e 64 65 6e 74 28 73 6f 75 72 63 65 getIndent(source
3540: 29 3b 0d 0a 20 20 20 20 73 6f 75 72 63 65 20 3d );.. source =
3550: 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 73 68 69 StringUtils.shi
3560: 66 74 4c 65 66 74 28 73 6f 75 72 63 65 2c 20 73 ftLeft(source, s
3570: 72 63 49 6e 64 65 6e 74 29 3b 0d 0a 20 20 20 20 rcIndent);..
3580: 73 6f 75 72 63 65 20 3d 20 53 74 72 69 6e 67 55 source = StringU
3590: 74 69 6c 73 2e 73 68 69 66 74 52 69 67 68 74 28 tils.shiftRight(
35a0: 73 6f 75 72 63 65 2c 20 22 5c 74 22 29 3b 0d 0a source, "\t");..
35b0: 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 a1 d1 .. // ...
35c0: 84 d0 be d1 80 d0 bc d0 b8 d1 80 d1 83 d0 b5 d0 ................
35d0: bc 20 d0 b8 d1 81 d1 85 d0 be d0 b4 d0 bd d1 8b . ..............
35e0: d0 b9 20 d0 ba d0 be d0 b4 20 d0 be d0 bf d1 80 .. ...... ......
35f0: d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d1 8f ................
3600: 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 ...............
3610: bd d0 be d0 b3 d0 be 20 d0 bc d0 b5 d1 82 d0 be ....... ........
3620: d0 b4 d0 b0 2e 0d 0a 20 20 20 20 76 61 72 20 6e ....... var n
3630: 65 77 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e ewMethod = this.
3640: 66 6f 72 6d 2e 49 73 50 72 6f 63 20 3f 20 27 d0 form.IsProc ? '.
3650: 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 ................
3660: b0 27 20 3a 20 27 d0 a4 d1 83 d0 bd d0 ba d1 86 .' : '..........
3670: d0 b8 d1 8f 27 3b 0d 0a 20 20 20 20 6e 65 77 4d ....';.. newM
3680: 65 74 68 6f 64 20 2b 3d 20 27 20 27 20 2b 20 74 ethod += ' ' + t
3690: 68 69 73 2e 66 6f 72 6d 2e 4e 61 6d 65 20 2b 20 his.form.Name +
36a0: 27 28 27 20 2b 20 70 61 72 61 6d 73 2e 6a 6f 69 '(' + params.joi
36b0: 6e 28 27 2c 20 27 29 20 2b 20 27 29 27 3b 0d 0a n(', ') + ')';..
36c0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 66 6f 72 if (this.for
36d0: 6d 2e 45 78 70 6f 72 74 65 64 29 0d 0a 20 20 20 m.Exported)..
36e0: 20 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b newMethod +
36f0: 3d 20 22 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80 = " ............
3700: d1 82 22 3b 20 20 20 0d 0a 20 20 20 20 20 20 20 .."; ..
3710: 20 0d 0a 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 .. newMethod
3720: 20 2b 3d 20 22 5c 6e 5c 6e 22 20 2b 20 74 68 69 += "\n\n" + thi
3730: 73 2e 70 72 65 70 61 72 65 53 6f 75 72 63 65 28 s.prepareSource(
3740: 73 6f 75 72 63 65 29 20 2b 20 22 5c 6e 5c 6e 22 source) + "\n\n"
3750: 3b 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 ; .. .. i
3760: 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 49 73 50 f (this.form.IsP
3770: 72 6f 63 29 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 roc) .. {..
3780: 20 20 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20 newMethod
3790: 2b 3d 20 27 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f += '............
37a0: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b ................
37b0: 27 3b 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 '; ..
37c0: 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 .. }..
37d0: 20 65 6c 73 65 0d 0a 20 20 20 20 7b 0d 0a 20 20 else.. {..
37e0: 20 20 20 20 20 20 76 61 72 20 72 65 74 56 61 6c var retVal
37f0: 20 3d 20 22 d0 9d d0 b5 d0 be d0 bf d1 80 d0 b5 = "............
3800: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 22 3b 0d 0a ............";..
3810: 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
3820: 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 43 6f 75 .ReturnValue.Cou
3830: 6e 74 28 29 20 3e 20 30 29 20 7b 0d 0a 20 20 20 nt() > 0) {..
3840: 20 20 20 20 20 20 20 20 20 72 65 74 56 61 6c 20 retVal
3850: 3d 20 74 68 69 73 2e 52 65 74 75 72 6e 56 61 6c = this.ReturnVal
3860: 75 65 2e 47 65 74 28 30 29 2e 4e 61 6d 65 3b 0d ue.Get(0).Name;.
3870: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
3880: 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b 3d newMethod +=
3890: 20 22 5c 74 d0 92 d0 be d0 b7 d0 b2 d1 80 d0 b0 "\t............
38a0: d1 82 20 22 20 2b 20 72 65 74 56 61 6c 20 2b 20 .. " + retVal +
38b0: 22 3b 22 3b 20 20 20 20 0d 0a 20 20 20 20 20 20 ";"; ..
38c0: 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b 3d 20 22 newMethod += "
38d0: 5c 6e 5c 6e 22 20 2b 20 27 d0 9a d0 be d0 bd d0 \n\n" + '.......
38e0: b5 d1 86 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 ................
38f0: b8 27 3b 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a .'; .. }..
3900: 0d 0a 20 20 20 20 2f 2f 20 d0 9f d0 be d0 bb d1 .. // .......
3910: 83 d1 87 d0 b8 d0 bc 20 d0 bc d0 b5 d1 82 d0 be ....... ........
3920: d0 b4 2c 20 d0 b2 d0 bd d1 83 d1 82 d1 80 d0 b8 .., ............
3930: 20 d0 ba d0 be d1 82 d0 be d1 80 d0 be d0 b3 d0 ...............
3940: be 20 d0 bc d1 8b 20 d0 bd d0 b0 d1 85 d0 be d0 . .... .........
3950: b4 d0 b8 d0 bc d1 81 d1 8f 2e 0d 0a 20 20 20 20 ............
3960: 76 61 72 20 63 75 72 4d 65 74 68 6f 64 20 3d 20 var curMethod =
3970: 74 68 69 73 2e 6d 6f 64 75 6c 65 2e 67 65 74 41 this.module.getA
3980: 63 74 69 76 65 4c 69 6e 65 4d 65 74 68 6f 64 28 ctiveLineMethod(
3990: 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f );.. .. //
39a0: 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d0 bc 20 ..............
39b0: d0 b2 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8c 20 .. ............
39c0: d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 ................
39d0: d0 bd d0 b8 d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0 ...... .........
39e0: bb d0 b5 d0 bd d0 bd d0 be d0 b3 d0 be 20 d0 bc ............. ..
39f0: d0 b5 d1 82 d0 be d0 b4 d0 b0 2e 0d 0a 20 20 20 .............
3a00: 20 74 77 2e 49 6e 73 65 72 74 4c 69 6e 65 28 63 tw.InsertLine(c
3a10: 75 72 4d 65 74 68 6f 64 2e 45 6e 64 4c 69 6e 65 urMethod.EndLine
3a20: 20 2b 20 32 2c 20 22 5c 6e 22 20 2b 20 6e 65 77 + 2, "\n" + new
3a30: 4d 65 74 68 6f 64 29 3b 0d 0a 20 20 20 20 20 20 Method);..
3a40: 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 97 d0 b0 d0 .. // .....
3a50: bc d0 b5 d0 bd d0 b8 d0 bc 20 d0 b2 d1 8b d0 b4 ......... ......
3a60: d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d0 .............. .
3a70: ba d0 be d0 b4 20 d0 bd d0 b0 20 d0 b2 d1 8b d0 ..... .... .....
3a80: b7 d0 be d0 b2 20 d0 bd d0 be d0 b2 d0 be d0 b3 ..... ..........
3a90: d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 b0 2e .. .............
3aa0: 0d 0a 20 20 20 20 76 61 72 20 6d 65 74 68 43 61 .. var methCa
3ab0: 6c 6c 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 4e ll = this.form.N
3ac0: 61 6d 65 20 2b 20 27 28 27 20 2b 20 70 61 72 61 ame + '(' + para
3ad0: 6d 73 2e 6a 6f 69 6e 28 27 2c 20 27 29 20 2b 20 ms.join(', ') +
3ae0: 22 29 3b 5c 6e 22 3b 0d 0a 20 20 20 20 0d 0a 20 ");\n";.. ..
3af0: 20 20 20 69 66 20 28 21 74 68 69 73 2e 66 6f 72 if (!this.for
3b00: 6d 2e 49 73 50 72 6f 63 20 26 26 20 74 68 69 73 m.IsProc && this
3b10: 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 43 6f 75 .ReturnValue.Cou
3b20: 6e 74 28 29 20 3e 20 30 29 20 7b 0d 0a 20 20 20 nt() > 0) {..
3b30: 20 20 20 20 20 72 65 74 56 61 6c 20 3d 20 74 68 retVal = th
3b40: 69 73 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 47 is.ReturnValue.G
3b50: 65 74 28 30 29 2e 4e 61 6d 65 3b 0d 0a 20 20 20 et(0).Name;..
3b60: 20 20 20 20 20 6d 65 74 68 43 61 6c 6c 20 3d 20 methCall =
3b70: 72 65 74 56 61 6c 20 2b 20 27 20 3d 20 27 20 2b retVal + ' = ' +
3b80: 20 6d 65 74 68 43 61 6c 6c 3b 0d 0a 20 20 20 20 methCall;..
3b90: 7d 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 } .. ..
3ba0: 20 74 77 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e tw.SetSelection
3bb0: 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 73 (sel.beginRow, s
3bc0: 65 6c 2e 62 65 67 69 6e 43 6f 6c 2c 20 73 65 6c el.beginCol, sel
3bd0: 2e 65 6e 64 52 6f 77 2c 20 73 65 6c 2e 65 6e 64 .endRow, sel.end
3be0: 43 6f 6c 29 3b 0d 0a 20 20 20 20 74 77 2e 53 65 Col);.. tw.Se
3bf0: 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 73 72 tSelectedText(sr
3c00: 63 49 6e 64 65 6e 74 20 2b 20 6d 65 74 68 43 61 cIndent + methCa
3c10: 6c 6c 29 3b 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 45 ll); ..}....E
3c20: 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66 61 xtractMethodRefa
3c30: 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 70 ctoring.prototyp
3c40: 65 2e 70 72 65 70 61 72 65 53 6f 75 72 63 65 20 e.prepareSource
3c50: 3d 20 66 75 6e 63 74 69 6f 6e 28 73 6f 75 72 63 = function(sourc
3c60: 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 e) {.... var
3c70: 6c 69 6e 65 73 20 3d 20 53 74 72 69 6e 67 55 74 lines = StringUt
3c80: 69 6c 73 2e 74 6f 4c 69 6e 65 73 28 73 6f 75 72 ils.toLines(sour
3c90: 63 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 6c 69 ce);.. if (li
3ca0: 6e 65 73 2e 6c 65 6e 67 74 68 20 3c 20 32 29 0d nes.length < 2).
3cb0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
3cc0: 73 6f 75 72 63 65 3b 0d 0a 20 20 20 20 20 20 20 source;..
3cd0: 20 0d 0a 20 20 20 20 76 61 72 20 73 74 61 72 74 .. var start
3ce0: 49 6e 64 65 78 20 3d 20 30 3b 0d 0a 20 20 20 20 Index = 0;..
3cf0: 77 68 69 6c 65 20 28 73 74 61 72 74 49 6e 64 65 while (startInde
3d00: 78 20 3c 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 x < lines.length
3d10: 20 26 26 20 6c 69 6e 65 73 5b 73 74 61 72 74 49 && lines[startI
3d20: 6e 64 65 78 5d 2e 6d 61 74 63 68 28 2f 5e 5c 73 ndex].match(/^\s
3d30: 2a 24 2f 29 29 0d 0a 20 20 20 20 20 20 20 20 73 *$/)).. s
3d40: 74 61 72 74 49 6e 64 65 78 2b 2b 3b 0d 0a 0d 0a tartIndex++;....
3d50: 20 20 20 20 76 61 72 20 65 6e 64 49 6e 64 65 78 var endIndex
3d60: 20 3d 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 20 = lines.length
3d70: 2d 20 31 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 - 1;.. while
3d80: 28 65 6e 64 49 6e 64 65 78 20 3e 20 30 20 26 26 (endIndex > 0 &&
3d90: 20 6c 69 6e 65 73 5b 65 6e 64 49 6e 64 65 78 5d lines[endIndex]
3da0: 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 24 2f 29 29 .match(/^\s*$/))
3db0: 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 49 6e 64 .. endInd
3dc0: 65 78 2d 2d 3b 0d 0a 20 20 20 20 20 20 20 20 0d ex--;.. .
3dd0: 0a 20 20 20 20 69 66 20 28 73 74 61 72 74 49 6e . if (startIn
3de0: 64 65 78 20 3c 3d 20 65 6e 64 49 6e 64 65 78 29 dex <= endIndex)
3df0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
3e00: 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 66 72 6f StringUtils.fro
3e10: 6d 4c 69 6e 65 73 28 6c 69 6e 65 73 2e 73 70 6c mLines(lines.spl
3e20: 69 63 65 28 73 74 61 72 74 49 6e 64 65 78 2c 20 ice(startIndex,
3e30: 65 6e 64 49 6e 64 65 78 20 2d 20 73 74 61 72 74 endIndex - start
3e40: 49 6e 64 65 78 20 2b 20 31 29 29 3b 0d 0a 20 20 Index + 1));..
3e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e60: 20 20 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75 .. retu
3e70: 72 6e 20 73 6f 75 72 63 65 3b 0d 0a 7d 0d 0a 0d rn source;..}...
3e80: 0a 2f 2f 2f 2f 7d 20 45 78 74 72 61 63 74 4d 65 .////} ExtractMe
3e90: 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 0d thodRefactoring.
3ea0: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f .../////////////
3eb0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
3ec0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
3ed0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
3ee0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
3ef0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f ///////////..///
3f00: 2f 7b 20 54 65 78 74 43 68 61 6e 67 65 73 57 61 /{ TextChangesWa
3f10: 74 63 68 65 72 20 28 d0 90 d0 bb d0 b5 d0 ba d1 tcher (.........
3f20: 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9e d1 80 d0 b5 ......... ......
3f30: d1 84 d0 ba d0 be d0 b2 29 0d 0a 2f 2f 2f 2f 0d ........)..////.
3f40: 0a 0d 0a 2f 2f 20 d0 9a d0 bb d0 b0 d1 81 d1 81 ...// ..........
3f50: 20 d0 b4 d0 bb d1 8f 20 d0 be d1 82 d1 81 d0 bb ...... ........
3f60: d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d1 8f ................
3f70: 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 ...............
3f80: b8 d1 8f 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 ... ............
3f90: 20 d0 b2 20 d0 bf d0 be d0 bb d0 b5 20 d0 b2 d0 .. ........ ...
3fa0: b2 d0 be d0 b4 d0 b0 2c 20 d0 b4 d0 bb d1 8f 20 ......., ......
3fb0: d0 b7 d0 b0 d0 bc d0 b5 d0 bd d1 8b 0d 0a 2f 2f ..............//
3fc0: 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 d1 8f 20 ..............
3fd0: d0 90 d0 b2 d1 82 d0 be d0 9f d0 be d0 b4 d0 b1 ................
3fe0: d0 be d1 80 d0 a2 d0 b5 d0 ba d1 81 d1 82 d0 b0 ................
3ff0: 2e 20 d0 a8 d1 82 d0 b0 d1 82 d0 bd d0 be d0 b5 . ..............
4000: 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 d0 b5 20 ..............
4010: d0 bf d0 bb d0 be d1 85 d0 be 20 d1 82 d0 b5 d0 .......... .....
4020: bc 2c 20 d1 87 d1 82 d0 be 20 d0 bd d0 b5 20 d0 ., ...... .... .
4030: b2 d0 be d0 b7 d0 bd d0 b8 d0 ba d0 b0 d0 b5 d1 ................
4040: 82 0d 0a 2f 2f 20 2d 20 d0 bf d1 80 d0 b8 20 d1 ...// - ...... .
4050: 83 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 ba d0 ................
4060: b5 20 d0 bf d1 83 d1 81 d1 82 d0 be d0 b3 d0 be . ..............
4070: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 0d 0a 2f ............../
4080: 2f 20 2d 20 d0 bf d1 80 d0 b8 20 d0 b8 d0 b7 d0 / - ...... .....
4090: bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d0 b8 20 d1 82 ............. ..
40a0: d0 b5 d0 ba d1 81 d1 82 d0 b0 20 d0 bf d1 83 d1 .......... .....
40b0: 82 d0 b5 d0 bc 20 d0 b2 d1 81 d1 82 d0 b0 d0 b2 ..... ..........
40c0: d0 ba d0 b8 2f d0 b2 d1 8b d1 80 d0 b5 d0 b7 d0 ..../...........
40d0: b0 d0 bd d0 b8 d1 8f 20 d0 b8 d0 b7 2f d0 b2 20 ....... ..../..
40e0: d0 b1 d1 83 d1 84 d0 b5 d1 80 d0 b0 20 d0 be d0 ............ ...
40f0: b1 d0 bc d0 b5 d0 bd d0 b0 0d 0a 2f 2f 20 2d 20 ...........// -
4100: d0 bf d1 80 d0 b8 20 d0 be d1 82 d0 bc d0 b5 d0 ...... .........
4110: bd d0 b5 20 d1 80 d0 b5 d0 b4 d0 b0 d0 ba d1 82 ... ............
4120: d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 b8 d1 8f ................
4130: 20 28 43 74 72 6c 2b 5a 29 0d 0a 2f 2f 20 d0 bd (Ctrl+Z)..// ..
4140: d0 b5 20 d0 bf d0 be d0 b7 d0 b2 d0 be d0 bb d1 .. .............
4150: 8f d0 b5 d1 82 20 d1 80 d0 b5 d0 b3 d1 83 d0 bb ..... ..........
4160: d0 b8 d1 80 d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d0 .............. .
4170: b7 d0 b0 d0 b4 d0 b5 d1 80 d0 b6 d0 ba d1 83 0d ................
4180: 0a 2f 2f 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 .// ............
4190: d1 82 d1 80 d1 8b 20 d0 ba d0 be d0 bd d1 81 d1 ...... .........
41a0: 82 d1 80 d1 83 d0 ba d1 82 d0 be d1 80 d0 b0 0d ................
41b0: 0a 2f 2f 20 66 69 65 6c 64 20 2d 20 d1 8d d0 bb .// field - ....
41c0: d0 b5 d0 bc d0 b5 d0 bd d1 82 20 d1 83 d0 bf d1 .......... .....
41d0: 80 d0 b0 d0 b2 d0 bb d0 b5 d0 bd d0 b8 d1 8f 20 ...............
41e0: d0 bf d0 be d0 bb d0 b5 20 d0 b2 d0 b2 d0 be d0 ........ .......
41f0: b4 d0 b0 2c 20 d1 87 d1 8c d0 b5 20 d0 b8 d0 b7 ..., ...... ....
4200: d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d0 b5 20 d1 .............. .
4210: 85 d0 be d1 82 d0 b8 d0 bc 20 d0 be d1 82 d1 81 ......... ......
4220: d0 bb d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d1 82 d1 8c ................
4230: 0d 0a 2f 2f 20 74 69 63 6b 73 20 2d 20 d0 b2 d0 ..// ticks - ...
4240: b5 d0 bb d0 b8 d1 87 d0 b8 d0 bd d0 b0 20 d0 b7 ............. ..
4250: d0 b0 d0 b4 d0 b5 d1 80 d0 b6 d0 ba d0 b8 20 d0 .............. .
4260: bf d0 be d1 81 d0 bb d0 b5 20 d0 b2 d0 b2 d0 be ......... ......
4270: d0 b4 d0 b0 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 .... ...........
4280: b0 20 d0 b2 20 d0 b4 d0 b5 d1 81 d1 8f d1 82 d1 . .. ...........
4290: 8b d1 85 20 d1 81 d0 b5 d0 ba d1 83 d0 bd d0 b4 ... ............
42a0: d1 8b 20 28 d1 82 2e d0 b5 2e 20 33 20 2d 20 33 .. (...... 3 - 3
42b0: 30 30 20 d0 bc d1 81 d0 b5 d0 ba 29 0d 0a 2f 2f 00 ........)..//
42c0: 20 69 6e 76 6f 6b 65 72 20 2d 20 d1 84 d1 83 d0 invoker - .....
42d0: bd d0 ba d1 86 d0 b8 d1 8f 20 d0 be d0 b1 d1 80 ......... ......
42e0: d0 b0 d1 82 d0 bd d0 be d0 b3 d0 be 20 d0 b2 d1 ............ ...
42f0: 8b d0 b7 d0 be d0 b2 d0 b0 2c 20 d0 b2 d1 8b d0 ........., .....
4300: b7 d1 8b d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 ...............
4310: d0 bf d0 be d1 81 d0 bb d0 b5 20 d0 be d0 ba d0 .......... .....
4320: be d0 bd d1 87 d0 b0 d0 bd d0 b8 d1 8f 20 d0 b8 ............. ..
4330: d0 b7 d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d1 8f ................
4340: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 2c 0d 0a ............,..
4350: 2f 2f 20 20 d0 bd d0 be d0 b2 d1 8b d0 b9 20 d1 // .......... .
4360: 82 d0 b5 d0 ba d1 81 d1 82 20 d0 bf d0 b5 d1 80 ......... ......
4370: d0 b5 d0 b4 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 .............. .
4380: bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80 d0 ................
4390: be d0 bc 20 d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8 ... ............
43a0: d0 b8 0d 0a 66 75 6e 63 74 69 6f 6e 20 54 65 78 ....function Tex
43b0: 74 43 68 61 6e 67 65 73 57 61 74 63 68 65 72 28 tChangesWatcher(
43c0: 66 69 65 6c 64 2c 20 74 69 63 6b 73 2c 20 69 6e field, ticks, in
43d0: 76 6f 6b 65 72 29 0d 0a 7b 0d 0a 20 20 20 20 74 voker)..{.. t
43e0: 68 69 73 2e 74 69 63 6b 73 20 3d 20 74 69 63 6b his.ticks = tick
43f0: 73 0d 0a 20 20 20 20 74 68 69 73 2e 69 6e 76 6f s.. this.invo
4400: 6b 65 72 20 3d 20 69 6e 76 6f 6b 65 72 0d 0a 20 ker = invoker..
4410: 20 20 20 74 68 69 73 2e 66 69 65 6c 64 20 3d 20 this.field =
4420: 66 69 65 6c 64 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 d0 field..}....// .
4430: 9d d0 b0 d1 87 d0 b0 d1 82 d1 8c 20 d0 be d1 82 ........... ....
4440: d1 81 d0 bb d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd ................
4450: d0 b8 d0 b5 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0 .... ...........
4460: b5 d0 bd d0 b8 d1 8f 20 d1 82 d0 b5 d0 ba d1 81 ....... ........
4470: d1 82 d0 b0 0d 0a 54 65 78 74 43 68 61 6e 67 65 ......TextChange
4480: 73 57 61 74 63 68 65 72 2e 70 72 6f 74 6f 74 79 sWatcher.prototy
4490: 70 65 2e 73 74 61 72 74 20 3d 20 66 75 6e 63 74 pe.start = funct
44a0: 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 ion()..{.. th
44b0: 69 73 2e 6c 61 73 74 54 65 78 74 20 3d 20 74 68 is.lastText = th
44c0: 69 73 2e 66 69 65 6c 64 2e d0 97 d0 bd d0 b0 d1 is.field........
44d0: 87 d0 b5 d0 bd d0 b8 d0 b5 2e 72 65 70 6c 61 63 ..........replac
44e0: 65 28 2f 5e 5c 73 2a 7c 5c 73 2a 24 2f 67 2c 20 e(/^\s*|\s*$/g,
44f0: 27 27 29 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 '').toLowerCase(
4500: 29 0d 0a 20 20 20 20 74 68 69 73 2e 6e 6f 43 68 ).. this.noCh
4510: 61 6e 67 65 73 54 69 63 6b 73 20 3d 20 30 0d 0a angesTicks = 0..
4520: 20 20 20 20 74 68 69 73 2e 74 69 6d 65 72 49 44 this.timerID
4530: 20 3d 20 63 72 65 61 74 65 54 69 6d 65 72 28 31 = createTimer(1
4540: 30 30 2c 20 74 68 69 73 2c 20 22 6f 6e 54 69 6d 00, this, "onTim
4550: 65 72 22 29 0d 0a 7d 0d 0a 2f 2f 20 d0 9e d1 81 er")..}..// ....
4560: d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c ................
4570: 20 d0 be d1 82 d1 81 d0 bb d0 b5 d0 b6 d0 b8 d0 ...............
4580: b2 d0 b0 d0 bd d0 b8 d0 b5 20 d0 b8 d0 b7 d0 bc ......... ......
4590: d0 b5 d0 bd d0 b5 d0 bd d0 b8 d1 8f 20 d1 82 d0 ............ ...
45a0: b5 d0 ba d1 81 d1 82 d0 b0 0d 0a 54 65 78 74 43 ...........TextC
45b0: 68 61 6e 67 65 73 57 61 74 63 68 65 72 2e 70 72 hangesWatcher.pr
45c0: 6f 74 6f 74 79 70 65 2e 73 74 6f 70 20 3d 20 66 ototype.stop = f
45d0: 75 6e 63 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20 unction()..{..
45e0: 20 20 6b 69 6c 6c 54 69 6d 65 72 28 74 68 69 73 killTimer(this
45f0: 2e 74 69 6d 65 72 49 44 29 0d 0a 7d 0d 0a 2f 2f .timerID)..}..//
4600: 20 d0 9e d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d1 ...............
4610: 87 d0 b8 d0 ba 20 d1 81 d0 be d0 b1 d1 8b d1 82 ..... ..........
4620: d0 b8 d1 8f 20 d1 82 d0 b0 d0 b9 d0 bc d0 b5 d1 .... ...........
4630: 80 d0 b0 0d 0a 54 65 78 74 43 68 61 6e 67 65 73 .....TextChanges
4640: 57 61 74 63 68 65 72 2e 70 72 6f 74 6f 74 79 70 Watcher.prototyp
4650: 65 2e 6f 6e 54 69 6d 65 72 20 3d 20 66 75 6e 63 e.onTimer = func
4660: 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20 20 20 2f tion()..{.. /
4670: 2f 20 d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d0 bc / ..............
4680: 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d0 b8 d0 b9 20 ..............
4690: d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 b8 d0 b7 20 .......... ....
46a0: d0 bf d0 be d0 bb d1 8f 20 d0 b2 d0 b2 d0 be d0 ........ .......
46b0: b4 d0 b0 0d 0a 20 20 20 20 76 62 73 2e 76 61 72 ..... vbs.var
46c0: 30 20 3d 20 74 68 69 73 2e 66 69 65 6c 64 0d 0a 0 = this.field..
46d0: 20 20 20 20 76 62 73 2e 44 6f 45 78 65 63 75 74 vbs.DoExecut
46e0: 65 28 22 76 61 72 30 2e 47 65 74 54 65 78 74 53 e("var0.GetTextS
46f0: 65 6c 65 63 74 69 6f 6e 42 6f 75 6e 64 73 20 76 electionBounds v
4700: 61 72 31 2c 20 76 61 72 32 2c 20 76 61 72 33 2c ar1, var2, var3,
4710: 20 76 61 72 34 22 29 0d 0a 20 20 20 20 74 68 69 var4").. thi
4720: 73 2e 66 69 65 6c 64 2e d0 a3 d1 81 d1 82 d0 b0 s.field.........
4730: d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c d0 93 d1 80 ................
4740: d0 b0 d0 bd d0 b8 d1 86 d1 8b d0 92 d1 8b d0 b4 ................
4750: d0 b5 d0 bb d0 b5 d0 bd d0 b8 d1 8f 28 31 2c 20 ............(1,
4760: 31 2c 20 31 2c 20 31 30 30 30 30 29 0d 0a 20 20 1, 1, 10000)..
4770: 20 20 76 61 72 20 6e 65 77 54 65 78 74 20 3d 20 var newText =
4780: 74 68 69 73 2e 66 69 65 6c 64 2e d0 92 d1 8b d0 this.field......
4790: b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 d0 ................
47a0: a2 d0 b5 d0 ba d1 81 d1 82 2e 72 65 70 6c 61 63 ..........replac
47b0: 65 28 2f 5e 5c 73 2a 7c 5c 73 2a 24 2f 67 2c 20 e(/^\s*|\s*$/g,
47c0: 27 27 29 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 '').toLowerCase(
47d0: 29 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 65 6c ).. this.fiel
47e0: 64 2e d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d...............
47f0: d0 b8 d1 82 d1 8c d0 93 d1 80 d0 b0 d0 bd d0 b8 ................
4800: d1 86 d1 8b d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 ................
4810: d0 bd d0 b8 d1 8f 28 76 62 73 2e 76 61 72 31 2c ......(vbs.var1,
4820: 20 76 62 73 2e 76 61 72 32 2c 20 76 62 73 2e 76 vbs.var2, vbs.v
4830: 61 72 33 2c 20 76 62 73 2e 76 61 72 34 29 0d 0a ar3, vbs.var4)..
4840: 20 20 20 20 2f 2f 20 d0 9f d1 80 d0 be d0 b2 d0 // .........
4850: b5 d1 80 d0 b8 d0 bc 2c 20 d0 b8 d0 b7 d0 bc d0 ......., .......
4860: b5 d0 bd d0 b8 d0 bb d1 81 d1 8f 20 d0 bb d0 b8 ........... ....
4870: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 bf d0 be .......... ....
4880: 20 d1 81 d1 80 d0 b0 d0 b2 d0 b5 d0 bd d0 b8 d1 ...............
4890: 8e 20 d1 81 20 d0 bf d1 80 d0 be d1 88 d0 bb d1 . .. ...........
48a0: 8b d0 bc 20 d1 80 d0 b0 d0 b7 d0 be d0 bc 0d 0a ... ............
48b0: 20 20 20 20 69 66 28 6e 65 77 54 65 78 74 20 21 if(newText !
48c0: 3d 20 74 68 69 73 2e 6c 61 73 74 54 65 78 74 29 = this.lastText)
48d0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .. {..
48e0: 20 2f 2f 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0 b8 // ............
48f0: d0 bb d1 81 d1 8f 2c 20 d0 b7 d0 b0 d0 bf d0 be ......, ........
4900: d0 bc d0 bd d0 b8 d0 bc 20 d0 b5 d0 b3 d0 be 0d ........ .......
4910: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 . this.la
4920: 73 74 54 65 78 74 20 3d 20 6e 65 77 54 65 78 74 stText = newText
4930: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e .. this.n
4940: 6f 43 68 61 6e 67 65 73 54 69 63 6b 73 20 3d 20 oChangesTicks =
4950: 30 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 0.. }.. el
4960: 73 65 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 se.. {..
4970: 20 20 20 2f 2f 20 d0 a2 d0 b5 d0 ba d1 81 d1 82 // ..........
4980: 20 d0 bd d0 b5 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd .... ..........
4990: d0 b8 d0 bb d1 81 d1 8f 2e 20 d0 95 d1 81 d0 bb ......... ......
49a0: d0 b8 20 d0 bc d1 8b 20 d0 b5 d1 89 d0 b5 20 d0 .. .... ...... .
49b0: bd d0 b5 20 d1 81 d0 b8 d0 b3 d0 bd d0 b0 d0 bb ... ............
49c0: d0 b8 d0 b7 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bb ................
49d0: d0 b8 20 d0 be d0 b1 20 d1 8d d1 82 d0 be d0 bc .. .... ........
49e0: 2c 20 d1 82 d0 be 20 d1 83 d0 b2 d0 b5 d0 bb d0 , .... .........
49f0: b8 d1 87 d0 b8 d0 bc 20 d1 81 d1 87 d0 b5 d1 82 ....... ........
4a00: d1 87 d0 b8 d0 ba 20 d1 82 d0 b8 d0 ba d0 be d0 ...... .........
4a10: b2 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 68 ... if(th
4a20: 69 73 2e 6e 6f 43 68 61 6e 67 65 73 54 69 63 6b is.noChangesTick
4a30: 73 20 3c 3d 20 74 68 69 73 2e 74 69 63 6b 73 29 s <= this.ticks)
4a40: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 .. {..
4a50: 20 20 20 20 20 20 20 20 20 69 66 28 2b 2b 74 68 if(++th
4a60: 69 73 2e 6e 6f 43 68 61 6e 67 65 73 54 69 63 6b is.noChangesTick
4a70: 73 20 3e 20 74 68 69 73 2e 74 69 63 6b 73 29 20 s > this.ticks)
4a80: 20 2f 2f 20 d0 94 d0 be d1 81 d1 82 d0 b8 d0 b3 // ............
4a90: d0 bb d0 b8 20 d0 b7 d0 b0 d0 b4 d0 b0 d0 bd d0 .... ...........
4aa0: bd d0 be d0 b3 d0 be 20 d0 ba d0 be d0 bb d0 b8 ....... ........
4ab0: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 b0 20 d1 82 d0 ............ ...
4ac0: b8 d0 ba d0 be d0 b2 2e 0d 0a 20 20 20 20 20 20 ..........
4ad0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 this.i
4ae0: 6e 76 6f 6b 65 72 28 6e 65 77 54 65 78 74 29 20 nvoker(newText)
4af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
4b00: 20 d0 9e d1 82 d1 80 d0 b0 d0 bf d0 be d1 80 d1 ...............
4b10: 82 d1 83 d0 b5 d0 bc 0d 0a 20 20 20 20 20 20 20 .........
4b20: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a }.. }..}....
4b30: 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7d 20 54 65 78 74 ////..////} Text
4b40: 43 68 61 6e 67 65 73 57 61 74 63 68 65 72 20 28 ChangesWatcher (
4b50: d0 90 d0 bb d0 b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 ................
4b60: d1 80 20 d0 9e d1 80 d0 b5 d1 84 d0 ba d0 be d0 .. .............
4b70: b2 29 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f .)..////////////
4b80: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4b90: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4ba0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4bb0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4bc0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 0d 0a ////////////....
4bd0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4be0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4bf0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4c00: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4c10: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f ////////////////
4c20: 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 ////////..////{
4c30: d0 92 d1 81 d0 bf d0 be d0 bc d0 be d0 b3 d0 b0 ................
4c40: d1 82 d0 b5 d0 bb d1 8c d0 bd d1 8b d0 b5 20 d1 .............. .
4c50: 84 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 0d 0a 2f .............../
4c60: 2f 2f 2f 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2f 2f 7d ///........////}
4c70: 20 d0 92 d1 81 d0 bf d0 be d0 bc d0 be d0 b3 d0 ...............
4c80: b0 d1 82 d0 b5 d0 bb d1 8c d0 bd d1 8b d0 b5 20 ...............
4c90: d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 0d 0a ................