Clone of official tools

Committer:
Anders Blomdell
Date:
Thu Feb 04 17:17:13 2021 +0100
Revision:
47:21ae3e5a7128
Parent:
43:2a7da56ebd24
Add a few normpath calls

Who changed what in which revision?

UserRevisionLine numberNew contents of line
theotherjimmy 43:2a7da56ebd24 1 {
theotherjimmy 43:2a7da56ebd24 2 "project" : {
theotherjimmy 43:2a7da56ebd24 3 "schema" : "1.1",
theotherjimmy 43:2a7da56ebd24 4 "configuration" : {
theotherjimmy 43:2a7da56ebd24 5 {% for config in ["arm.toolchain.gcc.target.exe.release", "arm.toolchain.gcc.target.exe.debug"] %}
theotherjimmy 43:2a7da56ebd24 6 "{{ config }}" : {
theotherjimmy 43:2a7da56ebd24 7 "buildSteps" : {
theotherjimmy 43:2a7da56ebd24 8 "postbuild" : "",
theotherjimmy 43:2a7da56ebd24 9 "prebuild" : "",
theotherjimmy 43:2a7da56ebd24 10 "prebuilddes" : "",
theotherjimmy 43:2a7da56ebd24 11 "postbuilddes" : ""
theotherjimmy 43:2a7da56ebd24 12 },
theotherjimmy 43:2a7da56ebd24 13 "tools" : {
theotherjimmy 43:2a7da56ebd24 14 "arm.toolchain.gcc.assembler" : {
theotherjimmy 43:2a7da56ebd24 15 {% for opt in asm_opts %}
theotherjimmy 43:2a7da56ebd24 16 "{{ opt }}" : {
theotherjimmy 43:2a7da56ebd24 17 "type" : "{{ asm_opts[opt].type }}",
theotherjimmy 43:2a7da56ebd24 18 "value": "{{ asm_opts[opt].value }}"
theotherjimmy 43:2a7da56ebd24 19 },
theotherjimmy 43:2a7da56ebd24 20 {% endfor %}
theotherjimmy 43:2a7da56ebd24 21 "arm.toolchain.gcc.assembler.option.instructionset" : {
theotherjimmy 43:2a7da56ebd24 22 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 23 "value" : "-mthumb"
theotherjimmy 43:2a7da56ebd24 24 },
theotherjimmy 43:2a7da56ebd24 25 {% if float_abi %}
theotherjimmy 43:2a7da56ebd24 26 "-mfloat-abi=${value}" : {
theotherjimmy 43:2a7da56ebd24 27 "type" : "command",
theotherjimmy 43:2a7da56ebd24 28 "value" : "{{ float_abi }}"
theotherjimmy 43:2a7da56ebd24 29 },
theotherjimmy 43:2a7da56ebd24 30 {% endif %}
theotherjimmy 43:2a7da56ebd24 31 "-mcpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 32 "type" : "command",
theotherjimmy 43:2a7da56ebd24 33 "value" : "{{ cpu }}"
theotherjimmy 43:2a7da56ebd24 34 },
theotherjimmy 43:2a7da56ebd24 35 "arm.assembler.option.assemblerswitch" : {
theotherjimmy 43:2a7da56ebd24 36 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 37 "value" : "true"
theotherjimmy 43:2a7da56ebd24 38 },
theotherjimmy 43:2a7da56ebd24 39 "arm.assembler.option.additionaloptions" : {
theotherjimmy 43:2a7da56ebd24 40 "type" : "command",
theotherjimmy 43:2a7da56ebd24 41 "value" : [
theotherjimmy 43:2a7da56ebd24 42 {% for flag in asm_flags %}
theotherjimmy 43:2a7da56ebd24 43 "{{ flag }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 44 {% endfor %}
theotherjimmy 43:2a7da56ebd24 45 ]
theotherjimmy 43:2a7da56ebd24 46 },
theotherjimmy 43:2a7da56ebd24 47 "-mproc=${value}" : {
theotherjimmy 43:2a7da56ebd24 48 "type" : "command",
theotherjimmy 43:2a7da56ebd24 49 "value" : " {{ proc }}"
theotherjimmy 43:2a7da56ebd24 50 },
theotherjimmy 43:2a7da56ebd24 51 "-D" : {
theotherjimmy 43:2a7da56ebd24 52 "type" : "command",
theotherjimmy 43:2a7da56ebd24 53 "value" : [
theotherjimmy 43:2a7da56ebd24 54 {% for def in asm_defines %}
theotherjimmy 43:2a7da56ebd24 55 "{{ def }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 56 {% endfor %}
theotherjimmy 43:2a7da56ebd24 57 ]
theotherjimmy 43:2a7da56ebd24 58 },
theotherjimmy 43:2a7da56ebd24 59 {% if fpu %}
theotherjimmy 43:2a7da56ebd24 60 "-mfpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 61 "type" : "command",
theotherjimmy 43:2a7da56ebd24 62 "value" : "{{ fpu }}"
theotherjimmy 43:2a7da56ebd24 63 },
theotherjimmy 43:2a7da56ebd24 64 {% endif %}
theotherjimmy 43:2a7da56ebd24 65 "-I" : {
theotherjimmy 43:2a7da56ebd24 66 "type" : "command",
theotherjimmy 43:2a7da56ebd24 67 "value" : [
theotherjimmy 43:2a7da56ebd24 68 {% for dir in include_dirs %}
theotherjimmy 43:2a7da56ebd24 69 "\"{{ dir }}\""{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 70 {% endfor %}
theotherjimmy 43:2a7da56ebd24 71 ]
theotherjimmy 43:2a7da56ebd24 72 }
theotherjimmy 43:2a7da56ebd24 73 },
theotherjimmy 43:2a7da56ebd24 74 "arm.toolchain.gcc.cpp.linker" : {
theotherjimmy 43:2a7da56ebd24 75 {% for opt in ld_opts %}
theotherjimmy 43:2a7da56ebd24 76 "{{ opt }}" : {
theotherjimmy 43:2a7da56ebd24 77 "type" : "{{ ld_opts[opt].type }}",
theotherjimmy 43:2a7da56ebd24 78 "value": "{{ ld_opts[opt].value }}"
theotherjimmy 43:2a7da56ebd24 79 },
theotherjimmy 43:2a7da56ebd24 80 {% endfor %}
theotherjimmy 43:2a7da56ebd24 81 "arm.toolchain.gcc.cpp.linker.option.instructionset" : {
theotherjimmy 43:2a7da56ebd24 82 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 83 "value" : "-mthumb"
theotherjimmy 43:2a7da56ebd24 84 },
theotherjimmy 43:2a7da56ebd24 85 "arm.linker.option.additionaloptions" : {
theotherjimmy 43:2a7da56ebd24 86 "type" : "command",
theotherjimmy 43:2a7da56ebd24 87 "value" : [
theotherjimmy 43:2a7da56ebd24 88 {% for flag in ld_flags %}
theotherjimmy 43:2a7da56ebd24 89 "{{ flag }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 90 {% endfor %}
theotherjimmy 43:2a7da56ebd24 91 ]
theotherjimmy 43:2a7da56ebd24 92 },
theotherjimmy 43:2a7da56ebd24 93 {% if float_abi %}
theotherjimmy 43:2a7da56ebd24 94 "arm.toolchain.gcc.cpp.linker.option.fpu.abi" : {
theotherjimmy 43:2a7da56ebd24 95 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 96 "value" : "arm.toolchain.gcc.c.linker.option.fpu.abi.{{ float_abi }}"
theotherjimmy 43:2a7da56ebd24 97 },
theotherjimmy 43:2a7da56ebd24 98 {% endif %}
theotherjimmy 43:2a7da56ebd24 99 "-T" : {
theotherjimmy 43:2a7da56ebd24 100 "type" : "command",
theotherjimmy 43:2a7da56ebd24 101 "value" : "{{ ld_script }}"
theotherjimmy 43:2a7da56ebd24 102 },
theotherjimmy 43:2a7da56ebd24 103 "-mcpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 104 "type" : "command",
theotherjimmy 43:2a7da56ebd24 105 "value" : "{{ cpu }}"
theotherjimmy 43:2a7da56ebd24 106 },
theotherjimmy 43:2a7da56ebd24 107 "arm.linker.option.userlibs" : {
theotherjimmy 43:2a7da56ebd24 108 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 109 "value" : [ ]
theotherjimmy 43:2a7da56ebd24 110 },
theotherjimmy 43:2a7da56ebd24 111 "arm.cpp.linker.option.shared" : {
theotherjimmy 43:2a7da56ebd24 112 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 113 "value" : "false"
theotherjimmy 43:2a7da56ebd24 114 },
theotherjimmy 43:2a7da56ebd24 115 "arm.toolchain.gcc.cpp.linker.option.specs" : {
theotherjimmy 43:2a7da56ebd24 116 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 117 "value" : "arm.toolchain.gcc.c.linker.option.specs.nosys"
theotherjimmy 43:2a7da56ebd24 118 },
theotherjimmy 43:2a7da56ebd24 119 "-mproc=${value}" : {
theotherjimmy 43:2a7da56ebd24 120 "type" : "command",
theotherjimmy 43:2a7da56ebd24 121 "value" : " {{ proc }}"
theotherjimmy 43:2a7da56ebd24 122 },
theotherjimmy 43:2a7da56ebd24 123 "arm.c.linker.mathslib" : {
theotherjimmy 43:2a7da56ebd24 124 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 125 "value" : "true"
theotherjimmy 43:2a7da56ebd24 126 },
theotherjimmy 43:2a7da56ebd24 127 {% if fpu %}
theotherjimmy 43:2a7da56ebd24 128 "-mfpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 129 "type" : "command",
theotherjimmy 43:2a7da56ebd24 130 "value" : "{{ fpu }}"
theotherjimmy 43:2a7da56ebd24 131 },
theotherjimmy 43:2a7da56ebd24 132 {% endif %}
theotherjimmy 43:2a7da56ebd24 133 "-L" : {
theotherjimmy 43:2a7da56ebd24 134 "type" : "command",
theotherjimmy 43:2a7da56ebd24 135 "value" : [ ]
theotherjimmy 43:2a7da56ebd24 136 },
theotherjimmy 43:2a7da56ebd24 137 "-l" : {
theotherjimmy 43:2a7da56ebd24 138 "type" : "command",
theotherjimmy 43:2a7da56ebd24 139 "value" : [ ]
theotherjimmy 43:2a7da56ebd24 140 }
theotherjimmy 43:2a7da56ebd24 141 },
theotherjimmy 43:2a7da56ebd24 142 "arm.toolchain.gcc.c.compiler" : {
theotherjimmy 43:2a7da56ebd24 143 {% for opt in c_opts %}
theotherjimmy 43:2a7da56ebd24 144 "{{ opt }}" : {
theotherjimmy 43:2a7da56ebd24 145 "type" : "{{ c_opts[opt].type }}",
theotherjimmy 43:2a7da56ebd24 146 "value": "{{ c_opts[opt].value }}"
theotherjimmy 43:2a7da56ebd24 147 },
theotherjimmy 43:2a7da56ebd24 148 {% endfor %}
theotherjimmy 43:2a7da56ebd24 149 "-U" : {
theotherjimmy 43:2a7da56ebd24 150 "type" : "command",
theotherjimmy 43:2a7da56ebd24 151 "value" : [ ]
theotherjimmy 43:2a7da56ebd24 152 },
theotherjimmy 43:2a7da56ebd24 153 "arm.base.compiler.option.additionaloptions" : {
theotherjimmy 43:2a7da56ebd24 154 "type" : "command",
theotherjimmy 43:2a7da56ebd24 155 "value" : [
theotherjimmy 43:2a7da56ebd24 156 {% for flag in c_flags %}
theotherjimmy 43:2a7da56ebd24 157 "{{ flag }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 158 {% endfor %}
theotherjimmy 43:2a7da56ebd24 159 ]
theotherjimmy 43:2a7da56ebd24 160 },
theotherjimmy 43:2a7da56ebd24 161 "arm.toolchain.gcc.c.compiler.option.instructionset" : {
theotherjimmy 43:2a7da56ebd24 162 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 163 "value" : "-mthumb"
theotherjimmy 43:2a7da56ebd24 164 },
theotherjimmy 43:2a7da56ebd24 165 "arm.base.compiler.option.compilerswitch.hide" : {
theotherjimmy 43:2a7da56ebd24 166 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 167 "value" : "-c"
theotherjimmy 43:2a7da56ebd24 168 },
theotherjimmy 43:2a7da56ebd24 169 "arm.toolchain.cpp.compiler.option.coreid" : {
theotherjimmy 43:2a7da56ebd24 170 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 171 "value" : "0"
theotherjimmy 43:2a7da56ebd24 172 },
theotherjimmy 43:2a7da56ebd24 173 {% if float_abi %}
theotherjimmy 43:2a7da56ebd24 174 "-mfloat-abi=${value}" : {
theotherjimmy 43:2a7da56ebd24 175 "type" : "command",
theotherjimmy 43:2a7da56ebd24 176 "value" : "{{ float_abi }}"
theotherjimmy 43:2a7da56ebd24 177 },
theotherjimmy 43:2a7da56ebd24 178 {% endif %}
theotherjimmy 43:2a7da56ebd24 179 "-mcpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 180 "type" : "command",
theotherjimmy 43:2a7da56ebd24 181 "value" : "{{ cpu }}"
theotherjimmy 43:2a7da56ebd24 182 },
theotherjimmy 43:2a7da56ebd24 183 "-mproc=${value}" : {
theotherjimmy 43:2a7da56ebd24 184 "type" : "command",
theotherjimmy 43:2a7da56ebd24 185 "value" : " {{ proc }}"
theotherjimmy 43:2a7da56ebd24 186 },
theotherjimmy 43:2a7da56ebd24 187 "-D" : {
theotherjimmy 43:2a7da56ebd24 188 "type" : "command",
theotherjimmy 43:2a7da56ebd24 189 "value" : [
theotherjimmy 43:2a7da56ebd24 190 {% for def in c_defines %}
theotherjimmy 43:2a7da56ebd24 191 "{{ def }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 192 {% endfor %}
theotherjimmy 43:2a7da56ebd24 193 ]
theotherjimmy 43:2a7da56ebd24 194 },
theotherjimmy 43:2a7da56ebd24 195 "arm.base.compiler.option.noadiinclude" : {
theotherjimmy 43:2a7da56ebd24 196 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 197 "value" : "false"
theotherjimmy 43:2a7da56ebd24 198 },
theotherjimmy 43:2a7da56ebd24 199 {% if fpu %}
theotherjimmy 43:2a7da56ebd24 200 "-mfpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 201 "type" : "command",
theotherjimmy 43:2a7da56ebd24 202 "value" : "{{ fpu }}"
theotherjimmy 43:2a7da56ebd24 203 },
theotherjimmy 43:2a7da56ebd24 204 {% endif %}
theotherjimmy 43:2a7da56ebd24 205 "-I" : {
theotherjimmy 43:2a7da56ebd24 206 "type" : "command",
theotherjimmy 43:2a7da56ebd24 207 "value" : [
theotherjimmy 43:2a7da56ebd24 208 {% for dir in include_dirs %}
theotherjimmy 43:2a7da56ebd24 209 "\"{{ dir }}\""{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 210 {% endfor %}
theotherjimmy 43:2a7da56ebd24 211 ]
theotherjimmy 43:2a7da56ebd24 212 }
theotherjimmy 43:2a7da56ebd24 213 },
theotherjimmy 43:2a7da56ebd24 214 "arm.toolchain.gcc.cpp.compiler" : {
theotherjimmy 43:2a7da56ebd24 215 {% for opt in cxx_opts %}
theotherjimmy 43:2a7da56ebd24 216 "{{ opt }}" : {
theotherjimmy 43:2a7da56ebd24 217 "type" : "{{ cxx_opts[opt].type }}",
theotherjimmy 43:2a7da56ebd24 218 "value": "{{ cxx_opts[opt].value }}"
theotherjimmy 43:2a7da56ebd24 219 },
theotherjimmy 43:2a7da56ebd24 220 {% endfor %}
theotherjimmy 43:2a7da56ebd24 221 "-U" : {
theotherjimmy 43:2a7da56ebd24 222 "type" : "command",
theotherjimmy 43:2a7da56ebd24 223 "value" : [ ]
theotherjimmy 43:2a7da56ebd24 224 },
theotherjimmy 43:2a7da56ebd24 225 "arm.base.compiler.option.additionaloptions" : {
theotherjimmy 43:2a7da56ebd24 226 "type" : "command",
theotherjimmy 43:2a7da56ebd24 227 "value" : [
theotherjimmy 43:2a7da56ebd24 228 {% for flag in cxx_flags %}
theotherjimmy 43:2a7da56ebd24 229 "{{ flag }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 230 {% endfor %}
theotherjimmy 43:2a7da56ebd24 231 ]
theotherjimmy 43:2a7da56ebd24 232 },
theotherjimmy 43:2a7da56ebd24 233 "arm.toolchain.gcc.cpp.compiler.option.instructionset" : {
theotherjimmy 43:2a7da56ebd24 234 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 235 "value" : "-mthumb"
theotherjimmy 43:2a7da56ebd24 236 },
theotherjimmy 43:2a7da56ebd24 237 "arm.base.compiler.option.compilerswitch.hide" : {
theotherjimmy 43:2a7da56ebd24 238 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 239 "value" : "-c"
theotherjimmy 43:2a7da56ebd24 240 },
theotherjimmy 43:2a7da56ebd24 241 "arm.toolchain.cpp.compiler.option.coreid" : {
theotherjimmy 43:2a7da56ebd24 242 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 243 "value" : "0"
theotherjimmy 43:2a7da56ebd24 244 },
theotherjimmy 43:2a7da56ebd24 245 {% if float_abi %}
theotherjimmy 43:2a7da56ebd24 246 "-mfloat-abi=${value}" : {
theotherjimmy 43:2a7da56ebd24 247 "type" : "command",
theotherjimmy 43:2a7da56ebd24 248 "value" : "{{ float_abi }}"
theotherjimmy 43:2a7da56ebd24 249 },
theotherjimmy 43:2a7da56ebd24 250 {% endif %}
theotherjimmy 43:2a7da56ebd24 251 "-mcpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 252 "type" : "command",
theotherjimmy 43:2a7da56ebd24 253 "value" : "{{ cpu }}"
theotherjimmy 43:2a7da56ebd24 254 },
theotherjimmy 43:2a7da56ebd24 255 "-mproc=${value}" : {
theotherjimmy 43:2a7da56ebd24 256 "type" : "command",
theotherjimmy 43:2a7da56ebd24 257 "value" : " {{ proc }}"
theotherjimmy 43:2a7da56ebd24 258 },
theotherjimmy 43:2a7da56ebd24 259 "-D" : {
theotherjimmy 43:2a7da56ebd24 260 "type" : "command",
theotherjimmy 43:2a7da56ebd24 261 "value" : [
theotherjimmy 43:2a7da56ebd24 262 {% for def in c_defines %}
theotherjimmy 43:2a7da56ebd24 263 "{{ def }}"{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 264 {% endfor %}
theotherjimmy 43:2a7da56ebd24 265 ]
theotherjimmy 43:2a7da56ebd24 266 },
theotherjimmy 43:2a7da56ebd24 267 "arm.base.compiler.option.noadiinclude" : {
theotherjimmy 43:2a7da56ebd24 268 "type" : "baseId",
theotherjimmy 43:2a7da56ebd24 269 "value" : "false"
theotherjimmy 43:2a7da56ebd24 270 },
theotherjimmy 43:2a7da56ebd24 271 {% if fpu %}
theotherjimmy 43:2a7da56ebd24 272 "-mfpu=${value}" : {
theotherjimmy 43:2a7da56ebd24 273 "type" : "command",
theotherjimmy 43:2a7da56ebd24 274 "value" : "{{ fpu }}"
theotherjimmy 43:2a7da56ebd24 275 },
theotherjimmy 43:2a7da56ebd24 276 {% endif %}
theotherjimmy 43:2a7da56ebd24 277 "-I" : {
theotherjimmy 43:2a7da56ebd24 278 "type" : "command",
theotherjimmy 43:2a7da56ebd24 279 "value" : [
theotherjimmy 43:2a7da56ebd24 280 {% for dir in include_dirs %}
theotherjimmy 43:2a7da56ebd24 281 "\"{{ dir }}\""{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 282 {% endfor %}
theotherjimmy 43:2a7da56ebd24 283 ]
theotherjimmy 43:2a7da56ebd24 284 }
theotherjimmy 43:2a7da56ebd24 285 }
theotherjimmy 43:2a7da56ebd24 286 }
theotherjimmy 43:2a7da56ebd24 287 }{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 288 {% endfor %}
theotherjimmy 43:2a7da56ebd24 289 },
theotherjimmy 43:2a7da56ebd24 290 "srcFiles" : [
theotherjimmy 43:2a7da56ebd24 291 {% for src in srcs %}
theotherjimmy 43:2a7da56ebd24 292 {
theotherjimmy 43:2a7da56ebd24 293 "path" : "{{ srcs[src] }}",
theotherjimmy 43:2a7da56ebd24 294 "location" : "{{ src }}",
theotherjimmy 43:2a7da56ebd24 295 "linked" : true
theotherjimmy 43:2a7da56ebd24 296 }{{ "," if not loop.last else "" }}
theotherjimmy 43:2a7da56ebd24 297 {% endfor %}
theotherjimmy 43:2a7da56ebd24 298 ],
theotherjimmy 43:2a7da56ebd24 299 "basicInfo" : {
theotherjimmy 43:2a7da56ebd24 300 "artifact" : "",
theotherjimmy 43:2a7da56ebd24 301 "name" : "{{ project }}",
theotherjimmy 43:2a7da56ebd24 302 "projectType" : "Executable",
theotherjimmy 43:2a7da56ebd24 303 "localLocation" : "{{ local_location }}",
theotherjimmy 43:2a7da56ebd24 304 "family" : "{{ family }}",
theotherjimmy 43:2a7da56ebd24 305 "toolChain" : "arm.gcc.toolchain",
theotherjimmy 43:2a7da56ebd24 306 "activecfg" : "Debug",
theotherjimmy 43:2a7da56ebd24 307 "language" : "C++",
theotherjimmy 43:2a7da56ebd24 308 {% if not fpu %}
theotherjimmy 43:2a7da56ebd24 309 "fpu" : "NO_FPU"
theotherjimmy 43:2a7da56ebd24 310 {% endif %}
theotherjimmy 43:2a7da56ebd24 311 }
theotherjimmy 43:2a7da56ebd24 312 }
theotherjimmy 43:2a7da56ebd24 313 }