1*a85fe12eSEd Maste /*- 2*a85fe12eSEd Maste * Copyright (c) 2008,2009 Kai Wang 3*a85fe12eSEd Maste * All rights reserved. 4*a85fe12eSEd Maste * 5*a85fe12eSEd Maste * Redistribution and use in source and binary forms, with or without 6*a85fe12eSEd Maste * modification, are permitted provided that the following conditions 7*a85fe12eSEd Maste * are met: 8*a85fe12eSEd Maste * 1. Redistributions of source code must retain the above copyright 9*a85fe12eSEd Maste * notice, this list of conditions and the following disclaimer 10*a85fe12eSEd Maste * in this position and unchanged. 11*a85fe12eSEd Maste * 2. Redistributions in binary form must reproduce the above copyright 12*a85fe12eSEd Maste * notice, this list of conditions and the following disclaimer in the 13*a85fe12eSEd Maste * documentation and/or other materials provided with the distribution. 14*a85fe12eSEd Maste * 15*a85fe12eSEd Maste * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 16*a85fe12eSEd Maste * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17*a85fe12eSEd Maste * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18*a85fe12eSEd Maste * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 19*a85fe12eSEd Maste * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20*a85fe12eSEd Maste * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*a85fe12eSEd Maste * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*a85fe12eSEd Maste * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*a85fe12eSEd Maste * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24*a85fe12eSEd Maste * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*a85fe12eSEd Maste */ 26*a85fe12eSEd Maste 27*a85fe12eSEd Maste #include <sys/cdefs.h> 28*a85fe12eSEd Maste 29*a85fe12eSEd Maste #include <sys/param.h> 30*a85fe12eSEd Maste #include <libelf.h> 31*a85fe12eSEd Maste #include <libelftc.h> 32*a85fe12eSEd Maste 33*a85fe12eSEd Maste #include "_libelftc.h" 34*a85fe12eSEd Maste 35*a85fe12eSEd Maste ELFTC_VCSID("$Id: libelftc_bfdtarget.c 2251 2011-11-30 16:50:06Z jkoshy $"); 36*a85fe12eSEd Maste 37*a85fe12eSEd Maste struct _Elftc_Bfd_Target _libelftc_targets[] = { 38*a85fe12eSEd Maste 39*a85fe12eSEd Maste { 40*a85fe12eSEd Maste .bt_name = "binary", 41*a85fe12eSEd Maste .bt_type = ETF_BINARY, 42*a85fe12eSEd Maste }, 43*a85fe12eSEd Maste 44*a85fe12eSEd Maste { 45*a85fe12eSEd Maste .bt_name = "elf32-avr", 46*a85fe12eSEd Maste .bt_type = ETF_ELF, 47*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 48*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 49*a85fe12eSEd Maste .bt_machine = EM_AVR, 50*a85fe12eSEd Maste }, 51*a85fe12eSEd Maste 52*a85fe12eSEd Maste { 53*a85fe12eSEd Maste .bt_name = "elf32-big", 54*a85fe12eSEd Maste .bt_type = ETF_ELF, 55*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 56*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 57*a85fe12eSEd Maste }, 58*a85fe12eSEd Maste 59*a85fe12eSEd Maste { 60*a85fe12eSEd Maste .bt_name = "elf32-bigarm", 61*a85fe12eSEd Maste .bt_type = ETF_ELF, 62*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 63*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 64*a85fe12eSEd Maste .bt_machine = EM_ARM, 65*a85fe12eSEd Maste }, 66*a85fe12eSEd Maste 67*a85fe12eSEd Maste { 68*a85fe12eSEd Maste .bt_name = "elf32-bigmips", 69*a85fe12eSEd Maste .bt_type = ETF_ELF, 70*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 71*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 72*a85fe12eSEd Maste .bt_machine = EM_MIPS, 73*a85fe12eSEd Maste }, 74*a85fe12eSEd Maste 75*a85fe12eSEd Maste { 76*a85fe12eSEd Maste .bt_name = "elf32-i386", 77*a85fe12eSEd Maste .bt_type = ETF_ELF, 78*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 79*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 80*a85fe12eSEd Maste .bt_machine = EM_386, 81*a85fe12eSEd Maste }, 82*a85fe12eSEd Maste 83*a85fe12eSEd Maste { 84*a85fe12eSEd Maste .bt_name = "elf32-i386-freebsd", 85*a85fe12eSEd Maste .bt_type = ETF_ELF, 86*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 87*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 88*a85fe12eSEd Maste .bt_machine = EM_386, 89*a85fe12eSEd Maste .bt_osabi = ELFOSABI_FREEBSD, 90*a85fe12eSEd Maste }, 91*a85fe12eSEd Maste 92*a85fe12eSEd Maste { 93*a85fe12eSEd Maste .bt_name = "elf32-ia64-big", 94*a85fe12eSEd Maste .bt_type = ETF_ELF, 95*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 96*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 97*a85fe12eSEd Maste .bt_machine = EM_IA_64, 98*a85fe12eSEd Maste }, 99*a85fe12eSEd Maste 100*a85fe12eSEd Maste { 101*a85fe12eSEd Maste .bt_name = "elf32-little", 102*a85fe12eSEd Maste .bt_type = ETF_ELF, 103*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 104*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 105*a85fe12eSEd Maste }, 106*a85fe12eSEd Maste 107*a85fe12eSEd Maste { 108*a85fe12eSEd Maste .bt_name = "elf32-littlearm", 109*a85fe12eSEd Maste .bt_type = ETF_ELF, 110*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 111*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 112*a85fe12eSEd Maste .bt_machine = EM_ARM, 113*a85fe12eSEd Maste }, 114*a85fe12eSEd Maste 115*a85fe12eSEd Maste { 116*a85fe12eSEd Maste .bt_name = "elf32-littlemips", 117*a85fe12eSEd Maste .bt_type = ETF_ELF, 118*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 119*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 120*a85fe12eSEd Maste .bt_machine = EM_MIPS, 121*a85fe12eSEd Maste }, 122*a85fe12eSEd Maste 123*a85fe12eSEd Maste { 124*a85fe12eSEd Maste .bt_name = "elf32-powerpc", 125*a85fe12eSEd Maste .bt_type = ETF_ELF, 126*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 127*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 128*a85fe12eSEd Maste .bt_machine = EM_PPC, 129*a85fe12eSEd Maste }, 130*a85fe12eSEd Maste 131*a85fe12eSEd Maste { 132*a85fe12eSEd Maste .bt_name = "elf32-powerpcle", 133*a85fe12eSEd Maste .bt_type = ETF_ELF, 134*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 135*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 136*a85fe12eSEd Maste .bt_machine = EM_PPC, 137*a85fe12eSEd Maste }, 138*a85fe12eSEd Maste 139*a85fe12eSEd Maste { 140*a85fe12eSEd Maste .bt_name = "elf32-sh", 141*a85fe12eSEd Maste .bt_type = ETF_ELF, 142*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 143*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 144*a85fe12eSEd Maste .bt_machine = EM_SH, 145*a85fe12eSEd Maste }, 146*a85fe12eSEd Maste 147*a85fe12eSEd Maste { 148*a85fe12eSEd Maste .bt_name = "elf32-shl", 149*a85fe12eSEd Maste .bt_type = ETF_ELF, 150*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 151*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 152*a85fe12eSEd Maste .bt_machine = EM_SH, 153*a85fe12eSEd Maste }, 154*a85fe12eSEd Maste 155*a85fe12eSEd Maste { 156*a85fe12eSEd Maste .bt_name = "elf32-sh-nbsd", 157*a85fe12eSEd Maste .bt_type = ETF_ELF, 158*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 159*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 160*a85fe12eSEd Maste .bt_machine = EM_SH, 161*a85fe12eSEd Maste .bt_osabi = ELFOSABI_NETBSD, 162*a85fe12eSEd Maste }, 163*a85fe12eSEd Maste 164*a85fe12eSEd Maste { 165*a85fe12eSEd Maste .bt_name = "elf32-shl-nbsd", 166*a85fe12eSEd Maste .bt_type = ETF_ELF, 167*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 168*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 169*a85fe12eSEd Maste .bt_machine = EM_SH, 170*a85fe12eSEd Maste .bt_osabi = ELFOSABI_NETBSD, 171*a85fe12eSEd Maste }, 172*a85fe12eSEd Maste 173*a85fe12eSEd Maste { 174*a85fe12eSEd Maste .bt_name = "elf32-shbig-linux", 175*a85fe12eSEd Maste .bt_type = ETF_ELF, 176*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 177*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 178*a85fe12eSEd Maste .bt_machine = EM_SH, 179*a85fe12eSEd Maste .bt_osabi = ELFOSABI_LINUX, 180*a85fe12eSEd Maste }, 181*a85fe12eSEd Maste 182*a85fe12eSEd Maste { 183*a85fe12eSEd Maste .bt_name = "elf32-sh-linux", 184*a85fe12eSEd Maste .bt_type = ETF_ELF, 185*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 186*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 187*a85fe12eSEd Maste .bt_machine = EM_SH, 188*a85fe12eSEd Maste .bt_osabi = ELFOSABI_LINUX, 189*a85fe12eSEd Maste }, 190*a85fe12eSEd Maste 191*a85fe12eSEd Maste { 192*a85fe12eSEd Maste .bt_name = "elf32-sparc", 193*a85fe12eSEd Maste .bt_type = ETF_ELF, 194*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 195*a85fe12eSEd Maste .bt_elfclass = ELFCLASS32, 196*a85fe12eSEd Maste .bt_machine = EM_SPARC, 197*a85fe12eSEd Maste }, 198*a85fe12eSEd Maste 199*a85fe12eSEd Maste { 200*a85fe12eSEd Maste .bt_name = "elf64-alpha", 201*a85fe12eSEd Maste .bt_type = ETF_ELF, 202*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 203*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 204*a85fe12eSEd Maste .bt_machine = EM_ALPHA, 205*a85fe12eSEd Maste }, 206*a85fe12eSEd Maste 207*a85fe12eSEd Maste { 208*a85fe12eSEd Maste .bt_name = "elf64-alpha-freebsd", 209*a85fe12eSEd Maste .bt_type = ETF_ELF, 210*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 211*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 212*a85fe12eSEd Maste .bt_machine = EM_ALPHA, 213*a85fe12eSEd Maste .bt_osabi = ELFOSABI_FREEBSD 214*a85fe12eSEd Maste }, 215*a85fe12eSEd Maste 216*a85fe12eSEd Maste { 217*a85fe12eSEd Maste .bt_name = "elf64-big", 218*a85fe12eSEd Maste .bt_type = ETF_ELF, 219*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 220*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 221*a85fe12eSEd Maste }, 222*a85fe12eSEd Maste 223*a85fe12eSEd Maste { 224*a85fe12eSEd Maste .bt_name = "elf64-bigmips", 225*a85fe12eSEd Maste .bt_type = ETF_ELF, 226*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 227*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 228*a85fe12eSEd Maste .bt_machine = EM_MIPS, 229*a85fe12eSEd Maste }, 230*a85fe12eSEd Maste 231*a85fe12eSEd Maste { 232*a85fe12eSEd Maste .bt_name = "elf64-ia64-big", 233*a85fe12eSEd Maste .bt_type = ETF_ELF, 234*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 235*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 236*a85fe12eSEd Maste .bt_machine = EM_IA_64, 237*a85fe12eSEd Maste }, 238*a85fe12eSEd Maste 239*a85fe12eSEd Maste { 240*a85fe12eSEd Maste .bt_name = "elf64-ia64-little", 241*a85fe12eSEd Maste .bt_type = ETF_ELF, 242*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 243*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 244*a85fe12eSEd Maste .bt_machine = EM_IA_64, 245*a85fe12eSEd Maste }, 246*a85fe12eSEd Maste 247*a85fe12eSEd Maste { 248*a85fe12eSEd Maste .bt_name = "elf64-little", 249*a85fe12eSEd Maste .bt_type = ETF_ELF, 250*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 251*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 252*a85fe12eSEd Maste }, 253*a85fe12eSEd Maste 254*a85fe12eSEd Maste { 255*a85fe12eSEd Maste .bt_name = "elf64-littlemips", 256*a85fe12eSEd Maste .bt_type = ETF_ELF, 257*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 258*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 259*a85fe12eSEd Maste .bt_machine = EM_MIPS, 260*a85fe12eSEd Maste }, 261*a85fe12eSEd Maste 262*a85fe12eSEd Maste { 263*a85fe12eSEd Maste .bt_name = "elf64-powerpc", 264*a85fe12eSEd Maste .bt_type = ETF_ELF, 265*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 266*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 267*a85fe12eSEd Maste .bt_machine = EM_PPC64, 268*a85fe12eSEd Maste }, 269*a85fe12eSEd Maste 270*a85fe12eSEd Maste { 271*a85fe12eSEd Maste .bt_name = "elf64-powerpcle", 272*a85fe12eSEd Maste .bt_type = ETF_ELF, 273*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 274*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 275*a85fe12eSEd Maste .bt_machine = EM_PPC64, 276*a85fe12eSEd Maste }, 277*a85fe12eSEd Maste 278*a85fe12eSEd Maste { 279*a85fe12eSEd Maste .bt_name = "elf64-sh64", 280*a85fe12eSEd Maste .bt_type = ETF_ELF, 281*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 282*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 283*a85fe12eSEd Maste .bt_machine = EM_SH, 284*a85fe12eSEd Maste }, 285*a85fe12eSEd Maste 286*a85fe12eSEd Maste { 287*a85fe12eSEd Maste .bt_name = "elf64-sh64l", 288*a85fe12eSEd Maste .bt_type = ETF_ELF, 289*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 290*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 291*a85fe12eSEd Maste .bt_machine = EM_SH, 292*a85fe12eSEd Maste }, 293*a85fe12eSEd Maste 294*a85fe12eSEd Maste { 295*a85fe12eSEd Maste .bt_name = "elf64-sh64-nbsd", 296*a85fe12eSEd Maste .bt_type = ETF_ELF, 297*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 298*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 299*a85fe12eSEd Maste .bt_machine = EM_SH, 300*a85fe12eSEd Maste .bt_osabi = ELFOSABI_NETBSD, 301*a85fe12eSEd Maste }, 302*a85fe12eSEd Maste 303*a85fe12eSEd Maste { 304*a85fe12eSEd Maste .bt_name = "elf64-sh64l-nbsd", 305*a85fe12eSEd Maste .bt_type = ETF_ELF, 306*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 307*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 308*a85fe12eSEd Maste .bt_machine = EM_SH, 309*a85fe12eSEd Maste .bt_osabi = ELFOSABI_NETBSD, 310*a85fe12eSEd Maste }, 311*a85fe12eSEd Maste 312*a85fe12eSEd Maste { 313*a85fe12eSEd Maste .bt_name = "elf64-sh64big-linux", 314*a85fe12eSEd Maste .bt_type = ETF_ELF, 315*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 316*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 317*a85fe12eSEd Maste .bt_machine = EM_SH, 318*a85fe12eSEd Maste .bt_osabi = ELFOSABI_LINUX, 319*a85fe12eSEd Maste }, 320*a85fe12eSEd Maste 321*a85fe12eSEd Maste { 322*a85fe12eSEd Maste .bt_name = "elf64-sh64-linux", 323*a85fe12eSEd Maste .bt_type = ETF_ELF, 324*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 325*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 326*a85fe12eSEd Maste .bt_machine = EM_SH, 327*a85fe12eSEd Maste .bt_osabi = ELFOSABI_LINUX, 328*a85fe12eSEd Maste }, 329*a85fe12eSEd Maste 330*a85fe12eSEd Maste { 331*a85fe12eSEd Maste .bt_name = "elf64-sparc", 332*a85fe12eSEd Maste .bt_type = ETF_ELF, 333*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 334*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 335*a85fe12eSEd Maste .bt_machine = EM_SPARCV9, 336*a85fe12eSEd Maste }, 337*a85fe12eSEd Maste 338*a85fe12eSEd Maste { 339*a85fe12eSEd Maste .bt_name = "elf64-sparc-freebsd", 340*a85fe12eSEd Maste .bt_type = ETF_ELF, 341*a85fe12eSEd Maste .bt_byteorder = ELFDATA2MSB, 342*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 343*a85fe12eSEd Maste .bt_machine = EM_SPARCV9, 344*a85fe12eSEd Maste .bt_osabi = ELFOSABI_FREEBSD 345*a85fe12eSEd Maste }, 346*a85fe12eSEd Maste 347*a85fe12eSEd Maste { 348*a85fe12eSEd Maste .bt_name = "elf64-x86-64", 349*a85fe12eSEd Maste .bt_type = ETF_ELF, 350*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 351*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 352*a85fe12eSEd Maste .bt_machine = EM_X86_64, 353*a85fe12eSEd Maste }, 354*a85fe12eSEd Maste 355*a85fe12eSEd Maste { 356*a85fe12eSEd Maste .bt_name = "elf64-x86-64-freebsd", 357*a85fe12eSEd Maste .bt_type = ETF_ELF, 358*a85fe12eSEd Maste .bt_byteorder = ELFDATA2LSB, 359*a85fe12eSEd Maste .bt_elfclass = ELFCLASS64, 360*a85fe12eSEd Maste .bt_machine = EM_X86_64, 361*a85fe12eSEd Maste .bt_osabi = ELFOSABI_FREEBSD 362*a85fe12eSEd Maste }, 363*a85fe12eSEd Maste 364*a85fe12eSEd Maste { 365*a85fe12eSEd Maste .bt_name = "ihex", 366*a85fe12eSEd Maste .bt_type = ETF_IHEX, 367*a85fe12eSEd Maste }, 368*a85fe12eSEd Maste 369*a85fe12eSEd Maste { 370*a85fe12eSEd Maste .bt_name = "srec", 371*a85fe12eSEd Maste .bt_type = ETF_SREC, 372*a85fe12eSEd Maste }, 373*a85fe12eSEd Maste 374*a85fe12eSEd Maste { 375*a85fe12eSEd Maste .bt_name = "symbolsrec", 376*a85fe12eSEd Maste .bt_type = ETF_SREC, 377*a85fe12eSEd Maste }, 378*a85fe12eSEd Maste 379*a85fe12eSEd Maste { 380*a85fe12eSEd Maste .bt_name = NULL, 381*a85fe12eSEd Maste .bt_type = ETF_NONE, 382*a85fe12eSEd Maste }, 383*a85fe12eSEd Maste }; 384