0a
      ˆl–ßi~”Je¶…8 �q¦î	•1hßÁ0ÃÅ  #   ˆl–Ðz¾”Ja,j€~ãb¸”Å£ÂƒMÁÄÆ 	ˆ    ‹     �Xko¹ý®_qaX»µF¶²ÝÆv%qaåØ�ì´it©J"<"'äŒ¹�ßÞsIŽf$?Ò4H”y�ç^Þç¹óÃô€ÊN‚_þs­Ê\ž‘•"+¬™«\Ö¯U¹4öŒ>9)©\J:Ü\¿»NŽÈÉ´TFö‹ßJ-­(yñÀ¥Je&Åõ““äô�[IôZ”�Ô?é÷»'ýîé�õ›¡+‘ŸÑdãJ¹¢A¶RZ¹ˆ�P/š˜Ê¦Ø^•*ïæJW_�ÿâOID	½¨ÄÎõ"WnÉ�;Éõ;:Ÿ^_�/ßGçtðgükTÀNwñðQU€§$Mõa² $s4øBÓCñ¥“È<°~úC'q?á¿ÏtÒI4Ôå�$“t3u¦óátú»þt~E?ãâôü¼è$	–åŽ.®/ýªDÍ=Êâ3Mÿ9í$D+gh½^'åJ¤|/Va! D|”G^Œ†ï�\�Ó,¯$�égú¶úw'™ÀVïç�V0Ð´ëcƒn¥Õ8gx¬ô‚”ž»Š>â½“�ï/¯&Ã	Ìä
