�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PK0]Y:Adoc.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" STAROFFICE_REGEXP='\.(sxw|sdw|stw|sxc|stc|sxi|sti|sxd|std||sxm||sxg)$' staroffice_console() { filename=$1;shift is_view=$1; shift if [ -n "${is_view}" ]; then is_view='-dump' fi tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` cd $tmp soffice2html.pl "${filename}" elinks ${is_view} content.html rm -rf "$tmp" } get_ooffice_executable() { which loffice >/dev/null 2>&1 && \ echo "loffice" || \ echo "ooffice" } do_view_action() { filetype=$1 case "${filetype}" in ps) ps2ascii "${MC_EXT_FILENAME}" ;; pdf) pdftotext -layout -nopgbrk "${MC_EXT_FILENAME}" - ;; odt) if [ ` echo "${MC_EXT_FILENAME}" | grep -c "${STAROFFICE_REGEXP}"` -ne 0 ]; then staroffice_console "${MC_EXT_FILENAME}" "view" else odt2txt "${MC_EXT_FILENAME}" fi ;; msdoc) which wvHtml >/dev/null 2>&1 && { tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` wvHtml "${MC_EXT_FILENAME}" --targetdir="$tmp" page.html elinks -dump "$tmp/page.html" rm -rf "$tmp" } || \ antiword -t "${MC_EXT_FILENAME}" || \ catdoc -w "${MC_EXT_FILENAME}" || \ word2x -f text "${MC_EXT_FILENAME}" - || \ strings "${MC_EXT_FILENAME}" ;; msxls) which xlHtml >/dev/null 2>&1 && { tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` xlhtml -a "${MC_EXT_FILENAME}" > "$tmp/page.html" elinks -dump "$tmp/page.html" rm -rf "$tmp" } || \ xls2csv "${MC_EXT_FILENAME}" || \ strings "${MC_EXT_FILENAME}" ;; dvi) which dvi2tty >/dev/null 2>&1 && \ dvi2tty "${MC_EXT_FILENAME}" || \ catdvi "${MC_EXT_FILENAME}" ;; djvu) djvused -e print-pure-txt "${MC_EXT_FILENAME}" ;; epub) einfo -v "${MC_EXT_FILENAME}" ;; *) ;; esac } do_open_action() { filetype=$1 case "${filetype}" in ps) if [ -n "$DISPLAY" ]; then (gv "${MC_EXT_FILENAME}" &) else ps2ascii "${MC_EXT_FILENAME}" | ${PAGER:-more} fi ;; pdf) if [ ! -n "$DISPLAY" ]; then pdftotext -layout -nopgbrk "${MC_EXT_FILENAME}" - | ${PAGER:-more} elif see > /dev/null 2>&1; then (see "${MC_EXT_FILENAME}" &) else (xpdf "${MC_EXT_FILENAME}" &) fi #(acroread "${MC_EXT_FILENAME}" &) #(ghostview "${MC_EXT_FILENAME}" &) ;; ooffice) if [ -n "$DISPLAY" ]; then OOFFICE=`get_ooffice_executable` (${OOFFICE} "${MC_EXT_FILENAME}" &) else if [ `echo "${MC_EXT_FILENAME}" | grep -c "${STAROFFICE_REGEXP}"` -ne 0 ]; then staroffice_console "${MC_EXT_FILENAME}" else odt2txt "${MC_EXT_FILENAME}" | ${PAGER:-more} fi fi ;; abw) (abiword "${MC_EXT_FILENAME}" &) ;; gnumeric) (gnumeric "${MC_EXT_FILENAME}" &) ;; msdoc) if [ -n "$DISPLAY" ]; then (abiword "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` wvHtml "${MC_EXT_FILENAME}" --targetdir="$tmp" page.html -1 elinks "$tmp/page.html" rm -rf "$tmp" fi ;; msxls) if [ -n "$DISPLAY" ]; then (gnumeric "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` xlhtml -a "${MC_EXT_FILENAME}" > "$tmp/page.html" elinks "$tmp/page.html" rm -rf "$tmp" fi ;; msppt) if [ -n "$DISPLAY" ]; then OOFFICE=`get_ooffice_executable` (${OOFFICE} "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else tmp=`mktemp -d ${TMPDIR:-/tmp}/%p.XXXXXX` ppthtml "${MC_EXT_FILENAME}" > "$tmp/page.html" elinks "$tmp/page.html" rm -rf "$tmp" fi ;; framemaker) fmclient -f "${MC_EXT_FILENAME}" ;; dvi) if [ -n "$DISPLAY" ]; then (xdvi "${MC_EXT_FILENAME}" &) else dvisvga "${MC_EXT_FILENAME}" || \ dvi2tty "${MC_EXT_FILENAME}" | ${PAGER:-more} fi ;; djvu) djview "${MC_EXT_FILENAME}" & ;; comic) cbrpager "${MC_EXT_FILENAME}" & ;; epub) lucidor "${MC_EXT_FILENAME}" >/dev/null & ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]\ text.shnuȯ#!/bin/sh # $1 - action # $2 - type of archive # $3 - pager action=$1 filetype=$2 pager=$3 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" get_unpacker() { filetype=$1 case "${filetype}" in man.gz) unpacker="gzip -dc" ;; man.bz) unpacker="bzip -dc" ;; man.bz2) unpacker="bzip2 -dc" ;; man.lz) unpacker="lzip -dc" ;; man.lz4) unpacker="lz4 -dc" ;; man.lzma) unpacker="lzma -dc" ;; man.xz) unpacker="xz -dc" ;; esac echo ${unpacker} } do_view_action() { filetype=$1 unpacker=`get_unpacker ${filetype}` case "${filetype}" in man) case "${MC_EXT_FILENAME}" in */log/*|*/logs/*) cat "${MC_EXT_FILENAME}" ;; *) MANROFFOPT=-c MAN_KEEP_FORMATTING=1 man -P cat "${MC_EXT_FILENAME}" ;; esac ;; pod) pod2man "${MC_EXT_FILENAME}" | nroff -c -Tlatin1 -mandoc ;; nroff.me) nroff -c -Tlatin1 -me "${MC_EXT_FILENAME}" ;; nroff.ms) nroff -c -Tlatin1 -ms "${MC_EXT_FILENAME}" ;; man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.xz) case "${MC_EXT_FILENAME}" in */log/*|*/logs/*) ${unpacker} "${MC_EXT_FILENAME}" ;; *) # "man" takes care of uncompressing. # This way the stdin is left intact so the correct width is used. MANROFFOPT=-c MAN_KEEP_FORMATTING=1 man -P cat "${MC_EXT_FILENAME}" ;; esac ;; *) ;; esac } do_open_action() { filetype=$1 pager=$2 unpacker=`get_unpacker ${filetype}` case "${filetype}" in info) info -f "${MC_EXT_FILENAME}" ;; man) case "${MC_EXT_FILENAME}" in */log/*|*/logs/*) cat "${MC_EXT_FILENAME}" ;; *) { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | \ nroff -c -Tlatin1 -mandoc ;; esac | ${pager} ;; pod) pod2man "${MC_EXT_FILENAME}" | nroff -c -Tlatin1 -mandoc | ${pager} ;; nroff.me) nroff -c -Tlatin1 -me "${MC_EXT_FILENAME}" | ${pager} ;; nroff.ms) nroff -c -Tlatin1 -ms "${MC_EXT_FILENAME}" | ${pager} ;; man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.xz) case "${MC_EXT_FILENAME}" in */log/*|*/logs/*) ${unpacker} "${MC_EXT_FILENAME}" ;; *) ${unpacker} "${MC_EXT_FILENAME}" | nroff -c -Tlatin1 -mandoc ;; esac | ${pager} ;; chm) if [ -n "$DISPLAY" ]; then which kchmviewer > /dev/null 2>&1 \ && (kchmviewer "${MC_EXT_FILENAME}" &) \ || (xchm "${MC_EXT_FILENAME}" &) else chm_http "${MC_EXT_FILENAME}" & elinks http://localhost:8080/index.html kill -INT %1 fi ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" "${pager}" ;; *) ;; esac PK0]lkkimage.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in jpeg) identify "${MC_EXT_FILENAME}" which exif >/dev/null 2>&1 && exif "${MC_EXT_FILENAME}" 2>/dev/null ;; xpm) sxpm "${MC_EXT_FILENAME}" ;; *) identify "${MC_EXT_FILENAME}" ;; esac } do_open_action() { filetype=$1 case "${filetype}" in xbm) (bitmap "${MC_EXT_FILENAME}" &) ;; xcf) (gimp "${MC_EXT_FILENAME}" &) ;; svg) (inkscape "${MC_EXT_FILENAME}" &) ;; *) if [ -n "$DISPLAY" ]; then (gqview "${MC_EXT_FILENAME}" &) elif see >/dev/null 2>&1; then (see "${MC_EXT_FILENAME}" &) else (zgv "${MC_EXT_FILENAME}" &) fi ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]55web.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in html) links -dump "${MC_EXT_FILENAME}" 2>/dev/null || \ w3m -dump "${MC_EXT_FILENAME}" 2>/dev/null || \ lynx -dump -force_html "${MC_EXT_FILENAME}" ;; *) ;; esac } do_open_action() { filetype=$1 case "${filetype}" in html) (if [ -n "" -a -n "$DISPLAY" ]; then ( file://"${MC_EXT_CURRENTDIR}"/"${MC_EXT_BASENAME}" &) 1>&2 else elinks "${MC_EXT_FILENAME}" || \ links "${MC_EXT_FILENAME}" || \ lynx -force_html "${MC_EXT_FILENAME}" || \ ${PAGER:-more} "${MC_EXT_FILENAME}" fi) 2>/dev/null ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]||sound.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in mp3) mpg123 -vtn1 "${MC_EXT_FILENAME}" 2>&1 | \ sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p' ;; ogg) ogginfo "${MC_EXT_FILENAME}" ;; wma) mplayer -quiet -slave -frames 0 -vo null -ao null -identify "${MC_EXT_FILENAME}" 2>/dev/null | \ tail +13 || file "${MC_EXT_FILENAME}" ;; *) cat "${MC_EXT_FILENAME}" ;; esac } do_open_action() { filetype=$1 case "${filetype}" in common) if [ -n "$DISPLAY" ]; then (xmms "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else play "${MC_EXT_FILENAME}" fi ;; mod) mikmod "${MC_EXT_FILENAME}" #tracker "${MC_EXT_FILENAME}" ;; wav22) vplay -s 22 "${MC_EXT_FILENAME}" ;; mp3) if [ -n "$DISPLAY" ]; then (xmms "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else mpg123 "${MC_EXT_FILENAME}" fi ;; ogg) if [ -n "$DISPLAY" ]; then (xmms "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else ogg123 "${MC_EXT_FILENAME}" fi ;; midi) timidity "${MC_EXT_FILENAME}" ;; wma) mplayer -vo null "${MC_EXT_FILENAME}" ;; playlist) if [ -n "$DISPLAY" ]; then (xmms -p "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else mplayer -vo null -playlist "${MC_EXT_FILENAME}" fi ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]^misc.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in iso9660) isoinfo -d -i "${MC_EXT_FILENAME}" && isoinfo -l -R -J -i "${MC_EXT_FILENAME}" ;; cat) /bin/cat "${MC_EXT_FILENAME}" 2>/dev/null ;; ar) file "${MC_EXT_FILENAME}" && nm -C "${MC_EXT_FILENAME}" ;; lib) gplib -t "${MC_EXT_FILENAME}" | \ /usr/bin/perl -e 'while (<>) { @a=split /[\s\t]+/, $_; printf ("%-30s | %10d | %s.%s.%02d | %s\n", $a[0], ($a[1]*1),$a[7], lc($a[4]), $a[5], $a[6]);}' ;; so) file "${MC_EXT_FILENAME}" && nm -C -D "${MC_EXT_FILENAME}" ;; elf) file "${MC_EXT_FILENAME}" && nm -C "${MC_EXT_FILENAME}" ;; dbf) dbview -b "${MC_EXT_FILENAME}" ;; sqlite) sqlite3 "${MC_EXT_FILENAME}" .dump ;; mo) msgunfmt "${MC_EXT_FILENAME}" || \ cat "${MC_EXT_FILENAME}" ;; lyx) lyxcat "${MC_EXT_FILENAME}" ;; torrent) ctorrent -x "${MC_EXT_FILENAME}" 2>/dev/null ;; javaclass) jad -p "${MC_EXT_FILENAME}" 2>/dev/null ;; *) ;; esac } do_open_action() { filetype=$1 case "${filetype}" in dbf) dbview "${MC_EXT_FILENAME}" ;; sqlite) sqlite3 "${MC_EXT_FILENAME}" ;; glade) if glade-3 --version >/dev/null 2>&1; then (glade-3 "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else (glade-2 "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) fi ;; po) (poedit "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) ;; lyx) lyx "${MC_EXT_FILENAME}" ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]pQ archive.shnuȯ#!/bin/sh # $1 - action # $2 - type of file # $3 - pager action=$1 filetype=$2 pager=$3 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in gz) gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; bz2) bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; bzip) bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; lz) lzip -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; lz4) lz4 -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; lzma) lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; xz) xz -dc "${MC_EXT_FILENAME}" 2>/dev/null ;; tar) tar tvvf - < "${MC_EXT_FILENAME}" ;; tar.gz|tar.qpr) gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.bzip) bzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.bzip2) bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.lz) lzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.lz4) lz4 -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.lzma) lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.xz) xz -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; tar.F) freeze -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ tar tvvf - ;; lha) lha l "${MC_EXT_FILENAME}" ;; arj) arj l "${MC_EXT_FILENAME}" 2>/dev/null || \ unarj l "${MC_EXT_FILENAME}" ;; cab) cabextract -l "${MC_EXT_FILENAME}" ;; ha) ha lf "${MC_EXT_FILENAME}" ;; rar) rar v -c- "${MC_EXT_FILENAME}" 2>/dev/null || \ unrar v -c- "${MC_EXT_FILENAME}" ;; alz) unalz -l "${MC_EXT_FILENAME}" ;; cpio.z|cpio.gz) gzip -dc "${MC_EXT_FILENAME}" | \ cpio -itv 2>/dev/null ;; cpio.lz) lzip -dc "${MC_EXT_FILENAME}" | \ cpio -itv 2>/dev/null ;; cpio.lz4) lz4 -dc "${MC_EXT_FILENAME}" | \ cpio -itv 2>/dev/null ;; cpio.xz) xz -dc "${MC_EXT_FILENAME}" | \ cpio -itv 2>/dev/null ;; cpio) cpio -itv < "${MC_EXT_FILENAME}" 2>/dev/null ;; 7z) 7za l "${MC_EXT_FILENAME}" 2>/dev/null || 7z l "${MC_EXT_FILENAME}" ;; ace) unace l "${MC_EXT_FILENAME}" ;; arc) arc l "${MC_EXT_FILENAME}" ;; zip) unzip -v "${MC_EXT_FILENAME}" ;; zoo) zoo l "${MC_EXT_FILENAME}" ;; *) ;; esac } do_open_action() { filetype=$1 pager=$2 case "${filetype}" in bzip2) bzip2 -dc "${MC_EXT_FILENAME}" | ${pager} ;; bzip) bzip -dc "${MC_EXT_FILENAME}" | ${pager} ;; gz) gz -dc "${MC_EXT_FILENAME}" | ${pager} ;; lz) lzip -dc "${MC_EXT_FILENAME}" | ${pager} ;; lz4) lz4 -dc "${MC_EXT_FILENAME}" | ${pager} ;; lzma) lzma -dc "${MC_EXT_FILENAME}" | ${pager} ;; xz) xz -dc "${MC_EXT_FILENAME}" | ${pager} ;; par2) par2 r "${MC_EXT_FILENAME}" ;; *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" "${pager}" ;; *) ;; esac PK0]dv\\ package.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in trpm) rpm -qivl --scripts `basename "${MC_EXT_BASENAME}" .trpm` ;; src.rpm|rpm) if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" else RPM="rpm" fi $RPM -qivlp --scripts "${MC_EXT_FILENAME}" ;; deb) dpkg-deb -I "${MC_EXT_FILENAME}" && echo && dpkg-deb -c "${MC_EXT_FILENAME}" ;; debd) dpkg -s `echo "${MC_EXT_BASENAME}" | sed 's/\([0-9a-z.-]*\).*/\1/'` ;; deba) apt-cache show `echo "${MC_EXT_BASENAME}" | sed 's/\([0-9a-z.-]*\).*/\1/'` ;; *) ;; esac } do_open_action() { filetype=$1 case "${filetype}" in *) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]^ video.shnuȯ#!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in *) mplayer -identify -vo null -ao null -frames 0 "${MC_EXT_FILENAME}" 2>&1 | \ sed -n 's/^ID_//p' ;; esac } do_open_action() { filetype=$1 case "${filetype}" in ram) (realplay "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) ;; *) if [ -n "$DISPLAY" ]; then (mplayer "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) else mplayer -vo null "${MC_EXT_FILENAME}" fi #(gtv "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) #(xanim "${MC_EXT_FILENAME}" >/dev/null 2>&1 &) ;; esac } case "${action}" in view) do_view_action "${filetype}" ;; open) ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \ do_open_action "${filetype}" ;; *) ;; esac PK0]Y:Adoc.shnuȯPK0]\ text.shnuȯPK0]lkk!image.shnuȯPK0]55%web.shnuȯPK0]||"*sound.shnuȯPK0]^1misc.shnuȯPK0]pQ :archive.shnuȯPK0]dv\\ Hpackage.shnuȯPK0]^ pMvideo.shnuȯPK uQ