From 3fc86d7a28cdcefa6dda0ca3f13ba274ccf36b2b Mon Sep 17 00:00:00 2001 From: Cameron Thompson <50184035+iamromulan@users.noreply.github.com> Date: Fri, 25 Jul 2025 21:54:39 -0400 Subject: [PATCH] Install procd and depnds to skeleton --- .../installer/openwrt-sdxlemur-skel/bin/ubus | Bin 0 -> 12300 bytes .../etc/hotplug-preinit.json | 18 + .../openwrt-sdxlemur-skel/etc/hotplug.json | 87 +++ .../lib/functions/procd.sh | 658 ++++++++++++++++++ .../lib/libblobmsg_json.so.20220515 | Bin 0 -> 8195 bytes .../lib/libjson_script.so.20220515 | Bin 0 -> 12297 bytes .../openwrt-sdxlemur-skel/lib/libsetlbf.so | Bin 0 -> 4099 bytes .../lib/libubus.so.20220601 | Bin 0 -> 20566 bytes .../openwrt-sdxlemur-skel/lib/libvalidate.so | Bin 0 -> 12858 bytes .../openwrt-sdxlemur-skel/sbin/askfirst | Bin 0 -> 4099 bytes .../installer/openwrt-sdxlemur-skel/sbin/init | Bin 0 -> 12489 bytes .../openwrt-sdxlemur-skel/sbin/kmodloader | Bin 0 -> 12293 bytes .../openwrt-sdxlemur-skel/sbin/procd | Bin 0 -> 79757 bytes .../openwrt-sdxlemur-skel/sbin/reload_config | 15 + .../openwrt-sdxlemur-skel/sbin/service | 30 + .../openwrt-sdxlemur-skel/sbin/ubusd | Bin 0 -> 20578 bytes .../openwrt-sdxlemur-skel/sbin/udevtrigger | Bin 0 -> 8195 bytes .../openwrt-sdxlemur-skel/sbin/upgraded | Bin 0 -> 8201 bytes .../openwrt-sdxlemur-skel/sbin/validate_data | Bin 0 -> 8191 bytes .../openwrt-sdxlemur-skel/usr/bin/jshn | Bin 0 -> 12295 bytes .../usr/lib/opkg/info/jshn.control | 12 + .../usr/lib/opkg/info/jshn.list | 2 + .../usr/lib/opkg/info/jshn.postinst | 5 + .../usr/lib/opkg/info/jshn.prerm | 4 + .../opkg/info/libblobmsg-json20220515.control | 14 + .../opkg/info/libblobmsg-json20220515.list | 1 + .../info/libblobmsg-json20220515.postinst | 5 + .../opkg/info/libblobmsg-json20220515.prerm | 4 + .../opkg/info/libjson-script20220515.control | 14 + .../lib/opkg/info/libjson-script20220515.list | 1 + .../opkg/info/libjson-script20220515.postinst | 5 + .../opkg/info/libjson-script20220515.prerm | 4 + .../usr/lib/opkg/info/libubus20220601.control | 14 + .../usr/lib/opkg/info/libubus20220601.list | 1 + .../lib/opkg/info/libubus20220601.postinst | 5 + .../usr/lib/opkg/info/libubus20220601.prerm | 4 + .../usr/lib/opkg/info/procd.control | 14 + .../usr/lib/opkg/info/procd.list | 11 + .../usr/lib/opkg/info/procd.postinst | 5 + .../usr/lib/opkg/info/procd.prerm | 4 + .../usr/lib/opkg/info/ubox.control | 13 + .../usr/lib/opkg/info/ubox.list | 3 + .../usr/lib/opkg/info/ubox.postinst | 5 + .../usr/lib/opkg/info/ubox.prerm | 4 + .../usr/lib/opkg/info/ubus.control | 12 + .../usr/lib/opkg/info/ubus.list | 1 + .../usr/lib/opkg/info/ubus.postinst | 5 + .../usr/lib/opkg/info/ubus.prerm | 4 + .../usr/lib/opkg/info/ubusd.control | 13 + .../usr/lib/opkg/info/ubusd.list | 1 + .../usr/lib/opkg/info/ubusd.postinst | 5 + .../usr/lib/opkg/info/ubusd.prerm | 4 + .../openwrt-sdxlemur-skel/usr/lib/opkg/status | 56 ++ 53 files changed, 1063 insertions(+) create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/bin/ubus create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug-preinit.json create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug.json create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/functions/procd.sh create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/libblobmsg_json.so.20220515 create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/libjson_script.so.20220515 create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/libsetlbf.so create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/libubus.so.20220601 create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/lib/libvalidate.so create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/askfirst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/init create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/kmodloader create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/procd create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/reload_config create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/service create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/ubusd create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/udevtrigger create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/upgraded create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/sbin/validate_data create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/bin/jshn create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.prerm create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.control create mode 100644 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.list create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.postinst create mode 100755 opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.prerm diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/bin/ubus b/opkg-feed/installer/openwrt-sdxlemur-skel/bin/ubus new file mode 100755 index 0000000000000000000000000000000000000000..4a54a136ccd964847b10c52eeccbbade4f50fb67 GIT binary patch literal 12300 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 literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug-preinit.json b/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug-preinit.json new file mode 100644 index 0000000..658c685 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug-preinit.json @@ -0,0 +1,18 @@ +[ + [ "case", "ACTION", { + "add": [ + [ "if", + [ "has", "FIRMWARE" ], + [ + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ], + [ "load-firmware", "/lib/firmware" ], + [ "return" ] + ] + ] + ] + } ], + [ "if", + [ "eq", "SUBSYSTEM", "button" ], + [ "exec", "/etc/rc.button/failsafe" ] + ] +] diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug.json b/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug.json new file mode 100644 index 0000000..b930b30 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/etc/hotplug.json @@ -0,0 +1,87 @@ +[ + [ "case", "ACTION", { + "add": [ + [ "if", + [ "and", + [ "has", "MAJOR" ], + [ "has", "MINOR" ] + ], + [ + [ "if", + [ "eq", "DEVNAME", "null" ], + [ + [ "makedev", "/dev/%DEVNAME%", "0666" ], + [ "exec", "/bin/ln", "-s", "/proc/self/fd/0", "/dev/stdin" ], + [ "exec", "/bin/ln", "-s", "/proc/self/fd/1", "/dev/stdout" ], + [ "exec", "/bin/ln", "-s", "/proc/self/fd/2", "/dev/stderr" ], + [ "return" ] + ] + ], + [ "if", + [ "eq", "DEVNAME", + [ "full", "ptmx", "zero", "tty", "net", "random", "urandom" ] + ], + [ + [ "makedev", "/dev/%DEVNAME%", "0666" ], + [ "return" ] + ] + ], + [ "if", + [ "regex", "DEVNAME", "^snd" ], + [ "makedev", "/dev/%DEVNAME%", "0660", "audio" ] + ], + [ "if", + [ "regex", "DEVNAME", "^tty" ], + [ "makedev", "/dev/%DEVNAME%", "0660", "dialout" ] + ], + [ "if", + [ "has", "DEVNAME" ], + [ "makedev", "/dev/%DEVNAME%", "0600" ] + ] + ] + ], + [ "if", + [ "has", "FIRMWARE" ], + [ + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ], + [ "load-firmware", "/lib/firmware" ], + [ "return" ] + ] + ], + [ "if", + [ "regex", "DEVNAME", "^ttyGS" ], + [ "start-console", "%DEVNAME%" ] + ] + ], + "remove" : [ + [ "if", + [ "and", + [ "has", "DEVNAME" ], + [ "has", "MAJOR" ], + [ "has", "MINOR" ] + ], + [ "rm", "/dev/%DEVNAME%" ] + ] + ] + } ], + [ "if", + [ "and", + [ "has", "BUTTON" ], + [ "eq", "SUBSYSTEM", "button" ] + ], + [ "button", "/etc/rc.button/%BUTTON%" ] + ], + [ "if", + [ "and", + [ "eq", "SUBSYSTEM", "usb-serial" ], + [ "regex", "DEVNAME", + [ "^ttyUSB", "^ttyACM" ] + ] + ], + [ "exec", "/sbin/hotplug-call", "tty" ], + [ "if", + [ "isdir", "/etc/hotplug.d/%SUBSYSTEM%" ], + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ] + ] + ] +] diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/lib/functions/procd.sh b/opkg-feed/installer/openwrt-sdxlemur-skel/lib/functions/procd.sh new file mode 100644 index 0000000..d834fa6 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/lib/functions/procd.sh @@ -0,0 +1,658 @@ +# procd API: +# +# procd_open_service(name, [script]): +# Initialize a new procd command message containing a service with one or more instances +# +# procd_close_service() +# Send the command message for the service +# +# procd_open_instance([name]): +# Add an instance to the service described by the previous procd_open_service call +# +# procd_set_param(type, [value...]) +# Available types: +# command: command line (array). +# respawn info: array with 3 values $fail_threshold $restart_timeout $max_fail +# env: environment variable (passed to the process) +# data: arbitrary name/value pairs for detecting config changes (table) +# file: configuration files (array) +# netdev: bound network device (detects ifindex changes) +# limits: resource limits (passed to the process) +# user: $username to run service as +# group: $groupname to run service as +# pidfile: file name to write pid into +# stdout: boolean whether to redirect commands stdout to syslog (default: 0) +# stderr: boolean whether to redirect commands stderr to syslog (default: 0) +# facility: syslog facility used when logging to syslog (default: daemon) +# +# No space separation is done for arrays/tables - use one function argument per command line argument +# +# procd_close_instance(): +# Complete the instance being prepared +# +# procd_running(service, [instance]): +# Checks if service/instance is currently running +# +# procd_kill(service, [instance]): +# Kill a service instance (or all instances) +# +# procd_send_signal(service, [instance], [signal]) +# Send a signal to a service instance (or all instances) +# + +. "$IPKG_INSTROOT/usr/share/libubox/jshn.sh" + +PROCD_RELOAD_DELAY=1000 +_PROCD_SERVICE= + +procd_lock() { + local basescript=$(readlink "$initscript") + local service_name="$(basename ${basescript:-$initscript})" + + flock -n 1000 &> /dev/null + if [ "$?" != "0" ]; then + exec 1000>"$IPKG_INSTROOT/var/lock/procd_${service_name}.lock" + flock 1000 + if [ "$?" != "0" ]; then + logger "warning: procd flock for $service_name failed" + fi + fi +} + +_procd_call() { + local old_cb + + json_set_namespace procd old_cb + "$@" + json_set_namespace $old_cb +} + +_procd_wrapper() { + procd_lock + while [ -n "$1" ]; do + eval "$1() { _procd_call _$1 \"\$@\"; }" + shift + done +} + +_procd_ubus_call() { + local cmd="$1" + + [ -n "$PROCD_DEBUG" ] && json_dump >&2 + ubus call service "$cmd" "$(json_dump)" + json_cleanup +} + +_procd_open_service() { + local name="$1" + local script="$2" + + _PROCD_SERVICE="$name" + _PROCD_INSTANCE_SEQ=0 + + json_init + json_add_string name "$name" + [ -n "$script" ] && json_add_string script "$script" + json_add_object instances +} + +_procd_close_service() { + json_close_object + _procd_open_trigger + service_triggers + _procd_close_trigger + _procd_open_data + service_data + _procd_close_data + _procd_ubus_call ${1:-set} +} + +_procd_add_array_data() { + while [ "$#" -gt 0 ]; do + json_add_string "" "$1" + shift + done +} + +_procd_add_array() { + json_add_array "$1" + shift + _procd_add_array_data "$@" + json_close_array +} + +_procd_add_table_data() { + while [ -n "$1" ]; do + local var="${1%%=*}" + local val="${1#*=}" + [ "$1" = "$val" ] && val= + json_add_string "$var" "$val" + shift + done +} + +_procd_add_table() { + json_add_object "$1" + shift + _procd_add_table_data "$@" + json_close_object +} + +_procd_open_instance() { + local name="$1"; shift + + _PROCD_INSTANCE_SEQ="$(($_PROCD_INSTANCE_SEQ + 1))" + name="${name:-instance$_PROCD_INSTANCE_SEQ}" + json_add_object "$name" + [ -n "$TRACE_SYSCALLS" ] && json_add_boolean trace "1" +} + +_procd_open_trigger() { + let '_procd_trigger_open = _procd_trigger_open + 1' + [ "$_procd_trigger_open" -gt 1 ] && return + json_add_array "triggers" +} + +_procd_close_trigger() { + let '_procd_trigger_open = _procd_trigger_open - 1' + [ "$_procd_trigger_open" -lt 1 ] || return + json_close_array +} + +_procd_open_data() { + let '_procd_data_open = _procd_data_open + 1' + [ "$_procd_data_open" -gt 1 ] && return + json_add_object "data" +} + +_procd_close_data() { + let '_procd_data_open = _procd_data_open - 1' + [ "$_procd_data_open" -lt 1 ] || return + json_close_object +} + +_procd_open_validate() { + json_select .. + json_add_array "validate" +} + +_procd_close_validate() { + json_close_array + json_select triggers +} + +_procd_add_jail() { + json_add_object "jail" + json_add_string name "$1" + + shift + + for a in $@; do + case $a in + log) json_add_boolean "log" "1";; + ubus) json_add_boolean "ubus" "1";; + procfs) json_add_boolean "procfs" "1";; + sysfs) json_add_boolean "sysfs" "1";; + ronly) json_add_boolean "ronly" "1";; + requirejail) json_add_boolean "requirejail" "1";; + netns) json_add_boolean "netns" "1";; + userns) json_add_boolean "userns" "1";; + cgroupsns) json_add_boolean "cgroupsns" "1";; + esac + done + json_add_object "mount" + json_close_object + json_close_object +} + +_procd_add_jail_mount() { + local _json_no_warning=1 + + json_select "jail" + [ $? = 0 ] || return + json_select "mount" + [ $? = 0 ] || { + json_select .. + return + } + for a in $@; do + json_add_string "$a" "0" + done + json_select .. + json_select .. +} + +_procd_add_jail_mount_rw() { + local _json_no_warning=1 + + json_select "jail" + [ $? = 0 ] || return + json_select "mount" + [ $? = 0 ] || { + json_select .. + return + } + for a in $@; do + json_add_string "$a" "1" + done + json_select .. + json_select .. +} + +_procd_set_param() { + local type="$1"; shift + + case "$type" in + env|data|limits) + _procd_add_table "$type" "$@" + ;; + command|netdev|file|respawn|watch|watchdog) + _procd_add_array "$type" "$@" + ;; + error) + json_add_array "$type" + json_add_string "" "$@" + json_close_array + ;; + nice|term_timeout) + json_add_int "$type" "$1" + ;; + reload_signal) + json_add_int "$type" $(kill -l "$1") + ;; + pidfile|user|group|seccomp|capabilities|facility|\ + extroot|overlaydir|tmpoverlaysize) + json_add_string "$type" "$1" + ;; + stdout|stderr|no_new_privs) + json_add_boolean "$type" "$1" + ;; + esac +} + +_procd_add_timeout() { + [ "$PROCD_RELOAD_DELAY" -gt 0 ] && json_add_int "" "$PROCD_RELOAD_DELAY" + return 0 +} + +_procd_add_interface_trigger() { + json_add_array + _procd_add_array_data "$1" + shift + + json_add_array + _procd_add_array_data "if" + + json_add_array + _procd_add_array_data "eq" "interface" "$1" + shift + json_close_array + + json_add_array + _procd_add_array_data "run_script" "$@" + json_close_array + + json_close_array + _procd_add_timeout + json_close_array +} + +_procd_add_reload_interface_trigger() { + local script=$(readlink "$initscript") + local name=$(basename ${script:-$initscript}) + + _procd_open_trigger + _procd_add_interface_trigger "interface.*" $1 /etc/init.d/$name reload + _procd_close_trigger +} + +_procd_add_config_trigger() { + json_add_array + _procd_add_array_data "$1" + shift + + json_add_array + _procd_add_array_data "if" + + json_add_array + _procd_add_array_data "eq" "package" "$1" + shift + json_close_array + + json_add_array + _procd_add_array_data "run_script" "$@" + json_close_array + + json_close_array + _procd_add_timeout + json_close_array +} + +_procd_add_mount_trigger() { + json_add_array + _procd_add_array_data "$1" + local action="$2" + local multi=0 + shift ; shift + + json_add_array + _procd_add_array_data "if" + + if [ "$2" ]; then + json_add_array + _procd_add_array_data "or" + multi=1 + fi + + while [ "$1" ]; do + json_add_array + _procd_add_array_data "eq" "target" "$1" + shift + json_close_array + done + + [ $multi = 1 ] && json_close_array + + json_add_array + _procd_add_array_data "run_script" /etc/init.d/$name $action + json_close_array + + json_close_array + _procd_add_timeout + json_close_array +} + +_procd_add_action_mount_trigger() { + local action="$1" + shift + local mountpoints="$(procd_get_mountpoints "$@")" + [ "${mountpoints//[[:space:]]}" ] || return 0 + local script=$(readlink "$initscript") + local name=$(basename ${script:-$initscript}) + + _procd_open_trigger + _procd_add_mount_trigger mount.add $action "$mountpoints" + _procd_close_trigger +} + +procd_get_mountpoints() { + ( + __procd_check_mount() { + local cfg="$1" + local path="${2%%/}/" + local target + config_get target "$cfg" target + target="${target%%/}/" + [ "$path" != "${path##$target}" ] && echo "${target%%/}" + } + local mpath + config_load fstab + for mpath in "$@"; do + config_foreach __procd_check_mount mount "$mpath" + done + ) | sort -u +} + +_procd_add_restart_mount_trigger() { + _procd_add_action_mount_trigger restart "$@" +} + +_procd_add_reload_mount_trigger() { + _procd_add_action_mount_trigger reload "$@" +} + +_procd_add_raw_trigger() { + json_add_array + _procd_add_array_data "$1" + shift + local timeout=$1 + shift + + json_add_array + json_add_array + _procd_add_array_data "run_script" "$@" + json_close_array + json_close_array + + json_add_int "" "$timeout" + + json_close_array +} + +_procd_add_reload_trigger() { + local script=$(readlink "$initscript") + local name=$(basename ${script:-$initscript}) + local file + + _procd_open_trigger + for file in "$@"; do + _procd_add_config_trigger "config.change" "$file" /etc/init.d/$name reload + done + _procd_close_trigger +} + +_procd_add_validation() { + _procd_open_validate + $@ + _procd_close_validate +} + +_procd_append_param() { + local type="$1"; shift + local _json_no_warning=1 + + json_select "$type" + [ $? = 0 ] || { + _procd_set_param "$type" "$@" + return + } + case "$type" in + env|data|limits) + _procd_add_table_data "$@" + ;; + command|netdev|file|respawn|watch|watchdog) + _procd_add_array_data "$@" + ;; + error) + json_add_string "" "$@" + ;; + esac + json_select .. +} + +_procd_close_instance() { + local respawn_vals + _json_no_warning=1 + if json_select respawn ; then + json_get_values respawn_vals + if [ -z "$respawn_vals" ]; then + local respawn_threshold=$(uci_get system.@service[0].respawn_threshold) + local respawn_timeout=$(uci_get system.@service[0].respawn_timeout) + local respawn_retry=$(uci_get system.@service[0].respawn_retry) + _procd_add_array_data ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + fi + json_select .. + fi + + json_close_object +} + +_procd_add_instance() { + _procd_open_instance + _procd_set_param command "$@" + _procd_close_instance +} + +procd_running() { + local service="$1" + local instance="${2:-*}" + [ "$instance" = "*" ] || instance="'$instance'" + + json_init + json_add_string name "$service" + local running=$(_procd_ubus_call list | jsonfilter -l 1 -e "@['$service'].instances[$instance].running") + + [ "$running" = "true" ] +} + +_procd_kill() { + local service="$1" + local instance="$2" + + json_init + [ -n "$service" ] && json_add_string name "$service" + [ -n "$instance" ] && json_add_string instance "$instance" + _procd_ubus_call delete +} + +_procd_send_signal() { + local service="$1" + local instance="$2" + local signal="$3" + + case "$signal" in + [A-Z]*) signal="$(kill -l "$signal" 2>/dev/null)" || return 1;; + esac + + json_init + json_add_string name "$service" + [ -n "$instance" -a "$instance" != "*" ] && json_add_string instance "$instance" + [ -n "$signal" ] && json_add_int signal "$signal" + _procd_ubus_call signal +} + +_procd_status() { + local service="$1" + local instance="$2" + local data + + json_init + [ -n "$service" ] && json_add_string name "$service" + + data=$(_procd_ubus_call list | jsonfilter -e '@["'"$service"'"]') + [ -z "$data" ] && { echo "inactive"; return 3; } + + data=$(echo "$data" | jsonfilter -e '$.instances') + if [ -z "$data" ]; then + [ -z "$instance" ] && { echo "active with no instances"; return 0; } + data="[]" + fi + + [ -n "$instance" ] && instance="\"$instance\"" || instance='*' + if [ -z "$(echo "$data" | jsonfilter -e '$['"$instance"']')" ]; then + echo "unknown instance $instance"; return 4 + else + echo "running"; return 0 + fi +} + +procd_open_data() { + local name="$1" + json_set_namespace procd __procd_old_cb + json_add_object data +} + +procd_close_data() { + json_close_object + json_set_namespace $__procd_old_cb +} + +_procd_set_config_changed() { + local package="$1" + + json_init + json_add_string type config.change + json_add_object data + json_add_string package "$package" + json_close_object + + ubus call service event "$(json_dump)" +} + +procd_add_mdns_service() { + local service proto port txt_count=0 + service=$1; shift + proto=$1; shift + port=$1; shift + json_add_object "${service}_$port" + json_add_string "service" "_$service._$proto.local" + json_add_int port "$port" + for txt in "$@"; do + [ -z "$txt" ] && continue + txt_count=$((txt_count+1)) + [ $txt_count -eq 1 ] && json_add_array txt + json_add_string "" "$txt" + done + [ $txt_count -gt 0 ] && json_select .. + + json_select .. +} + +procd_add_mdns() { + procd_open_data + json_add_object "mdns" + procd_add_mdns_service "$@" + json_close_object + procd_close_data +} + +uci_validate_section() +{ + local _package="$1" + local _type="$2" + local _name="$3" + local _result + local _error + shift; shift; shift + _result=$(/sbin/validate_data "$_package" "$_type" "$_name" "$@" 2> /dev/null) + _error=$? + eval "$_result" + [ "$_error" = "0" ] || $(/sbin/validate_data "$_package" "$_type" "$_name" "$@" 1> /dev/null) + return $_error +} + +uci_load_validate() { + local _package="$1" + local _type="$2" + local _name="$3" + local _function="$4" + local _option + local _result + shift; shift; shift; shift + for _option in "$@"; do + eval "local ${_option%%:*}" + done + uci_validate_section "$_package" "$_type" "$_name" "$@" + _result=$? + [ -n "$_function" ] || return $_result + eval "$_function \"\$_name\" \"\$_result\"" +} + +_procd_wrapper \ + procd_open_service \ + procd_close_service \ + procd_add_instance \ + procd_add_raw_trigger \ + procd_add_config_trigger \ + procd_add_interface_trigger \ + procd_add_mount_trigger \ + procd_add_reload_trigger \ + procd_add_reload_interface_trigger \ + procd_add_action_mount_trigger \ + procd_add_reload_mount_trigger \ + procd_add_restart_mount_trigger \ + procd_open_trigger \ + procd_close_trigger \ + procd_open_instance \ + procd_close_instance \ + procd_open_validate \ + procd_close_validate \ + procd_add_jail \ + procd_add_jail_mount \ + procd_add_jail_mount_rw \ + procd_set_param \ + procd_append_param \ + procd_add_validation \ + procd_set_config_changed \ + procd_kill \ + procd_send_signal diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libblobmsg_json.so.20220515 b/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libblobmsg_json.so.20220515 new file mode 100644 index 0000000000000000000000000000000000000000..38faa0b725ccce8bb54cfb7a38d69c82f0b57c23 GIT binary patch literal 8195 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 E50_B@$N&HU literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libubus.so.20220601 b/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libubus.so.20220601 new file mode 100644 index 0000000000000000000000000000000000000000..4a18111b13aa85996484ab4ee5402f7a68e710cd GIT binary patch literal 20566 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 C#N}-O literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libvalidate.so b/opkg-feed/installer/openwrt-sdxlemur-skel/lib/libvalidate.so new file mode 100644 index 0000000000000000000000000000000000000000..c93633768db2efadd54a3d73f9f9e62664473f97 GIT binary patch literal 12858 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 literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/init b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/init new file mode 100755 index 0000000000000000000000000000000000000000..2d5e1754246d246598560807f7464f9127c7f4f0 GIT binary patch literal 12489 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 b`1}I=n;<^B5ahiK{s*Q!hZE<2_;LOR#AQy1 literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/kmodloader b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/kmodloader new file mode 100755 index 0000000000000000000000000000000000000000..ec247040b65e24724260a959afb750ce1faa964e GIT binary patch literal 12293 zcmeHNdvsLQx!-3pLne~|10;}+>3JnHw|Sh3cpDxYV)Z^P+fA&P4(1qu=aNOo)lV{{f{QrP9()6zV?XyU46j z#)6fFfQm&G$~d#{^Cm0;+LYg1lrKt5hzh{-P5iUK6ti)>2^#=a6Q5v0f;lKIlnYqF zN4}^V%Fi`a{CoZ?R~eYS3L5t%g|ke#Y?C`#v@Q9ioJAYbcGRhg!f$E;NITFkXuF~g$vb_3 zGFt6|>gZ?H-NHvN9y_^X@`Jbi`n#RKYuM-(=Y6zyN<(7&uX=mDv#XAMQ(YA-@4PEM z{^V=#jN5zBK;8pHheSJl*4+JMh88vt6I|TH}XqN>Mk{n34$|JJl+Wa=vwpX>|n>OA#kkM|qsuN?ox_txLF zWhB0^w{y)B?w*mur{Ggm&d;&(mXC3k;w&i?K{kK1$2L;FSrHIWsT1{L^oC3UNw z=)XTyP7h%H&C^xs-#3=@KTy(tu%v!@$@syNe%jip+2kIc01vpcq`wmLweuC(KM@}D z)sp_Y68f={y4A-iPo!l2H%sahO6EsO>Q9!`>r3jklKL*t*AO!qqb6WC{j_Ag+e*e? zSJJ<|r2eIn@sE}C&qIHeMW6SVjNe>Rzq+K}R8qH8rTz0I>%~jzjMv4F`eytseyndR zRsdOVwJgB;9VPWt$@m*e`oCRL|BsUTdnNNPDXBY4>U|~ie^b)WbG8dkNqbJjY2zsw zFXD+qJ{19F8`N zw$ec@f!45SF^M!b21BvX>ehH76l-jW1=>Q5t&x_fh=l?{t{7=X1Q8p zK**lNnph~lCK?Wkz`Af_OKT)3_o>k*;<36lbk;63D#AF;|3kh*p`3Q07EhZc<#8rein64$n!RIGL;95qA zBw!^W4!4^L5wM#GanJ<`5kS`vmI)CioGwH=;T$0ngg9{56XKxkB%CTlk`RY&7a?#?)epD}iv z2L=4>?%c$~J90bTJ75&?E(_ji!4nodY{7#T{ALTj%z|HQ!53Tbg%*6C1)pibr&(~X z1+TW?RTkWC!9RZYv|R67@KYB2xCK9E!H-(-7cKaJ1wUZHe`3KOvEX|x`27~V*Mje` z;9VBH(}E`~c-VpmE%?nAe3=Em)`Bm#;0rDIJPSV4f={#HUJG7r!K*B|9r*B9>)#Sh zdRE<*HVzzFk`v+{L-Fg`?~II`bbl^w2u;rmpPnsK^{i7A+CQ#M8+PE&VhkcfK7eb8 zB39%FYtye^tcc&*MW68tn>Z=j{W-Y0$FBAnM=%H5cF5~MyU(A4N4tbClYbs<<)AfO zhIY`x7I*E#*mA5_CiMJrtnvQH$dEI+Dc1vM z0G@CUbE)&whU$bq+&#wkF#iPR3hh@$rCZP1)!oO1SejS#fok$|he`hw#!weKO*;1W zz8Zuy59PhbY(t3f3|v%@cVG(WiymVk=D&iu9JhrsV~x*IKhWFZkr5Z$H=unt$EyWB zRbtL_n6njaqdEca2uU6rY}0;zy5@S|2kZqp>5&oWuFq%$oqJ5(`=_KG$mLwZoigm8 zy8(K9=TquY+R-%+w5i)+wBZ;zi9CL2nz`O0%8d085x$Lrr|RBL^P4RwS{&oTA+tZ?@kly?AY+WmbPyF8C$ z#p41WPm;H$oyJ>`y8=3LVBFazAAbdHp}j6?zX#lbe$2@}jyW86A;u{pnG@PyPH_Dp zjF}0Vd(l4(dMhUv^jKliLry96h_zh{Kc6-hq94AMUxBf$rcYmO>eL0@ETm51|IiEE zbeBEj%MPBZNI&Jz;YfUVxCS)Uf<1RpUhsL~NOx}d?t_D>yF1s9 zHbu1OF-CczChdUETyAmbUB7#eVWaP+x(!7I1Yfqwm)_oOju-8E7W6&4E%fg|Uj^uY z2zVSac-8J)E!H?hK4C}rzbkARAICVZLtC@~e+P4F^*siC^C}1Swtq|JCbavWNE?o% zo>lytpxZa3{{IG9z1kk5OxvC*)3#*F#LDc+k&zjfxOLcB&%TU#!tc-h5#yZhD>7{3 z{HxLael>i&iF>Rtwwq&3{ z^u5Zx1o?ja>4@hgGX}s9Jd&2ucOt5wzhBSlrrqkmW3`r&dq~mrN!41i#sRs6xKZw# z1C!E5CHN%opMCF z!=8VIbFdeAHu)wNbv%-+r{whU6_~>YqHYtpPOrkma9DTYLl^?cjLGL!JIB z=BQeC4*r_G47_m8qg)R*w72UI!ml1gn)mje$W4JK(HMT()Dsa(%sD|w?%W?3p{^zS%e@cjxr|8#+i_jJP`CjSI z;0La;JWpFVpx2$4=M>w(-yZs4z8XGE9oa7j&qYL~o&UvB# zy(TZe9vL~zb@!w00^MzZ`@r)d_i4M%McX}Sn~8&OU#%hzUZ98pl;bF$pnQz?Any!C z-nY&Hybfg}$}W_Cl%JvGQQkuN@pMJ>qU-_wSCoq||7w(5P})(ZT&Rc(P^O{GL0N#Z z6XkLg-rw#6+<DgkK%M=A7lJ= zpDcFE66!CFMyyko(I?br^s+|yyW-xEt5@|hoA^fd zUHJ4k_$F>^80XK|3mswP@(g7dz7+W{cxor_{$4}0V=wr+41wa*x{NBsA<8hk;h@vo z)Mt3Lo$$5Gb6#z;YkCyxO?77q#>8QKp+$zwuwd+~t zkn|_&?x!EaU)_54ORAn%A^WdT_d*ZU+t1lY`iSRv!NxI^mioI2bLYa|!mV06V;!9B9w+R{bByx6NIwA_zOw$UE8kp_ zTaQ@e1iuL-ZRkGmto0a)d5Cqe!_B0r`Ez!^uJA6fY%2WKT>C5R^LJ(J$PuX9g|aV@ zn}1K*xJ>qK$~-;3J2!Jf+Gu3G9XxBy3zs1;5cgGM-IcR>jx1%4G^t#YNs0>H!=GkwygFb!-N5l1b5~Cgd7*Y2o^jnd z#y%BusUOytk_Xrg&l#ioQD6r=k9bxpyA7MZCFgn&c`59E3&yTgwif)TiMguqgkgX3 zQ!VLa@;>O4XJ29-Vw^fRLwzw0Pes40X>*2a@;vaP?i6F-Yh5|scbf4nw(w8+K9k2`{?SGN+&qNPFQd zgSp4!fJ{Za6roCHG)o>)ChE&U}ylxz&{McWlEP#QPy9XgIJg z_t7}4d*~cJt0BhEljq;{S)1@HxRZIxwZgb0bo9KOuV*hHpU8hE(8fN!j5HRZjsD^T z{4I1*YvJ=C=4H^f0J1MJ<-Y~+1Kf+bM;+=BoQ+518S0*puJK`Ar9eBYH0fD9p?Oq) z%9xIQ`}o`=S&`K94u3N9ou%hxj`w4q>ODq3+8IynlK+)iL|PninLK=Q$dQscYj(Q3 z@3`XLo>AOgnNySne&Yabo_#{wVz?#TY%uonKAPd!FgZ6yleje+Fwg zlgUik+^v})*006-2hLc3dG-$@BM&~BvVbQaGI z;x{*8&qEga7i5&W;C`TQF~{eg_$ubI|4G2YJ?{Mz+}D3b>;a9zVh;Ql#Qti35_x{g zfZQk1Kg9F*2^7X7=KbY9UBOeIi}oAUx#C`!Eu$_x>llM~cdmj13UL41`Qi$bc7!P+}n#Z&1XwHs% znw*C`R?e%zyyBf0`j>A9oue{;AZ14GEZ;%6w@Dl4ohNU~IRrUhL!mz>ALM-pan^UA zQOMEnLwvbG`Y`1ZsrzvLAqRjS%9Dus{jh<0FZ{MJ4$qn%`Y?H(k621xh5EIejE!Pt zei7@qXMxrv#b>i2ULrO=hw&>JhZV#lyu>cea*~ z_Hxk0)uo7u+k~3%DP-2l$?`&GZ)>lAc=RwY)Q6?Fm>LZoM>*Cs**; zXUs+(@5I|eLSv3{eZI`CD~HfV{nhqwssW>(TCvICKC@}eEjJk=b+7Rhc&J5AOj`6w z+J@^ZO`C0aa~M*5(-7AtW}WaU;d`wH^@)nlo_m^oh|PR+;y$pWFo*j9`vJb5wL$05 zebzzSBL8A+x8od{2HzR@TfrYI!Mh!KD)Z}qMq9P$GI(e4Vy}7qU545;VEjAUnX~gw z=LOGF$L8J}zP$deGOSh2cfJ(t+g@0Ako1vPE52loIRbJ3mqX~;9NKLfcuCR^@cyTC z5AtlQ(zIlpSkUGrrwE%5e4|kPIS1C}8;%WY z$g>T7_t2kJ#MIxGm9kyW^Bs}*06X%;_u+37 znJ@Cq*9Y6*RsZ(%{_fm^e^`=>jK3zge-3n$!W|)*e3vx&7RG4~tYLuObE}=A31W zxgNT~UH2c6A2a9MJ*U#ZzH{+?$@D7^$I+G!f6s{`eU9CVvDo7eSAiG$6zygA>)Bsm zEy{m|lpnfIWy-KObL+Vt?#MXHwm$$_z36`dF^u_?rkypKPqkwGmq4TMoNIDN0r`dl z`pUiuh4;3tphN$fHW7Sb9o~-^A8dDZzkR?QFOskyY`GqJCFYLu_7M8F+Rif0!rFX) zN;h1SbDe!nE>HP!4l$Rz$}(ps##1J)#k}cm)OiLc!9#DX(kSz9&Fp|4g!;PCi8jW% zX`r#=+_Q`_ZDXcP+lsfgsU`h__>70V}WHKz?=cy7;WMQE~0!#%sTF*$tQ8@byOjrOU1ob@2s) zzi9)~&=w7LghTNLpd#9lP@^qsTc|A>yWJ%sQMJ&kw&3sPp;#O+rmhXeBB8Ll4t4y2 zUaezmMt3ngfwY6g2VoehhR8{$?N)R1;B^KMYV?I>KS=@Ycw> zK)5xih9be%KqM58FHq}1cow*jzb5F2tc^r(i>RS+3t4FkBxHZRg)aZFuLeU{Fc^w7 z-!4}zGFH-TsglWXG!O)DWV4|?7HuwS#zI`maYm<0)Wv5|#iu3v3}N|a{1W;3bBdBC zGN2~bgw&$EYCP1;A3>-sv1pqdTwpnViGZ2{01ctUD4(-}4Wcy?hpxo(cwlvCfvciW zRa>BR{v<)YDG*y7zh%@cQdg#h>m_}&(i&F-VOr?+qE-ssb#d|KQ47l1WVhfPDt}u+ z^RuZy2bwGy4tG?S1a4myQd<)$S5a4Ww1$C3if*vT>LlPFzs8W9#oDZb!RZQ1!0V*{ zlGte@x6THvnn*I{$hiAQ~j;C;J6w_rlQei&6)*^1#Vr3 z1*OW)FpO1OlKDVUku-S0o9lvR8wfN!Du8T z9e{c?w>^e3T%2~v|7|g^82kPo{?BTl3-8{GQTXxyBlwT-xC!3{R-qY5UAy~=$yWvf0W1G2w5lvUt-i#vYVwgmtEk4Zt>L8UH;kaP zd`N*S1WhOemO&&R#`3J7bkSDu{`QpzEQKN`GT@{i{&2uL{NVy8tO{9H=|yh6DqTRn zj&lQq0w;tas35*n$91`mCWn;oAEiUex}J0|{o)aprI6?Eg4Q`RE@*8!Z|;Kj*7F+Y z&uy7?etX;bSiyg<c`1pOj}M+w&x^qWEW8R2xo z-GoaC`QHg3a|n-_h#wg^AGn$Db;4xAxr8qeZX?`7xQnoxpx^ggV0|0-WrIHtY$p7W zu$*u+VJqP#f_@JWS_xMZWV^cv`QNudp2h!r3Ve;wNti|$N6;@x_@oeiFS_9W*Z-bnxH}p6As?q> ze9zv;HU-!e~#L&~pf*Ox!gF3Vh6i|2q`dc=T5T z7CrjpA|E!-R|01erVv_8T!VoEw|MYt!A~^L(}A}de1d^~P-`NF1Ka$Gp6A=a8Cs71 z&OC}))(Q`Pp~0Jgi#_pi58h$$A_GSNFZZN>75rh(^AZn!9r*p``4LaN(65;1AaFh5 zPQn@!Cvcv@KM#D|;A4S(2LC?rRD-`|;LE_3gzplLBYc$b5@7@3YlQsosyyO>1>kQI z0tBb6mDXZC>o@quACCWC_aFVH>ZHZwB={9t#wx?2q~{Z@tBW1f`R4@wJxj#RPtO_O z^Oe5mZ%8=ir~Lb*c=L0f3-eEwrRTh^6f3)b)kkl*kDo92=r{P%f8(S7J0HDgRgw9r z{z*Rmp2{ZzmHxV~{1RXN7yIh_n~&btef*v0irT3~^at}sYU(TS(ewHin>=Ux=sn|m zUQ3?*PxPPj@q5@uzt>m(c3=8%IVJNGy$L>kKjD+lwZ8U`^wGP;$Il3LPV*D}tdIUd zAAiez<=6Y`^F1HuqxW>aGN9`Fy^sGd`1G^J$Nw|F`akERccG77pO2p+U;4Lv_1)sj z|A4Rl-M;n=`JOv`^w;|2_o9#gmA?GjeER;ikN$RFdxO688NTw@`RLE~mH&m0pHqDD zIO5Ac=zIRXPhLxW{G9BozrbT}@;4v$$#ga;P7lA5*DJpEJnpOihrarj`_jMd zD_`NEulnnJ{GaUO=S!aa;%9=-UUvHOZ};RE{gpoczU(P4dLup0%KuwJ{-@`YeC4n6 z)%UDVKc4EHwZLt@@>O}_K%4MgpMJJ@(pCR`KKeKL`2C|#-p~1-U-8ku$d~@2@A<2~ z{Ac^>-{X5;>&t(tkKQbgK-8WFpFN!JljqNU^7@kR+4hwW`|Nq6M}E@ptv-3Z;N#~l zAH6lc`mXYoU*T*20blx%k6zeEPwTGyPxAPwPkx;~{(j_>=W<{E8-3}&_VLr;%l~a3 z{i}WaUgo3sV;}z~`0_vLOYg}y4yg9s;gi>GzUP3Co_C(E@-uw&ZuC7L@zuZ3XHUQJ zwdZAD`YfNk?)LHbD_{QSef7WSE5Fyr&n{p6dwlX=@1ZAqz0p_SW?%WIef2HzrLXbP zKh^hqzo$OQ_Z?q-fAQr%*JnSYeEEOsRUbdoeEE|;`gi%Bi+uWe z$5;O*-}9$^?Rnp)uYdaTYkyrvaM&rze_KwE+9Sw6E=ghMfw6@K* zX3c6{(B5LT-#Krl)!y3N9Jl5-&uDAwu-ZGQV?Mu9xRwlvL|Z_S$D+!k-1r~J_5-?jxE*6p*}=HF^HG%uXfVKsKN&9N5DYj=yzXlzHLVFKnK9dovu&pV=~BVBXBRajWt6R)p0`14$`oc&&#lU2bQGTxZ?@(yn0MQP<^|0SUQy-=&T7J3 z(2OM38b3yN zz~wwi%hfRTN~4a*Q2DJ3;tdGFd2C-WqkZQ5IWzofp4m8WW^=1`d;2`2WrQQuOLLNk zry(V=dF`=eV`u0 ziigd7gFcud!Taeze$KqvGDd{k1{Ze6W3(4H>0tgUVz!k_c%VlX*d0K&a4I{;49`e(So^6 zA8nX{hnweM$jpH)jkqeO6*8812OhDt83))lx54PaAqQJ|wcv;5;=Y_Rcg*Q%X_z_V z0|XpVe}LjKSCj8L#(mHt{{KK}I*YYnE*<4)eXdP4&Y$0Sr-c}twmJf7h)X0LZ3|iv z(7ZPM8j@BzZnW(V$jobrcxW2W);eyWff$C<>X>M(D zVjNeFv!tdw+nup!mNP2MqM7ZC7p-kL*oOQt!dQfFY&8x`1I+ESupgOBd$ZFEI@)mU z3mox50ns#Dv)Y@RJ=M!stAoI$9Ko#S`5$2IgDH-Wnb+1aXV#tGW;bBV=GiEjp+ke; zEV_2PHK)C?b>4!x7FvtPp+75c#d1E49Ub!5KmG{HaiF&8&a~WP7N9Q~pojDwJ#U|U)gy!3^s)m-vc}=YdLnD$%IjR*h z$Ca<+k;fl>l2zW(*fFz31~2n-dVWXC{O0zSHjKwLJcm=*Z=C52m~JG!%P|;DC@9%D zf3{=05}It}=t!0Cr|wvx9{ztMX{MkAra%j3v@O&L>xA%x3E_{9|EL?cp#5mvMd9&^ zQ&&1~red8ed55CtqghRHr`Ne2$)7ZPCPu1Aho;C`pPKTSPhZ{;K7YJUPxR9n^#A?8 zg8!JO!1~W=|DNvuoBaQ0-v2Y^SS|l4?LWmIE1AdsTh4#q(*IT>Pxb!`=xXXV_5$+z z=fU4S%uKz&dd=()=njF-{f-!Do$Wpc4J@{$$f$I(2WZ+fFlSZQFj zfi(tBG_cOV$p%g}aJqp_2DTd5Vc;SIy9``zV6TCz4cug4zk%Bg++pBe15*YbFz}Fp zhYbvJH%R@y)WDE|6$VxsSY=?1ffEgk7&zI$X$H0!xbp&+{%!;J8fbCG>eOps$iOlK zCmI+ru+G4G11B3e)xhZnHW}DzV26Q=4D2#+xq-a~t~GGIftw86Y~WS{w;Q|!1V@h zH*lAMdkxe9f}A1Cs`BFmSVhTMgW1 z;C2Id7`V&8y$0?x@SuT*3_NUL?S*dpA_mqOSa0BD1EU5`GjO_rO$N3Y7&oxPz(oco z3|wm9aszt}Ty5Z119up>)4<&Z?lrKb#^w8vfr*d0&s_%g7`WQNwFYi5u;0MV25vKO zhk-i{++$$MzxPynEC;(13aG`+_!E-FD zzq-IWi9PJif@}hB5oAw!s~~&F+XUH@-Y&>q`3^zmpgRS*fVWGqlzWPTTmaf5$gQ2d zf?WDa2{MV@C&+=ofFK+72L!pKc2KYk{sp<1by)Bu_!pF8=b&kjsIk zf~PP)7DP^Ef?Q4-D|i}rHw90(EL+e<4ua#jb0~O*WmOBF$$de=O78p$o@H6Jf*-c5 ziGpWaRz$Fhb6vrYaHml4T<&WMa`7!Hcpi6B1-XbgP4EKbEf{8RU6B3tCcz2ZPZQ)4 zSgRn*vbZ3ZraA;K;-0DC#oV_QtmRIuAQ$Dj1V3(BO9el{eNVxO+@Te`ggdi>Z0@fX zyp(&df)VaC3Ql6rU+^;SWeHx+{Y=3+^e=b?`WL(s{R>`&{srsNzu?vAU+`1tU+^0A zFE|lUg7eV7U>o`ujH7?S+t9yYJNg&wK>vaZ(7)jA=wI*-^e;%iZ58AK zUR;p=+adTR^e?yw{R`fO{ssRB{R`fW{sj~0UvM${7rY1k3wEM^!7lVKxCH$R-i!VP z??eBBOVPjJ{peqC8TuD|0R0OtNB@G|=wI;5=wI+b^e^}j`WIY@{snu{zu+qLFZeL} z7kmW$3$8~0f{&tq!N<_Q;2QKVxEB2ju0#KVkE4IVKJ%qew zyvl>y9(=3^4|(un4{mwz!+-P0--8c$@RSGNQp$Ct9@D>jq^Wf7wc+`W}d+>+{ul3+z4_@WLZ4W-ygNHnLu?M$2_~FAI z`FrpI51#Vidp!6q55B{LZ}Z?=Jb1qc-{8TM9(=V2@A2SEJ$S-{FZAGX58mRzV;+2( z2akI2dJi7);I$q+?7^!%xb4Bmdhn13FZSS;2S5B*kNiFOfCo=`@I4-Umj~bB!MAzv zEgrnzgKzNQNe{l-gZFswr5-%t!54b)xCd|X;4u$A&4Wihc)bUYc<@>e9`@i>9^Cfe zV?B7tgBN>n%Yz^Oi%0$*e87XJJop|DzRQE}@Zj4#_!bY|@4+{C@T3P{?ZJCI_)-s^ z@ZbwQc-(`xc<`79pXR}%9=zUzM?83~2M>GjDi3aZ@Ub2|Pk8W!9z5>BTReEogHQ9|Q4e14 z!6P2L)`N#Vc$EjYJ@{A;9`fMD9^CTahYxMd9lYwi-&wI_dh-0fTp*fE*I(9`8y;Vg z3Px6>hFi(>wxOYSnUU%hgp#%3)f4)1g<;aI&YaTk|JTsF757j!p3IJYs4rKXSdkjh z!<@}dri((!^f2<=L%Dzz&$6T|KRm84H#U^as%(M1A~lM%Vk?>b9(2C@&!Kk{%1ioj z#J$Gzn}h)Mi^uaRzjaby&a#u)QKXB(6v$?jv3_L~A5*ot|fS&faaFgQjg?@;r|q{SMFb7@php4E!wZ`>JWnMac4S zxG#6uc4a9!)YzT533f7T0}mBglu2cuCI8)&JB?RjT982*MkN zb2j`2(amqmTpk{V2k|c&Q}g+t{UP$zJI}5ypyR-FDKnzd3;x{?(b@%+F<^4kTh=lYXbE0xTKLf9c~$9B@Awr$In?!q1{>)jpi1+3xFwa{5D zGPkxRvo+9^+{2dS@z8$W?%W^T)}5=|)|V@_dA7TAL3?q=3O$$`0S~3Sx--Fp>-O#B z<(OJ{ts;a8P0$g~>J!u9+X}zo@XniqS$G^f+2I|%@C>UZ5j|Ud`%i>stuL(_UU;)F zRf^0jNekG?tmsSI6EvQ;M^~QPPuX@e#Cp_9d(nvcflq-$*}m z=?m|)hlk!77VgXxhF{7ST8WfXUnrU>Moyyld(na>7L*Q#7H59Nb0BU7MLozT={@v`MW#`@m#Yrxc`EXlLS6VbM=t6MR=7uPqx~zXAD>Am zwiApWz2Mhp;itI55`KBAjqT=>~Uk#3ZzMHVRGJAju77?S&97`XC&%$3X0@xzQ|8jqZDz>%-|TpV8#O$Ow%w;!>3ywc7#K#uV7Zi7a z;;b9+qtP?1n8r4XopR<^$W-Z{Bb_w$`SRf*&7Zq6Cma3b?eXBG=LgPa%o!HFBBe5? zQwCcZlr0`O;_7{8yf3#Cy=yKn-4`eB%Y?#jIXa}SvBi-`a>d3Ls-ZvDx|cM!FT-nj znz%jI_H-G#mkp@T9#THpFm@nYQM%H^gT{dhlXe1Wj=u`8NL55SbCVwSO*UVtc8SD!fy7$o5Fp$xa<&_ z=j~4P%F8kM&ZzBDOMDWGB-X(H`~LY2;<@k*%Pgs{enJ z`irS^6LqHk;M%@yJ&0}n0r^j)J?E-D$U^ByMK54c%`Yoiu`t{ zH<$an#?RhdXE>Su`=}||zh9bs$)--(W{i5q(!Q~_>sS5j1o^dU^3<{jC>yW2&J@Sy z>q9;6crAN|$BF>o*TovowC$9_AtEs{q$t^1pLZ_ zg#r2ueI4GX;p=LUWf)l(<0A{KDd`I4APjBgvW*JO8_2r_o@&V#2z6$r(SFshF*|5= zX9~wXK}r2eE-_>zSMtL(a5MZLI0(%GIJ1 z=@ti7&b%YddNw@{UWNll(eK1VQ6!oE7VW7BuY&gFnE~4K1kWm~HMnIz?2J3L&@6~0 z)4wBq%RBTZjS)Os(Fbz@Xh_ahobfcYIA;-x!;5pyxaIcIVzpWH)+1lZU2B>OOY?y% zQV&p{@(z!xzDJIZa|Lny1NBLslB3oX>aY3ocTvu%7v3}B$(Z?;xYzJ@g zq-kH{YRX+rx#z(Xp{`8AT9SDVd;|Cf@MpodU)Y-)^IlhG%xloNa7k_(&)a~P(Pu6T zznlw>?w)S|hk;vadI?K%TY+1FqpTkcjIuTn9w#gx*h_tt zale z0&D@!0nP#50=xxyD{yb97x;3n6}%NV7dRK#25bYyfpOq2XzqgM1IT7KWp=~&Qt&^rcnVzmCi}qmfiD6d03QIq6TBL{8vJ(fTJTzM?VEIfcYw#i7lJPY zp9{VSd=dC9;KhMex%aS>V&q>eJz&4Z<6WCM_!-89o@BaeYG1AnUlp~syoQv8qOR?zV@DcQ7!3Jq)lclaOb1$TJ#2u4VHXUGQGR7 zFK64`nSgu*bIwuNvW?GDe=Ue43z=S&Y`)N4k2v#0`h75_`Q?q8KbPAP<(-;k?<7zp zzXBhZh<@DlE$0cx<~yJfNV4X5#`Tl(i7mv9>|c=*ukwwB)=kd1CmJU@Jl^EYGcI6` zQR&q4*=&`q`dA}`lcT>x{l$@FmOZ6G8~%|&_6+qo<}{iEsh{6MKd&%8mi;GZKKvkg zMo_LY3auEvf;nv!Z7yUzv&iuWnzu8T0Kb>KMWJMxJ-+mz!>$h=7EPuTswehv?hp8d zGU&^%DbJV5qp{&T%ri9(-%dW}zJqF0P;H7vGbchfg#HR`_5qC_3K3UEoczYC&`|v& ziPQ6XXlPx-SpS%Ox#F5kIqYRjz`o)HE4=N*F{XX5$REY8a^_Y$gh!I;C*Z*jy_B64 znv`ikw;!^u8zXuJp(|2h=JTUZZ%cpWgk*XIX@StH@d_g?MqM5IePkDwry13VoExHM;CBBS#o7S?D-KB=c zYsAYZpG~`^!?S=p;NN0S9Smu0mSFt8F8z0SLhjkGtDY$Si@JjGD^IwO@Hj-D62AGrp)V<`3=vSqZQ*%?jiq9;*!4!SV#UbG_;o& z(IbUi7vqk`S%gj8$ym(-@LKM2OeLJocs3SZoxTn)1r~ch$bfki`yTLsUkJkcd9oq= zMFI6hEqBjD>$f1XD8*(&@t$zE(K;mOR%u z`c7umKQ`|USa)lDjpCzXj-SfbQQ!HruM7EF5&9gmEegB)?xo0GGPPpext~Hu@(j=h z?T!DPXX&7l@i=PcTOqqM6SljUi>}N~1Xchez(PBjwnIje4Q$@qk-(2~q}%4$u29Br0= zJ)37UZz!LPe`q346><4}t2$_gpxwg#o5T2j$)h)p??fg&{qA~5KGTjoo3j$kRagTZ zUh#af<{j8{NoBG(S7Ig8kEos=Y?gXu=O-Z(>5MNTrjM81(eC2VGW=vR{rkVVJVC_q zk81Nb(QUo8CMW+{37>U9>FhFKafG%cR_9pD4{rW-fElB^o;cglr?aV*I z2cgTEK#BAsnF9AjBM;}|c^ct|(Pdq#FnmR76nT}d^;#e>COZOIl|ozPob|H3J9j>N z9`IQ*?6@)bSo!F#%*~9^niGb!&l~AVY2G=4bmrSm`YO`dQy8?6!B$q<`8lHY2Nr+G z9aDcM`QrDn&y9>-&iq>b#j>$)wFP;qPd7U9o0?_+;yKCs^G>_n{8il3T8{ieW)3Pj z2JMG(j9KFKF|88=;bgisYK;`6$kJ(^j69U9!r4nQ%jS`K_29<|mJZ=6RsvSknBsbXja zS!2BMm!ZMlUk0pUHwCw8Zc|OakxnNX`@>(R>#QZY7I+$XsxO!M3$n-WR4~WUx@uUQ z`O0{m(XDd$RX>n#<%St!UH z&1u;y(6<%dle+*JT?Sr;-;(}f;;ko|vC&*+7rlhVK+Ezg=pr%9Y{^zC?VGa`@kDDf1GQ zy-|9kmu-ia65AOY(n;|Z(RiIqzX7iCQ}ZzT@J5Zv&p}7}WsE2(;dvzK=Q(Af8ODg` zv^OIgyNi4Ul#{Q(KHpZ{3(9BRoc;08(8d?B?I5xcjZ;mXdS>h&#NWI<-Df-WrN_eX z&AcS7{ax%jYhkBqMPB%7<3`#Z_zNX^CB?o+7NinwDVdNsa*M7U# z?(q++7aE?6ZFdhx>*Bw_r}k;IudDp5`JFYT{CpAn2pXF!Z1jb{2+=nlppMdLSMIJ$ zli7OmhD|*Y@H*2Esf(qayEpp@+OY+n-%D6UyE}%4hVB7QJTf#?MSrTp*QrlUXK(hd z3!n*f`m*V35uPQJk3i=L>wfkMhVpx-Q{#-C32ZgKBE`6iuRzbTC+14*Srwz#?CX*V z=T>?SBwpM%4BZWjOrmZ0j&ZAUvX$?kd-*Jt9}dpka4`1`%lfPQQ4E?9$DXn=&bc0j zUdZ$_?>?x7U5nPGT8cr2NI1|C(X)=B*aSA9={7tr6;cQlqBq)Z$;!~U}!vLWL35(mug z2G%lOPDgH^BJ4v~W4?~vBSXor5`UPCPGbKaxre$lb>xp>FClwfu8FZq>w`l3di3~W zO7pfBjbGs@%=4|!{{ExPG41O)?|m_I>&H4XB@;U{I$u*ew8s~q4~(F121DJs2r_I10qc+Jx#K)OzgIWK z*<(V7&lMe)$h=0`-GScRCdyjjRCYIO+KvhC7^FO>u|Kz+JRJqSxv!Z#9TOO**q@MX zD^CgM1>Yx6Sz&MPF_Wk4!miwAlZSC?%LM2=O`grSNsV>IwDHgzXpQ?G8Z*@Y4%VOdyRv@9BJ|{( zxyM|)*SchEc%-BA`=KE_Wlg$KbY&Cl7rz^W&NM^EDa-tGZ1@!DUYL@tOva`!LhkY< zvekT9n>J~US?TFd>|JV|yzBiX*u>PGe3$;8Lqjb;XHSv2NkKfBo_YrPdy?rWcZO{AE*sE3jFpftd1$|Q3C7mA zdx6+Mm9c>>YF7k5N&0t$C*5(ng!$uBJO`m?fs24#aXr#mNIZzo;xdR9KAOZStL*JSP{y@WWm|1$iP;!BNfPC*yT zJ@%A8>s$oAAoNs+Xw{1MXewL5{z^TzI{d+v`!(N4C_duaw&o83tt-&A=2`)}i$2wz zn;O0*6AfLHxpGu8t2|oAYX7BzIz~_jI(OSCP<63hBJ4C@#BT zuFRZt8n#eJoSvtHzd|15nzm)H%y*{0X6%(U`fXp~oArd%zX(|4fV+~64X?6>|CVLV z10VQtz^Y*2lg|oA+%@Jj#+d2&|0B{V?V}Ht>lq%i@?X{HgoOm>vd<6n{B3A3^(J?i z*efrL&`;656?4yS#h+|XK85b{SP1>(^}hw$nv05W$?Pm6Gv>n1Ix!eV2CV(h!f#3E z0qWjk`qfzK7jIhsi$9Io=a6qJGLh|g>y`i5fNqfMQQLczva92Lxz!1G&8vHP1JP%5 zvBXmP#toXQmTOJUoMk|BXZg#2{>haEduipR@Rj$WKQ%JaoUfFzl)V+lFW+e54=_ir zp?=w<($&^GmBv1g=DEGdZVK<+Tuxr zx_NmvL9-J1+{O8nbLYfz_dYiuE9t2ezcl*L&|n=j>!CRo*tFWRL{~D?`u%uls4u^W z-G|Zl7kI7$PB-zQb2EC^nYHGCYD<^nJKgzRT@-$zjAfDUz}M8Y74JP!^FHB%q9yy^ zXk;llt3LLp-W?7PR{W9NpODEr>sYg6!;4J2y*kaey~)$|v*2$UdGq&gn2S88^G(g$ z#N#wmA2QomOMKoxoJ=|01<{$F_>g?n#xiVH=X)>ziMuO|({tcwA${gEz>g7X!Phe8 zuEo~nKb*c}#_i?0gGqVz&Vig~kw^FSM0+Jxpe$LR~_LDwc<5F0(-v|DQy|D5?u=xWX^ zTB3a#epu&;wl&5%UmuV>sVhInKAHS`BvbP1PR1_q<7{+By@%d+`v&7miTa?ooaTk{ zjVkAy!<#x7!%J2ZpKt$W+M+#(ddho!ay9w$^BA=wh|XGkb#TY$G1;W*;GAnPOyAWU zZT*j2Ke(K6x0-d&D{JBQCjo0cFafk~s!9Y&`y$V~`EdIzV8Knn#9Hua;GZKzU*Qay z=S#qkx6b?Bh3YR+#_dR7E=rw}z3Lq>bE8in^D_GR*s%6DyK`^jw?2$c+w=Y{()S(8 z^jnc7=!ir`q(b71uEK zu4I48oqxWL><0+X)E&*uU!<$E+|_R zW)5N>^UV_+Ik9J8-7qG=8903i_x{;zAlym!og&*TS?DR3@5_~xqdnP&kiXhLPjq7L zn(|f$zc;12B9t8wyEijD_DWXu4%57dwid@VFJdlAUion0Z>ayUcGW%NQpyb{zv|Pz zjLHlrZ-{fVzLD3wcMyLt`peg3G%pHNn7w&ue4e&z?2;Vzsh{*jGo$f)nqL(|Pjp1{ z5Ory+SG{j5A8Tm#dp0J?m#chxdX{V_!_Noz7dE7%^=LwoyjeGo> zOatYo!E2sR#mfdRG<@p$In^JIX8I?L#8+AytD!Z*c6ogRTK4$9+@gn0arC*FJlfCE zy_U@Bg_0d@Wv%kI;#I!C;FR2-|LF3_oy79J^dITOO6orGFj{t2WkyqC0G}7KB}|+-~;Eqr?ui#&Hu5LySV4(j9K(Y_;K3yTh8^1 zt?tZAw9$%3Gum^yoVHjI?Nuk!4}kB+MlIS9lnv5mm3^IZl8^FC#m596c>aLqh<`D% zvSO@{prv`#N03`@0sa>r#80j4fVnke&~qBM@28B?MC)E~!B@#s$~;VZSxlVfWUrXG z?ZA5R6vqB-mnZsY`nSZFiFfu6z5zbkv_oZ|HD$j86#W}WEB3WZ=XI)c6M48t^1k+F zLvfusce5AGdC>#i?~PhkcxVK0B;hzc6HXwErHuL(ex!UecAb~+eMU~=;bHPTO&zOE zdhb`TjYu-x^Az*2gnKrm`zc?fjP{AOcN4)5@LMIZu#1 zUyYp9&rYLl8q=k-5$G(>OA~at&plWWzb}=aPfE^tzuO5OKwpflm2N(iNd;|YOCGOKm3>RlijlslDjlI^D*9Y(dU%br&<{SeP1X@mH<93E7M>SPbA z1bGdvwis_nmu<*K=Q-u^AJowa&VcIp9^Ki^w`DwZRCg)qIwuxB1wP~l^6mMI_@ezm zoBKPa{xd1}8}hf%Xa34O^$kK>uVu{zo9K(I0@(O&4_Ch2_jdO>_t<3d1GD&7rw4-_pb4JEt=d6bM^$vGYEE&+g z9R8|AV~P5r&LhXO(UPS2Fy$Gj_seixnQU^4$$3e4@^LDL+ z#M@gAo$H8;p2=Ks**=di)H;o^Y1wY%koN%>J9>&{M&bkHo0cAQeXwXP0nht`dxXOi zEqq&PFFS3&!8!l3>61F6EV`~UC0}5Ni;(BK+)bi|UcOFVwefr6jePRy!`RCoVdB53 zc=l(M=Ud?1JsMOUPl6W(?%l8b9M)}F=6;SHuXE^3a`r3wgh!HT?lBD>_));Rwa4r$ z6BmnP&oRdRIQKw}?5>k7Mx8VKk|LXV0P)ytwv_l9-D5&V$nv?MjZM%N={(8&?iqLu zhIE#mOy3Bu`-hs-9mL+2VYkj+Hg!&oQD?k6qkE^Kt^75nPR2^7PVu5T{~(&wqdHVq z(yGfm>ZxZUI5v5-p3|u(gzRkg*ECO*{gxnO@15RK-rdmJt(0-2kaZdQ!uPv(Y^@k~ zwxiS)e~@-gl`Xtop>s}n)L2sydc^Tn=q!DyfGz78QXs~@f{mYy&}T!uzk@6a z?PU5{+GfYP96jhRYGu^D+f?@)^LHxOI9o&inucB&JJq-0>$+?K?{mmMs~r`_K7@bR zX_I?*X-h!w3~?_rz8$q#bpgTA7(MD-cHE9jghMjp-S&PkB_S-MB0Gxkbo zId)-ajYJmeALD?f#@bEhJjHXYw#*@;+H*{;X$H zCZFd|#8oF~tG(K}v#0iAqvg7LuRdJSzdC0pwN71~i;&l{Ie(;olu+M3J#%+Jd)oG9 z_79l9ZGJvrg@I*+{5q%N6MebK*hP&!GFNskI>F9jv0XXMgTo=sXE|fldv7t;9-j4& zcy2WJleD+DTm2<=V+Q*iv*(OA(}D1?Ohjv?{J8+SmR(IihTGcJCvM7O{{iSQo+i`F z)bHV4_!os^BY_CEZTz+3Z&5t=k>szJ2CQW}pcCZ&=*|l{r$#pS2c$DspOZ`6`S9+L z>ROTd9`%OVbCkVO=X2q5H@#Z!kI_zOTj6EgzkJi-F+f_9v?}YG%-RpRbssk8)XK+U1>*&Gqv^ks3apYv zyX-n#;BRF33moCQq6{-71 zckV9?FG~gO&fIQKKKsAqtM=qOGWI{ytM%mD^I!7q@#Ne5U-C5>nW>FEwMGu(m+eOn znHEplLSNb(Pg=~Ec8e#i-j{Z(CoSwtYxSg!^`*`Aq*=bSd7iX^i$B-2@YJ>Y zq7TY#$1uum`&4EJ{$b}B*AHl~Fo3W4F+OY4y`+afmD%ucUoL^4=!&m8`d)gi`Z@Ch zot3;y-VO96#U)G~TZ~`mFwgP}we&mD-$Y*dBb9UfL98niCEqaOoIZ+evR*0C+<-Yx zw)Q0Pp>fW=hf<+EE}n;llj*1AFE1DGADrWUQe!3lQgf#Bg-4htH7;ZS}8O~SXka$B!B6S z+wG*+knZqi=EUOXhwr)TRjq6CK9{o2yLpAAKSz3)bD#G}7j5}UrEC7I^ruO$Aw5TW z-XE6YXR9sAA)5Ugd`vX>arntUl3($|!4H@9aqrNT<6+imR%lX6V~2dfZ#5<|uFT<` zsEUN%YhwMaIOG_x)#jy{3uu$(UMtv| z!kwwHan81^mAOa66JvP{p7x%3jk7LPy3%$!{6@LLHB?>+Z`JlSnIr6#sQzl`RuCtD zt~1jr&I)fayfP<$yP7ncIx3yCQ*xZ24{H3}c46O%@DO60Ig#%X4C)SNFtBXD#s1`OmpTL()qcp17$-o$u1Gi zoTYse7W+H>kVkSlte7XsRA(&KA>}^k&(=Q}=kM?wg&u zD^zcMsk2V3p^iZKD&`oB@z_&voGVjjj81eqzDK%|jqOEeqJKTKm@8$uid?SePdc=t zSlk(74h5uQ2 zg#9$yQ4><1XPpAiwrrjDXueX#UXkV-vTb}ub~b5u1K)(NywCXazlK=PJ?8YSyAQbc zNAqcXm!Ldsd{m-%~yga-+&gb7P6>q1~TAwU@D=G||?cM0nVU4&Z+pCX(^ z&>ykSLi2}&b%X?AHsSFHxZOdhc#^Xbp5FuCMOd?hGaACLm$CP=k-q}~PZ{bQM%Z{C ze{=j^zOP3($XZf;Z5R6*b2#4!#If5@cSiHyw`JeR;9S_;9A%&HRMy#%?u>i?E}8xt z=}Fd}McBITgXj15rL$ScPx*!afqaWhKIKuI?Dk;nwe)mPz8v|cA#0^e)=AP_Jel1K zuKBI(U^x2zJkMeBTDCjpDgPFee=c<9{MOxH7(@n#2!A5%AUs8QeKGC6oOVNNTj4`F zt%D1q^k?iW5KE@N0A$ZJ^L^-4a1T#?*~X`+&+EQcX`(x$cB>85)Oiq_91b5napJJK z7RqVgMEjHCzfg9{I<^?TOM9FqfLx$5iq; z>(frwr#9;*`=xzFe9uDfA<5^cPZdFLBl&cNz+B1kFBd7mF*(&)dp-QyN%}&RyX&g=_7IK3U_D9=wmiCdev@ZrE`Wd_6)?c_7WtgV)kuH zc~_#}(8I5#+sQAw+6UWc;&q>1Hebwqv5Ybyp!R%9fn$M{$V_tx-PzWBG#Kf`rg?V? z+E(PATmrwVcU!d|cW6_2JaIXV-mE9_Br!ZbgerEr!Wo;Ou{ze>>Kx^%gBn< z;bd24&F~S9&6ik@?q6u+cq_KeU8|JdZ`AlagLdkjNA1t39op+kYVXI=y&?7t$fNfv z4u9tP0o~Wwz~0hE>3%wACe9x7C7!yTRGhPKHAQ2XldgH+CzU6Rd~Ci^Mg5zpTYcbsr!M#X zvaqR3tXVmrI+wr4UOzmgyCx2GWw<640 zHT#`hRpPr!_!s(3_5{h7exSQB>H~k0J!3=8d)hH~E_DOXRrn^QS4V;H{5$m@+qI=l z(9r&K9lA-K`KANpJGS?or?k`L^Ff@4a z-JFdgOXqx(b~AoULFlB}(sC*_c~zQaEjq z&sTqwJ_9|pm-#Xm4VLLFn|?CpY-p+MGUYell2|T0l1%e05$uuuXP#AWA$^7SE}b~7 zeTo!kCj;CSbK>q)IdgVn^*iTj+-bco8%QqB=zbXQ8|od%63zJvsaLecr{=MRJ;}gG z&OQ{Uesim6g_G%@!-KQWm`n!Pi-blp-L15wdml6*oOWsKmhH%%D3`sFc=>6)m#@9% zv7zov6Z$-te9nGujJxgZ)#^TCS@>T3EAImH9%V6j2t1U$mv5up%e&RC&SK!x4ITy8 zT}9dCbnu1PkLr~T*NPwbDC6DBe_*Ha@vGSrzBdz$bz*n-;?vjV;*Cq$6Sy~bGQ9NB zzAYT|)L^GuxH}sh$$XI)qnvjS;>mRWu33E2cXC!t`_1khvtoR(_Al@?yd&F{xr4gK zGIo3mD1DZ|#|H3W5#+&{19yi8gHIeACwE2raxu>0E+2(oimphlrw#hv!&Q_S!=3Rf z3?1FO9*+~-_DzG~|22G#-}0H%QV1NQ;%0}cR}01p5=fgQlb zz=goOfs2550e1tx1l$9>6Sx{LKI`LMX|=tKx{B#XC()Mc)DGy2r%wxq)>6?-B|||?Z_PenOy@7`J;1y&Rmf3quB0o?(C{v zd78}4H|A;T`*fnIG1pI1W8GcYP#d9GryOhcor7w%*&%R--zGFZdF9|V4%pm(AJ z)HCGt5p)1PLhZvYg7Bz!dA;`!!q~-MXlLFopk8v2vVR`H7O`WkUp6IO-xY|s?`P(1 zu^{H^_-Eu*|JAxIsxS9l?T5-pxp6w{kWrAEP=PW9RHXtws2M_{i`f87D6twq&aKfRqcxw(>KmM2AWl3>{$+M&PW^YR(f1zoU5X3}tYYin?R>zK@HU~2_-Xj~ z+V2hx<&cxsZ29$CIL7@fjlU7s7d1$(^eOp-Il{3&XMe-zmv&%(XHd8LrrI2c;d5w9 zyUN7e{^`WKW1r5%2kRYr_$O?roV@)Oy0^GX1}%MqP5D)~_MAcy(Vd#DiuV+uDBF-szm7b$4=~x(HI=$_x4t6qh-1t1So>*z zTj!?LtQU1oq5Z-9dQjhhlFc`fk157r^(yY(KOV52UBDg`P_op0BH3jjyz6}bN#mnr z%Oj0EgrDfN-`&gAeJO8$PQlkt;Wgi%3pmF-nKu6e89P259%v`uu01BR2l6tDIQ^h- zB9DLAu!gY#d8XCg0@^A1YWEMQ!;Wc>D21-pab~jwz1^6-l)Vp~Y3nY9Y)kFmp|(&~ z_|Khoxwf^Jy7fLs0X8ms7(f;ez+e6y4s567d&-XtHhbEy^_u+18KmdsRux@^y;vnr zn*6epNlrfIJFFQbQ^`~BYLsyfrZKXJEkW6PaU_|29N#26(|s_>WpknOV3)M#5z=G} z6ZrPgc5wRlpq@+kP7-a*zCfJr7l_t!@B-pA*SP~3?s^D$uEkzhC#rwQUL;4|bCoPx zjjr&CWAzO>&5tzqsbDQCd4<#l_R4e@q{@B+o}Bj!%L8^Y8{s>*lpEk%63#vE9ndNb zpM<`m>6b2`p3v(l<`YlRuBXViLH=^pe)qkgn~~E&-dB?^yA7W6Yf$aM9ppV5tsP}g z@;BnCnmv=rlCACZue5xAP`r}oy?3ZLbW)D}Gw88~2_>IVU;8-zf7hCTW&fBty54d7 z)wP*YY)7^b#INXnbsz@bb5%zAN6*zwnT-X8Z}ul7W~N`2ZNk*$h0 zeV|0&ypb(DA>AaRykm_I>aS0!y(4XREp>^~un+BFj*R?rzshQTF^u#;XlZ6xY)MM| zy-B`6op6Rcd2}Yc@yy;n~%@Fjr)v*rJu; z#@+K?`fa(|{uOv) z%{(}%k3Md6`YyZ#uYN5j-KxKA6K|Y3F%G=Fg+8J4I`xZY>6$%K*0d$sH&xq*N0RBq z%{XuN?`X?o)2Sn9J98Ol+&zVQM(i~<#6GiV z{EaqhZs*9z>dYzb5OLBM`&on6FJ@mo&K+)zyDtt6>2Fr;;v&)|#8vhMtUtGLuE7|g zxg9#lPPpKOcbt1>)T{TgF63Lznv*c^cl@5_2)a94817Dur%m!f`gV2~G}@t|dcPvS z9d+kD9l~QS{y)MQtA~ZPM#mm(_xtYByY7>n3O&6~qIq1k#x44xzJn1B9lQUA4@ftN z4)qA1V`ysrSk+XugUjZICBtjy{A8`8t#OFNzYpB+5w-kaj4IeNVwAH+Eg z@!tDwZ%JSDvufiT#H(Y=A@>g3@lLw)jrj6KUx9~cGCRG8Z`t4z7XR4}*kP~n2H%mpM z5Ly)>_d7cIb&~Smt-jv#XioROB~$TV8G6(?um6pqF^aO=u~jR{UCL*;3y55_Ulz32 z_rc+4wyJ{)l77n^`JJRf3=)Hqo~ zC?z=SBKpTD`?VZnU0QvFJ)`WXFyEqs=X@V=`WX50eJr0Beek`^?#$;sd1d?0aCT!8 zFM5^SGbpmUop&g$ZR=Rib@H9AmCpACKXiO|<_`H6<{9XxWJJ^*Z=TV43Twmz+$}hu zcQx=;())$Vn~Y|d8W|kcM6W`Xp6zM=IH6~&Xmwj`FX98 zZ*y!Yn)v~`E8+QN^dLX9mH5Mf*XZlqpH`jy(abNXGyXN#-^+gQ!hTg|CwVKwYuM+- zH`sg^3!V$@ds5=LADz_kthAnS?mMX8BCduwWXOAEt{<+Xj$YEOe*8^{@r(GckZ(0{ z!WFlU=e3^aM|sZQzx*qF?_)nCPj4J{v7NIk(MwWhC;nyS8J&&{pXPqQ($*8d#S_2D z#BU&ey(j(~CVms~J)U^JMfz?R&l+#_4u$lyhPV#mwAT{9M}E?c*L%Lbq=`TAJngG} zxu3}9@o#snSn7OpRNoN@hq^P5N+;=>vF?mw>5#$_p*|Pls-Z z{Ta?f3m6|)j!ULQ?~Jo(*SYtkSIe(L=kt`QH}seOU+7;?UfoA_=3bQ5m~tjJhel+t?;y!;AMCap+% z;&~0U0;?FC*4&@A79`VWLbsQBfbxp}FPi+PYTZuU3gury{s)$(t!D0nkbf%cqB~kx z4BX1M&{?AbNJjd>h|_pDQBInedz+=Y!m-l&^cj zd2bV2>fw79=i~DdtS3^PnS!{=^Q}3Zi-yMJ3brM=KR$(Z^QHmzG@NyCKYw$gKfDva z>-bUj`MY!d<_=>m_s6vkIgPt$RTH!(nUZ}AAK7~oelNNrwX9)DX8Bd_xUPBRUFJR1 z4e%&Ek1+BcfjC>Z`*@En+j4cG_ndX7a*`(wn|rsOxccG8{OvEGr8#XK_0~Mmm#cY} za4~)+xgwSS#;1IID8hRcv?+i8;uMv`ZfYoJVK1sz{axRs$^yASClckc0#7{J3YQMub6ljz3$+qImf2%%9 z-ATS@_QC_q+bJ(wi*l!(x+J?I+MY1&*o3@~1dq+TL~A^0vYVg5>ptco^0}HXi<0snSH{{H@0)1GjC^OjqE-IpZ)83|1jL0*|Zsc;9&!_ynR6X)Uxwo@P&5f98R_;lLux>W0IQTHtb0l{w-TSS&DAOs)4RFJ(dWgJWAGc!c=mB<2jbiIY27^E zl;!g-<(rrf$u2hNyox%VevNH5Fed8^v^3hCJNo@!m4lxvjclabKzRE;>3pMU+j;O4 zgO=h%YrTm-hxo~!_{UBB*^-eb-r*l#Q%QWKC;lOme;n~TZ_CqPZsKj)a^yPK7R0k` zr(J2Ztq6H)oc~^iXKe2y$YeKjmqO+c;_(#nvBx&J-IV`5_*R2!4{x)TKL7e)Ucp4)aq8~@c>{+NCR``_@pAm1) zIuW@=?meMSyhoRC{wX=`-lsbN)LCA`yh(bJ|5ymE40f+~zC=&w8UgyV(wC8bG3mqM z?MmhqyV<+mOju8tG@CgKVfakT`Uucs9#ak+LwFi|J)wtC*UPs}fWK(8tc!r>5!N=b z@6pWPDP}Ho4e{@QR}ojob07Fv;2PjFF}MKkWAAeza5u08*bD3+3@3f;Jnn45Ly~a# z!GQJR49hwWd>?dg0RENd-w|FQBzgkY+rVPdj;sh+H-R@01fztj2@%43&e z^zpp^i)@SW57LXqiu@jQ5BPYMji5JZo$t_z>Yd4w^~AwNnzV7+E5s&BrcH3yg8Jrw z?lJ}0pVGVWLHpSLR6BLmntWxEPVQZ(UiZ%ZNzk`RQ+@K?`bJG5d%vBL>C} zm(sj-92)(>IzCGs`^KAm)S>I4tbmpr%3!(QXY;&v0JF(y;XRWWaO41I< zZozdvy>=3HMEEAG)s^`t_C0aJZilAi)ur+GF+G~cUKdE$4Oxzq&W$`-RG zOt5Ei8|Bcw_TKOMj5{AaLOn-VC+IH2;RNlmT)(FLC-FV(0n!ww_u$0)ulUyV9urq) z;`DchB6zJp`NQxjat>-}ykm+CWHk z^4+g5(3c4tz_Y*vu#B`i@I%W2);eG%ajyXv66O)M-NWA`B(3A~e3yyf+#{h6#d?@e z#jtf`S&(3^-y?b6@62g8(9Sv|3(4y=)&aFVOTOAW%**!$zInu6kMq1AdpI=C-8+-4 z4qnCIAxYzZ@5h(j$jvO(&00rynb{M`so$|*>8#1xMz89Tz*BWSDt;%vqdMy z-*|$CWT5iehn+)t=l+ItYIxC}W+l8R-hG!>{r7stE314mdG@f+XDB)P3hu^B~PT-b}f+|2gOdKg(Q%c&*PCvp!S%e}G+$<2%%4P8*zW zQJ1H9uTg2z&#BmHOW3`?Dqpf=1b>5$bhSz8YS)v{m>wlhT>W6x(LK`$btcKLI`cB< zpbh$48}cn>(CZ?-%SZ1~=yiOII{G5`6q7W2r`eF~z0Ka~hg1nRh4Q5pik4a>V%6$FMdF1C|VG; zNr;qC@2MWto>7cUPhjWfywp|lw+paiv3Po)Gp@U{xjVj z{w%`}TwVWy|E=Swe>ZE96Q3T^AHNNb(y33|x-m|K z(!^04YoET_f^QDJv~PILGIX5#(1WvsMZ~Y6j5WfW({}x|Z#8A87B0%5bG0gm@Co;q zU!Ujr5|`)8#8aI63E#>2-=IBT*8CiL9%rtue2#sZJIUb@#g!a58@g`I5+AzWd_OXQ zwfAlA{O}FXb|2|;X?qm@J>=GE*@qe0Mffgf6}$DzK4-@utLXY`re7krg)u{OJ}~-{-=@WV#=lVUnu-J ze0BzDg0snrSK;E7kBFB?yx@$r>N%QtqesM<0nY~Kp%v#i^Yr6xp00X`7FEP~E{9%+ zh;wK}oOcl?IHxT$S#;EcB7>?F?45phb16P%@DTUV&FgEO?m8A?m!1g&<(!sd<^QDIzEahOk zviJAj4!rbyU)JS&M|vb@wz_x^uvfvh9dQEQdhxg1{paYRc~pywt9T{QvNP?|QvI@v zc* zafI+A%;|ISeVq0Q&XX(7e&XyO5oa@Tg0tj`vzs`(N5t7koM227&+N~U@$0x}bFY&* z8c)+1_EeI7B=7A;G`I6E(zY29ZlbEaI{R}r@pc&CFm!H2;(bgjnZoN|5M<>8^*=^Jq>N5YQV zpYDIBE7ynd&uFI)f^Q^k+n}v%6=o}I-1OO?Kc59I*(&5O2QJ!<5`G7h|AVBh5YKf> zcVdmn@mvU=dye^t=&t+%-JlHG%T6eq6M3INJN$z0ta_wXoyw?##(mX+bIk+m(a~qD zXWq{xA$Rh`cy`~6Zjbv6O5wp<^US$*#&qL$@??O;a3ee?Z{dDw{7>TU<>}^)vJw}i2ES(jyFxI`!aP+;2y-iXBFvi zm&7={LH$ z#47w4;o@UM88io9NZzuC1^f5%=%2qQ&fY@KHLKB2kZyq|NS?} zVCJxrDVo#XT))N6Q^vbGZDp?bGnI+_l)v(>hTpZ{U_D_6Mub%o76Y!hd&~UqYy6SB zNVV@)uty#2_rMA#ZMSn3*-{r!4thl&Yvcp^{-8ZqRgib&N5AHbH?XZJtF0Y*W-k2Q zdLy@JEa84f+H`Q4F=Kf&7tU{BFJP3q(2m|#*4I1zxtHpu`By>2uS1{B%m04MX&!3; zw2#X6nq&_)9A>y6<*&JSGeOvA;-XvS!%%i+|QAKjPcv?RhHp4LzS`%%n_LL0`!u z&6(w|7ro&{&6%~QRrBSyo^@-l+AC;pY^Z#}vB*4*KWu%M;j2mSWf3kY^_0R)>9COn`^GbMsDzX7)a94|@Z6 z#(`J!RPm$s>}Wrt_HP|Q_I@AUc!tMwcSI?@z6)ETeO>5*qC*MaW|>6zgcAQ8sOBRL zw72>wba-hc??Jn3&-DL%&R<*G$30M@-8Yz5X|B5t8pvM~;r!2U1_!j)tbpz;Cp6|+qC{(@V8RW+`Zr{?7fT3*U3{dXmpf41Pz_Y2m7rt?wjxIeTnv4 zNnK}=hsyGGXptB8`PE~cX&3cW-<2E^-2yqsI@N&s)fbh2iC>TRDZdi`-cNh(fbh=} zo-5N}M0*FX@~VPAg=h2{>}F}~Ydk6Bep+n_PA^LPMf^SLn_U~V(MHNwXR3_(5w9mLI4`q-3APF^BIS>YKx}akUry82J9)cZWas+~9!D-P!U`4)Nre>muwI z@bBAa?zN-4tfXJ(S9VsH^i!_B3GQ1-&rr9IR@Xr<*~I~e0a zhx2}$IofB}M5Vvb{`So1DrD3CJ?L^__I5mk?4f+qDc_zLZL2y`wtVp=a^#(ATPu$? z^+u2l*unZvJM)&_KU24elMU}8?P72V&-uLTyEijQcOLfDd}K$FV4i=!qWaPSbT;%_ z-32jFQ$2kDpJ@B?RN3pOH#Ruq@_zeSxAZ!AjlA;7i~c|GHsNdVW!_u$PCV&-V{ATG=}esEpVM*ofJf_{sUbPxm7Uf@H)BF3DJ6$@h^{K4bmBwqYkZ99#{{3UYS@I%sxM42$fNZ_1cU7&% z8v0rUU6y=gOPqmj5N52oagcG9ce{6pyRg^cH<5ecvAUiM!5gLw?}CRHCNpaaF&E{qaS6hEK4D5$tc#enR$t4(K~^r*(JrYOho%tn;*d zBSU4T4yEbOK7K~})*n={wMclcwRz05ymFn(Blk>otzhm>cW`Ow~w?j2fNwUFWOhdxw*QWbdQiuaVv4P-{C>r`tZWuG46YwmhRzA zW5k1%&_!|f6UUez_vdx~#nK*rwd<*?$nP}j2v1sj?&-XbB~20Tx$vCoyF~RN{E)}p zBI&z&u@~FD+aGC=AM4tucq&{s1CCC{~Ke*L-a?D z1;M@X&}fIpI7r$0bXT~EvdPmTvD2vuUp97EJ z1>pJv=_uns6!?URKD-{7Xm%;GY!-0E3(~M@-0B_wL>;3gI+xSk_ayH+!+sDq(8(z; z-%so6{W$T(zn4>I(LjA7pT6=K@L;W5arGUwO~9nzU*_l(#Qhd<&FR$Uj8CCp?xZ=M zzMZm`e7B>YK)MSVeqOQbOx@BIJz%QGW6V62VYtNPm#9g zBj6S-en`7Uz!A{l8-#bWApQJ&?t$X@F3)D3eMzJ{ZpAG28O+0OP{S85aktX{R^euN zP5`sIRP@T;{0Mt2ShJDN{)*ZRT_Cp}MbzWqq#yJ&U{_RKg7y}z0-i(P<@?s0y_k2KhK-go9Er#^IPzVr!+Q{px^5K48~8@>(`uTDXD=bw1vjqn`ytRz-h2!7M>$o zvmXt;Z1i!?(vP{fe;?naJ5S-zf-_j5V5u|2!~z z2Z4jJ7i;`cV7iasV-Ci=YWyGHxw-d`l;J}l?2-c6Beqdt4ryfE@;Q7}!(?`zWxM9D2Re z(Pllg>EwH?o#;^G9V`QEH?ZBn#yVIM*rM|`_b#FzqMX?_z+M?@WF1%Q5Ta|GJR0z8 zZASh^{HyWnj!^lp!{3Bo_mj$h4gMH@tJ#{RJJE#T69v%)n8e*(Ymn3exh{MX~xy|VJNH*Ne4_;r`8{O`fvieLA~ z%0CT%8-CpxEB_SyN&LDeR{o3dr||1;Sozu4IX;bF_rc0P3BPPVvXjey9)8Ii*}L=k zmZip~@yG}}PPu-ld32zcSD@ETAl$=-J2CvP^takR;)isfz{vieMeeBYmxZ~9%8jL) zkW1>v=e~x_wD~OW3z2^DDbi~^)qV)!2-0UrpQpYLj?~G)mtMjCeV{eZ{07;y68HPK z2U<8YGuxOgxZh&o{YW_4KgQY@{BLBU(}c{#66R(l{jz-p^7SNsjrGdw8uBSLrPB56 z_lHW5Da)Q29N_Zn{=w=W_6>%Ah%L(A-yS;WtO(zvysKAndays+cl3l$llO7u8)01< z-6OAob6z(Qw}kVH(T{WW$LGIr{Iy`!WF=ut&E zZ}Q&S>mf_8s(#^xaeQC3w4qCT9((%0|9fOp5AHG2=nSOBilg9^oV?=|<_qCE+lJ>s zlQ8uaA2Y6nzIfQ@=|bMi+*leWoyMVa$nz(p)BHm;U>pv8fwAWd#^bfA=h6ADl1$iBUO}clX)Y$i_e6%7u;? z8Z8=;H+p%G>T$r7PPg^o9ZUSQ1E!F)ItLs*n>DQ+jK4kNy@|TRhw`dTIc)Wk#!Klv zPw-vZpYW(0PvQ!vXcCO0^C%bRF9&82zW`jKRRmZG@nriHZ8d)10*y5P?^=^*-c4Iy z#AA5cFEi%jJX?5j?ME+4pNaT7@Pc3Q9`)a^)VuL**oVn8*M8K_`fUh$`|~V+e;%sv z&>p*d+MT}87ub`gT3o(8Njk@!sx#%6o$N7p7F1=BJxMym>w3k%H{i)S^!*QNFO_d= zRk*%0s5A5`m%hazo9d|RZtYdNdfH7okj3lydftuLNn1T1rg??tE^6lv;H!X_fK$4X z+DT!L|B^X1@lNx6Te9L_Ph7QcIXG?mp7ZJcbFkHo=FWm*z9Esvnrd+Ny_5OLr>1a! z33H4;U1H2*Odb#79=R^h{5!Vo2z*q1^ZosURR+1lT`8UZosX}Ouk=?$(zD|lX@>~9 z&L@4FqwF(9kpnMGPTpd_VW6^3{@iW7=Tl$3%PzS?{L;XC_m(3eU>_qaFWuRzJ;?IU zRUh@(KP&oE2Ca|fg@5q8)*badDDIbMUb~`)x!M!mQGc!~8^vVK?XMuMY*X%gCU3Y; zD4Ngs;C1(GqYjFvwozR2vfq(2gwZB;PI4CIl01GpuD-_>fvy@0MAs;LwHo2!vU9j^ zko&YG8)bw4`C(s9a+lK4Qf$mSo8SwcGM=&Yp+{HenJsKo2_rurg*O(`u4mF;sArEy z{nf52llWo@W%Q7#djE!Kf(?^$jvq%k3O&F7YQ6LK*d8Ax|1h%oZ1mhPd1$Yk>?enj zjkj?=NZ(+|@AT8`6fWAYINCiX0lw|n5zeEIl2fCi-H*i3|95>8J|vB75H~NogM2v? zO}ed;*SxQ(Le|4?KPB%@2h;pOFnud34NQK;6>PNdZ}oLw$!pQ@e(IWFz0qzL+ausQ121{{yl4tj$DbZ!90t;iVgax#+(A$RO#{?{CeD^ve52?7Yp7k9BIGo z7PrSbTo}1beMDR4Da5}De!O=qHnC8yo%?zDiSr(PyC$-&|1Z$K`0TCr{GH0Rj6OzL zdTzC4hK9U(P;9JCq%3bc5cxkG!d?NHkS_#M_bs zs)y=JJ^K)D_70K_!cW;1C&9b!!YA#$zs@&1uC;ml-wpw$yY68R*)op3fd*`)U*^r8$dz}kc8OsU39-N23w=xGlN$G$e2Hu(jp8))Wz>fe==fK|zd?oPbfoF5z zCBT;hKMH((4m<>WG4Nx+S2?)qSO`35*BZi~BfPywYOkF$`qt-2YM*R3nZK`33XZ-E4)~8}rKwKkeAY ze%8|{pJ<^nK1mt7ywCP`lFsgF4EuIa;d``fI9+T+y6=%L=tKVqoffOjkWmkljxzSl za`n*rd|Q71eiM&9wVfXG&Jtf%p22>XL2x}}kQdPBAbnVEQ3Smf*>t*hw|mTLY|llw zgpb`rT*Wz^I1v{|eMLOggiJb!9t~Z3g{#xW6~3v&%{NW!!98NNGV<81cA z_vkb5m*j(Nd0%F}xYOmKy&gkpTpk-ote4d=vUZVMEeH+JCkSY zJ=)##WAJr<%%6|%eBl26cL3KMSZ%I3g3=v*h`U2veBFb7=+(g;g1>^iV*MZ9iJt#6 z2fK)PD$fMktT4P|Xl$rqJxgiMA>58XoC`gO;0aq%rjk2Y+vc|5Ihr5D(;|5ESN^B}tHtGt(^^OQ1< zrp>?ouAFl2qTH*Y!7;@nkE_9}G4%7V`rj|O5Wn=Q3i?zSIjZ}_s&S=bZI``}Z{&or zV`>bX_Zr_>W=?oIbyFQL1FrT~c@|TL)AMe7L4LK#gUXNZwaEWLUO$pDXR#=(9a*~!&j%iJ7oqv!T($VLnwYiw<$Oe!<+>|FUzqN(c( z{|2rnm*knn*a=pCX>f2cPq-Ev!UwP+Fkd@WZ&cDkbp)k8nQ zCz{9mM@JM^*LNmx&8ZfM&cu~|DgUM5EHj&Jdf5T7NcAl~=;Tw|ZhUY3ygFi={sCUoTZ6$|Q?`hcP_p>HQ z{Jwpx%~@JP$Gxlv?iJkV+Z~@cG9R1U1lAJ7e_n)Joqp}lX`iHxRhE!&cSd{Zd$w%< zK_9SpG^CODq(AeLO}*ON*$Phib$(F#9_wv8PA5GEXK3c@d)NUi?5JQ7fB(=QZMeT@ z(?c%ILZ2$2Z+wk92Xm&W&>`Z+C)g%b0}a*2@8-SN;Zh&`E$`T)t=y69&GWi?HLtA* zV{<|dErgeMhz}mJcMpatz@vL-%fol{E3dMKJFwl~(f_P)LPy~|{;&RCt*0HVocqIG z0#-)+B9C>2@EzP;_b{^lX6)B@*z@&6n!?a>JVUo4tz^?B(t#94@6^BMJbOGjur4qD}T zw^@3YK}W^Woli3eRw&xoe#f3B z{Ku%D;$N-!jBk3sM(+{s5$!}k^i-xKlgmfc(=Ti`0C z?eyy;xh*=0FD2X5u9pbr__7Ec#-4=*Cu?cU;khq}@|;V)irY+F?ZsO`e_eVW@=*0B zTz0%DJg7LdVc$$(Iy-(E-`Xl;Y(dBGJApe6SN$uGbKuAEOQ$$6b$@@$wEg{y&*|zf zzIZ?Pf$Z;(kTx=vvtbjNXHV+tFFn7je-BT1qTjcKqnLZ3H7C9EV$#trnr|KhM_CE` z6{21J6`v%(&v*5|obKv>c&F)$iu`rT6`Fj$eA^KjPnrJz8xk+3;j_SO2xFLtM!CT?ij&?}TW5 z>(70g`(g2+8&99rdxPBvJ#cJ3cH;9n%MoRd5}m$zBIhYCTaST%bl+q_1o@0?)7=B=f7a*D?Ku9SG{ zE0n7wmFm%W@g0?iGWiMIp&O>3oHtv~q` zQ@5`|8{J=CPCFljw+c$`dqKQ-1i1Lyc-S-0o5f#RJ6lCOeG5tV_(sEBy>-6ZUjdIy zO7FM2Mo@=W?fO-;mwwNf$~~FnsWG?J*`GzLmk-Jw=F>uVKdOH3eVOxr)Niqir}_>M zPwOF~SrCu?z60q|L;YUj*6ldj=gOP6zg|6S-Gycgr@+uW;uJvdl1H_u!rP5n{qENZ{qWz2uVb9#$tzk)w}V(Tbu zqO{`xR~8KXiRTM>X5ec)3|s>qwijfHZP)u~i;puFmvBy6b-Mvwq8OZLQ+=!8J>g!7 zeD@?r8?dX2x6pZ|vp>H8eGa;7e~x(K8E9|_TZLf4^)&ti*hmgsz=JJB^$@;%;)?&Z z9v`YUeP5z2^=$^>Xds_%;tQ@lWNH(oQ<|N`+X9{~!7c1U5-2& zO?zKLyh7%Cy1xY5_l{!XtFHuSYvz(hd%52WZI5%FSM*o}?T)(lg`}5U?}XnDbJjO# zkLjcG!J== z`=T9(>iRa$zke)rDp`LOWul$3U!vSm|2tX1{Rk(?rvW_bqpQeAxRi&!MH9s@xcsf) ztidn27Qog3s|J=wzNT{+UUt>}{mUq$r}$felPBLu?-d^9tMZG#WcQ2EPA6CRYfp+7 zlxq^@I?6d-;STbfNxH+6eVo!s1y^~GVK3hgJQwx?ustJSEO1+0LFq!4zI9gb-by}& z-f;O36Hn)xb74;bOV2|tlds*QR&T%G)pG*g3f55m#Czd1~)BSd8 zM~<$6Pr~31cwi6ZU=3|R@>XqBM4G+iCEZ8;@;Q~Wp}Xf1;+#a!R=N}Hl@l#hj$MQw z1Frrg*b|D64MBTCwHNP@!oXcXI)!g1d_TIoc=Sei^ilV|p7%ZOy@U4$-FrLlyUJew z&B6=7ft`6kXPakiy{q@mtlv(;FTG1^{XZm5CwZO)O-zKdA=FKM?k&I@s>wgAKDAIEd#nX`$op= zJ53rlgFB46WsC7F&se(7QQl$BX(4Z*b&tI-2m2}ai?g<~|Ak_2FMW%$c{e{#8OFy* zKe~H!Z^I+dqSJ31>Acc2>%nyzdL{UNNV%U99e8K-sO@9QJHGhl%|}K*)ZG{E#^w>; z!dwF#pZm&-nIA~!6z_cIv|{G>+h4frXFeSnmh7FzY7-8xvY%lSdI0BfJ2z7=p6IQ# z$)^4X6hAWDUSCi<&{m(eG`{_L|1J{B+qtE8I_1=!pFC_Gr_+~zOTD&X&j~@7fZtA% zo^{~?ol_2Y{x86EPpx?HS#*F__x?-X@5f%zFb%$HfR15g(JX&0?sWEZm%kt1b{ zTau^Jb#&j`pH*hYDbe4AA0Jx~?LOOcIDet?L%*WNTa4BfM^lcVY#Ot4Ryiow&+)(P z^qM`C|1m~53kc+)sWJE7uohJ(Gq-T(?(;!XZ3#G)vv_oIx8i6fZ9myqW*L{@6z9bI&=eP zK4jxB7+6XZU*h`bx%gl2n@$LY&XCA9dl;J#JZ{?Z5^E1-CiedSaY;v1} zzZk>Dblgy>G54X%$1dgkDtgyb9{33B0nu& z>G-GdOyn8OQ-fYw!oC&pr0mb^v+OHEca|=OJfh#jBjJzPG43*GKEYG`?;h3ow7VJ` z7_wk@^~d@*VH@1bJmU~~Y{3;j{RO-w4LTR;-yL7dc{1s!;AfBOFwf}B<#BLcaF9L{ zLHAahJcY@Q(3F1`pewc9M z4a>17fE@s)yZKcgmAOG@kE?I)-wUiTa<;9bS@Skj|@W+l-j7g&LV&blZFIBeti5o#?O$*y^ zj98sr^zoPe<--U}(mm`JDH5A;jY zsSTuGijM!`>d5|z@$%~%f>%J>Cp9;sO`alL_x3Xz>Kk3OS$0Fqlf}~+Z^+|8`1C>I zs?2IvjT2{=Ikp6MUxCTf-nb#T;PeCWzRs#c6U+PWr%WF8wBr-?+)X)0 z!|%tTm1M*V$l>nyBL~5|9ygFR0lk8AH)Lt?iZ27)W#FDb8HzlA?}~}=tuJuyF5A@K za&mBBA^5(B9G!rB9{oXOg#@?XNg6xWgvT5?8+>HVx=e9jfp^Xkomoyp=XAuM59EGh zL^_Cgb5&0L3MhldL(X^?F9ff6bayp-1BnalfZ9!EIzYQn_P+cGJjA=c+3LAGWJ55e zCh}3rx@O+_dHayfN#3{NPQ-ogwTW}fN8pAYPiQ}&>V&P6GO%a1ll@S*oH_29L0aL; zBRr4%1)FI&PsYRE0qZiXShvi%)0~S;v~c>Eb^#+C5q}4 z#0o+eH+CeOsF&B0%BEX8)_C#t@g^^kBtfz%Ug4z^(GK*{K&FtE1md?E-Y^vhfrYe{Dl$e>Esp9V<6F>k= zo^nyfRArRB<9euRDAUZzu?mWs$Tp>7aXcYYdqX0fRt?+ZnRMg2+vJSjUc(V+$d0s^s7jHS zAC;Oyq9F{TVMjJTlyr#5$@n^9ZM3u*Chkz#ZQI(KHfC;UPPAvT#%7-}wgHuvzuc^v z+T)Gnluo4MelauIRNBR>r1+^DyvePtu_=?o@56x|+B=d-k;xL;;tLt~Zq~G>R(pd4M=4Y=~c48rR0X zxwDtoET309ua1JJ)2a4sPE4@OS+=aMwr+Oaidt8~oM4HLbUU1w>d3Ti5OX30vMuz; z4Vi2lF)&n|SR!UQ^l!#qdwnLAtdF<1r`pRe^wwsQ>Gni2+wAhCm$tX9Yiy5uiMGZy zaXNcPYb<#|)`QS%8(R}GSS2>oGm~SS175!5>eD}<6BdWFKzxuIk9NO9V;=R0Tw@4~kcB8^+jH%%*ODSKI3m3PX5IBH5H`OSi`9)0fvSTS|{h zcVrEnJT??(xCn4lM{Cwg_@b>b=_m2~Uk-)RjqMp9-Eh)mDi=SULqQ?3_ua~Mrn24C z&YL@T*^+4e{6&lB87tSR7!2IHx_L?_B{3ddK5y}|*)^sk*_vphOCrEqJCHaXfxynT zH#WtcClhZ{Gs>{JE=bOq6 zrgFKdTxKfkOl87UMos1ArgEOCjKj<`P385bveFEV=93ei1`3agH@0Oeyp9Zw3D6(( zX3kVihdF|gExV>Y)sfDK#EhCm*U$+i=%2&!)N^e-kDf}drwFzwb3!f4HfO4uY&z#m zLHcFeX06yGWe^Oi4Pwp@V{-K$$sSp1k%E}~O6#S?2GjFsVxjfv(BcCd7~7A;-2+$@=W zIsa={%&EPmwr<`MV^Nr<#-zs5VS<3)r!8GWbccHQCr^np!kcAZHfMows!M z5-W17JAY`vv?3wUKr&LR#E(#aI10o6u<~*0D0GL!hou17ig~L$nwzCF2~VKVh!QG# zbE+fB$kUOQNUXPms}wgWQ1y-3Y-3Z42FiL3Qt2$}9fYrHYKyg^*BNgVdV`v*skJea zsmf+IRJo*88ravyO(xJq#AtqE2GB&ZIc2<=W=Xtl_FAgmxVklN=8_e?hL&k;)i6bo ztRsPB{886rQ`yE=(+tZn@FLw~#;+PLjYEiK+Nh2;=?+`H zQ8SG{uzA@H>A2-lcv4z%y2G@AzSXm-{79xM+m;q7mA1+TJ97ED8QpyViy#_Oa9|4t=Va3cbvxMYb%9Rt zaY0v|N{OPo*qZzOxsQ)`NWBgo2+L0`#sWWqix36fg}S{steTn6El--p>wySS|LI_+rGgh zQyMnw(SFvV8~fu5VkzCYI?(FCsn{mBwId&`{6YHOWwf<$yU(Bvq=C%!SRK3 zhPOmp8;U(`LloN-ilR z6*RRr5kuG~lD2fX(kn*jizpJS+ohE-L5g`!%A-5ld|T0oPLaSN92p`7TAHW0d>z@N z_fkJis=d`vr31<2&*;)?+8ZfYPRD3!5t03o*o9KHcoThOMRdXP*){X(=ggja#fs>V zcUiQq9?f4u&6_kiGs#ZaJCaUWr`GE4>I6)6I&yNdbKMS?2k3`8r^?He+LpwhXi|1! zN=u8TiV(@_JvnNRuV1^krwI3j#K`c!QjU=< zJ9B7mc8P7CfKu?g#K#IdKKuMPTp87pNp29=RngV`jo={O6o0fgi;}M+jYrYR+o!58 zX+8L;cF}^mdCQknc$qlu1LFd?V$tHo7C-8E=nZ%z$vivXw35t|P!r^B97%Nj8 zo{^9qDw6Hvxop>lG*O8py8>drF)ORiHTpIwuQjC^KmFBOs8Dxvvcj+>x}m7R%?i)S zyBQs1xFm4A%qC{`TsuzH&YQP1cSuTVM&(50NQKoGoKw^vP-k1=f1{BYe9~eQ=_b>b z%u3dp4n{RQoH%t6OF}$r?NZH+O_JQc28v?lW|>IrRt#XT3-#8ZVzNP+v29-jZcYQ9c8-!PwqPKg((c2eb{9TKb~qw03^|x-hHBNXf&1=DN%8jF*$RI0vUlM-r^yw8E7cZGUb=noE zlWT{fWm?*t2FJ^A2e93qp3@qWF;dmfmCAmojA%iOq2BIC9Wu1NA$-`_R_RZ8s8;X> zdj&RHJ6B;2L(90(^1xt*q}I4J@j_7~=)hAMudPrv7r!SgnyD3rNG4CVakVMGwz2ZV zvnxLku6*Bh7hO2>?|7$NbfJkdWfyll3|=M7!0_jKh0Vk_QfQ(YGFS^~QO#bY<0v>N zigaIVO`y=Oi?=e?=Y-_YOkoKlpZ&vNbD=zhB z*@^$9j&a+Y=oWKR$s|@uX$VxyPI>(r<&KIXTms#RN#xLE6icPG)G@M*Dyn4xUeN0GLvEs9gd^a zHrThjx(sE3vsGm9cQvfQP;trR@Qn2e^LrE>$L9w|OKiAS^x6dozmjhF^6j}K^H(H{ zU8rC-V(NV3tTr7@l}h>3Tt!#;$54vN?7K)kgq6ZW`;&pX4D?pmP$PlA;)TpTJphGa_ z!cq%nEiTZE&CJYfnOV!k0&_YuP;6^5r}LjVZhbTM^A36j9oe7$Gjs%Yfq+=XQrbqh z#z#BbR8ModBQpUh%_A?O=;hZ5cZv^zBA2t zF7};j-Qs|y&)6jl!0lP8nKEseHOwD7Xo!@P`tWE0GLVj#%Y8ZB*f?H~d&&WLt&(m9Vcu>x_E- zyRA>!Mann-y-9&LDexu*-lV{r6nK*YZ&Kh*3cN{yH!1M{H3fEZA$yFCl%=@0zh;c~ zJAU(wJUfRe9`Cz98kc9-D{2Dwi=%!2=STVO&z=9yx8-RYzWD?$dpgZSgzNW8L7ve* z%x%C0*@3Hlln>ytP1k${m#w|#8@QS~J%X$JuE*6r&40#aYGwA}YQN^c;GTgS{DSh{ zf3}bR+pb)XxN;qJ^$FmC8-$Pa2leW7=^k_L?YJuMaq!9w(jB5a@_!n*${)lJ!h?JQ zya7E%h6nWhcZcsgXZm#b5B#FXZKb}e8v{kpI|x_4&$;-&b8ank$St4JiSBA&r3>=^ z0PzJcqug>Eo&QQlN6}yPd6s%BUCM>W3;p;PI{L07zRK4@xbofT+(AdL75J6@(IP*5 zv`bg&+=Z|%2QcFI2za*c90A1Jd@g5YUVS56^x5{+VR&hIzU`mt7bVMw;iE6ex8?d0 z?R#f(7+wZk_1i>wB0m_0cY#O!_T#`GS~3hTbnykLzHS(X~&i#;c zJDt1Jx&P$c$8jYC8o2mFvSAnXeH-qHcjX)QzFWD%HgjVr1Ka*>Jtd1O$mCD24W@QM zVDa<}4$`UY2k>hT`C;%%rf?L=5M+Pitz8v9O=b|8BS}X4!?hQ@{N4Wh5ziQoFqwrQ z(cW^&HI7Ev-z$TIDY7ko4R@bs?L_h$&RL{NIE(b3xEx{lFaNUd7T5T{R_g!e^Ck`6 z$7?PHMB$ndw2u7u|& z$U~2~2XVOr#yo?&5cfB@k`4X1D{)`M)$f1ehH?LhEBW&m+Q4S9`gjX`d&WaY{bnKa^wter&)@n<4-J0l z_YTL6z9-*~89~^o+#Tpf!7oDm;MX}l-_qKfmT&avSAnbNzxo?46=%~(rzh>6d!V<% z_ue^-?K2Km_K9KG=Uls#r-or)$blVe;;ij0TsY`pyVnfI+v{K@^M+x^$zRVQPNo0v z{2uD^Q*WfKg)m()4EVOOoP9gt!#|og{C|L=rJ2hq=qSm*!gzo0C||BcG>0eJKz zC;x)qD%W-oz(1#gUrhX#uLrTwGtouWBWD2L^Zj9X*1<0W{_@X<;ZHjFJmA}&9)<^R z%YpB|C-CttJEt4hqI;hT9>|YCUi_b~k97B~pBygVlaxUg7X(MX&pY;U^vZuhCa?kFxI!$FBju_%D#vfou-?u /var/run/config.check/$file +done +MD5FILE=/var/run/config.md5 +[ -f $MD5FILE ] && { + for c in $(md5sum -c $MD5FILE 2>/dev/null| grep FAILED | cut -d: -f1); do + ubus call service event "{ \"type\": \"config.change\", \"data\": { \"package\": \"$(basename $c)\" }}" + done +} +md5sum /var/run/config.check/* > $MD5FILE +rm -rf /var/run/config.check diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/service b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/service new file mode 100755 index 0000000..0ca7058 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/service @@ -0,0 +1,30 @@ +#!/bin/sh + +main() { + local service="$1" + shift + + local boot status + + if [ -f "/etc/init.d/${service}" ]; then + /etc/init.d/"${service}" "$@" + exit "$?" + fi + + if [ -n "$service" ]; then + echo "Service \"$service\" not found:" + exit 1 + fi + + echo "Usage: $(basename "$0") [command]" + for service in /etc/init.d/* ; do + boot="$($service enabled && echo "enabled" || echo "disabled" )" + status="$( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename "$service")' }" \ + | jsonfilter -q -e "@['$(basename "$service")'].instances[*].running" | uniq)" = "true" ] \ + && echo "running" || echo "stopped" )" + + printf "%-30s\\t%10s\\t%10s\\n" "$service" "$boot" "$status" + done +} + +main "$@" diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/ubusd b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/ubusd new file mode 100755 index 0000000000000000000000000000000000000000..599663f1b1655c381e68cd57f7bb4fad35710ec6 GIT binary patch literal 20578 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 H%~}5wROiEr literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/udevtrigger b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/udevtrigger new file mode 100755 index 0000000000000000000000000000000000000000..8f381f52bb244893ee4c9c4c2b863d63478a55ca GIT binary patch literal 8195 zcmeHMZEPGz8J_iBZ0F)6o7hd=P=zUVD@(+_gIdT$r5I6~lsfgbrcj}(_Sv_#Pd?vW z@78Vt6?K3Vw~1>v2{fsi-YSaJP!%s0IZTO4Z|e zcK6Eaun>Qc_;Dk>_q-o7@4WNQhu1StexdswMNve#1VpQ#)KxD;M_CyZD>{S}b+ED2 zf@mvK0X!+_Q2^KkCuM4eOro8>N&eEU3PD=oC>6&(wMmGnO^QQbM*{=Ie%ZPPzq7E< z!cJO(Oro8AJYef_z`qsR(T#WzcEA4}@J%Ym7fvPy!pV5s*my447R!!}47KOd?Vk|q z(Dr7~ji6N^`nm~p1BhiUs0s8D5XZX#v<6fz>%laXg=LWaFIU`gyB6k_CFFt=Q=P{% ze=9+app76*p;K1lmpP*j!*ui9B6d+`IXV63HH&Y)>krj6;P;X{DI!qzCh0*yUN4R~ zocqJEov4uCsF2;3uJU7m=PK;4SI8GCWahhEB$!-T0J8r=h5T-Xe5yizq(UC8kQXZC zrz_-L74jD=Wd9;$e7~x&AF7bu-Q_AJ;CB`FyCHKvxK7q%KJEgZ#pJp&R%Bn_;Eq_| zP$CseCcdUYjB8nKIFZw}Y~N5eHm3C@QbTFzm(`+OLZC)MM-6O&!M>ax%j$h&u|!Jb z^lWM{vy+(AJTbYP)naktU^1Q4$iT0^KJCdw zYSi^UmLX;bN3tR_uIC&t;_+-k*IWmVg6@YkJ)O~AC1u1qJcwxBUCPM8AvZifxL5aj z_|8XN`I?8xL7 zi8y2~5ix)Q5%FFo;$Tv`+O8^HXBIYp?>Kn_S8+-jlY;N*S)dV zocjA|yUb7e_#Hkz*vChG{5Buo<>Nbje8k7M`grN%n|-|M_$>AaNY+3WlXJF2u4LV_!QrXEn^TKe2e{21V3i9m0RHQzGU$!|I6S?HV~# zh@k&KWZxAb_FW0iP1`MVdAmVEmeY1n?lOh?oIQnj8<3OW(&5YEMnxpyR0r(<#ojf zclfRd1=Yj$apdU3y!0E^U(nBM18!bQCxj&!gS@Z6JT##GpI|5d9+3J*b+?nRE0F7v zms-(VdI-rjOp8i?rKmMo}hx%<3IW5jJj`(@ISw;Mi zk3pu7Zz2D!=x6PgfEfz)TA#)^Ti569`@Z3}uR~qtd-SDg^QZJNbl#@!m*5#M&l1W% zhP+A|#g(4CpLU!fqxeL)^jO~BbJwI95Yx_iBnGLcbr&bPW{qj!rINc5yPVHwa)XlGZwkk87p;@uoI_&4NiYs3+47Z zp?e>D&Docc{a8D_7XFHb*yjVVUG{82&xSvl8x@R^?Vo^MM58AD+@6}ldS`w(h92sX zOKingUd0}+jbQ#@M;nW06zgz*u@Bv;`&Hx&>k)DsazOT*A&i?cV-T2c#)UN zd5-XGrM(?~xXw4TUeqXl7HeGTf6Ckk{BZ5hoLPvVu?kvA!X|zlhu6cPTR^|Xfa8sd z*arF@_}$Rm3H1N1--7eyGa!6=IEYUR2U|S+q=#tg=rJA#`F{i3@&5%P|5qX2>LET! z9Qk$+(XAu%+llq+J>>r&l*{F|+!m>2v+1l%r=*@u3=eDBL~2-4f7@6{gyY(T2#;$M zT1ppTd_#)%_OQUGqZo(9Yak|4BjTZ4Y*^bOeQMbg{nEWX_xFaRY@3kFl??jQr9Ps` zB))`YdPu@)Vo=M;$43%LO=ibaDMUjDspZPw zOyb>ycOoZ2cxG|lR(ZG40w=utxCG~X$J++tT?y|y@Z92*f0RmTxUGK=$iDvD!uRWP WSwKJkD`Fqzw_FwX*36|-r1DRfiWUF> literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/upgraded b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/upgraded new file mode 100755 index 0000000000000000000000000000000000000000..9b80700a1d429ff3ee8fea66001f471766c4831f GIT binary patch literal 8201 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 literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/validate_data b/opkg-feed/installer/openwrt-sdxlemur-skel/sbin/validate_data new file mode 100755 index 0000000000000000000000000000000000000000..fa82e7c042c23cc942e899969beffb93d1dd4f60 GIT binary patch literal 8191 zcmeHMe{2)?6@M3BAQ%G|2#}=_T+?K*EeQvM4$*{J8%&kxRu>SWBb{^D4lx*?=Q}e{ z(Uvt-Vj3RVD2P@{ZJ}tIx@uz`n-B_HwzjllqRU3wF{zqtA772Y*cfG9D<-_pJD*oK zMHAXz`@`Sl`Th95@B6;@zVE*G)%U)!{*f<8l0@ZJLraOdx9cQYSr*DvyOLCzjy`VF z0Nl3{nhZJ646+Lz;073JfL(@0@C@9~wi!yT#BH5J#8B%9C8z(?BBE1^Y8==AwHScs z<u)Zju+kKFkJis{_mezyxyiK`X^mvO5D}o}X>_05e^hd7jr9rz)iQ4?IbV z=FiDPjxO6^-91;obtv*q;=$3s4xK;!sa^9=r~f{C?fb>i)i=N0eDvJLz*mkPX})^# zZ?ikU)cx+8=i3fq$cGxwUv4UhWn~7K`6ny*xu74L!XKEzbNuDT`s)EcS#n~Ti;QqC z%8mQEaz?RM9BVyRAy)1L=KlMq@EgF(zOucUbZAQdm#6U5mqXT6fcdX4Il!9}uNN(O}Hb!w#XxVn!$!GU8TbujO_b zyHbf@!b(!u3MTZV8KFeV3ia!390e2#nwFllg1hx-oWQ5H8+*BoR%k0$Xsed5a%7<> zL`?0`W6`i~MO=1A2*XQ7$EH|{#`$Z&LQX8Mp#><6ON>!eZ!<;_<`^UKml>n5t}sTz z|H2qWbb~R9_ZDLm?0bw+#Q$Q91(p0Alal}Jl|{v6c{$f11-<9C~u-{I@q8BpKvUX1*Ej$>vbs#OiiZNa6 zPhwa!qkkRf8k%Q6fgEfGU8fxpGHtRS$9#c-VXVhidkgv+wBw?&_qdSI_ZjrDT@~X! zC$ssF6Jh<1L3fkg!dtw?>$u5Y%rrf2WB>B@D#PNClo6lB{66KFn2ubp=Nz646!3I- zS@sfQRpA5CHoLt(BiirJ2x(}rz_ukdD=BIk{-p)$tV6#Hy4TT1K0x~tX>qCTLjDu5 zs}3Rdp{z~4$FLp;3m)2%e-mrP{=mnkI{4De^J6aL(t}#M`W|J(Ldf0%O+&CrTkM5S zJa0MiG=QF_Wb^F%0_ZiW#|0sNj?ISedll3j>{(hy%zzH}OL%^KuAc`eJ;{DP13mV$ zc&B*nPnfG2ju1U7(p{$43zZo%xF@|HWj8{&S;=K+#`(ft?*z?Z*`O=?BxJHH`?@P@gX|XK=CS)+nF`ruS7y1g`yiWeWri!m zdD8oeE8FSH=0SGKl|@_`=V8Q^^|~^=LcLtSJnuHh4r#n*h!Zl8lC6IYaR)%Z3fu#X zJ^yMfkP%BLYfJuhg)WSd=$11EtJ%c4;JycuizTqbvRc?)1-)Ass{!8xegn0W1&jc= z&VK~>3E%|a41nwY*MM_?BdF!y0pqlaH4Dtc`wcnon5^-mcGcfw?v2hoJa;?lritq& zfOjG2g_w`$m+_o`2hStxa2?k>wUrU?z?VP3Ha|D~%v8Sj*I>qO05&}b^Ldx~Ru`{u zF;_9mYh8@oJ3OC*S8NpHo?0ZW=8oqpy$p^cYT9 zaf8B9Q{Ntogvp4Ll}trwU&N$Hyd-NgX-NzIC>1v&mfEpLZ8INIsm<&Ls2$+cZv1$e z>%w_UxAr9>Yt=3szfzI4Gdk4rIZV}=Ohr_E2hMM%1)fz)0~2~^m%f9?nURncHR3_n zOqq@2)VWq&VkEe8O?jR*;YgpJidjqkOHXHKrs&Rw!;iO6}#ptCT&T^;o zzpX9xL^m|cxinSXHrKO+6k~-4vRtWw1$JN}~U_nl0CE6<0G* z%|JB+)eKZKP|ZL!1Jw*vGf>SyH3QWQR5MV`!2h0s{WB!$0&wHs=Ut4ucZVN!@o!xG zM_|5>;(J@ZpW-{*j{)=dW!x<~-z1xWPlIoEdHzn>j&IlhxKlLt1M@xC>ot<|4fhgw zzIVt2W&-$|@_Ya{58!otPviTstpMD&<9lc6p6irHa_AR<`I{%-dGWm&WBxwQ4R^0b UDY6oOufO~qyxbZQ=RLx|0Rt8VY5)KL literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/bin/jshn b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/bin/jshn new file mode 100755 index 0000000000000000000000000000000000000000..73d5b790787a52dcd14c6e998bb975953ac8eead GIT binary patch literal 12295 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 ZKkz-s|Bn-YV{W8=^#A`Guxog?`!6O|xRd|@ literal 0 HcmV?d00001 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.control new file mode 100644 index 0000000..09b2dfb --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.control @@ -0,0 +1,12 @@ +Package: jshn +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libjson-c5, libubox20220515, libblobmsg-json20220515 +Source: feeds/base/package/libs/libubox +SourceName: jshn +License: ISC +Section: utils +SourceDateEpoch: 1654630618 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 6340 +Description: Library for parsing and generating JSON from shell scripts diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.list new file mode 100644 index 0000000..94e78d0 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.list @@ -0,0 +1,2 @@ +/usr/bin/jshn +/usr/share/libubox/jshn.sh diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/jshn.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.control new file mode 100644 index 0000000..409482c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.control @@ -0,0 +1,14 @@ +Package: libblobmsg-json20220515 +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libjson-c5, libubox20220515 +Provides: libblobmsg-json +Source: feeds/base/package/libs/libubox +SourceName: libblobmsg-json +License: ISC +Section: libs +SourceDateEpoch: 1654630618 +ABIVersion: 20220515 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 3441 +Description: blobmsg <-> json conversion library diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.list new file mode 100644 index 0000000..dfcd465 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.list @@ -0,0 +1 @@ +/lib/libblobmsg_json.so.20220515 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libblobmsg-json20220515.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.control new file mode 100644 index 0000000..335aea3 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.control @@ -0,0 +1,14 @@ +Package: libjson-script20220515 +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libubox20220515 +Provides: libjson-script +Source: feeds/base/package/libs/libubox +SourceName: libjson-script +License: ISC +Section: utils +SourceDateEpoch: 1654630618 +ABIVersion: 20220515 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 4238 +Description: Minimalistic JSON based scripting engine diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.list new file mode 100644 index 0000000..b5776a6 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.list @@ -0,0 +1 @@ +/lib/libjson_script.so.20220515 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libjson-script20220515.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.control new file mode 100644 index 0000000..7514b44 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.control @@ -0,0 +1,14 @@ +Package: libubus20220601 +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubox20220515 +Provides: libubus +Source: feeds/base/package/system/ubus +SourceName: libubus +License: LGPL-2.1 +Section: libs +SourceDateEpoch: 1654425492 +ABIVersion: 20220601 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 9107 +Description: OpenWrt RPC client library diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.list new file mode 100644 index 0000000..4101c96 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.list @@ -0,0 +1 @@ +/lib/libubus.so.20220601 diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/libubus20220601.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.control new file mode 100644 index 0000000..c077f12 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.control @@ -0,0 +1,14 @@ +Package: procd +Version: 2022-06-01-7a009685-3 +Depends: libc, ubusd, ubus, libjson-script20220515, ubox, libubox20220515, libubus20220601, libblobmsg-json20220515, libjson-c5, jshn +Conflicts: procd-selinux +Source: feeds/base/package/system/procd +SourceName: procd +License: GPL-2.0 +Section: base +Require-User: :dialout=20 :audio=29 +SourceDateEpoch: 1714426257 +Maintainer: John Crispin +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 52551 +Description: OpenWrt system process manager diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.list new file mode 100644 index 0000000..98cad82 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.list @@ -0,0 +1,11 @@ +/etc/hotplug.json +/etc/hotplug-preinit.json +/lib/functions/procd.sh +/lib/libsetlbf.so +/sbin/askfirst +/sbin/init +/sbin/procd +/sbin/reload_config +/sbin/service +/sbin/udevtrigger +/sbin/upgraded diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/procd.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.control new file mode 100644 index 0000000..09cd05c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.control @@ -0,0 +1,13 @@ +Package: ubox +Version: 2021-08-03-205defb5-2 +Depends: libc, libubox20220515, ubusd, ubus, libubus20220601, libuci20130104 +Alternatives: 100:/sbin/rmmod:/sbin/kmodloader, 100:/sbin/insmod:/sbin/kmodloader, 100:/sbin/lsmod:/sbin/kmodloader, 100:/sbin/modinfo:/sbin/kmodloader, 100:/sbin/modprobe:/sbin/kmodloader +Source: feeds/base/package/system/ubox +SourceName: ubox +License: GPL-2.0 +Section: base +SourceDateEpoch: 1643641405 +Maintainer: John Crispin +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 14093 +Description: OpenWrt system helper toolbox diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.list new file mode 100644 index 0000000..ecc2dbe --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.list @@ -0,0 +1,3 @@ +/lib/libvalidate.so +/sbin/kmodloader +/sbin/validate_data diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubox.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.control new file mode 100644 index 0000000..8158537 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.control @@ -0,0 +1,12 @@ +Package: ubus +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubus20220601, libblobmsg-json20220515, ubusd +Source: feeds/base/package/system/ubus +SourceName: ubus +License: LGPL-2.1 +Section: base +SourceDateEpoch: 1654425492 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 5688 +Description: OpenWrt RPC client utility diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.list new file mode 100644 index 0000000..e6f0d1e --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.list @@ -0,0 +1 @@ +/bin/ubus diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubus.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.control b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.control new file mode 100644 index 0000000..4ba6e8b --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.control @@ -0,0 +1,13 @@ +Package: ubusd +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubox20220515, libblobmsg-json20220515 +Source: feeds/base/package/system/ubus +SourceName: ubusd +License: LGPL-2.1 +Section: base +Require-User: ubus=81:ubus=81 +SourceDateEpoch: 1654425492 +Maintainer: Felix Fietkau +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Size: 10684 +Description: OpenWrt RPC daemon diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.list b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.list new file mode 100644 index 0000000..c06aa69 --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.list @@ -0,0 +1 @@ +/sbin/ubusd diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.postinst b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.postinst new file mode 100755 index 0000000..3bba77c --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0 +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_postinst $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.prerm b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.prerm new file mode 100755 index 0000000..12d06ec --- /dev/null +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/info/ubusd.prerm @@ -0,0 +1,4 @@ +#!/bin/sh +[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0 +. ${IPKG_INSTROOT}/lib/functions.sh +default_prerm $0 $@ diff --git a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/status b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/status index ae7cb88..31f40fc 100644 --- a/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/status +++ b/opkg-feed/installer/openwrt-sdxlemur-skel/usr/lib/opkg/status @@ -307,3 +307,59 @@ Status: install user installed Architecture: arm_cortex-a7_neon-vfpv4 Installed-Time: 1733796302 +Package: jshn +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libjson-c5, libubox20220515, libblobmsg-json20220515 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796303 + +Package: libblobmsg-json20220515 +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libjson-c5, libubox20220515 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796304 + +Package: libjson-script20220515 +Version: 2022-05-15-d2223ef9-1 +Depends: libc, libubox20220515 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796305 + +Package: libubus20220601 +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubox20220515 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796306 + +Package: procd +Version: 2022-06-01-7a009685-3 +Depends: libc, ubusd, ubus, libjson-script20220515, ubox, libubox20220515, libubus20220601, libblobmsg-json20220515, libjson-c5, jshn +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796307 + +Package: ubox +Version: 2021-08-03-205defb5-2 +Depends: libc, libubox20220515, ubusd, ubus, libubus20220601, libuci20130104 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796308 + +Package: ubus +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubus20220601, libblobmsg-json20220515, ubusd +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796309 + +Package: ubusd +Version: 2022-06-01-2bebf93c-1 +Depends: libc, libubox20220515, libblobmsg-json20220515 +Status: install user installed +Architecture: arm_cortex-a7_neon-vfpv4 +Installed-Time: 1733796310 +