œðe†úÉ¼Ø}Ë?œ�'ÃË÷aõõR9Z	]À…„ð©VR—Žî¤uØÂ‘Dfîƒ€+VI y}>y5^]·€ òÑ©Y<£ÊIçQ`ÿÞ§½Ö¢Ö�¨4¤tI‚ã™2Q
ÂcWEØŒLUU™‹×„»ZÝËXc‘7©É«•vg^ê\Yçò�®V3iùXinÒ[*UzëŽý+$—�¶õB±’õé_Ñ¼Ò>ó‚Yûe½”–³Ô8ÉvÜ82iZY+³câãóúr©lÍÎ½Æ¿åFdÎ-C§2«¬<¦Täi•#{3Øƒùt ™,×Rê½Ã¹µ´\êE¹| ¹o8¸ øZaí,ð€8{RÌrå&úüÒ»»	³iWÀ}Çä/q“ç¸í$ã	ýØ¹
NÌsr›ÕÌ ·¢ÙV¢`¿'ôrC™œ‹*/wUtA+cùàñ\–�V†à�4Ÿ7zÌÚz ¢Ë™Òûº(�©;•¡à¯ðÁŒ�P+5b~Rµ!9B¼!îØ�>sn¡ðÃ¸7:ßÄ@Ž‡‹É‹êVp6d4Û´Â(øeoYŒ˜±ìC¯qg\7«æsiC�ayÊa¨	fä—1BÒsµ¨B)¥C¤‡©KVšµ�¯¡ôÑ1òh7º§‡é·MbH„ß†ó˜È°LÉg=,Q,ä9ø-]²þ|°°ÄBÜ¹µi0#d2UH‚:„±ïqç®ÚžˆáÃ@(%Í]tÍ¤ è|ƒT‰¯Ž‘ 
ZÍšhSÎW¡ÊÙž³iÏ7 ^è;	v,¡�¦"·4Už‘‹�1xÉg2]elB«Ø E’Ïwø;Z]9ÍÖþÏÊ�Áb¬dsÀÈ‚¹ýnl‚¿HæNúÊ²µw»mÕ�:sµ}‡ÉâÞWSBb:ì
|:Ï7{¦½Ø1-Œ£Š\I[[·ý øµØ@aÓ¥*ÁE|Æ™…qNÍ JˆÈAª•_*©S8¥ŒÎh•ÏLæŠ›ÍNÃV[e¬EØðêê&&\he\XÌÚyÓa�“å®¨ãP.›Ô–s�^„ÂßZþîï	�"ù)9ý‰2kŠ¦kA¸ªà’DhV´2ph sûš�)À&²tÏä*KVl9€J‹|±üwðéBîW¢¢í¤V��‡p7í>•™by’ux*)öZsB7Ž·í�™1ÓçU^GñZp½3ô,+ï¥oj-_7j |•ŠCÉÛLQÄ½Î†bøSðbS¡Ñ‘F…’Ì,ÖIW£ÃÓ#N+¾/Â­G³^[mà8\¶=ÙJ“šy#�ä
õq¯¾wO“Sï“™L,Ð¦G¤¥Ì|àÞj³1‡6_Ç_€fL‘Ý	�Ê=_Û¶¯}5žË:Î÷ý#�ã«ëŒµ¾3·¡ËXcÊF×G	˜‹Ýž¿!‰„ÜÌL °„µU¥ C!Ü†mBïÌš7‡Ú|WyØù,]Þ2í_ÓÉ1ÁØŒ«DL˜¶…¸¨�¦ÐB`ÀAŸÌ¸‰må{8œöL×¯—xl¯	Ý>â]Û8Ù=µ�ý<Ë@ç¾êÃû!Í
û/+ëv?\ 82ŽIŽQgO­î·˜êîº]Öùóm(£hqä†Ÿ2=Ý³Ð‡=ñ¨ÐXèµrE.6Û¢MïY–üªÊ=Àå“yñ�ŸR)¿–ûÌLyÄÜòÒñ‘²'ì†œš{ù�j+÷,OˆÀ×¾±0Ë¥�)\WZÜî¸ßï¢ÔEd&CÌûdt6í5‡}yóöÉQÏçèÚØÛH�&/’¯\µ\Ã÷A¥çËAºÄL_ÏR2pÑ¹5+`õ9Y²k�÷EŸ�ÞDi1Ø¬7ŽH8·ã[sœÞ"Í1—óÒ7p?K›*ç)ë6úÂ4 AÐÞæ['·[ÎªBLÏ˜CÏP™sÕ×¦å÷•ÉªÐÐÄ�P9FN�úÇ,0r9 a6Ú°6³Jåö˜u%¬©#üÔ˜÷/0¹ÿþpÈ†ÀLÃ9dæQÍÔ¶ÌÝïÀ»¯›fü;&l¹FW–_�L].ÜÞ@LvÕ-ÐDåXùŒÇXÝf^<o)½T3Å„<;Rh–†îí'Ý=’¥ eÒ�BYtÍ`'€ýUðœÀŽôTJ¹A¼÷e#Žœç\\�ÎC¸¿´à|òÑ”�ÄßoÚÅíÌoäÏ9šBš%zÞIæˆ×W¢ö×7ú8	HÁ´«-®sÔ_¿?j‹pMXvý“@¹H‡ØÿWðú¸]2švû'Ï+à3Ž"«�xß'z�A›þ�ºÚJØÈ˜[fl<Ì·‚³å¬ã8²CBì\ßg€iWÜ}ÃäÑ÷ÂøC1º—ÚÓË]ÎŠr[ï�cß§MAÿ©ëa¨,®¨w��s!¹øcÖzJÓ1®Üe»ýÛw÷ÊÄ“L=<Åæ¾¥««2³§ð=+ÿöêr|=|ÿ–šÎñvšU‹ø•ª¦±Ê¹
WV¤0k>M;ÉÍxDË²,ÜY¯·€««Y‚ÚÔ»Ejç÷â¶×ú”Ûóî€ð79*>†£ÁËáhxýñù\ÈmEØmƒn). «Lœ2³Ö1}£z 4º�ÝL­WT³Ø€ÚíèµÃ$økˆóOºwÒŸæ¿>ÈMÂ    0   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÃƒì¿_ŒuÐb&=LyYÿÆÈ “    #!/usr/bin/sh
# SPDX-License-Identifier: GPL-2.0-only
#
# Generate a syscall number header.
#
# Each line of the syscall table should have the following format:
#
# NR ABI NAME [NATIVE] [COMPAT]
#
# NR       syscall number
# ABI      ABI name
# NAME     syscall name
# NATIVE   native entry point (optional)
# COMPAT   compat entry point (optional)

set -e

usage() {
	echo >&2 "usage: $0 [--abis ABIS] [--emit-nr] [--offset OFFSET] [--prefix PREFIX] INFILE OUTFILE" >&2
	echo >&2
	echo >&2 "  INFILE    input syscall table"
	echo >&2 "  OUTFILE   output header file"
	echo >&2
	echo >&2 "options:"
	echo >&2 "  --abis ABIS        ABI(s) to handle (By default, all lines are handled)"
	echo >&2 "  --emit-nr          Emit the macro of the number of syscalls (__NR_syscalls)"
	echo >&2 "  --offset OFFSET    The offset of syscall numbers"
	echo >&2 "  --prefix PREFIX    The prefix to the macro like __NR_<PREFIX><NAME>"
	exit 1
}

# default unless specified by options
abis=
emit_nr=
offset=
prefix=

while [ $# -gt 0 ]
do
	case $1 in
	--abis)
		abis=$(echo "($2)" | tr ',' '|')
		shift 2;;
	--emit-nr)
		emit_nr=1
		shift 1;;
	--offset)
		offset=$2
		shift 2;;
	--prefix)
		prefix=$2
		shift 2;;
	-*)
		echo "$1: unknown option" >&2
		usage;;
	*)
		break;;
	esac
done

if [ $# -ne 2 ]; then
	usage
fi

infile="$1"
outfile="$2"

guard=_UAPI_ASM_$(basename "$outfile" |
	sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
	-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g')

grep -E "^[0-9A-