aboutsummaryrefslogtreecommitdiff
path: root/users/drashna/wrappers.h
diff options
context:
space:
mode:
Diffstat (limited to 'users/drashna/wrappers.h')
-rw-r--r--users/drashna/wrappers.h167
1 files changed, 86 insertions, 81 deletions
diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h
index d135f44af..be8162dfa 100644
--- a/users/drashna/wrappers.h
+++ b/users/drashna/wrappers.h
@@ -21,19 +21,6 @@ Since our quirky block definitions are basically a list of comma separated
21arguments, we need a wrapper in order for these definitions to be 21arguments, we need a wrapper in order for these definitions to be
22expanded before being used as arguments to the LAYOUT_xxx macro. 22expanded before being used as arguments to the LAYOUT_xxx macro.
23*/ 23*/
24#if (!defined(LAYOUT) && defined(KEYMAP))
25# define LAYOUT KEYMAP
26#endif
27
28// clang-format off
29#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
30#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
31#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
32#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
33#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
34#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
35#define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__)
36#define LAYOUT_split_3x6_3_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
37 24
38/* 25/*
39Blocks for each of the four major keyboard layouts 26Blocks for each of the four major keyboard layouts
@@ -46,14 +33,14 @@ NOTE: These are all the same length. If you do a search/replace
46 then you need to add/remove underscores to keep the 33 then you need to add/remove underscores to keep the
47 lengths consistent. 34 lengths consistent.
48*/ 35*/
36// clang-format off
37#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
38#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
39#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
49 40
50#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T 41#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
51#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G 42#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
52#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B 43#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
53
54#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
55#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
56#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
57 44
58 45
59#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G 46#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
@@ -61,15 +48,15 @@ NOTE: These are all the same length. If you do a search/replace
61#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B 48#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
62 49
63#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN 50#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
64#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O 51#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
65#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH 52#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
66 53
67#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B 54#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
68#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G 55#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
69#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V 56#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
70 57
71#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN 58#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
72#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O 59#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT
73#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH 60#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
74 61
75 62
@@ -78,7 +65,7 @@ NOTE: These are all the same length. If you do a search/replace
78#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X 65#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
79 66
80#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L 67#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
81#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S 68#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
82#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z 69#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
83 70
84 71
@@ -87,88 +74,106 @@ NOTE: These are all the same length. If you do a search/replace
87#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X 74#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
88 75
89#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L 76#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
90#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S 77#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
91#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z 78#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
92 79
93#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B 80#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
94#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G 81#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
95#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V 82#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
83
84#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
85#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
86#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
87
96 88
97#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN 89#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
98#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I 90#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
99#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH 91#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
100 92
93#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
94#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
95#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
101 96
102#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
103#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
104#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
105 97
106#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN 98#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
107#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U 99#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
108#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH 100#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
109 101
102#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
103#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
104#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
110 105
111#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
112#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
113#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
114 106
115#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L 107#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
116#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R 108#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
117#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X 109#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
118 110
111#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
112#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
113#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
119 114
120#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q 115// Qwerty-like
121#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U 116#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
122#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W 117#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
118#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
123 119
124#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P 120#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
125#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N 121#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
126#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN 122#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
127 123
124// Colemak like
125#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
126#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
127#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
128 128
129#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W 129#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
130#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 130#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
131#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X 131#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
132 132
133#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J 133// colemak like, zxcv fixed
134#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN 134#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
135#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH 135#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
136#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
136 137
138#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
139#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
140#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
137 141
138#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W 142// teeheehee
139#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 143#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
140#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J 144#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
145#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
141 146
142#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN 147#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
143#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H 148#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
144#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH 149#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
145 150
146 151
147#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W 152#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
148#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R 153#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
149#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J 154#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
150 155
151#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN 156#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
152#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H 157#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
153#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH 158#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
154 159
155 160
156#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT 161#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
157#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B 162#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
158#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q 163#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
159 164
160#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U 165#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
161#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O // KC_I 166#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
162#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z 167#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
163 168
164 169
165#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z 170#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
166#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM 171#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
167#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH 172#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
168 173
169#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J 174#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
170#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I 175#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
171#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y 176#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
172 177
173 178
174#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 179#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@@ -185,7 +190,7 @@ NOTE: These are all the same length. If you do a search/replace
185 190
186#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN 191#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
187#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR 192#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
188#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT 193#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
189 194
190 195
191 196
@@ -195,7 +200,7 @@ NOTE: These are all the same length. If you do a search/replace
195 200
196#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________ 201#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
197#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC 202#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
198#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END 203#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
199 204
200 205
201 206