aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xagl-layers-overview.md1
-rw-r--r--meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend4
-rw-r--r--meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend)0
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend1
-rw-r--r--meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend)0
-rw-r--r--meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend18
-rw-r--r--meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc21
-rw-r--r--meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend2
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch41
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch86
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch138
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch101
-rw-r--r--meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb29
-rw-r--r--meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch13
-rw-r--r--meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend5
-rw-r--r--meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend5
-rw-r--r--meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend1
-rw-r--r--meta-agl-core-test/conf/include/agl-test.inc (renamed from meta-agl-profile-core/recipes-connectivity/connman/.appends.core)0
-rw-r--r--meta-agl-core-test/conf/layer.conf14
-rw-r--r--meta-agl-core-test/images/agl-image-minimal-qa.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb (renamed from meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb (renamed from meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb (renamed from meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb (renamed from meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend (renamed from meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch (renamed from meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch (renamed from meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend (renamed from meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch (renamed from meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb (renamed from meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT (renamed from meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend)0
-rw-r--r--meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb (renamed from meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch (renamed from meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch)0
-rw-r--r--meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb (renamed from meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb (renamed from meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/linpack/linpack.bb (renamed from meta-agl-profile-core/recipes-test/linpack/linpack.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb (renamed from meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb)0
-rw-r--r--meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb (renamed from meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb)37
-rw-r--r--meta-agl-core-test/recipes-test/trinity/trinity_git.bb (renamed from meta-agl-profile-core/recipes-test/trinity/trinity_git.bb)0
-rw-r--r--meta-agl-core/LICENSE (renamed from meta-agl-distro/LICENSE)0
-rw-r--r--meta-agl-core/LICENSE.GPL-2.0-only (renamed from meta-agl-distro/LICENSE.GPL-2.0-only)0
-rw-r--r--meta-agl-core/LICENSE.MIT (renamed from meta-agl-distro/LICENSE.MIT)0
l---------meta-agl-core/README1
-rw-r--r--meta-agl-core/README-AGL.md21
-rw-r--r--meta-agl-core/classes/cloc.bbclass (renamed from meta-agl-profile-core/classes/cloc.bbclass)0
-rw-r--r--meta-agl-core/classes/sanity-meta-agl-core.bbclass10
-rw-r--r--meta-agl-core/conf/bblayers.conf.sample12
-rw-r--r--meta-agl-core/conf/distro/include/aarch64-tune.inc (renamed from meta-agl-distro/conf/distro/include/aarch64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/arc-tune.inc (renamed from meta-agl-distro/conf/distro/include/arc-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/arm-tune.inc (renamed from meta-agl-distro/conf/distro/include/arm-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/riscv64-tune.inc (renamed from meta-agl-distro/conf/distro/include/riscv64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/include/x86_64-tune.inc (renamed from meta-agl-distro/conf/distro/include/x86_64-tune.inc)0
-rw-r--r--meta-agl-core/conf/distro/poky-agl.conf (renamed from meta-agl-distro/conf/distro/poky-agl.conf)0
-rw-r--r--meta-agl-core/conf/include/agl-devel.inc (renamed from meta-agl-profile-core/conf/include/agl-devel.inc)0
-rw-r--r--meta-agl-core/conf/include/agl-gplv2.inc (renamed from meta-agl-profile-core/conf/include/agl-gplv2.inc)0
-rw-r--r--meta-agl-core/conf/include/base-agl.inc (renamed from meta-agl-profile-core/conf/include/base-agl.inc)2
-rw-r--r--meta-agl-core/conf/layer.conf17
-rw-r--r--meta-agl-core/conf/local.conf.sample277
-rw-r--r--meta-agl-core/files/group (renamed from meta-agl-profile-core/files/group)0
-rw-r--r--meta-agl-core/files/passwd (renamed from meta-agl-profile-core/files/passwd)0
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend1
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc3
-rw-r--r--meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg (renamed from meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb (renamed from meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/connman_%.bbappend1
-rw-r--r--meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc (renamed from meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch (renamed from meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch)0
-rw-r--r--meta-agl-core/recipes-connectivity/connman/files/main.conf (renamed from meta-agl-profile-core/recipes-connectivity/connman/files/main.conf)0
-rw-r--r--meta-agl-core/recipes-core/systemd/.appends.core (renamed from meta-agl-profile-core/recipes-core/dbus/.appends.core)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend1
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc (renamed from meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch34
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/canbus-can.network (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd/wired.network (renamed from meta-agl-profile-core/recipes-core/systemd/systemd/wired.network)0
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd_%.bbappend1
-rw-r--r--meta-agl-core/recipes-core/systemd/systemd_aglcore.inc (renamed from meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend)2
-rw-r--r--meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend1
-rw-r--r--meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc (renamed from meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh (renamed from meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh)0
-rw-r--r--meta-agl-core/recipes-devtools/gdb/.appends.core (renamed from meta-agl-profile-core/recipes-core/psplash/.appends.core)0
-rw-r--r--meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend1
-rw-r--r--meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc (renamed from meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-extended/gperf/.appends.core (renamed from meta-agl-profile-core/recipes-core/systemd/.appends.core)0
-rw-r--r--meta-agl-core/recipes-extended/gperf/gperf_%.bbappend1
-rw-r--r--meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc (renamed from meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb)2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_git.bb (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb)13
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend)5
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg (renamed from meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg (renamed from meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-init.bbappend1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc6
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch)0
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc11
-rw-r--r--meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend1
-rw-r--r--meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc (renamed from meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl.inc (renamed from meta-agl-bsp/recipes-kernel/linux/linux-agl.inc)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/btusb.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/drm.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/hid.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/joystick.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/nbd.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch (renamed from meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/nfc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/procevent.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/sound.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uinput.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usb.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uvc.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/wifi.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg (renamed from meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-boot.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-boot.inc (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb18
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc24
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal.bb (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-minimal.inc (renamed from meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-weston.bb (renamed from meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb)0
-rw-r--r--meta-agl-core/recipes-platform/images/agl-image-weston.inc (renamed from meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb)1
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb)2
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb (renamed from meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb)16
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb)3
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb)0
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb (renamed from meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb)2
-rw-r--r--meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb (renamed from meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb)1
-rw-r--r--meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend (renamed from meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend)0
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch (renamed from meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch)0
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend2
-rw-r--r--meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc (renamed from meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend)3
-rwxr-xr-xmeta-agl-core/scripts/oe-depends-dot (renamed from meta-agl-distro/scripts/oe-depends-dot)0
-rwxr-xr-xmeta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh50
-rwxr-xr-xmeta-agl-core/scripts/run-yocto-check-layer.sh48
-rw-r--r--meta-agl-distro/README3
-rw-r--r--meta-agl-distro/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE20
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-cluster-qt5/LICENSE.MIT25
-rw-r--r--meta-agl-profile-cluster-qt5/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb9
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc7
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb21
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb36
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch45
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch24
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend12
-rw-r--r--meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb40
-rw-r--r--meta-agl-profile-cluster/LICENSE20
-rw-r--r--meta-agl-profile-cluster/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-cluster/LICENSE.MIT25
-rw-r--r--meta-agl-profile-cluster/conf/layer.conf12
-rw-r--r--meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb9
-rw-r--r--meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc7
-rw-r--r--meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb20
-rw-r--r--meta-agl-profile-core/LICENSE20
-rw-r--r--meta-agl-profile-core/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-core/LICENSE.MIT25
-rw-r--r--meta-agl-profile-core/conf/layer.conf12
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb23
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest3
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb27
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb20
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb18
-rwxr-xr-xmeta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb25
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest3
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb19
-rw-r--r--meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb19
-rw-r--r--meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb27
-rw-r--r--meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default6
-rw-r--r--meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb18
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb43
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service11
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf39
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service21
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service10
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf2
-rw-r--r--meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend24
-rw-r--r--meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch25
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch33
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend7
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc22
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch27
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch58
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch25
-rw-r--r--meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb10
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch27
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf30
-rw-r--r--meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend11
-rw-r--r--meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch40
-rw-r--r--meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb32
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service10
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket9
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf5
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch45
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend28
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch45
-rw-r--r--meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb164
-rw-r--r--meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h34
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h5411
-rw-r--r--meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend9
-rw-r--r--meta-agl-profile-core/recipes-devtools/gdb/.appends.core0
-rw-r--r--meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb17
-rw-r--r--meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend4
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb15
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb12
-rw-r--r--meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb12
-rw-r--r--meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend1
-rwxr-xr-xmeta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts48
-rw-r--r--meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service17
-rw-r--r--meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb46
-rw-r--r--meta-agl-profile-core/recipes-extended/gperf/.appends.core0
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch472
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch26
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch25
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch25
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch186
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch378
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch92
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch47
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch35
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch30
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch68
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/most.bb14
-rw-r--r--meta-agl-profile-core/recipes-kernel/most/most.bbappend15
-rw-r--r--meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch40
-rw-r--r--meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb18
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl0
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch33
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch49
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf12
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch11
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service16
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch53
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend42
-rw-r--r--meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb63
-rw-r--r--meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf8
-rw-r--r--meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend11
-rw-r--r--meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend16
-rw-r--r--meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc18
-rw-r--r--meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb14
-rw-r--r--meta-agl-profile-core/recipes-support/curl/curl_%.bbappend5
-rw-r--r--meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend1
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules5
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/automount.service9
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/files/automount.sh93
-rw-r--r--meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend26
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper320
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb17
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch68
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend2
-rw-r--r--meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb32
-rw-r--r--meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb33
-rw-r--r--meta-agl-profile-graphical-html5/conf/layer.conf12
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend12
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg4
-rw-r--r--meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg3
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb10
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc9
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb18
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb23
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb19
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch40
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb404
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc157
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env202
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service37
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch56
-rw-r--r--meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb51
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE20
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-graphical-qt5/LICENSE.MIT25
-rw-r--r--meta-agl-profile-graphical-qt5/conf/layer.conf12
-rwxr-xr-xmeta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb18
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb5
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc1
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb29
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb26
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb23
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend18
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb13
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb25
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend3
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch30
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend12
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch47
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch80
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend7
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend3
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland12
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb21
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch56
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch34
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch33
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch468
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch1029
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch772
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch128
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch539
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch14
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch31
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend26
-rw-r--r--meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend1
-rw-r--r--meta-agl-profile-graphical/LICENSE20
-rw-r--r--meta-agl-profile-graphical/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-graphical/LICENSE.MIT25
-rw-r--r--meta-agl-profile-graphical/classes/agl-graphical.bbclass6
-rw-r--r--meta-agl-profile-graphical/conf/layer.conf12
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb14
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb18
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb18
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug8
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb19
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch22
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch21
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch530
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch67
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch29
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch22
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch13
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch13
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb36
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend83
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in6
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in3
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in12
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready56
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service10
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb21
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend26
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch28
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend2
-rw-r--r--meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend2
-rw-r--r--meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend5
-rw-r--r--meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb15
-rw-r--r--meta-agl-profile-hud/LICENSE20
-rw-r--r--meta-agl-profile-hud/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-hud/LICENSE.MIT25
-rw-r--r--meta-agl-profile-hud/conf/layer.conf12
-rw-r--r--meta-agl-profile-telematics/LICENSE20
-rw-r--r--meta-agl-profile-telematics/LICENSE.GPL-2.0-only288
-rw-r--r--meta-agl-profile-telematics/LICENSE.MIT25
-rw-r--r--meta-agl-profile-telematics/conf/layer.conf12
-rw-r--r--meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb9
-rw-r--r--meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc5
-rw-r--r--meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb25
-rwxr-xr-xmeta-agl.md126
-rw-r--r--meta-agl/conf/layer.conf12
-rw-r--r--meta-app-framework/conf/include/agl-appfw-smack.inc5
-rw-r--r--meta-app-framework/conf/include/agl-sign-wgts.inc (renamed from meta-agl-profile-core/conf/include/agl-sign-wgts.inc)2
-rw-r--r--meta-app-framework/conf/layer.conf21
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend)3
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend)2
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend1
-rw-r--r--meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc (renamed from meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend)2
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb (renamed from meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb)0
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb (renamed from meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb)0
-rw-r--r--meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb (renamed from meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb)0
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend1
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc (renamed from meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf (renamed from meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf)0
-rw-r--r--meta-app-framework/recipes-connectivity/connman/connman_%.bbappend1
-rw-r--r--meta-app-framework/recipes-connectivity/connman/connman_appfw.inc (renamed from meta-security/recipes-connectivity/connman/connman_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-connectivity/connman/files/connman.service.conf (renamed from meta-security/recipes-connectivity/connman/files/connman.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/base-files/base-files_%.bbappend33
-rw-r--r--meta-app-framework/recipes-core/base-files/base-files_appfw.inc (renamed from meta-security/recipes-core/base-files/base-files_%.bbappend)34
-rw-r--r--meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc (renamed from meta-security/recipes-core/coreutils/coreutils_%.bbappend)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch (renamed from meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch)0
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend1
-rw-r--r--meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc (renamed from meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend)0
-rw-r--r--meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend2
-rw-r--r--meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend7
-rw-r--r--meta-app-framework/recipes-core/shadow/shadow_%.bbappend5
-rw-r--r--meta-app-framework/recipes-core/shadow/shadow_appfw.inc3
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules (renamed from meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf (renamed from meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf (renamed from meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf (renamed from meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf)0
-rw-r--r--meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb (renamed from meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb)0
-rw-r--r--meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb39
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch (renamed from meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch)0
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd_2%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/systemd/systemd_appfw.inc (renamed from meta-security/recipes-core/systemd/systemd_2%.bbappend)2
-rw-r--r--meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend1
-rw-r--r--meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc (renamed from meta-security/recipes-core/util-linux/util-linux_%.bbappend)0
-rw-r--r--meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb (renamed from meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc1
-rw-r--r--meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb (renamed from meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc (renamed from meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc)0
-rw-r--r--meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb (renamed from meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb)0
-rw-r--r--meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc5
-rw-r--r--meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf (renamed from meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf)0
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend1
-rw-r--r--meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc (renamed from meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend)4
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend1
-rw-r--r--meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend)2
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston/smack-weston (renamed from meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston)0
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend1
-rw-r--r--meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc19
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux-%.bbappend3
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux-appfw.inc (renamed from meta-security/recipes-kernel/linux/linux-%.bbappend)6
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg (renamed from meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg)0
-rw-r--r--meta-app-framework/recipes-kernel/linux/linux/smack.cfg (renamed from meta-security/recipes-kernel/linux/linux/smack.cfg)0
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb (renamed from meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb)0
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb (renamed from meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb)5
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb (renamed from meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb)1
-rw-r--r--meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb (renamed from meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch (renamed from meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch (renamed from meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch (renamed from meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/audit-volatile.conf (renamed from meta-security/recipes-security/audit/audit/audit-volatile.conf)0
-rwxr-xr-xmeta-app-framework/recipes-security/audit/audit/auditd (renamed from meta-security/recipes-security/audit/audit/auditd)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit/auditd.service (renamed from meta-security/recipes-security/audit/audit/auditd.service)0
-rw-r--r--meta-app-framework/recipes-security/audit/audit_2.8.5.bb (renamed from meta-security/recipes-security/audit/audit_2.8.5.bb)0
-rw-r--r--meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb (renamed from meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb)0
-rw-r--r--meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb (renamed from meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb)0
-rwxr-xr-xmeta-app-framework/recipes-security/cynagora/cynagora/run-ptest (renamed from meta-security/recipes-security/cynagora/cynagora/run-ptest)0
-rw-r--r--meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb (renamed from meta-security/recipes-security/cynagora/cynagora_2.1.bb)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager.inc (renamed from meta-security/recipes-security/security-manager/security-manager.inc)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch (renamed from meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch (renamed from meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch)0
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend (renamed from meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend)7
-rw-r--r--meta-app-framework/recipes-security/security-manager/security-manager_git.bb (renamed from meta-security/recipes-security/security-manager/security-manager_git.bb)0
-rw-r--r--meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend5
-rw-r--r--meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc4
-rw-r--r--meta-app-framework/recipes-support/libcap/libcap_%.bbappend4
-rw-r--r--meta-app-framework/recipes-support/libcap/libcap_appfw.inc3
-rw-r--r--meta-app-framework/recipes-support/libzip/libzip_%.bbappend2
-rw-r--r--meta-app-framework/recipes-support/libzip/libzip_appfw.inc1
-rw-r--r--meta-app-framework/recipes-test/afb-test/afb-test_git.bb (renamed from meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb)0
-rw-r--r--meta-app-framework/recipes-test/afb-test/files/run-ptest (renamed from meta-agl-profile-core/recipes-test/afb-test/files/run-ptest)0
-rwxr-xr-xmeta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh51
-rwxr-xr-xmeta-app-framework/scripts/run-yocto-check-layer.sh49
-rw-r--r--meta-netboot/README.renesas-gen390
-rw-r--r--meta-netboot/classes/netboot.bbclass5
-rw-r--r--meta-netboot/conf/include/agl-netboot.inc3
-rw-r--r--meta-netboot/conf/layer.conf4
-rw-r--r--meta-netboot/recipes-core/busybox/busybox_%.bbappend7
-rw-r--r--meta-netboot/recipes-core/busybox/busybox_netboot.inc6
-rw-r--r--meta-netboot/recipes-core/images/initramfs-netboot-image.bb23
-rw-r--r--meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc23
-rw-r--r--meta-netboot/recipes-support/nbd/nbd_%.bbappend7
-rw-r--r--meta-netboot/recipes-support/nbd/nbd_netboot.inc5
-rwxr-xr-xmeta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh46
-rwxr-xr-xmeta-netboot/scripts/run-yocto-check-layer.sh44
-rw-r--r--meta-pipewire/conf/layer.conf5
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb (renamed from meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend4
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire)0
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend)6
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend (renamed from meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend)1
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend (renamed from meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend)1
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch517
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service18
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend35
-rw-r--r--meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb2
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint1
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint1
-rwxr-xr-xmeta-pipewire/scripts/run-yocto-check-layer.sh35
-rw-r--r--meta-security/COPYING.MIT17
-rw-r--r--meta-security/README.md31
-rw-r--r--meta-security/conf/layer.conf14
-rw-r--r--meta-security/recipes-kernel/linux/linux/audit.cfg2
-rw-r--r--meta-security/recipes-security/smacknet/files/smacknet184
-rw-r--r--meta-security/recipes-security/smacknet/files/smacknet.service11
-rw-r--r--meta-security/recipes-security/smacknet/smacknet.bb29
-rw-r--r--scripts/README-mkefi-agl.md18
-rw-r--r--templates/base/00_local.conf.agl.inc3
-rw-r--r--templates/base/99_local.conf.inc2
-rw-r--r--templates/base/bblayers.conf.sample20
-rw-r--r--templates/feature/agl-appfw-smack/50_bblayers.conf.inc9
-rw-r--r--templates/feature/agl-appfw-smack/50_local.conf.inc1
-rw-r--r--templates/feature/agl-hmi-framework/50_local.conf.inc2
-rw-r--r--templates/feature/agl-localdev/80_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-localdev/80_local.conf.inc2
-rw-r--r--templates/feature/agl-localdev/README_feature_agl-localdev.md9
-rw-r--r--templates/feature/agl-netboot/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md15
-rw-r--r--templates/feature/agl-profile-cluster-qt5/included.dep1
-rw-r--r--templates/feature/agl-profile-cluster/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md15
-rw-r--r--templates/feature/agl-profile-cluster/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc6
-rw-r--r--templates/feature/agl-profile-graphical-html5/50_local.conf.inc3
-rw-r--r--templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md8
-rw-r--r--templates/feature/agl-profile-graphical-html5/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc9
-rw-r--r--templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md15
-rw-r--r--templates/feature/agl-profile-graphical-qt5/included.dep1
-rw-r--r--templates/feature/agl-profile-graphical/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md9
-rw-r--r--templates/feature/agl-profile-hud/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md9
-rw-r--r--templates/feature/agl-profile-telematics/50_bblayers.conf.inc3
-rw-r--r--templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md9
-rw-r--r--templates/feature/agl-weston-remoting/included.dep2
605 files changed, 1144 insertions, 19620 deletions
diff --git a/agl-layers-overview.md b/agl-layers-overview.md
index 409eae529..e84f875bf 100755
--- a/agl-layers-overview.md
+++ b/agl-layers-overview.md
@@ -14,7 +14,6 @@ This section provides information about the layers used by the AGL Project:
* **`meta-agl`**: Minimal set of software needed to create an AGL distribution
used to boot a system.
- AGL profiles are built on top of this minimal set of software.
* **`meta-agl-demo`**: Provides a reference or demo platform and applications
for the AGL Distribution.
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend b/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend
deleted file mode 100644
index eda8de38a..000000000
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/libva_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-# This patch correct a bug in libva1_1.7.0.bb 1.8 inmeta-intel (no clue when it will be fixed)
-# libva.bb calls for an x11 runtime dependency even if wayland is selected
-#
-RDEPENDS_${PN}-egl_remove = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "${PN}-x11", d)}"
diff --git a/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend b/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend
deleted file mode 100644
index 285847295..000000000
--- a/meta-agl-bsp/meta-core/recipes-core/ovmf/ovmf_git.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PARALLEL_MAKE = ""
diff --git a/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc
index 8ac343aa3..8ac343aa3 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/mesa/mesa_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_agl.inc
diff --git a/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc
index 9aaea5f69..9aaea5f69 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-graphics/wayland/weston_agl.inc
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
index e97b8f9d1..3d5903d85 100644
--- a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -1,17 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
-
-# Extra configuration options for the QEMU kernel
-SRC_URI += "file://hciattach.cfg \
- file://virtio.cfg \
- "
-
-# Enable some things on qemuarm64 so MOST drivers will build and load.
-SRC_URI_append_qemuarm64 = " file://most_deps.cfg"
-
-# Configuration for using the virt machine (and not versatilepb)
-SRC_URI_append_qemuarm = " file://qemuarm.cfg"
-
-# Build a generic v7 kernel instead of the arm926j one that upstream
-# qemuarm defaults to.
-KBUILD_DEFCONFIG_qemuarm = "multi_v7_defconfig"
-KCONFIG_MODE = "--alldefconfig"
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc
new file mode 100644
index 000000000..30e656b17
--- /dev/null
+++ b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_agl.inc
@@ -0,0 +1,21 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
+
+
+require recipes-kernel/linux/linux-agl.inc
+
+# Extra configuration options for the QEMU kernel
+SRC_URI += "file://hciattach.cfg \
+ file://virtio.cfg \
+ "
+
+# Enable some things on qemuarm64 so MOST drivers will build and load.
+SRC_URI_append_qemuarm64 = " file://most_deps.cfg"
+
+# Configuration for using the virt machine (and not versatilepb)
+SRC_URI_append_qemuarm = " file://qemuarm.cfg"
+
+# Build a generic v7 kernel instead of the arm926j one that upstream
+# qemuarm defaults to.
+KBUILD_DEFCONFIG_qemuarm = "multi_v7_defconfig"
+KCONFIG_MODE = "--alldefconfig"
+
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
index f78e0b5eb..238dd1643 100644
--- a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
+++ b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
@@ -20,7 +20,7 @@ CMDLINE_append = ' ${@bb.utils.contains('AGL_XEN_WANTED','1','modprobe.blacklist
CMDLINE_append = " usbhid.mousepoll=0"
# Add options to allow CMA to operate
-CMDLINE_append = ' ${@oe.utils.conditional("ENABLE_CMA", "1", "coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
+CMDLINE_append = '${@oe.utils.conditional("ENABLE_CMA", "1", " coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
KERNEL_MODULE_AUTOLOAD += "snd-bcm2835"
KERNEL_MODULE_AUTOLOAD += "hid-multitouch"
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch
deleted file mode 100644
index 5172fdd3a..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-Set-up-environment-for-OSTree-integration.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ebb26338d0c2f436a86fd4d7cb8d723a90d6a369 Mon Sep 17 00:00:00 2001
-From: Anton Gerasimov <anton@advancedtelematic.com>
-Date: Thu, 15 Sep 2016 17:52:41 +0200
-Subject: [PATCH 1/2] Set up environment for OSTree integration
-
----
- include/configs/qemu-x86.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
-index 78c296f..79df455 100644
---- a/include/configs/qemu-x86.h
-+++ b/include/configs/qemu-x86.h
-@@ -74,4 +74,24 @@
- #undef CONFIG_ENV_IS_IN_SPI_FLASH
- #define CONFIG_ENV_IS_NOWHERE
-
-+#undef CONFIG_BOOTARGS
-+#define CONFIG_BOOTARGS "root=/dev/hda2 console=ttyS0"
-+
-+#undef CONFIG_BOOTDELAY
-+#define CONFIG_BOOTDELAY 3
-+
-+#undef CONFIG_BOOTCOMMAND
-+#define CONFIG_BOOTCOMMAND "run loadenv;" \
-+ "setenv bootargs $bootargs\" console=ttyS0 root=/dev/ram0 rw rootfstype=ext4 rootwait rootdelay=2 ostree_root=/dev/hda ramdisk_size=16384 \";" \
-+ "ext2load ide 0 $loadaddr \"/boot\"$kernel_image;" \
-+ "ext2load ide 0 $ramdiskaddr \"/boot\"$ramdisk_image;" \
-+ "zboot $loadaddr - $ramdiskaddr $filesize"
-+
-+#undef CONFIG_EXTRA_ENV_SETTINGS
-+#define CONFIG_EXTRA_ENV_SETTINGS "kernel_image=/bzImage\0" \
-+ "ramdisk_image=/initrd\0" \
-+ "ramdiskaddr=0x4000000\0" \
-+ "bootdelay=3\0" \
-+ "loadenv=if ext2load ide 0 $loadaddr /boot/loader/uEnv.txt; then env import -t $loadaddr $filesize; fi;"
-+
- #endif /* __CONFIG_H */
---
-2.9.3
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch
deleted file mode 100644
index df1f786c6..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0001-fixup-build-with-gcc6.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From ba619c7ec7820e80d1b5b520440fdb81c31c0baf Mon Sep 17 00:00:00 2001
-From: Ronan Le Martret <ronan.lemartret@iot.bzh>
-Date: Fri, 14 Oct 2016 09:03:11 +0200
-Subject: [PATCH] fix gcc6 build
-
-Signed-off-by: ronan <ronan@linux-pgnz.suse>
----
- include/linux/compiler-gcc6.h | 66 +++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 66 insertions(+)
- create mode 100644 include/linux/compiler-gcc6.h
-
-diff --git a/include/linux/compiler-gcc6.h b/include/linux/compiler-gcc6.h
-new file mode 100644
-index 0000000..a3d00d8
---- /dev/null
-+++ b/include/linux/compiler-gcc6.h
-@@ -0,0 +1,66 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ * Fixed in GCC 4.8.2 and later versions.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
---
-2.6.6
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch
deleted file mode 100644
index 7540b7467..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From ab0d7e270d89f6eb99582197d2d58bf60c9c3d26 Mon Sep 17 00:00:00 2001
-From: Anton Gerasimov <anton@advancedtelematic.com>
-Date: Thu, 15 Sep 2016 16:49:32 +0200
-Subject: [PATCH 2/2] Replace wraps with built-in code to remove dependency on
- multilib
-
----
- arch/x86/config.mk | 2 --
- arch/x86/lib/gcc.c | 104 ++++++++++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 87 insertions(+), 19 deletions(-)
-
-diff --git a/arch/x86/config.mk b/arch/x86/config.mk
-index 999143e..139576e 100644
---- a/arch/x86/config.mk
-+++ b/arch/x86/config.mk
-@@ -22,5 +22,3 @@ PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
- PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions -m elf_i386
-
- LDFLAGS_FINAL += --gc-sections -pie
--LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
--LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
-diff --git a/arch/x86/lib/gcc.c b/arch/x86/lib/gcc.c
-index 497ad75..c321b11 100644
---- a/arch/x86/lib/gcc.c
-+++ b/arch/x86/lib/gcc.c
-@@ -19,22 +19,92 @@
-
- #ifdef __GNUC__
-
--/*
-- * GCC's libgcc handling is quite broken. While the libgcc functions
-- * are always regparm(0) the code that calls them uses whatever the
-- * compiler call specifies. Therefore we need a wrapper around those
-- * functions. See gcc bug PR41055 for more information.
-- */
--#define WRAP_LIBGCC_CALL(type, name) \
-- type __normal_##name(type a, type b) __attribute__((regparm(0))); \
-- type __wrap_##name(type a, type b); \
-- type __attribute__((no_instrument_function)) \
-- __wrap_##name(type a, type b) \
-- { return __normal_##name(a, b); }
--
--WRAP_LIBGCC_CALL(long long, __divdi3)
--WRAP_LIBGCC_CALL(unsigned long long, __udivdi3)
--WRAP_LIBGCC_CALL(long long, __moddi3)
--WRAP_LIBGCC_CALL(unsigned long long, __umoddi3)
-+#include <stdint.h>
-+#include <stddef.h>
-+
-+uint64_t __udivmoddi4 ( uint64_t num,
-+ uint64_t den,
-+ uint64_t *rem_p )
-+{
-+ uint64_t quot = 0, qbit = 1;
-+
-+ if ( den == 0 ) {
-+ return 1/((unsigned)den); /* Intentional divide by zero, without
-+ triggering a compiler warning which
-+ would abort the build */
-+ }
-+
-+ /* Left-justify denominator and count shift */
-+ while ( (int64_t)den >= 0 ) {
-+ den <<= 1;
-+ qbit <<= 1;
-+ }
-+
-+ while ( qbit ) {
-+ if ( den <= num ) {
-+ num -= den;
-+ quot += qbit;
-+ }
-+ den >>= 1;
-+ qbit >>= 1;
-+ }
-+
-+ if ( rem_p )
-+ *rem_p = num;
-+
-+ return quot;
-+}
-+uint64_t __udivdi3( uint64_t num, uint64_t den )
-+{
-+ return __udivmoddi4(num, den, NULL);
-+}
-+
-+uint64_t __umoddi3 ( uint64_t num, uint64_t den )
-+{
-+ uint64_t v;
-+
-+ (void) __udivmoddi4(num, den, &v);
-+ return v;
-+}
-+
-+int64_t __divmoddi4 ( int64_t num,
-+ int64_t den,
-+ int64_t* rem_p )
-+{
-+ int minus = 0;
-+ int64_t v;
-+
-+ if ( num < 0 ) {
-+ num = -num;
-+ minus = 1;
-+ }
-+ if ( den < 0 ) {
-+ den = -den;
-+ minus ^= 1;
-+ }
-+
-+ v = __udivmoddi4(num, den, (uint64_t *)rem_p);
-+ if ( minus ) {
-+ v = -v;
-+ if ( rem_p )
-+ *rem_p = -(*rem_p);
-+ }
-+
-+ return v;
-+}
-+
-+
-+int64_t __moddi3 (int64_t num, int64_t den)
-+{
-+ int64_t v;
-+
-+ (void) __divmoddi4(num, den, &v);
-+ return v;
-+}
-+
-+int64_t __divdi3(int64_t num, int64_t den)
-+{
-+ return __divmoddi4(num, den, NULL);
-+}
-
- #endif
---
-2.9.3
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch
deleted file mode 100644
index fc7933ea0..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota/0002-fixup-build-with-gcc7.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From eea58226f0b604d3047c495985197113838d3a7a Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Tue, 20 Jun 2017 13:25:20 -0400
-Subject: [PATCH] fix build for gcc7
-
-| In file included from .../include/linux/compiler.h:54:0,
-| from .../include/uapi/linux/stddef.h:1,
-| from .../include/linux/stddef.h:4,
-| from .../include/uapi/linux/posix_types.h:4,
-| from .../include/uapi/linux/types.h:13,
-| from .../include/linux/types.h:5,
-| from .../include/linux/mod_devicetable.h:11,
-| from .../scripts/mod/devicetable-offsets.c:2:
-| .../include/linux/compiler-gcc.h:121:1: fatal error: linux/compiler-gcc7.h: No such file or directory
-| #include gcc_header(__GNUC__)
-
-Upstream-Status: Pending
-
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
-Signed-off-by: Fabio Berton <fabio.berton@gmail.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- include/linux/compiler-gcc7.h | 66 +++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 66 insertions(+)
- create mode 100644 include/linux/compiler-gcc7.h
-
-diff --git a/include/linux/compiler-gcc7.h b/include/linux/compiler-gcc7.h
-new file mode 100644
-index 0000000..cdd1cc2
---- /dev/null
-+++ b/include/linux/compiler-gcc7.h
-@@ -0,0 +1,66 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used __attribute__((__used__))
-+#define __must_check __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+ to them will be unlikely. This means a lot of manual unlikely()s
-+ are unnecessary now for any paths leading to the usual suspects
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
-+ older compilers]
-+
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
-+ in the preprocessor, but we can live with this because they're unreleased.
-+ Maketime probing would be overkill here.
-+
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
-+ a special section, but I don't see any sense in this right now in
-+ the kernel context */
-+#define __cold __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable. This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased. Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ * Fixed in GCC 4.8.2 and later versions.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
---
-2.7.4
-
diff --git a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb b/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb
deleted file mode 100644
index 7ef3cacd4..000000000
--- a/meta-agl-bsp/recipes-bsp/u-boot/u-boot-ota_2015.07.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-include recipes-bsp/u-boot/u-boot.inc
-DEPENDS += "dtc-native"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://Licenses/README;md5=0507cd7da8e7ad6d6701926ec9b84c95"
-
-# This revision corresponds to the tag "v2015.07"
-# We use the revision in order to avoid having to fetch it from the
-# repo during parse
-SRCREV = "baba2f57e8f4ed3fa67fe213d22da0de5e00f204"
-
-SRC_URI = "\
- git://git.denx.de/u-boot.git;branch=master \
- file://0001-Set-up-environment-for-OSTree-integration.patch \
- file://0002-Replace-wraps-with-built-in-code-to-remove-dependenc.patch \
- file://0001-fixup-build-with-gcc6.patch \
- file://0002-fixup-build-with-gcc7.patch \
-"
-S = "${WORKDIR}/git"
-
-PV = "v2015.07+git${SRCPV}"
-
-EXTRA_OEMAKE_append = " KCFLAGS=-fgnu89-inline "
-EXTRA_OEMAKE_append_qemux86 = " BUILD_ROM=y"
-EXTRA_OEMAKE_append_qemux86-64 = " BUILD_ROM=y"
-
-UBOOT_SUFFIX = "bin"
-UBOOT_SUFFIX_qemux86 = "rom"
-UBOOT_SUFFIX_qemux86-64 = "rom"
diff --git a/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch b/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch
deleted file mode 100644
index 2ad367c8d..000000000
--- a/meta-agl-bsp/recipes-graphics/opencv/opencv/0004-Change-Max-Device-Count-To-16.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/modules/videoio/src/cap_v4l.cpp b/modules/videoio/src/cap_v4l.cpp
-index c36a619a56..0040e4574e 100644
---- a/modules/videoio/src/cap_v4l.cpp
-+++ b/modules/videoio/src/cap_v4l.cpp
-@@ -256,7 +256,7 @@ make & enjoy!
- #define DEFAULT_V4L_HEIGHT 480
- #define DEFAULT_V4L_FPS 30
-
--#define MAX_CAMERAS 8
-+#define MAX_CAMERAS 16
-
- // default and maximum number of V4L buffers, not including last, 'special' buffer
- #define MAX_V4L_BUFFERS 10
diff --git a/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend b/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend
deleted file mode 100644
index 8a68b0641..000000000
--- a/meta-agl-bsp/recipes-graphics/opencv/opencv_4.%.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += " \
- file://0004-Change-Max-Device-Count-To-16.patch \
- "
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend
deleted file mode 100644
index 671fa171f..000000000
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}"
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
deleted file mode 100644
index 386112024..000000000
--- a/meta-agl-bsp/recipes-kernel/linux/linux-yocto_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require linux-agl.inc
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/.appends.core b/meta-agl-core-test/conf/include/agl-test.inc
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/.appends.core
+++ b/meta-agl-core-test/conf/include/agl-test.inc
diff --git a/meta-agl-core-test/conf/layer.conf b/meta-agl-core-test/conf/layer.conf
new file mode 100644
index 000000000..2ce0c18f1
--- /dev/null
+++ b/meta-agl-core-test/conf/layer.conf
@@ -0,0 +1,14 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "aglcoretest"
+BBFILE_PATTERN_aglcoretest = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglcoretest = "60"
+
+LAYERSERIES_COMPAT_aglcoretest = "dunfell"
+LAYERDEPENDS_aglcoretest = "core aglcore"
+LAYERDEPENDS_aglcoretest += "openembedded-layer"
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb b/meta-agl-core-test/images/agl-image-minimal-qa.bb
index b162f2904..b162f2904 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb
+++ b/meta-agl-core-test/images/agl-image-minimal-qa.bb
diff --git a/meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
index 7803d74ed..7803d74ed 100644
--- a/meta-agl-profile-core/recipes-test/aiostress/aiostress_0.22.bb
+++ b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
diff --git a/meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
index 28bf858a0..28bf858a0 100644
--- a/meta-agl-profile-core/recipes-test/dung/dung_3.4.25-m2.bb
+++ b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
diff --git a/meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
index 08b0425c0..08b0425c0 100644
--- a/meta-agl-profile-core/recipes-test/ebizzy/ebizzy_0.3.bb
+++ b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
diff --git a/meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
index 66db133e3..66db133e3 100644
--- a/meta-agl-profile-core/recipes-test/ffsb/ffsb_6.0-rc2.bb
+++ b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
diff --git a/meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
index e8ce1ab78..e8ce1ab78 100644
--- a/meta-agl-profile-core/recipes-test/fontconfig/fontconfig_%.bbappend
+++ b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
diff --git a/meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
index 4d0d09aea..4d0d09aea 100644
--- a/meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
diff --git a/meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
index 7803ad7e0..7803ad7e0 100644
--- a/meta-agl-profile-core/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
diff --git a/meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
index 6aa1eabc2..6aa1eabc2 100644
--- a/meta-agl-profile-core/recipes-test/freetype/freetype_2.%.bbappend
+++ b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
diff --git a/meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
index e834becf3..e834becf3 100644
--- a/meta-agl-profile-core/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
diff --git a/meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
index d2ddb59b1..d2ddb59b1 100644
--- a/meta-agl-profile-core/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
diff --git a/meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
index 403aedd4c..403aedd4c 100644
--- a/meta-agl-profile-core/recipes-test/glmark2/glmark2_%.bbappend
+++ b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
diff --git a/meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
index f890e23a4..f890e23a4 100644
--- a/meta-agl-profile-core/recipes-test/himeno/himeno_2.0.bb
+++ b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
diff --git a/meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
index c882739ba..c882739ba 100644
--- a/meta-agl-profile-core/recipes-test/interbench/files/interbench.c.patch
+++ b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
diff --git a/meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
index 3e6490374..3e6490374 100644
--- a/meta-agl-profile-core/recipes-test/interbench/interbench_0.31.bb
+++ b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
diff --git a/meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
index a8b93716a..a8b93716a 100644
--- a/meta-agl-profile-core/recipes-test/ipv6connect/ipv6connect.bb
+++ b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
diff --git a/meta-agl-profile-core/recipes-test/linpack/linpack.bb b/meta-agl-core-test/recipes-test/linpack/linpack.bb
index 84bed0ff6..84bed0ff6 100644
--- a/meta-agl-profile-core/recipes-test/linpack/linpack.bb
+++ b/meta-agl-core-test/recipes-test/linpack/linpack.bb
diff --git a/meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
index 01b3cfce5..01b3cfce5 100644
--- a/meta-agl-profile-core/recipes-test/linus-stress/linus-stress.bb
+++ b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
diff --git a/meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
index 48301078e..f3b2c4ff9 100644
--- a/meta-agl-profile-core/recipes-test/packagegroups/packagegroup-agl-test.bb
+++ b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
@@ -15,44 +15,53 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
bc \
- dbench \
ebizzy \
evtest \
ffsb \
glmark2 \
interbench \
- iozone3 \
- iperf3 \
ipv6connect \
linpack \
linus-stress \
- lmbench \
- nbench-byte \
nmap \
rt-tests \
stress \
"
+
+
+
+
+
# to be added, but needs LICENSE_FLAGS_WHITELIST="non-commercial"
-# netperf
+# netperf # meta-networking
+
+# relocate due to dependencies
+# iperf3 \ # meta-oe
+# lmbench \ # meta-oe
+# dbench \ # meta-oe
+# nbench-byte \ # meta-oe
+# iozone3 \ # meta-oe
+#
# FTBS, SPEC-316
-# himeno
+# himeno # nowhere
# FTBS, SPEC-1384
-# trinity
+# trinity # meta-linaro (1.5)
# packagegroup-agl-test-ltp \
-# ltp \
+# ltp \ # ltp in oe-core
#
# Packages for shell commands which are required by LTP
# readelf, logrotate, vsftpd, crontab, sar, arp, ftp,
# host, rcp, rlogin, rsh, tcpdump, expect, iptables, dnsmasq,
# pgrep
-RDEPENDS_packagegroup-agl-test-ltp += " \
- initscripts-functions bind-utils binutils \
- cronie dnsmasq expect inetutils-ftp inetutils-rsh \
- iptables logrotate net-tools sysstat tcpdump vsftpd \
- "
+RDEPENDS_packagegroup-agl-test-ltp = ""
+#RDEPENDS_packagegroup-agl-test-ltp += " \
+# initscripts-functions bind-utils binutils \
+# cronie dnsmasq expect inetutils-ftp inetutils-rsh \
+# iptables logrotate net-tools sysstat tcpdump vsftpd \
+# "
RDEPENDS_packagegroup-ivi-common-test = " \
packagegroup-agl-test \
diff --git a/meta-agl-profile-core/recipes-test/trinity/trinity_git.bb b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
index f0f09a855..f0f09a855 100644
--- a/meta-agl-profile-core/recipes-test/trinity/trinity_git.bb
+++ b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
diff --git a/meta-agl-distro/LICENSE b/meta-agl-core/LICENSE
index e8758f89c..e8758f89c 100644
--- a/meta-agl-distro/LICENSE
+++ b/meta-agl-core/LICENSE
diff --git a/meta-agl-distro/LICENSE.GPL-2.0-only b/meta-agl-core/LICENSE.GPL-2.0-only
index 5db3c0a21..5db3c0a21 100644
--- a/meta-agl-distro/LICENSE.GPL-2.0-only
+++ b/meta-agl-core/LICENSE.GPL-2.0-only
diff --git a/meta-agl-distro/LICENSE.MIT b/meta-agl-core/LICENSE.MIT
index a6919eb7e..a6919eb7e 100644
--- a/meta-agl-distro/LICENSE.MIT
+++ b/meta-agl-core/LICENSE.MIT
diff --git a/meta-agl-core/README b/meta-agl-core/README
new file mode 120000
index 000000000..4a7a1a175
--- /dev/null
+++ b/meta-agl-core/README
@@ -0,0 +1 @@
+README-AGL.md \ No newline at end of file
diff --git a/meta-agl-core/README-AGL.md b/meta-agl-core/README-AGL.md
new file mode 100644
index 000000000..c7fc029e7
--- /dev/null
+++ b/meta-agl-core/README-AGL.md
@@ -0,0 +1,21 @@
+Overview
+========
+
+The
+[AGL Project](https://www.automotivelinux.org/) is an automotive-specific
+development environment that provides a Linux distribution
+[AGL UCB](https://www.automotivelinux.org/software/unified-code-base).
+
+AGL uses layers designed to be compatible with the
+[Yocto Project](https://www.yoctoproject.org) and the
+[OpenEmbedded Project (OE)](https://www.openembedded.org/wiki/Main_Page).
+
+This section provides information about the layers used by the AGL Project:
+
+* **`meta-agl/meta-agl-core`**: Minimal set of software needed to create an AGL distribution
+ used to boot a system.
+ AGL profiles are built on top of this minimal set of software.
+
+ ```
+ $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
+ ```
diff --git a/meta-agl-profile-core/classes/cloc.bbclass b/meta-agl-core/classes/cloc.bbclass
index 9b73704e8..9b73704e8 100644
--- a/meta-agl-profile-core/classes/cloc.bbclass
+++ b/meta-agl-core/classes/cloc.bbclass
diff --git a/meta-agl-core/classes/sanity-meta-agl-core.bbclass b/meta-agl-core/classes/sanity-meta-agl-core.bbclass
new file mode 100644
index 000000000..93df587f4
--- /dev/null
+++ b/meta-agl-core/classes/sanity-meta-agl-core.bbclass
@@ -0,0 +1,10 @@
+addhandler aglcore_bbappend_distrocheck
+aglcore_bbappend_distrocheck[eventmask] = "bb.event.SanityCheck"
+python aglcore_bbappend_distrocheck() {
+ skip_check = e.data.getVar('SKIP_META_AGL_CORE_SANITY_CHECK') == "1"
+ if 'aglcore' not in e.data.getVar('AGL_FEATURES').split() and not skip_check:
+ bb.warn("You have included the meta-agl-core layer, but \
+'aglcore' has not been enabled in your AGL_FEATURES. Some bbappend files \
+may not take effect. See the meta-agl-core README for details on enabling \
+meta-agl-core support.")
+}
diff --git a/meta-agl-core/conf/bblayers.conf.sample b/meta-agl-core/conf/bblayers.conf.sample
new file mode 100644
index 000000000..8b1cbdfc5
--- /dev/null
+++ b/meta-agl-core/conf/bblayers.conf.sample
@@ -0,0 +1,12 @@
+# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+POKY_BBLAYERS_CONF_VERSION = "2"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-yocto-bsp \
+ "
diff --git a/meta-agl-distro/conf/distro/include/aarch64-tune.inc b/meta-agl-core/conf/distro/include/aarch64-tune.inc
index 553bb5a64..553bb5a64 100644
--- a/meta-agl-distro/conf/distro/include/aarch64-tune.inc
+++ b/meta-agl-core/conf/distro/include/aarch64-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/arc-tune.inc b/meta-agl-core/conf/distro/include/arc-tune.inc
index 43dabd5a9..43dabd5a9 100644
--- a/meta-agl-distro/conf/distro/include/arc-tune.inc
+++ b/meta-agl-core/conf/distro/include/arc-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/arm-tune.inc b/meta-agl-core/conf/distro/include/arm-tune.inc
index fa68e05a7..fa68e05a7 100644
--- a/meta-agl-distro/conf/distro/include/arm-tune.inc
+++ b/meta-agl-core/conf/distro/include/arm-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/riscv64-tune.inc b/meta-agl-core/conf/distro/include/riscv64-tune.inc
index f8118dec3..f8118dec3 100644
--- a/meta-agl-distro/conf/distro/include/riscv64-tune.inc
+++ b/meta-agl-core/conf/distro/include/riscv64-tune.inc
diff --git a/meta-agl-distro/conf/distro/include/x86_64-tune.inc b/meta-agl-core/conf/distro/include/x86_64-tune.inc
index 9f2bdc867..9f2bdc867 100644
--- a/meta-agl-distro/conf/distro/include/x86_64-tune.inc
+++ b/meta-agl-core/conf/distro/include/x86_64-tune.inc
diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf
index 63a1960af..63a1960af 100644
--- a/meta-agl-distro/conf/distro/poky-agl.conf
+++ b/meta-agl-core/conf/distro/poky-agl.conf
diff --git a/meta-agl-profile-core/conf/include/agl-devel.inc b/meta-agl-core/conf/include/agl-devel.inc
index 6ecd6a075..6ecd6a075 100644
--- a/meta-agl-profile-core/conf/include/agl-devel.inc
+++ b/meta-agl-core/conf/include/agl-devel.inc
diff --git a/meta-agl-profile-core/conf/include/agl-gplv2.inc b/meta-agl-core/conf/include/agl-gplv2.inc
index fc9a4072b..fc9a4072b 100644
--- a/meta-agl-profile-core/conf/include/agl-gplv2.inc
+++ b/meta-agl-core/conf/include/agl-gplv2.inc
diff --git a/meta-agl-profile-core/conf/include/base-agl.inc b/meta-agl-core/conf/include/base-agl.inc
index c5cf1a57f..5ca723a10 100644
--- a/meta-agl-profile-core/conf/include/base-agl.inc
+++ b/meta-agl-core/conf/include/base-agl.inc
@@ -18,3 +18,5 @@ USERADDEXTENSION = "useradd-staticids"
USERADD_ERROR_DYNAMIC = "error"
USERADD_GID_TABLES = "files/group"
USERADD_UID_TABLES = "files/passwd"
+
+AGL_FEATURES += "aglcore"
diff --git a/meta-agl-core/conf/layer.conf b/meta-agl-core/conf/layer.conf
new file mode 100644
index 000000000..2218e3d49
--- /dev/null
+++ b/meta-agl-core/conf/layer.conf
@@ -0,0 +1,17 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "aglcore"
+BBFILE_PATTERN_aglcore = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglcore = "60"
+
+LAYERSERIES_COMPAT_aglcore = "dunfell"
+LAYERDEPENDS_aglcore = "core"
+
+# Sanity check for meta-virtualization layer.
+# Setting SKIP_META_VIRT_SANITY_CHECK to "1" would skip the bbappend files check.
+#INHERIT += "sanity-meta-agl-core"
diff --git a/meta-agl-core/conf/local.conf.sample b/meta-agl-core/conf/local.conf.sample
new file mode 100644
index 000000000..82c9dddc1
--- /dev/null
+++ b/meta-agl-core/conf/local.conf.sample
@@ -0,0 +1,277 @@
+#
+# This file is your local configuration file and is where all local user settings
+# are placed. The comments in this file give some guide to the options a new user
+# to the system might want to change but pretty much any configuration option can
+# be set in this file. More adventurous users can look at local.conf.extended
+# which contains other examples of configuration which can be placed in this file
+# but new users likely won't need any of them initially.
+#
+# Lines starting with the '#' character are commented out and in some cases the
+# default values are provided as comments to show people example syntax. Enabling
+# the option is a question of removing the # character and making any change to the
+# variable as required.
+
+#
+# Machine Selection
+#
+# You need to select a specific machine to target the build with. There are a selection
+# of emulated machines available which can boot and run in the QEMU emulator:
+#
+#MACHINE ?= "qemuarm"
+#MACHINE ?= "qemuarm64"
+#MACHINE ?= "qemumips"
+#MACHINE ?= "qemumips64"
+#MACHINE ?= "qemuppc"
+#MACHINE ?= "qemux86"
+#MACHINE ?= "qemux86-64"
+#
+# There are also the following hardware board target machines included for
+# demonstration purposes:
+#
+#MACHINE ?= "beaglebone-yocto"
+#MACHINE ?= "genericx86"
+#MACHINE ?= "genericx86-64"
+#MACHINE ?= "edgerouter"
+#
+# This sets the default machine to be qemux86-64 if no other machine is selected:
+MACHINE ??= "qemux86-64"
+
+#
+# Where to place downloads
+#
+# During a first build the system will download many different source code tarballs
+# from various upstream projects. This can take a while, particularly if your network
+# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
+# can preserve this directory to speed up this part of subsequent builds. This directory
+# is safe to share between multiple builds on the same machine too.
+#
+# The default is a downloads directory under TOPDIR which is the build directory.
+#
+#DL_DIR ?= "${TOPDIR}/downloads"
+
+#
+# Where to place shared-state files
+#
+# BitBake has the capability to accelerate builds based on previously built output.
+# This is done using "shared state" files which can be thought of as cache objects
+# and this option determines where those files are placed.
+#
+# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
+# from these files if no changes were made to the configuration. If changes were made
+# to the configuration, only shared state files where the state was still valid would
+# be used (done using checksums).
+#
+# The default is a sstate-cache directory under TOPDIR.
+#
+#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
+
+#
+# Where to place the build output
+#
+# This option specifies where the bulk of the building work should be done and
+# where BitBake should place its temporary files and output. Keep in mind that
+# this includes the extraction and compilation of many applications and the toolchain
+# which can use Gigabytes of hard disk space.
+#
+# The default is a tmp directory under TOPDIR.
+#
+#TMPDIR = "${TOPDIR}/tmp"
+
+#
+# Default policy config
+#
+# The distribution setting controls which policy settings are used as defaults.
+# The default value is fine for general Yocto project use, at least initially.
+# Ultimately when creating custom policy, people will likely end up subclassing
+# these defaults.
+#
+DISTRO ?= "poky"
+# As an example of a subclass there is a "bleeding" edge policy configuration
+# where many versions are set to the absolute latest code from the upstream
+# source control systems. This is just mentioned here as an example, its not
+# useful to most new users.
+# DISTRO ?= "poky-bleeding"
+
+#
+# Package Management configuration
+#
+# This variable lists which packaging formats to enable. Multiple package backends
+# can be enabled at once and the first item listed in the variable will be used
+# to generate the root filesystems.
+# Options are:
+# - 'package_deb' for debian style deb files
+# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
+# - 'package_rpm' for rpm style packages
+# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
+# We default to rpm:
+PACKAGE_CLASSES ?= "package_rpm"
+
+#
+# SDK target architecture
+#
+# This variable specifies the architecture to build SDK items for and means
+# you can build the SDK packages for architectures other than the machine you are
+# running the build on (i.e. building i686 packages on an x86_64 host).
+# Supported values are i686 and x86_64
+#SDKMACHINE ?= "i686"
+
+#
+# Extra image configuration defaults
+#
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# images. Some of these options are added to certain image types automatically. The
+# variable can contain the following options:
+# "dbg-pkgs" - add -dbg packages for all installed packages
+# (adds symbol information for debugging/profiling)
+# "src-pkgs" - add -src packages for all installed packages
+# (adds source code for debugging)
+# "dev-pkgs" - add -dev packages for all installed packages
+# (useful if you want to develop against libs in the image)
+# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
+# (useful if you want to run the package test suites)
+# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
+# "tools-debug" - add debugging tools (gdb, strace)
+# "eclipse-debug" - add Eclipse remote debugging support
+# "tools-profile" - add profiling tools (oprofile, lttng, valgrind)
+# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
+# "debug-tweaks" - make an image suitable for development
+# e.g. ssh root access has a blank password
+# There are other application targets that can be used here too, see
+# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
+# We default to enabling the debugging tweaks.
+EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
+
+#
+# Additional image features
+#
+# The following is a list of additional classes to use when building images which
+# enable extra features. Some available options which can be included in this variable
+# are:
+# - 'buildstats' collect build statistics
+# - 'image-mklibs' to reduce shared library files size for an image
+# - 'image-prelink' in order to prelink the filesystem image
+# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
+# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+
+#
+# Runtime testing of images
+#
+# The build system can test booting virtual machine images under qemu (an emulator)
+# after any root filesystems are created and run tests against those images. It can also
+# run tests against any SDK that are built. To enable this uncomment these lines.
+# See classes/test{image,sdk}.bbclass for further details.
+#IMAGE_CLASSES += "testimage testsdk"
+#TESTIMAGE_AUTO_qemuall = "1"
+
+#
+# Interactive shell configuration
+#
+# Under certain circumstances the system may need input from you and to do this it
+# can launch an interactive shell. It needs to do this since the build is
+# multithreaded and needs to be able to handle the case where more than one parallel
+# process may require the user's attention. The default is iterate over the available
+# terminal types to find one that works.
+#
+# Examples of the occasions this may happen are when resolving patches which cannot
+# be applied, to use the devshell or the kernel menuconfig
+#
+# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
+# Note: currently, Konsole support only works for KDE 3.x due to the way
+# newer Konsole versions behave
+#OE_TERMINAL = "auto"
+# By default disable interactive patch resolution (tasks will just fail instead):
+PATCHRESOLVE = "noop"
+
+#
+# Disk Space Monitoring during the build
+#
+# Monitor the disk space during the build. If there is less that 1GB of space or less
+# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
+# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# of the build. The reason for this is that running completely out of space can corrupt
+# files and damages the build in ways which may not be easily recoverable.
+# It's necesary to monitor /tmp, if there is no space left the build will fail
+# with very exotic errors.
+BB_DISKMON_DIRS ??= "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+
+#
+# Shared-state files from other locations
+#
+# As mentioned above, shared state files are prebuilt cache data objects which can
+# used to accelerate build time. This variable can be used to configure the system
+# to search other mirror locations for these objects before it builds the data itself.
+#
+# This can be a filesystem directory, or a remote url such as http or ftp. These
+# would contain the sstate-cache results from previous builds (possibly from other
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# cache locations to check for the shared objects.
+# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
+# at the end as shown in the examples below. This will be substituted with the
+# correct path within the directory structure.
+#SSTATE_MIRRORS ?= "\
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* file:///some/local/dir/sstate/PATH"
+
+#
+# Yocto Project SState Mirror
+#
+# The Yocto Project has prebuilt artefacts available for its releases, you can enable
+# use of these by uncommenting the following line. This will mean the build uses
+# the network to check for artefacts at the start of builds, which does slow it down
+# equally, it will also speed up the builds by not having to build things if they are
+# present in the cache. It assumes you can download something faster than you can build it
+# which will depend on your network.
+#
+#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/2.5/PATH;downloadfilename=PATH"
+
+#
+# Qemu configuration
+#
+# By default native qemu will build with a builtin VNC server where graphical output can be
+# seen. The line below enables the SDL UI frontend too.
+PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
+# By default libsdl2-native will be built, if you want to use your host's libSDL instead of
+# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
+#ASSUME_PROVIDED += "libsdl2-native"
+
+# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
+# a handy set of menus for controlling the emulator.
+#PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"
+
+#
+# Hash Equivalence
+#
+# Enable support for automatically running a local hash equivalence server and
+# instruct bitbake to use a hash equivalence aware signature generator. Hash
+# equivalence improves reuse of sstate by detecting when a given sstate
+# artifact can be reused as equivalent, even if the current task hash doesn't
+# match the one that generated the artifact.
+#
+# A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format
+#
+#BB_HASHSERVE = "auto"
+#BB_SIGNATURE_HANDLER = "OEEquivHash"
+
+# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
+# track the version of this file when it was generated. This can safely be ignored if
+# this doesn't mean anything to you.
+CONF_VERSION = "1"
+
+# meta-agl-core uses these variables
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+DISTRO_FEATURES_append = " systemd "
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# soon: INIT_MANAGER = "systemd"
diff --git a/meta-agl-profile-core/files/group b/meta-agl-core/files/group
index c309f6a05..c309f6a05 100644
--- a/meta-agl-profile-core/files/group
+++ b/meta-agl-core/files/group
diff --git a/meta-agl-profile-core/files/passwd b/meta-agl-core/files/passwd
index ac70c0f9b..ac70c0f9b 100644
--- a/meta-agl-profile-core/files/passwd
+++ b/meta-agl-core/files/passwd
diff --git a/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend b/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/busybox/busybox_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc b/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc
new file mode 100644
index 000000000..babf0261f
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/busybox/busybox_aglcore.inc
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI_append = " file://enable-wget-https.cfg"
+
diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg b/meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
index e92006bef..e92006bef 100644
--- a/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
+++ b/meta-agl-core/recipes-connectivity/busybox/files/enable-wget-https.cfg
diff --git a/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
index 61086dfe7..61086dfe7 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
+++ b/meta-agl-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
diff --git a/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend b/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend
new file mode 100644
index 000000000..8078f3d34
--- /dev/null
+++ b/meta-agl-core/recipes-connectivity/connman/connman_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'connman_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend b/meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc
index 469345880..469345880 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend
+++ b/meta-agl-core/recipes-connectivity/connman/connman_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch b/meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
index f129a6580..f129a6580 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
+++ b/meta-agl-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
diff --git a/meta-agl-profile-core/recipes-connectivity/connman/files/main.conf b/meta-agl-core/recipes-connectivity/connman/files/main.conf
index 4dba25b70..4dba25b70 100644
--- a/meta-agl-profile-core/recipes-connectivity/connman/files/main.conf
+++ b/meta-agl-core/recipes-connectivity/connman/files/main.conf
diff --git a/meta-agl-profile-core/recipes-core/dbus/.appends.core b/meta-agl-core/recipes-core/systemd/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/dbus/.appends.core
+++ b/meta-agl-core/recipes-core/systemd/.appends.core
diff --git a/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd-conf_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc
index 6661eab6c..6661eab6c 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd-conf_%.bbappend
+++ b/meta-agl-core/recipes-core/systemd/systemd-conf_aglcore.inc
diff --git a/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch b/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch
new file mode 100644
index 000000000..29165b58e
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd/0001-fix-udevd-seclabel-parsing.patch
@@ -0,0 +1,34 @@
+Fix udevd SECLABEL token parsing
+
+The udevd rules parsing rewrite in v243 broke SECLABEL parsing,
+with the result being that udevd crashes when it parses a line
+containing a SECLABEL token. Fix the handling of the attribute
+of SECLABEL tokens when parsing, and add a check to prevent
+crashes if the attribute is missing.
+
+Upstream-Status: Pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
+index efea16e5c5..3e757ccb06 100644
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -918,7 +918,7 @@ static int parse_token(UdevRules *rules, const char *key, char *attr, UdevRuleOp
+ op = OP_ASSIGN;
+ }
+
+- r = rule_line_add_token(rule_line, TK_A_SECLABEL, op, value, NULL);
++ r = rule_line_add_token(rule_line, TK_A_SECLABEL, op, value, attr);
+ } else if (streq(key, "RUN")) {
+ if (is_match || op == OP_REMOVE)
+ return log_token_invalid_op(rules, key);
+@@ -1927,6 +1927,8 @@ static int udev_rule_apply_token_to_event(
+ _cleanup_free_ char *name = NULL, *label = NULL;
+ char label_str[UTIL_LINE_SIZE] = {};
+
++ if (!token->data)
++ break;
+ name = strdup((const char*) token->data);
+ if (!name)
+ return log_oom();
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch b/meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
index feaff2736..feaff2736 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
+++ b/meta-agl-core/recipes-core/systemd/systemd/0002-network-add-CAN-Termination-tristate-option.patch
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network b/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network
index ae5514bca..ae5514bca 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/canbus-can.network
+++ b/meta-agl-core/recipes-core/systemd/systemd/canbus-can.network
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf b/meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf
index b774f9ebf..b774f9ebf 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/e2fsck.conf
+++ b/meta-agl-core/recipes-core/systemd/systemd/e2fsck.conf
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd/wired.network b/meta-agl-core/recipes-core/systemd/systemd/wired.network
index 3559b0155..3559b0155 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd/wired.network
+++ b/meta-agl-core/recipes-core/systemd/systemd/wired.network
diff --git a/meta-agl-core/recipes-core/systemd/systemd_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-core/systemd/systemd_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
index 96c4dc35c..feca107a8 100644
--- a/meta-agl-profile-core/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-agl-core/recipes-core/systemd/systemd_aglcore.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"
SRC_URI += "\
file://0002-network-add-CAN-Termination-tristate-option.patch \
diff --git a/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend b/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-devtools/cmake/cmake_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend b/meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc
index 2de1e6836..2de1e6836 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend
+++ b/meta-agl-core/recipes-devtools/cmake/cmake_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh b/meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
index 64b6cf3c6..64b6cf3c6 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
+++ b/meta-agl-core/recipes-devtools/cmake/files/environment.d-cmake-agl.sh
diff --git a/meta-agl-profile-core/recipes-core/psplash/.appends.core b/meta-agl-core/recipes-devtools/gdb/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/psplash/.appends.core
+++ b/meta-agl-core/recipes-devtools/gdb/.appends.core
diff --git a/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend b/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-devtools/gdb/gdb_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend b/meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc
index 7cba933af..7cba933af 100644
--- a/meta-agl-profile-core/recipes-devtools/gdb/gdb_%.bbappend
+++ b/meta-agl-core/recipes-devtools/gdb/gdb_aglcore.inc
diff --git a/meta-agl-profile-core/recipes-core/systemd/.appends.core b/meta-agl-core/recipes-extended/gperf/.appends.core
index e69de29bb..e69de29bb 100644
--- a/meta-agl-profile-core/recipes-core/systemd/.appends.core
+++ b/meta-agl-core/recipes-extended/gperf/.appends.core
diff --git a/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend b/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend
new file mode 100644
index 000000000..980783236
--- /dev/null
+++ b/meta-agl-core/recipes-extended/gperf/gperf_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_aglcore.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend b/meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc
index 2a590838b..2a590838b 100644
--- a/meta-agl-profile-core/recipes-extended/gperf/gperf_%.bbappend
+++ b/meta-agl-core/recipes-extended/gperf/gperf_aglcore.inc
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
index bbd5a80c4..bbd5a80c4 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/Readme.weston-ini-conf
+++ b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
index 553f3a6bf..553f3a6bf 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/agl-compositor_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb b/meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb
index 89d97f513..85f760709 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham-transmitter_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/waltham-transmitter_git.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/waltham/waltham"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://waltham-transmitter/COPYING;md5=f21c9af4de068fb53b83f0b37d262ec3"
-DEPENDS += "libdrm virtual/kernel wayland wayland-native waltham weston gstreamer1.0 gstreamer gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad wayland-ivi-extension"
+DEPENDS += "libdrm virtual/kernel wayland wayland-native waltham weston gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad wayland-ivi-extension"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/weston-ivi-plugins.git;protocol=https;branch=${AGL_BRANCH}"
SRCREV = "5287483228fa1e28f3217a54606cfe760c6582bd"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
index 32c2df3c4..32c2df3c4 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
index 354bcbc15..354bcbc15 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
index 5aefb922b..5aefb922b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
+++ b/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend b/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
index 8d0436a3b..8d0436a3b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_%.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb b/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
index 01023a1f2..01023a1f2 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/waltham_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
index 14fbd0273..16c0f046d 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf.bb
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
@@ -7,6 +7,19 @@ SRC_URI = "file://core.cfg \
file://hdmi-a-1-270.cfg \
"
+# cluster and html5-landscape
+# core, shell, hdmi-a-1-180.cfg, virtual-landscape.cfg
+SRC_URI_remove_landscape = " \
+ file://hdmi-a-1-270.cfg \
+ file://hdmi-a-1-90.cfg \
+ file://virtual.cfg \
+"
+SRC_URI_append_landscape = " \
+ file://hdmi-a-1-180.cfg \
+ file://virtual-landscape.cfg \
+"
+
+
S = "${WORKDIR}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
index 4a2dc80af..179004094 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
@@ -1,5 +1,10 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}"
+
+
# For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1
# and Virtual-1 outputs. This allows us to run virtual images on real hardware
# and vice versa.
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
index 90774ed79..90774ed79 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
index dffc2b6dd..dffc2b6dd 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
index 88a692a1b..88a692a1b 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
index f69a2e096..f69a2e096 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
diff --git a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
index 975e539e6..975e539e6 100644
--- a/meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/shell.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
index 25a8fae94..25a8fae94 100644
--- a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend
new file mode 100644
index 000000000..c09d7ccd3
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-init.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston-init_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
new file mode 100644
index 000000000..51c59ae4d
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
@@ -0,0 +1,6 @@
+do_install_append() {
+ # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
+ rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
+}
+
+SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
index 32755c4b3..32755c4b3 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
index 02af7cbaf..02af7cbaf 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
index cb122590b..cb122590b 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend
new file mode 100644
index 000000000..f627f5cb2
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_8.0_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc
new file mode 100644
index 000000000..c2495465b
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/weston"
+
+SRC_URI_append = "\
+ file://0001-libweston-Expose-weston_output_damage-in-libweston.patch \
+ file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch \
+ file://0005-correctly-tear-down-drm-backend.patch \
+ "
+
+# Workaround for incorrect upstream definition
+PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
diff --git a/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend b/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend
new file mode 100644
index 000000000..3d5903d85
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/kernel-devsrc.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
diff --git a/meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend b/meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc
index 52fe69d24..52fe69d24 100644
--- a/meta-agl-bsp/recipes-kernel/linux/kernel-devsrc.bbappend
+++ b/meta-agl-core/recipes-kernel/linux/kernel-devsrc_agl.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
index c595dfdf5..c595dfdf5 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Handle-CGROUP2-in-the-same-way-that-CGROUP.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
index 4100bb8fd..4100bb8fd 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/Smack-Privilege-check-on-key-operations.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch b/meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
index 7c34fb306..7c34fb306 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux-4.14/net-sch_generic-add-if_afp.h-header-to-get-ARPHRD_CA.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc
index 6d5c67021..6d5c67021 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.14.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl-4.14.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc
index da4e0c067..da4e0c067 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl-4.19.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl-4.19.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
index cd960ef6d..cd960ef6d 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux-agl.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg b/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
index dd7c460bb..dd7c460bb 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/btusb.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
index 2f24b7607..2f24b7607 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/can-bus.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg b/meta-agl-core/recipes-kernel/linux/linux/drm.cfg
index 65fe71cd0..65fe71cd0 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/drm.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/drm.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg b/meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg
index de5dd8d31..de5dd8d31 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/fanotify.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/fanotify.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg b/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
index 327c753ae..327c753ae 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/hid.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg b/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
index 248b5118a..248b5118a 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/i2c-led.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg b/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
index c5b8ff35e..c5b8ff35e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/iiodevice.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg b/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
index 2201bcb00..2201bcb00 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/joystick.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg b/meta-agl-core/recipes-kernel/linux/linux/nbd.cfg
index e5d897556..e5d897556 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/nbd.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/nbd.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch b/meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
index 37ace5a58..37ace5a58 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
+++ b/meta-agl-core/recipes-kernel/linux/linux/net-sch_generic-Use-pfifo_fast-as-fallback-scheduler.patch
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg b/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
index 34be704c1..34be704c1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/netfilter.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg b/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
index 6d863a075..6d863a075 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/nfc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg b/meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg
index 025118ed6..025118ed6 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/overlayfs.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/overlayfs.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg b/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
index 6e08c25bc..6e08c25bc 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/procevent.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg b/meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg
index 3d44de805..3d44de805 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/ramdisk.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/ramdisk.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
index 2641958a0..2641958a0 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/rtc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
index d4574700a..d4574700a 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/rtl_sdr.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg b/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
index e8b09aa7c..e8b09aa7c 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/scheddebug.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg b/meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg
index 115504c39..115504c39 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/sound-hda.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/sound-hda.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg b/meta-agl-core/recipes-kernel/linux/linux/sound.cfg
index ad34ea680..ad34ea680 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/sound.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/sound.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg b/meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg
index 4886c27f1..4886c27f1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/systemtap.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/systemtap.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg b/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
index 7996ef1dd..7996ef1dd 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/uinput.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg b/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
index 8e9e98ecb..8e9e98ecb 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usb.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
index 5961f43d3..5961f43d3 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usbaudio.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
index 3ded931e5..3ded931e5 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/usbmodem.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg b/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
index 7c6556c11..7c6556c11 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/uvc.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg b/meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
index ce1eca1a7..ce1eca1a7 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/vbox-vmware-sata.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg b/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
index 00c2e06e4..00c2e06e4 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/wifi.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
index d2b64de67..d2b64de67 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-extra-graphic-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg
index 6c5b698a9..6c5b698a9 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-net-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-net-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg
index b66b1b9b1..b66b1b9b1 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-security-tpm.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-security-tpm.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg
index d2bed63fa..d2bed63fa 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-upsquare.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-upsquare.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg b/meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg
index 19c57796e..19c57796e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/x86-usb-devices.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/x86-usb-devices.cfg
diff --git a/meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg b/meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg
index 8bc59eb1e..8bc59eb1e 100644
--- a/meta-agl-bsp/recipes-kernel/linux/linux/xen_domu.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/xen_domu.cfg
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb b/meta-agl-core/recipes-platform/images/agl-image-boot.bb
index 84cdbcf31..84cdbcf31 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-boot.bb
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc b/meta-agl-core/recipes-platform/images/agl-image-boot.inc
index 825393978..825393978 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-boot.inc
diff --git a/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
new file mode 100644
index 000000000..3855b3c23
--- /dev/null
+++ b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A very basic Wayland image with a terminal"
+
+require agl-image-weston.inc
+
+LICENSE = "MIT"
+
+IMAGE_INSTALL_append = "\
+ packagegroup-agl-profile-graphical \
+ busybox \
+ psplash \
+ gdb \
+ gperf \
+ weston \
+ weston-examples \
+ curl \
+ ptest-runner \
+ libsoup-2.4 \
+ "
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
index 8c5aae1bf..8c5aae1bf 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
new file mode 100644
index 000000000..a69e698a1
--- /dev/null
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
@@ -0,0 +1,24 @@
+IMAGE_FEATURES_append = " dev-pkgs"
+IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
+
+
+
+
+
+
+# FIXME:
+# Always include the test widgets
+#IMAGE_FEATURES_append = " agl-test-wgt"
+#
+# Required dependencies for app and test builds
+#TOOLCHAIN_HOST_TASK += " \
+# nativesdk-lua \
+# "
+#
+# Required dependencies for app and test builds
+#TOOLCHAIN_TARGET_TASK += " \
+# lua-dev \
+# lua-staticdev \
+# libafb-helpers-staticdev \
+# libappcontroller-staticdev \
+# "
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb
index 1fd213d0f..1fd213d0f 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc
index 825393978..825393978 100644
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc
diff --git a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb b/meta-agl-core/recipes-platform/images/agl-image-weston.bb
index bbb61c922..bbb61c922 100644
--- a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.bb
+++ b/meta-agl-core/recipes-platform/images/agl-image-weston.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc b/meta-agl-core/recipes-platform/images/agl-image-weston.inc
index cef3bf64e..cef3bf64e 100644
--- a/meta-agl-profile-graphical/recipes-platform/images/agl-image-weston.inc
+++ b/meta-agl-core/recipes-platform/images/agl-image-weston.inc
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
index 1633feddc..5ffa4cfff 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
@@ -35,7 +35,6 @@ RDEPENDS_${PN} = "\
base-passwd \
busybox \
rng-tools \
- run-agl-postinsts \
${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${SYSVINIT_SCRIPTS}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \
netbase \
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
index e209c59ca..0d7bbb58b 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
@@ -15,5 +15,5 @@ RDEPENDS_${PN} += "\
dhcp-server \
${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-tests \
connman-tools connman-ncurses connman-plugin-session-policy-local','',d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \
+ ${@bb.utils.contains('AGL_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \
"
diff --git a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
index c360f2a72..72fec3ff0 100644
--- a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
@@ -12,22 +12,20 @@ RDEPENDS_${PN} = "\
gdb \
valgrind \
perf \
- htop \
powertop \
screen \
usbutils \
rsync \
- tree \
pstree \
procps \
- jq \
libxslt-bin \
- agl-service-network-tools \
gcc-sanitizers \
pciutils \
- pyagl \
- gcov \
- gcov-symlinks \
- gcovr \
- gcovr-wrapper \
"
+
+# needs meta-oe present
+#RRECOMMENDS_${PN} = "\
+# jq \
+# htop \
+# tree \
+#"
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
index aef732838..aef732838 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
index 0ae5c77a3..0ae5c77a3 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
index cd37cb7d5..cd37cb7d5 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
index 79577c170..6d3435d99 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
@@ -12,9 +12,6 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += " \
weston \
weston-init \
- weston-ini-conf \
weston-examples \
- agl-login-manager \
- agl-compositor \
"
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
index afa04e7a1..afa04e7a1 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
index 284c961b1..45107ed9c 100644
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
@@ -15,11 +15,9 @@ RDEPENDS_${PN} += "\
packagegroup-machine-base \
"
-
RDEPENDS_${PN} += "\
packagegroup-agl-core-connectivity \
packagegroup-agl-core-os-commonlibs \
- packagegroup-agl-core-services \
packagegroup-agl-core-security \
"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
index 406ebcdb4..bfc5e19e8 100644
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
+++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
@@ -14,7 +14,6 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
packagegroup-agl-image-minimal \
packagegroup-agl-graphical-weston \
- packagegroup-agl-graphical-services \
packagegroup-agl-graphical-multimedia \
"
# FIXME: Removed due to issues building against weston 5.0.0:
diff --git a/meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend b/meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
index 06651fc11..06651fc11 100644
--- a/meta-agl-profile-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
+++ b/meta-agl-core/recipes-support/libsoup/libsoup-2.4_%.bbappend
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
index 6232c4fa4..6232c4fa4 100644
--- a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner/0007-WIP-Initial-LAVA-support.patch
diff --git a/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
new file mode 100644
index 000000000..5033ed7f6
--- /dev/null
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
@@ -0,0 +1,2 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)}
+
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc
index 7a1d2a8f8..1dcbe0b7b 100644
--- a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.%.bbappend
+++ b/meta-agl-core/recipes-support/ptest-runner/ptest-runner_agl.inc
@@ -1,4 +1,3 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
+FILESEXTRAPATHS_prepend := "${THISDIR}/ptest-runner:"
SRC_URI += "file://0007-WIP-Initial-LAVA-support.patch"
diff --git a/meta-agl-distro/scripts/oe-depends-dot b/meta-agl-core/scripts/oe-depends-dot
index 5cec23bf0..5cec23bf0 100755
--- a/meta-agl-distro/scripts/oe-depends-dot
+++ b/meta-agl-core/scripts/oe-depends-dot
diff --git a/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh b/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh
new file mode 100755
index 000000000..93403b974
--- /dev/null
+++ b/meta-agl-core/scripts/run-yocto-check-layer-feature-enabled.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround:
+# ERROR: Nothing PROVIDES 'smack' (but /home/dl9pf/AGL/master-newlayout/external/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+AGL_FEATURES += "aglcore"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ -- \
+ $AGLROOT/meta-agl/meta-agl-core
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+exit 0
+
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
diff --git a/meta-agl-core/scripts/run-yocto-check-layer.sh b/meta-agl-core/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..9082be920
--- /dev/null
+++ b/meta-agl-core/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround:
+# ERROR: Nothing PROVIDES 'smack' (but /home/dl9pf/AGL/master-newlayout/external/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ -- \
+ $AGLROOT/meta-agl/meta-agl-core
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+exit 0
+
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
diff --git a/meta-agl-distro/README b/meta-agl-distro/README
deleted file mode 100644
index 08630b438..000000000
--- a/meta-agl-distro/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This is meta-agl-disto.
-
-This layer holds the distro config(s) in use by AGL.
diff --git a/meta-agl-distro/conf/layer.conf b/meta-agl-distro/conf/layer.conf
deleted file mode 100644
index f8cf50c76..000000000
--- a/meta-agl-distro/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "agl-distro"
-BBFILE_PATTERN_agl-distro = "^${LAYERDIR}/"
-BBFILE_PRIORITY_agl-distro = "70"
-
-LAYERSERIES_COMPAT_agl-distro = "dunfell"
diff --git a/meta-agl-profile-cluster-qt5/LICENSE b/meta-agl-profile-cluster-qt5/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only b/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/LICENSE.MIT b/meta-agl-profile-cluster-qt5/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-cluster-qt5/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster-qt5/conf/layer.conf b/meta-agl-profile-cluster-qt5/conf/layer.conf
deleted file mode 100644
index 6ed7d8ca8..000000000
--- a/meta-agl-profile-cluster-qt5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofileclusterqt5"
-BBFILE_PATTERN_aglprofileclusterqt5 = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofileclusterqt5 = "70"
-
-LAYERSERIES_COMPAT_aglprofileclusterqt5 = "dunfell"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb b/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb
deleted file mode 100644
index 244e2ba48..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic Wayland based cluster image with Qt5 support"
-
-require agl-image-cluster-qt5.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-cluster-qt5 \
- "
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc b/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc
deleted file mode 100644
index 93826aa46..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/images/agl-image-cluster-qt5.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-IMAGE_FEATURES += "splash package-management ssh-server-dropbear"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb b/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
deleted file mode 100644
index 5436a5617..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster profile"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster-qt5 \
- profile-cluster-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-graphical-weston \
- packagegroup-agl-appfw-native-qt5 \
-"
-
-RDEPENDS_profile-cluster-qt5 = "${PN}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb b/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
deleted file mode 100644
index 9d54b33a4..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster qtcompositor"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Demo Qtcompositor Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster-qtcompositor \
- profile-cluster-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-core-connectivity \
-"
-
-QT_LITE = " \
- qtbase \
- qtdeclarative \
- qtwayland \
- qtgraphicaleffects-qmlplugins \
- qtsvg-plugins \
- qtwebsockets \
- qtwebsockets-qmlplugins \
- qtcompositor-conf \
-"
-
-RDEPENDS_${PN}_append = " \
- ${QT_LITE} \
- agl-login-manager \
-"
-
-RDEPENDS_profile-cluster-qt5 = "${PN}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch
deleted file mode 100644
index 5c936e7ae..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0001-fixed-eglfs_kms-fails-to-build.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-537bb3cc027eed14500fe5724ab30f Mon Sep 17 00:00:00 2001
-From: Laszlo Agocs <laszlo.agocs@qt.io>
-Date: Fri, 14 Dec 2018 10:48:43 +0100
-Subject: eglfs: avoid breaking builds without EGL_EXT_platform_base
-
-Change-Id: I9183e17b42c00435f20c00a414e1f20aa3972351
-Fixes: QTBUG-72559
-Reviewed-by: Johan Helsing <johan.helsing@qt.io>
----
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp | 1 -
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp | 4 ++++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-(limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms')
-
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-index 1e4f4e72c8..f154520669 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-@@ -63,7 +63,6 @@ QEglFSKmsGbmIntegration::QEglFSKmsGbmIntegration()
-
- #ifndef EGL_EXT_platform_base
- typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
--typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
- #endif
-
- #ifndef EGL_PLATFORM_GBM_KHR
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-index 65a7c4f38a..a93762e5b4 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
-@@ -45,6 +45,10 @@
-
- QT_BEGIN_NAMESPACE
-
-+#ifndef EGL_EXT_platform_base
-+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
-+#endif
-+
- void QEglFSKmsGbmWindow::resetSurface()
- {
- QEglFSKmsGbmScreen *gbmScreen = static_cast<QEglFSKmsGbmScreen *>(screen());
---
-cgit v1.2.1
-
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch
deleted file mode 100644
index 3c33cfc10..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/files/0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9514c51b5a6881c445586fa3a232ccd47fe4b1e5 Mon Sep 17 00:00:00 2001
-From: Stefan Zehetbauer
-Date: Fri, 14 Dec 2018 13:26:03 +0100
-Subject: [PATCH] fixed invalid conversion from EGLNativeDisplayType to void*
-
----
- .../eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-index d495a8d..34ca9e8 100644
---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
-@@ -82,7 +82,7 @@ EGLDisplay QEglFSKmsGbmIntegration::createDisplay(EGLNativeDisplayType nativeDis
- }
-
- if (getPlatformDisplay) {
-- display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, nativeDisplay, nullptr);
-+ display = getPlatformDisplay(EGL_PLATFORM_GBM_KHR, reinterpret_cast<void *>(&nativeDisplay), nullptr);
- } else {
- qCDebug(qLcEglfsKmsDebug, "No eglGetPlatformDisplay for GBM, falling back to eglGetDisplay");
- display = eglGetDisplay(nativeDisplay);
---
-1.9.1
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend
deleted file mode 100644
index e94ef03ae..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtbase_%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-#Enable eglfs for QT based application
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-# FIXME: Disabled as they do not apply against 5.13.2, and it is
-# unclear if they are still required for building dra7xx-evm,
-# which fails for what looks like a different reason.
-#SRC_URI += " file://0001-fixed-eglfs_kms-fails-to-build.patch \
-# file://0002-fixed-invalid-conversion-from-EGLNativeDisplayType-to-void.patch \
-# "
-
-PACKAGECONFIG_GL_append = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ' eglfs kms gbm', '', d)}"
diff --git a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb b/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb
deleted file mode 100644
index 49111b6e8..000000000
--- a/meta-agl-profile-cluster-qt5/recipes-qt/qt5/qtcompositor-conf_1.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Configuration files for running wayland with a non-weston compositor"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-inherit allarch agl-graphical
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- # Add a rule to ensure the 'display' user has permissions to
- # open the graphics device
- install -d ${D}${sysconfdir}/udev/rules.d
- cat >${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
-SUBSYSTEM=="drm", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*"
-EOF
-
- # user 'display' must also be able to access /dev/input/*
- cat >${D}${sysconfdir}/udev/rules.d/zz-input.rules <<'EOF'
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="^"
-EOF
-
- # user 'display' must also be able to access /dev/media*, etc.
- cat >${D}${sysconfdir}/udev/rules.d/zz-remote-display.rules <<'EOF'
-SUBSYSTEM=="media", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-SUBSYSTEM=="video4linux", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-KERNEL=="uvcs", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-KERNEL=="rgnmm", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-EOF
-}
-
-do_install_append_imx() {
- install -d ${D}${sysconfdir}/udev/rules.d
- cat >>${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
-SUBSYSTEM=="gpu_class", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*"
-EOF
-
-}
-
-RCONFLICTS_${PN} = "weston-init"
diff --git a/meta-agl-profile-cluster/LICENSE b/meta-agl-profile-cluster/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-cluster/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/LICENSE.GPL-2.0-only b/meta-agl-profile-cluster/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-cluster/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/LICENSE.MIT b/meta-agl-profile-cluster/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-cluster/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-cluster/conf/layer.conf b/meta-agl-profile-cluster/conf/layer.conf
deleted file mode 100644
index e71e04c90..000000000
--- a/meta-agl-profile-cluster/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilecluster"
-BBFILE_PATTERN_aglprofilecluster = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilecluster = "70"
-
-LAYERSERIES_COMPAT_aglprofilecluster = "dunfell"
diff --git a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb b/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb
deleted file mode 100644
index 552d7a74e..000000000
--- a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic Wayland based cluster image"
-
-require agl-image-cluster.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-cluster \
- "
diff --git a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc b/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc
deleted file mode 100644
index 93826aa46..000000000
--- a/meta-agl-profile-cluster/recipes-platform/images/agl-image-cluster.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-IMAGE_FEATURES += "splash package-management ssh-server-dropbear"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb b/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb
deleted file mode 100644
index c0c612467..000000000
--- a/meta-agl-profile-cluster/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The middleware for AGL cluster profile"
-DESCRIPTION = "The set of packages required for AGL Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-cluster \
- profile-cluster \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- packagegroup-agl-graphical-weston \
-"
-
-RDEPENDS_profile-cluster = "${PN}"
diff --git a/meta-agl-profile-core/LICENSE b/meta-agl-profile-core/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-core/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/LICENSE.GPL-2.0-only b/meta-agl-profile-core/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-core/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/LICENSE.MIT b/meta-agl-profile-core/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-core/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-core/conf/layer.conf b/meta-agl-profile-core/conf/layer.conf
deleted file mode 100644
index fef746d76..000000000
--- a/meta-agl-profile-core/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilecore"
-BBFILE_PATTERN_aglprofilecore = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilecore = "80"
-
-LAYERSERIES_COMPAT_aglprofilecore = "dunfell"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb
deleted file mode 100644
index bc53051f2..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-map/agl-service-bluetooth-map_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth MAP Service Binding"
-DESCRIPTION = "AGL Bluetooth MAP Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth-map"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth-map;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "bluez5-obex agl-service-bluetooth"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb
deleted file mode 100644
index 3f9ff7be1..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth-pbap/agl-service-bluetooth-pbap_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth PBAP Service Binding"
-DESCRIPTION = "AGL Bluetooth PBAP Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth-pbap"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth-pbap;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "bluez5-obex agl-service-bluetooth agl-service-data-persistence"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb
deleted file mode 100644
index 8cfa8ec8f..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-bluetooth/agl-service-bluetooth_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Bluetooth Service Binding"
-DESCRIPTION = "AGL Bluetooth Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-bluetooth"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-bluetooth;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "agl-service-data-persistence agl-service-network"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb
deleted file mode 100644
index 83f6c1e75..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Low level CAN service"
-DESCRIPTION = "AGL Service application for read and decode CAN messages"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/low-level-can-service"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-can-low-level;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "libafb-helpers libappcontroller"
-
-inherit cmake aglwgt pkgconfig ptest
-
-# For now, just enable J1939 on the qemu platforms where we know the
-# linux-yocto kernel is new enough (>= 5.4) and has the support enabled.
-AGLWGT_CMAKE_CONFIGURE_ARGS_append_qemuall = " -DWITH_FEATURE_J1939=ON"
-
-RDEPENDS_${PN} = "virtual/low-can-dev-mapping"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest
deleted file mode 100644
index cc9c41365..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/files/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-afm-test /usr/AGL/apps/testwgt/low-can-service-test.wgt
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb
deleted file mode 100644
index 569f0707e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-data-persistence/agl-service-data-persistence_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "AGL low level user database binding"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-data-persistence/"
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-data-persistence;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-inherit cmake aglwgt pkgconfig
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS += " af-binder json-c gdbm "
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb
deleted file mode 100644
index a12923247..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-geoclue/agl-service-geoclue_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "GeoClue Service Binding"
-DESCRIPTION = "AGL GeoClue Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-geoclue"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-geoclue;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c geoclue"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb
deleted file mode 100644
index 8bdcd7c93..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-geofence/agl-service-geofence_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Geofence Service Binding"
-DESCRIPTION = "AGL Geofence Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-geofence"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-geofence;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c glib-2.0"
-RDEPENDS_${PN} = "agl-service-gps"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb
deleted file mode 100644
index 254e5e409..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-gps/agl-service-gps_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "GPS/GNSS Service Binding"
-DESCRIPTION = "AGL GPS/GNSS Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-gps"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-gps;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c gpsd"
-RDEPENDS_${PN} = "libgps"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb
deleted file mode 100644
index e4dccbf3d..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac-conf_git.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "HVAC Service Binding Configuration"
-DESCRIPTION = "AGL HVAC Service Binding Configuration"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-hvac"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-hvac;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install () {
- install -D -m 644 ${S}/hvac.json ${D}${sysconfdir}/hvac.json
-}
-
-do_install_append_ulcb() {
- sed -i -e "s#vcan0#sllin0#g" ${D}${sysconfdir}/hvac.json
-}
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb
deleted file mode 100644
index 545ab6a28..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-hvac/agl-service-hvac_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "HVAC Service Binding"
-DESCRIPTION = "AGL HVAC Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-hvac"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-hvac;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c"
-
-inherit cmake aglwgt pkgconfig
-
-RDEPENDS_${PN} += "agl-service-identity-agent agl-service-can-low-level"
-RRECOMMENDS_${PN} += "agl-service-hvac-conf"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb
deleted file mode 100644
index f2474be7b..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-identity-agent/agl-service-identity-agent_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "AGL identity agent binding"
-HOMEPAGE = "https://gitlab.com/iotbzh/aia-binding"
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-identity-agent;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-PV = "1.0+git${SRCPV}"
-
-inherit cmake aglwgt pkgconfig
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "curl af-binder json-c systemd"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb
deleted file mode 100644
index cc893698c..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-iiodevices/agl-service-iiodevices_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "IIODEVICES Service Binding"
-DESCRIPTION = "AGL IIODEVICES Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-iiodevices"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-iiodevices;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c libiio glib-2.0"
-
-RDEPENDS_${PN} = "libiio"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb
deleted file mode 100644
index c50a04804..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-mediascanner/agl-service-mediascanner_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Mediascanner Service Binding"
-DESCRIPTION = "AGL Mediascanner Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-mediascanner"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-mediascanner;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c sqlite3 glib-2.0"
-RDEPENDS_${PN} = "lightmediascanner"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb
deleted file mode 100755
index 71a615cf4..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-navigation/agl-service-navigation_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Navigation Service Binding"
-DESCRIPTION = "AGL Navigation Service API Binding"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "json-c libdbus-c++"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-navigation;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-RDEPENDS_${PN} += "json-c libdbus-c++"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb
deleted file mode 100644
index c7fb72f22..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Network Service Binding"
-DESCRIPTION = "AGL Network Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-network"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-network;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-
-inherit cmake aglwgt pkgconfig
-
-do_install_append() {
- install -d ${D}${sbindir}
- install -m 755 ${B}/build-release/test/agl-service-network-ctl ${D}${sbindir}
-}
-
-FILES_${PN}-tools = "${sbindir}/agl-service-network-ctl"
-PACKAGES_prepend = "${PN}-tools "
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb
deleted file mode 100644
index 1757dcb38..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-nfc/agl-service-nfc_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "agl-service-nfc"
-DESCRIPTION = ""
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-nfc/"
-SECTION = "apps"
-DEPENDS = "af-binder json-c glib-2.0 neardal"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig aglwgt
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-nfc;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb
deleted file mode 100644
index 43eed3f2e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-platform-info/agl-service-platform-info_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Platform info provider binding"
-DESCRIPTION = "AGL Platform info provider binding"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-platform-info/"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-platform-info;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "libafb-helpers"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb
deleted file mode 100644
index bf714f45d..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/agl-service-signal-composer_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "agl-service-signal-composer"
-DESCRIPTION = "AGL High Level Signaling service to handle CAN, LIN, and others signaling sources"
-HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-signal-composer/"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig aglwgt ptest
-
-DEPENDS += "lua lua-native libappcontroller libafb-helpers"
-RDEPENDS_${PN} += "lua"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-signal-composer;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest b/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest
deleted file mode 100644
index 49187ad85..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-signal-composer/files/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-afm-test /usr/AGL/apps/testwgt/signal-composer-test.wgt
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb
deleted file mode 100644
index ff3913643..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-telephony/agl-service-telephony_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Telephony Service Binding"
-DESCRIPTION = "AGL Telephony Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-telephony"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-telephony;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c glib-2.0"
-RDEPENDS_${PN} = "ofono"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb
deleted file mode 100644
index 85ebc90f6..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-unicens-controller/agl-service-unicens-controller_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Infotainment network device control"
-DESCRIPTION = "Abstraction layer to control INICnet devices"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens-controller"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-unicens-controller;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-DEPENDS += "json-c af-binder libafb-helpers"
-RDEPENDS_${PN} += "agl-service-unicens"
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb
deleted file mode 100644
index e7e25c74e..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-unicens/agl-service-unicens_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "4A - Infotainment network setup and access"
-DESCRIPTION = "Infotainment network setup and access (using Unified Centralized Network Stack)"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-unicens;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "0.1+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-inherit cmake aglwgt pkgconfig
-
-DEPENDS += "alsa-lib json-c systemd af-binder glib-2.0 libxml2 libafb-helpers"
-RDEPENDS_${PN} += "libxml2 "
-
diff --git a/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb
deleted file mode 100644
index 75532da42..000000000
--- a/meta-agl-profile-core/recipes-apis/agl-service-weather/agl-service-weather_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Weather Service Binding"
-DESCRIPTION = "AGL Weather Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-weather"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-weather;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 json-c"
-RDEPENDS_${PN} = "agl-service-geoclue"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb b/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb
deleted file mode 100644
index 49efce796..000000000
--- a/meta-agl-profile-core/recipes-config/agl-login-manager/agl-login-manager_0.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "AGL Login manager"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-LOGIN_USER ??="1001 1002"
-
-RDEPENDS_${PN} += "af-main"
-
-do_install_append() {
-
- install -d ${D}${systemd_system_unitdir}/multi-user.target.wants/
-
- for AGL_USER in ${LOGIN_USER};do
- ln -s ../afm-user-session@.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-user-session@${AGL_USER}.service
- done
-}
-
-FILES_${PN} += "${systemd_system_unitdir}"
diff --git a/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb b/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb
deleted file mode 100644
index 709a1091f..000000000
--- a/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-inherit allarch useradd
-
-SUMMARY = "AGL Users Seed"
-DESCRIPTION = "This is a core framework component that\
- defines how users are managed and who are the default users."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-ALLOW_EMPTY_${PN} = "1"
-
-USERADD_PACKAGES = "${PN}"
-
-USERADDEXTENSION = "useradd-staticids"
-
-GROUPADD_PARAM_${PN} = "\
- --system display ; \
- --system weston-launch ; \
- -g 1001 agl-driver ; \
- -g 1002 agl-passenger \
-"
-
-USERADD_PARAM_${PN} = "\
- -g 1001 -u 1001 -o -d /home/1001 -m -K PASS_MAX_DAYS=-1 agl-driver ; \
- -g 1002 -u 1002 -o -d /home/1002 -m -K PASS_MAX_DAYS=-1 agl-passenger ; \
- --gid display --groups weston-launch,video,input --home-dir /run/platform/display --shell /bin/false --comment \"Display daemon\" --key PASS_MAX_DAYS=-1 display \
-"
diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default
deleted file mode 100644
index 7bd8bf2eb..000000000
--- a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default
+++ /dev/null
@@ -1,6 +0,0 @@
-; Default CAN device mapping
-; Format has to follow ini rules key="value", notice " around value.
-
-[CANbus-mapping]
-hs="can0"
-ls="can0"
diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb
deleted file mode 100644
index 1309ffa20..000000000
--- a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "AGL Device mapping configuration file"
-DESCRIPTION = "This provide default dev-mapping.conf file \
- that defines mapping between kernel device and logical name \
- used in low-can binding by example."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-SRC_URI += "file://dev-mapping.conf.default"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/dev-mapping.conf.default ${D}${sysconfdir}/dev-mapping.conf
-}
-
-RPROVIDES_${PN} = "virtual/low-can-dev-mapping"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb
deleted file mode 100644
index 010329ee7..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Bluetooth Audio ALSA Backend"
-HOMEPAGE = "https://github.com/Arkq/bluez-alsa"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7d6ac7e2dbd2505652dceb3acdf1fe"
-
-SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master"
-SRCREV = "2cd6e4686f7808276480b430fb37df55dfdcc02b"
-
-SRC_URI += "file://bluez-alsa.service"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "alsa-lib bluez5 systemd glib-2.0 sbc"
-
-PACKAGECONFIG[aac] = "--enable-aac, --disable-aac, "
-PACKAGECONFIG[aptx] = "--enable-aptx,--disable-aptx,"
-PACKAGECONFIG[ofono] = "--enable-ofono, --disable-ofono,"
-
-inherit autotools pkgconfig
-inherit systemd
-
-SYSTEMD_AUTO_ENABLE = "enable"
-SYSTEMD_SERVICE_${PN} = "bluez-alsa.service"
-
-PACKAGECONFIG += "ofono"
-
-# enable debug tools in devel images
-PACKAGECONFIG[hcitop] = "--enable-hcitop, --disable-hcitop, libbsd ncurses"
-PACKAGECONFIG[rfcomm] = "--enable-rfcomm, --disable-rfcomm,"
-PACKAGECONFIG_append_agl-devel = " hcitop rfcomm"
-
-do_install_append () {
- install -d ${D}${base_libdir}/systemd/system
- install -m 0644 ${WORKDIR}/bluez-alsa.service ${D}${base_libdir}/systemd/system
-}
-
-FILES_${PN} += "\
- ${datadir}/alsa/alsa.conf.d/20-bluealsa.conf\
- ${libdir}/alsa-lib/libasound_module_ctl_bluealsa.so\
- ${libdir}/alsa-lib/libasound_module_pcm_bluealsa.so\
-"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service
deleted file mode 100644
index b59302ee4..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Bluetooth Audio ALSA Backend
-After=bluetooth.service
-Requires=bluetooth.service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/bluealsa -p a2dp-sink -p hfp-ofono
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf
deleted file mode 100644
index 1f2762de7..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-<!-- This configuration file specifies the required security policies
- for Bluetooth core daemon to work. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
-
- <!-- ../system.conf have denied everything, so we just punch some holes -->
-
- <policy user="root">
- <allow own="org.bluez"/>
- <allow send_destination="org.bluez"/>
- <allow send_interface="org.bluez.Agent1"/>
- <allow send_interface="org.bluez.MediaEndpoint1"/>
- <allow send_interface="org.bluez.MediaPlayer1"/>
- <allow send_interface="org.bluez.ThermometerWatcher1"/>
- <allow send_interface="org.bluez.AlertAgent1"/>
- <allow send_interface="org.bluez.Profile1"/>
- <allow send_interface="org.bluez.HeartRateWatcher1"/>
- <allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
- <allow send_interface="org.bluez.GattCharacteristic1"/>
- <allow send_interface="org.bluez.GattDescriptor1"/>
- <allow send_interface="org.freedesktop.DBus.ObjectManager"/>
- <allow send_interface="org.freedesktop.DBus.Properties"/>
- <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.Properties"/>
- <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.ObjectManager"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.bluez"/>
- </policy>
-
- <!-- allow users of lp group (printing subsystem) to
- communicate with bluetoothd -->
- <policy group="lp">
- <allow send_destination="org.bluez"/>
- </policy>
-
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service
deleted file mode 100644
index 8ae83bd48..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Bluetooth service
-Documentation=man:bluetoothd(8)
-ConditionPathIsDirectory=/sys/class/bluetooth
-
-[Service]
-Type=dbus
-BusName=org.bluez
-ExecStartPre=-/usr/bin/hciconfig hci0 aclmtu 930:10
-ExecStart=/usr/libexec/bluetooth/bluetoothd
-NotifyAccess=main
-#WatchdogSec=10
-#Restart=on-failure
-CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
-LimitNPROC=1
-ProtectHome=true
-ProtectSystem=full
-
-[Install]
-WantedBy=bluetooth.target
-Alias=dbus-org.bluez.service
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service
deleted file mode 100644
index 87ffff6ae..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/obex.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Bluetooth OBEX service
-
-[Service]
-Type=dbus
-BusName=org.bluez.obex
-ExecStart=/usr/libexec/bluetooth/obexd --root=/var/volatile/tmp
-
-[Install]
-Alias=dbus-org.bluez.obex.service
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf
deleted file mode 100644
index 8545d76ec..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/tmpdir.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-Environment="TMPDIR=/run/user/%U/usrshr"
diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend
deleted file mode 100644
index 52ae30bc5..000000000
--- a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ /dev/null
@@ -1,24 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-SRC_URI_append = " \
- file://bluetooth.conf \
- file://tmpdir.conf \
- file://obex.service \
- file://bluetooth.service \
-"
-
-FILES_${PN} += "${systemd_user_unitdir}/obex.service.d/tmpdir.conf"
-
-do_install_append() {
- install -m 0644 ${WORKDIR}/bluetooth.conf ${D}${sysconfdir}/dbus-1/system.d/bluetooth.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- mkdir -p ${D}${systemd_user_unitdir}/obex.service.d
-
- install -m 0644 ${WORKDIR}/obex.service ${D}${systemd_user_unitdir}
- install -m 0644 ${WORKDIR}/tmpdir.conf ${D}${systemd_user_unitdir}/obex.service.d/tmpdir.conf
- mkdir -p ${D}/etc/systemd/user
- ln -sf ${systemd_user_unitdir}/obex.service ${D}/etc/systemd/user/dbus-org.bluez.obex.service
- mkdir -p ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/bluetooth.service ${D}${systemd_system_unitdir}
- fi
-}
diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend b/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend
deleted file mode 100644
index 198b651dd..000000000
--- a/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC_URI += "file://enable-wget-https.cfg"
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch b/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch
deleted file mode 100644
index c32951693..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/files/0001-systemd-neard-add-multi-user.target-to-neard.service.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d8c03a31e2734e59af43dd50cbd7f5a94d798ab1 Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Tue, 10 Jul 2018 21:18:26 -0700
-Subject: [PATCH] systemd: neard: add multi-user.target to neard.service
-
-Allowing a service to be system level requires a WantedBy= target
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/neard.service.in | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/neard.service.in b/src/neard.service.in
-index dfa238c..540da7e 100644
---- a/src/neard.service.in
-+++ b/src/neard.service.in
-@@ -9,4 +9,5 @@ ExecStart=@pkglibexecdir@/neard -n
- LimitNPROC=1
-
- [Install]
-+WantedBy=multi-user.target
- Alias=dbus-org.neard.service
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch b/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch
deleted file mode 100644
index 49c11a509..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/files/0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d7ea2a00e00795ad24897e3481b015a27d37d60f Mon Sep 17 00:00:00 2001
-From: Raquel Medina <raquel.medina@konsulko.com>
-Date: Tue, 22 Jan 2019 09:00:05 -0500
-Subject: [PATCH] ndef: avoid dbus property_get_type method on empty record
-
-Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
----
- src/ndef.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/ndef.c b/src/ndef.c
-index 5656baf..883c6f4 100644
---- a/src/ndef.c
-+++ b/src/ndef.c
-@@ -2832,10 +2832,14 @@ GList *near_ndef_parse_msg(uint8_t *ndef_data, size_t ndef_length,
- case RECORD_TYPE_WKT_ALTERNATIVE_CARRIER:
- case RECORD_TYPE_WKT_COLLISION_RESOLUTION:
- case RECORD_TYPE_WKT_ERROR:
-- case RECORD_TYPE_UNKNOWN:
- case RECORD_TYPE_ERROR:
- break;
-
-+ case RECORD_TYPE_UNKNOWN:
-+ if (record->header->tnf == RECORD_TNF_EMPTY)
-+ goto fail;
-+ break;
-+
- case RECORD_TYPE_WKT_HANDOVER_REQUEST:
- case RECORD_TYPE_WKT_HANDOVER_SELECT:
- /*
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend b/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend
deleted file mode 100644
index 64a044cb5..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neard/neard_0.16.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI_append = "\
- file://0001-systemd-neard-add-multi-user.target-to-neard.service.patch \
- file://0002-ndef-avoid-dbus-property_get_type-method-on-empty-re.patch \
- "
-SYSTEMD_SERVICE_${PN} = "neard.service"
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc b/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc
deleted file mode 100644
index 3bb6b24ec..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Neard Abstraction Library (NeardAL)"
-
-DESCRIPTION = "NeardAL is a library that provides a simple C API \
-to exchange data with NFC daemon (Neard)."
-
-HOMEPAGE = "https://github.com/connectivity/neardal"
-SECTION = "libs"
-LICENSE = "LGPLv2"
-
-DEPENDS = "glib-2.0 readline glib-2.0-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
- file://lib/neardal.h;endline=20;md5=a53e93aea9357387078ed217565c0a99"
-
-inherit autotools pkgconfig
-
-PACKAGES =+ "${PN}-tools ${PN}-tools-dbg"
-
-FILES_${PN}-tools = "${libexecdir}/ncl"
-FILES_${PN}-tools-dbg += "${libexecdir}/.debug"
-
-RDEPENDS_${PN}-tools = "bash"
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch
deleted file mode 100644
index 596fe0579..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 795308b2452ee617da4096914b53ba3a1142e3db Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Fri, 6 Jul 2018 17:19:09 -0700
-Subject: [PATCH] neardal: ncl: fix segfault on help page being displayed
-
-LISTCMD_NAME is declared as a const char due to being defined in a
-macro so g_strdup it to stop proceeding operations from segfaulting.
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
-
----
- ncl/ncl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ncl/ncl.c b/ncl/ncl.c
-index 590d13b..f4165b7 100644
---- a/ncl/ncl.c
-+++ b/ncl/ncl.c
-@@ -329,7 +329,7 @@ int main(int argc, char *argv[])
- g_io_channel_unref(gNclCtx.channel);
-
- if (show_help)
-- ncl_exec(LISTCMD_NAME);
-+ ncl_exec(g_strdup(LISTCMD_NAME));
-
- rl_callback_handler_install(NCL_PROMPT, ncl_parse_line);
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch
deleted file mode 100644
index d40d9a4fe..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/0002-neardal-lib-fix-memory-corruption.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From ee6267f357b3d158f0a0e88460782e8b9d44274a Mon Sep 17 00:00:00 2001
-From: Raquel Medina <raquel.medina@konsulko.com>
-Date: Fri, 4 Jan 2019 07:43:03 -0500
-Subject: [PATCH] neardal: lib: fix memory corruption
-
- The current commit fixes an invalid memory access
- which manifests as a random segfault when executing
- continuous tag read operations.
-
- The corruption happens when releasing the memory allocated to a
- record: in the time between the memory being g_free'd and the
- subsequent memset operation, the memory could have been reused by
- some other process. And since memory allocation depends on
- system-wide factors, it makes this bug hard to track.
-
- Tested using ACR122U reader and NTAG213
- tags on Automotive Grade Linux (flounder,
- guppy and master branches)
-
-Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
----
- lib/neardal_record.c | 1 -
- lib/neardal_tools.c | 5 ++++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/lib/neardal_record.c b/lib/neardal_record.c
-index 669012c..cfed5e8 100644
---- a/lib/neardal_record.c
-+++ b/lib/neardal_record.c
-@@ -31,7 +31,6 @@ void neardal_record_free(neardal_record *r)
- {
- g_return_if_fail(r);
- neardal_g_strfreev((void **) r, &r->uriObjSize);
-- memset(r, 0, sizeof(*r));
- }
-
- void neardal_free_record(neardal_record *record) \
-diff --git a/lib/neardal_tools.c b/lib/neardal_tools.c
-index f0d6157..f307df6 100644
---- a/lib/neardal_tools.c
-+++ b/lib/neardal_tools.c
-@@ -32,9 +32,12 @@
- void neardal_g_strfreev(void **array, void *end)
- {
- void **p = array;
-- for (; (void *) p < end; p++)
-+ for (; (void *) p < end; p++) {
- g_free(*p);
-+ *p = NULL;
-+ }
- g_free(array);
-+ array = NULL;
- }
-
- void neardal_g_variant_add_parsed(GVariant **v, const char *format, ...)
---
-2.17.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch b/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch
deleted file mode 100644
index baef6ccaa..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal/ncl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From eab402bae42c3ea5caa8d540b6702d39e56c84c1 Mon Sep 17 00:00:00 2001
-From: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
-Date: Tue, 10 Feb 2015 12:58:39 +0200
-Subject: [PATCH] build: Install ncl
-
-Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
----
- ncl/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ncl/Makefile.am b/ncl/Makefile.am
-index beda75b..c06742f 100644
---- a/ncl/Makefile.am
-+++ b/ncl/Makefile.am
-@@ -1,6 +1,6 @@
- AM_CPPFLAGS = @gio_CFLAGS@ -I$(top_builddir)/lib -I$(top_srcdir)/lib
-
--noinst_PROGRAMS=ncl
-+libexec_PROGRAMS = ncl
-
- ncl_SOURCES = \
- $(srcdir)/ncl.c $(srcdir)/ncl.h \
---
-2.1.0
-
diff --git a/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb b/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb
deleted file mode 100644
index f8634c468..000000000
--- a/meta-agl-profile-core/recipes-connectivity/neardal/neardal_0.14.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require neardal.inc
-
-SRC_URI = "git://github.com/connectivity/neardal.git;protocol=https \
- file://ncl.patch \
- file://0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch \
- file://0002-neardal-lib-fix-memory-corruption.patch \
- "
-SRCREV = "fe0fa79c94e9a0f1c2cfa1f58b3acc9bdc7d5e13"
-
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch b/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch
deleted file mode 100644
index 7b44e483e..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/files/0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7782f8f9d9634ebeddafefedab10ba254f9cc34a Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Fri, 1 Mar 2019 17:53:17 +0900
-Subject: [PATCH] provision: allow duplicate entries from mbpi_lookup_apn()
- results
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- plugins/provision.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/provision.c b/plugins/provision.c
-index 99c299eb..aa0b05e4 100644
---- a/plugins/provision.c
-+++ b/plugins/provision.c
-@@ -50,7 +50,7 @@ static int provision_get_settings(const char *mcc, const char *mnc,
-
- DBG("Provisioning for MCC %s, MNC %s, SPN '%s'", mcc, mnc, spn);
-
-- apns = mbpi_lookup_apn(mcc, mnc, FALSE, &error);
-+ apns = mbpi_lookup_apn(mcc, mnc, TRUE, &error);
- if (apns == NULL) {
- if (error != NULL) {
- ofono_error("%s", error->message);
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf b/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf
deleted file mode 100644
index e47214c76..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/files/ofono.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- This configuration file specifies the required security policies
- for oFono core daemon to work. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
-
- <!-- ../system.conf have denied everything, so we just punch some holes -->
-
- <policy user="root">
- <allow own="org.ofono"/>
- <allow send_destination="org.ofono"/>
- <allow send_interface="org.ofono.Manager"/>
- <allow send_interface="org.ofono.SimToolkitAgent"/>
- <allow send_interface="org.ofono.PushNotificationAgent"/>
- <allow send_interface="org.ofono.SmartMessagingAgent"/>
- <allow send_interface="org.ofono.PositioningRequestAgent"/>
- <allow send_interface="org.ofono.HandsfreeAudioAgent"/>
- <allow send_interface="org.ofono.Modem"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.ofono"/>
- </policy>
-
- <policy context="default">
- <deny send_destination="org.ofono"/>
- </policy>
-
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend b/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend
deleted file mode 100644
index b02d6ee22..000000000
--- a/meta-agl-profile-core/recipes-connectivity/ofono/ofono_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-SRC_URI_append = "\
- file://ofono.conf \
- file://0001-provision-allow-duplicate-entries-from-mbpi_lookup_a.patch \
- "
-
-do_install_append() {
- install -m 0644 ${WORKDIR}/ofono.conf ${D}${sysconfdir}/dbus-1/system.d/ofono.conf
-}
-
-SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch
deleted file mode 100644
index 86b7392df..000000000
--- a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3aeaf8054fcb2617ca8f6196ca32be3e69337f77 Mon Sep 17 00:00:00 2001
-From: Martin Kelly <mkelly@xevo.com>
-Date: Fri, 21 Apr 2017 10:29:19 -0700
-Subject: [PATCH] remove -I/usr/include in pkg-config
-
-This shouldn't be necessary as it's part of the default compiler include
-paths anyway. Morever, it can cause GCC 6 C++ build failures in
-downstream packages when combined with QMake (such as
-qtmultimedia-rtlfm-radio-plugin).
-
-Fix these issues by removing it.
-
-Upstream-Status: Inappropriate [disable-feature]
-
-This patch should not go upstream because it breaks the ability to build
-with --prefix. That's not a problem for Openembedded, but it is for
-upstream more generally. See this mail thread for more information:
-
-http://lists.osmocom.org/pipermail/osmocom-sdr/2017-April/001580.html
-
-Signed-off-by: Martin Kelly <mkelly@xevo.com>
----
- librtlsdr.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
-index 5e55049..84b6d0c 100644
---- a/librtlsdr.pc.in
-+++ b/librtlsdr.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: RTL-SDR Library
- Description: C Utility Library
- Version: @VERSION@
--Cflags: -I${includedir}/ @RTLSDR_PC_CFLAGS@
-+Cflags: @RTLSDR_PC_CFLAGS@
- Libs: -L${libdir} -lrtlsdr -lusb-1.0
- Libs.private: @RTLSDR_PC_LIBS@
---
-2.1.4
-
diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb
deleted file mode 100644
index b442d9f46..000000000
--- a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Turns a Realtek RTL2832U-based DVB dongle into a SDR receiver"
-DESCRIPTION = "DVB-T dongles based on the Realtek RTL2832U chipset can be used as Software Digital Radio adapters, since the chip allows transferring raw I/Q samples to the host, which is really used for DAB/DAB+/FM demodulation."
-HOMEPAGE = "http://sdr.osmocom.org/trac/wiki/rtl-sdr"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://src/librtlsdr.c;endline=18;md5=1b05599c3ebd4d74857a0a7c45f3d4ef"
-
-DEPENDS = "libusb1"
-
-SRC_URI = "git://git.osmocom.org/rtl-sdr \
- file://0001-remove-I-usr-include-in-pkg-config.patch \
- "
-SRCREV = "e3c03f738f5aef4dc51e2b741fbdb542b9cc1bb1"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-driver-detach"
-
-do_configure_append() {
- # remove included temporary path from pc file due to pass-through of OE CFLAGS
- # debug-prefix-map
- # See: http://lists.openembedded.org/pipermail/openembedded-devel/2016-May/107456.html
- sed -i -e "s# -fdebug-prefix-map=.*##g;s# -fmacro-prefix-map=.*##g" librtlsdr.pc
-}
-
-do_install_append() {
- install -D -m 0644 ${S}/rtl-sdr.rules ${D}${sysconfdir}/udev/rules.d/55-rtl-sdr.rules
- sed -i 's/MODE:="0666"/GROUP="audio", MODE="0660", SECLABEL{smack}="*"/' \
- ${D}${sysconfdir}/udev/rules.d/55-rtl-sdr.rules
-}
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service
deleted file mode 100644
index dee6ad741..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=D-Bus User Message Bus
-Documentation=man:dbus-daemon(1)
-Requires=dbus.socket
-
-[Service]
-ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
-ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
-Restart=always
-RestartSec=1
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket
deleted file mode 100644
index af76b2f12..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus.socket
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=D-Bus User Message Bus Socket
-Before=sockets.target
-
-[Socket]
-ListenStream=%t/bus
-
-[Install]
-WantedBy=default.target
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf b/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf
deleted file mode 100644
index f8f02669b..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/dbus_env.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-[Unit]
-Wants=dbus.service
-
-[Service]
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/bus
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch b/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch
deleted file mode 100644
index c4fafef62..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus/libdbus-c++/dbus-c++-threading.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h.threading 2017-02-15 13:40:53.796004263 +0000
-+++ libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h 2017-02-15 13:40:46.907000493 +0000
-@@ -188,6 +188,7 @@
- /* classes for multithreading support
- */
-
-+#if 0
- class DXXAPI Mutex
- {
- public:
-@@ -243,9 +244,11 @@
- typedef bool (*CondVarWaitTimeoutFn)(CondVar *cv, Mutex *mx, int timeout);
- typedef void (*CondVarWakeOneFn)(CondVar *cv);
- typedef void (*CondVarWakeAllFn)(CondVar *cv);
-+#endif
-
- void DXXAPI _init_threading();
-
-+#if 0
- void DXXAPI _init_threading(
- MutexNewFn, MutexFreeFn, MutexLockFn, MutexUnlockFn,
- CondVarNewFn, CondVarFreeFn, CondVarWaitFn, CondVarWaitTimeoutFn, CondVarWakeOneFn, CondVarWakeAllFn
-@@ -312,6 +315,7 @@
- cv->wake_all();
- }
- };
-+#endif
-
- } /* namespace DBus */
-
---- libdbus-c++-0.9.0/src/dispatcher.cpp.threading 2017-02-15 13:48:22.627249868 +0000
-+++ libdbus-c++-0.9.0/src/dispatcher.cpp 2017-02-15 13:48:29.164253445 +0000
-@@ -253,6 +253,7 @@
- #endif//DBUS_HAS_THREADS_INIT_DEFAULT
- }
-
-+#if 0
- void DBus::_init_threading(
- MutexNewFn m1,
- MutexFreeFn m2,
-@@ -318,3 +319,4 @@
- #endif//DBUS_HAS_RECURSIVE_MUTEX
- dbus_threads_init(&functions);
- }
-+#endif
diff --git a/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend b/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend
deleted file mode 100644
index 379c5435e..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/dbus_%.bbappend
+++ /dev/null
@@ -1,28 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/dbus"
-
-SRC_URI += "file://dbus.service \
- file://dbus.socket \
- file://dbus_env.conf \
- "
-
-inherit systemd
-
-do_install_append() {
- if [ "${PN}" != "nativesdk-dbus" ]; then
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -m 644 -p -D ${WORKDIR}/dbus.service ${D}${systemd_user_unitdir}/dbus.service
- install -m 644 -p -D ${WORKDIR}/dbus.socket ${D}${systemd_user_unitdir}/dbus.socket
- install -m 644 -p -D ${WORKDIR}/dbus_env.conf ${D}${systemd_system_unitdir}/user@.service.d/dbus_env.conf
-
- # Execute these manually on behalf of systemctl script (from systemd-systemctl-native.bb)
- # because it does not support systemd's user mode.
- mkdir -p ${D}/etc/systemd/user/default.target.wants/
- ln -sf ${systemd_user_unitdir}/dbus.socket ${D}/etc/systemd/user/default.target.wants/dbus.socket
- fi
- fi
-}
-
-FILES_${PN} += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/dbus.*', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/user@.service.d/dbus_env.conf', '', d)} \
- "
diff --git a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch b/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch
deleted file mode 100644
index c4fafef62..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++/dbus-c++-threading.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h.threading 2017-02-15 13:40:53.796004263 +0000
-+++ libdbus-c++-0.9.0/include/dbus-c++/dispatcher.h 2017-02-15 13:40:46.907000493 +0000
-@@ -188,6 +188,7 @@
- /* classes for multithreading support
- */
-
-+#if 0
- class DXXAPI Mutex
- {
- public:
-@@ -243,9 +244,11 @@
- typedef bool (*CondVarWaitTimeoutFn)(CondVar *cv, Mutex *mx, int timeout);
- typedef void (*CondVarWakeOneFn)(CondVar *cv);
- typedef void (*CondVarWakeAllFn)(CondVar *cv);
-+#endif
-
- void DXXAPI _init_threading();
-
-+#if 0
- void DXXAPI _init_threading(
- MutexNewFn, MutexFreeFn, MutexLockFn, MutexUnlockFn,
- CondVarNewFn, CondVarFreeFn, CondVarWaitFn, CondVarWaitTimeoutFn, CondVarWakeOneFn, CondVarWakeAllFn
-@@ -312,6 +315,7 @@
- cv->wake_all();
- }
- };
-+#endif
-
- } /* namespace DBus */
-
---- libdbus-c++-0.9.0/src/dispatcher.cpp.threading 2017-02-15 13:48:22.627249868 +0000
-+++ libdbus-c++-0.9.0/src/dispatcher.cpp 2017-02-15 13:48:29.164253445 +0000
-@@ -253,6 +253,7 @@
- #endif//DBUS_HAS_THREADS_INIT_DEFAULT
- }
-
-+#if 0
- void DBus::_init_threading(
- MutexNewFn m1,
- MutexFreeFn m2,
-@@ -318,3 +319,4 @@
- #endif//DBUS_HAS_RECURSIVE_MUTEX
- dbus_threads_init(&functions);
- }
-+#endif
diff --git a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend b/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend
deleted file mode 100644
index dac44b5e6..000000000
--- a/meta-agl-profile-core/recipes-core/dbus/libdbus-c++_0.9.0.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-SRC_URI_append = "file://dbus-c++-threading.patch"
diff --git a/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb b/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb
deleted file mode 100644
index 823cc28a1..000000000
--- a/meta-agl-profile-core/recipes-core/distro-build-manifest/distro-build-manifest.bb
+++ /dev/null
@@ -1,164 +0,0 @@
-SUMMARY = "Distribution build manifest"
-DESCRIPTION = "The folder /etc/platform-info contains build manifest (SPEC-720)."
-LICENSE = "MIT"
-
-# information distributed by the package is machine specific
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-# dependencies of ${DISTRO_MANIFEST_GENERATOR}
-DEPENDS = "coreutils-native bash-native git-native gawk-native sed-native jq-native"
-
-# force a rebuild everytime a build is started
-do_compile[nostamp] = "1"
-
-# borrowed to os-release.bb (output format is very close)
-python do_compilestep1 () {
- import shutil
- with open(d.expand('${B}/bbinfo-deploy'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_DEPLOY').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[deploy]="%s"' % ' '.join(allkeys))
-
- with open(d.expand('${B}/bbinfo-target'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_TARGET').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[target]="%s"' % ' '.join(allkeys))
-
- with open(d.expand('${B}/bbinfo-sdk'),'w') as f:
- allkeys=[]
- for field in d.getVar('BUILD_MANIFEST_FIELDS_SDK').split():
- key='DIST_BB_{0}'.format(field)
- allkeys.append(key)
- value=d.getVar(field)
- if value:
- f.write('{0}="{1}"\n'.format(key,value))
- f.write('declare -A BITBAKE_VARS\nBITBAKE_VARS[sdk]="%s"' % ' '.join(allkeys))
-}
-
-do_compilestep2 () {
- rc=99
- timestamp=${DATETIME}
- outfile=${B}/build-info
- if [ -x "${DISTRO_MANIFEST_GENERATOR}" -a -f "${DISTRO_SETUP_MANIFEST}" ]; then
- rc=0
- for format in bash json; do
- if [ "$format" = "json" ]; then
- ext=".json"
- else
- ext=""
- fi
- for mode in deploy target sdk; do
- ${DISTRO_MANIFEST_GENERATOR} -m $mode -f $format -t $timestamp -s ${B}/bbinfo-${mode} ${DISTRO_SETUP_MANIFEST} >${outfile}-${mode}${ext}
- rc=$?
- if [ $rc -ne 0 ]; then
- break
- fi
- done
- done
- else
- if [ -z "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "The name of the generation script is not defined."
- elif [ ! -f "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "Generation script ${DISTRO_MANIFEST_GENERATOR} is missing."
- elif [ ! -x "${DISTRO_MANIFEST_GENERATOR}" ]; then
- echo "Generation script ${DISTRO_MANIFEST_GENERATOR} isn't executable."
- fi
- if [ -z "${DISTRO_SETUP_MANIFEST}" ]; then
- echo "The name of the data file is not defined."
- elif [ ! -f "${DISTRO_SETUP_MANIFEST}" ]; then
- echo "Data file ${DISTRO_SETUP_MANIFEST} is missing."
- fi
- echo "You can try to rerun aglsetup.sh to solve that issue."
- echo "You can also try to source agl-init-build-env instead of oe-init-build-env."
- fi
-
- if [ "$rc" -ne 0 ]; then
- echo "distro-build-manifest generation failed."
- fi
- return $rc
-}
-
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_DEPLOY}"
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_TARGET}"
-do_compilestep1[vardeps] += " ${BUILD_MANIFEST_FIELDS_SDK}"
-
-# avoid errors "ERROR: When reparsing .../distro-build-manifest/distro-build-manifest.bb.do_compile, the basehash value changed from .... to .... . The metadata is not deterministic and this needs to be fixed."
-do_compilestep2[vardepsexclude] = "DATETIME"
-
-# combine the two steps
-python do_compile() {
- bb.build.exec_func("do_compilestep1",d)
- bb.build.exec_func("do_compilestep2",d)
-}
-
-do_install () {
- # install in target dir
- install -d ${D}${sysconfdir}/platform-info
- install -m 0644 build-info-target ${D}${sysconfdir}/platform-info/build
- install -m 0644 build-info-target.json ${D}${sysconfdir}/platform-info/build.json
-
- # also copy in deploy dir
- install -d ${DEPLOY_DIR_IMAGE}
- install -m 0644 build-info-deploy ${DEPLOY_DIR_IMAGE}/build-info
- install -m 0644 build-info-deploy.json ${DEPLOY_DIR_IMAGE}/build-info.json
-
- # copy into sdk deploy dir
- install -d ${DEPLOY_DIR}/sdk
- install -m 0644 build-info-sdk ${DEPLOY_DIR}/sdk/${SDK_NAME}.build-info
- install -m 0644 build-info-sdk.json ${DEPLOY_DIR}/sdk/${SDK_NAME}.build-info.json
-
- # and copy to nativesdk package
- # TODO
-}
-
-# list of variables to add to the various manifests
-# smalles one is 'target', then 'deploy' and finally 'sdk'
-BUILD_MANIFEST_FIELDS_TARGET = "\
- MACHINE_ARCH \
- MACHINEOVERRIDES \
- MACHINE_FEATURES \
- DISTRO_CODENAME \
- DISTRO_FEATURES \
- DISTRO_BRANCH_VERSION_TAG \
- AGLVERSION \
- AGL_BRANCH \
- AGLRELEASETYPE \
-"
-
-BUILD_MANIFEST_FIELDS_DEPLOY = "\
- ${BUILD_MANIFEST_FIELDS_TARGET} \
- DISTRO \
- DISTRO_VERSION \
- DISTROOVERRIDES \
- TUNE_FEATURES \
- TUNE_PKGARCH \
- ALL_MULTILIB_PACKAGE_ARCHS \
-"
-
-BUILD_MANIFEST_FIELDS_SDK = "\
- ${BUILD_MANIFEST_FIELDS_DEPLOY} \
- HOST_SYS \
- TARGET_SYS \
- TARGET_VENDOR \
- SDK_ARCH \
- SDK_VENDOR \
- SDK_VERSION \
- SDK_OS \
-"
-
-# dont exec useless tasks
-do_fetch[noexec] = "1"
-do_unpack[noexec] = "1"
-do_patch[noexec] = "1"
-do_configure[noexec] = "1"
-
diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
deleted file mode 100644
index 301a1d573..000000000
--- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-RDEPENDS_${PN}_remove_sota = "systemtap"
diff --git a/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h b/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h
deleted file mode 100644
index 447490397..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/files/psplash-colors.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * pslash - a lightweight framebuffer splashscreen for embedded devices.
- *
- * Copyright (c) 2012 sleep(5) ltd
- * Author: Tomas Frydrych <tomas@sleepfive.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _HAVE_PSPLASH_COLORS_H
-#define _HAVE_PSPLASH_COLORS_H
-
-/* This is the overall background color */
-#define PSPLASH_BACKGROUND_COLOR 0xff,0xff,0xff
-
-/* This is the color of any text output */
-#define PSPLASH_TEXT_COLOR 0x00,0x00,0x00
-
-/* This is the color of the progress bar indicator */
-#define PSPLASH_BAR_COLOR 0x00,0x00,0x00
-
-/* This is the color of the progress bar background */
-#define PSPLASH_BAR_BACKGROUND_COLOR 0xff,0xff,0xff
-
-#endif
diff --git a/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h b/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h
deleted file mode 100644
index c0e8b0818..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/files/psplash-poky-img.h
+++ /dev/null
@@ -1,5411 +0,0 @@
-/* GdkPixbuf RGB C-Source image dump 1-byte-run-length-encoded */
-
-#define POKY_IMG_ROWSTRIDE (1800)
-#define POKY_IMG_WIDTH (600)
-#define POKY_IMG_HEIGHT (400)
-#define POKY_IMG_BYTES_PER_PIXEL (3) /* 3:RGB, 4:RGBA */
-#define POKY_IMG_RLE_PIXEL_DATA ((uint8*) \
- "\377\377\377\377\377\377\377\377\203\377\377\377\1\376\376\376\221\377" \
- "\377\377\1\376\376\376\215\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\206\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\203\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\202\376\376\376\207\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\211\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\235\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\213\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\216\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\365\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\376\376\376\203\377\377\377\12\376\376\376\377\377\377\346" \
- "\346\346\315\315\315\316\316\316\265\265\265\235\235\235\234\234\234" \
- "\233\233\233\204\204\204\203kkm\202lln\2EEG;;=\215::<\204kkm\3kkkxxx" \
- "\235\235\235\202\234\234\234\1\265\265\265\202\316\316\316\1\332\332" \
- "\332\207\377\377\377\202\376\376\376\2\377\377\377\376\376\376\211\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\203\377\377\377\5\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\366\377\377\377\1\376\376\376\205" \
- "\377\377\377\1\376\376\376\214\377\377\377\11\376\376\376\332\332\332" \
- "\316\316\320\247\247\251\236\236\240\204\204\206kkm__a<<>\202::<\11;" \
- ";=99;;;=99;::<;;=::<;;=99;\203::<\1<<>\213::<\13;;=::<;;=::<;;=::<;;" \
- "=::<;;=::<;;=\207::<\3SSUllnxxz\202\234\234\236\202\316\316\316\2\377" \
- "\377\377\376\376\376\214\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\376\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\203\377\377\377" \
- "\7\332\332\334\302\302\304\234\234\236\203\203\205llnEEG;;=\202::<\6" \
- ";;=::<;;=::<;;=99;\204::<\1""99;\202;;=\1""99;\205::<\1;;=\213::<\11" \
- ";;=::<;;=::<;;=::<;;=::<;;=\202::<\1""99;\206::<\1;;=\203::<\13;;=99" \
- ";;;=::<;;=::<kkmxxz\234\234\236\300\300\302\316\316\316\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\374\377\377\377\7\346\346\350\301\301\303\235\235\237ww" \
- "y``b99;;;=\202::<\1;;=\204::<\203;;=\3::<99;;;=\207::<\202;;=\204::<" \
- "\203;;=\215::<\1;;=\207::<\11;;=::<;;=99;::<;;=::<99;::<\202;;=\5::<" \
- ";;=::<;;=99;\202::<\2;;=::<\202;;=\6::<SSUkkm\235\235\237\264\264\266" \
- "\332\332\334\210\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\362\377\377\377" \
- "\1\376\376\376\202\377\377\377\11\346\346\350\265\265\267\221\221\223" \
- "kkm::<;;=::<99;;;=\203::<\1;;=\202::<\3""99;::<;;=\202::<\4;;=99;::<" \
- ";;=\204::<\1;;=\202::<\202;;=\1::<\202;;=\202::<\1;;=\203::<\1;;=\211" \
- "::<\2;;=99;\202::<\2;;=99;\206::<\1;;=\202::<\2""99;;;=\210::<\1;;=\202" \
- "::<\1;;=\203::<\1;;=\203::<\1;;=\202::<\4kkm\222\222\224\265\265\267" \
- "\332\332\334\204\377\377\377\1\376\376\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\362\377\377\377\12\363\363\363\316\316\316\235\235" \
- "\235jjjFFH;;=::<;;=::<;;=\202::<\1;;=\204::<\1""99;\202::<\2;;=::<\202" \
- ";;=\204::<\7;;=::<;;=::<;;=::<;;=\203::<\1;;=\202::<\1;;=\217::<\2""9" \
- "9;;;=\203::<\1;;=\202::<\4""99;;;=::<;;=\203::<\2;;=99;\202::<\1;;=\207" \
- "::<\1;;=\213::<\1;;=\204::<\7kkk\221\221\221\301\301\301\363\363\363" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\321\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\221\377\377\377\1\376\376\376\204\377\377\377\4\363\363\365" \
- "\301\301\303\222\222\224__a\220::<\3;;=::<;;=\204::<\203;;=\203::<\2" \
- ";;=::<\202;;=\4::<;;=::<;;=\204::<\1;;=\202::<\4;;=::<99;;;=\211::<\1" \
- "99;\205::<\202;;=\210::<\5;;=::<;;=::<;;=\203::<\1;;=\212::<\4;;=99;" \
- ";;=99;\211::<\4SSU\204\204\206\266\266\270\345\345\345\221\377\377\377" \
- "\1\376\376\376\204\377\377\377\202\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\266\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\207\377\377\377\1\376\376" \
- "\376\210\377\377\377\10\363\363\363\301\301\301\221\221\221``b99;;;=" \
- "::<;;=\213::<\3;;=::<;;=\203::<\1;;=\204::<\2;;=99;\202::<\1""99;\202" \
- ";;=\204::<\1;;=\210::<\202;;=\202::<\2;;=99;\215::<\1;;=\204::<\1;;=" \
- "\205::<\5;;=99;;;=::<;;=\202::<\202;;=\4""99;;;=::<;;=\203::<\1;;=\204" \
- "::<\3;;=99;;;=\210::<\11;;=::<;;=99;;;=SSS\205\205\205\266\266\266\363" \
- "\363\363\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\266\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\207\377" \
- "\377\377\5\376\376\376\333\333\335\250\250\252kkm;;=\203::<\202;;=\212" \
- "::<\10;;=::<;;=::<;;=::<;;=::<\202;;=\206::<\10;;=::<;;=::<;;=::<;;=" \
- "::<\202;;=\2::<;;=\203::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\211::<\1" \
- "99;\202;;=\203::<\1;;=\205::<\1;;=\204::<\1;;=\206::<\203;;=\202::<\1" \
- ";;=\206::<\1;;=\213::<\1;;=\204::<\1;;=\202::<\3__a\221\221\223\316\316" \
- "\316\204\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\207" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\267\377\377\377\202\376\376\376\210\377\377\377\1\376\376\376\207" \
- "\377\377\377\3\301\301\301\204\204\206SSU\203::<\3;;=::<;;=\202::<\2" \
- "99;;;=\215::<\1;;=\204::<\2;;=99;\202::<\202;;=\202::<\7""99;::<;;=:" \
- ":<;;=99;;;=\202::<\2""99;;;=\202::<\1;;=\207::<\1;;=\211::<\2""99;;;" \
- "=\202::<\3;;=::<;;=\202::<\2""99;;;=\206::<\4;;=::<;;=::<\202;;=\206" \
- "::<\3;;=::<;;=\202::<\5;;=::<;;=99;;;=\220::<\2;;=::<\202;;=\5""99;G" \
- "GIxxx\265\265\265\363\363\363\207\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\274" \
- "\377\377\377\1\376\376\376\204\377\377\377\202\376\376\376\4\364\364" \
- "\364\265\265\265xxz;;=\20299;\202::<\1""99;\204::<\3;;=::<;;=\213::<" \
- "\1;;=\203::<\3;;=::<;;=\207::<\2;;=::<\202;;=\4""99;;;=::<;;=\202::<" \
- "\5__allnkkm\221\221\223\235\235\237\202\234\234\236\6\317\317\317\315" \
- "\315\315\317\317\317\315\315\315\316\316\316\346\346\346\213\377\377" \
- "\377\3\376\376\376\377\377\377\346\346\346\204\316\316\316\5\316\316" \
- "\320\251\251\253\234\234\236\233\233\235\235\235\237\203kkm\202::<\1" \
- ";;=\202::<\6;;=::<;;=99;::<;;=\205::<\2;;=::<\203;;=\202::<\1;;=\212" \
- "::<\1;;=\202::<\1;;=\202::<\1;;=\204::<\1;;=\202::<\3lln\250\250\252" \
- "\346\346\350\206\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\271\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\4\362\362" \
- "\362\266\266\270xxz::<\202;;=\202::<\10;;=::<99;;;=::<;;=::<;;=\203:" \
- ":<\1;;=\213::<\3;;=::<;;=\205::<\1;;=\202::<\1<<>\202::<\7llnkkm\233" \
- "\233\235\235\235\237\302\302\304\316\316\320\347\347\351\241\377\377" \
- "\377\202\376\376\376\203\377\377\377\17\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\363\363\363\316\316\316\315\315\315\234" \
- "\234\234\235\235\235xxxllnFFH::<;;=\205::<\5;;=99;;;=::<;;=\212::<\202" \
- ";;=\212::<\5;;=99;;;=::<99;\202::<\5__a\250\250\252\346\346\346\377\377" \
- "\377\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\271\377\377\377\202\376\376\376\2\377\377\377" \
- "\376\376\376\203\377\377\377\3\363\363\363\266\266\266wwy\202;;=\210" \
- "::<\1<<>\203::<\2<<>99;\215::<\1;;=\205::<\11;;=::<;;;___xxx\235\235" \
- "\235\266\266\266\315\315\315\364\364\364\207\377\377\377\1\376\376\376" \
- "\213\377\377\377\1\376\376\376\231\377\377\377\5\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\202\377\377\377\5\316\316\316\302\302" \
- "\302\233\233\233yyykkk\202::<\6;;=::<;;=::<99;;;=\211::<\1;;=\202::<" \
- "\1;;=\206::<\1""99;\202;;=\202::<\203;;=\1""99;\202::<\3__a\251\251\253" \
- "\346\346\346\204\377\377\377\3\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\266\377\377\377\1\376\376" \
- "\376\202\377\377\377\2\302\302\302xxx\203::<\3;;=::<;;=\232::<\1;;=\202" \
- "::<\6RRTkkm\235\235\237\301\301\303\332\332\334\376\376\376\222\377\377" \
- "\377\1\376\376\376\260\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\5\345\345\347\316\316\320\235\235\237xxzSSU\215" \
- "::<\202;;=\202::<\203;;=\2::<;;=\203::<\1;;=\204::<\10;;=::<;;=::<;;" \
- "=kkm\266\266\266\363\363\363\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\245\377\377\377\1\376\376\376\214" \
- "\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376\377\377\377" \
- "\332\332\332\205\205\207GGI\202::<\1;;=\211::<\202;;=\205::<\2;;=::<" \
- "\202;;=\203::<\14;;=99;::<;;=99;;;=FFFxxx\234\234\234\315\315\315\364" \
- "\364\364\376\376\376\323\377\377\377\4\317\317\317\250\250\250xxxSSS" \
- "\202::<\1;;=\206::<\2;;=::<\203;;=\202::<\2;;=99;\204::<\7;;=::<;;=:" \
- ":<;;=::<;;=\204::<\3\204\204\206\301\301\301\376\376\376\220\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\225" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\206\377\377" \
- "\377\1\376\376\376\202\377\377\377\4\363\363\363\251\251\251___;;=\202" \
- "::<\1;;=\202::<\202;;=\204::<\1;;=\202::<\7;;=::<;;=::<;;=::<;;=\203" \
- "::<\3""99;::<;;=\202::<\5;;=__a\221\221\223\265\265\267\346\346\346\323" \
- "\377\377\377\1\376\376\376\211\377\377\377\5\363\363\363\301\301\303" \
- "\235\235\237lln::<\202;;=\203::<\1;;=\204::<\1;;=\202::<\2""99;;;=\205" \
- "::<\2;;=99;\203::<\1""99;\204::<\3TTT\233\233\233\346\346\346\207\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\250\377\377\377\3\316\316\316\204\204\204;;=\203::<\1;;=\203::<\1;;" \
- "=\202::<\1;;=\205::<\3;;=::<;;=\202::<\4""99;;;=::<;;=\202::<\202;;=" \
- "\4___\221\221\221\301\301\303\363\363\365\203\377\377\377\1\376\376\376" \
- "\203\377\377\377\202\376\376\376\321\377\377\377\1\376\376\376\210\377" \
- "\377\377\1\376\376\376\202\377\377\377\4\316\316\316\235\235\235kkk;" \
- ";=\202::<\202;;=\203::<\5;;=::<;;=99;;;=\204::<\202;;=\7::<;;=99;::<" \
- ";;=::<;;=\202::<\202;;=\2xxz\302\302\304\213\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\224\377\377\377\1\376" \
- "\376\376\212\377\377\377\3\363\363\363\266\266\266TTV\203::<\3;;=::<" \
- ";;=\202::<\203;;=\202::<\202;;=\205::<\1;;=\202::<\1;;=\204::<\4SSU\221" \
- "\221\223\301\301\301\363\363\363\206\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\315\377\377\377" \
- "\202\376\376\376\202\377\377\377\1\376\376\376\210\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\3\316\316\316" \
- "\221\221\223__a\203::<\1;;=\203::<\3;;=::<;;=\203::<\5;;=99;;;=::<;;" \
- "=\204::<\1""99;\205::<\3SSU\234\234\236\346\346\346\207\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\233\377\377\377\4\376\376\376\347\347\347\221\221\221" \
- "FFH\207::<\4""99;;;=::<;;=\20299;\202;;=\202::<\1;;=\203::<\2;;=::<\202" \
- ";;=\202::<\3xxz\250\250\252\346\346\350\215\377\377\377\203\376\376\376" \
- "\316\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\1\376\376\376\211\377\377\377\4\363\363\363\265\265\267\205" \
- "\205\207FFH\210::<\3;;=::<;;=\204::<\1;;=\207::<\2;;=::<\202;;=\2\203" \
- "\203\205\317\317\321\206\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\233\377\377\377\3\316\316\316yy{99;\206" \
- "::<\2;;=99;\202;;=\205::<\5""99;::<;;=::<;;=\202::<\6;;=::<;;=SSU\204" \
- "\204\204\301\301\301\226\377\377\377\1\376\376\376\317\377\377\377\1" \
- "\376\376\376\203\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\316\316\316\221\221\221SSU\203::<\3;;=::<99;\204::<\1" \
- ";;=\203::<\2""99;;;=\202::<\1;;=\204::<\5""99;<<>::<kkk\264\264\264\203" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\232\377\377\377\2\266\266\270__a\202::<\5;;=::<;;=::<99;\202;;=" \
- "\10::<;;=::<;;=::<;;=99;;;=\202::<\11;;=::<99;;;=::<;;=SSU\221\221\223" \
- "\331\331\331\211\377\377\377\1\376\376\376\204\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\324\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377\377\1" \
- "\376\376\376\214\377\377\377\14\332\332\332\251\251\251``b::<;;=::<;" \
- ";=99;::<;;=::<;;=\202::<\3;;=99;;;=\203::<\1;;=\202::<\10;;=99;;;=::" \
- "<;;=SSU\250\250\252\363\363\363\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\231\377\377\377\2\265\265\265SSU\216::<\4;;=::<99;;;=\205::" \
- "<\10;;=SSU\222\222\224\332\332\334\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\205\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\327\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\216\377\377\377\4\347\347\351\250\250\252``b::<\202" \
- ";;=\202::<\1;;=\203::<\1;;=\203::<\1;;=\202::<\3;;=::<;;=\202::<\6""9" \
- "9;;;=::<FFF\233\233\233\363\363\363\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\206\377\377\377\3\376\376\376\377\377\377\376\376\376\213" \
- "\377\377\377\4\363\363\365\234\234\236FFH;;=\206::<\2""99;;;=\204::<" \
- "\202;;=\2::<;;=\206::<\4FFH\204\204\206\333\333\333\376\376\376\264\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\327\377\377\377\4\346" \
- "\346\346\221\221\221SSS:::\202::<\1;;=\204::<\3;;=::<;;=\214::<\3GGI" \
- "\221\221\223\347\347\347\211\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\371\377\377\377\1\376" \
- "\376\376\207\377\377\377\5\363\363\363\234\234\234FFH::<;;=\204::<\1" \
- ";;=\202::<\1;;=\203::<\1;;=\204::<\1;;=\203::<\5;;=xxz\300\300\302\377" \
- "\377\377\376\376\376\267\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\376\376\376\215\377\377\377\1\376\376\376\303\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\204\377\377\377\4\332\332\332\203\203\205" \
- "GGI99;\207::<\202;;=\203::<\6;;=::<;;=::<;;=99;\202;;=\202::<\3\204\204" \
- "\204\346\346\346\376\376\376\205\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\373\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\376\376\376\204\377\377\377\3\362\362\362\234\234\236GGI\203::<\15;" \
- ";=::<;;=::<;;=::<;;=99;;;=::<;;=::<99;\202;;=\7::<;;=99;::<```\250\250" \
- "\250\363\363\363\202\377\377\377\1\375\375\375\272\377\377\377\1\376" \
- "\376\376\214\377\377\377\1\376\376\376\306\377\377\377\1\375\375\375" \
- "\210\377\377\377\6\265\265\265lln::<;;=::<;;=\202::<\5;;=99;;;=::<99" \
- ";\205::<\1;;=\206::<\4\204\204\206\345\345\345\377\377\377\376\376\376" \
- "\207\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\372\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\364\364\364\233\233\235GGI\202" \
- "::<\203;;=\2""99;;;=\202::<\3""99;::<;;=\202::<\13;;=99;::<;;=::<;;=" \
- "::<FFH\204\204\204\333\333\333\376\376\376\204\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\376\376\376\304\377\377\377\1\376\376\376\317" \
- "\377\377\377\4\346\346\346\221\221\223GGI99;\204::<\1""99;\202;;=\2:" \
- ":<;;=\204::<\1;;=\204::<\202;;=\3::<\221\221\223\364\364\364\203\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377" \
- "\377\377\377\377\371\377\377\377\1\376\376\376\202\377\377\377\6\265" \
- "\265\267SSU::<99;::<;;=\203::<\1;;=\202::<\1;;=\204::<\3;;=::<;;=\202" \
- "::<\6;;=SSS\264\264\264\363\363\363\377\377\377\376\376\376\204\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\267\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\376\376\376\307\377\377\377\1\376\376\376\207" \
- "\377\377\377\4\376\376\376\377\377\377\266\266\266kkm\202::<\1;;=\202" \
- "::<\6;;=::<99;;;=99;;;=\205::<\3;;=::<99;\202::<\4GGI\234\234\234\363" \
- "\363\363\376\376\376\377\377\377\377\377\377\377\377\375\377\377\377" \
- "\4\376\376\376\377\377\377\265\265\265SSU\202::<\1;;=\204::<\1;;=\203" \
- "::<\3;;=99;;;=\205::<\202;;=\2yyy\316\316\316\203\377\377\377\1\376\376" \
- "\376\206\377\377\377\3\376\376\376\377\377\377\376\376\376\263\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\315\315\315;;;\211::<\3;;;:::\315" \
- "\315\315\202\377\377\377\1\376\376\376\312\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\205\377\377\377\5\346\346\346\204\204\204FF" \
- "H::<;;=\202::<\4;;=::<;;=::<\203;;=\203::<\2<<>99;\202::<\4""99;;;=F" \
- "FF\234\234\234\377\377\377\377\377\377\377\377\375\377\377\377\11\316" \
- "\316\320kkm::<;;=::<;;=99;::<;;=\203::<\202;;=\2::<99;\205::<\13;;=F" \
- "FH\221\221\221\346\346\346\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376" \
- "\273\377\377\377\2\376\376\376\317\317\317\212::<\6;;=;;;\316\316\316" \
- "\376\376\376\377\377\377\376\376\376\304\377\377\377\1\376\376\376\206" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\204\377\377\377\4\363\363\363\235\235\235RRT;;=\202::<\202;;=\7" \
- "::<;;=99;::<;;=::<;;=\203::<\1;;=\202::<\6;;=::<SSU\264\264\264\377\377" \
- "\377\376\376\376\377\377\377\377\377\377\377\377\367\377\377\377\3\346" \
- "\346\346xxz;;=\205::<\1;;=\203::<\3;;=::<;;=\207::<\3SSU\247\247\251" \
- "\363\363\363\217\377\377\377\1\376\376\376\272\377\377\377\1\316\316" \
- "\316\213::<\2;;=\316\316\316\306\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\221\377\377\377\4\265\265\267SSU;;=99;\202::<\2""99;;;=" \
- "\206::<\1;;=\204::<\1;;=\202::<\3jjj\317\317\317\376\376\376\377\377" \
- "\377\377\377\377\377\377\343\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\376\376\376\206\377\377\377\2\363\363\363\233\233\233\210::<\1;;=" \
- "\203::<\1;;=\203::<\1;;=\203::<\2SSS\265\265\265\315\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\334\377\377\377\3\316\316\316kkk::<\202" \
- ";;=\206::<\1;;=\202::<\1;;=\202::<\7""99;;;=::<;;=::<\204\204\206\346" \
- "\346\350\377\377\377\377\377\377\377\377\347\377\377\377\1\376\376\376" \
- "\212\377\377\377\3\265\265\265SSS::<\202;;=\205::<\1;;=\202::<\202;;" \
- "=\202::<\1;;=\203::<\2lln\265\265\267\203\377\377\377\1\376\376\376\313" \
- "\377\377\377\1\316\316\316\214::<\1\316\316\316\336\377\377\377\6\316" \
- "\316\316kkm::<;;=::<;;=\202::<\3;;=::<;;=\204::<\10;;=99;;;=::<99;;;" \
- "=FFH\234\234\234\210\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\377\377\377\377\377\327\377\377\377\2\376\376\376\377\377" \
- "\377\202\376\376\376\205\377\377\377\1\376\376\376\203\377\377\377\5" \
- "\332\332\332kkk;;=::<;;=\205::<\4;;=::<;;=::<\202;;=\2::<;;=\203::<\2" \
- "kkm\317\317\317\204\377\377\377\1\376\376\376\314\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\336\377\377\377\14\376\376\376\377\377\377" \
- "\316\316\316\204\204\206;;=::<;;=::<;;=99;::<;;=\205::<\11;;=99;;;=9" \
- "9;::<;;;RRR\317\317\317\376\376\376\204\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\332\377\377\377\202\376\376\376\211\377" \
- "\377\377\2\363\363\363\221\221\223\203::<\1;;=\207::<\1;;=\202::<\202" \
- ";;=\10::<99;::<lln\316\316\316\376\376\376\377\377\377\376\376\376\206" \
- "\377\377\377\1\376\376\376\311\377\377\377\1\316\316\316\214::<\1\316" \
- "\316\316\335\377\377\377\7\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\347\347\347kkm\202::<\2""88:;;=\203::<\1;;=\204::<\3" \
- ";;=99;;;=\202::<\4;;=::<xxx\346\346\346\206\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\331\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\4\376\376\376\377\377\377\300\300\302" \
- "SSU\207::<\1;;=\202::<\1;;=\205::<\4""99;;;=SSU\316\316\316\204\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\307\377\377\377\1\316\316\316\214::<\1\316\316\316\334\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\204\377\377\377\3\317" \
- "\317\317kkm;;=\205::<\3;;=::<99;\203::<\1;;=\204::<\3;;=FFH\250\250\250" \
- "\205\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377" \
- "\377\377\377\377\326\377\377\377\1\376\376\376\204\377\377\377\4\376" \
- "\376\376\377\377\377\347\347\351xxz\202::<\1;;=\204::<\1;;=\203::<\1" \
- ";;=\204::<\4""99;;;=SSU\266\266\266\205\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\375\375\375\310\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\344\377\377\377\7\376\376\376" \
- "\377\377\377\316\316\316kkm;;=::<99;\202::<\203;;=\2::<;;=\204::<\1;" \
- ";=\202::<\3;;=__a\332\332\334\377\377\377\377\377\377\377\377\335\377" \
- "\377\377\1\376\376\376\204\377\377\377\4\250\250\252FFH::<;;=\202::<" \
- "\3;;=::<;;=\202::<\3""99;::<;;=\202::<\1;;=\202::<\4HHJ\250\250\250\377" \
- "\377\377\376\376\376\206\377\377\377\202\376\376\376\205\377\377\377" \
- "\1\376\376\376\311\377\377\377\1\316\316\316\214::<\1\316\316\316\345" \
- "\377\377\377\1\376\376\376\202\377\377\377\2\301\301\301SSU\202::<\1" \
- ";;=\202::<\2""99;;;=\212::<\3;;=\233\233\233\363\363\363\377\377\377" \
- "\377\377\377\377\377\331\377\377\377\1\376\376\376\204\377\377\377\2" \
- "\346\346\346kkk\211::<\3;;=99;;;=\206::<\2\235\235\237\363\363\363\205" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\321\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\352\377\377\377\2\250\250\252" \
- "GGI\206::<\5;;=::<;;=::<;;=\202::<\202;;=\4::<:::SSS\316\316\316\203" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\330\377\377" \
- "\377\2\251\251\251FFH\203::<\1""99;\207::<\1;;=\204::<\3;;=xxx\346\346" \
- "\346\334\377\377\377\1\316\316\316\214::<\1\316\316\316\350\377\377\377" \
- "\13\376\376\376\377\377\377\376\376\376\363\363\363\234\234\23699;;;" \
- "=::<;;=99;;;=\202::<\2""99;;;=\206::<\202;;=\2\221\221\223\363\363\363" \
- "\204\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\316\377\377\377\2\346" \
- "\346\346kkk\202;;=\206::<\1;;=\203::<\3;;=::<;;=\202::<\2``b\316\316" \
- "\320\336\377\377\377\1\316\316\316\214::<\1\316\316\316\353\377\377\377" \
- "\4\376\376\376\377\377\377\350\350\352kkm\206::<\2;;=99;\203::<\1;;=" \
- "\203::<\6;;=::<TTV\331\331\331\377\377\377\376\376\376\207\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\306\377\377\377\1\376" \
- "\376\376\203\377\377\377\5\376\376\376\377\377\377\266\266\266EEG;;=" \
- "\203::<\1;;=\203::<\1;;=\204::<\202;;=\3::<GGI\250\250\252\205\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\327\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\351\377\377\377\1\376\376\376\203\377\377" \
- "\377\5\376\376\376\377\377\377\316\316\316TTV;;=\203::<\3;;=::<;;=\204" \
- "::<\202;;=\5::<;;=99;;;=\234\234\236\207\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\303\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\6\376\376\376\377\377\377\364\364\364ww" \
- "y::<;;=\202::<\202;;=\202::<\5;;=::<99;::<;;=\202::<\4;;=::<\204\204" \
- "\206\363\363\363\202\377\377\377\1\376\376\376\202\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\331\377\377\377\1\316\316\316\214::" \
- "<\1\316\316\316\353\377\377\377\1\376\376\376\204\377\377\377\11\376" \
- "\376\376\234\234\234GGI::<;;=::<;;=::<;;=\207::<\1;;=\202::<\2__a\332" \
- "\332\332\377\377\377\377\377\377\377\377\320\377\377\377\4\316\316\316" \
- "FFH::<;;=\202::<\1;;=\207::<\2;;=99;\202;;=\3__a\316\316\320\376\376" \
- "\376\342\377\377\377\1\316\316\316\214::<\1\316\316\316\361\377\377\377" \
- "\5\376\376\376\347\347\347lln::<;;=\210::<\1""99;\202::<\7;;=::<99;G" \
- "GI\247\247\247\377\377\377\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\305\377\377\377\1\376\376\376\203\377" \
- "\377\377\3\221\221\221:::;;=\203::<\1;;=\202::<\1;;=\203::<\1;;=\202" \
- "::<\4;;=FFH\234\234\234\376\376\376\202\377\377\377\1\375\375\375\202" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\332\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\364\377\377\377\3\301\301\303" \
- "FFH;;=\206::<\1;;=\205::<\5;;=99;;;=yy{\363\363\363\377\377\377\377\377" \
- "\377\377\377\312\377\377\377\3\346\346\346^^`;;=\207::<\1;;=\203::<\1" \
- ";;=\203::<\2jjl\346\346\350\202\377\377\377\1\376\376\376\213\377\377" \
- "\377\1\375\375\375\327\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\360\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\2\363\363\363\220\220\220\202;;=\203::<\2;;=99;\206::<\1;;=\202::<\2" \
- "SSU\316\316\320\202\377\377\377\1\376\376\376\377\377\377\377\377\377" \
- "\377\377\303\377\377\377\4\376\376\376\377\377\377\302\302\302FFH\217" \
- "::<\2GGI\250\250\252\205\377\377\377\1\376\376\376\211\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\326\377\377\377\1\316\316\316\214" \
- "::<\1\316\316\316\356\377\377\377\1\376\376\376\210\377\377\377\3\316" \
- "\316\316SSU;;=\203::<\202;;=\207::<\1;;=\202::<\1\235\235\237\377\377" \
- "\377\377\377\377\377\377\306\377\377\377\1\221\221\221\202::<\2;;=99" \
- ";\203::<\3;;=::<;;=\203::<\1;;=\202::<\2kkm\346\346\346\351\377\377\377" \
- "\1\316\316\316\214::<\1\316\316\316\370\377\377\377\2\362\362\362\221" \
- "\221\221\204::<\3;;=::<;;=\206::<\1;;=\202::<\2xxz\362\362\364\377\377" \
- "\377\377\377\377\377\377\301\377\377\377\3\376\376\376\363\363\363__" \
- "_\204::<\3;;=::<;;=\202::<\2;;=99;\202;;=\4::<99;GGI\250\250\252\353" \
- "\377\377\377\1\316\316\316\214::<\1\316\316\316\366\377\377\377\1\376" \
- "\376\376\203\377\377\377\2\317\317\317SSS\211::<\202;;=\6""99;;;=99;" \
- "::<SSU\332\332\332\202\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\267\377\377\377\11\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\317\317\321FFH;;=\202::<\3;;=::<99;" \
- "\203::<\203;;=\202::<\4;;=lll\346\346\346\376\376\376\353\377\377\377" \
- "\1\316\316\316\214::<\1\316\316\316\367\377\377\377\1\376\376\376\202" \
- "\377\377\377\5\376\376\376\363\363\363\221\221\223;;=99;\202;;=\3::<" \
- "99;;;=\202::<\202;;=\6::<;;=::<;;=::<\265\265\265\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\273\377\377\377\1\250\250\252" \
- "\202::<\2""99;;;=\203::<\1;;=\202::<\1;;=\204::<\3;;=\250\250\250\376" \
- "\376\376\205\377\377\377\1\376\376\376\347\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\373\377\377\377\5\376\376\376\377\377\377\300\300" \
- "\300FFH;;=\202::<\1;;=\202::<\3;;=::<;;=\202::<\2;;=::<\202;;=\4\205" \
- "\205\207\376\376\376\377\377\377\376\376\376\377\377\377\377\377\377" \
- "\377\377\267\377\377\377\3\376\376\376\364\364\364\205\205\207\202::" \
- "<\202;;=\15""99;;;=::<;;=::<;;=::<99;;;=99;;;=__a\331\331\331\357\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\366\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\203\377\377\377\2\363\363\363kkm\215" \
- "::<\4;;=99;__a\363\363\363\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\377\377\377\377\265\377\377\377\4\347\347\351__a::<;;=\203::<\1" \
- ";;=\202::<\1;;=\203::<\1;;=\202::<\2\221\221\223\363\363\363\360\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\364\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\207\377\377\377\2\251\251\253;;=\203" \
- "::<\1;;=\203::<\1;;=\203::<\203;;=\3FFH\332\332\332\376\376\376\377\377" \
- "\377\377\377\377\377\377\265\377\377\377\4\331\331\331FFH::<;;=\203:" \
- ":<\1;;=\202::<\1;;=\205::<\2FFH\302\302\302\205\377\377\377\7\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\376" \
- "\376\376\346\377\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377" \
- "\377\202\377\377\377\2\332\332\332SSU\203::<\1;;=\203::<\12""99;;;=:" \
- ":<99;::<;;=99;;;=\266\266\266\376\376\376\377\377\377\377\377\377\377" \
- "\377\263\377\377\377\1\265\265\265\202::<\1;;=\205::<\202;;=\202::<\1" \
- ";;=\202::<\2__a\346\346\350\203\377\377\377\1\376\376\376\357\377\377" \
- "\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\203\377\377\377" \
- "\2\363\363\363\204\204\204\202::<\1;;=\203::<\1;;=\205::<\1;;=\202::" \
- "<\1\221\221\221\377\377\377\377\377\377\377\377\262\377\377\377\4\235" \
- "\235\237;;=::<;;=\203::<\1;;=\206::<\3;;=::<\222\222\222\202\377\377" \
- "\377\1\376\376\376\362\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\205\377\377\377\3\265\265\265:::;;=\206::<\5;;=::<;" \
- ";=::<;;=\202::<\2\204\204\206\363\363\363\212\377\377\377\1\376\376\376" \
- "\377\377\377\377\377\377\377\377\236\377\377\377\1\376\376\376\202\377" \
- "\377\377\4\376\376\376\377\377\377\376\376\377\204\204\206\206::<\12" \
- ";;=::<;;=::<;;=::<;;=::<FFH\301\301\301\366\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\377\377\377\377\206\377\377\377\4\333\333\333S" \
- "SU::<;;=\205::<\4;;=::<;;=::<\202;;=\3::<__a\364\364\364\202\377\377" \
- "\377\1\376\376\376\205\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\236\377\377\377\4\376\376\376" \
- "\377\377\377\363\363\365__a\203::<\10""99;;;=::<;;=99;;;=99;;;=\203:" \
- ":<\2__a\332\332\332\203\377\377\377\1\376\376\376\363\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\377\377\377\377\207\377\377\377\7\363\363" \
- "\363kkm;;=::<;;=::<;;=\204::<\202;;=\10""99;;;=::<SSU\332\332\332\376" \
- "\376\376\377\377\377\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\377\377\377\377\236\377\377\377\1\376\376\376\202\377\377\377" \
- "\2\346\346\350__a\202::<\4;;=::<;;=99;\204::<\1;;=\203::<\3xxz\362\362" \
- "\362\377\377\377\202\376\376\376\365\377\377\377\1\316\316\316\214::" \
- "<\1\316\316\316\377\377\377\377\210\377\377\377\5\376\376\376\234\234" \
- "\234;;=::<;;=\202::<\14;;=::<;;=99;;;=::<;;=::<;;=FFH\332\332\332\376" \
- "\376\376\203\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\377\377\377\377\235\377\377" \
- "\377\4\332\332\332FFH::<;;=\205::<\1;;=\205::<\2;;=\234\234\234\372\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\212\377\377" \
- "\377\2\300\300\300FFH\203::<\1""99;\202::<\2;;=99;\203::<\4;;=::<FFH" \
- "\266\266\266\205\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\235\377\377\377\3\332\332\332FF" \
- "H;;=\205::<\1;;=\202::<\1""99;\203::<\6FFH\301\301\301\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\207\377\377\377\1\376\376\376\357\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\211\377\377" \
- "\377\4\376\376\376\377\377\377\331\331\331SSU\204::<\6""99;::<;;=::<" \
- ";;=::<\202;;=\202::<\1\266\266\270\203\377\377\377\1\376\376\376\377" \
- "\377\377\377\377\377\377\377\240\377\377\377\2\265\265\265EEG\202::<" \
- "\6;;=::<;;=::<;;=99;\203::<\4;;=::<SSU\332\332\332\203\377\377\377\1" \
- "\376\376\376\207\377\377\377\1\376\376\376\360\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\377\377\377\377\212\377\377\377\15\376\376" \
- "\376\377\377\377\363\363\363__a::<;;=99;;;=::<99;;;=::<;;=\202::<\4;" \
- ";=99;;;=\250\250\252\204\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\235\377\377\377\5\265\265\265::<;;=::<;;=\202::<\202;;=" \
- "\2::<;;=\204::<\2__a\364\364\364\206\377\377\377\1\376\376\376\366\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\211\377\377" \
- "\377\1\376\376\376\204\377\377\377\2\204\204\20699;\204::<\1;;=\204:" \
- ":<\5""99;;;=99;::<\204\204\204\377\377\377\377\377\377\377\377\232\377" \
- "\377\377\1\376\376\376\205\377\377\377\2\265\265\267;;=\211::<\1;;=\203" \
- "::<\1\205\205\205\377\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\215\377\377\377\12\376\376\376\377\377\377\250\250\250" \
- "::<;;=::<99;;;=::<;;=\202::<\3;;=::<99;\202::<\1\205\205\207\212\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\223\377\377\377" \
- "\1\265\265\267\203::<\202;;=\1""99;\204::<\5;;=::<;;=::<\235\235\237" \
- "\377\377\377\377\2\377\377\377\316\316\316\214::<\1\316\316\316\377\377" \
- "\377\377\216\377\377\377\3\376\376\376\377\377\377\265\265\267\202::" \
- "<\3;;=::<;;=\205::<\1;;=\203::<\1\204\204\204\210\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\220" \
- "\377\377\377\6\234\234\236::<;;=::<;;=99;\204::<\1;;=\204::<\1\265\265" \
- "\265\377\377\377\377\202\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\215\377\377\377\1\376\376\376\203\377\377\377\2\334" \
- "\334\334FFH\207::<\202;;=\203::<\3;;=\204\204\206\376\376\376\207\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\216\377\377\377" \
- "\11\376\376\376\377\377\377\376\376\376\204\204\206::<99;;;=::<;;=\204" \
- "::<\6;;=99;;;=::<FFH\301\301\301\377\377\377\377\203\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\377\377\377\377\215\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\3\332\332\332FFH::<\202;;=\203:" \
- ":<\3;;=99;;;=\204::<\2\205\205\207\376\376\376\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\377\377\377\377\377\212\377\377\377\7\376\376\376\377\377\377\376" \
- "\376\376\204\204\20499;::<;;=\202::<\1""99;\205::<\4;;=::<GGI\332\332" \
- "\334\377\377\377\377\204\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\217\377\377\377\6\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\362\362\362__a\203::<\202;;=\11""99;;;=::<99;;;=::<;;=:" \
- ":<\204\204\204\205\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\215\377\377\377\1\204\204\204\202" \
- "::<\1;;=\207::<\1<<>\202::<\2FFH\331\331\333\377\377\377\377\205\377" \
- "\377\377\1\316\316\316\214::<\1\316\316\316\377\377\377\377\216\377\377" \
- "\377\1\376\376\376\203\377\377\377\4\376\376\376\377\377\377\363\363" \
- "\363__a\204::<\2;;=99;\206::<\2;;=\204\204\204\203\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\220\377\377\377\1\204\204\204" \
- "\205::<\1;;=\203::<\1;;=\203::<\4__a\363\363\363\377\377\377\376\376" \
- "\376\377\377\377\377\204\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\377\377\377\377\224\377\377\377\4\376\376\376\363\363\363xxx::<\202" \
- ";;=\202::<\1;;=\203::<\1;;=\203::<\1\205\205\207\204\377\377\377\1\376" \
- "\376\376\377\377\377\377\377\377\377\377\215\377\377\377\1\250\250\250" \
- "\205::<\1;;=\203::<\12;;=99;;;=::<__a\363\363\365\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\377\203\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\377\377\377\377\227\377\377\377\5\204\204\204" \
- "::<;;=::<;;=\204::<\1""99;\204::<\1\204\204\204\377\377\377\377\377\377" \
- "\377\377\213\377\377\377\1\376\376\376\202\377\377\377\4\376\376\376" \
- "\377\377\377\265\265\267;;=\212::<\4;;=::<__a\363\363\363\217\377\377" \
- "\377\1\376\376\376\367\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\376\377\377\377\202\377\377\375\3\377\376\377\377\377\377\376\377\375" \
- "\224\377\377\377\3\204\204\206::<;;=\211::<\7""99;::<\203\203\205\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\205\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\377\377\377\377\377\377\377\377" \
- "\2\264\264\266;;=\202::<\202;;=\1""99;\207::<\2__a\363\363\365\217\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\366\377\377\377\1\316" \
- "\316\316\214::<\1\316\316\316\375\377\377\377\5\377\377\375\377\376\377" \
- "\377\375\377\377\377\375\377\377\377\202\377\376\377\221\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\204\204\206\203::<\1;;=\202::<\2;;=" \
- "::<\202;;=\202::<\3;;=\204\204\204\376\376\376\211\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\377\375\377\377\377\7\376" \
- "\376\376\264\264\266;;=99;::<;;=99;\204::<\1;;=\203::<\2aac\363\363\363" \
- "\221\377\377\377\1\376\376\376\367\377\377\377\1\316\316\316\214::<\1" \
- "\316\316\316\375\377\377\377\202\376\376\376\203\377\377\377\202\376" \
- "\377\377\222\377\377\377\10\376\376\376\377\377\377\376\376\376\204\204" \
- "\206::<;;=::<;;=\203::<\202;;=\202::<\6""99;;;=\205\205\207\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\202\376\376\376\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\375\377\377\377\3\376\376\376\302" \
- "\302\304;;=\203::<\1;;=\204::<\6;;=99;;;=::<aac\362\362\362\223\377\377" \
- "\377\1\376\376\376\366\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\374\377\377\377\6\375\377\376\377\377\375\377\376\377\376\377\377\376" \
- "\376\376\377\377\375\202\377\376\377\225\377\377\377\2\376\376\376\204" \
- "\204\206\206::<\1""99;\203::<\1;;=\202::<\1\251\251\253\204\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\203\377\377\377\4\332" \
- "\332\332FFH::<;;=\202::<\1""99;\205::<\4;;=::<__a\363\363\365\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\211\377\377\377\1\316\316\316" \
- "\214::<\1\316\316\316\374\377\377\377\5\376\377\377\376\376\376\377\376" \
- "\377\377\377\375\376\377\375\202\376\377\377\1\377\377\375\221\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\203\377\377\377\2\204\204" \
- "\206;;=\205::<\1;;=\203::<\7;;=::<;;=\265\265\265\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\373\377\377\377\6\331\331\331" \
- "GGI::<;;=::<;;=\205::<\1<<>\202::<\2__a\363\363\365\202\377\377\377\1" \
- "\376\376\376\213\377\377\377\1\376\376\376\375\377\377\377\1\316\316" \
- "\316\214::<\1\316\316\316\374\377\377\377\7\377\376\377\376\377\377\376" \
- "\376\374\377\376\377\377\377\375\376\377\377\377\377\375\226\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\203\203\203\214::<\2;;=\265\265" \
- "\265\206\377\377\377\1\376\376\376\377\377\377\377\374\377\377\377\4" \
- "\364\364\364GGI99;;;=\206::<\1;;=\203::<\2__a\363\363\363\205\377\377" \
- "\377\1\376\376\376\212\377\377\377\1\363\363\363\203\377\377\377\1\376" \
- "\376\376\370\377\377\377\1\316\316\316\214::<\1\316\316\316\374\377\377" \
- "\377\10\377\377\375\377\376\377\377\377\377\377\377\375\377\376\377\370" \
- "\373\362\370\373\364\377\376\377\220\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\204\204\204\203::<\1;;=\210::<\2FFH\332\332\334\204\377\377\377\1" \
- "\376\376\376\377\377\377\377\374\377\377\377\3\363\363\363___;;=\202" \
- "::<\1;;=\204::<\6;;=99;;;=::<__a\363\363\365\220\377\377\377\3\265\265" \
- "\265FFF\333\333\333\373\377\377\377\1\316\316\316\214::<\1\316\316\316" \
- "\376\377\377\377\6\374\377\377\377\377\375\371\374\365\242\320c\240\322" \
- "c\371\372\362\221\377\377\377\1\376\376\376\210\377\377\377\2\203\203" \
- "\203;;=\202::<\1;;=\203::<\1;;=\203::<\3;;=FFH\333\333\333\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\371\377\377\377\1\376\376\376\203" \
- "\377\377\377\2kkm::<\202;;=\1""99;\205::<\202;;=\3::<__a\363\363\363" \
- "\220\377\377\377\5\265\265\267::<;;=FFH\332\332\332\206\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\361\377\377\377\1\316\316\316\213" \
- "::<\2;;=\316\316\316\365\377\377\377\22\376\376\377\377\377\375\377\377" \
- "\377\377\377\375\377\377\377\377\376\377\377\377\375\377\377\377\376" \
- "\376\377\377\377\377\371\374\365\242\320c\215\307\77\215\305@\242\322" \
- "e\372\373\365\376\377\375\377\376\377\230\377\377\377\3\205\205\207:" \
- ":<;;=\206::<\1;;=\202::<\4;;=SSU\363\363\365\376\376\376\377\377\377" \
- "\377\374\377\377\377\13\376\376\376\204\204\204::<;;=99;::<;;=::<;;=" \
- "::<;;=\203::<\3__a\364\364\366\376\376\376\217\377\377\377\1\265\265" \
- "\267\203::<\3;;=FFF\332\332\332\206\377\377\377\1\376\376\376\361\377" \
- "\377\377\2\376\376\376\317\317\317\212::<\6;;=;;;\316\316\316\376\376" \
- "\376\377\377\377\376\376\376\361\377\377\377\6\376\376\377\377\376\377" \
- "\375\376\377\376\377\377\377\377\375\375\377\376\202\377\377\377\17\376" \
- "\376\376\377\377\377\371\372\364\240\322a\215\305@\212\307>\215\307\77" \
- "\215\305>\242\320c\370\372\365\377\377\377\377\376\377\376\377\375\377" \
- "\377\375\377\376\377\225\377\377\377\5kkm::<;;=99;;;=\210::<\4__a\364" \
- "\364\364\376\376\376\377\377\377\202\376\376\376\377\377\377\377\363" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\4" \
- "\250\250\252::<;;=99;\202;;=\205::<\202;;=\3FFH\345\345\345\376\376\376" \
- "\217\377\377\377\4\264\264\266;;=::<;;=\203::<\2GGI\332\332\332\203\377" \
- "\377\377\1\376\376\376\356\377\377\377\1\376\376\376\205\377\377\377" \
- "\2\315\315\315;;;\211::<\3;;;:::\315\315\315\202\377\377\377\1\376\376" \
- "\376\361\377\377\377\23\377\377\375\375\376\377\376\377\377\376\377\375" \
- "\377\374\377\377\377\375\375\377\376\377\377\377\377\377\375\371\372" \
- "\364\242\321g\215\306A\212\307>\215\306A\212\306@\214\305@\212\306B\241" \
- "\322_\367\372\361\204\377\377\377\1\377\377\375\220\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\363\363\363__a99;\202::<\6;;=::<99;;;=99;" \
- ";;=\203::<\1\205\205\207\204\377\377\377\1\376\376\376\377\377\377\377" \
- "\362\377\377\377\1\376\376\376\202\377\377\377\22\376\376\376\265\265" \
- "\267::<99;;;=::<;;=99;;;=::<;;=::<;;=::<FFH\331\331\331\377\377\377\376" \
- "\376\376\216\377\377\377\1\265\265\267\203::<\1;;=\202::<\4;;=::<GGI" \
- "\332\332\332\210\377\377\377\1\376\376\376\353\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\376\376\376\363\377\377\377\17\376\377\377\376" \
- "\377\375\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377" \
- "\367\374\365\240\320b\215\307=\213\305=\215\306A\215\305>\214\305@\214" \
- "\306>\202\214\305@\4\241\321a\371\374\365\376\376\377\377\377\375\202" \
- "\376\377\377\221\377\377\377\1\376\376\376\203\377\377\377\3\362\362" \
- "\362``b99;\205::<\1;;=\203::<\6;;=99;\235\235\237\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\377\366\377\377\377\2\332\332\332FFH\202" \
- ";;=\4""99;;;=::<;;=\205::<\2FFH\332\332\334\202\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\213\377\377\377\4\266\266\26699;::<;;=\202" \
- "::<\1;;=\202::<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\375\377\377\377\1\376\376\376\363\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\21\370\373\364\241\321c\216\306\77\212\306@\214\306>\215\305" \
- "@\212\306@\213\310=\214\306<\216\306\77\214\304=\214\306>\241\321c\372" \
- "\375\362\376\376\376\377\376\377\376\376\374\220\377\377\377\2\376\376" \
- "\376\377\377\377\203\376\376\376\4\377\377\377\364\364\364FFH;;=\202" \
- "::<\1;;=\202::<\1;;=\203::<\3;;=::<\265\265\265\377\377\377\377\367\377" \
- "\377\377\4\362\362\362SSU::<;;=\205::<\1""99;\202;;=\3::<;;=\265\265" \
- "\267\216\377\377\377\3\376\376\376\377\377\377\265\265\265\202::<\5;" \
- ";=99;;;=::<;;=\204::<\4;;=FFH\332\332\332\376\376\376\205\377\377\377" \
- "\1\376\376\376\355\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\366\377\377\377\1\375\377\376\202\377\377\375\24\377\377\377\376" \
- "\376\376\373\373\363\243\322b\213\307A\214\306>\215\305@\214\305@\212" \
- "\307>\214\306>\215\305>\213\307A\214\305@\216\310@\214\306>\215\305>" \
- "\242\320c\366\373\364\375\377\376\377\376\377\221\377\377\377\1\376\376" \
- "\376\204\377\377\377\3\376\376\376\333\333\333EEG\202;;=\2::<;;=\207" \
- "::<\3GGI\332\332\332\376\376\376\377\377\377\377\365\377\377\377\1__" \
- "a\205::<\10;;=::<;;=::<;;=::<;;=\265\265\265\202\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\213\377\377\377\1\266\266\266\203::<\5""9" \
- "9;<<>::<;;=::<\202;;=\203::<\4;;=FFH\333\333\333\376\376\376\202\377" \
- "\377\377\1\376\376\376\355\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\363\377\377\377\3\377\376" \
- "\377\377\377\377\375\377\376\202\377\377\377\2\373\373\363\241\321d\202" \
- "\214\306>\17\216\306=\215\305@\215\307\77\214\306>\217\304>\214\306>" \
- "\214\305B\215\307\77\211\305A\215\306A\216\306\77\214\305@\242\322e\370" \
- "\373\364\377\377\375\230\377\377\377\1\333\333\335\203::<\202;;=\206" \
- "::<\3;;=FFH\363\363\363\377\377\377\377\364\377\377\377\1\204\204\206" \
- "\203::<\1;;=\207::<\2;;=\204\204\206\220\377\377\377\1\346\346\346\204" \
- "::<\1;;=\203::<\1;;=\202::<\202;;=\203::<\2FFH\332\332\332\357\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\204\377\377" \
- "\377\1\377\377\375\202\377\377\377\17\377\376\377\370\373\364\243\322" \
- "b\214\306>\213\310\77\212\307>\214\306>\215\306C\212\307>\214\306<\213" \
- "\310\77\214\305@\214\306<\214\306>\216\306\77\203\214\306>\3\214\306" \
- "<\265\334\211\376\376\376\222\377\377\377\1\376\376\376\205\377\377\377" \
- "\4\376\376\377\265\265\267::<;;=\212::<\1___\377\377\377\377\363\377" \
- "\377\377\1\265\265\267\204::<\1;;=\206::<\2;;=\203\203\203\222\377\377" \
- "\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\204::<\3;;=FFH\332\332" \
- "\332\206\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\345\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375" \
- "\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370" \
- "\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4" \
- "\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306" \
- ">\215\307\77\214\305@\244\317c\367\375\361\233\377\377\377\3\234\234" \
- "\236::<99;\211::<\2;;=\204\204\206\377\377\377\377\360\377\377\377\13" \
- "\376\376\376\332\332\33299;::<99;;;=::<99;;;=::<;;=\202::<\3;;=^^`\364" \
- "\364\364\223\377\377\377\12\265\265\267;;=::<;;=99;;;=::<;;=::<;;=\202" \
- "::<\1;;=\203::<\3;;=FFF\332\332\332\206\377\377\377\1\376\376\376\377" \
- "\377\377\377\345\377\377\377\6\376\376\377\377\376\377\375\376\377\376" \
- "\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373" \
- "\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212" \
- "\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306" \
- ">\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\233" \
- "\377\377\377\1\204\204\206\203::<\13;;=::<;;=::<;;=::<;;=::<;;=\266\266" \
- "\266\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\352\377" \
- "\377\377\2\363\363\363TTV\202::<\3;;=99;;;=\204::<\4;;=99;FFH\363\363" \
- "\363\224\377\377\377\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<" \
- "\1;;=\203::<\1;;=\203::<\2GGI\332\332\332\203\377\377\377\1\376\376\376" \
- "\377\377\377\377\347\377\377\377\7\377\377\375\375\376\377\376\377\377" \
- "\376\377\375\377\374\377\377\377\375\375\377\376\202\377\377\377\5\372" \
- "\373\366\240\320b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305" \
- "@\212\306@\214\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@" \
- "\214\306>\215\307\77\215\305@\242\320c\370\373\362\377\377\373\377\376" \
- "\377\377\377\375\232\377\377\377\3\376\376\376\377\377\377^^`\202;;=" \
- "\205::<\1""99;\202;;=\5::<;;=\332\332\332\377\377\377\376\376\376\377" \
- "\377\377\377\347\377\377\377\1\376\376\376\204\377\377\377\1lln\204:" \
- ":<\202;;=\203::<\6;;=99;GGI\332\332\332\377\377\377\376\376\376\225\377" \
- "\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;;;=::<\202;;" \
- "=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376\376\377\377" \
- "\377\377\342\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377" \
- "\376\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307" \
- "\77\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216" \
- "\306\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306" \
- ">\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\234\377\377\377\2\364\364\364RRT\202::<\4""99;;;=::<;;=\205::<\3SSU" \
- "\362\362\362\377\377\377\202\376\376\376\377\377\377\377\351\377\377" \
- "\377\1\234\234\236\204::<\1;;=\203::<\1;;=\203::<\1\265\265\267\231\377" \
- "\377\377\2\265\265\267;;=\203::<\2""99;;;=\202::<\1;;=\202::<\1;;=\202" \
- "::<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\377\377\377\377\342\377\377\377\202\377\377\375\3" \
- "\377\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243" \
- "\322b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B" \
- "\214\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214" \
- "\306>\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377" \
- "\377\375\235\377\377\377\3\376\376\376\332\332\334GGI\202;;=\6::<;;=" \
- "99;;;=::<;;=\203::<\1yyy\202\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\345\377\377\377\4\376\376\376\317\317\317::<;;=\202" \
- "::<\3;;=99;;;=\204::<\6;;=\221\221\223\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\226\377\377\377\3\376\376\376\265\265\267;;=\202::<" \
- "\2;;=99;\205::<\1;;=\204::<\4;;=FFH\332\332\332\376\376\376\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\342\377\377\377\1\375\377\376\202" \
- "\377\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307" \
- "B\212\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214" \
- "\306<\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307" \
- ">\244\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377" \
- "\377\377\375\377\376\377\236\377\377\377\4\265\265\267::<;;=99;\202;" \
- ";=\205::<\202;;=\1\250\250\250\202\377\377\377\1\376\376\376\377\377" \
- "\377\377\343\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363" \
- "FFH;;=\202::<\5;;=::<;;=::<99;\202;;=\2::<kkm\205\377\377\377\1\376\376" \
- "\376\227\377\377\377\1\265\265\265\204::<\6;;=::<;;=::<;;=::<\202;;=" \
- "\203::<\4;;=FFH\333\333\333\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\343\377\377\377\3\377\376\377\377\377\377\375\377\376" \
- "\202\377\377\377\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214" \
- "\305@\213\310=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214" \
- "\306>\215\305>\217\304@\215\307\77\215\307=\242\320c\367\375\361\376" \
- "\376\377\377\376\377\376\376\376\202\377\377\375\2\374\377\377\377\376" \
- "\377\234\377\377\377\1\376\376\376\202\377\377\377\10\221\221\221::<" \
- ";;=99;::<;;=::<;;=\205::<\2\333\333\333\376\376\376\377\377\377\377\347" \
- "\377\377\377\1kkk\202::<\1;;=\205::<\1;;=\202::<\2RRT\363\363\365\236" \
- "\377\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1;;=\202::<\202;;" \
- "=\203::<\2FFH\332\332\332\377\377\377\377\346\377\377\377\1\377\377\375" \
- "\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213\310" \
- "\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307=\214" \
- "\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244\317c" \
- "\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377\377" \
- "\377\202\377\376\377\241\377\377\377\2kkm::<\202;;=\1""99;\204::<\203" \
- ";;=\2SSU\364\364\364\377\377\377\377\336\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\204\377\377\377\2\376\376\376\250\250\252\202::" \
- "<\1;;=\210::<\2FFH\333\333\333\202\377\377\377\1\376\376\376\235\377" \
- "\377\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\204::<\3;;=FFH\332" \
- "\332\332\206\377\377\377\3\376\376\376\377\377\377\376\376\376\243\377" \
- "\377\377\4\376\377\377\377\377\375\377\376\377\376\376\377\202\377\377" \
- "\377\2\376\377\375\376\377\377\230\377\377\377\10\376\377\377\377\376" \
- "\377\376\377\377\376\377\375\376\376\376\376\377\377\377\377\377\377" \
- "\376\377\231\377\377\377\7\377\376\377\376\376\374\376\377\377\377\377" \
- "\375\374\377\377\376\377\377\377\376\377\231\377\377\377\17\375\377\374" \
- "\377\377\375\377\377\377\377\376\377\376\377\377\377\376\377\377\377" \
- "\377\376\377\377\376\376\374\377\377\377\377\377\373\377\377\377\376" \
- "\377\377\377\377\377\377\377\375\220\377\377\377\4\377\377\373\377\377" \
- "\377\377\377\375\377\377\377\202\376\377\377\2\377\377\375\377\377\373" \
- "\251\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377" \
- "\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373" \
- "\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214" \
- "\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215" \
- "\307\77\214\305@\244\317c\367\375\361\251\377\377\377\6\363\363\363T" \
- "TT::<;;=::<;;=\206::<\2;;=www\204\377\377\377\1\376\376\376\377\377\377" \
- "\377\340\377\377\377\2\332\332\332;;=\203::<\3;;=99;;;=\203::<\3;;=:" \
- ":<\265\265\267\204\377\377\377\1\376\376\376\235\377\377\377\12\265\265" \
- "\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\203::<\3;;=FFF\332\332\332" \
- "\206\377\377\377\1\376\376\376\244\377\377\377\202\377\377\375\1\377" \
- "\377\377\202\376\377\375\3\376\376\377\377\377\377\377\376\377\230\377" \
- "\377\377\3\376\377\375\377\377\377\377\377\373\202\377\376\377\2\377" \
- "\377\377\376\376\376\231\377\377\377\10\376\377\373\376\375\377\377\377" \
- "\375\377\376\377\377\375\377\377\377\373\377\376\377\377\377\375\230" \
- "\377\377\377\12\377\376\377\377\377\377\377\375\376\376\377\377\376\377" \
- "\372\376\377\377\377\377\377\376\377\375\377\376\377\377\377\375\203" \
- "\377\377\377\202\376\377\375\1\375\376\377\227\377\377\377\1\377\374" \
- "\377\250\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377" \
- "\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241" \
- "\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@" \
- "\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\251\377" \
- "\377\377\2\331\331\331;;=\206::<\1;;=\203::<\2;;=\265\265\265\204\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\322\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\2\363\363\363SSU\203::<\2;;=::<\202" \
- ";;=\2""99;;;=\202::<\1\204\204\204\206\377\377\377\1\376\376\376\234" \
- "\377\377\377\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203" \
- "::<\1;;=\203::<\2GGI\332\332\332\203\377\377\377\1\376\376\376\247\377" \
- "\377\377\1\377\377\375\202\377\376\377\1\377\375\377\202\377\377\377" \
- "\1\377\376\377\232\377\377\377\6\377\377\375\377\377\377\375\377\376" \
- "\376\377\375\377\377\375\377\375\377\230\377\377\377\202\377\377\375" \
- "\2\377\377\377\376\376\376\202\377\377\377\2\376\377\377\374\377\377" \
- "\230\377\377\377\1\377\377\375\202\377\376\377\1\375\376\377\203\377" \
- "\377\377\1\377\377\375\202\377\377\377\6\376\376\377\377\377\375\377" \
- "\377\377\377\375\377\377\376\377\377\377\375\220\377\377\377\1\376\377" \
- "\377\202\377\377\377\3\376\377\375\376\376\376\377\376\377\252\377\377" \
- "\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377\377" \
- "\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307\77" \
- "\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216\306" \
- "\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215\305" \
- "@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\252\377\377" \
- "\377\2\250\250\25099;\204::<\12;;=99;::<;;=99;::<FFH\346\346\346\377" \
- "\377\377\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\330" \
- "\377\377\377\1\376\376\376\204\377\377\377\3\221\221\221::<;;=\202::" \
- "<\5;;=::<;;=::<;;=\202::<\4___\363\363\363\377\377\377\376\376\376\202" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\234\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;" \
- ";;=::<\202;;=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376" \
- "\376\241\377\377\377\7\376\377\377\376\376\377\377\377\377\377\377\375" \
- "\376\377\375\375\377\376\376\377\377\230\377\377\377\3\376\376\377\376" \
- "\377\377\376\376\377\203\377\377\377\1\376\376\374\231\377\377\377\1" \
- "\377\376\377\202\377\377\377\202\376\377\377\1\376\376\376\232\377\377" \
- "\377\11\376\377\377\376\376\376\377\377\377\376\377\377\377\377\377\377" \
- "\377\375\376\377\377\376\376\377\376\377\377\202\377\377\377\5\377\377" \
- "\375\377\377\377\377\376\377\377\377\377\376\377\377\220\377\377\377" \
- "\10\376\376\377\377\376\377\377\377\377\376\376\376\377\376\377\377\377" \
- "\375\377\376\377\377\377\375\251\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\253\377\377\377\1yyy\205::<\3;;=::<99;\202;" \
- ";=\3::<__a\376\376\376\377\377\377\377\335\377\377\377\1\376\376\376" \
- "\202\377\377\377\5\301\301\301::<;;=99;;;=\207::<\2GGI\332\332\332\203" \
- "\377\377\377\1\376\376\376\243\377\377\377\2\265\265\267;;=\203::<\2" \
- "99;;;=\202::<\1;;=\202::<\1;;=\202::<\4;;=::<FFF\332\332\332\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\242\377\377\377" \
- "\1\377\377\375\204\377\377\377\1\376\377\377\231\377\377\377\202\377" \
- "\376\377\202\377\377\377\4\377\377\375\377\377\377\376\377\377\375\377" \
- "\376\230\377\377\377\203\377\377\375\202\377\377\377\2\376\376\376\376" \
- "\377\377\231\377\377\377\1\376\376\376\202\376\377\377\13\377\376\374" \
- "\377\376\377\376\376\374\376\377\377\377\377\377\376\377\377\377\377" \
- "\377\377\377\375\376\376\376\377\377\377\377\376\377\222\377\377\377" \
- "\202\377\377\375\5\377\377\377\376\377\377\377\377\377\377\377\375\376" \
- "\377\377\251\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376" \
- "\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214" \
- "\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>" \
- "\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370" \
- "\373\362\377\377\377\202\377\376\377\1\377\377\375\254\377\377\377\4" \
- "\363\363\363SSU;;=99;\202;;=\1""99;\204::<\3;;=::<\235\235\237\377\377" \
- "\377\377\334\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363" \
- "GGI\202::<\7;;=::<99;::<;;=::<;;=\202::<\2\266\266\266\376\376\376\204" \
- "\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\236\377\377" \
- "\377\3\376\376\376\265\265\267;;=\202::<\2;;=99;\205::<\1;;=\204::<\4" \
- ";;=FFH\332\332\332\376\376\376\205\377\377\377\1\376\376\376\240\377" \
- "\377\377\10\376\377\375\377\375\377\377\377\375\376\377\375\377\377\377" \
- "\377\376\377\377\377\377\376\376\374\230\377\377\377\10\374\377\377\377" \
- "\376\374\377\377\377\376\376\374\377\376\377\376\377\377\377\377\377" \
- "\377\376\377\230\377\377\377\3\377\377\375\377\377\377\376\377\375\203" \
- "\377\377\377\1\377\376\377\231\377\377\377\6\377\375\377\376\376\374" \
- "\377\377\377\377\376\377\376\377\375\377\376\377\202\377\377\377\2\377" \
- "\376\377\377\377\377\202\376\377\377\2\376\376\377\376\377\377\222\377" \
- "\377\377\2\377\377\375\377\375\377\202\376\377\377\4\376\376\376\376" \
- "\377\377\375\377\374\377\375\377\251\377\377\377\1\375\377\376\202\377" \
- "\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212" \
- "\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<" \
- "\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244" \
- "\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377" \
- "\377\375\377\376\377\252\377\377\377\5\376\376\376\377\377\377\333\333" \
- "\33399;;;=\202::<\5;;=99;;;=99;;;=\203::<\1\332\332\334\377\377\377\377" \
- "\330\377\377\377\1\376\376\376\205\377\377\377\1xxx\202::<\1;;=\202:" \
- ":<\1;;=\204::<\4:::xxx\376\376\376\377\377\377\202\376\376\376\205\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\237\377\377\377\1\265" \
- "\265\265\204::<\6;;=::<;;=::<;;=::<\202;;=\203::<\4;;=FFH\333\333\333" \
- "\376\376\376\202\377\377\377\1\376\376\376\242\377\377\377\7\376\376" \
- "\376\377\376\377\326\352\267\247\324o\247\324m\252\324r\247\324o\231" \
- "\252\324p\10\323\353\271\377\376\377\377\377\377\376\377\377\350\365" \
- "\333\253\323p\250\324r\251\324k\230\252\324p\10\250\325n\252\324p\277" \
- "\337\223\376\377\377\377\377\377\375\377\376\376\377\377\276\336\222" \
- "\230\252\324p\7\250\325p\250\324r\247\324o\253\324n\251\323m\346\364" \
- "\332\377\376\377\202\377\377\377\7\323\352\266\253\323p\251\323m\253" \
- "\323r\251\323o\247\324m\252\324r\220\252\324p\10\252\324n\253\324n\247" \
- "\324k\252\324p\254\325o\247\324m\252\324p\324\353\267\250\377\377\377" \
- "\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11\373\373\363" \
- "\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304" \
- ">\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307" \
- "\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376" \
- "\202\377\377\375\2\374\377\377\377\376\377\254\377\377\377\2\376\376" \
- "\376\251\251\251\202::<\5;;=::<;;=99;;;=\204::<\1``b\377\377\377\377" \
- "\334\377\377\377\3\376\376\376\301\301\301:::\205::<\1""99;\202::<\4" \
- ";;=::<SSS\362\362\362\207\377\377\377\1\376\376\376\202\377\377\377\202" \
- "\376\376\376\240\377\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1" \
- ";;=\202::<\202;;=\203::<\2FFH\332\332\332\245\377\377\377\10\376\377" \
- "\377\377\377\377\305\342\237\215\306A\215\307\77\215\305@\213\310=\214" \
- "\305@\230\214\306>\10\304\341\237\377\374\377\377\376\377\377\377\377" \
- "\341\362\322\215\305>\212\307>\215\305>\230\214\306>\4\215\305<\214\305" \
- "@\252\324r\376\377\377\202\377\377\377\2\377\377\375\250\324r\230\214" \
- "\306>\20\215\307\77\214\306>\214\306<\214\305B\212\307>\337\363\320\377" \
- "\376\377\376\377\377\376\376\374\305\342\240\214\305@\213\310=\215\305" \
- "@\214\306>\212\307<\214\305@\220\214\306>\10\214\305@\215\306C\212\307" \
- "<\214\306>\215\305>\212\306@\215\305>\304\343\237\250\377\377\377\1\377" \
- "\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306" \
- ">\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215" \
- "\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<" \
- "\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377" \
- "\377\377\377\202\377\376\377\257\377\377\377\1kkm\202::<\2;;=::<\202" \
- ";;=\3::<;;=::<\202;;=\1\233\233\233\377\377\377\377\330\377\377\377\1" \
- "\376\376\376\202\377\377\377\3\364\364\366FFH;;=\205::<\3;;=::<;;=\202" \
- "::<\1\316\316\316\256\377\377\377\2\265\265\265;;=\203::<\1;;=\205::" \
- "<\1;;=\204::<\3;;=FFH\332\332\332\206\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\235\377\377\377\1\304\343\240\235\214\306>\1\305\342" \
- "\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377" \
- "\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377" \
- "\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306" \
- ">\1\214\305@\205\214\306>\1\305\342\237\241\377\377\377\10\376\376\377" \
- "\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377\377\377" \
- "\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307B\213" \
- "\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306<\215" \
- "\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244\317" \
- "c\367\375\361\267\377\377\377\2\363\363\363FFF\204::<\1;;=\203::<\4:" \
- "9>::<;;=\332\332\332\377\377\377\377\332\377\377\377\1yy{\202::<\2""9" \
- "9;;;=\202::<\6;;=99;::<;;=::<\234\234\236\260\377\377\377\12\265\265" \
- "\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\203::<\3;;=FFF\332\332\332" \
- "\206\377\377\377\1\376\376\376\236\377\377\377\1\304\343\240\235\214" \
- "\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250" \
- "\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316" \
- "\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305" \
- "@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\240\377\377\377" \
- "\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377\375\375\377" \
- "\376\203\377\377\377\27\377\377\375\372\373\366\241\321a\217\304@\212" \
- "\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306>\214\305B" \
- "\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77\214\306>\242" \
- "\322b\370\373\362\376\376\377\377\375\376\267\377\377\377\1\301\301\301" \
- "\205::<\3;;=::<;;=\202::<\2""99;```\377\377\377\377\331\377\377\377\1" \
- "\301\301\301\202::<\1;;=\203::<\1;;=\202::<\3<<>::<__a\261\377\377\377" \
- "\7\376\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203::<\1;;=\203" \
- "::<\2GGI\332\332\332\203\377\377\377\1\376\376\376\240\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\240\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377" \
- "\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320" \
- "b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214" \
- "\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307" \
- "\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375" \
- "\270\377\377\377\3\204\204\204::<;;=\206::<\4;;=::<;;=\234\234\236\377" \
- "\377\377\377\325\377\377\377\4\376\376\376\377\377\377\363\363\363SS" \
- "U\211::<\4""99;::<\332\332\334\376\376\376\202\377\377\377\1\376\376" \
- "\376\257\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::<\3""99;" \
- ";;=::<\202;;=\202::<\4;;=::<GGI\332\332\332\210\377\377\377\1\376\376" \
- "\376\232\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377" \
- "\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252" \
- "\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342" \
- "\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305" \
- "@\205\214\306>\1\305\342\237\241\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\270\377\377\377\3\363\363\363TTT;;=\202::<\1" \
- ";;=\203::<\5""99;;;=::<;;=\332\332\332\377\377\377\377\323\377\377\377" \
- "\1\376\376\376\202\377\377\377\4\221\221\221;;=99;;;=\202::<\1;;=\202" \
- "::<\1;;=\202::<\1\233\233\233\202\377\377\377\1\376\376\376\262\377\377" \
- "\377\2\265\265\267;;=\203::<\2""99;;;=\202::<\1;;=\202::<\1;;=\202::" \
- "<\4;;=::<FFF\332\332\332\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\304\343\240\235\214\306>\1\305\342\237" \
- "\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377" \
- "\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\240\377\377\377\202\377\377\375\3\377" \
- "\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243\322" \
- "b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B\214" \
- "\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214\306" \
- ">\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377\377" \
- "\375\272\377\377\377\7\316\316\316::<;;=::<99;::<;;=\205::<\1kkm\377" \
- "\377\377\377\325\377\377\377\1\315\315\315\206::<\6""99;::<99;;;=::<" \
- "```\206\377\377\377\1\376\376\376\257\377\377\377\3\376\376\376\265\265" \
- "\267;;=\202::<\2;;=99;\205::<\1;;=\204::<\4;;=FFH\332\332\332\376\376" \
- "\376\205\377\377\377\1\376\376\376\232\377\377\377\1\304\343\240\235" \
- "\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306>\1" \
- "\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362" \
- "\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214" \
- "\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\241\377\377" \
- "\377\1\375\377\376\202\377\377\375\34\377\377\377\376\376\376\373\373" \
- "\363\243\322b\211\307B\212\307<\215\305>\214\306>\212\307>\214\305@\217" \
- "\304>\212\307<\214\306<\214\306>\215\307\77\213\307A\214\306>\215\305" \
- "@\215\307\77\212\307>\244\317c\370\373\362\377\377\373\376\377\377\377" \
- "\376\377\375\376\377\377\377\375\377\376\377\272\377\377\377\2\222\222" \
- "\22299;\205::<\1;;=\203::<\2;;=\250\250\250\377\377\377\377\324\377\377" \
- "\377\4```;;=99;;;=\204::<\5;;=::<;;=::<\331\331\331\207\377\377\377\1" \
- "\376\376\376\260\377\377\377\1\265\265\265\204::<\6;;=::<;;=::<;;=::" \
- "<\202;;=\203::<\4;;=FFH\333\333\333\376\376\376\202\377\377\377\1\376" \
- "\376\376\234\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203" \
- "\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1" \
- "\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\240\377\377\377\3\377\376\377\377\377" \
- "\377\375\377\376\202\377\377\377\11\373\373\363\241\321d\214\306>\213" \
- "\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202\215\307=\14\214" \
- "\306>\215\305>\214\306>\215\305>\217\304@\215\307\77\215\307=\242\320" \
- "c\367\375\361\376\376\377\377\376\377\376\376\376\202\377\377\375\2\374" \
- "\377\377\377\376\377\262\377\377\377\2\376\376\376\377\377\377\202\376" \
- "\376\376\204\377\377\377\5\363\363\363SSU99;::<;;=\207::<\2GGG\363\363" \
- "\363\377\377\377\377\322\377\377\377\4\234\234\234:::::<;;=\202::<\1" \
- ";;=\203::<\202;;=\1\234\234\236\207\377\377\377\1\376\376\376\262\377" \
- "\377\377\1\265\265\267\203::<\2""99;;;=\203::<\1;;=\202::<\202;;=\203" \
- "::<\2FFH\332\332\332\237\377\377\377\1\304\343\240\235\214\306>\1\305" \
- "\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377" \
- "\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377" \
- "\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214" \
- "\306>\1\214\305@\205\214\306>\1\305\342\237\240\377\377\377\1\377\377" \
- "\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213" \
- "\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307" \
- "=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244" \
- "\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377" \
- "\377\377\202\377\376\377\273\377\377\377\2\376\376\376\316\316\316\206" \
- "::<\202;;=\4::<;;=::<xxx\377\377\377\377\321\377\377\377\2\346\346\350" \
- "FFH\203::<\1;;=\206::<\1__a\202\377\377\377\1\377\377\375\271\377\377" \
- "\377\2\265\265\265;;=\203::<\1;;=\205::<\1;;=\203::<\4;;=::<GGI\331\331" \
- "\331\236\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377" \
- "\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252" \
- "\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342" \
- "\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305" \
- "@\205\214\306>\1\305\342\237\231\377\377\377\10\376\376\377\377\377\375" \
- "\377\377\377\377\377\375\377\377\377\377\376\377\377\377\375\376\377" \
- "\377\202\377\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305" \
- "@\214\306<\202\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214" \
- "\306>\6\212\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\305" \
- "\377\377\377\2xxz;;=\203::<\3;;=::<;;=\203::<\2;;=\315\315\315\377\377" \
- "\377\377\313\377\377\377\203\376\376\376\202\377\377\377\3xxz;;=::<\202" \
- ";;=\1""99;\202;;=\202::<\4;;=::<\333\333\335\376\376\376\274\377\377" \
- "\377\12\265\265\267;;=::<;;=99;;;=::<;;=::<;;=\202::<\1;;=\202::<\4;" \
- ";=99;GGI\332\332\332\235\377\377\377\1\304\343\240\235\214\306>\1\305" \
- "\342\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377" \
- "\377\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377" \
- "\377\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214" \
- "\306>\1\214\305@\205\214\306>\1\305\342\237\230\377\377\377\6\376\376" \
- "\377\377\376\377\375\376\377\376\377\377\377\377\375\375\377\376\203" \
- "\377\377\377\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214" \
- "\306>\215\305>\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77" \
- "\215\305>\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370" \
- "\373\362\376\376\377\377\375\376\304\377\377\377\2\364\364\364FFH\203" \
- "::<\2""99;;;=\203::<\4<<>99;TTT\376\376\376\377\377\377\377\310\377\377" \
- "\377\1\376\376\376\205\377\377\377\3\316\316\316::<99;\206::<\1;;=\202" \
- "::<\1\221\221\221\203\377\377\377\1\376\376\376\272\377\377\377\7\376" \
- "\376\376\265\265\265;;=::<;;=::<;;=\203::<\1;;=\203::<\6;;=::<;;=::<" \
- "FFH\332\332\332\234\377\377\377\1\304\343\240\235\214\306>\1\305\342" \
- "\237\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377" \
- "\377\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377" \
- "\3\305\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306" \
- ">\1\214\305@\205\214\306>\1\305\342\237\230\377\377\377\7\377\377\375" \
- "\375\376\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377" \
- "\376\202\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305" \
- ">\202\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215" \
- "\307\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373" \
- "\362\377\377\373\377\376\377\377\377\375\304\377\377\377\3\376\376\376" \
- "\265\265\267;;=\204::<\1""99;\203::<\3;;=::<\234\234\234\203\377\377" \
- "\377\1\376\376\376\377\377\377\377\306\377\377\377\7\376\376\376\377" \
- "\377\377\376\376\376\377\377\377__a::<;;=\203::<\7;;=::<;;=::<;;=SSU" \
- "\363\363\363\300\377\377\377\2\264\264\264;;=\202::<\2""99;;;=\202::" \
- "<\3""99;;;=::<\202;;=\204::<\2FFH\332\332\332\233\377\377\377\1\304\343" \
- "\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214" \
- "\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77" \
- "\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214" \
- "\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\231" \
- "\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377" \
- "\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215\307" \
- "=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\301\377" \
- "\377\377\1\376\376\376\204\377\377\377\2kkm99;\203::<\202;;=\1""99;\203" \
- "::<\2FFH\363\363\363\377\377\377\377\310\377\377\377\1\376\376\376\203" \
- "\377\377\377\3\250\250\252::<;;=\203::<\1;;=\202::<\5;;=::<;;=\301\301" \
- "\301\376\376\376\301\377\377\377\2\265\265\267;;=\203::<\2""99;;;=\202" \
- "::<\1;;=\202::<\2;;=::<\202;;=\3::<GGI\332\332\332\232\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\230\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377" \
- "\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215" \
- "\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>" \
- "\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362" \
- "\377\377\377\202\377\376\377\1\377\377\375\301\377\377\377\1\376\376" \
- "\376\204\377\377\377\2\376\376\376\346\346\350\203::<\4;;=99;::<;;=\204" \
- "::<\3\203\203\203\377\377\377\376\376\376\377\377\377\377\311\377\377" \
- "\377\2\364\364\364FFH\202::<\5;;=::<;;=::<;;=\202::<\2;;=kkm\202\377" \
- "\377\377\1\376\376\376\300\377\377\377\3\376\376\376\265\265\267;;=\202" \
- "::<\2;;=99;\204::<\3;;=99;;;=\202::<\3;;=::<\265\265\265\232\377\377" \
- "\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362" \
- "\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>" \
- "\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215" \
- "\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1" \
- "\305\342\237\231\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\301\377\377\377\202\376\376\376\2\377\377\377\376\376\376\202\377" \
- "\377\377\1\234\234\236\203::<\1;;=\206::<\2;;=\331\331\331\377\377\377" \
- "\377\306\377\377\377\1\376\376\376\203\377\377\377\4\233\233\233;;=:" \
- ":<;;=\202::<\3;;=99;;;=\203::<\1\346\346\350\305\377\377\377\1\265\265" \
- "\265\204::<\3;;=::<;;=\203::<\5;;=99;;;=::<\265\265\267\233\377\377\377" \
- "\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\230\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\301\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\6\364" \
- "\364\364SSU::<;;=::<;;=\205::<\4""99;kkk\377\377\377\376\376\376\377" \
- "\377\377\377\307\377\377\377\2\346\346\346;;;\204::<\3;;=99;;;=\203:" \
- ":<\1\234\234\236\205\377\377\377\1\376\376\376\301\377\377\377\1\265" \
- "\265\267\203::<\2""99;;;=\202::<\1;;;\204::<\1\265\265\267\234\377\377" \
- "\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362" \
- "\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>" \
- "\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215" \
- "\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1" \
- "\305\342\237\230\377\377\377\1\377\377\375\202\377\377\377\32\377\376" \
- "\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305" \
- "@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212" \
- "\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377" \
- "\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377\306\377" \
- "\377\377\1\376\376\376\202\377\377\377\2\301\301\303::<\202;;=\11::<" \
- ";;=::<;;=::<99;;;=::<\301\301\301\377\377\377\377\306\377\377\377\12" \
- "\376\376\376\377\377\377\204\204\204;;=::<:9>;;=::<99;;;=\203::<\5SS" \
- "U\363\363\363\376\376\376\377\377\377\376\376\376\305\377\377\377\5\265" \
- "\265\26599;;;=::<;;=\206::<\1\266\266\270\235\377\377\377\1\304\343\240" \
- "\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235\214\306" \
- ">\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307\77\342" \
- "\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214\306" \
- ">\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\221\377" \
- "\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377" \
- "\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243" \
- "\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214" \
- "\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77" \
- "\214\305@\244\317c\367\375\361\322\377\377\377\1kkk\203::<\4;;=99;::" \
- "<;;=\203::<\1SSU\210\377\377\377\1\376\376\376\377\377\377\377\276\377" \
- "\377\377\1\316\316\316\202::<\1;;=\202::<\202;;=\202::<\4;;=::<\265\265" \
- "\267\376\376\376\307\377\377\377\3\376\376\376\377\377\377\265\265\267" \
- "\207::<\3""99;\266\266\270\376\376\377\202\377\377\377\1\376\376\376" \
- "\232\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\6\376\376\377\377\376\377\375" \
- "\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377" \
- "\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305" \
- "@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212" \
- "\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377" \
- "\375\376\321\377\377\377\1\346\346\346\204::<\1;;=\202::<\5;;=99;;;=" \
- "::<\266\266\266\205\377\377\377\202\376\376\376\2\377\377\377\376\376" \
- "\376\377\377\377\377\273\377\377\377\5\376\376\376\377\377\377kkm::<" \
- ";;=\202::<\1;;=\203::<\3;;=::<kkm\203\377\377\377\1\376\376\376\306\377" \
- "\377\377\4\376\376\376\377\377\377\265\265\265::<\202;;=\202::<\2""9" \
- "9;\266\266\270\237\377\377\377\1\304\343\240\235\214\306>\1\305\342\237" \
- "\203\377\377\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377" \
- "\1\252\324p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305" \
- "\342\237\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214" \
- "\305@\205\214\306>\1\305\342\237\220\377\377\377\7\377\377\375\375\376" \
- "\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377\376\202" \
- "\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>\202" \
- "\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307\77" \
- "\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\322\377\377\377\1\221\221\223\202" \
- "::<\12;;=99;::<;;=::<;;=99;;;=EEG\364\364\364\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\275\377\377\377\2" \
- "\316\316\320;;=\205::<\2""99;;;=\203::<\3\316\316\316\377\377\377\376" \
- "\376\376\313\377\377\377\3\265\265\265;;=99;\202::<\1\266\266\270\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1" \
- "\304\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316" \
- "\235\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215" \
- "\307\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202" \
- "\214\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237" \
- "\221\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377" \
- "\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215" \
- "\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77" \
- "\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242" \
- "\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\322" \
- "\377\377\377\2\363\363\363FFH\203::<\202;;=\203::<\3;;=::<\235\235\235" \
- "\204\377\377\377\1\376\376\376\377\377\377\377\277\377\377\377\1__a\202" \
- "::<\1;;=\203::<\5;;=::<;;=::<\204\204\206\312\377\377\377\1\376\376\376" \
- "\202\377\377\377\7\376\376\376\377\377\377\265\265\267;;=99;\266\266" \
- "\270\376\376\377\203\377\377\377\202\376\376\376\233\377\377\377\1\304" \
- "\343\240\235\214\306>\1\305\342\237\203\377\377\377\1\342\362\316\235" \
- "\214\306>\1\250\325p\204\377\377\377\1\252\324p\234\214\306>\2\215\307" \
- "\77\342\362\316\203\377\377\377\3\305\342\237\214\305@\215\305>\202\214" \
- "\306>\1\214\305@\222\214\306>\1\214\305@\205\214\306>\1\305\342\237\220" \
- "\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202" \
- "\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305" \
- ">\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212" \
- "\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377" \
- "\377\377\202\377\376\377\1\377\377\375\324\377\377\377\4\234\234\234" \
- ";;=::<<<>\204::<\1;;=\202::<\2FFH\363\363\363\204\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\377\377\377\377\272\377\377\377\1" \
- "\265\265\265\202::<\5;;=99;::<;;=::<\202;;=\3""99;;;=\346\346\346\320" \
- "\377\377\377\2\264\264\266\265\265\267\203\377\377\377\202\376\376\376" \
- "\235\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\221\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\320\377\377\377\1\376\376\376\203\377\377\377\2SSU;;=\203" \
- "::<\1;;=\203::<\3""99;::<\234\234\236\203\377\377\377\1\376\376\376\377" \
- "\377\377\377\276\377\377\377\5RRT99;;;=99;;;=\203::<\4""99;;;=::<\234" \
- "\234\236\314\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376" \
- "\235\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\3\377\376\377\377\377\377\375" \
- "\377\376\202\377\377\377\11\373\373\363\241\321d\214\306>\213\310=\214" \
- "\306>\214\305@\213\310=\212\306@\217\304>\202\215\307=\14\214\306>\215" \
- "\305>\214\306>\215\305>\217\304@\215\307\77\215\307=\242\320c\367\375" \
- "\361\376\376\377\377\376\377\376\376\376\202\377\377\375\2\374\377\377" \
- "\377\376\377\324\377\377\377\3\265\265\265;;=99;\202;;=\1""99;\202;;" \
- "=\5::<;;=::<GGI\363\363\363\206\377\377\377\1\376\376\376\377\377\377" \
- "\377\271\377\377\377\2\266\266\270;;=\202::<\1;;=\202::<\6;;=::<;;=:" \
- ":<FFH\363\363\363\324\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\236\377\377\377\1\304\343\240\235\214\306>\1\305\342\237\203\377\377" \
- "\377\1\342\362\316\235\214\306>\1\250\325p\204\377\377\377\1\252\324" \
- "p\234\214\306>\2\215\307\77\342\362\316\203\377\377\377\3\305\342\237" \
- "\214\305@\215\305>\202\214\306>\1\214\305@\222\214\306>\1\214\305@\205" \
- "\214\306>\1\305\342\237\220\377\377\377\1\377\377\375\202\377\377\377" \
- "\32\377\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215" \
- "\305>\215\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>" \
- "\215\306A\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377" \
- "\377\377\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376" \
- "\377\326\377\377\377\1__a\203::<\1;;=\203::<\1;;=\202::<\1\234\234\234" \
- "\377\377\377\377\274\377\377\377\1\376\376\376\203\377\377\377\3SSU;" \
- ";=99;\210::<\1\234\234\234\365\377\377\377\7\376\377\375\304\341\236" \
- "\215\306A\214\305B\215\307=\212\307>\212\306@\230\214\305@\1\304\341" \
- "\236\203\377\377\377\4\341\362\320\214\306>\213\310\77\215\305@\231\214" \
- "\305@\2\215\307\77\252\322q\202\377\376\377\202\377\377\377\1\250\325" \
- "n\230\214\305@\3\215\305>\215\306A\215\307\77\202\214\306<\10\342\360" \
- "\317\376\377\377\377\377\375\376\377\377\305\342\240\215\305@\212\306" \
- "@\215\305>\202\214\305@\1\215\307=\220\214\305@\10\214\306>\212\306@" \
- "\216\306A\212\307>\215\305>\215\305@\214\305@\304\343\237\211\377\377" \
- "\377\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377" \
- "\376\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322" \
- "b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305" \
- "@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214" \
- "\305@\244\317c\367\375\361\335\377\377\377\2\376\376\376\316\316\316" \
- "\211::<\3;;=GGI\363\363\365\203\377\377\377\1\376\376\376\377\377\377" \
- "\377\266\377\377\377\10\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\265\265\265;;=::<;;=\207::<\2GGI\363\363\363\364\377\377\377\7\377\376" \
- "\377\377\377\375\304\341\236\215\305>\215\307\77\214\306>\214\305@\231" \
- "\214\306>\7\304\343\237\377\377\377\375\376\377\377\377\375\341\360\321" \
- "\215\306A\214\305@\233\214\306>\6\252\324n\376\376\376\377\377\377\376" \
- "\377\377\377\376\377\252\324p\230\214\306>\7\215\306A\212\307>\214\306" \
- ">\212\307>\214\306>\343\361\320\376\377\377\202\377\377\377\7\305\342" \
- "\237\215\305>\213\310\77\214\306>\214\305@\212\306@\215\307\77\222\214" \
- "\306>\6\215\305>\212\307>\214\306>\215\307=\215\305@\305\342\237\210" \
- "\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377" \
- "\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241\321a" \
- "\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306" \
- ">\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77" \
- "\214\306>\242\322b\370\373\362\376\376\377\377\375\376\336\377\377\377" \
- "\1kkm\202::<\1;;=\205::<\202;;=\3\233\233\235\377\377\377\376\376\376" \
- "\377\377\377\377\274\377\377\377\3SSU99;;;=\20299;\1;;=\203::<\3;;=:" \
- ":<\234\234\236\366\377\377\377\7\376\377\375\305\342\240\213\304\77\213" \
- "\310\77\214\305@\215\306A\216\306=\230\214\306>\10\305\342\240\377\377" \
- "\375\376\377\377\377\376\377\341\360\317\214\306<\214\305@\212\306@\231" \
- "\214\306>\7\215\305@\252\324p\377\377\377\377\377\375\376\377\377\377" \
- "\376\374\252\324p\230\214\306>\7\212\307>\215\307\77\216\306A\212\307" \
- ">\213\304\77\343\361\320\377\377\375\202\377\377\377\3\307\342\237\214" \
- "\304\77\213\310\77\203\214\306>\1\215\307\77\220\214\306>\4\214\305@" \
- "\214\306<\215\304B\213\310\77\202\212\307>\2\215\305@\305\342\240\210" \
- "\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374" \
- "\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215" \
- "\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D" \
- "\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77" \
- "\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\331" \
- "\377\377\377\1\376\376\376\203\377\377\377\4\376\376\376\317\317\321" \
- "::<;;=\203::<\3;;=::<;;=\202::<\4FFH\363\363\363\377\377\377\376\376" \
- "\376\377\377\377\377\264\377\377\377\1\376\376\376\205\377\377\377\1" \
- "\265\265\267\202;;=\3::<99;;;=\202::<\202;;=\2::<SSU\366\377\377\377" \
- "\7\377\376\377\375\377\374\304\341\237\216\306\77\212\307<\213\310\77" \
- "\212\307>\231\214\306>\2\305\342\240\377\377\377\202\377\376\377\3\341" \
- "\362\316\216\306\77\214\306<\231\214\306>\3\215\305@\212\307>\252\324" \
- "p\203\377\377\377\2\377\376\377\247\324o\230\214\306>\20\215\306A\214" \
- "\305B\215\307\77\211\305\77\214\304;\342\362\315\377\377\377\377\376" \
- "\377\376\376\376\305\342\237\215\306A\210\307;\215\306A\216\306A\214" \
- "\306>\212\306@\220\214\306>\202\214\305@\6\216\305C\213\305=\214\305" \
- "B\215\307\77\216\306\77\303\344\237\211\377\377\377\37\376\377\377\376" \
- "\377\375\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377" \
- "\370\373\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<" \
- "\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215" \
- "\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376" \
- "\377\377\376\376\376\376\377\377\331\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\1kkm\202::<\6;;=::<;;=::<;;=::<\202" \
- ";;=\1\233\233\235\377\377\377\377\267\377\377\377\1\376\376\376\204\377" \
- "\377\377\2kkm;;=\202::<\2;;=::<\202;;=\203::<\5\265\265\267\377\377\377" \
- "\376\376\376\377\377\377\376\376\376\362\377\377\377\2\376\377\377\377" \
- "\376\377\202\377\377\377\202\377\376\377\2\377\377\377\377\377\375\231" \
- "\377\377\377\4\377\376\377\376\377\377\375\377\376\377\377\377\202\376" \
- "\377\377\231\377\377\377\10\374\377\375\377\376\377\377\377\375\376\376" \
- "\376\377\377\377\376\377\377\376\376\374\377\376\377\230\377\377\377" \
- "\1\377\376\377\203\377\377\375\4\376\377\377\377\375\377\377\377\377" \
- "\376\377\377\202\377\377\377\3\376\376\376\377\376\377\377\377\375\202" \
- "\376\377\377\1\377\377\375\220\377\377\377\10\377\377\375\377\377\377" \
- "\376\376\376\377\377\377\377\377\375\377\377\377\376\377\377\377\375" \
- "\377\210\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377" \
- "\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305" \
- "@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212" \
- "\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373" \
- "\362\377\377\377\202\377\376\377\1\377\377\375\340\377\377\377\1\316" \
- "\316\316\203::<\3;;=99;;;=\204::<\2FFH\363\363\363\202\377\377\377\1" \
- "\376\376\376\377\377\377\377\264\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\316\316\320\206::<\1;;=\203::<\2SSU\376\376\376\366\377\377\377" \
- "\1\377\377\375\202\377\376\377\202\377\377\377\3\377\377\375\377\377" \
- "\377\376\377\377\230\377\377\377\202\376\377\377\6\377\377\375\377\377" \
- "\377\376\377\375\377\377\377\376\377\375\377\377\375\231\377\377\377" \
- "\2\376\377\377\377\377\375\202\377\377\377\1\376\376\376\232\377\377" \
- "\377\5\377\376\377\377\377\377\376\377\375\377\377\377\377\377\375\204" \
- "\377\377\377\202\376\377\377\1\376\376\376\202\377\377\377\202\376\377" \
- "\377\220\377\377\377\1\377\377\375\202\377\377\377\4\376\376\374\377" \
- "\376\377\377\377\377\376\377\375\212\377\377\377\1\375\377\376\202\377" \
- "\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212" \
- "\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<" \
- "\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244" \
- "\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377" \
- "\377\375\377\376\377\334\377\377\377\1\376\376\376\202\377\377\377\10" \
- "\376\376\376kkm::<;;=99;;;=::<;;=\202::<\202;;=\1\234\234\236\203\377" \
- "\377\377\1\376\376\376\377\377\377\377\262\377\377\377\5\376\376\376" \
- "\377\377\377\376\376\376\377\377\377lln\210::<\3""99;;;=\265\265\265" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\370\377" \
- "\377\377\1\376\377\377\230\377\377\377\7\377\376\377\377\377\375\377" \
- "\376\377\376\376\377\377\377\375\377\377\377\377\377\375\233\377\377" \
- "\377\1\377\376\377\203\377\377\377\1\376\377\375\231\377\377\377\5\377" \
- "\377\375\377\377\377\377\377\375\377\377\377\377\377\375\202\377\377" \
- "\377\1\377\377\375\203\377\377\377\2\376\376\376\377\376\377\226\377" \
- "\377\377\5\377\377\375\377\377\377\376\377\377\377\377\375\376\377\377" \
- "\210\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\333\377\377" \
- "\377\1\376\376\376\202\377\377\377\3\376\376\376\377\377\377\316\316" \
- "\320\203::<\1;;=\202::<\1;;=\203::<\2FFH\377\377\377\202\376\376\376" \
- "\377\377\377\377\262\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\332\332\332\206::<\1;;=\202::<\5;;=FFH\363\363\363\377\377" \
- "\377\376\376\376\203\377\377\377\1\376\376\376\365\377\377\377\1\377" \
- "\377\375\202\377\377\377\1\377\377\375\230\377\377\377\2\376\377\377" \
- "\377\377\375\204\377\377\377\2\377\376\377\376\377\375\230\377\377\377" \
- "\4\377\377\375\377\377\377\377\377\373\376\377\377\203\377\377\377\1" \
- "\377\376\377\230\377\377\377\13\376\377\377\377\377\375\377\377\377\376" \
- "\377\377\377\375\376\377\377\377\377\377\375\376\377\377\377\376\377" \
- "\377\377\377\376\376\376\202\377\377\377\1\377\377\375\226\377\377\377" \
- "\202\376\377\377\2\377\377\375\377\376\377\210\377\377\377\1\377\377" \
- "\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306>\213" \
- "\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215\307" \
- "=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<\244" \
- "\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377\377" \
- "\377\377\202\377\376\377\333\377\377\377\1\376\376\376\204\377\377\377" \
- "\11\376\376\376\377\377\377kkm::<;;=99;;;=::<;;=\202::<\3;;=::<\264\264" \
- "\264\377\377\377\377\265\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\204\204\204\203::<\1;;=\206::<\1\235\235\237\377\377\377\377\377\377" \
- "\377\377\203\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377" \
- "\375\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377" \
- "\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305" \
- "@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214" \
- "\306>\215\307\77\214\305@\244\317c\367\375\361\352\377\377\377\1\316" \
- "\316\316\203::<\1;;=\203::<\202;;=\2::<RRT\377\377\377\377\267\377\377" \
- "\377\3\346\346\346::<;;=\203::<\202;;=\5""99;::<;;=FFH\363\363\365\377" \
- "\377\377\377\377\377\377\377\202\377\377\377\6\376\376\377\377\376\377" \
- "\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377\27\377" \
- "\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305>\215" \
- "\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215\306" \
- "A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376\376" \
- "\377\377\375\376\352\377\377\377\2kkm;;=\207::<\3;;=::<\301\301\301\377" \
- "\377\377\377\266\377\377\377\2\221\221\221;;=\202::<\202;;=\202::<\1" \
- ";;=\202::<\1\235\235\237\377\377\377\377\377\377\377\377\203\377\377" \
- "\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377\377" \
- "\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307\77" \
- "\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216\306" \
- "\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215\305" \
- "@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\350\377\377" \
- "\377\4\376\376\376\377\377\377\265\265\26799;\203::<\3;;=::<;;=\203:" \
- ":<\2kkk\376\376\376\377\377\377\377\264\377\377\377\2\362\362\362FFH" \
- "\202::<\1;;=\203::<\5;;=::<;;=::<\363\363\363\377\377\377\377\377\377" \
- "\377\377\204\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377" \
- "\376\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307" \
- "\77\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216" \
- "\306\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306" \
- ">\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\352\377\377\377\2\376\376\376TTV\204::<\7;;=99;::<;;=99;::<\332\332" \
- "\332\377\377\377\377\263\377\377\377\3\376\376\376\266\266\266;;=\203" \
- "::<\202;;=\204::<\1\205\205\207\377\377\377\377\377\377\377\377\204\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305>" \
- "\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212\310" \
- "\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377" \
- "\377\202\377\376\377\1\377\377\375\354\377\377\377\2\265\265\267::<\202" \
- ";;=\205::<\4;;=::<\204\204\204\376\376\376\377\377\377\377\263\377\377" \
- "\377\1SSU\202::<\1;;=\206::<\2;;=\346\346\346\377\377\377\377\377\377" \
- "\377\377\205\377\377\377\1\375\377\376\202\377\377\375\34\377\377\377" \
- "\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214\306" \
- ">\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77\213" \
- "\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362\377" \
- "\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376\377" \
- "\354\377\377\377\4FFH;;=99;;;=\203::<\5;;=99;;;=99;\364\364\364\377\377" \
- "\377\377\262\377\377\377\1\316\316\316\202;;=\1""99;\203::<\1;;=\203" \
- "::<\1xxz\377\377\377\377\377\377\377\377\205\377\377\377\3\377\376\377" \
- "\377\377\377\375\377\376\202\377\377\377\11\373\373\363\241\321d\214" \
- "\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202\215\307" \
- "=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307\77\215\307" \
- "=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376\202\377\377" \
- "\375\2\374\377\377\377\376\377\354\377\377\377\1\235\235\237\204::<\1" \
- "<<>\202::<\4;;=::<;;=\247\247\251\377\377\377\377\262\377\377\377\4\204" \
- "\204\204;;=::<;;=\206::<\2;;=\316\316\316\377\377\377\377\377\377\377" \
- "\377\205\377\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370" \
- "\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214" \
- "\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@" \
- "\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375" \
- "\376\377\377\375\376\377\377\377\377\377\202\377\376\377\355\377\377" \
- "\377\1\363\363\363\212::<\1TTV\377\377\377\377\261\377\377\377\5\347" \
- "\347\351::<;;=::<;;=\204::<\3;;=::<TTT\377\377\377\377\376\377\377\377" \
- "\10\376\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376" \
- "\377\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211" \
- "\307B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214" \
- "\306<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305" \
- "@\244\317c\367\375\361\361\377\377\377\1\376\376\376\204\377\377\377" \
- "\1\204\204\204\202;;=\203::<\1;;=\202::<\202;;=\1\302\302\302\203\377" \
- "\377\377\1\376\376\376\377\377\377\377\244\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\203\377\377\377\1\234\234\236\202::<\1" \
- ";;=\204::<\6;;=::<;;=\264\264\264\377\377\377\376\376\376\377\377\377" \
- "\377\373\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377" \
- "\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241" \
- "\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@" \
- "\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\365\377" \
- "\377\377\1\332\332\332\202::<\1;;=\202::<\6""99;::<;;=99;;;=xxx\205\377" \
- "\377\377\1\376\376\376\377\377\377\377\243\377\377\377\1\376\376\376" \
- "\206\377\377\377\4SSU;;=::<;;=\202::<\1;;=\203::<\3GGI\362\362\362\376" \
- "\376\376\377\377\377\377\374\377\377\377\7\377\377\375\375\376\377\376" \
- "\377\377\376\377\375\377\374\377\377\377\375\375\377\376\202\377\377" \
- "\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>\202\214\305" \
- "@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307\77\214\306" \
- ">\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362\377\377" \
- "\373\377\376\377\377\377\375\364\377\377\377\3\376\376\376\377\377\377" \
- "__a\203::<\202;;=\6::<99;;;=::<;;=\345\345\345\203\377\377\377\1\376" \
- "\376\376\377\377\377\377\245\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\2\316\316\316::<\202;;=\205::<\202;;=\1\203" \
- "\203\205\204\377\377\377\1\376\376\376\377\377\377\377\372\377\377\377" \
- "\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377\375\377\377" \
- "\377\377\376\377\370\373\362\241\321a\215\307\77\215\307=\214\305@\214" \
- "\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307" \
- ">\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364" \
- "\377\377\377\376\377\377\376\376\376\376\377\377\362\377\377\377\202" \
- "\376\376\376\3\377\377\377\376\376\376\265\265\267\202::<\1;;=\207::" \
- "<\3\251\251\253\377\377\377\376\376\376\203\377\377\377\1\376\376\376" \
- "\377\377\377\377\247\377\377\377\2\376\376\376\204\204\206\207::<\1;" \
- ";=\202::<\3\346\346\346\377\377\377\376\376\376\377\377\377\377\374\377" \
- "\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202\377" \
- "\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305>" \
- "\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212\310" \
- "\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377" \
- "\377\202\377\376\377\1\377\377\375\364\377\377\377\17\376\376\376\377" \
- "\377\377\376\376\376\377\377\377FFH;;=99;::<;;=::<;;=99;;;=::<SSU\377" \
- "\377\377\377\251\377\377\377\1\376\376\376\203\377\377\377\3\363\363" \
- "\365::<;;=\202::<\11;;=::<;;=::<;;=::<kkm\377\377\377\376\376\376\377" \
- "\377\377\377\376\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\361\377\377\377\202\376\376\376\2\377\377\377\376\376\376\202\377" \
- "\377\377\1\221\221\221\205::<\202;;=\5::<;;=99;\316\316\320\376\376\376" \
- "\377\377\377\377\250\377\377\377\1\376\376\376\202\377\377\377\4\266" \
- "\266\270::<99;;;=\203::<\1;;=\203::<\1\265\265\265\377\377\377\377\377" \
- "\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11" \
- "\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212" \
- "\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217" \
- "\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377" \
- "\376\376\376\202\377\377\375\2\374\377\377\377\376\377\360\377\377\377" \
- "\1\376\376\376\202\377\377\377\202\376\376\376\202\377\377\377\6\346" \
- "\346\346;;=99;::<99;;;=\204::<\2;;=\204\204\206\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\251\377\377\377\1__a\203::<\3;;=::<;;=\203:" \
- ":<\4FFF\363\363\363\377\377\377\376\376\376\377\377\377\377\375\377\377" \
- "\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322" \
- "b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212" \
- "\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>" \
- "\212\307<\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376" \
- "\377\377\377\377\377\202\377\376\377\371\377\377\377\4^^`;;=::<;;=\202" \
- "::<\5;;=::<;;=::<FFH\377\377\377\377\253\377\377\377\3\346\346\346::" \
- "<;;=\210::<\1\204\204\204\202\377\377\377\202\376\376\376\377\377\377" \
- "\377\365\377\377\377\10\376\376\377\377\377\375\377\377\377\377\377\375" \
- "\377\377\377\377\376\377\377\377\375\376\377\377\202\377\377\377\6\370" \
- "\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202\215\305@\4" \
- "\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214\306" \
- ">\215\307\77\214\305@\244\317c\367\375\361\377\377\377\377\202\377\377" \
- "\377\3\265\265\267::<;;=\204::<\1;;=\202::<\2;;=\265\265\265\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\246\377\377\377\2\376\376\376" \
- "\234\234\234\202;;=\203::<\1;;=\202::<\3""99;::<\332\332\332\377\377" \
- "\377\377\370\377\377\377\6\376\376\377\377\376\377\375\376\377\376\377" \
- "\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373\366" \
- "\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306" \
- "@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215" \
- "\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\377\377" \
- "\377\377\5\377\377\377\363\363\365;;=::<;;=\202::<\3;;=::<;;=\202::<" \
- "\3xxz\377\377\377\376\376\376\377\377\377\377\246\377\377\377\3\376\376" \
- "\376\377\377\377SSS\202::<\1;;=\202::<\1;;=\202::<\6;;=SSU\377\377\377" \
- "\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376\377" \
- "\377\377\377\362\377\377\377\7\377\377\375\375\376\377\376\377\377\376" \
- "\377\375\377\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373" \
- "\366\240\320b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212" \
- "\306@\214\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306" \
- ">\215\307\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377" \
- "\377\375\377\377\377\377\11\377\377\377\376\376\376\204\204\206;;=::" \
- "<99;;;=::<;;=\204::<\3\362\362\362\377\377\377\376\376\376\377\377\377" \
- "\377\246\377\377\377\1\333\333\333\203::<\202;;=\202::<\5<<>99;::<\250" \
- "\250\252\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\365" \
- "\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376\377\377" \
- "\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77\215\307" \
- "=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\377\377" \
- "\377\377\202\377\377\377\1\301\301\301\202::<\1;;=\203::<\1;;=\203::" \
- "<\1\266\266\270\377\377\377\377\250\377\377\377\2\220\220\220;;=\204" \
- "::<\6;;=::<99;;;=::<\346\346\346\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\363\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376" \
- "\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214" \
- "\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>" \
- "\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370" \
- "\373\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377\377\204" \
- "\377\377\377\2TTV99;\202::<\1;;=\202::<\6;;=::<;;=__a\377\377\377\376" \
- "\376\376\377\377\377\377\244\377\377\377\3\376\376\376\377\377\377TT" \
- "V\207::<\3;;=99;```\377\377\377\377\373\377\377\377\1\375\377\376\202" \
- "\377\377\375\34\377\377\377\376\376\376\373\373\363\243\322b\211\307" \
- "B\212\307<\215\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214" \
- "\306<\214\306>\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307" \
- ">\244\317c\370\373\362\377\377\373\376\377\377\377\376\377\375\376\377" \
- "\377\377\375\377\376\377\377\377\377\377\203\377\377\377\3\221\221\221" \
- "::<;;=\202::<\202;;=\203::<\2;;=\345\345\347\377\377\377\377\246\377" \
- "\377\377\4\332\332\332;;=::<;;=\203::<\1;;=\203::<\1\265\265\265\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\364" \
- "\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377\11" \
- "\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310=\212" \
- "\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305>\217" \
- "\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376\377" \
- "\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377\377" \
- "\202\377\377\377\5\376\376\376\332\332\332;;=::<;;=\202::<\6;;=::<;;" \
- "=99;::<\250\250\252\377\377\377\377\244\377\377\377\6\376\376\376\377" \
- "\377\377\221\221\223::<;;=99;\202::<\3;;=::<;;=\202::<\1\363\363\363" \
- "\377\377\377\377\372\377\377\377\1\377\377\375\202\377\377\377\32\377" \
- "\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215" \
- "\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A" \
- "\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377" \
- "\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377\377" \
- "\377\377\377\204\377\377\377\2\376\376\376SSU\204::<\204;;=\2::<__a\377" \
- "\377\377\377\243\377\377\377\6\376\376\376\377\377\377\376\376\376TT" \
- "V99;;;=\204::<\4;;=99;<<>xxz\377\377\377\377\364\377\377\377\10\376\376" \
- "\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377\377" \
- "\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307B" \
- "\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306" \
- "<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244" \
- "\317c\367\375\361\377\377\377\377\213\377\377\377\5\376\376\376\377\377" \
- "\377\221\221\223::<;;=\204::<\5;;=::<;;=::<\363\363\363\204\377\377\377" \
- "\1\376\376\376\202\377\377\377\202\376\376\376\377\377\377\377\233\377" \
- "\377\377\5\332\332\332::<;;=99;<<>\202::<\1;;=\203::<\1\265\265\267\377" \
- "\377\377\377\363\377\377\377\6\376\376\377\377\376\377\375\376\377\376" \
- "\377\377\377\377\375\375\377\376\203\377\377\377\27\377\377\375\372\373" \
- "\366\241\321a\217\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212" \
- "\306@\214\306>\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306" \
- ">\215\307\77\214\306>\242\322b\370\373\362\376\376\377\377\375\376\377" \
- "\377\377\377\213\377\377\377\2\375\375\375\333\333\333\202::<\1;;=\202" \
- "::<\1;;=\202::<\3""99;::<\265\265\265\206\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\377\233\377\377\377\2\235\235\23599" \
- ";\202;;=\1""99;\202;;=\202::<\3;;=::<\363\363\365\377\377\377\377\363" \
- "\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374" \
- "\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215" \
- "\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D" \
- "\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77" \
- "\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\377" \
- "\377\377\377\214\377\377\377\2\376\376\376SSU\207::<\3;;=::<xxx\203\377" \
- "\377\377\202\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\234\377\377\377\1^^`\211::<\3xxz\377\377\377\376\376\376\377\377\377" \
- "\377\363\377\377\377\37\376\377\377\376\377\375\377\375\376\375\377\376" \
- "\377\377\375\377\377\377\377\376\377\370\373\362\241\321a\215\307\77" \
- "\215\307=\214\305@\214\306>\212\307<\214\306>\214\306<\214\306>\216\306" \
- "\77\215\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>" \
- "\242\321a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377" \
- "\377\377\377\377\212\377\377\377\4\376\376\376\377\377\377\376\376\376" \
- "\222\222\222\205::<\1;;=\20299;\202::<\3\363\363\363\377\377\377\376" \
- "\376\376\377\377\377\377\240\377\377\377\1\346\346\346\202::<\1;;=\204" \
- "::<\1;;=\202::<\1\250\250\252\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\361\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377" \
- "\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305" \
- "@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212" \
- "\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373" \
- "\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377\377\212\377" \
- "\377\377\1\376\376\376\203\377\377\377\2\332\332\332<<>\203::<\3;;=:" \
- ":<<<>\203::<\2\301\301\303\376\376\376\202\377\377\377\5\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\231" \
- "\377\377\377\4\376\376\376\251\251\253::<;;=\204::<\5;;=::<99;::<\346" \
- "\346\346\377\377\377\377\365\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\377\377\377\377\212\377\377\377\1\376\376\376\203\377\377" \
- "\377\1SSS\207::<\3;;=::<\205\205\207\205\377\377\377\1\376\376\376\377" \
- "\377\377\377\234\377\377\377\3wwy::<;;=\206::<\2;;=__a\377\377\377\377" \
- "\365\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\211\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\204" \
- "\204\204::<\202;;=\1::<\202;;=\203::<\1SSU\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\235\377\377\377\1;;=\203::<\1;;=\202::<\1;;=\202" \
- "::<\1\234\234\234\202\377\377\377\1\376\376\376\377\377\377\377\362\377" \
- "\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373\364\243" \
- "\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305" \
- "B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214" \
- "\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376\377\377\375" \
- "\376\377\377\377\377\377\202\377\376\377\377\377\377\377\212\377\377" \
- "\377\1\376\376\376\204\377\377\377\6\301\301\301;;=::<;;=::<;;=\205:" \
- ":<\1\333\333\333\202\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\301\301\303\204::<\1;;=\202" \
- "::<\1:9>\202::<\1\332\332\332\377\377\377\377\356\377\377\377\10\376" \
- "\376\377\377\377\375\377\377\377\377\377\375\377\377\377\377\376\377" \
- "\377\377\375\376\377\377\202\377\377\377\6\370\373\362\243\322b\211\307" \
- "B\213\310=\214\305@\214\306<\202\215\305@\4\214\306<\214\305@\214\306" \
- "<\215\307\77\202\214\306>\6\212\307>\214\306>\215\307\77\214\305@\244" \
- "\317c\367\375\361\377\377\377\377\230\377\377\377\2""99;;;=\210::<\1" \
- "\250\250\250\377\377\377\377\240\377\377\377\3\221\221\223::<;;=\207" \
- "::<\2SSU\376\376\376\377\377\377\377\355\377\377\377\6\376\376\377\377" \
- "\376\377\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377" \
- "\377\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215" \
- "\305>\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305" \
- ">\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362" \
- "\376\376\377\377\375\376\377\377\377\377\227\377\377\377\1yy{\211::<" \
- "\6lll\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\224\377\377\377\202\376\376\376\7\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\377\377\377__a;;=\202::<\4<<>;;=::<;;=\202:" \
- ":<\1\204\204\206\203\377\377\377\1\376\376\376\377\377\377\377\352\377" \
- "\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377\374\377" \
- "\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320b\215\307" \
- "\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214\305D\216" \
- "\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307\77\215" \
- "\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375\377\377" \
- "\377\377\221\377\377\377\3\376\376\376\377\377\377\376\376\376\203\377" \
- "\377\377\1\265\265\267\212::<\1\363\363\363\377\377\377\377\227\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\345" \
- "\345\345\202::<\202;;=\1""99;\203::<\4;;=::<\301\301\301\376\376\376" \
- "\203\377\377\377\1\376\376\376\377\377\377\377\352\377\377\377\37\376" \
- "\377\377\376\377\375\377\375\376\375\377\376\377\377\375\377\377\377" \
- "\377\376\377\370\373\362\241\321a\215\307\77\215\307=\214\305@\214\306" \
- ">\212\307<\214\306>\214\306<\214\306>\216\306\77\215\305<\212\307>\213" \
- "\307A\215\305>\212\307>\215\307\77\214\306>\242\321a\373\374\364\377" \
- "\377\377\376\377\377\376\376\376\376\377\377\377\377\377\377\222\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\1\347" \
- "\347\347\212::<\1\302\302\304\205\377\377\377\1\376\376\376\377\377\377" \
- "\377\222\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\5\265\265\265::<;;=99;;;=\203::<\1;;=\202::<\1\363\363\363" \
- "\377\377\377\377\356\377\377\377\202\377\377\375\3\377\374\377\375\377" \
- "\376\376\377\377\202\377\377\377\25\370\373\364\243\322b\217\304@\212" \
- "\306@\214\305@\215\305>\212\307>\212\306@\214\305B\214\305@\214\305B" \
- "\214\306>\212\307>\212\310\77\214\306>\217\304@\214\306>\214\305@\242" \
- "\322b\370\373\362\377\377\377\202\377\376\377\1\377\377\375\377\377\377" \
- "\377\230\377\377\377\2\376\376\376TTT\211::<\3\221\221\223\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377\231\377\377" \
- "\377\2\204\204\204::<\202;;=\202::<\1;;=\203::<\2``b\376\376\376\377" \
- "\377\377\377\357\377\377\377\1\375\377\376\202\377\377\375\34\377\377" \
- "\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215\305>\214" \
- "\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>\215\307\77" \
- "\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\377\377\377\377\225\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\221\221\221\210::<\2;;=__a\202\377\377\377\1\376\376\376\377\377\377" \
- "\377\227\377\377\377\1\376\376\376\203\377\377\377\1SSU\202::<\1;;=\204" \
- "::<\202;;=\1\234\234\234\204\377\377\377\1\376\376\376\377\377\377\377" \
- "\352\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\222\377\377\377\1\376\376\376\205\377\377\377\1\301\301\301\210" \
- "::<\4""99;;;=\364\364\366\376\376\376\377\377\377\377\233\377\377\377" \
- "\1\346\346\346\207::<\4;;=99;::<\316\316\316\203\377\377\377\1\376\376" \
- "\376\377\377\377\377\353\377\377\377\1\377\377\375\202\377\377\377\32" \
- "\377\376\377\370\373\364\243\322b\214\306>\213\310\77\214\305@\215\305" \
- ">\215\305@\214\306>\214\305B\212\307<\215\307=\214\305B\214\306>\215" \
- "\306A\212\306@\212\307>\214\306>\212\307<\244\317c\370\373\364\377\377" \
- "\377\377\375\376\377\377\375\376\377\377\377\377\377\202\377\376\377" \
- "\377\377\377\377\224\377\377\377\1\376\376\376\204\377\377\377\1\363" \
- "\363\363\210::<\3;;=::<\302\302\304\377\377\377\377\231\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\266\266\270\203::<\203;;=\203::<\1:::" \
- "\377\377\377\377\351\377\377\377\10\376\376\377\377\377\375\377\377\377" \
- "\377\377\375\377\377\377\377\376\377\377\377\375\376\377\377\202\377" \
- "\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214\306<\202" \
- "\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212" \
- "\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\377\377\377\377" \
- "\242\377\377\377\3__a::<;;=\207::<\1\221\221\221\377\377\377\377\234" \
- "\377\377\377\1\204\204\206\204::<\202;;=\203::<\1lll\203\377\377\377" \
- "\1\375\375\375\377\377\377\377\344\377\377\377\6\376\376\377\377\376" \
- "\377\375\376\377\376\377\377\377\377\375\375\377\376\203\377\377\377" \
- "\27\377\377\375\372\373\366\241\321a\217\304@\212\307<\214\306>\215\305" \
- ">\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305>\215" \
- "\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362\376" \
- "\376\377\377\375\376\377\377\377\377\241\377\377\377\2\221\221\223;;" \
- "=\202::<\202;;=\203::<\2;;=^^^\204\377\377\377\1\376\376\376\377\377" \
- "\377\377\224\377\377\377\1\376\376\376\202\377\377\377\1``b\202::<\1" \
- ";;=\206::<\1\234\234\234\205\377\377\377\1\376\376\376\377\377\377\377" \
- "\342\377\377\377\7\377\377\375\375\376\377\376\377\377\376\377\375\377" \
- "\374\377\377\377\375\375\377\376\202\377\377\377\5\372\373\366\240\320" \
- "b\215\307\77\212\306@\215\305>\202\214\305@\20\215\305@\212\306@\214" \
- "\305D\216\306\77\214\306>\215\307\77\214\306>\212\306@\214\306>\215\307" \
- "\77\215\305@\242\320c\370\373\362\377\377\373\377\376\377\377\377\375" \
- "\377\377\377\377\241\377\377\377\6\301\301\303::<;;=::<99;;;=\203::<" \
- "\6;;=:::\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\224\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363;;=\211" \
- "::<\1\316\316\316\203\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\377\377\377\377\342\377\377\377\37\376\377\377\376\377\375\377" \
- "\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373\362" \
- "\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306>\214" \
- "\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212\307" \
- ">\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377\376" \
- "\376\376\376\377\377\377\377\377\377\241\377\377\377\1\363\363\365\202" \
- "::<\1;;=\202::<\2""99;;;=\202::<\2;;=\316\316\316\377\377\377\377\231" \
- "\377\377\377\10\376\376\376\316\316\316::<;;=::<;;=99;;;=\204::<\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\344" \
- "\377\377\377\202\377\377\375\3\377\374\377\375\377\376\376\377\377\202" \
- "\377\377\377\25\370\373\364\243\322b\217\304@\212\306@\214\305@\215\305" \
- ">\212\307>\212\306@\214\305B\214\305@\214\305B\214\306>\212\307>\212" \
- "\310\77\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377" \
- "\377\377\202\377\376\377\1\377\377\375\377\377\377\377\243\377\377\377" \
- "\1``b\203::<\203;;=\6::<<<>::<\234\234\234\377\377\377\376\376\376\377" \
- "\377\377\377\230\377\377\377\1\234\234\236\204::<\12;;=99;::<;;=::<k" \
- "km\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377\377\346" \
- "\377\377\377\1\375\377\376\202\377\377\375\34\377\377\377\376\376\376" \
- "\373\373\363\243\322b\211\307B\212\307<\215\305>\214\306>\212\307>\214" \
- "\305@\217\304>\212\307<\214\306<\214\306>\215\307\77\213\307A\214\306" \
- ">\215\305@\215\307\77\212\307>\244\317c\370\373\362\377\377\373\376\377" \
- "\377\377\376\377\375\376\377\377\377\375\377\376\377\377\377\377\377" \
- "\242\377\377\377\2\222\222\222::<\202;;=\7""99;::<;;=::<99;;;=lln\202" \
- "\377\377\377\1\376\376\376\377\377\377\377\225\377\377\377\3\376\376" \
- "\376\377\377\377jjl\204;;=\2""99;;;=\202::<\2;;=\221\221\223\202\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\377\377\377\377" \
- "\343\377\377\377\3\377\376\377\377\377\377\375\377\376\202\377\377\377" \
- "\11\373\373\363\241\321d\214\306>\213\310=\214\306>\214\305@\213\310" \
- "=\212\306@\217\304>\202\215\307=\14\214\306>\215\305>\214\306>\215\305" \
- ">\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377\376" \
- "\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\377\377\377" \
- "\377\242\377\377\377\2\264\264\264;;=\206::<\6;;=::<FFH\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\377\227\377\377\377\1GGI\204::<\6;;" \
- "=::<;;=::<;;=\302\302\304\206\377\377\377\1\376\376\376\377\377\377\377" \
- "\342\377\377\377\1\377\377\375\202\377\377\377\32\377\376\377\370\373" \
- "\364\243\322b\214\306>\213\310\77\214\305@\215\305>\215\305@\214\306" \
- ">\214\305B\212\307<\215\307=\214\305B\214\306>\215\306A\212\306@\212" \
- "\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376" \
- "\377\377\375\376\377\377\377\377\377\202\377\376\377\377\377\377\377" \
- "\243\377\377\377\2\346\346\346;;=\211::<\1\346\346\350\377\377\377\377" \
- "\230\377\377\377\3\346\346\350::<;;=\202::<\1;;=\205::<\1\346\346\346" \
- "\302\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376" \
- "\376\376\377\377\377\377\233\377\377\377\10\376\376\377\377\377\375\377" \
- "\377\377\377\377\375\377\377\377\377\376\377\377\377\375\376\377\377" \
- "\202\377\377\377\6\370\373\362\243\322b\211\307B\213\310=\214\305@\214" \
- "\306<\202\215\305@\4\214\306<\214\305@\214\306<\215\307\77\202\214\306" \
- ">\6\212\307>\214\306>\215\307\77\214\305@\244\317c\367\375\361\345\377" \
- "\377\377\1\376\376\376\305\377\377\377\3FFF::<;;=\202::<\3;;=::<;;=\202" \
- "::<\1\301\301\303\377\377\377\377\230\377\377\377\4\301\301\30399;::" \
- "<;;=\204::<\3;;=::<GGI\215\377\377\377\1\376\376\376\266\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\6\376\376\377\377\376\377\375\376\377\376\377\377\377\377\375" \
- "\375\377\376\203\377\377\377\27\377\377\375\372\373\366\241\321a\217" \
- "\304@\212\307<\214\306>\215\305>\215\305@\213\310=\212\306@\214\306>" \
- "\214\305B\215\307\77\215\305>\215\306A\212\307>\214\306>\215\307\77\214" \
- "\306>\242\322b\370\373\362\376\376\377\377\375\376\341\377\377\377\5" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\265\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377\377\3\376" \
- "\376\376\377\377\377lll\206::<\202;;=\2::<\234\234\236\377\377\377\377" \
- "\224\377\377\377\1\376\376\376\203\377\377\377\2\233\233\235;;=\203:" \
- ":<\2""99;;;=\202::<\2;;=xxz\213\377\377\377\1\376\376\376\265\377\377" \
- "\377\1\376\376\376\377\377\377\377\240\377\377\377\7\377\377\375\375" \
- "\376\377\376\377\377\376\377\375\377\374\377\377\377\375\375\377\376" \
- "\202\377\377\377\5\372\373\366\240\320b\215\307\77\212\306@\215\305>" \
- "\202\214\305@\20\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307" \
- "\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\377\377\377\377\233\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\213\377\377\377\6\376\376\376" \
- "\377\377\377\233\233\233;;=::<;;=\206::<\1lln\377\377\377\377\226\377" \
- "\377\377\3\376\376\376\377\377\377kkm\210::<\2;;=\234\234\236\214\377" \
- "\377\377\1\315\315\315\202\234\234\234\262\234\234\236\2\234\234\234" \
- "\265\265\265\377\377\377\377\240\377\377\377\37\376\377\377\376\377\375" \
- "\377\375\376\375\377\376\377\377\375\377\377\377\377\376\377\370\373" \
- "\362\241\321a\215\307\77\215\307=\214\305@\214\306>\212\307<\214\306" \
- ">\214\306<\214\306>\216\306\77\215\305<\212\307>\213\307A\215\305>\212" \
- "\307>\215\307\77\214\306>\242\321a\373\374\364\377\377\377\376\377\377" \
- "\376\376\376\376\377\377\344\377\377\377\4\376\376\376\347\347\347\234" \
- "\234\234\235\235\235\260\234\234\236\204\234\234\234\216\377\377\377" \
- "\1\301\301\301\202::<\1;;=\203::<\202;;=\2::<EEG\377\377\377\377\230" \
- "\377\377\377\1FFH\204::<\202;;=\4::<;;=99;\302\302\304\212\377\377\377" \
- "\5\376\376\376\377\377\377\234\234\234::<;;=\263::<\1jjj\205\377\377" \
- "\377\1\376\376\376\377\377\377\377\231\377\377\377\202\377\377\375\3" \
- "\377\374\377\375\377\376\376\377\377\202\377\377\377\25\370\373\364\243" \
- "\322b\217\304@\212\306@\214\305@\215\305>\212\307>\212\306@\214\305B" \
- "\214\305@\214\305B\214\306>\212\307>\212\310\77\214\306>\217\304@\214" \
- "\306>\214\305@\242\322b\370\373\362\377\377\377\202\377\376\377\1\377" \
- "\377\375\346\377\377\377\2\316\316\316:::\263::<\4;;=:::\377\377\377" \
- "\376\376\376\214\377\377\377\3\346\346\346::<;;=\205::<\4;;=::<;;=\346" \
- "\346\346\377\377\377\377\226\377\377\377\2\362\362\362;;=\204::<\3""9" \
- "9;::<;;=\202::<\1\346\346\350\214\377\377\377\2\234\234\234;;=\264::" \
- "<\1kkm\377\377\377\377\240\377\377\377\1\375\377\376\202\377\377\375" \
- "\34\377\377\377\376\376\376\373\373\363\243\322b\211\307B\212\307<\215" \
- "\305>\214\306>\212\307>\214\305@\217\304>\212\307<\214\306<\214\306>" \
- "\215\307\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370" \
- "\373\362\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375" \
- "\377\376\377\345\377\377\377\2\316\316\31699;\265::<\216\377\377\377" \
- "\2\376\376\376FFH\203::<\1;;=\203::<\3;;=99;\316\316\316\377\377\377" \
- "\377\226\377\377\377\1\317\317\317\206::<\202;;=\4""99;FFH\377\377\377" \
- "\376\376\376\213\377\377\377\1\234\234\236\202::<\1;;=\261::<\2;;=kk" \
- "m\205\377\377\377\1\376\376\376\377\377\377\377\231\377\377\377\3\377" \
- "\376\377\377\377\377\375\377\376\202\377\377\377\11\373\373\363\241\321" \
- "d\214\306>\213\310=\214\306>\214\305@\213\310=\212\306@\217\304>\202" \
- "\215\307=\14\214\306>\215\305>\214\306>\215\305>\217\304@\215\307\77" \
- "\215\307=\242\320c\367\375\361\376\376\377\377\376\377\376\376\376\202" \
- "\377\377\375\2\374\377\377\377\376\377\345\377\377\377\1\316\316\316" \
- "\264::<\202;;=\215\377\377\377\4\376\376\376\377\377\377lln99;\210::" \
- "<\2\234\234\234\376\376\376\377\377\377\377\225\377\377\377\5\234\234" \
- "\234::<;;=99;::<\202;;=\5::<;;=::<kkm\376\376\377\214\377\377\377\1\234" \
- "\234\236\203::<\1:9>\261::<\1kkm\377\377\377\377\237\377\377\377\1\377" \
- "\377\375\202\377\377\377\32\377\376\377\370\373\364\243\322b\214\306" \
- ">\213\310\77\214\305@\215\305>\215\305@\214\306>\214\305B\212\307<\215" \
- "\307=\214\305B\214\306>\215\306A\212\306@\212\307>\214\306>\212\307<" \
- "\244\317c\370\373\364\377\377\377\377\375\376\377\377\375\376\377\377" \
- "\377\377\377\202\377\376\377\346\377\377\377\1\316\316\316\266::<\217" \
- "\377\377\377\2\234\234\236;;=\206::<\3""99;;;=www\377\377\377\377\226" \
- "\377\377\377\3\204\204\206::<;;=\207::<\3\222\222\222\377\377\377\376" \
- "\376\376\213\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\210" \
- "\377\377\377\7\376\376\376\377\377\377\377\377\375\376\377\375\376\377" \
- "\377\377\377\377\377\376\377\203\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\377\377\203\377\377\377\16\377\377\375\377\377\377\377\376" \
- "\377\377\377\377\377\377\373\376\377\377\377\377\377\377\377\373\371" \
- "\372\364\242\322d\214\306<\215\307\77\214\305@\214\306<\202\215\305@" \
- "\4\214\306<\214\305@\214\306<\215\307\77\202\214\306>\6\212\307>\214" \
- "\306>\215\307\77\214\305@\244\317c\367\375\361\356\377\377\377\1\316" \
- "\316\316\266::<\214\377\377\377\1\376\376\376\202\377\377\377\1\266\266" \
- "\266\202::<\1;;=\203::<\1;;=\202::<\3__a\377\377\377\376\376\376\377" \
- "\377\377\377\224\377\377\377\2kkm;;=\202::<\202;;=\202::<\3;;=::<\265" \
- "\265\265\215\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\214" \
- "\377\377\377\2\376\377\377\376\377\375\202\377\377\375\203\377\377\377" \
- "\204\377\377\375\205\377\377\377\1\376\376\377\202\377\377\377\6\377" \
- "\377\375\377\377\377\371\372\362\242\320c\214\305@\215\305@\202\214\306" \
- ">\20\215\305@\213\310=\212\306@\214\306>\214\305B\215\307\77\215\305" \
- ">\215\306A\212\307>\214\306>\215\307\77\214\306>\242\322b\370\373\362" \
- "\376\376\377\377\375\376\355\377\377\377\1\316\316\316\266::<\215\377" \
- "\377\377\4\376\376\376\377\377\377\315\315\315;;=\203::<\1;;=\203::<" \
- "\2;;=99;\377\377\377\377\226\377\377\377\203::<\1;;=\202::<\1;;=\203" \
- "::<\2\317\317\317\376\376\376\214\377\377\377\1\234\234\236\265::<\1" \
- "kkm\377\377\377\377\211\377\377\377\3\376\376\376\377\376\377\377\377" \
- "\377\203\377\376\377\204\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\377\376\377\203\377\377\377\1\376\376\376\203\377\377\377\31\376\376" \
- "\377\377\376\377\371\372\365\241\322e\212\307<\216\306\77\212\311<\216" \
- "\303\77\212\307>\215\305@\212\306@\214\305D\216\306\77\214\306>\215\307" \
- "\77\214\306>\212\306@\214\306>\215\307\77\215\305@\242\320c\370\373\362" \
- "\377\377\373\377\376\377\377\377\375\355\377\377\377\1\316\316\316\266" \
- "::<\220\377\377\377\202::<\4;;=::<;;=::<\202;;=\3""99;;;=\346\346\346" \
- "\377\377\377\377\224\377\377\377\2\362\362\362;;=\202::<\7""99;::<;;" \
- "=88:;;=::<;;=\216\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377" \
- "\212\377\377\377\202\376\377\377\202\377\377\377\1\377\376\377\206\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\202\377\377\377\6\370\373\364\242\322b\214\306>\214\305" \
- "@\215\305>\214\305@\202\215\306A\20\214\306<\214\306>\216\306\77\215" \
- "\305<\212\307>\213\307A\215\305>\212\307>\215\307\77\214\306>\242\321" \
- "a\373\374\364\377\377\377\376\377\377\376\376\376\376\377\377\355\377" \
- "\377\377\1\316\316\316\266::<\216\377\377\377\6\376\376\376\377\377\377" \
- "SSU;;=99;;;=\206::<\1\316\316\316\377\377\377\377\224\377\377\377\2\316" \
- "\316\31699;\205::<\1;;=\202::<\1FFH\216\377\377\377\1\234\234\236\265" \
- "::<\1kkm\377\377\377\377\207\377\377\377\202\377\376\377\2\377\377\377" \
- "\377\377\375\203\377\377\377\1\376\377\375\202\377\377\375\203\377\377" \
- "\377\202\377\377\375\2\377\377\377\377\377\375\205\377\377\377\26\377" \
- "\377\375\371\372\362\243\322b\211\305A\215\305>\215\307\77\214\305@\214" \
- "\306>\215\305@\212\307>\214\305@\214\305B\214\306>\212\307>\212\310\77" \
- "\214\306>\217\304@\214\306>\214\305@\242\322b\370\373\362\377\377\377" \
- "\202\377\376\377\1\377\377\375\356\377\377\377\1\316\316\316\266::<\220" \
- "\377\377\377\3kkm::<;;=\202::<\6;;=::<;;=::<;;=\233\233\233\377\377\377" \
- "\377\223\377\377\377\2\376\376\376\265\265\265\205::<\1;;=\202::<\2""9" \
- "9;lln\216\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377" \
- "\377\377\3\376\377\375\375\377\376\377\377\377\202\377\376\377\3\377" \
- "\376\374\377\377\377\376\377\377\202\377\377\377\1\377\377\375\204\377" \
- "\377\377\2\375\377\376\377\377\375\202\377\377\377\1\377\377\375\202" \
- "\377\377\377\32\376\376\374\365\367\354\223\312K\215\305>\214\306<\211" \
- "\305\77\214\306>\212\307>\215\307\77\214\306>\214\306<\214\306>\215\307" \
- "\77\213\307A\214\306>\215\305@\215\307\77\212\307>\244\317c\370\373\362" \
- "\377\377\373\376\377\377\377\376\377\375\376\377\377\377\375\377\376" \
- "\377\355\377\377\377\1\316\316\316\266::<\217\377\377\377\5\376\376\376" \
- "\234\234\236;;=::<;;=\202::<\2""99;::<\202;;=\1\221\221\221\377\377\377" \
- "\377\224\377\377\377\1\235\235\235\211::<\2\221\221\223\376\376\376\215" \
- "\377\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377\377\377" \
- "\1\377\376\377\202\377\377\375\202\377\377\377\202\377\377\375\1\377" \
- "\377\377\202\376\377\377\1\377\377\377\202\377\377\375\5\376\376\377" \
- "\377\377\377\377\377\373\377\377\377\376\376\376\203\377\377\377\27\376" \
- "\376\376\377\377\375\376\377\372\347\365\333\225\311K\217\304>\214\305" \
- "B\215\307\77\212\306B\214\306>\215\306A\214\306>\215\305>\214\306>\215" \
- "\305>\217\304@\215\307\77\215\307=\242\320c\367\375\361\376\376\377\377" \
- "\376\377\376\376\376\202\377\377\375\2\374\377\377\377\376\377\355\377" \
- "\377\377\1\316\316\316\266::<\214\377\377\377\1\376\376\376\203\377\377" \
- "\377\3\250\250\252::<;;=\203::<\202;;=\202::<\1kkk\377\377\377\377\224" \
- "\377\377\377\4www;;=::<;;=\202::<\202;;=\202::<\1\234\234\236\216\377" \
- "\377\377\1\234\234\236\265::<\1kkm\377\377\377\377\207\377\377\377\15" \
- "\367\374\365\343\361\316\316\346\254\305\342\240\304\343\240\303\342" \
- "\236\305\342\237\312\346\251\345\356\317\365\373\357\376\377\377\376" \
- "\376\377\377\377\375\214\377\377\377\24\350\365\333\223\312K\216\306" \
- "\77\212\307>\215\304B\214\306>\215\307=\214\306>\215\306A\212\306@\212" \
- "\307>\214\306>\212\307<\244\317c\370\373\364\377\377\377\377\375\376" \
- "\377\377\375\376\377\377\377\377\377\202\377\376\377\356\377\377\377" \
- "\1\316\316\316\266::<\217\377\377\377\2\376\376\376\316\316\320\207:" \
- ":<\3;;=::<SSS\377\377\377\377\223\377\377\377\2\376\376\376kkm\202::" \
- "<\1;;=\206::<\1\316\316\316\377\377\377\377\276\377\377\377\4\377\377" \
- "\375\376\377\377\377\377\377\377\376\377\202\377\377\377\10\377\377\375" \
- "\377\376\377\376\377\375\376\376\376\377\377\377\350\365\333\277\337" \
- "\224\232\315V\210\214\306>\10\212\306@\212\307>\232\315W\277\337\224" \
- "\352\364\333\377\377\377\377\376\377\377\377\375\202\376\377\377\202" \
- "\377\377\377\2\377\376\377\377\377\375\202\377\377\377\17\377\377\375" \
- "\377\376\377\347\365\333\226\312L\215\306A\213\310=\212\306@\217\304" \
- ">\216\307<\214\305@\215\305<\214\305@\215\307=\244\317c\366\373\364\377" \
- "\377\377\377\276\377\377\377\6\346\346\346;;=99;;;=::<;;=\205::<\377" \
- "\377\377\377\224\377\377\377\1::<\202;;=\2::<;;=\203::<\4;;=::<\316\316" \
- "\316\376\376\376\377\377\377\377\274\377\377\377\14\377\375\377\377\377" \
- "\377\376\376\374\377\377\375\377\376\377\377\377\375\376\377\377\377" \
- "\377\377\376\377\377\377\376\377\324\353\265\231\316Z\202\214\306<\1" \
- "\215\305>\210\214\306>\202\215\305>\16\214\306>\213\307A\211\306;\233" \
- "\314V\324\353\265\377\377\377\377\376\377\377\377\375\375\377\376\376" \
- "\377\377\377\377\377\377\376\377\376\377\377\377\377\373\202\377\377" \
- "\377\6\376\376\377\350\365\333\222\312K\215\306A\217\304>\212\306@\202" \
- "\214\305@\6\213\310\77\212\307>\242\322d\370\373\364\377\377\377\377" \
- "\377\375\377\377\377\377\276\377\377\377\203::<\3;;=::<99;\202;;=\202" \
- "::<\1\346\346\350\377\377\377\377\222\377\377\377\2\376\376\376;;=\202" \
- "::<\202;;=\205::<\377\377\377\377\275\377\377\377\4\377\377\375\377\377" \
- "\377\377\377\373\377\376\374\202\376\377\377\12\377\377\375\377\377\377" \
- "\376\377\375\342\360\317\232\315V\214\306<\220\306=\215\306A\215\306" \
- "C\215\306A\210\214\306>\202\215\307\77\7\215\306A\214\306>\214\305@\213" \
- "\307A\214\305@\230\315W\341\361\315\203\377\377\377\2\376\376\374\374" \
- "\377\375\202\377\377\377\2\377\377\375\377\376\377\202\377\377\377\13" \
- "\352\364\331\221\311J\215\306A\213\310=\216\306\77\214\305@\214\306<" \
- "\242\322e\370\373\364\376\376\377\377\377\375\377\377\377\377\277\377" \
- "\377\377\1``b\202::<\2;;=99;\202;;=\4::<;;=::<\316\316\320\377\377\377" \
- "\377\222\377\377\377\4\316\316\316;;=::<99;\202::<\2;;=::<\202;;=\3:" \
- ":<\376\376\376\377\377\377\202\376\376\376\377\377\377\377\271\377\377" \
- "\377\17\376\377\377\376\376\374\377\376\374\376\377\377\377\377\377\377" \
- "\377\375\376\377\377\370\373\364\277\336\222\215\305<\214\305@\215\307" \
- "\77\212\307>\215\307\77\213\307A\211\214\306>\16\216\306A\214\305B\213" \
- "\307A\214\306>\215\305<\213\305=\215\306A\214\306<\215\305>\300\337\223" \
- "\370\373\362\376\376\377\377\377\375\376\377\377\204\377\377\377\16\377" \
- "\376\377\376\376\377\376\377\377\352\364\331\222\312K\215\306A\214\306" \
- "<\214\305@\243\321d\371\373\360\376\376\377\376\377\377\377\377\377\376" \
- "\377\377\377\377\377\377\273\377\377\377\4\376\376\376\377\377\377\376" \
- "\376\376lln\203::<\1;;=\20299;\1;;=\202::<\1\266\266\270\377\377\377" \
- "\377\222\377\377\377\5\316\316\316::<;;=::<;;=\205::<\3kkm\377\377\377" \
- "\376\376\376\377\377\377\377\274\377\377\377\14\377\377\375\376\377\377" \
- "\377\377\377\377\377\375\376\376\376\367\374\365\244\317c\214\305@\215" \
- "\307=\211\306=\213\307A\215\306A\202\212\306@\1\213\310<\210\214\306" \
- ">\202\212\307>\3\212\307<\214\306>\216\306\77\202\214\306>\12\215\305" \
- "<\215\307\77\212\306@\242\322b\371\374\365\377\377\375\376\376\374\376" \
- "\377\377\377\376\377\376\377\377\202\377\377\377\13\376\377\375\376\376" \
- "\377\377\377\377\350\365\333\225\311K\214\305B\242\320c\371\374\361\377" \
- "\377\377\376\377\377\377\376\377\377\377\377\377\300\377\377\377\7\221" \
- "\221\223::<99;::<;;=::<;;=\203::<\1\234\234\236\377\377\377\377\222\377" \
- "\377\377\2\250\250\25099;\206::<\3;;=::<jjl\377\377\377\377\275\377\377" \
- "\377\202\377\376\377\16\376\377\377\377\377\375\376\376\376\352\364\333" \
- "\223\312K\220\306=\215\306A\214\305B\213\310=\215\306C\215\305>\216\306" \
- "\77\215\305>\215\305@\210\214\306>\37\215\305@\215\307\77\212\306@\215" \
- "\307\77\214\304\77\215\306A\212\307;\212\306@\214\306>\216\307B\214\306" \
- ">\222\312K\354\364\334\377\376\377\377\377\377\377\377\373\376\377\377" \
- "\377\375\376\376\377\375\377\377\377\377\376\377\377\377\377\376\376" \
- "\377\347\365\333\260\327z\371\374\363\375\377\376\376\377\377\377\376" \
- "\377\377\377\377\377\377\375\377\377\377\377\276\377\377\377\3\376\376" \
- "\376\234\234\23699;\203;;=\205::<\1\221\221\223\377\377\377\377\222\377" \
- "\377\377\2\234\234\234;;=\204::<\202;;=\3::<;;=\235\235\237\377\377\377" \
- "\377\276\377\377\377\202\377\377\375\15\376\377\377\367\374\365\223\312" \
- "K\214\306>\213\310\77\215\305@\214\306<\215\307=\214\305@\213\307A\211" \
- "\305\77\215\307\77\215\305>\210\214\306>\20\215\306A\213\305=\215\307" \
- "=\214\305@\215\306A\214\306>\213\304A\220\305\77\216\306\77\212\306@" \
- "\215\305@\213\307A\221\311L\367\375\363\376\377\377\377\377\377\202\377" \
- "\377\373\1\377\375\376\202\377\377\377\4\377\376\377\376\377\377\377" \
- "\376\377\376\377\377\203\377\377\377\3\377\376\377\376\376\377\374\377" \
- "\375\377\377\377\377\277\377\377\377\2\265\265\267<<>\20299;\7::<;;=" \
- "::<99;;;=::<lln\377\377\377\377\222\377\377\377\3\221\221\221::<;;=\205" \
- "::<\3;;=::<\234\234\236\377\377\377\377\276\377\377\377\17\376\377\377" \
- "\377\377\377\366\373\364\244\317c\220\306=\213\310\77\212\306@\211\307" \
- "@\216\306\77\215\305@\215\307\77\213\310\77\215\307\77\215\305>\214\305" \
- "@\210\214\306>\22\216\306A\215\307\77\213\305=\216\306\77\214\306>\212" \
- "\307>\213\310\77\214\305@\215\306C\214\306<\215\307=\215\305>\213\310" \
- "=\242\320d\372\372\362\376\377\375\377\375\377\377\377\375\202\376\377" \
- "\377\5\377\377\377\377\377\375\377\377\377\377\377\375\377\377\377\202" \
- "\377\376\377\5\376\377\375\376\377\377\377\377\377\377\375\376\377\377" \
- "\375\377\377\377\377\274\377\377\377\5\376\376\376\377\377\377\316\316" \
- "\320::<;;=\202::<\1;;=\202::<\3""99;::<kkm\377\377\377\377\222\377\377" \
- "\377\2kkm::<\203;;=\205::<\1\264\264\264\377\377\377\377\275\377\377" \
- "\377\10\377\376\377\376\377\377\377\377\377\300\336\224\212\307>\214" \
- "\306<\214\306>\211\307>\231\214\306>\1\216\306\77\203\214\306>\2\214" \
- "\305@\266\334\207\202\377\377\377\7\377\376\377\377\377\377\377\376\377" \
- "\377\377\375\377\377\377\377\377\375\376\377\377\377\377\377\377\303" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\316\316\316\206::<\6;;=" \
- "::<;;=FFH\377\377\377\376\376\376\205\377\377\377\1\376\376\376\377\377" \
- "\377\377\212\377\377\377\1lln\202::<\3;;=99;;;=\204::<\3\317\317\317" \
- "\377\377\377\376\376\376\377\377\377\377\273\377\377\377\10\377\375\377" \
- "\374\377\375\343\361\320\214\306>\215\306A\214\304=\212\307>\215\305" \
- ">\230\214\306>\20\214\306<\213\304\77\212\307>\212\306B\214\306<\212" \
- "\307>\220\304>\337\363\316\377\376\377\377\377\377\376\377\377\377\377" \
- "\377\376\376\377\377\377\377\376\376\376\376\377\377\377\377\377\377" \
- "\302\377\377\377\1\376\376\376\202\377\377\377\2\376\376\376\377\377" \
- "\377\204::<\1;;=\202::<\3;;=99;;;=\203\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\377\377\377\377\213\377\377\377\2SSU;;=\202" \
- "::<\2;;=99;\204::<\1\315\315\315\203\377\377\377\1\376\376\376\377\377" \
- "\377\377\271\377\377\377\10\376\376\376\377\377\377\233\316W\214\305" \
- "@\212\306@\216\306=\214\305@\215\305@\230\214\306>\17\214\306<\215\306" \
- "C\211\306=\213\307A\214\304\77\212\306@\214\305B\234\313W\376\377\375" \
- "\377\377\377\376\377\375\377\377\375\376\377\377\376\376\377\376\377" \
- "\375\377\377\377\377\302\377\377\377\1\376\376\376\202\377\377\377\4" \
- "\376\376\376\377\377\377\376\376\376;;=\206::<\202;;=\3::<\377\377\377" \
- "\376\376\376\203\377\377\377\3\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\377\212\377\377\377\3::<99;;;=\202::<\10;;=::<;;=99;;;=\363" \
- "\363\363\377\377\377\376\376\376\377\377\377\377\274\377\377\377\7\323" \
- "\354\265\214\305@\215\307\77\215\306A\216\305C\213\304\77\212\307<\230" \
- "\214\306>\20\215\307\77\215\304B\214\305@\214\306>\215\305>\215\307=" \
- "\212\307<\215\307\77\323\351\270\377\376\377\377\377\377\376\376\376" \
- "\376\377\375\376\376\376\376\377\377\377\376\374\377\377\377\377\302" \
- "\377\377\377\202\376\376\376\202\377\377\377\2\376\376\376FFH\210::<" \
- "\2;;=\316\316\316\202\377\377\377\1\376\376\376\377\377\377\377\215\377" \
- "\377\377\1\376\376\376\202;;=\4""99;;;=::<;;=\202::<\2;;=::<\377\377" \
- "\377\377\277\377\377\377\7\231\316X\220\304>\214\305@\215\307\77\214" \
- "\306<\214\311>\214\305@\231\214\306>\11\215\304B\214\306>\215\306A\214" \
- "\306<\215\306A\214\305B\215\307\77\234\315X\375\377\374\204\377\377\377" \
- "\2\376\377\377\377\376\377\377\377\377\377\304\377\377\377\202\376\376" \
- "\376\4\377\377\377jjl::<99;\202;;=\205::<\7\316\316\316\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\377\212\377\377\377\6\363\363\363::<99;;;=::<;;=\202::<\1;;=\202::<" \
- "\377\377\377\377\276\377\377\377\2\342\361\320\214\306<\202\215\305>" \
- "\4\212\307>\215\307=\211\306=\215\305>\230\214\306>\2\213\310=\214\306" \
- "<\202\214\305@\7\215\306A\214\306>\215\307=\214\304\77\211\310<\343\362" \
- "\321\377\377\375\202\377\376\377\2\377\377\375\376\376\376\377\377\377" \
- "\377\310\377\377\377\4kkm::<;;=::<\202;;=\202::<\3;;=::<\316\316\316" \
- "\202\377\377\377\1\376\376\376\377\377\377\377\215\377\377\377\3\316" \
- "\316\316::<;;=\202::<\1;;=\204::<\1__a\202\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\377\271\377\377\377\4\270\333\207" \
- "\214\306>\214\305@\214\306>\203\214\305@\1\215\305>\230\214\306>\17\215" \
- "\306A\213\310=\212\307<\214\306>\214\306<\215\306A\214\306>\214\305@" \
- "\213\306E\267\332\206\377\377\375\376\377\377\377\377\375\377\377\377" \
- "\377\377\375\377\377\377\377\303\377\377\377\1\376\376\376\204\377\377" \
- "\377\6lln;;=::<99;::<;;=\204::<\1\250\250\250\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\213\377\377\377\1\316\316\316\203::<\1;;=\205::" \
- "<\1lln\203\377\377\377\1\376\376\376\377\377\377\377\272\377\377\377" \
- "\10\232\315V\215\305@\212\306@\215\305>\214\306<\215\304D\215\305<\212" \
- "\306@\230\214\306>\3\217\304@\214\306<\215\306A\202\215\305@\7\214\306" \
- ">\214\305@\212\307>\215\305<\233\316W\376\376\377\376\377\375\203\377" \
- "\377\377\1\376\377\377\377\377\377\377\305\377\377\377\3\376\376\376" \
- "\377\377\377\234\234\236\203::<\2;;=99;\204::<\1\234\234\234\202\377" \
- "\377\377\1\376\376\376\377\377\377\377\215\377\377\377\5\316\316\320" \
- "::<;;=::<;;=\202::<\1;;=\202::<\1kkm\377\377\377\377\266\377\377\377" \
- "\10\375\377\374\376\377\377\376\376\376\377\377\375\377\377\377\376\377" \
- "\377\377\377\375\360\371\350\250\214\306>\4\214\305@\212\307>\360\371" \
- "\346\376\377\375\202\377\377\377\1\377\377\375\377\377\377\377\304\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\234\234\234\211::<\1\234\234" \
- "\234\205\377\377\377\1\376\376\376\377\377\377\377\212\377\377\377\4" \
- "\316\316\320llnkkmlln\203kkm\1jjl\202kkm\1\221\221\223\377\377\377\377" \
- "\270\377\377\377\1\377\376\377\202\377\377\377\3\375\376\377\377\377" \
- "\375\341\361\315\251\214\306>\2\215\307\77\342\360\314\377\377\377\377" \
- "\310\377\377\377\202\376\376\376\202\377\377\377\2\266\266\266kkk\210" \
- "kkm\1\265\265\265\206\377\377\377\1\376\376\376\377\377\377\377\211\377" \
- "\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\377\377\377\377\264\377\377\377\1\377\376\377\205\377\377\377\2\375" \
- "\377\374\310\340\246\252\214\306>\1\310\340\246\377\377\377\377\307\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\375\375\375\377\377\377\376" \
- "\376\376\211\377\377\377\7\376\376\376\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\377\377\377\377\213\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\206\377\377\377\1\376" \
- "\376\376\377\377\377\377\263\377\377\377\1\377\376\377\204\377\377\377" \
- "\3\376\376\377\376\377\375\304\342\234\251\214\306>\7\215\305@\305\343" \
- "\235\376\376\377\377\377\377\376\376\377\377\376\377\377\377\375\377" \
- "\377\377\377\306\377\377\377\1\376\376\376\217\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\377\214\377\377\377\5\376\376" \
- "\376\377\377\377\376\376\376\377\377\377\376\376\376\203\377\377\377" \
- "\1\376\376\376\377\377\377\377\267\377\377\377\1\377\377\375\202\377" \
- "\377\377\3\377\376\377\376\377\375\305\342\237\251\214\306>\3\215\305" \
- "@\303\344\235\376\376\376\202\377\377\377\1\377\376\377\377\377\377\377" \
- "\305\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377" \
- "\377\377\1\376\376\376\377\377\377\377\216\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\377\377" \
- "\377\377\266\377\377\377\5\376\377\377\376\376\377\377\376\377\377\377" \
- "\377\305\342\242\251\214\306>\4\215\306A\302\341\236\377\377\375\376" \
- "\376\376\377\377\377\377\305\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\376\376\376\214\377\377\377\1\376\376\376\377\377\377\377\231\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377\264\377" \
- "\377\377\2\376\376\376\377\376\377\202\376\377\377\202\377\377\377\1" \
- "\305\342\240\251\214\306>\7\214\305@\306\343\240\377\376\374\377\377" \
- "\377\376\377\377\377\377\377\376\376\376\377\377\377\377\325\377\377" \
- "\377\1\376\376\376\377\377\377\377\222\377\377\377\1\376\376\376\205" \
- "\377\377\377\1\376\376\376\377\377\377\377\265\377\377\377\4\377\377" \
- "\375\377\376\377\375\377\376\376\377\375\202\377\377\377\1\305\343\235" \
- "\251\214\306>\4\213\310\77\306\341\234\377\376\377\377\377\377\202\376" \
- "\377\375\377\377\377\377\311\377\377\377\1\377\377\375\215\377\377\377" \
- "\1\376\376\376\377\377\377\377\377\377\377\377\314\377\377\377\3\377" \
- "\377\375\377\377\377\376\377\375\203\377\377\377\11\376\377\377\345\360" \
- "\320\214\305@\214\306>\214\305@\214\304\77\214\306<\215\305>\212\307" \
- ">\231\214\306>\1\214\305@\202\215\307\77\205\214\306>\5\212\307>\214" \
- "\306>\342\360\315\377\377\377\376\376\376\202\377\377\377\1\377\377\375" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\244" \
- "\377\377\377\3\377\376\377\377\377\377\376\377\375\203\377\377\377\11" \
- "\376\377\377\362\371\347\214\306>\214\305B\215\310<\215\306A\214\305" \
- "@\215\307\77\214\305@\231\214\306>\4\215\307\77\213\305=\214\306>\215" \
- "\307\77\202\214\306>\5\215\307\77\214\306>\216\306\77\215\306A\360\367" \
- "\345\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\251\377\377\377\2\377\376\377\377\377\375\203\377\377\377\13\377\377" \
- "\375\377\377\377\375\377\374\233\316W\214\305@\213\304\77\212\306@\215" \
- "\307\77\214\305@\215\306A\214\305@\230\214\306>\3\215\307\77\214\306" \
- ">\215\306A\203\214\305@\7\215\306A\214\305@\215\304B\232\315T\377\377" \
- "\375\376\377\377\377\377\375\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\250\377\377\377\1\377\377\375\205\377\377\377" \
- "\11\377\376\377\267\333\204\213\307A\213\307C\215\307\77\213\304\77\215" \
- "\307\77\215\305<\212\306@\231\214\306>\1\215\307\77\203\214\305@\202" \
- "\214\306>\7\215\307\77\212\306@\267\333\204\377\376\377\376\377\377\377" \
- "\377\375\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\247\377\377\377\17\377\377\375\377\377\377\377\377\375" \
- "\376\376\376\377\377\377\377\377\375\376\376\377\334\354\305\211\306" \
- "=\213\307A\213\305;\215\306A\214\306<\215\305>\213\307A\232\214\306>" \
- "\202\214\305@\11\214\306>\214\306<\214\306>\215\307\77\212\311=\333\355" \
- "\305\377\376\377\377\377\377\376\376\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\252\377\377\377\3\377\377\375\377" \
- "\377\377\377\376\377\203\377\377\375\7\233\314V\215\307\77\215\305>\214" \
- "\306>\215\307\77\214\305@\212\307>\232\214\306>\14\214\305@\214\306>" \
- "\214\306<\215\307=\215\307\77\214\305@\232\315V\374\377\373\376\376\377" \
- "\377\377\375\377\377\377\376\376\376\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\255\377\377\377\10\377\377\375\377\376" \
- "\377\324\353\267\214\304\77\215\305>\214\305@\212\307<\214\305@\232\214" \
- "\306>\2\215\307\77\215\306A\202\214\306>\4\215\307\77\213\304\77\215" \
- "\306E\316\346\254\202\377\377\377\3\377\377\375\376\376\377\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\247" \
- "\377\377\377\1\376\376\376\206\377\377\377\10\377\377\373\375\376\377" \
- "\232\315W\214\306>\215\307=\211\307>\215\306A\215\305>\232\214\306>\1" \
- "\214\305@\202\215\307\77\13\214\305@\215\306E\227\317P\377\377\377\377" \
- "\377\375\376\377\377\377\377\377\377\377\375\375\377\376\377\377\377" \
- "\377\377\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\254\377\377\377\20\376\377\377\377\375\377\331\356\303\215\305" \
- "@\213\310\77\215\305>\216\306\77\213\307A\215\306A\214\306<\214\306>" \
- "\216\306\77\213\304\77\212\307<\214\306>\215\305@\210\214\306>\1\214" \
- "\305@\202\215\307\77\205\214\306>\10\214\305@\212\307>\215\305>\214\305" \
- "@\215\305>\214\305@\215\305>\331\356\305\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\264\377\377\377\20\376\376\374\377" \
- "\377\375\376\376\374\261\330{\214\306>\216\306A\214\306>\213\307A\215" \
- "\305>\215\306A\215\307\77\213\304A\215\307\77\214\305@\214\306<\216\306" \
- "A\210\214\306>\4\215\307\77\213\305=\214\306>\215\307\77\202\214\306" \
- ">\12\215\307\77\214\306>\212\307>\220\305\77\212\307>\214\306>\213\310" \
- "=\214\306<\262\327z\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\265\377\377\377\17\374\377\377\377\377\377\370" \
- "\373\362\241\321d\211\310<\215\305>\215\305@\216\306=\214\305@\214\306" \
- ">\215\307\77\214\306>\212\307<\212\306@\212\307<\210\214\306>\3\215\307" \
- "\77\214\306>\215\306A\203\214\305@\12\215\306A\214\305@\215\305>\212" \
- "\307>\213\307A\216\305C\215\307=\242\322e\371\372\364\375\377\376\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\264\377" \
- "\377\377\1\375\377\374\203\377\377\377\4\352\364\333\223\311O\212\306" \
- "@\215\305@\202\213\310\77\202\214\306>\4\216\307F\213\305=\215\307\77" \
- "\215\305@\211\214\306>\1\215\307\77\203\214\305@\202\214\306>\1\215\307" \
- "\77\202\214\305@\6\216\305C\215\307\77\225\311K\351\363\332\377\377\377" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\265\377\377\377\17\377\375\376\377\376\377\377\377\377\377\377" \
- "\375\352\365\327\223\313L\212\307<\215\305>\214\305@\215\307=\214\305" \
- "@\214\306<\213\310\77\213\304\77\220\305A\212\214\306>\202\214\305@\12" \
- "\214\306>\214\306<\214\306>\215\307\77\214\306>\213\310=\215\307=\225" \
- "\311K\347\365\334\377\377\375\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\267\377\377\377\1\377\377\375\202\377\377\377" \
- "\13\377\376\377\376\377\377\353\363\334\245\320d\214\305B\214\305@\215" \
- "\306A\213\305=\214\306>\213\307A\213\310=\213\214\306>\5\214\305@\214" \
- "\306>\214\306<\215\307=\215\307\77\202\214\305@\5\214\306<\242\322e\351" \
- "\363\332\377\377\375\376\376\376\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\267\377\377\377\1\376\376\374\202\377\377" \
- "\375\6\376\377\377\377\376\377\377\377\375\371\372\364\255\330|\217\304" \
- ">\202\212\306@\2\215\306A\214\303A\202\214\305@\211\214\306>\2\215\307" \
- "\77\215\306A\202\214\306>\6\215\307\77\213\304\77\215\306E\215\305>\262" \
- "\327z\371\372\364\203\377\377\377\2\376\377\377\377\377\375\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\264\377\377\377" \
- "\1\376\376\376\202\377\377\377\2\377\377\375\377\376\377\203\377\377" \
- "\377\6\377\377\375\331\356\303\233\314W\215\310<\214\305@\215\307\77" \
- "\214\214\306>\1\214\305@\202\215\307\77\7\214\305@\215\306E\227\317P" \
- "\331\356\305\376\377\377\375\377\376\376\377\377\202\377\377\377\2\377" \
- "\377\375\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\274\377\377\377\10\377\377\375\377\376\377\365\375\362" \
- "\307\342\237\234\315Z\212\306@\212\307>\214\305@\202\215\307\77\16\214" \
- "\306>\215\307\77\214\306>\215\306A\214\306>\213\310\77\214\306>\215\305" \
- "<\216\306A\213\310\77\212\307>\232\315T\307\341\242\370\373\362\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\304\377\377" \
- "\377\1\377\377\375\202\377\377\377\10\377\376\377\376\376\374\335\354" \
- "\303\270\333\207\222\311J\214\305@\215\306A\213\305=\202\214\306>\13" \
- "\215\307\77\216\306\77\215\305>\212\306@\212\307>\226\312K\270\333\211" \
- "\334\354\307\376\377\377\376\376\376\377\377\375\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\306\377\377\377\2\376\377" \
- "\375\376\377\377\204\377\377\377\16\350\366\334\332\354\302\311\341\245" \
- "\306\341\234\305\342\237\304\341\237\305\342\240\305\342\237\334\355" \
- "\303\352\364\333\377\377\375\377\375\376\377\376\377\377\377\375\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\307\377" \
- "\377\377\15\376\376\376\377\376\377\377\377\375\377\377\373\376\377\377" \
- "\376\377\375\376\377\377\377\377\375\377\377\377\376\376\376\376\377" \
- "\377\376\377\375\377\377\377\202\377\376\377\204\377\377\377\1\376\376" \
- "\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\307\377\377\377\3\376\377\377\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\210\377\377\377\3\375\377\376\376\377\377\377\377\377" \
- "\203\377\376\377\4\376\377\375\376\377\377\377\377\377\377\376\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\304\377" \
- "\377\377\10\377\377\375\377\376\377\377\377\373\377\377\377\375\377\376" \
- "\376\377\377\376\376\376\377\376\377\202\376\377\377\1\377\377\377\202" \
- "\376\376\376\202\377\377\377\202\376\377\377\5\376\377\375\377\377\377" \
- "\376\376\374\377\377\377\377\377\375\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\307\377\377\377\1\376\376\377\202\377" \
- "\377\377\2\377\377\375\376\376\377\202\377\377\377\2\376\377\375\377" \
- "\377\375\204\377\377\377\202\377\377\375\1\376\377\375\202\376\377\377" \
- "\202\377\377\375\202\377\377\377\1\377\376\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\310\377\377\377\5\377\377\375" \
- "\377\376\377\377\377\375\376\376\377\377\376\377\207\377\377\377\202" \
- "\377\376\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\377\261\377\377\377" \
- "\1\376\376\376\210\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\331\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\257\377" \
- "\377\377\1\376\376\376\212\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\205\377\377\377\1\376\376\376\312\377\377\377\1\376\376\376\214" \
- "\377\377\377\1\376\376\376\202\377\377\377\6\377\376\375\377\377\377" \
- "\376\377\377\377\377\377\377\376\377\376\377\377\270\377\377\377\7\376" \
- "\377\377\377\376\377\376\377\377\377\377\375\377\377\377\377\375\377" \
- "\377\376\377\273\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\302\377\377\377\1\376\376\376\305\377\377\377\1\376\376\376\241" \
- "\377\377\377\1\376\376\376\214\377\377\377\1\376\376\376\235\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\252\377\377\377\1\376\376\376" \
- "\212\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\251\377\377\377\202\376\376\376\215\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\224\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\232\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376" \
- "\376\243\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\2" \
- "\376\376\376\377\377\377\202\377\377\375\3\377\377\377\376\377\377\377" \
- "\377\375\202\377\376\377\1\377\377\377\270\377\376\377\14\377\377\377" \
- "\377\376\377\377\376\374\377\377\375\375\376\377\376\377\377\377\377" \
- "\375\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376\203" \
- "\377\377\377\1\376\376\376\266\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\214\377\377\377\202" \
- "\376\376\376\207\377\377\377\1\376\376\376\272\377\377\377\1\376\376" \
- "\376\252\377\377\377\202\376\376\376\247\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\311\377\377\377\1\376\376\376\221" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\302\377\377" \
- "\377\1\376\376\376\207\377\377\377\1\346\346\346\204\316\316\316\10\317" \
- "\317\317\315\315\315\316\316\316\363\363\365\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\204\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\234\377\377\377\1\376\376\376\262\377\377\377\1\376\376" \
- "\376\213\377\377\377\1\377\377\375\202\376\377\377\1\376\376\377\202" \
- "\377\377\377\2\377\376\377\377\377\375\270\276\317\331\1\377\376\377" \
- "\205\377\377\377\3\376\377\375\377\377\375\376\376\376\257\377\377\377" \
- "\1\376\376\376\210\377\377\377\202\376\376\376\210\377\377\377\1\376" \
- "\376\376\220\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\243\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\207\377\377\377\1\376\376\376\331\377\377\377\12\376" \
- "\376\376\377\377\377\235\235\235kkmllnkkmllnjjlkkm\346\346\346\202\377" \
- "\377\377\1\376\376\376\237\377\377\377\2\346\346\346\317\317\317\204" \
- "\316\316\316\2\317\317\317\346\346\346\234\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\202\377\377\377\1\332\332\332\203\316" \
- "\316\316\1\317\317\317\202\316\316\316\213\377\377\377\5\346\346\346" \
- "\317\317\317\315\315\315\316\316\316\315\315\315\252\316\316\316\1\363" \
- "\363\363\205\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376" \
- "\211\377\377\377\4\346\346\346\250\250\250\204\204\206``b\202::<\1;;" \
- "=\202::<\3;;=99;;;=\203::<\4lln\220\220\222\266\266\266\363\363\363\202" \
- "\376\376\376\240\377\377\377\1\346\346\346\202\316\316\316\10\317\317" \
- "\317\315\315\315\317\317\317\316\316\316\332\332\332\376\376\376\377" \
- "\377\377\376\376\376\203\377\377\377\1\376\376\376\241\377\377\377\6" \
- "\376\376\376\377\377\377\346\346\346\316\316\320\317\317\321\316\316" \
- "\320\203\316\316\316\2\347\347\347\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\375\5\376\377\377\377\377\375\377\377\377\317\334" \
- "\344\37V\177\270\0>i\12\37U{\317\334\344\377\376\374\377\377\375\376" \
- "\377\377\377\376\374\376\377\377\376\376\376\377\377\377\363\363\363" \
- "\202\316\316\316\1\315\315\315\202\317\317\317\251\316\316\316\1\332" \
- "\332\332\202\377\377\377\1\376\376\376\203\377\377\377\202\376\376\376" \
- "\204\377\377\377\3\346\346\346\316\316\316\316\316\320\204\316\316\316" \
- "\2\346\346\346\376\376\376\212\377\377\377\1\347\347\347\206\316\316" \
- "\316\2\317\317\317\363\363\363\250\377\377\377\2\376\376\376\331\331" \
- "\331\206\316\316\316\1\332\332\332\202\377\377\377\1\376\376\376\204" \
- "\377\377\377\1\376\376\376\203\377\377\377\3\332\332\332\316\316\316" \
- "\316\316\320\250\316\316\316\1\363\363\363\205\377\377\377\1\376\376" \
- "\376\242\377\377\377\4\346\346\346::<;;=99;\204::<\1\204\204\206\237" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\235\235\235::<;;=\202::" \
- "<\3;;=::<\235\235\235\202\377\377\377\1\376\376\376\232\377\377\377\1" \
- "\376\376\376\205\377\377\377\4kkm;;;99;;;=\202::<\1;;;\213\377\377\377" \
- "\4\234\234\234:::::<;;=\202::<\1;;;\250::<\1\316\316\316\202\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\376\376\376\212\377\377\377\203" \
- "\376\376\376\203\377\377\377\3\346\346\346\250\250\250```\204::<\202" \
- ";;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\5;;=::<```\265\265\265\362\362" \
- "\362\203\377\377\377\1\376\376\376\233\377\377\377\1\234\234\236\204" \
- "::<\5""99;;;=::<\333\333\335\376\376\376\203\377\377\377\1\376\376\376" \
- "\241\377\377\377\4\376\376\376\377\377\377\363\363\363FFH\202::<\1;;" \
- "=\203::<\1\234\234\234\210\377\377\377\6\376\377\377\377\377\375\375" \
- "\376\377\356\363\366\40Vz\0\77h\270\0=i\20\0>i\22Ip\356\363\367\376\377" \
- "\377\377\377\375\377\377\377\376\376\377\377\376\377\377\377\377\315" \
- "\315\315:::::<;;=::<99;;;;\250::<\1kkm\205\377\377\377\1\376\376\376" \
- "\203\377\377\377\4\376\376\376\377\377\377\376\376\376\234\234\234\203" \
- "::<\6;;=::<:::\234\234\234\377\377\377\376\376\376\211\377\377\377\3" \
- "\332\332\332:::;;=\202::<\202;;=\2::<\204\204\206\250\377\377\377\2\364" \
- "\364\364FFF\204::<\202:::\1\234\234\234\206\377\377\377\1\376\376\376" \
- "\204\377\377\377\2kkk;;=\251::<\1\316\316\316\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\240\377\377\377\6\376\376\376\234" \
- "\234\236::<;;=::<;;=\203::<\2FFH\362\362\362\235\377\377\377\1\376\376" \
- "\376\203\377\377\377\3\234\234\236::<;;=\202::<\3;;=::<\234\234\236\203" \
- "\377\377\377\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377" \
- "\377\7kkm::<;;=::<;;=::<;;=\213\377\377\377\4\235\235\235::<;;=99;\202" \
- ";;=\251::<\1\315\315\315\203\377\377\377\202\376\376\376\213\377\377" \
- "\377\1\376\376\376\202\377\377\377\6\376\376\376\377\377\377\315\315" \
- "\315\205\205\205::<;;=\213::<\4;;=::<;;=::<\203;;=\204::<\4FFF\204\204" \
- "\204\346\346\346\376\376\376\234\377\377\377\3\234\234\236::<;;=\202" \
- "::<\4;;=99;::<``b\244\377\377\377\1\376\376\376\203\377\377\377\1xxz" \
- "\202::<\10;;=99;;;=::<;;=\233\233\235\377\377\377\376\376\376\202\377" \
- "\377\377\1\376\376\376\203\377\377\377\4\375\377\376\377\376\373\377" \
- "\377\375\235\267\310\202\0>i\271\0=i\4\0\77j\237\266\306\377\376\377" \
- "\377\375\374\202\376\377\377\4\377\377\377\376\376\376\316\316\31699" \
- ";\202;;=\2::<;;=\251::<\1kkm\203\377\377\377\1\376\376\376\210\377\377" \
- "\377\4\235\235\235::<99;;;=\203::<\1\235\235\235\214\377\377\377\2ll" \
- "n99;\202;;=\1::<\203;;=\2\362\362\364\376\376\376\245\377\377\377\2\376" \
- "\376\376\250\250\250\204::<\4;;=::<:::\346\346\346\203\377\377\377\1" \
- "\376\376\376\205\377\377\377\3\376\376\376\377\377\377jjl\252::<\1\315" \
- "\315\315\203\377\377\377\202\376\376\376\242\377\377\377\3\362\362\364" \
- "GGI::<\202;;=\2""99;;;=\202::<\2""99;\235\235\235\237\377\377\377\3\376" \
- "\376\376\377\377\377\235\235\237\202::<\202;;=\202::<\3\235\235\237\377" \
- "\377\377\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\4" \
- "\376\376\376\377\377\377kkm;;=\202::<\5""99;;;=99;\377\377\377\376\376" \
- "\376\211\377\377\377\1\233\233\233\202::<\3;;=::<99;\251::<\1\317\317" \
- "\317\205\377\377\377\1\376\376\376\214\377\377\377\3\376\376\376\347" \
- "\347\347xxz\203::<\1;;=\202::<\1;;=\204::<\1;;=\203::<\1;;=\205::<\1" \
- ";;=\203::<\1;;=\203::<\2\234\234\236\362\362\362\233\377\377\377\2\233" \
- "\233\235;;=\204::<\1;;=\202::<\1\234\234\236\245\377\377\377\4\376\376" \
- "\376\302\302\304::<;;=\206::<\1\235\235\237\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\7\375\376\377\377\377\377\377\377\375\376\377\377" \
- "\377\377\377\177\235\265\0\77k\271\0\77j\7\0\77k\0\77j~\236\265\377\376" \
- "\377\376\377\377\375\377\374\377\377\375\202\377\377\377\5\315\315\315" \
- ";;=::<99;;;=\252::<\3kkm\377\377\377\376\376\376\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\202\377\377\377\3\233\233\233" \
- "::<;;=\202::<\3;;=::<\234\234\234\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\4\264\264\264;;=::<;;=\204::<\3\247\247\251\377\377\377\376" \
- "\376\376\245\377\377\377\1SSS\203::<\1;;=\202::<\1\204\204\204\213\377" \
- "\377\377\4\376\376\376lln::<:9>\250::<\1\317\317\317\205\377\377\377" \
- "\1\376\376\376\241\377\377\377\1\265\265\267\204::<\1;;=\204::<\1FFF" \
- "\241\377\377\377\2\234\234\236;;=\204::<\2;;=\234\234\236\234\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\204\377\377\377\1kkm\203:" \
- ":<\4;;=::<;;=\376\376\376\212\377\377\377\1\234\234\234\204::<\1;;=\251" \
- "::<\1\316\316\316\203\377\377\377\202\376\376\376\215\377\377\377\4\234" \
- "\234\234;;=::<;;=\202::<\1""99;\204::<\1;;=\203::<\1;;=\211::<\1""99" \
- ";\207::<\2FFF\301\301\301\232\377\377\377\2\234\234\23699;\210::<\1\333" \
- "\333\333\241\377\377\377\6\376\376\376\377\377\377\376\376\376\363\363" \
- "\363FFH;;=\205::<\3;;=::<\234\234\236\206\377\377\377\7\377\376\377\377" \
- "\377\377\377\377\375\375\376\377\377\376\377\201\235\263\0>g\272\0>i" \
- "\13\0>e\177\236\263\377\375\374\377\377\377\377\377\375\376\376\376\377" \
- "\376\377\377\377\377\316\316\316::<;;=\202::<\2""99;;;=\250::<\1kkm\204" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\2\376\376\376\234\234\234\206::<\1\234\234\234\215" \
- "\377\377\377\2RRT;;=\205::<\1SSU\246\377\377\377\2\316\316\316999\206" \
- "::<\1\316\316\316\202\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\207\377\377\377\3jjl::<:9>\250::<\1\316\316\316\203\377\377\377\202" \
- "\376\376\376\242\377\377\377\2SSU99;\202;;=\204::<\4;;=99;::<\264\264" \
- "\266\240\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377" \
- "\1kkm\206::<\213\377\377\377\2\234\234\236;;=\216::<\4""99;;;=::<;;=" \
- "\206::<\3;;=::<;;=\222::<\1\316\316\316\205\377\377\377\1\376\376\376" \
- "\207\377\377\377\1\376\376\376\202\377\377\377\2\346\346\350__a\202:" \
- ":<\3;;=::<;;=\204::<\1;;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\2""99" \
- ";;;=\202::<\1;;=\204::<\7;;=::<;;=::<;;=\204\204\206\363\363\363\203" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\222\377\377\377\4" \
- "\234\234\236::<;;=99;\204::<\3;;=::<__a\244\377\377\377\1xxx\205::<\1" \
- ";;=\203::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\211\0" \
- "=i\2\0>j\0=i\202\1>j\2\0\77k\0>j\232\0>i\2\0>j\0\77k\202\1>j\2\0=i\0" \
- ">j\211\0=i\3\0>i\0=i\177\236\263\206\377\377\377\6\316\316\316:::::<" \
- ";;=::<;;=\217::<\1;;=\203::<\1;;=\202::<\1;;=\222::<\1kkk\205\377\377" \
- "\377\1\376\376\376\206\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\215\377\377\377\3\234\234\234;;=::<\202;;=\203::<\3\316\316\320\377" \
- "\377\377\376\376\376\240\377\377\377\1\376\376\376\202\377\377\377\3" \
- "xxz::<;;=\202::<\3;;=::<__a\215\377\377\377\1kkm\204::<\1;;=\202::<\1" \
- ";;=\242::<\1\316\316\316\205\377\377\377\1\376\376\376\240\377\377\377" \
- "\1\265\265\265\202::<\5;;=::<;;=::<;;=\204::<\2TTV\376\376\376\237\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\213\377\377\377\3\234\234\23499;;;=\214::<\1""99;\207::<\1;;=\227" \
- "::<\1\316\316\316\204\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\203\377\377\377\1\376\376\376\204\377\377\377\2\333\333\335FFH\214:" \
- ":<\16``b\221\221\223\251\251\251\315\315\315\316\316\316\363\363\363" \
- "\377\377\377\332\332\332\316\316\316\301\301\301\235\235\237jjlFFH;;" \
- "=\207::<\1;;=\202::<\3;;=__a\363\363\363\227\377\377\377\4\234\234\236" \
- "99;::<;;=\205::<\3;;=::<\233\233\233\240\377\377\377\12\376\376\376\377" \
- "\377\377\301\301\301;;=::<;;=::<;;=::<99;\203::<\1\234\234\236\213\377" \
- "\377\377\3\177\236\263\0=i\0>i\211\0=i\7\1>j\0=i\1>j\0=i\0>g\3>h\2=g" \
- "\230\0=i\7\2=g\3>h\0>g\0=i\1>j\0=i\1>j\211\0=i\3\0>i\0=i\177\236\263" \
- "\206\377\377\377\2\317\317\317:::\221::<\202;;=\202::<\3;;=::<99;\203" \
- "::<\2;;=99;\220::<\1kkk\214\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\213\377\377\377\3\376\376\376\377\377\377\363\363\363\204::<\4;" \
- ";=::<;;=xxz\202\377\377\377\1\376\376\376\236\377\377\377\1\376\376\376" \
- "\202\377\377\377\3\346\346\346::<;;=\202::<\4;;=99;;;=\266\266\270\215" \
- "\377\377\377\1kkm\203::<\1;;=\202::<\1;;=\243::<\1\316\316\316\204\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1\376" \
- "\376\376\204\377\377\377\1kkm\202;;=\202::<\202;;=\2::<;;=\204::<\3\317" \
- "\317\317\377\377\377\376\376\376\235\377\377\377\1\234\234\234\206::" \
- "<\1\234\234\234\243\377\377\377\1kkm\206::<\212\377\377\377\1\376\376" \
- "\376\224\377\377\377\1lln\203::<\1;;=\202::<\1\234\234\236\234\377\377" \
- "\377\1\376\376\376\204\377\377\377\4\376\376\376\265\265\267::<;;=\202" \
- "::<\1;;=\202::<\1;;=\203::<\5__a\266\266\270\363\363\363\377\377\377" \
- "\376\376\376\204\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\202\377\377\377\4\301\301\303\204\204\206;;=::<\203;;=\202::<\2" \
- ";;=::<\202;;=\3GGI\332\332\334\376\376\376\203\377\377\377\1\376\376" \
- "\376\221\377\377\377\2\235\235\237::<\202;;=\202::<\1;;=\202::<\4""9" \
- "9;::<;;=\331\331\331\240\377\377\377\2\363\363\363GGI\203::<\2;;=::<" \
- "\203;;=\202::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\210" \
- "\0=i\10\0\77k\0=i\1>j\0>i\0\77j\0=i\0>i\0>j\230\0>i\10\0>j\0>i\0=i\0" \
- "\77j\0>i\1>j\0=i\0\77k\210\0=i\3\0>i\0=i\177\236\263\206\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\376\376\376\203\377\377\377\1\315\315" \
- "\317\204::<\3;;=::<kkm\240\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\214\377\377\377\3\376\376\376\377\377\377\204\204\206\202::<\1;" \
- ";=\202::<\202;;=\1\345\345\345\242\377\377\377\2\376\376\376\234\234" \
- "\234\206::<\2GGI\363\363\363\215\377\377\377\1kkm\203::<\4""99;::<;;" \
- "=\316\316\320\311\377\377\377\2\317\317\32199;\203::<\5;;=::<FFH;;=:" \
- ":<\202;;=\202::<\1kkm\237\377\377\377\1\234\234\234\206::<\1\234\234" \
- "\234\243\377\377\377\1kkm\206::<\213\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\216\377\377\377\1\376\376\376\202\377\377\377\5lln:" \
- ":<;;=::<;;=\202::<\2\234\234\234\376\376\376\227\377\377\377\1\376\376" \
- "\376\210\377\377\377\1\264\264\266\202;;=\4::<;;=::<99;\204::<\3jjl\317" \
- "\317\321\376\376\376\202\377\377\377\1\375\375\375\203\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376\203" \
- "\377\377\377\3\363\363\365\234\234\236FFH\202::<\1;;=\202::<\1;;=\203" \
- "::<\2FFH\332\332\334\225\377\377\377\1\233\233\235\202;;=\211::<\1__" \
- "a\240\377\377\377\2xxz;;=\202::<\3;;=::<;;=\205::<\1\234\234\236\213" \
- "\377\377\377\3\177\236\263\0=i\0>i\211\0=i\202\0>i\5\0<h\1>j\0=i\1>j" \
- "\0>i\230\0=i\5\0>i\1>j\0=i\1>j\0<h\202\0>i\211\0=i\3\0>i\0=i\177\236" \
- "\263\212\377\377\377\3\376\376\376\377\377\377\376\376\376\212\377\377" \
- "\377\1\376\376\376\202\377\377\377\10\316\316\320::<;;=::<;;=99;::<j" \
- "jl\225\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\207\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\216\377\377\377\3\332\332" \
- "\332;;=99;\202::<\4;;=::<99;\234\234\236\237\377\377\377\1\376\376\376" \
- "\203\377\377\377\1SSU\202::<\1;;=\203::<\1\221\221\221\216\377\377\377" \
- "\1kkm\206::<\1\316\316\316\250\377\377\377\1\376\376\376\235\377\377" \
- "\377\1\376\376\376\202\377\377\377\5xxz::<;;=::<;;=\202::<\3\316\316" \
- "\320RRT;;=\203::<\4;;=::<\332\332\332\376\376\376\235\377\377\377\1\234" \
- "\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\214\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\213\377\377\377\1\376\376" \
- "\376\204\377\377\377\4kkm;;=::<;;=\203::<\1\235\235\235\202\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\213\377\377\377\4\301\301" \
- "\301;;=::<;;=\203::<\202;;=\3::<RRT\316\316\316\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\204\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\1\376\376\376\204\377\377\377" \
- "\4\346\346\346xxz;;=99;\207::<\4GGI\362\362\362\377\377\377\376\376\376" \
- "\222\377\377\377\1\234\234\236\206::<\203;;=\202::<\2;;=\233\233\235" \
- "\236\377\377\377\10\301\301\301::<;;=:9>::<99;::<99;\202;;=\203::<\1" \
- "\234\234\236\213\377\377\377\3\177\236\263\0=i\0>i\210\0=i\7\2=g\0>i" \
- "\0>j\0\77j\0=i\0\77j\0=h\232\1>j\7\0=h\0\77j\0=i\0\77j\0>j\0>i\2=g\210" \
- "\0=i\3\0>i\0=i\177\236\263\213\377\377\377\1\376\376\376\216\377\377" \
- "\377\1\317\317\321\202::<\6;;=::<;;=::<lln\376\376\376\225\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\205\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\213\377\377\377\1\376\376\376\203\377\377\377" \
- "\2kkm;;=\204::<\2;;=GGI\236\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\265\265\267\202::<\6;;=::<;;=::<;;=\345\345\345\216\377\377\377\1" \
- "kkm\202::<\5;;=99;;;=99;\317\317\317\244\377\377\377\1\376\376\376\241" \
- "\377\377\377\3\376\376\376\377\377\377\347\347\351\206::<\3``b\377\377" \
- "\377\234\234\236\202::<\1;;=\202::<\4;;=\204\204\206\377\377\377\376" \
- "\376\376\234\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377" \
- "\377\1kkm\206::<\215\377\377\377\1\375\375\375\202\377\377\377\1\376" \
- "\376\376\213\377\377\377\5\376\376\376\377\377\377\376\376\376lln;;=" \
- "\203::<\3;;=::<\234\234\234\234\377\377\377\1\376\376\376\202\377\377" \
- "\377\4\331\331\331FFH::<;;=\202::<\11;;=::<99;;;=\203\203\203\363\363" \
- "\363\376\376\376\377\377\377\376\376\376\222\377\377\377\7\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\300\300\300GGI::<\202;;=\205::<" \
- "\4``b\362\362\362\377\377\377\376\376\376\221\377\377\377\1\234\234\236" \
- "\204::<\202;;=\203::<\5;;=99;::<;;=\332\332\332\234\377\377\377\4\363" \
- "\363\363GGI;;=::<\202;;=\203::<\1;;=\202::<\3;;=::<\234\234\236\213\377" \
- "\377\377\3\177\236\263\0=i\0>i\210\0=i\10\0\77j\0>j\0\77k\0=i\3>h\2=" \
- "g\1>j\0\77k\230\0=i\10\0\77k\1>j\2=g\3>h\0=i\0\77k\0>j\0\77j\210\0=i" \
- "\3\0>i\0=i\177\236\263\232\377\377\377\12\316\316\316;;=::<;;=::<;;=" \
- "::<kkm\377\377\377\376\376\376\222\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\210\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\214\377\377\377\1\376\376\376\202\377\377\377\2\266\266\26699;\202" \
- "::<\202;;=\202::<\3\266\266\270\377\377\377\376\376\376\234\377\377\377" \
- "\203\376\376\376\1lln\202;;=\204::<\3xxx\377\377\377\376\376\376\215" \
- "\377\377\377\1kkm\205::<\2;;=\316\316\316\305\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\203\203\205\206::<\4\265\265\267\377\377\377\363\363" \
- "\363GGG\203::<\1;;=\202::<\1\346\346\346\235\377\377\377\1\234\234\234" \
- "\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\216\377\377\377\1\376" \
- "\376\376\220\377\377\377\1jjl\206::<\1\234\234\234\202\377\377\377\1" \
- "\376\376\376\232\377\377\377\3\376\376\376\364\364\364SSU\202::<\7;;" \
- "=::<;;=99;::<;;=\265\265\265\205\377\377\377\203\376\376\376\214\377" \
- "\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377\376\376\376" \
- "\203\377\377\377\7\332\332\332__a::<;;=::<;;=::<\202;;=\3::<\205\205" \
- "\207\376\376\377\222\377\377\377\3\234\234\236::<;;=\202::<\2;;=99;\202" \
- ";;=\1""99;\202::<\3;;=::<__a\234\377\377\377\1xxz\202;;=\205::<\1;;=" \
- "\202::<\1;;=\202::<\1\234\234\236\213\377\377\377\3\177\236\263\0=i\0" \
- ">i\210\0=i\10\0>i\0=i\0>i\0\77k\0>j\2=g\1\77h\0>l\230\0>i\10\0>l\1\77" \
- "h\2=g\0>j\0\77k\0>i\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\205\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\221\377\377\377\3\316" \
- "\316\316::<;;=\204::<\1kkm\225\377\377\377\202\376\376\376\211\377\377" \
- "\377\1\234\234\236\206::<\1\234\234\236\217\377\377\377\3\376\376\376" \
- "TTV99;\202::<\4""99;;;=::<kkm\240\377\377\377\1\346\346\346\202::<\1" \
- "99;\204::<\1\316\316\316\217\377\377\377\1kkm\204::<\3;;=99;\316\316" \
- "\316\305\377\377\377\7\376\376\376\377\377\377\363\363\363::<;;=::<;" \
- ";=\202::<\1SSU\203\377\377\377\2\204\204\204;;=\203::<\4;;=99;\222\222" \
- "\222\376\376\376\234\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\214\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\220\377\377\377\1kkm\206::<\1\234\234\236\236\377\377\377\1" \
- "\204\204\206\203::<\1;;=\202::<\3;;=::<\265\265\267\221\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1\376\376" \
- "\376\204\377\377\377\11\376\376\376\363\363\365__a::<;;=::<;;=::<;;=" \
- "\202::<\1\301\301\303\222\377\377\377\2\234\234\236;;=\202::<\10;;=:" \
- ":<;;=FFH::<;;=::<;;=\203::<\1\235\235\237\232\377\377\377\2\301\301\303" \
- ";;=\205::<\2;;=RRT\204::<\3;;=::<\234\234\236\213\377\377\377\3\177\236" \
- "\263\0=i\0>i\210\0=i\7\0>j\2=g\0>g\0>j\40V|o\224\256\177\236\262\232" \
- "\177\236\263\7\177\236\262o\224\256\40V|\0>j\0>g\2=g\0>j\210\0=i\3\0" \
- ">i\0=i\177\236\263\232\377\377\377\3\316\316\316::<;;=\203::<\2;;=kk" \
- "m\232\377\377\377\1\376\376\376\205\377\377\377\1\234\234\236\206::<" \
- "\1\234\234\236\220\377\377\377\2\233\233\235;;=\202::<\1<<>\203::<\1" \
- "\346\346\346\237\377\377\377\1\204\204\204\206::<\2SSU\376\376\376\217" \
- "\377\377\377\1kkm\203::<\4;;=::<;;=\316\316\320\304\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\234\234\236;;=\202::<\4;;=::<;;=\234\234\234" \
- "\203\377\377\377\1\346\346\346\205::<\3;;=FFH\363\363\365\203\377\377" \
- "\377\1\376\376\376\230\377\377\377\1\234\234\234\206::<\1\234\234\234" \
- "\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236" \
- "\235\377\377\377\2\316\316\316;;=\202::<\6;;=::<;;=::<:::\265\265\265" \
- "\237\377\377\377\7\376\376\376\363\363\363___::<;;=::<;;=\203::<\2GG" \
- "I\363\363\363\204\377\377\377\1\376\376\376\214\377\377\377\1\234\234" \
- "\234\203::<\202;;=\5::<\266\266\266GGI99;;;=\202::<\1;;=\202::<\1\332" \
- "\332\332\206\377\377\377\1\376\376\376\211\377\377\377\1\376\376\376" \
- "\207\377\377\377\2\363\363\363FFH\206::<\3FFH\301\301\30399;\202::<\202" \
- ";;=\2::<\234\234\236\206\377\377\377\7\377\377\375\377\377\377\377\377" \
- "\375\376\377\377\376\376\376\200\237\263\0\77i\211\0>i\7\0>g\1>j\0>g" \
- "_\210\236\377\377\377\376\377\377\377\376\377\231\377\377\377\10\377" \
- "\377\375\376\377\375\377\377\377\377\377\375`\210\242\3>h\0\77j\1\77" \
- "h\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<" \
- "\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377" \
- "\377\1\363\363\363\204::<\202;;=\2""99;\205\205\207\207\377\377\377\1" \
- "\376\376\376\224\377\377\377\4\376\376\376\377\377\377\363\363\363FF" \
- "H\202::<\5;;=99;;;=::<\265\265\265\220\377\377\377\1kkm\206::<\1\316" \
- "\316\316\305\377\377\377\5\376\376\376\364\364\364FFH::<;;=\202::<\4" \
- ";;=FFH\363\363\363\377\377\377\202\376\376\376\6\377\377\377xxz::<;;" \
- "=::<;;=\202::<\1\234\234\236\206\377\377\377\202\376\376\376\224\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\237\377\377\377\1kkm\206::<\1\234\234\236\225\377\377\377\1\376\376" \
- "\376\207\377\377\377\2SSS;;=\202::<\1;;=\203::<\1\234\234\234\202\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\232\377\377\377\1\376" \
- "\376\376\202\377\377\377\4\332\332\332FFH::<;;=\202::<\1;;=\202::<\1" \
- "\222\222\224\205\377\377\377\1\376\376\376\213\377\377\377\3\234\234" \
- "\234::<;;=\202::<\5""99;;;=\315\315\315\250\250\252;;=\206::<\2``b\376" \
- "\376\376\202\377\377\377\1\376\376\376\216\377\377\377\1\376\376\376" \
- "\205\377\377\377\2xxx;;=\202::<\1;;=\203::<\2\300\300\300\317\317\321" \
- "\203::<\1;;=\202::<\1\234\234\236\207\377\377\377\1\377\376\377\202\377" \
- "\377\377\4\377\376\377\201\235\263\0=j\3>j\210\0=i\5\1>j\0=j\37V\177" \
- "\377\376\377\376\376\376\202\377\377\377\1\376\377\377\230\377\377\377" \
- "\10\376\377\377\377\377\375\374\377\377\377\376\374\376\377\377#W\177" \
- "\0>g\0\77i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377" \
- "\377\377\2\376\376\376\204\204\206\205::<\3;;=FFH\362\362\362\204\377" \
- "\377\377\202\376\376\376\2\377\377\377\376\376\376\224\377\377\377\3" \
- "\376\376\376\265\265\265;;=\203::<\4;;=99;FFH\363\363\363\220\377\377" \
- "\377\1kkm\206::<\1\316\316\316\306\377\377\377\4\265\265\26599;;;=::" \
- "<\202;;=\2""99;\222\222\224\204\377\377\377\12\376\376\376\316\316\320" \
- ";;=::<;;=99;;;=99;SSU\376\376\376\202\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\226\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\234" \
- "\377\377\377\11\234\234\234::<;;=99;;;=99;::<;;=kkm\241\377\377\377\1" \
- "\376\376\376\202\377\377\377\1\301\301\303\203::<\6;;=99;::<;;=::<\346" \
- "\346\350\203\377\377\377\1\376\376\376\214\377\377\377\1\234\234\234" \
- "\203::<\202;;=\10""99;\316\316\316\377\377\377kkm::<;;=::<;;=\203::<" \
- "\1\235\235\237\203\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\205\377\377\377\3\302\302\304::<;;=\202::<\7""99;;;=99;xxz\377\377" \
- "\377\315\315\315;;=\203::<\3:9>::<\234\234\236\206\377\377\377\3\376" \
- "\377\377\377\377\375\377\377\377\202\377\377\375\3|\237\265\0\77k\0>" \
- "g\210\0=i\10\0@h\3<i~\236\263\376\377\377\377\377\377\377\376\377\377" \
- "\376\374\377\376\377\230\377\377\377\10\377\375\377\377\377\375\377\376" \
- "\374\377\377\377\376\376\374\220\251\275\2=i\0>j\210\0=i\3\0>i\0=i\177" \
- "\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1" \
- "\234\234\236\206::<\1\234\234\236\215\377\377\377\1\376\376\376\203\377" \
- "\377\377\2\332\332\334;;=\206::<\2\266\266\266\376\376\376\202\377\377" \
- "\377\1\376\376\376\202\377\377\377\1\376\376\376\222\377\377\377\1\376" \
- "\376\376\203\377\377\377\1SSS\203::<\4""99;::<;;=\221\221\223\221\377" \
- "\377\377\1kkm\206::<\1\316\316\316\306\377\377\377\4RRT;;=::<;;=\202" \
- "::<\2;;=\345\345\345\202\377\377\377\1\376\376\376\203\377\377\377\2" \
- "__a;;=\202::<\1;;=\202::<\1\264\264\264\206\377\377\377\1\376\376\376" \
- "\224\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1" \
- "kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\226\377\377\377" \
- "\1\376\376\376\204\377\377\377\2\363\363\363FFH\203::<\1;;=\202::<\2" \
- "FFH\346\346\346\204\377\377\377\1\376\376\376\233\377\377\377\1\376\376" \
- "\376\203\377\377\377\3\376\376\376xxz99;\202::<\1""99;\202::<\4;;=\204" \
- "\204\206\377\377\377\376\376\376\202\377\377\377\1\376\376\376\213\377" \
- "\377\377\1\234\234\234\202::<\10;;=99;;;=::<\317\317\317\376\376\376" \
- "\363\363\363GGI\203::<\1;;=\203::<\3\331\331\331\377\377\377\376\376" \
- "\376\202\377\377\377\1\376\376\376\217\377\377\377\5\363\363\363GGI;" \
- ";=::<;;=\202::<\7""99;FFH\363\363\363\377\377\377\316\316\316::<;;=\202" \
- "::<\3:9>::<\234\234\236\207\377\377\377\7\376\377\377\376\376\376\377" \
- "\377\377\377\377\375\377\377\377\377\375\374\376\377\377\210\377\377" \
- "\377\10\376\376\374\376\377\377\354\364\366\377\377\375\376\377\377\377" \
- "\376\374\377\377\375\376\377\377\230\377\377\377\10\377\377\375\376\377" \
- "\377\377\376\375\375\376\377\376\377\377\301\317\330\0>g\0>j\210\0=i" \
- "\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377\377\5\376" \
- "\376\376\377\377\377kkm::<;;=\202::<\3""99;::<^^`\204\377\377\377\1\376" \
- "\376\376\227\377\377\377\1\316\316\316\202::<\203;;=\202::<\1\347\347" \
- "\347\221\377\377\377\1kkm\206::<\1\316\316\316\303\377\377\377\12\376" \
- "\376\376\377\377\377\301\301\301;;=::<;;=::<99;::<\204\204\206\204\377" \
- "\377\377\4\376\376\376\377\377\377\376\376\376\266\266\266\202::<\5;" \
- ";=::<;;=::<``b\203\377\377\377\1\376\376\376\227\377\377\377\1\234\234" \
- "\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377" \
- "\1kkm\206::<\1\234\234\236\233\377\377\377\1\265\265\267\204::<\4""9" \
- "9;;;=::<\234\234\234\203\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\231\377\377\377\5\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\202\377\377\377\5\363\363\363GGI99;::<;;=\202::<\3;;=::" \
- "<\346\346\346\204\377\377\377\1\376\376\376\212\377\377\377\3\234\234" \
- "\234::<99;\202;;=\202::<\1\315\315\315\202\377\377\377\3\301\301\303" \
- ";;=99;\202;;=\5::<;;=::<``b\376\376\376\202\377\377\377\1\376\376\376" \
- "\215\377\377\377\6\376\376\376\377\377\377\376\376\376xxz::<;;=\203:" \
- ":<\202;;=\1\300\300\302\202\377\377\377\3\316\316\316;;=99;\202::<\3" \
- ";:\77::<\234\234\236\206\377\377\377\2\377\377\375\376\377\375\202\376" \
- "\377\377\4\377\377\375\377\377\377\377\376\377\377\377\375\211\377\377" \
- "\377\1\376\376\374\202\377\377\377\3\377\376\377\377\377\377\375\376" \
- "\377\231\377\377\377\202\376\377\377\5\377\376\377\376\377\377\377\377" \
- "\375\277\320\332\0\77j\211\0=i\3\0>i\0=i\177\236\263\232\377\377\377" \
- "\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234" \
- "\234\236\213\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377" \
- "\377\377\1\265\265\265\202::<\1;;=\204::<\1\315\315\317\204\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\220\377\377\377\1\376\376" \
- "\376\202\377\377\377\3\204\204\204::<;;=\204::<\2yy{\376\376\376\221" \
- "\377\377\377\1kkm\206::<\1\316\316\316\305\377\377\377\4kkm;;=::<;;=" \
- "\203::<\1\316\316\316\210\377\377\377\1TTV\206::<\2\317\317\321\376\376" \
- "\376\231\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377" \
- "\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\233\377\377\377" \
- "\1TTV\202::<\7;;=::<;;=::<RRT\377\377\377\376\376\376\203\377\377\377" \
- "\1\376\376\376\233\377\377\377\1\376\376\376\206\377\377\377\2\233\233" \
- "\235;;=\203::<\4;;=::<;;=\234\234\234\217\377\377\377\4\234\234\234:" \
- ":<;;=99;\203::<\1\316\316\316\203\377\377\377\4xxz;;=::<99;\202::<\3" \
- ";;=::<\234\234\236\216\377\377\377\1\376\376\376\202\377\377\377\16\376" \
- "\376\376\302\302\304::<;;=::<;;=::<;;=::<\221\221\223\377\377\377\376" \
- "\376\376\377\377\377\316\316\316\202::<\202;;=\202::<\1\234\234\236\206" \
- "\377\377\377\2\377\376\377\377\377\377\202\377\376\377\4\376\376\376" \
- "\353\366\374\327\355\370\323\356\371\210\326\356\372\7\325\354\372\327" \
- "\355\372\365\372\376\376\376\376\377\377\377\376\377\377\377\377\373" \
- "\231\377\377\377\2\377\376\377\376\377\375\202\377\377\377\4\374\377" \
- "\377\300\316\327\0=i\1\77h\210\0=i\3\0>i\0=i\177\236\263\232\377\377" \
- "\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1" \
- "\234\234\236\221\377\377\377\4\376\376\376\377\377\377SSU;;=\202::<\4" \
- ";;=99;;;=\204\204\206\203\377\377\377\1\376\376\376\226\377\377\377\11" \
- "\363\363\36399;;;=::<;;=::<;;=::<\316\316\316\202\377\377\377\1\376\376" \
- "\376\217\377\377\377\1kkm\206::<\1\316\316\316\304\377\377\377\1\316" \
- "\316\316\206::<\1kkk\211\377\377\377\2\235\235\23599;\202;;=\6::<;;=" \
- "::<kkm\377\377\377\376\376\376\203\377\377\377\1\376\376\376\224\377" \
- "\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206" \
- "::<\237\377\377\377\1kkm\206::<\1\234\234\236\232\377\377\377\1\332\332" \
- "\332\204::<\1;;=\202::<\4\266\266\270\376\376\376\377\377\377\376\376" \
- "\376\240\377\377\377\1\376\376\376\204\377\377\377\2\363\363\363FFH\202" \
- "::<\5;;=::<;;=::<SSS\217\377\377\377\2\235\235\23599;\205::<\11\316\316" \
- "\316\377\377\377\376\376\376\377\377\377\363\363\363FFH::<;;=99;\203" \
- ";;=\2::<\331\331\333\220\377\377\377\2\363\363\363FFH\202::<\6;;=::<" \
- ";;=::<TTV\364\364\364\203\377\377\377\3\316\316\316<<>99;\202::<\3;;" \
- "=::<\234\234\236\211\377\377\377\4\377\375\376\376\377\377\254\334\363" \
- "Z\266\347\211[\267\350\6\\\266\350X\267\347\326\354\367\377\376\377\376" \
- "\377\377\377\377\375\232\377\377\377\3\377\377\373\375\377\376\376\377" \
- "\377\202\377\377\375\3\276\320\336\0>g\0>i\210\0=i\3\0>i\0=i\177\236" \
- "\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234" \
- "\234\236\206::<\1\234\234\236\223\377\377\377\1\235\235\237\204::<\4" \
- "<<>::<;;=\363\363\363\206\377\377\377\1\376\376\376\222\377\377\377\2" \
- "\234\234\234;;=\205::<\1SSU\204\377\377\377\1\376\376\376\216\377\377" \
- "\377\1kkm\206::<\1\316\316\316\304\377\377\377\1\204\204\204\203::<\1" \
- "99;\202::<\1\265\265\265\211\377\377\377\2\363\363\363FFH\205::<\2;;" \
- "=\346\346\346\231\377\377\377\1\234\234\234\206::<\1\234\234\234\243" \
- "\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\232" \
- "\377\377\377\1\222\222\222\202::<\1;;=\202::<\3;;=FFH\362\362\364\251" \
- "\377\377\377\1\235\235\235\203::<\7;;=::<;;=;;;\331\331\331\377\377\377" \
- "\376\376\376\214\377\377\377\2\234\234\234;;=\205::<\1\316\316\316\202" \
- "\377\377\377\3\376\376\376\377\377\377\301\301\301\205::<\4;;=::<__a" \
- "\376\376\376\216\377\377\377\4\376\376\376yyy::<;;=\205::<\1\316\316" \
- "\320\204\377\377\377\2\316\316\31699;\203::<\3""99;::<\234\234\236\207" \
- "\377\377\377\2\376\377\377\376\376\374\202\377\376\377\3\254\332\362" \
- "Y\267\352[\267\350\210Y\270\350\7[\267\350Y\267\352\326\356\370\376\376" \
- "\377\377\376\377\377\375\377\376\377\377\231\377\377\377\10\377\377\375" \
- "\376\377\377\377\377\377\377\376\377\377\377\375\276\317\331\1>j\0>j" \
- "\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1" \
- "kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\220\377\377\377" \
- "\1\376\376\376\202\377\377\377\4\363\363\365;;=::<;;=\204::<\1\234\234" \
- "\234\231\377\377\377\1SSS\202::<\1;;=\203::<\1\265\265\267\223\377\377" \
- "\377\1kkm\206::<\1\316\316\316\300\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\346\346\350\203::<\4;;=::<;;=SSU\213\377\377\377\1\204\204" \
- "\204\203::<\1;;=\202::<\1\204\204\206\202\377\377\377\1\376\376\376\226" \
- "\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm" \
- "\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\227\377\377\377\1\376" \
- "\376\376\202\377\377\377\3TTV::<;;=\203::<\2;;=\205\205\205\252\377\377" \
- "\377\1\347\347\347\202::<\202;;=\203::<\1\235\235\237\204\377\377\377" \
- "\1\376\376\376\211\377\377\377\1\234\234\234\206::<\1\316\316\316\205" \
- "\377\377\377\1\205\205\205\202::<\6;;=::<;;=::<;;=\234\234\236\213\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\302\302\302\202;;=\203::<\3" \
- ";;=::<\221\221\221\202\377\377\377\1\376\376\376\202\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317" \
- "\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224" \
- "\377\377\377\4\204\204\204;;=::<;;=\203::<\1TTT\204\377\377\377\1\376" \
- "\376\376\223\377\377\377\1\300\300\300\203::<\5;;=::<;;=FFF\363\363\363" \
- "\223\377\377\377\1kkm\203::<\4;;=::<;;=\316\316\320\277\377\377\377\14" \
- "\376\376\376\377\377\377\376\376\376\377\377\377\204\204\206::<;;=::" \
- "<99;<<>99;\265\265\267\213\377\377\377\3\346\346\346::<;;=\202::<\1;" \
- ";=\202::<\2\347\347\347\376\376\376\227\377\377\377\1\234\234\234\206" \
- "::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\226\377\377\377\4\376\376\376\377\377\377\376\376\376" \
- "\346\346\350\202;;=\203::<\3""99;<<>\301\301\301\253\377\377\377\1aa" \
- "c\202::<\1;;=\202::<\2;;=jjl\205\377\377\377\1\376\376\376\210\377\377" \
- "\377\1\234\234\234\206::<\1\316\316\316\202\377\377\377\1\376\376\376" \
- "\202\377\377\377\3\362\362\362SSU;;=\205::<\2;;=\332\332\332\210\377" \
- "\377\377\1\376\376\376\203\377\377\377\2\363\363\363FFH\202::<\202;;" \
- "=\5::<;;=SSS\363\363\363\376\376\376\204\377\377\377\1\316\316\316\206" \
- "::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350" \
- "\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0" \
- ">i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::" \
- "<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377" \
- "\377\1\332\332\332\207::<\1\301\301\301\227\377\377\377\1lll\204::<\3" \
- ";;=::<\221\221\221\202\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\217\377\377\377\1kkm\204::<\3;;=99;\316\316\316\241\377\377\377" \
- "\1\376\376\376\234\377\377\377\10\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\363\363\363FFH;;=::<\202;;=\3::<FFH\364\364\364\214\377" \
- "\377\377\1xxz\204::<\3;;=::<\233\233\233\230\377\377\377\1\234\234\234" \
- "\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1k" \
- "km\206::<\1\234\234\236\224\377\377\377\1\376\376\376\204\377\377\377" \
- "\4\266\266\270;;=::<;;=\203::<\1""99;\254\377\377\377\3\234\234\234:" \
- ":<;;=\205::<\204\377\377\377\1\376\376\376\211\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\316\316\320\204::<\4;;=99;::<__a\205\377\377\377\1\376\376\376\206" \
- "\377\377\377\4yy{;;=::<;;=\202::<\3;;=::<\316\316\316\206\377\377\377" \
- "\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\225\377\377\377\1__a\204;;=\5""99;::<yy{\377\377\377\376\376\376\216" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\346\346\346\202::<\203;" \
- ";=\202::<\1\346\346\346\224\377\377\377\1kkm\205::<\2;;=\316\316\316" \
- "\235\377\377\377\1\376\376\376\244\377\377\377\1\234\234\234\202;;=\204" \
- "::<\2\235\235\235\376\376\376\212\377\377\377\4\376\376\376\377\377\377" \
- "\317\317\317::<\202;;=\202::<\3;;=GGI\362\362\362\202\377\377\377\1\376" \
- "\376\376\224\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377" \
- "\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\231\377\377" \
- "\377\1\220\220\222\205::<\3;;=kkm\376\376\376\253\377\377\377\3\316\316" \
- "\316<<>99;\202::<\4;;=::<;;=\331\331\331\215\377\377\377\1\234\234\234" \
- "\206::<\1\316\316\316\207\377\377\377\1\222\222\224\202::<\3;;=99;<<" \
- ">\202::<\4\234\234\236\376\376\376\377\377\377\376\376\376\203\377\377" \
- "\377\1\376\376\376\203\377\377\377\6\302\302\304;;=99;;;=::<;;=\202:" \
- ":<\1\234\234\234\202\377\377\377\1\376\376\376\204\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317" \
- "\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\225" \
- "\377\377\377\2\265\265\265;;=\202::<\2""99;;;=\202::<\2\347\347\347\376" \
- "\376\376\215\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377" \
- "\377\377\3\221\221\223;;=99;\204::<\3xxz\377\377\377\376\376\376\202" \
- "\377\377\377\202\376\376\376\217\377\377\377\1kkm\202::<\5;;=99;;;=9" \
- "9;\317\317\317\233\377\377\377\1\376\376\376\237\377\377\377\1\376\376" \
- "\376\204\377\377\377\3\376\376\376\377\377\377GGI\202::<\5;;=::<;;=:" \
- ":<\346\346\346\213\377\377\377\1\376\376\376\202\377\377\377\2``b99;" \
- "\202;;=\203::<\3\247\247\247\377\377\377\376\376\376\225\377\377\377" \
- "\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm\206::<\237\377" \
- "\377\377\1kkm\206::<\1\234\234\236\231\377\377\377\10kkm::<;;=::<;;=" \
- "99;::<\235\235\237\255\377\377\377\202::<\1;;=\204::<\1\301\301\301\215" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\206\377\377\377\5\376" \
- "\376\376\364\364\364TTV::<99;\202;;=\203::<\4\332\332\334\376\376\376" \
- "\377\377\377\376\376\376\203\377\377\377\6\376\376\376\377\377\377\363" \
- "\363\363FFH::<;;=\204::<\1__a\210\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270" \
- "\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0" \
- "=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377\377\5\376" \
- "\376\376\377\377\377GGI::<;;=\203::<\4;;=\220\220\222\377\377\377\376" \
- "\376\376\214\377\377\377\1\376\376\376\203\377\377\377\10\376\376\376" \
- "\377\377\377\363\363\363FFH::<;;=99;;;=\202::<\1\316\316\320\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\1\376\376\376\215\377\377\377" \
- "\1kkm\206::<\1\316\316\316\277\377\377\377\3\376\376\376\377\377\377" \
- "\265\265\267\204::<\3;;=::<\205\205\205\213\377\377\377\1\376\376\376" \
- "\202\377\377\377\2\376\376\376\265\265\265\202::<\5""99;<<>::<;;=SSU" \
- "\202\377\377\377\1\376\376\376\224\377\377\377\1\234\234\234\206::<\1" \
- "\234\234\234\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<" \
- "\1\234\234\236\230\377\377\377\2\376\376\376SSU\204::<\3;;=::<\266\266" \
- "\266\253\377\377\377\3\376\376\376\377\377\377^^`\206::<\1\234\234\234" \
- "\202\377\377\377\1\376\376\376\212\377\377\377\1\234\234\234\206::<\1" \
- "\316\316\316\205\377\377\377\6\376\376\376\377\377\377\376\376\376\315" \
- "\315\317::<;;=\202::<\4;;=99;::<``b\210\377\377\377\4xxz99;<<>::<\202" \
- ";;=\202::<\1\332\332\332\203\377\377\377\1\376\376\376\204\377\377\377" \
- "\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\226\377\377\377\1\234\234\234\206::<\2FFH\376\376\376\214\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377\3\265\265" \
- "\265;;=99;\202;;=\202::<\1SSU\202\377\377\377\1\376\376\376\223\377\377" \
- "\377\1kkm\203::<\4""99;::<;;=\316\316\320\275\377\377\377\202\376\376" \
- "\376\4\377\377\377\376\376\376SSU;;=\202::<\4;;=::<;;=\332\332\332\215" \
- "\377\377\377\5\376\376\376\377\377\377\376\376\376SSU;;=\204::<\2;;=" \
- "\264\264\264\226\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377" \
- "\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\231\377" \
- "\377\377\207::<\1\316\316\316\254\377\377\377\2\376\376\376lln\202::" \
- "<\1;;=\202::<\4;;=\233\233\233\377\377\377\376\376\376\202\377\377\377" \
- "\1\376\376\376\210\377\377\377\1\234\234\234\206::<\1\316\316\316\203" \
- "\377\377\377\202\376\376\376\204\377\377\377\1\234\234\234\207::<\1\234" \
- "\234\236\205\377\377\377\4\376\376\376\300\300\302::<;;=\205::<\2\234" \
- "\234\234\376\376\376\202\377\377\377\1\376\376\376\205\377\377\377\1" \
- "\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276" \
- "\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\226\377\377\377\1\347\347\347\204::<\5;;=99;;;=\265\265\265\376\376" \
- "\376\222\377\377\377\2___99;\202::<\4;;=::<;;=\265\265\265\207\377\377" \
- "\377\1\376\376\376\216\377\377\377\1kkm\203::<\1;;=\202::<\1;;=\233:" \
- ":<\5""99;;;=::<:::\234\234\234\240\377\377\377\2\316\316\316;;=\204:" \
- ":<\2;;=kkm\221\377\377\377\1\234\234\236\203::<\1;;=\202::<\3kkk\377" \
- "\377\377\376\376\376\224\377\377\377\1\234\234\234\206::<\1\234\234\234" \
- "\243\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236" \
- "\231\377\377\377\207::<\1\316\316\316\255\377\377\377\2\221\221\221;" \
- ";=\205::<\1\204\204\204\203\377\377\377\1\376\376\376\211\377\377\377" \
- "\1\234\234\234\206::<\1\316\316\316\210\377\377\377\3\376\376\376\377" \
- "\377\377``b\202::<\7;;=::<;;=::<;;=\332\332\332\376\376\376\202\377\377" \
- "\377\3\376\376\376\363\363\363GGI\203::<\4;;=::<;;=__a\206\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\316\316\316\206::<\1\234\234\236\213" \
- "\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350" \
- "\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i" \
- "\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\227\377\377\377\1\204\204\206\204" \
- "::<\3;;=::<kkk\217\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\333\333\333:::\202::<\1;;=\202::<\2FFH\363\363\363\226\377\377\377\1" \
- "kkm\204::<\1;;=\202::<\1;;=\234::<\4;;=::<\234\234\234\376\376\376\237" \
- "\377\377\377\1kkm\206::<\1\316\316\316\221\377\377\377\2\363\363\363" \
- "GGG\204::<\3;;=::<\315\315\315\225\377\377\377\1\234\234\234\206::<\1" \
- "\234\234\234\237\377\377\377\1\376\376\376\203\377\377\377\1kkm\206:" \
- ":<\237\377\377\377\1kkm\206::<\1\234\234\236\230\377\377\377\2\376\376" \
- "\376;;=\203::<\1;;=\202::<\1\363\363\363\252\377\377\377\6\376\376\376" \
- "\377\377\377\376\376\376\234\234\23699;;;=\204::<\1kkm\215\377\377\377" \
- "\1\234\234\234\206::<\1\316\316\316\210\377\377\377\7\377\377\375\377" \
- "\377\377\332\332\332::<;;=::<;;=\203::<\2``b\376\376\376\202\377\377" \
- "\377\2\376\376\376xxz\206::<\2:::\332\332\332\212\377\377\377\1\316\316" \
- "\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211" \
- "[\267\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331" \
- "\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\227\377" \
- "\377\377\1\315\315\315\205::<\3;;=::<\332\332\334\221\377\377\377\1\204" \
- "\204\206\205::<\2;;=\205\205\205\227\377\377\377\1kkm\203::<\3;;=::<" \
- ";;=\234::<\1:9>\203::<\1\234\234\236\237\377\377\377\1\331\331\331\202" \
- ";;=\204::<\1SSU\217\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\204\204\204\204::<\3;;=99;yyy\203\377\377\377\1\376\376" \
- "\376\221\377\377\377\1\234\234\234\206::<\1\234\234\234\235\377\377\377" \
- "\1\376\376\376\205\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206:" \
- ":<\1\234\234\236\231\377\377\377\203::<\1;;=\203::<\202\377\377\377\1" \
- "\376\376\376\253\377\377\377\2\233\233\235;;=\205::<\3kkm\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\210\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\213\377\377\377\1\234\234\236\202;;=\1""99" \
- ";\203::<\5;;=\235\235\235\377\377\377\376\376\376\302\302\302\207::<" \
- "\1\251\251\251\213\377\377\377\1\316\316\316\206::<\1\234\234\236\213" \
- "\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350" \
- "\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i" \
- "\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\223\377\377\377\1\376\376\376\204" \
- "\377\377\377\1^^`\202::<\202;;=\3::<<<>\204\204\206\213\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\363\363\363\205::<\3;;=::<\346\346\346" \
- "\227\377\377\377\1kkm\204::<\3;;=::<;;=\234::<\1;;=\202::<\1\234\234" \
- "\236\237\377\377\377\4\204\204\20499;::<;;=\203::<\3\266\266\270\377" \
- "\377\377\376\376\376\221\377\377\377\5\346\346\346;;=::<;;=::<\202;;" \
- "=\4::<\346\346\350\377\377\377\376\376\376\202\377\377\377\1\376\376" \
- "\376\217\377\377\377\1\234\234\234\206::<\1\234\234\234\237\377\377\377" \
- "\202\376\376\376\202\377\377\377\1kkm\206::<\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\224\377\377\377\6\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376;;=\206::<\1\331\331\331\255\377\377\377\1\234" \
- "\234\236\202::<\1;;=\203::<\2kkm\376\376\376\202\377\377\377\1\376\376" \
- "\376\211\377\377\377\1\234\234\234\206::<\1\316\316\316\212\377\377\377" \
- "\3\376\376\376\377\377\377___\204::<\7;;=99;::<\332\332\332\363\363\365" \
- "FFH;;=\204::<\3;;=kkm\376\376\376\213\377\377\377\1\316\316\316\206:" \
- ":<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350" \
- "\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0" \
- ">i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::" \
- "<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\224\377\377" \
- "\377\1\376\376\376\203\377\377\377\4\265\265\267::<;;=::<\202;;=\3::" \
- "<FFH\363\363\363\213\377\377\377\1\376\376\376\203\377\377\377\2\251" \
- "\251\251;;=\205::<\1lln\202\377\377\377\1\376\376\376\225\377\377\377" \
- "\1kkm\202::<\2;;=99;\204::<\1;;=\234::<\2;;=\234\234\234\235\377\377" \
- "\377\5\376\376\376\345\345\345;;=::<;;=\202::<\2;;=FFH\215\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\205\377\377\377\10xxz;;=::<;;" \
- "=99;;;=::<\204\204\206\202\377\377\377\1\376\376\376\221\377\377\377" \
- "\1\234\234\234\206::<\1\234\234\234\234\377\377\377\1\376\376\376\204" \
- "\377\377\377\3\376\376\376\377\377\377kkm\206::<\237\377\377\377\1kk" \
- "m\206::<\1\234\234\236\231\377\377\377\202::<\1;;=\204::<\1\316\316\316" \
- "\253\377\377\377\3\376\376\376\377\377\377\220\220\222\202;;=\2::<;;" \
- "=\202::<\1\222\222\224\215\377\377\377\1\234\234\234\206::<\1\316\316" \
- "\316\213\377\377\377\3\376\376\376\332\332\332GGI\204::<\10;;=::<__a" \
- "xxz::<;;=::<;;=\202::<\2FFH\346\346\346\214\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0" \
- "=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206" \
- "::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\231\377\377" \
- "\377\10FFH::<;;=99;;;=::<;;=\265\265\265\216\377\377\377\4\376\376\376" \
- "TTV99;;;=\202::<\202;;=\1\301\301\301\230\377\377\377\1kkm\202::<\1;" \
- ";=\204::<\3;;=::<;;=\232::<\5;;=::<\234\234\234\377\377\377\376\376\376" \
- "\232\377\377\377\3\376\376\376\377\377\377\221\221\221\202::<\1""99;" \
- "\203::<\5\234\234\236\377\377\377\376\376\376\377\377\377\376\376\376" \
- "\216\377\377\377\1\376\376\376\202\377\377\377\2\316\316\320::<\202;" \
- ";=\204::<\2\363\363\363\376\376\376\202\377\377\377\1\376\376\376\217" \
- "\377\377\377\1\234\234\234\206::<\1\234\234\234\243\377\377\377\1kkm" \
- "\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\224\377\377\377\1\376" \
- "\376\376\204\377\377\377\1""99;\202::<\1;;=\203::<\1\316\316\316\252" \
- "\377\377\377\10\376\376\376\377\377\377\376\376\376kkm;;=::<;;=99;\202" \
- "::<\1\234\234\236\215\377\377\377\1\234\234\234\206::<\1\316\316\316" \
- "\215\377\377\377\5\247\247\247;;=99;::<;;=\210::<\5""99;::<\250\250\252" \
- "\377\377\377\376\376\376\213\377\377\377\1\316\316\316\206::<\1\234\234" \
- "\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[" \
- "\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3" \
- "\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\223\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\203\377\377\377\1\234\234\236\202::<\1;" \
- ";=\202::<\2""99;SSU\214\377\377\377\5\376\376\376\377\377\377\301\301" \
- "\301;;=<<>\202::<\3;;=::<SSU\202\377\377\377\1\376\376\376\226\377\377" \
- "\377\1kkm\203::<\1;;=\202::<\1\204\204\206\202\234\234\234\1\235\235" \
- "\235\232\234\234\236\202\234\234\234\1\315\315\315\233\377\377\377\6" \
- "\376\376\376\377\377\377\362\362\362HHJ99;;;=\204::<\2\364\364\364\376" \
- "\376\376\220\377\377\377\1\376\376\376\204\377\377\377\1kkm\206::<\1" \
- "\234\234\234\223\377\377\377\1\234\234\234\206::<\1\234\234\234\242\377" \
- "\377\377\2\376\376\376lln\206::<\237\377\377\377\1kkm\206::<\1\234\234" \
- "\236\231\377\377\377\2TTV99;\202::<\5;;=::<;;=\250\250\250\376\376\376" \
- "\254\377\377\377\1``b\203::<\202;;=\3::<\235\235\237\376\376\376\202" \
- "\377\377\377\1\376\376\376\211\377\377\377\1\234\234\234\206::<\1\316" \
- "\316\316\216\377\377\377\2kkm;;=\203::<\5;;=::<;;=99;;;=\202::<\2;;=" \
- "jjl\216\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\3Y\270\350[\267\350\326\354\371" \
- "\242\377\377\377\3\276\317\331\0=i\0>i\210\0=i\3\0>i\0=i\177\236\263" \
- "\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\224\377\377\377\1\376\376\376\204\377\377\377" \
- "\2\346\346\34699;\202::<\2;;=::<\202;;=\1\315\315\315\212\377\377\377" \
- "\1\376\376\376\202\377\377\377\1yy{\203::<\4;;=99;;;=\250\250\250\202" \
- "\377\377\377\1\376\376\376\226\377\377\377\1kkm\206::<\1\317\317\317" \
- "\240\377\377\377\1\376\376\376\234\377\377\377\1\234\234\234\202::<\2" \
- "99;;;=\202::<\1\204\204\206\203\377\377\377\1\376\376\376\220\377\377" \
- "\377\1\376\376\376\202\377\377\377\2\264\264\264::<\202;;=\203::<\3G" \
- "GI\364\364\364\376\376\376\202\377\377\377\1\376\376\376\216\377\377" \
- "\377\1\234\234\234\206::<\1\234\234\234\241\377\377\377\3\376\376\376" \
- "\377\377\377kkm\206::<\237\377\377\377\1kkm\206::<\1\234\234\236\225" \
- "\377\377\377\202\376\376\376\202\377\377\377\12kkm::<;;=99;::<;;=::<" \
- "\204\204\204\377\377\377\376\376\376\251\377\377\377\4\376\376\376\377" \
- "\377\377::<99;\202;;=\203::<\1\316\316\320\215\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\216\377\377\377\5\346\346\350GGI;;=::<;;=\202" \
- "::<\2""99;;;=\202::<\3;;=GGI\346\346\350\216\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\3Y\270\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0" \
- "=i\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206" \
- "::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\231\377\377" \
- "\377\2\376\376\376\205\205\205\202::<\5""99;;;=::<;;=\205\205\207\213" \
- "\377\377\377\12\376\376\376\346\346\346::<;;=99;::<99;;;=FFH\363\363" \
- "\363\231\377\377\377\1kkm\202::<\2;;=::<\202;;=\3\316\316\316\377\377" \
- "\377\376\376\376\234\377\377\377\1\376\376\376\236\377\377\377\1SSS\204" \
- "::<\3;;=99;\347\347\351\204\377\377\377\1\376\376\376\215\377\377\377" \
- "\1\376\376\376\205\377\377\377\1SSU\203::<\4;;=99;::<\265\265\265\202" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\234\234\234\206::<\1\234" \
- "\234\234\242\377\377\377\2\376\376\376SSU\206::<\237\377\377\377\1kk" \
- "m\206::<\1\234\234\236\231\377\377\377\4\221\221\223;;=::<;;=\202::<" \
- "\3;;=___\376\376\376\253\377\377\377\1\332\332\332\204::<\1;;=\202::" \
- "<\1\346\346\350\203\377\377\377\1\376\376\376\211\377\377\377\1\234\234" \
- "\234\206::<\1\316\316\316\217\377\377\377\1\250\250\252\204::<\202;;" \
- "=\2::<;;=\202::<\1\265\265\267\217\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\3Y\270" \
- "\350[\267\350\326\354\371\242\377\377\377\3\276\317\331\0=i\0>i\210\0" \
- "=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240" \
- "\377\377\377\1\234\234\236\206::<\1\234\234\236\232\377\377\377\1\316" \
- "\316\316\203::<\2""99;<<>\202::<\1\346\346\350\213\377\377\377\4\221" \
- "\221\223;;=::<;;=\203::<\1\204\204\206\232\377\377\377\1kkm\203::<\1" \
- ";;=\202::<\1\316\316\316\274\377\377\377\2\265\265\267;;=\205::<\1xx" \
- "x\231\377\377\377\1\250\250\250\206::<\1TTV\222\377\377\377\1\234\234" \
- "\234\204::<\3;;=::<\235\235\235\203\377\377\377\1\376\376\376\237\377" \
- "\377\377\202;;=\203::<\3;;=::<\376\376\376\236\377\377\377\1kkm\206:" \
- ":<\1\234\234\236\225\377\377\377\1\376\376\376\203\377\377\377\1\265" \
- "\265\267\204::<\1;;=\202::<\1\363\363\363\253\377\377\377\1\250\250\250" \
- "\204::<\3;;=::<GGI\216\377\377\377\1\234\234\234\206::<\1\316\316\316" \
- "\220\377\377\377\4kkm;;=::<;;=\204::<\3;;=xxx\376\376\376\217\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\212[\267\350\2X\266\351\326\356\370\202\377\377\377\3\377\377" \
- "\375\377\377\377\376\377\375\234\377\377\377\4\377\377\375\276\317\327" \
- "\0\77j\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316" \
- "\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\233\377" \
- "\377\377\1``b\205::<\2;;=\235\235\237\210\377\377\377\1\376\376\376\202" \
- "\377\377\377\2FFH;;=\205::<\1\346\346\346\202\377\377\377\1\376\376\376" \
- "\227\377\377\377\1kkm\206::<\1\316\316\316\266\377\377\377\1\376\376" \
- "\376\205\377\377\377\5__a::<;;=::<;;=\202::<\1SSU\202kkm\1lln\203kkm" \
- "\1lln\222kkm\4__a;;=99;;;=\204::<\3\301\301\301\377\377\377\376\376\376" \
- "\215\377\377\377\202\376\376\376\1\235\235\235\204::<\3""99;;;=\221\221" \
- "\221\243\377\377\377\203::<\1;;=\202::<\1""99;\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\231\377\377\377\1\332\332\332\202::<\3;;=::<99;\202" \
- ";;=\1\264\264\264\210\377\377\377\1\376\376\376\232\377\377\377\1\376" \
- "\376\376\206\377\377\377\2\376\376\376xxx\202::<\1;;=\203::<\1xxz\216" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\220\377\377\377\3\363" \
- "\363\365FFH;;=\202::<\1;;=\202::<\2FFH\363\363\363\220\377\377\377\1" \
- "\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270" \
- "\350\211[\267\350\10X\267\347Y\267\352\326\354\371\377\377\377\376\376" \
- "\376\377\376\377\377\377\377\377\376\377\234\377\377\377\2\376\376\374" \
- "\277\320\330\212\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\233" \
- "\377\377\377\1\265\265\267\203::<\4""99;;;=::<SSU\207\377\377\377\6\376" \
- "\376\376\377\377\377\376\376\376\265\265\265;;=99;\202;;=\4""99;;;=k" \
- "km\377\377\377\202\376\376\376\230\377\377\377\1kkm\206::<\1\316\316" \
- "\316\267\377\377\377\1\376\376\376\203\377\377\377\7\316\316\320<<>9" \
- "9;::<;;=::<99;\203::<\2;;=99;\202::<\1;;=\224::<\1;;=\202::<\1;;=\203" \
- "::<\1kkm\203\377\377\377\1\376\376\376\215\377\377\377\1\300\300\300" \
- "\202::<\11;;=::<99;;;=jjl\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\236\377\377\377\1\346\346\350\206::<\1__a\237\377\377\377\1kkm\206" \
- "::<\1\234\234\236\231\377\377\377\2\376\376\376SSU\206::<\2yy{\376\376" \
- "\376\206\377\377\377\1\376\376\376\234\377\377\377\1\376\376\376\205" \
- "\377\377\377\4\363\363\363::<<<>99;\202::<\3;;=::<\265\265\267\203\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\210\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\221\377\377\377\4\301\301\30199;::<;;=" \
- "\202::<\6;;=\301\301\301\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\215\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\6Y\270\350Y\267\352\325\353\370" \
- "\377\377\377\376\377\375\377\375\377\234\377\377\377\5\376\376\376\377" \
- "\377\377\377\377\375\276\317\327\2\77k\211\0=i\3\0>i\0=i\177\236\263" \
- "\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234" \
- "\236\206::<\1\234\234\236\234\377\377\377\1GGI\203::<\1;;=\202::<\2\301" \
- "\301\301\376\376\376\204\377\377\377\1\376\376\376\203\377\377\377\3" \
- "lln::<;;=\202::<\202;;=\4\301\301\303\376\376\376\377\377\377\376\376" \
- "\376\230\377\377\377\1kkm\206::<\1\316\316\316\265\377\377\377\1\376" \
- "\376\376\205\377\377\377\3kkm::<;;=\202::<\2""99;<<>\202::<\3;;=::<;" \
- ";=\202::<\1;;=\222::<\4""99;;;=::<;;=\203::<\1;;=\202::<\3\316\316\316" \
- "\377\377\377\376\376\376\215\377\377\377\3\376\376\376\316\316\316;;" \
- "=\203::<\3;;=::<FFH\234\377\377\377\202\376\376\376\202\377\377\377\3" \
- "\376\376\376\377\377\377\316\316\320\203::<\4;;=::<;;=kkm\237\377\377" \
- "\377\1kkm\206::<\1\234\234\236\226\377\377\377\7\376\376\376\377\377" \
- "\377\376\376\376\377\377\377\204\204\204::<;;=\204::<\2;;=\346\346\346" \
- "\241\377\377\377\1\376\376\376\202\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\202\377\377\377\1\250\250\250\202::<\1<<>\204::<\3\346" \
- "\346\346\377\377\377\376\376\376\202\377\377\377\1\376\376\376\211\377" \
- "\377\377\1\234\234\234\206::<\1\316\316\316\220\377\377\377\14\376\376" \
- "\376\377\377\377yy{::<99;;;=::<xxz\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\1\376\376\376\212\377\377\377\1\316\316" \
- "\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211" \
- "[\267\350\10X\267\347Z\266\351\326\356\370\376\377\377\377\377\375\377" \
- "\377\377\377\376\377\376\377\377\234\377\377\377\4\376\376\374\277\320" \
- "\330\0=i\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\234" \
- "\377\377\377\1\234\234\234\206::<\3jjj\377\377\377\376\376\376\204\377" \
- "\377\377\4\376\376\376\377\377\377\332\332\33299;\203::<\3;;=::<SSU\202" \
- "\377\377\377\1\376\376\376\231\377\377\377\1kkm\206::<\1\316\316\316" \
- "\267\377\377\377\5\376\376\376\377\377\377\376\376\376\346\346\350;;" \
- "=\203::<\1;;=\202::<\202;;=\202::<\3""99;::<;;=\222::<\202;;=\3""99;" \
- "::<;;=\202::<\1;;=\203::<\2\204\204\206\376\376\376\217\377\377\377\1" \
- "\363\363\363\203::<\6;;=::<;;=::<\347\347\347\376\376\376\234\377\377" \
- "\377\202\376\376\376\5\377\377\377\376\376\376\234\234\236::<;;=\202" \
- "::<\3;;=::<\234\234\236\237\377\377\377\1kkm\206::<\1\234\234\236\231" \
- "\377\377\377\5\376\376\376\316\316\316;;=99;;;=\204::<\1\222\222\224" \
- "\204\377\377\377\1\376\376\376\235\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\203\377\377\377\5SSU;;=::<99;;;=\202::<\3kkk\377" \
- "\377\377\376\376\376\203\377\377\377\1\376\376\376\211\377\377\377\1" \
- "\234\234\234\206::<\1\316\316\316\222\377\377\377\6\363\363\363GGI::" \
- "<;;=FFH\363\363\363\205\377\377\377\1\376\376\376\214\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\212[\267\350\3Y\267\352\330\354\363\376\377\377\203\377\377\377\1\377" \
- "\377\375\235\377\377\377\3\276\317\331\0=i\1>j\210\0=i\3\0>i\0=i\177" \
- "\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1" \
- "\234\234\236\206::<\1\234\234\236\233\377\377\377\2\376\376\376\347\347" \
- "\347\202::<\2;;=::<\203;;=\1\346\346\346\207\377\377\377\5\204\204\204" \
- "<<>99;::<;;=\202::<\2\251\251\251\376\376\376\205\377\377\377\1\376\376" \
- "\376\225\377\377\377\1kkm\206::<\1\316\316\316\264\377\377\377\1\376" \
- "\376\376\205\377\377\377\3\204\204\206::<;;=\203::<\1;;=\205::<\1;;=" \
- "\225::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\202::<\1\347\347\347\220\377" \
- "\377\377\2SSU;;=\203::<\3;;=::<\265\265\265\237\377\377\377\7\376\376" \
- "\376\377\377\377lln99;::<;;=99;\202::<\1\265\265\267\237\377\377\377" \
- "\1kkm\206::<\1\234\234\236\225\377\377\377\1\376\376\376\204\377\377" \
- "\377\3\376\376\376SSU;;=\204::<\3;;=FFH\346\346\346\202\377\377\377\1" \
- "\376\376\376\237\377\377\377\1\376\376\376\204\377\377\377\2\265\265" \
- "\267;;=\202::<\1;;=\203::<\1\265\265\265\217\377\377\377\1\234\234\234" \
- "\206::<\1\316\316\316\223\377\377\377\4\301\301\301::<:::\302\302\302" \
- "\223\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2" \
- "\255\333\363Y\270\350\212[\267\350\2Y\270\350\332\354\370\202\377\377" \
- "\377\3\376\376\376\376\377\377\377\376\373\235\377\377\377\1\276\317" \
- "\331\202\0>i\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316" \
- "\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236\235" \
- "\377\377\377\1\204\204\204\206::<\1\221\221\223\206\377\377\377\2\363" \
- "\363\363GGI\202::<\5""99;;;=::<GGI\363\363\363\204\377\377\377\202\376" \
- "\376\376\226\377\377\377\1kkm\206::<\1\316\316\316\266\377\377\377\1" \
- "\376\376\376\202\377\377\377\3\346\346\350::<;;=\204::<\5""99;;;=:::" \
- "99;;;=\203::<\3;;=99;;;=\220::<\5;;=::<;;=::<;;=\202::<\6;;=::<99;;;" \
- "=::<\204\204\206\220\377\377\377\5yy{99;::<99;;;=\202::<\1xxz\236\377" \
- "\377\377\10\376\376\376\377\377\377\363\363\36399;::<;;=99;;;=\202::" \
- "<\2\346\346\350\376\376\376\236\377\377\377\1kkm\206::<\1\234\234\236" \
- "\231\377\377\377\3\376\376\376\377\377\377\233\233\235\202::<\7;;=::" \
- "<;;=99;;;=\204\204\204\376\376\376\245\377\377\377\2\363\363\363SSU\205" \
- "::<\2;;=FFH\205\377\377\377\3\376\376\376\377\377\377\376\376\376\210" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\224\377\377\377\3\205" \
- "\205\205\221\221\221\376\376\376\204\377\377\377\202\376\376\376\215" \
- "\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255" \
- "\333\363Y\270\350\212[\267\350\7Y\270\350\321\356\376\377\376\377\377" \
- "\377\377\377\377\375\376\377\375\377\376\377\232\377\377\377\1\377\377" \
- "\375\202\377\377\377\3\275\317\333\0\77k\0>i\210\0=i\3\0>i\0=i\177\236" \
- "\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234" \
- "\234\236\206::<\1\234\234\236\235\377\377\377\1\316\316\316\206::<\1" \
- "FFH\203\377\377\377\1\376\376\376\202\377\377\377\1\250\250\250\203:" \
- ":<\1;;=\202::<\1\204\204\206\203\377\377\377\1\376\376\376\231\377\377" \
- "\377\1kkm\206::<\1\316\316\316\271\377\377\377\1\234\234\236\204::<\4" \
- ";;=::<kkm\234\234\236\202\234\234\234\1\233\233\233\202\234\234\234\3" \
- "\235\235\235\234\234\234\235\235\235\224\234\234\234\202\234\234\236" \
- "\1\204\204\206\206::<\2FFH\363\363\363\217\377\377\377\2\250\250\252" \
- ";;=\206::<\1\364\364\364\237\377\377\377\2\265\265\265;;=\205::<\1TT" \
- "V\240\377\377\377\1kkm\206::<\1\234\234\236\224\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\204\377\377\377\3\364\364\366FFH;;=\203" \
- "::<\4;;=::<:::\316\316\316\245\377\377\377\1\221\221\221\202::<\2;;=" \
- "::<\202;;=\2::<\234\234\236\220\377\377\377\1\234\234\234\206::<\1\316" \
- "\316\316\224\377\377\377\1\376\376\376\225\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\212[\267" \
- "\350\4[\267\346\265\340\361\377\376\377\376\376\377\202\377\377\375\1" \
- "\374\377\377\230\377\377\377\3\376\376\376\377\377\377\377\377\375\202" \
- "\377\377\377\3\243\265\301\0>j\0>i\210\0=i\3\0>i\0=i\177\236\263\232" \
- "\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236" \
- "\206::<\1\234\234\236\236\377\377\377\2__a;;=\204::<\5;;=\265\265\265" \
- "\376\376\376\377\377\377\376\376\376\202\377\377\377\1SSU\204::<\3;;" \
- "=::<\346\346\350\235\377\377\377\1kkm\206::<\1\316\316\316\270\377\377" \
- "\377\2\363\363\365GGI\205::<\3;;=\333\333\333\376\376\376\237\377\377" \
- "\377\10FFH::<;;=::<;;=99;;;=\233\233\235\217\377\377\377\5\346\346\346" \
- "::<;;=::<;;=\203::<\1\234\234\234\210\377\377\377\1\376\376\376\217\377" \
- "\377\377\1\376\376\376\206\377\377\377\1TTT\205::<\3;;=\221\221\221\376" \
- "\376\376\237\377\377\377\1kkm\206::<\1\234\234\236\234\377\377\377\12" \
- "\233\233\233::<;;=::<;;=::<;;=::<SSU\363\363\363\212\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\221\377\377\377\1\376\376\376\204\377" \
- "\377\377\1\315\315\317\203::<\1;;=\203::<\2FFH\363\363\365\220\377\377" \
- "\377\1\234\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316" \
- "\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267" \
- "\350\6Y\270\350[\267\346\227\324\363\377\375\376\377\377\377\376\377" \
- "\375\213\377\377\377\6\376\376\376\377\377\377\373\377\376\377\377\377" \
- "\377\376\377\376\377\377\211\377\377\377\10\377\376\377\374\377\377\377" \
- "\377\375\377\377\377\377\376\377_\207\240\0>l\0\77j\210\0=i\3\0>i\0=" \
- "i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377" \
- "\1\234\234\236\206::<\1\234\234\236\236\377\377\377\1\265\265\265\204" \
- "::<\3;;=::<__a\204\377\377\377\1\317\317\321\206::<\1kkk\236\377\377" \
- "\377\1kkm\206::<\1\316\316\316\267\377\377\377\3\376\376\376\250\250" \
- "\25299;\202;;=\203::<\1kkm\233\377\377\377\1\376\376\376\205\377\377" \
- "\377\10\234\234\236;;=::<;;=::<;;=99;GGI\204\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\210\377\377\377\5\376\376\376__a::<;;=99;\203" \
- ";;=\2FFH\363\363\363\204\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\224\377\377\377\5\376\376\376\377\377\377\301\301\301:::;;=\202" \
- "::<\202;;=\4::<\332\332\332\377\377\377\376\376\376\236\377\377\377\1" \
- "kkm\206::<\1\234\234\236\233\377\377\377\3\376\376\376\364\364\364FF" \
- "H\205::<\4;;=99;xxx\376\376\376\203\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\224\377\377\377" \
- "\4\376\376\376\377\377\377\362\362\362GGI\202::<\6;;=::<;;=::<99;\250" \
- "\250\252\221\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\211[\267\350\7Y\267\352X\267\347[\266\353\301\344\367\377\377" \
- "\377\376\376\376\376\377\377\211\377\377\377\6\377\376\377\377\377\377" \
- "\377\375\376\377\377\377\377\377\375\377\376\377\202\377\377\377\210" \
- "\377\376\377\10\377\377\375\376\377\377\377\377\377\376\377\375\237\266" \
- "\306\0=i\2=g\0>e\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316" \
- "\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234\236" \
- "\237\377\377\377\1EEG\202::<\202;;=\11""99;;;=\332\332\332\377\377\377" \
- "\376\376\376\377\377\377xxz::<;;=\204::<\1\302\302\302\236\377\377\377" \
- "\1kkm\206::<\1\316\316\316\266\377\377\377\4\376\376\376\377\377\377" \
- "SSU;;=\202::<\1;;=\202::<\1\316\316\320\235\377\377\377\15\376\376\376" \
- "\377\377\377\376\376\376\377\377\377\363\363\365::<;;=99;;;=::<;;=::" \
- "<\265\265\265\215\377\377\377\3\376\376\376\377\377\377\266\266\270\202" \
- "::<\1;;=\203::<\2;;=\204\204\206\205\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\213\377\377\377\1\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\363\363\363SSU\203::<\4;;=99;;;=SSU\241\377" \
- "\377\377\1kkm\206::<\1\234\234\236\235\377\377\377\3\265\265\265;;=9" \
- "9;\202::<\1;;=\203::<\1\204\204\206\206\377\377\377\1\376\376\376\216" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377\377\377\6" \
- "\376\376\376\377\377\377\362\362\364``b::<;;=\202::<\1;;=\202::<\2aa" \
- "c\376\376\376\221\377\377\377\1\234\234\234\206::<\1\316\316\316\252" \
- "\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255" \
- "\333\363Y\270\350\211[\267\350\10X\267\347[\267\346[\265\347[\267\346" \
- "\230\320\361\327\360\367\325\356\365\331\355\370\210\326\354\371\10\325" \
- "\355\367\323\355\372\366\373\377\377\376\374\376\377\375\276\320\332" \
- "\277\320\330\301\317\330\210\276\317\331\10\276\317\327\276\320\334\301" \
- "\316\327_\207\241\0>i\0=l\0\77k\0>i\210\0=i\3\0>i\0=i\177\236\263\232" \
- "\377\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236" \
- "\206::<\1\234\234\236\237\377\377\377\3\222\222\224::<;;=\202::<\3;;" \
- "=99;\205\205\207\202\377\377\377\2\346\346\346;;=\202::<\1;;=\202::<" \
- "\1SSU\237\377\377\377\1kkm\206::<\1\316\316\316\267\377\377\377\5\265" \
- "\265\26799;;;=::<;;=\202::<\1TTV\243\377\377\377\1\204\204\206\205::" \
- "<\2;;=SSU\206\377\377\377\1\376\376\376\210\377\377\377\3\376\376\376" \
- "GGI;;=\202::<\5;;=::<;;=::<\301\301\303\203\377\377\377\1\376\376\376" \
- "\214\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\204\204\206;;=::<\202;;=\203" \
- "::<\1\265\265\265\241\377\377\377\1kkm\206::<\1\234\234\236\236\377\377" \
- "\377\12kkk::<99;;;=::<99;;;=::<;;=\204\204\206\210\377\377\377\202\376" \
- "\376\376\213\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\2\364\364\366__a\206:" \
- ":<\3;;=::<\332\332\332\222\377\377\377\1\234\234\234\206::<\1\316\316" \
- "\316\252\377\377\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377" \
- "\2\255\333\363Y\270\350\211[\267\350\3\\\266\350X\270\352\\\266\352\202" \
- "[\267\350\3X\267\347Y\270\350Z\266\347\210Y\270\350\10[\267\350[\265" \
- "\351\327\355\372\376\377\377\377\377\375\0>j\0>i\1\77h\210\0>i\10\0\77" \
- "k\0>g\2=g\0=i\0\77j\0<h\0\77h\1>j\210\0=i\3\0>i\0=i\177\236\263\232\377" \
- "\377\377\1\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206" \
- "::<\1\234\234\236\236\377\377\377\2\376\376\376\346\346\346\202::<\10" \
- ";;=::<99;;;=::<\363\363\363\377\377\377\234\234\236\202::<\6;;=::<;;" \
- "=::<\250\250\250\376\376\376\236\377\377\377\1kkm\206::<\1\316\316\316" \
- "\267\377\377\377\10kkm;;=::<;;=99;::<;;=\264\264\266\236\377\377\377" \
- "\1\376\376\376\204\377\377\377\2\346\346\346;;=\202::<\202;;=\202::<" \
- "\2\316\316\320\376\376\376\203\377\377\377\1\376\376\376\205\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3\234\234" \
- "\234::<;;=\202::<\6;;=::<;;=GGI\332\332\332\376\376\376\224\377\377\377" \
- "\1\376\376\376\203\377\377\377\2\266\266\266;;=\202::<\6;;=::<;;=::<" \
- "SSU\376\376\376\241\377\377\377\1kkm\206::<\1\234\234\236\236\377\377" \
- "\377\2\363\363\363GGI\203::<\1;;=\203::<\3""99;\204\204\204\363\363\363" \
- "\225\377\377\377\1\376\376\376\204\377\377\377\4\376\376\376\346\346" \
- "\346``b::<\202;;=\3::<99;<<>\202::<\1\250\250\250\223\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\10Y" \
- "\270\350X\270\353Y\267\352X\266\351X\271\346[\267\350\\\266\353[\267" \
- "\350\210Y\270\350\7X\267\345]\267\351\323\355\372\377\376\377\376\377" \
- "\377\4=h\0>g\211\0=i\10\2=i\0@j\0>i\1>j\0>i\1\77h\0>g\0>j\210\0=i\3\0" \
- ">i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\237\377\377\377\6\376\376" \
- "\376yy{::<;;=::<;;=\202::<\4\251\251\251\376\376\376SSU;;=\203::<\3;" \
- ";=FFH\363\363\363\237\377\377\377\1kkm\206::<\1\316\316\316\264\377\377" \
- "\377\5\376\376\376\377\377\377\315\315\317::<;;=\204::<\2FFH\376\376" \
- "\376\237\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376kkm;" \
- ";=\204::<\6""99;lln\377\377\377\376\376\376\377\377\377\376\376\376\202" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377\10" \
- "\376\376\376\377\377\377SSU::<99;;;=99;;;=\202::<\2FFF\332\332\332\203" \
- "\377\377\377\1\376\376\376\212\377\377\377\1\376\376\376\210\377\377" \
- "\377\1\265\265\265\206::<\3""99;::<\265\265\265\203\377\377\377\1\376" \
- "\376\376\236\377\377\377\1kkm\206::<\1\234\234\236\233\377\377\377\1" \
- "\376\376\376\203\377\377\377\1\331\331\331\204::<\3""99;;;=99;\202;;" \
- "=\2^^^\332\332\332\202\377\377\377\1\376\376\376\216\377\377\377\1\376" \
- "\376\376\206\377\377\377\5\376\376\376\316\316\316FFH::<;;=\204::<\7" \
- "99;::<\204\204\204\377\377\377\376\376\376\377\377\377\376\376\376\220" \
- "\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377\377\1\316" \
- "\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363Y\270\350" \
- "\213[\267\350\6Y\270\350[\266\353[\267\350]\267\351X\266\351X\270\350" \
- "\210[\267\350\10X\266\351Z\266\351\326\354\367\377\376\377\376\377\372" \
- "\0>j\0>i\1>j\210\0=i\10\1\77h\0=h\0>i\1\77h\0>j\0=i\0>i\1>j\210\0=i\3" \
- "\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm\240\377" \
- "\377\377\1\234\234\236\206::<\1\234\234\236\237\377\377\377\2\376\376" \
- "\376\316\316\316\203::<\1;;=\202::<\4SSU\265\265\267;;=99;\202::<\5;" \
- ";=99;\204\204\204\377\377\377\376\376\376\236\377\377\377\1kkm\206::" \
- "<\1\316\316\316\263\377\377\377\1\376\376\376\202\377\377\377\1xxz\202" \
- "::<\1;;=\202::<\3""99;\234\234\236\376\376\376\236\377\377\377\1\375" \
- "\375\375\202\377\377\377\1\376\376\376\202\377\377\377\5\317\317\317" \
- "99;::<;;=::<\202;;=\2::<\332\332\332\210\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\204\377\377\377\2\316\316\316;;=\206::<\3;;=::<" \
- "\250\250\252\217\377\377\377\1\376\376\376\204\377\377\377\2\363\363" \
- "\363\222\222\224\202::<\2;;=::<\202;;=\3""99;;;=kkm\205\377\377\377\1" \
- "\376\376\376\235\377\377\377\1kkm\206::<\1\234\234\236\235\377\377\377" \
- "\1\376\376\376\202\377\377\377\2\266\266\26699;\202::<\3;;=::<;;=\202" \
- "::<\3;;=FFH\234\234\234\202\377\377\377\1\376\376\376\223\377\377\377" \
- "\2\364\364\364\204\204\206\202::<\1;;=\202::<\1;;=\202::<\3""99;``b\376" \
- "\376\376\224\377\377\377\1\234\234\234\206::<\1\316\316\316\252\377\377" \
- "\377\1\316\316\316\206::<\1\234\234\236\213\377\377\377\2\255\333\363" \
- "Y\270\350\211[\267\350\10Y\271\353Z\266\347\\\267\344[\267\346X\267\347" \
- "[\267\350X\270\353Z\266\347\210Y\270\350\10Y\267\352\\\267\346\325\355" \
- "\371\377\377\377\376\377\377\0>g\0\77k\0>i\210\0\77j\10\0>i\3>h\0=i\0" \
- "\77i\0=j\0>g\0=j\0=f\210\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1" \
- "\316\316\316\206::<\1kkm\240\377\377\377\1\234\234\236\206::<\1\234\234" \
- "\236\234\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\2SSU;;=\202::<\202;;=\3::<SSU::<\202;;=\203::<\1\332\332\332\240" \
- "\377\377\377\1kkm\206::<\1\316\316\316\265\377\377\377\1\346\346\346" \
- "\203::<\1;;=\202::<\2;;=\363\363\365\235\377\377\377\1\376\376\376\210" \
- "\377\377\377\1SSU\202;;=\204::<\1\204\204\204\202\377\377\377\202\376" \
- "\376\376\214\377\377\377\1\221\221\221\205::<\202;;=\4::<;;=kkm\316\316" \
- "\316\221\377\377\377\2\301\301\301SSS\210::<\2FFH\363\363\365\243\377" \
- "\377\377\1kkm\206::<\1\234\234\236\241\377\377\377\1\266\266\270\203" \
- "::<\1;;=\205::<\3:::RRR\265\265\265\222\377\377\377\3\363\363\363\234" \
- "\234\234FFF\202::<\1;;=\206::<\2``b\363\363\363\225\377\377\377\1\234" \
- "\234\234\206::<\1\316\316\316\252\377\377\377\1\316\316\316\206::<\1" \
- "\234\234\236\213\377\377\377\2\255\333\363Y\270\350\211[\267\350\10Z" \
- "\266\347[\267\346Z\265\352X\266\351\\\270\351[\267\346X\267\347[\265" \
- "\347\210[\267\350\10Y\267\352[\266\345\325\355\367\376\375\377\377\377" \
- "\375\3>j\0=i\1>j\210\0>i\10\0\77j\1\77h\0>j\0>g\3>j\0\77i\0=j\0>i\210" \
- "\0=i\3\0>i\0=i\177\236\263\232\377\377\377\1\316\316\316\206::<\1kkm" \
- "\240\377\377\377\1\234\234\236\206::<\1\234\234\236\241\377\377\377\6" \
- "\266\266\270::<;;=::<99;::<\202;;=\205::<\2kkm\376\376\376\240\377\377" \
- "\377\1kkm\206::<\1\316\316\316\265\377\377\377\4\205\205\205;;=::<;;" \
- "=\203::<\3\204\204\206\377\377\377\376\376\376\245\377\377\377\1\265" \
- "\265\267\207::<\2\346\346\346\376\376\376\216\377\377\377\4\376\376\376" \
- "lll::<;;=\202::<\13;;=::<;;=::<;;=::<kkm\264\264\266\363\363\365\377" \
- "\377\377\376\376\376\202\377\377\377\1\376\376\376\206\377\377\377\3" \
- "\346\346\350\250\250\252TTV\204::<\3;;=::<;;=\202::<\2;;=\333\333\333" \
- "\202\377\377\377\1\376\376\376\237\377\377\377\3\376\376\376\377\377" \
- "\377kkm\203::<\1;;=\202::<\1\235\235\237\242\377\377\377\1\265\265\265" \
- "\203::<\1;;=\207::<\4GGI\220\220\222\332\332\334\376\376\376\206\377" \
- "\377\377\1\376\376\376\204\377\377\377\5\376\376\376\302\302\302\204" \
- "\204\206::<;;=\202::<\11""99;;;=::<;;=::<;;=::<```\363\363\363\226\377" \
- "\377\377\1\234\234\234\202::<\1;;=\202::<\2;;=\316\316\316\252\377\377" \
- "\377\4\316\316\316::<;;=99;\203::<\3\234\234\234\377\377\377\376\376" \
- "\376\204\377\377\377\7\373\377\376\377\376\377\377\377\377\376\377\377" \
- "\377\376\377\253\333\362[\265\351\203[\267\352\6Y\267\352[\267\350X\267" \
- "\345Y\270\346Y\270\350Y\267\352\220[\267\350\5X\267\347Y\270\350\325" \
- "\355\371\377\376\377\377\377\377\202\0>g\1\1>k\220\0=i\15\0>g\1>j\0>" \
- "i\0\77j\1>j\0=i\0\77j\0>j\0=i\1<h}\237\270\376\377\377\377\376\374\226" \
- "\377\377\377\3\376\376\376\377\377\377\316\316\316\204::<\3""99;;;=l" \
- "ln\240\377\377\377\5\234\234\234::<;;=::<;;=\202::<\1\235\235\237\241" \
- "\377\377\377\10\363\363\363FFF::<;;=::<;;=::<;;=\203::<\3;;=::<\265\265" \
- "\265\237\377\377\377\3\376\376\376\377\377\377kkm\202::<\1;;=\202::<" \
- "\4;;=\316\316\316\377\377\377\376\376\376\250\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377" \
- "\377\377\6\364\364\364::<99;;;=::<;;=\202::<\1\347\347\351\203\377\377" \
- "\377\1\376\376\376\244\377\377\377\4FFH;;=::<99;\203::<\1\220\220\222" \
- "\220\377\377\377\2\363\363\363``b\202::<\1;;=\203::<\1;;=\205::<\5__" \
- "_\222\222\222\234\234\234\316\316\316\317\317\317\202\316\316\316\7\301" \
- "\301\301\234\234\236\204\204\206__a;;=99;;;=\203::<\2;;=99;\203;;=\2" \
- "::<\265\265\265\204\377\377\377\1\376\376\376\235\377\377\377\5\376\376" \
- "\376\377\377\377\376\376\376kkm::<\202;;=\6::<;;=::<\234\234\236\377" \
- "\377\377\376\376\376\236\377\377\377\1\376\376\376\202\377\377\377\5" \
- "\301\301\303GGI;;=::<;;=\206::<\7;;=::<99;GGIwwy\235\235\235\300\300" \
- "\300\202\316\316\316\10\315\315\315\317\317\317\315\315\315\265\265\265" \
- "\234\234\234jjj<<>99;\203::<\1;;=\202::<\2""99;;;=\203::<\1\204\204\206" \
- "\206\377\377\377\1\376\376\376\221\377\377\377\10\234\234\234;;=::<9" \
- "9;;;=::<99;\316\316\316\252\377\377\377\4\317\317\317;;=88:;;=\202::" \
- "<\3;;=\234\234\234\376\376\376\205\377\377\377\1\377\375\377\202\377" \
- "\377\375\6\377\376\377\377\377\375\253\333\362Y\270\350X\267\347Z\266" \
- "\347\202Y\270\350\1[\267\350\202Z\266\347\2[\267\350Z\266\347\220[\267" \
- "\350\5[\267\352Z\266\351\327\355\372\377\375\376\377\376\377\202\1>j" \
- "\1\1>k\220\0>i\202\0=i\14\0\77k\0>i\0=i\1>j\0=i\0=j\0\77k\0=i\177\236" \
- "\263\377\377\377\376\377\377\375\376\377\224\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\316\316\316\203::<\202;;=\3""99;kkm\376\376\376\234" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\233\233\233\202::<\7;;=" \
- "::<;;=::<\234\234\236\377\377\377\376\376\376\233\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\4\221\221\221;;=99;;;=\202" \
- "::<\202;;=\203::<\1SSU\203\377\377\377\1\376\376\376\233\377\377\377" \
- "\10\376\376\376\377\377\377\376\376\376kkm::<;;=::<;;=\202::<\1;;=\202" \
- "::<\1;;=\240::<\1kkk\207\377\377\377\1\376\376\376\203\377\377\377\3" \
- "\375\375\375\377\377\377\376\376\376\202\377\377\377\2\233\233\235::" \
- "<\202;;=\203::<\1xxz\251\377\377\377\1\235\235\237\202::<\1;;=\203::" \
- "<\3GGI\363\363\363\376\376\376\217\377\377\377\2\363\363\363yyy\204:" \
- ":<\1;;=\203::<\1;;=\206::<\1""99;\203::<\1;;=\203::<\6;;=99;;;=::<;;" \
- "=99;\202;;=\3""99;GGI\301\301\301\206\377\377\377\1\376\376\376\232\377" \
- "\377\377\1\376\376\376\204\377\377\377\1lln\202::<\1;;=\202::<\2;;=\234" \
- "\234\236\241\377\377\377\1\376\376\376\202\377\377\377\2\332\332\334" \
- "__a\211::<\1;;=\205::<\1;;=\202::<\1;;=\202::<\4;;=::<99;;;=\202::<\1" \
- ";;=\202::<\1;;=\203::<\2FFH\265\265\267\206\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\220\377\377\377\3\234\234\236::<;;=\203::<\2" \
- ";;=\316\316\316\252\377\377\377\2\315\315\31599;\203::<\5;;=::<\234\234" \
- "\234\377\377\377\376\376\376\205\377\377\377\7\377\377\375\375\377\376" \
- "\377\377\377\375\376\377\255\333\365Z\266\345[\267\350\202Y\270\350\1" \
- "X\267\347\202Y\267\352\3Z\266\351Z\266\347Y\270\350\221[\267\350\2[\267" \
- "\352\323\355\372\202\376\377\377\1\0=j\222\0=i\204\0>i\14\1\77h\0>g\0" \
- "=f\1>j\0\77i\0>i\177\237\266\377\377\375\377\376\375\377\377\377\376" \
- "\377\377\377\376\377\225\377\377\377\2\316\316\316::<\202;;=\202::<\4" \
- ";;=kkm\377\377\377\376\376\376\235\377\377\377\2\376\376\376\235\235" \
- "\235\202::<\1;;=\202::<\2;;=\234\234\236\242\377\377\377\3\346\346\346" \
- "::<;;=\210::<\2\235\235\237\376\376\376\234\377\377\377\1\376\376\376" \
- "\204\377\377\377\1lln\202::<\3;;=::<;;=\203::<\2;;=99;\240::<\1kkk\210" \
- "\377\377\377\11\376\376\376\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\364\364\366GGI\205::<\6;;=\316\316\316\377" \
- "\377\377\376\376\376\377\377\377\376\376\376\245\377\377\377\11\345\345" \
- "\345;;=::<;;=::<;;=::<;;=\234\234\236\222\377\377\377\7\234\234\234;" \
- ";=::<;;=99;;;=99;\203::<\1;;=\202::<\203;;=\2::<;;=\202::<\1;;=\202:" \
- ":<\1;;=\202::<\12;;=::<;;=99;::<``b\332\332\332\376\376\376\377\377\377" \
- "\376\376\376\202\377\377\377\5\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\232\377\377\377\5\376\376\376\377\377\377\376\376" \
- "\376kkm;;=\202::<\1;;=\202::<\1\234\234\236\236\377\377\377\1\376\376" \
- "\376\207\377\377\377\2\234\234\236;;=\202::<\1;;=\204::<\1;;=\211::<" \
- "\1;;=\202::<\1;;=\202::<\1;;=\202::<\1;;=\203::<\3;;=kkm\346\346\346" \
- "\203\377\377\377\1\376\376\376\204\377\377\377\1\376\376\376\221\377" \
- "\377\377\2\234\234\236;;=\202::<\1;;=\202::<\1\316\316\316\252\377\377" \
- "\377\4\316\316\316;;=99;;;=\203::<\1\234\234\234\210\377\377\377\7\376" \
- "\377\377\377\375\376\377\377\375\256\332\363Y\270\350Y\267\352[\267\352" \
- "\202[\267\350\5X\270\350X\270\352Y\267\352Y\270\350X\267\347\220[\267" \
- "\350\5X\267\347[\267\350\325\355\367\377\377\373\377\377\375\202\0\77" \
- "j\1\0>g\220\0>i\1\0\77j\203\0>i\202\0=i\6\1>j\0>i\0\77h\0>g\177\236\263" \
- "\377\377\375\203\377\377\377\1\377\376\377\222\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\316\316\316\203::<\1;;=\202::<\2kkm\376\376\376" \
- "\233\377\377\377\1\376\376\376\203\377\377\377\5\234\234\234::<;;=::" \
- "<;;=\202::<\1\234\234\236\235\377\377\377\202\376\376\376\202\377\377" \
- "\377\5\376\376\376\377\377\377xxz99;;;=\204::<\4;;=::<;;=\362\362\362" \
- "\237\377\377\377\5\376\376\376\377\377\377\376\376\376kkm;;=\207::<\2" \
- "99;;;=\240::<\1lll\205\377\377\377\1\376\376\376\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\202\377\377\377\4\265\265\267" \
- ";;=::<;;=\202::<\2;;=__a\205\377\377\377\1\376\376\376\245\377\377\377" \
- "\3\204\204\206::<;;=\204::<\2SSU\376\376\376\215\377\377\377\1\376\376" \
- "\376\204\377\377\377\2\316\316\316__a\206::<\1;;=\214::<\5;;=::<;;=:" \
- ":<;;=\203::<\2\234\234\234\363\363\363\204\377\377\377\1\376\376\376" \
- "\243\377\377\377\1lln\206::<\2\233\233\235\376\376\376\233\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\207\377\377\377\3\345\345" \
- "\345lln;;=\204::<\5;;=99;::<99;;;=\205::<\1;;=\203::<\3""99;;;=99;\206" \
- "::<\2TTV\265\265\265\234\377\377\377\10\234\234\234;;=::<;;=::<;;=::" \
- "<\316\316\316\252\377\377\377\1\315\315\315\206::<\4\235\235\235\376" \
- "\376\376\377\377\377\376\376\376\205\377\377\377\12\377\377\373\377\377" \
- "\377\377\377\375\267\340\366[\270\344Z\266\351[\267\352Z\266\351[\265" \
- "\347[\267\350\202Y\270\350\2\\\270\351Z\266\347\220[\267\350\10X\267" \
- "\347X\266\351\325\355\371\377\376\377\377\377\377\0\77k\0=h\3>j\220\0" \
- "\77j\16\1>j\0=i\1>j\0=i\0\77j\0>i\0=h\0\77j\0\77h\1<f\177\236\263\377" \
- "\377\375\376\376\377\376\377\377\225\377\377\377\202\376\376\376\2\317" \
- "\317\317::<\202;;=\1::<\202;;=\1kkm\235\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\234\234\234;;=\205::<\2\233\233\235\376\376\376\232\377" \
- "\377\377\1\376\376\376\204\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\316\316\316\203::<\1;;=\204::<\3\204\204\206\377\377\377\376\376\376" \
- "\241\377\377\377\1lln\203::<\202;;=\203::<\1;;=\241::<\1kkk\206\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\206\377\377\377\1TTV\203:" \
- ":<\4""99;;;=99;\265\265\267\253\377\377\377\3\331\331\331;;=99;\204:" \
- ":<\2;;=\264\264\264\217\377\377\377\1\376\376\376\204\377\377\377\2\264" \
- "\264\266SSU\202::<\2""99;;;=\203::<\3;;=::<;;=\206::<\5;;=99;;;=::<;" \
- ";=\20299;\6\204\204\206\346\346\346\377\377\377\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\202\376\376\376\202\377\377\377\1\376\376" \
- "\376\231\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\12lll::<;;=::<99;::<;;=\234\234\236\377\377\377\376\376\376\233" \
- "\377\377\377\1\375\375\375\213\377\377\377\4\316\316\316xxx;;=99;\204" \
- "::<\1;;=\202::<\1;;=\204::<\4;;=::<;;=99;\203::<\1;;=\202::<\2SSS\265" \
- "\265\265\210\377\377\377\3\376\376\376\377\377\377\376\376\376\223\377" \
- "\377\377\1\234\234\234\206::<\1\316\316\316\250\377\377\377\3\376\376" \
- "\376\377\377\377\315\315\315\202::<\7;;=::<;;=::<\234\234\234\377\377" \
- "\377\376\376\376\202\377\377\377\21\376\376\376\377\377\377\376\377\373" \
- "\377\377\377\376\377\377\376\377\375\377\376\377\353\366\374X\266\351" \
- "X\270\350W\267\347X\270\350X\267\347Z\266\347\\\270\347X\267\345Y\270" \
- "\350\221[\267\350\7Z\266\347[\267\350\327\355\372\377\375\377\377\377" \
- "\377\0>g\0\77h\221\0=i\1\0>g\202\1\77h\1\0=i\202\0>i\11\0\77j\0>g\0>" \
- "j\0\77m\336\347\354\376\377\377\377\376\377\376\377\377\377\377\375\222" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\316\316\316\202::<\1;;=" \
- "\203::<\2kkm\376\376\376\233\377\377\377\1\376\376\376\202\377\377\377" \
- "\3\376\376\376\234\234\234;;=\202::<\6""99;::<;;=\234\234\236\377\377" \
- "\377\376\376\376\237\377\377\377\1\376\376\376\202\377\377\377\1SSS\202" \
- ";;=\1""99;\204;;=\3\331\331\331\377\377\377\376\376\376\234\377\377\377" \
- "\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3lll::<;;=\202" \
- "::<\202;;=\203::<\1;;=\240::<\1kkk\204\377\377\377\1\376\376\376\211" \
- "\377\377\377\3\302\302\302;;;999\202::<\3;;=::<TTT\210\377\377\377\1" \
- "\376\376\376\244\377\377\377\2kkk;;=\202::<\203:::\1TTT\226\377\377\377" \
- "\3\301\301\301xxz;;=\202::<\1;;=\202::<\1;;=\202::<\5;;=::<;;=::<;;=" \
- "\202::<\5;;=99;SSU\235\235\237\347\347\351\204\377\377\377\1\376\376" \
- "\376\207\377\377\377\3\376\376\376\377\377\377\376\376\376\235\377\377" \
- "\377\10kkk:::::<999;;;:::;;;\233\233\233\236\377\377\377\1\376\376\376" \
- "\211\377\377\377\1\376\376\376\202\377\377\377\3\346\346\350\251\251" \
- "\253``b\202::<\3;;=::<;;=\202::<\1;;=\205::<\1;;=\203::<\5;;=FFH\204" \
- "\204\204\316\316\316\376\376\376\204\377\377\377\1\376\376\376\232\377" \
- "\377\377\1\234\234\234\202::<\5""99;;;=99;;;;\315\315\315\252\377\377" \
- "\377\3\316\316\316:::;;;\202:::\3;;;::<\234\234\234\206\377\377\377\1" \
- "\377\377\375\203\377\376\377\11\377\377\377\377\377\375\303\344\367W" \
- "\270\345^\266\344X\267\347Y\271\353Z\266\351\\\266\350\202Y\270\350\221" \
- "[\267\352\3[\267\350[\265\347\325\355\371\202\376\377\377\3\2=e\0>g\0" \
- "\77m\220\0=i\6\0\77j\0>i\0=h\0\77j\0=i\0\77j\202\0>g\2\1\77h\240\266" \
- "\304\204\377\377\377\2\376\376\376\377\377\375\223\377\377\377\14\376" \
- "\376\376\377\377\377\315\315\315;;=::<:::;;;:::;;;kkk\377\377\377\376" \
- "\376\376\233\377\377\377\1\376\376\376\202\377\377\377\10\235\235\235" \
- "99;::<999;;;:::;;;\233\233\233\234\377\377\377\1\376\376\376\207\377" \
- "\377\377\1\265\265\265\202::<\1;;=\203::<\1kkk\203\377\377\377\1\376" \
- "\376\376\240\377\377\377\2kkk:::\202::<\3;;=99;;;=\244::<\1kkk\205\377" \
- "\377\377\1\376\376\376\210\377\377\377\1\346\346\346\206\316\316\316" \
- "\3\332\332\332\377\377\377\377\377\375\253\377\377\377\2\346\346\346" \
- "\316\316\316\202\316\316\320\203\316\316\316\1\315\315\315\225\377\377" \
- "\377\202\376\376\376\202\377\377\377\4\316\316\320\234\234\236kkmSSU" \
- "\205::<\1;;=\203::<\5kkm\204\204\206\264\264\266\346\346\350\376\376" \
- "\376\214\377\377\377\1\376\376\376\202\377\377\377\202\376\376\376\231" \
- "\377\377\377\1\376\376\376\203\377\377\377\2\331\331\331\317\317\317" \
- "\205\316\316\316\1\347\347\347\243\377\377\377\1\376\376\376\211\377" \
- "\377\377\5\376\376\377\347\347\351\265\265\267\204\204\206lln\212::<" \
- "\4``bxxz\234\234\236\332\332\332\207\377\377\377\1\376\376\376\210\377" \
- "\377\377\1\376\376\376\222\377\377\377\1\346\346\346\203\316\316\320" \
- "\4\316\316\316\316\316\320\315\315\315\364\364\364\251\377\377\377\2" \
- "\376\376\376\364\364\364\205\316\316\316\2\316\316\320\346\346\346\210" \
- "\377\377\377\16\377\376\377\377\377\375\376\377\377\377\377\377\377\375" \
- "\377\326\354\371\241\326\366\206\310\352\200\312\357\202\312\362\204" \
- "\310\357\204\312\356\203\311\355\205\311\360\220\204\312\356\10\203\311" \
- "\355\201\311\361\342\360\371\376\377\377\377\377\375>n\222Bm\215@n\220" \
- "\220@n\217\3@l\217An\217Bo\220\202An\217\5@m\214Dm\213l\223\260\277\320" \
- "\332\376\377\377\202\377\377\377\1\377\377\375\202\377\377\377\1\376" \
- "\377\377\225\377\377\377\3\363\363\363\317\317\321\316\316\320\204\316" \
- "\316\316\1\332\332\332\240\377\377\377\1\346\346\346\202\316\316\320" \
- "\204\316\316\316\1\347\347\347\243\377\377\377\3\376\376\376\363\363" \
- "\363lln\202kkm\1lln\202kkm\1\301\301\301\240\377\377\377\1\376\376\376" \
- "\203\377\377\377\2\331\331\331\317\317\317\202\316\316\316\202\317\317" \
- "\317\245\316\316\316\2\332\332\332\376\376\376\351\377\377\377\5\332" \
- "\332\332\315\315\315\316\316\316\315\315\315\363\363\363\361\377\377" \
- "\377\202\316\316\316\1\317\317\317\202\316\316\316\2\315\315\315\363" \
- "\363\363\377\377\377\377\377\377\377\377\377\377\377\377\334\377\377" \
- "\377\1\376\376\376\375\377\377\377\1\376\376\376\377\377\377\377\377" \
- "\377\377\377\377\377\377\377\340\377\377\377\1\376\376\376\370\377\377" \
- "\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\342" \
- "\377\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377" \
- "\377\377\377\377\377\334\377\377\377\1\376\376\376\362\377\377\377\1" \
- "\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377\346\377" \
- "\377\377\1\376\376\376\363\377\377\377\1\376\376\376\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\342\377\377\377\1\376\376\376\373\377" \
- "\377\377\1\376\376\376\377\377\377\377\377\377\377\377\377\377\377\377" \
- "\340\377\377\377\3\376\376\376\377\377\377\376\376\376\377\377\377\377" \
- "\377\377\377\377\377\377\377\377\377\377\377\377\243\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\203\377\377\377\1\376\376\376\233\377" \
- "\377\377\1\376\376\376\205\377\377\377\1\376\376\376\214\377\377\377" \
- "\1\376\376\376\205\377\377\377\1\376\376\376\260\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\300\377\377\377\1\376\376\376\306\377\377" \
- "\377\1\376\376\376\233\377\377\377\4\376\377\377\376\376\376\377\376" \
- "\377\377\377\377\203\376\377\375\203\377\377\377\3\377\377\375\376\377" \
- "\375\376\377\377\265\377\377\377\4\377\377\375\377\376\377\376\377\377" \
- "\377\377\375\202\377\376\377\210\377\377\377\7\377\377\375\376\377\377" \
- "\377\377\377\375\377\376\376\377\377\377\376\377\376\377\377\211\377" \
- "\377\377\4\376\377\375\377\377\377\376\376\376\377\377\375\202\377\377" \
- "\377\2\377\377\375\376\376\376\220\377\377\377\1\376\377\375\202\377" \
- "\377\375\5\377\376\377\377\377\373\377\377\377\375\377\376\377\377\375" \
- "\210\377\377\377\1\377\376\377\202\377\377\375\202\377\377\377\3\376" \
- "\377\377\377\377\375\377\376\377\213\377\377\377\3\376\377\377\376\377" \
- "\375\377\377\375\203\377\377\377\203\376\377\375\4\377\377\377\377\376" \
- "\377\376\376\376\376\377\377\233\377\377\377\3\376\377\377\376\377\375" \
- "\377\377\375\203\377\377\377\203\376\377\375\4\377\377\377\377\376\377" \
- "\376\376\376\376\377\377\210\377\377\377\1\377\376\377\203\377\377\377" \
- "\4\376\377\377\377\377\375\377\376\377\376\377\373\211\377\377\377\4" \
- "\376\377\377\376\376\374\377\376\377\377\375\376\226\377\377\377\5\376" \
- "\377\377\375\377\374\377\377\375\376\375\377\377\377\375\210\377\377" \
- "\377\1\377\377\375\202\376\377\377\1\377\377\373\242\377\377\377\1\376" \
- "\376\376\212\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376" \
- "\237\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377" \
- "\377\377\1\376\376\376\204\377\377\377\202\376\376\376\257\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\246\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376\250" \
- "\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\236\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\230\377\377\377\4\377\377" \
- "\373\376\377\377\376\376\376\377\376\377\203\377\377\377\1\377\377\375" \
- "\202\377\377\377\1\377\376\377\202\377\377\375\3\377\377\377\377\377" \
- "\375\376\376\374\260\377\377\377\2\377\377\375\376\376\376\203\377\376" \
- "\377\214\377\377\377\7\376\377\377\377\376\377\377\377\375\377\377\377" \
- "\377\376\377\375\377\376\377\377\375\210\377\377\377\7\377\376\374\377" \
- "\377\375\377\376\377\377\377\375\376\376\376\377\377\377\376\376\376" \
- "\221\377\377\377\1\377\376\377\203\377\377\377\202\377\377\375\212\377" \
- "\377\377\2\377\377\375\377\377\377\202\377\377\375\214\377\377\377\3" \
- "\376\376\374\377\377\375\377\377\377\202\377\377\375\1\377\376\377\202" \
- "\377\377\377\1\377\377\375\203\377\377\377\4\377\376\377\376\376\376" \
- "\376\377\377\377\377\373\230\377\377\377\3\376\376\374\377\377\375\377" \
- "\377\377\202\377\377\375\1\377\376\377\202\377\377\377\1\377\377\375" \
- "\203\377\377\377\4\377\376\377\376\376\376\376\377\377\377\377\373\213" \
- "\377\377\377\1\377\376\374\214\377\377\377\2\377\377\375\377\376\377" \
- "\202\377\377\375\3\376\377\377\377\377\377\377\377\373\221\377\377\377" \
- "\3\376\377\375\376\377\377\377\376\377\204\377\377\377\1\377\377\375" \
- "\212\377\377\377\5\377\376\377\377\377\375\377\377\377\376\377\375\376" \
- "\377\373\243\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\204\377\377\377\1\376\376\376\242\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\376\376\376\213\377\377\377\1\376\376\376\206\377\377\377" \
- "\1\376\376\376\263\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\270\377\377\377\1\376\376\376\312\377\377\377\1\376\376\376\234\377" \
- "\377\377\1\377\377\375\202\376\377\377\7\377\376\377\377\377\377\376" \
- "\377\377\377\376\377\377\377\375\377\377\377\376\377\377\202\377\376" \
- "\377\2\376\377\375\376\377\377\262\377\377\377\10\377\377\375\376\377" \
- "\377\377\376\377\377\377\373\377\377\377\377\376\377\376\377\375\377" \
- "\377\375\211\377\377\377\3\376\377\377\377\376\377\377\377\375\202\377" \
- "\377\377\2\376\377\377\376\376\376\210\377\377\377\202\377\376\377\4" \
- "\374\377\377\376\377\377\377\376\377\377\377\375\222\377\377\377\4\377" \
- "\376\375\376\377\377\377\377\377\376\377\377\202\377\376\377\202\377" \
- "\377\375\210\377\377\377\4\377\377\375\377\377\377\377\377\375\377\377" \
- "\377\202\377\376\377\2\377\377\377\376\377\377\212\377\377\377\2\376" \
- "\377\377\376\377\375\202\377\376\377\7\376\377\377\377\377\377\377\377" \
- "\375\377\376\377\376\377\377\377\377\377\377\376\377\202\376\377\377" \
- "\1\377\377\375\232\377\377\377\2\376\377\377\376\377\375\202\377\376" \
- "\377\7\376\377\377\377\377\377\377\377\375\377\376\377\376\377\377\377" \
- "\377\377\377\376\377\202\376\377\377\1\377\377\375\210\377\377\377\1" \
- "\377\377\375\202\377\377\377\4\377\377\375\377\376\377\377\377\377\376" \
- "\377\377\211\377\377\377\7\375\376\377\377\377\375\377\376\377\376\376" \
- "\377\376\377\375\375\377\376\377\377\375\222\377\377\377\6\376\377\377" \
- "\377\376\377\377\377\377\377\377\375\377\376\377\376\377\377\213\377" \
- "\377\377\202\377\376\377\3\377\377\375\376\377\377\376\377\375\236\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\203\377\377\377\2\376\376\376\377\377\377\202\376\376" \
- "\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\204" \
- "\377\377\377\1\376\376\376\235\377\377\377\1\376\376\376\217\377\377" \
- "\377\1\376\376\376\206\377\377\377\1\376\376\376\260\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\241\377\377\377\202\376\376\376\204" \
- "\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\246\377\377\377\1\376\376\376\233\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\234\377\377\377\15\376\376\376\377\377" \
- "\377\377\376\377\377\377\375\375\377\376\377\377\377\376\377\375\377" \
- "\377\377\375\376\377\377\377\377\377\377\375\376\377\377\377\377\377" \
- "\202\377\376\377\260\377\377\377\7\377\376\377\376\377\377\377\377\377" \
- "\376\377\377\377\377\377\377\377\375\376\377\377\212\377\377\377\1\376" \
- "\376\374\203\377\377\377\3\376\376\377\377\377\375\376\377\377\210\377" \
- "\377\377\10\376\377\377\377\376\377\374\377\373\376\377\373\377\376\377" \
- "\376\376\376\377\377\377\376\377\375\220\377\377\377\2\377\376\377\377" \
- "\377\377\202\377\377\375\202\377\377\377\2\376\376\374\376\377\377\210" \
- "\377\377\377\1\376\377\377\202\377\377\377\5\376\377\377\377\377\377" \
- "\376\376\376\377\377\377\376\377\375\210\377\377\377\202\377\376\377" \
- "\15\377\377\377\376\377\377\377\377\375\377\377\377\375\376\377\377\377" \
- "\377\376\377\375\377\377\377\375\377\376\377\377\375\377\376\377\377" \
- "\377\377\376\376\376\231\377\377\377\202\377\376\377\15\377\377\377\376" \
- "\377\377\377\377\375\377\377\377\375\376\377\377\377\377\376\377\375" \
- "\377\377\377\375\377\376\377\377\375\377\376\377\377\377\377\376\376" \
- "\376\211\377\377\377\4\377\376\377\377\377\377\376\377\375\376\377\377" \
- "\202\377\377\377\2\376\377\377\376\377\375\210\377\377\377\1\376\377" \
- "\375\202\376\376\376\202\377\377\377\2\377\377\375\375\376\377\221\377" \
- "\377\377\10\377\377\375\377\377\377\376\376\374\376\377\373\376\376\376" \
- "\377\376\377\376\377\377\377\377\375\210\377\377\377\6\376\376\376\377" \
- "\377\377\377\377\375\377\377\377\374\375\377\377\377\375\242\377\377" \
- "\377\1\376\376\376\214\377\377\377\1\376\376\376\204\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\235\377\377\377\1\376\376\376\203\377" \
- "\377\377\202\376\376\376\212\377\377\377\1\376\376\376\202\377\377\377" \
- "\202\376\376\376\264\377\377\377\5\376\376\376\377\377\377\376\376\376" \
- "\377\377\377\376\376\376\242\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\202\377\377\377\1\376\376\376\223\377\377\377\1\376\376\376" \
- "\244\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\233\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\234\377\377\377" \
- "\1\375\377\372\202\377\377\377\3\376\376\376\377\377\375\377\377\377" \
- "\202\376\377\377\204\377\377\377\4\376\377\377\377\377\377\377\376\377" \
- "\375\377\372\260\377\377\377\202\377\377\375\2\377\377\377\376\375\377" \
- "\202\377\377\377\1\375\377\376\212\377\377\377\6\377\377\375\377\377" \
- "\377\376\377\375\377\377\375\377\376\377\377\376\375\212\377\377\377" \
- "\1\377\376\377\202\377\377\377\4\377\375\376\377\377\377\377\377\373" \
- "\376\375\377\221\377\377\377\203\376\376\376\4\377\377\375\376\376\374" \
- "\377\376\377\376\376\374\210\377\377\377\5\377\376\377\377\377\375\377" \
- "\376\377\376\376\376\376\377\375\202\377\377\377\1\376\376\376\210\377" \
- "\377\377\4\375\377\372\377\376\377\377\377\377\376\377\377\204\377\377" \
- "\377\202\376\377\377\3\377\377\377\377\377\375\376\376\376\202\377\377" \
- "\377\1\375\377\372\230\377\377\377\4\375\377\372\377\376\377\377\377" \
- "\377\376\377\377\204\377\377\377\202\376\377\377\3\377\377\377\377\377" \
- "\375\376\376\376\202\377\377\377\1\375\377\372\210\377\377\377\3\376" \
- "\377\377\377\377\377\376\376\376\202\376\377\377\202\377\377\377\1\376" \
- "\377\375\210\377\377\377\7\376\376\377\377\377\375\376\377\375\376\376" \
- "\376\377\376\377\377\377\377\376\377\377\221\377\377\377\5\376\376\376" \
- "\376\377\377\377\377\377\375\375\375\377\376\377\202\377\377\377\1\377" \
- "\377\375\211\377\377\377\7\377\376\377\376\376\374\376\377\377\377\377" \
- "\377\377\376\377\377\377\375\377\377\373\233\377\377\377\1\376\376\376" \
- "\205\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\203\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\204\377\377\377\1\376\376\376\237\377\377\377\1\376\376\376" \
- "\212\377\377\377\1\376\376\376\213\377\377\377\1\376\376\376\255\377" \
- "\377\377\1\376\376\376\247\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\224\377\377\377\1\376\376\376\247\377\377\377\1\376\376" \
- "\376\236\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\232" \
- "\377\377\377\10\377\376\377\377\377\375\377\377\377\376\377\377\376\376" \
- "\376\377\376\377\377\377\375\377\376\377\202\377\377\375\1\377\376\377" \
- "\202\377\377\377\3\377\376\377\377\375\376\377\376\377\260\377\377\377" \
- "\2\377\376\377\377\377\377\202\377\376\377\4\377\377\375\376\376\374" \
- "\377\375\377\377\376\377\210\377\377\377\3\376\376\374\377\376\377\376" \
- "\376\376\204\377\377\377\1\376\377\375\210\377\377\377\4\375\377\374" \
- "\377\377\377\377\375\376\377\376\377\203\377\377\377\1\377\377\375\220" \
- "\377\377\377\3\376\377\377\377\377\375\376\377\377\202\377\377\377\3" \
- "\377\376\377\373\377\377\376\377\377\211\377\377\377\202\376\377\375" \
- "\1\377\377\375\203\377\377\377\1\377\376\377\210\377\377\377\3\377\376" \
- "\377\377\375\376\377\376\377\202\377\377\377\1\377\376\377\202\377\377" \
- "\375\10\377\376\377\377\377\375\377\376\377\376\376\376\376\377\377\377" \
- "\377\377\377\377\375\377\376\377\230\377\377\377\3\377\376\377\377\375" \
- "\376\377\376\377\202\377\377\377\1\377\376\377\202\377\377\375\10\377" \
- "\376\377\377\377\375\377\376\377\376\376\376\376\377\377\377\377\377" \
- "\377\377\375\377\376\377\210\377\377\377\2\377\377\375\375\376\371\202" \
- "\377\376\377\3\377\377\377\377\377\375\377\376\377\212\377\377\377\1" \
- "\377\375\376\202\377\377\377\4\377\377\375\376\376\376\376\377\377\377" \
- "\376\377\220\377\377\377\2\376\377\377\376\376\377\202\377\377\377\2" \
- "\376\377\375\375\377\374\212\377\377\377\10\373\377\376\377\377\377\377" \
- "\377\375\376\376\374\377\377\375\377\376\377\377\377\377\376\377\377" \
- "\235\377\377\377\1\376\376\376\202\377\377\377\7\316\316\320\250\250" \
- "\252\221\221\223llnjjlGGI99;\204::<\7TTVkkmyy{\234\234\236\265\265\267" \
- "\332\332\332\376\376\376\237\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\222\377\377\377\1\376\376\376\205\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\255\377\377\377\1\376\376\376\246\377\377\377" \
- "\1\376\376\376\227\377\377\377\1\376\376\376\252\377\377\377\1\376\376" \
- "\376\233\377\377\377\1\376\376\376\236\377\377\377\17\305\344\240\303" \
- "\342\237\304\343\240\304\343\237\307\342\237\303\342\236\305\342\240" \
- "\303\342\236\305\342\237\304\343\240\304\343\237\304\341\237\304\343" \
- "\237\323\352\266\376\377\375\250\377\377\377\210\305\342\240\10\305\342" \
- "\237\303\342\234\304\343\237\306\341\236\304\343\240\322\352\270\376" \
- "\377\377\375\377\376\211\377\377\377\5\377\376\377\376\376\376\377\376" \
- "\377\360\371\350\305\342\237\202\304\341\236\210\305\342\240\5\304\341" \
- "\236\327\356\302\376\377\377\377\377\373\376\377\375\202\377\377\375" \
- "\1\377\376\377\220\377\377\377\202\377\377\375\2\376\377\377\377\377" \
- "\377\202\377\377\375\2\304\343\237\306\341\236\210\305\342\240\5\307" \
- "\342\237\303\342\236\304\341\236\341\357\314\377\377\375\213\377\377" \
- "\377\17\376\377\375\323\352\266\304\343\237\304\341\237\304\343\237\304" \
- "\343\240\305\342\237\303\342\236\305\342\240\303\342\236\307\342\237" \
- "\304\343\237\304\343\240\303\342\237\305\344\240\231\377\377\377\17\376" \
- "\377\375\323\352\266\304\343\237\304\341\237\304\343\237\304\343\240" \
- "\305\342\237\303\342\236\305\342\240\303\342\236\307\342\237\304\343" \
- "\237\304\343\240\303\342\237\305\344\240\211\377\377\377\10\360\367\347" \
- "\306\343\241\303\342\237\307\342\237\303\342\237\304\343\235\307\341" \
- "\240\304\343\240\210\305\342\240\7\315\347\252\376\377\375\377\375\376" \
- "\376\377\375\377\377\377\377\377\373\376\377\377\221\377\377\377\10\377" \
- "\377\375\376\377\375\323\352\266\307\341\240\307\342\237\305\342\240" \
- "\307\340\236\306\341\236\210\305\342\240\4\304\343\237\311\335\236\377" \
- "\377\377\377\376\377\203\377\377\377\1\376\377\377\230\377\377\377\1" \
- "\376\376\376\203\377\377\377\3\346\346\346\251\251\251jjl\202;;=\210" \
- "::<\1;;=\202::<\2;;=99;\203::<\5FFHxxx\265\265\265\363\363\363\376\376" \
- "\376\234\377\377\377\2\376\376\376\346\346\346\214\234\234\234\1\235" \
- "\235\235\203\234\234\234\3\235\235\235\234\234\234\250\250\250\203\316" \
- "\316\316\1\346\346\346\263\377\377\377\202\250\250\250\245\377\377\377" \
- "\1\316\316\316\222\234\234\234\1\302\302\302\203\316\316\316\1\363\363" \
- "\363\247\377\377\377\3\316\316\316\234\234\234\235\235\235\240\234\234" \
- "\234\1\316\316\316\231\377\377\377\6\215\305>\216\306A\215\305@\213\310" \
- "=\215\305>\212\307>\202\214\305@\6\214\306>\212\306@\214\306<\215\304" \
- "B\214\306>\252\323m\251\377\377\377\210\214\306>\10\215\305@\215\307" \
- "\77\212\307>\217\304@\214\305@\251\323m\377\377\377\377\377\375\213\377" \
- "\377\377\5\377\375\377\341\363\315\215\305>\212\307>\215\305@\210\214" \
- "\306>\6\215\306A\220\305\77\350\365\333\377\377\377\376\377\377\377\376" \
- "\377\202\376\377\377\225\377\377\377\3\377\376\377\214\306>\215\306A" \
- "\210\214\306>\6\215\305>\212\310\77\215\305@\307\341\240\376\377\377" \
- "\377\376\377\213\377\377\377\6\252\323m\214\306>\215\304B\214\306<\212" \
- "\306@\214\306>\202\214\305@\6\212\307>\215\305>\213\310=\215\305@\216" \
- "\306A\215\305>\232\377\377\377\6\252\323m\214\306>\215\304B\214\306<" \
- "\212\306@\214\306>\202\214\305@\6\212\307>\215\305>\213\310=\215\305" \
- "@\216\306A\215\305>\211\377\377\377\4\376\377\377\242\321a\213\307A\215" \
- "\305>\202\214\306>\2\215\305@\215\307\77\210\214\306>\7\215\305<\332" \
- "\354\304\377\377\377\376\377\375\376\376\376\377\376\377\376\376\376" \
- "\221\377\377\377\10\377\376\377\342\362\316\215\305>\213\310\77\212\305" \
- "D\212\307<\216\306\77\211\307>\211\214\306>\4\304\343\240\373\377\376" \
- "\377\377\377\375\377\376\202\377\377\377\1\377\377\375\225\377\377\377" \
- "\1\376\376\376\204\377\377\377\6\265\265\267__a99;;;=::<;;=\202::<\1" \
- ";;=\202::<\1;;=\202::<\1;;=\203::<\1;;=\203::<\3;;=::<99;\202::<\2xx" \
- "z\301\301\301\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\206\377\377\377\1\376\376\376\217\377\377\377\1\316\316\316\205" \
- "::<\202;;=\221::<\4TTVwwy\250\250\252\346\346\350\255\377\377\377\1\316" \
- "\316\320\202::<\1\316\316\316\244\377\377\377\1\234\234\236\204::<\1" \
- ";;=\205::<\3;;=::<;;=\206::<\1;;=\204::<\6SSUkkm\204\204\206\250\250" \
- "\250\316\316\316\376\376\376\206\377\377\377\1\376\376\376\231\377\377" \
- "\377\1\234\234\234\206::<\3;;=::<;;=\222::<\1;;=\204::<\3;;=::<\234\234" \
- "\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>" \
- "\15\212\306@\215\307\77\233\316W\365\374\364\377\376\375\376\377\377" \
- "\377\376\377\377\377\375\377\377\377\377\377\375\376\376\376\377\377" \
- "\377\376\376\374\202\377\377\377\1\376\376\376\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\350\364\334\215\305>\212\307" \
- "<\214\305@\215\304B\215\305@\213\310\77\210\214\306>\10\214\305@\225" \
- "\311J\370\373\362\377\376\377\376\377\377\377\377\375\377\377\377\376" \
- "\377\377\210\377\377\377\40\376\377\377\376\377\375\377\376\377\377\377" \
- "\377\375\376\377\377\377\375\377\376\377\376\377\377\370\373\364\233" \
- "\314W\215\307\77\214\304=\212\306@\215\307\77\213\305=\215\307\77\214" \
- "\306>\217\304@\215\306A\212\307>\214\306<\215\306A\214\306>\211\307@" \
- "\242\321a\377\377\377\377\376\377\376\377\377\377\376\377\377\377\377" \
- "\376\377\377\377\376\377\223\377\377\377\7\376\376\376\377\377\377\376" \
- "\376\376\377\377\377\363\363\365\234\234\236FFH\202::<\10;;=99;;;=::" \
- "<;;=::<99;;;=\203::<\1;;=\203::<\2;;=99;\204::<\11""99;;;=::<;;=::<;" \
- ";=TTV\265\265\265\363\363\363\203\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\215\377\377\377\1\316\316\316\205::<\3;;=::<;;=\202" \
- "::<\1;;=\214::<\3;;=99;;;=\202::<\4lln\316\316\316\376\376\376\377\377" \
- "\377\202\376\376\376\246\377\377\377\2\376\376\376xxz\202::<\2xxx\376" \
- "\376\376\243\377\377\377\1\234\234\236\204::<\202;;=\205::<\1;;=\204" \
- "::<\1;;=\202::<\1""99;\206::<\1;;=\202::<\6;;=kkk\250\250\250\346\346" \
- "\346\377\377\377\376\376\376\205\377\377\377\1\376\376\376\225\377\377" \
- "\377\1\234\234\234\204::<\1;;=\202::<\4;;=::<99;;;=\225::<\3;;=::<\234" \
- "\234\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4" \
- "\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306" \
- ">\4\215\306A\213\304\77\215\305@\262\327x\202\377\377\377\1\376\377\375" \
- "\203\377\377\375\204\377\377\377\1\376\376\376\217\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\376\376\376\305\342\237\212" \
- "\307>\214\306>\212\307<\214\306>\212\307>\210\214\306>\3\214\306<\215" \
- "\306A\300\337\221\202\377\377\377\3\377\376\377\376\376\376\377\377\375" \
- "\210\377\377\377\1\377\375\377\202\377\377\377\2\376\376\377\376\377" \
- "\375\202\377\376\377\30\377\377\377\277\340\221\215\306A\213\305=\215" \
- "\305>\212\306B\214\306>\216\306\77\214\306<\212\307>\215\307=\213\305" \
- ";\215\307\77\216\305C\214\306>\214\305@\216\306\77\347\365\333\377\376" \
- "\377\377\377\375\376\377\377\377\376\374\377\377\377\377\377\375\222" \
- "\377\377\377\1\376\376\376\204\377\377\377\12\265\265\267FFH;;=::<;;" \
- "=99;::<;;=::<;;=\202::<\4<<>99;::<;;=\202::<\1;;=\203::<\1<<>\204::<" \
- "\5<<>99;;;=99;;;=\202::<\4:::SSS\266\266\266\376\376\376\203\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\216\377\377\377\1\316" \
- "\316\316\204::<\3;;=::<;;=\204::<\1;;=\214::<\1;;=\202::<\1;;=\202::" \
- "<\2yyy\363\363\363\202\377\377\377\1\376\376\376\245\377\377\377\3\346" \
- "\346\346::<;;=\202::<\1\347\347\347\202\377\377\377\1\376\376\376\240" \
- "\377\377\377\1\234\234\236\203::<\4;;=99;::<;;=\202::<\7;;=::<;;=99;" \
- ";;=::<;;=\203::<\202;;=\210::<\1""99;\202::<\4;;=xxz\317\317\317\376" \
- "\376\376\202\377\377\377\1\376\376\376\227\377\377\377\1\234\234\234" \
- "\204::<\1""99;\203;;=\224::<\1;;=\204::<\2<<>\234\234\236\231\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\10\215\305>\214\306" \
- ">\213\307A\214\306>\315\345\253\377\377\375\377\376\377\376\377\377\226" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\7\377\377" \
- "\375\377\376\377\376\376\376\241\321a\212\307>\211\305\77\215\306A\211" \
- "\214\306>\4\213\310\77\214\305@\213\305=\342\361\320\202\377\376\377" \
- "\2\377\377\375\377\376\377\210\377\377\377\1\377\376\377\202\377\377" \
- "\377\30\377\377\375\376\377\377\377\377\375\376\377\377\351\366\334\214" \
- "\305B\211\306;\215\307\77\214\306>\212\306@\215\305>\215\305@\212\307" \
- ">\214\305@\212\306B\214\306>\213\305=\213\310\77\215\305>\215\307\77" \
- "\314\345\253\377\375\377\377\376\374\376\377\377\203\377\377\377\1\377" \
- "\376\374\225\377\377\377\2\345\345\345kkm\205::<\202;;=\203::<\1;;=\203" \
- "::<\1;;=\202::<\202;;=\202::<\1;;=\210::<\2;;=99;\205::<\2```\331\331" \
- "\331\211\377\377\377\1\376\376\376\214\377\377\377\1\316\316\316\206" \
- "::<\5""99;::<;;=::<99;\212::<\1;;=\202::<\1;;=\204::<\4;;=::<FFF\316" \
- "\316\316\247\377\377\377\3\205\205\207;;=99;\202::<\1\204\204\206\203" \
- "\377\377\377\1\376\376\376\237\377\377\377\1\234\234\236\205::<\1;;=" \
- "\204::<\1""99;\202;;=\202::<\3;;=::<;;=\203::<\1;;=\202::<\1;;=\204:" \
- ":<\1;;=\205::<\2jjl\316\316\316\203\377\377\377\1\376\376\376\225\377" \
- "\377\377\1\234\234\234\204::<\1;;=\202::<\3;;=::<;;=\222::<\7;;=::<;" \
- ";=::<;;=::<\234\234\236\231\377\377\377\3\214\305@\214\306>\214\305@" \
- "\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215" \
- "\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214" \
- "\305@\210\214\306>\10\215\305@\212\307>\214\305@\215\306A\214\305@\352" \
- "\364\334\376\376\377\377\377\373\202\377\377\377\3\376\376\376\377\377" \
- "\377\377\377\375\202\377\377\377\1\376\376\374\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\211\377\377\377\1\376\377\377\202\377\377\375" \
- "\5\347\364\332\215\307\77\215\306C\214\307;\216\306\77\210\214\306>\10" \
- "\214\305@\214\305D\215\307\77\233\314V\371\374\363\376\377\377\377\377" \
- "\377\377\377\375\210\377\377\377\20\375\377\374\377\376\377\376\376\377" \
- "\376\377\377\377\376\377\376\377\375\376\377\377\244\317d\212\307>\215" \
- "\306A\215\305@\214\305@\211\306=\215\307=\215\306A\214\305@\204\214\306" \
- ">\14\211\305A\212\307>\251\324k\377\376\377\377\375\376\376\377\377\377" \
- "\377\377\377\377\375\377\377\377\377\377\375\377\377\377\377\377\375" \
- "\217\377\377\377\1\376\376\376\203\377\377\377\2\265\265\267FFH\205:" \
- ":<\1;;=\203::<\202;;=\7:::TTT\203\203\203\235\235\235\316\316\316\332" \
- "\332\332\377\377\377\202\376\376\376\202\377\377\377\5\316\316\316\317" \
- "\317\317\234\234\234yyyFFF\202::<\1;;=\202::<\3""99;;;=99;\204::<\2;" \
- ";=\233\233\233\206\377\377\377\1\376\376\376\216\377\377\377\1\316\316" \
- "\316\204::<\1;;=\205::<\1;;=\212::<\3""99;::<;;=\202::<\2;;=99;\204:" \
- ":<\2;;=\265\265\265\245\377\377\377\4\346\346\346::<99;;;=\202::<\4""9" \
- "9;\347\347\347\377\377\377\376\376\376\240\377\377\377\1\234\234\236" \
- "\205::<\1;;=\203::<\202;;=\1""99;\203;;=\2::<;;=\203::<\1;;=\202::<\2" \
- ";;=::<\202;;=\7::<;;=99;::<;;=99;;;=\202::<\3;;=xxx\362\362\362\227\377" \
- "\377\377\1\234\234\234\205::<\202;;=\4::<;;=::<;;=\223::<\2;;=99;\202" \
- ";;=\1\234\234\236\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\12\212\307>\215\306A\214\305@\215\307\77\213\306:\226\312N" \
- "\372\374\361\375\376\377\377\377\375\377\377\373\224\377\377\377\213" \
- "\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p" \
- "\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\211\377\377\377\10\376\377\377\376\376" \
- "\377\376\377\377\377\375\376\307\342\237\214\306<\215\306A\214\305@\210" \
- "\214\306>\5\215\307\77\213\305=\216\306A\213\310\77\277\337\223\202\377" \
- "\377\375\1\377\376\377\210\377\377\377\14\376\377\375\376\376\376\377" \
- "\376\377\377\377\375\377\376\377\377\377\377\303\342\236\215\307\77\216" \
- "\306A\215\305>\214\306<\215\306A\203\214\306>\20\215\307\77\212\307>" \
- "\215\305@\216\306\77\214\305@\216\307<\223\312K\356\372\346\377\377\377" \
- "\376\377\377\375\377\376\377\377\377\377\376\377\377\377\375\377\377" \
- "\377\377\377\375\216\377\377\377\1\376\376\376\203\377\377\377\2\375" \
- "\375\375\205\205\207\202::<\202;;=\3::<;;=::<\202;;=\6::<:::SSS\250\250" \
- "\250\346\346\346\376\376\376\216\377\377\377\3\332\332\332\220\220\220" \
- "SSS\202::<\4;;=99;::<;;=\202::<\1""99;\202;;=\2__a\332\332\334\223\377" \
- "\377\377\1\316\316\316\204::<\6;;=RRT\235\235\237\235\235\235\233\233" \
- "\233\234\234\234\212\234\234\236\5xxzkkm__a99;;;=\204::<\202;;=\1""9" \
- "9;\202::<\1\316\316\316\244\377\377\377\4\204\204\206;;=::<;;=\202::" \
- "<\2;;=\220\220\222\203\377\377\377\1\376\376\376\236\377\377\377\1\234" \
- "\234\236\203::<\3;;=::<kkm\203\234\234\236\3\233\233\235\234\234\236" \
- "\235\235\237\204\234\234\236\2xxzlln\202kkm\1FFH\202;;=\2""99;;;=\202" \
- "::<\3""99;::<;;=\202::<\1;;=\205::<\3GGI\301\301\301\376\376\376\225" \
- "\377\377\377\1\234\234\234\205::<\5lln\234\234\236\233\233\233\235\235" \
- "\235\234\234\234\224\234\234\236\5\234\234\234\235\235\235\233\233\233" \
- "\234\234\234\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\7\212\306@\214\306<\217\307@\214\304\77\214\311" \
- ">\214\306>\251\323m\202\376\377\377\4\376\376\374\377\377\375\377\377" \
- "\377\376\376\376\202\377\377\377\1\376\376\376\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\212\377\377\377\7\377\377\375\377\376\377\376" \
- "\377\377\377\376\377\251\323o\211\307>\214\305@\210\214\306>\7\212\307" \
- ">\215\305>\214\305@\214\306>\215\307\77\347\365\334\377\376\377\211\377" \
- "\377\377\2\377\376\377\375\377\374\203\377\376\377\15\352\364\333\212" \
- "\306@\215\306A\214\306>\215\307\77\213\310\77\214\306>\216\306A\215\306" \
- "A\214\306<\212\307>\213\310=\212\307>\202\214\305@\4\214\306>\314\345" \
- "\253\377\376\377\376\377\377\202\377\377\375\6\377\376\377\375\376\377" \
- "\377\377\377\377\376\377\376\377\375\377\376\377\217\377\377\377\3\376" \
- "\376\376\362\362\362lln\20299;\1;;=\204::<\202;;=\6::<\204\204\204\317" \
- "\317\317\376\376\376\377\377\377\376\376\376\206\377\377\377\1\376\376" \
- "\376\213\377\377\377\2\301\301\301kkm\211::<\6;;=FFH\301\301\301\376" \
- "\376\376\377\377\377\376\376\376\217\377\377\377\1\316\316\316\204::" \
- "<\3;;=kkm\376\376\376\221\377\377\377\3\316\316\316\204\204\204FFF\202" \
- "::<\1;;=\202::<\202;;=\2FFH\363\363\363\242\377\377\377\5\364\364\364" \
- "::<;;=99;;;=\203::<\3GGI\363\363\363\376\376\376\240\377\377\377\1\234" \
- "\234\236\205::<\1\234\234\236\210\377\377\377\1\376\376\376\204\377\377" \
- "\377\1\376\376\376\202\377\377\377\6\362\362\362\316\316\316\265\265" \
- "\265\234\234\234kkmFFH\202::<\2;;=99;\205::<\1;;=\202::<\1\221\221\221" \
- "\225\377\377\377\1\234\234\234\205::<\1\234\234\236\202\377\377\377\1" \
- "\376\376\376\225\377\377\377\1\375\375\375\235\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\210\214\306>\4\215\307\77\214\306>\214\304\77" \
- "\214\306>\202\214\305@\6\215\307\77\307\341\240\376\377\375\376\377\377" \
- "\376\376\374\377\377\373\202\377\377\377\202\377\377\375\216\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\212\377\377\377\7\377\376\377\376\376" \
- "\377\377\377\377\376\376\377\361\372\347\222\312K\215\305>\210\214\306" \
- ">\10\214\305@\215\306A\214\305@\214\306<\213\304A\243\322b\376\376\374" \
- "\376\377\375\211\377\377\377\24\377\377\373\377\377\377\376\377\377\377" \
- "\377\375\242\320c\215\307=\214\306>\213\310\77\213\304A\212\306@\215" \
- "\307\77\215\305@\214\306>\215\307\77\212\306@\215\305>\215\307\77\213" \
- "\310\77\213\306:\253\325q\202\377\377\377\11\377\377\375\377\376\377" \
- "\377\377\377\377\377\375\376\377\375\377\377\375\377\375\377\376\377" \
- "\377\377\377\375\214\377\377\377\7\376\376\376\377\377\377\376\376\376" \
- "\363\363\363__a::<;;=\203::<\202;;=\202::<\4xxz\347\347\351\377\377\377" \
- "\376\376\376\210\377\377\377\1\376\376\376\204\377\377\377\2\376\376" \
- "\376\377\377\377\203\376\376\376\205\377\377\377\2\316\316\320kkm\202" \
- "::<\3;;=::<;;=\202::<\202;;=\2:::\250\250\250\202\377\377\377\1\376\376" \
- "\376\216\377\377\377\1\316\316\316\205::<\1kkm\203\377\377\377\1\376" \
- "\376\376\215\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363" \
- "xxx::<\202;;=\203::<\2;;=xxz\242\377\377\377\1\234\234\234\202::<\1;" \
- ";=\202::<\1;;=\202::<\1\234\234\234\241\377\377\377\1\234\234\236\202" \
- "::<\10;;=::<;;=\234\234\236\377\377\377\376\376\376\377\377\377\376\376" \
- "\376\216\377\377\377\1\376\376\376\203\377\377\377\3\332\332\332\221" \
- "\221\223FFH\205::<\2;;=::<\202;;=\2::<\204\204\204\224\377\377\377\1" \
- "\234\234\234\205::<\3\234\234\236\377\377\377\376\376\376\264\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\5\216\306\77\212" \
- "\307>\215\307=\212\306@\214\306>\202\215\305>\5\215\305@\345\356\317" \
- "\376\377\375\376\377\377\377\377\375\202\377\377\377\1\377\377\375\217" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\4\376\377" \
- "\377\377\377\377\377\377\375\376\377\377\202\377\377\377\2\315\347\252" \
- "\212\306@\210\214\306>\10\216\306A\212\306@\212\307>\215\305<\213\310" \
- "\77\215\305>\307\341\240\376\377\377\212\377\377\377\10\375\377\374\377" \
- "\377\377\305\342\237\215\305@\212\306@\216\306\77\215\307=\215\305>\202" \
- "\214\306>\24\213\307A\213\310=\215\304B\214\306>\212\306@\215\304B\212" \
- "\307>\225\311K\370\373\362\377\377\377\376\377\375\377\377\375\377\377" \
- "\377\374\377\375\376\376\376\377\377\377\377\377\375\377\376\377\376" \
- "\377\377\377\377\375\211\377\377\377\1\376\376\376\205\377\377\377\1" \
- "___\204::<\1;;=\203::<\2SSS\316\316\316\235\377\377\377\2\317\317\317" \
- "``b\207::<\3;;=::<\204\204\206\220\377\377\377\1\316\316\316\205::<\1" \
- "kkm\226\377\377\377\3\204\204\206::<;;=\205::<\1\316\316\316\232\377" \
- "\377\377\1\376\376\376\205\377\377\377\2\364\364\364FFF\202;;=\202::" \
- "<\6;;=99;;;=::<FFH\363\363\363\240\377\377\377\1\234\234\236\205::<\1" \
- "\234\234\234\226\377\377\377\1\376\376\376\202\377\377\377\3\265\265" \
- "\265RRR:::\202::<\1;;=\202::<\4;;=::<;;=\204\204\204\203\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\2\222\313" \
- "J\366\373\364\202\377\376\377\4\377\377\373\376\376\374\376\377\377\377" \
- "\376\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377" \
- "-\377\377\375\376\377\377\377\377\377\376\376\374\376\377\377\377\376" \
- "\377\376\377\377\252\324p\212\306@\215\305>\212\307<\215\305@\215\305" \
- "<\214\305B\215\305@\214\306<\212\307>\215\305>\214\306>\211\306=\215" \
- "\305>\212\307>\214\306<\350\364\334\374\377\377\377\376\377\376\376\376" \
- "\374\377\375\377\377\377\376\377\375\377\377\375\377\376\377\377\377" \
- "\375\377\377\377\377\376\377\357\367\350\223\312K\213\310\77\215\305" \
- ">\214\306>\215\305>\213\310\77\212\306@\214\306>\215\305@\202\214\306" \
- ">\10\214\305@\216\306=\212\307>\215\305>\333\355\303\376\376\374\377" \
- "\377\377\377\377\375\223\377\377\377\1\376\376\376\203\377\377\377\1" \
- "\203\203\203\206::<\4;;=::<\204\204\206\363\363\363\230\377\377\377\1" \
- "\376\376\376\207\377\377\377\1\235\235\237\202::<\1;;=\203::<\5;;=99" \
- ";;;=\204\204\204\376\376\376\216\377\377\377\1\316\316\316\205::<\1k" \
- "km\227\377\377\377\12\204\204\206::<;;=::<99;;;=::<\204\204\204\377\377" \
- "\377\376\376\376\232\377\377\377\1\376\376\376\203\377\377\377\2\234" \
- "\234\234;;=\203::<\1;;=\204::<\3<<>\250\250\250\376\376\376\237\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\231\377\377\377\10\376\376\376" \
- "\377\377\377\265\265\265FFH::<;;=::<;;=\203::<\2;;=\204\204\204\222\377" \
- "\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\220\214\306>\4\216\306\77\250\322n\376\377\375" \
- "\376\377\373\222\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377" \
- "\377\13\376\376\377\376\377\377\377\376\377\376\376\374\374\377\377\377" \
- "\377\375\377\376\377\356\372\346\225\311K\214\306>\213\310=\203\214\306" \
- ">\2\213\310\77\214\306>\202\214\305@\7\214\306<\213\307A\214\304\77\214" \
- "\305B\212\307>\244\317d\377\376\377\202\377\377\377\1\377\375\377\202" \
- "\377\377\377\25\376\377\377\377\376\377\377\377\377\374\377\375\376\376" \
- "\374\253\324n\214\306<\215\307\77\215\305>\211\307@\216\305C\214\305" \
- "@\215\307\77\214\305@\214\306<\212\307<\211\306=\214\306>\214\305@\213" \
- "\307A\263\327}\202\376\377\377\3\377\377\377\377\375\376\377\377\375" \
- "\221\377\377\377\1\376\376\376\203\377\377\377\1\250\250\250\204::<\1" \
- ";;=\202::<\2;;=\264\264\264\202\377\377\377\1\376\376\376\232\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\332\332\332SSS\202::<\1;;=\204:" \
- ":<\4xxx\364\364\364\377\377\377\376\376\376\214\377\377\377\1\316\316" \
- "\316\205::<\1kkm\227\377\377\377\2\363\363\363SSU\202::<\4;;=99;::<;" \
- ";;\202\377\377\377\1\376\376\376\226\377\377\377\1\376\376\376\204\377" \
- "\377\377\11\376\376\376\363\363\363FFH99;;;=::<;;=99;;;=\203::<\4""9" \
- "9;SSU\377\377\377\376\376\376\236\377\377\377\1\234\234\236\205::<\1" \
- "\234\234\234\225\377\377\377\1\376\376\376\204\377\377\377\10\376\376" \
- "\376\377\377\377\363\363\363yyy::<;;=99;;;=\204::<\1\266\266\266\221" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\220\214\306>\4\214\306<\213\307A\275\335" \
- "\222\376\377\377\203\377\377\377\1\377\377\375\216\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\211\377\377\377\4\377\376\377\376\376\377\377" \
- "\377\377\377\377\375\202\376\377\377\5\377\375\376\377\376\377\315\346" \
- "\255\212\307>\214\305@\202\215\306A\22\214\305@\212\307<\214\305B\214" \
- "\306>\213\307A\214\306>\213\305=\214\306>\215\305>\213\307A\211\310<" \
- "\313\347\254\377\377\375\377\375\377\376\377\377\376\377\373\376\377" \
- "\377\377\376\377\202\376\377\377\10\377\377\377\315\346\254\212\307>" \
- "\212\306@\215\306A\216\306A\212\307>\214\306<\202\215\306A\10\215\306" \
- "C\214\305B\215\307\77\214\306<\214\305@\213\310<\222\310L\372\373\363" \
- "\225\377\377\377\1\376\376\376\202\377\377\377\6\376\376\376\333\333" \
- "\333::<;;=::<;;=\202::<\3;;=FFH\315\315\315\205\377\377\377\1\376\376" \
- "\376\225\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\202\377\377\377\2\363\363\363xxx\204::<\2" \
- ";;=\203\203\203\220\377\377\377\1\316\316\316\205::<\1kkm\230\377\377" \
- "\377\3\266\266\27099;;;=\204::<\1\316\316\316\230\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\202\377\377\377\3\265\265\267::<;" \
- ";=\204::<\202;;=\202::<\202;;=\1\265\265\265\237\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\236\377\377\377\5\234\234\234::<;;=::<;;=\202" \
- "::<\3;;=FFH\332\332\332\220\377\377\377\1\234\234\234\205::<\1\234\234" \
- "\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>" \
- "\4\215\307\77\214\304\77\213\310\77\333\355\303\202\377\377\377\1\376" \
- "\377\375\217\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\213\377\377\377" \
- "\5\377\377\373\377\376\377\377\377\377\375\377\374\376\377\377\202\376" \
- "\376\376\22\260\331{\212\307>\214\306>\215\305>\215\305@\215\307\77\215" \
- "\307=\214\305@\214\306>\215\306A\214\306>\213\307C\214\306>\214\304;" \
- "\213\307A\222\312K\357\370\345\377\377\375\202\377\377\377\15\377\375" \
- "\376\377\377\375\376\376\376\377\377\375\361\367\351\222\311J\213\310" \
- "\77\214\305B\215\310<\213\305=\216\306\77\212\307<\214\305B\202\214\306" \
- ">\6\216\306\77\215\305@\215\306A\214\305@\215\305<\333\356\301\202\377" \
- "\376\377\3\377\377\375\377\377\377\377\376\377\225\377\377\377\1``b\202" \
- "::<\6;;=::<;;=::<FFH\331\331\333\233\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\206\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\205\205\207\203::<\1\204\204\206\221\377\377\377\1\316\316\316\205" \
- "::<\1kkm\231\377\377\377\1GGI\203;;=\202::<\3\235\235\237\377\377\377" \
- "\376\376\376\233\377\377\377\2\376\376\376SSU\203::<\5;;=99;llnkkm::" \
- "<\202;;=\202::<\1SSU\237\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\224\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\203\377" \
- "\377\377\4\376\376\376\266\266\270::<;;=\203::<\5""99;::<__a\377\377" \
- "\377\376\376\376\216\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\10\216\306" \
- "\77\215\306A\214\305@\224\310J\360\371\350\377\377\377\377\376\377\376" \
- "\377\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240" \
- "\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3" \
- "\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305" \
- ">\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\212\377\377\377" \
- "\1\377\377\375\202\377\377\377\2\377\376\377\377\377\377\202\376\377" \
- "\377\25\377\377\375\370\373\362\223\312K\212\307>\215\305>\216\306A\212" \
- "\307<\214\305B\215\307\77\214\305@\214\306>\214\305@\212\306@\215\307" \
- "=\216\306A\215\305>\214\306<\252\324n\376\377\377\376\376\376\377\376" \
- "\377\202\377\377\375\4\377\376\377\376\376\377\252\324n\215\306A\202" \
- "\214\306>\21\214\305@\215\307\77\215\305>\212\307>\214\306<\213\304A" \
- "\215\307=\214\304=\215\307\77\212\307>\214\306>\277\337\226\377\376\377" \
- "\376\377\375\377\377\375\377\377\377\376\376\376\225\377\377\377\3\234" \
- "\234\236::<;;=\204::<\4;;=\265\265\267\377\377\377\376\376\376\204\377" \
- "\377\377\202\376\376\376\202\377\377\377\1\376\376\376\225\377\377\377" \
- "\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\202\377\377\377\3\250\250\250::<\204\204\206\205\377\377\377\1\376" \
- "\376\376\214\377\377\377\1\316\316\316\205::<\1kkm\226\377\377\377\1" \
- "\376\376\376\202\377\377\377\2kkm99;\202::<\4;;=::<\204\204\206\376\376" \
- "\376\202\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376\203" \
- "\377\377\377\2\376\376\376\265\265\265\202::<\1;;=\202::<\3;;=\316\316" \
- "\320\316\316\316\204::<\3;;=::<\266\266\266\236\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\226\377\377\377\202\376\376\376\2\377\377\377" \
- "\376\376\376\205\377\377\377\4\376\376\376\251\251\253;;=99;\202::<\4" \
- "<<>99;::<\250\250\252\217\377\377\377\1\234\234\234\205::<\1\234\234" \
- "\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214" \
- "\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\220\214\306>" \
- "\202\214\305@\6\212\306@\215\307\77\243\321d\377\377\375\377\375\377" \
- "\376\377\377\216\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\211\377\377" \
- "\377\2\376\377\377\377\377\375\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\6\376\377\372\376\377\377\377\376\377\331\357\301\213\304\77" \
- "\215\307=\202\214\305@\25\214\305B\214\306<\215\305@\212\307<\214\306" \
- ">\216\306=\212\307>\212\306B\214\305@\215\306E\212\306@\313\347\255\376" \
- "\377\375\376\376\377\376\377\377\377\376\377\377\377\377\333\355\305" \
- "\212\307>\216\306\77\215\307\77\202\214\306>\1\215\307\77\202\214\306" \
- ">\13\215\305<\212\306@\212\307<\215\307\77\211\306=\213\307A\233\314" \
- "V\370\373\362\377\377\375\377\377\377\376\377\377\202\377\377\375\2\374" \
- "\377\377\377\375\376\222\377\377\377\3\363\363\363GGI::<\202;;=\202:" \
- ":<\2;;=\234\234\234\214\377\377\377\1\376\376\376\221\377\377\377\1\376" \
- "\376\376\202\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377" \
- "\377\377\3\376\376\376\377\377\377\316\316\316\203\377\377\377\1\376" \
- "\376\376\203\377\377\377\1\376\376\376\213\377\377\377\1\316\316\316" \
- "\205::<\1kkm\227\377\377\377\5\376\376\376\377\377\377\235\235\237::" \
- "<;;=\203::<\2lln\376\376\376\203\377\377\377\1\376\376\376\224\377\377" \
- "\377\13\376\376\376\377\377\377\376\376\376\377\377\377RRR::<99;::<;" \
- ";=::<kkm\202\377\377\377\1__a\203;;=\202::<\1kkk\236\377\377\377\1\234" \
- "\234\236\205::<\1\234\234\234\241\377\377\377\2\204\204\204;;=\202::" \
- "<\5""99;::<;;=FFH\363\363\363\216\377\377\377\1\234\234\234\205::<\1" \
- "\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306" \
- ">\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>" \
- "\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\221" \
- "\214\306>\5\213\307A\216\306\77\212\307<\214\306>\277\337\223\220\377" \
- "\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377" \
- "\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306" \
- ">\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\211\377\377\377\4\376\377\377" \
- "\377\377\375\377\375\377\377\377\377\202\377\377\375\202\377\376\377" \
- "\202\376\377\377\22\377\376\377\262\331~\213\304\77\213\310\77\216\306" \
- "A\212\307<\215\306A\214\304=\213\310\77\214\305@\215\304B\214\305B\214" \
- "\306<\212\307>\212\307<\216\306A\221\312I\370\373\362\203\377\377\377" \
- "\13\370\373\364\226\310K\214\306>\212\307>\215\304B\214\306>\215\306" \
- "A\213\304\77\215\306A\214\306>\215\305@\202\212\306@\13\215\307\77\213" \
- "\310=\220\303@\336\362\315\377\376\377\377\377\377\374\377\377\377\376" \
- "\377\377\377\377\376\376\374\376\377\375\223\377\377\377\1\204\204\206" \
- "\203::<\4""99;;;=::<kkm\211\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\221\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\237\377\377\377\1\316\316\316\205::<\1kkm\231\377\377\377\4\234" \
- "\234\236;;=::<;;=\202::<\3jjl\377\377\377\376\376\376\232\377\377\377" \
- "\10\265\265\265:::::<;;=::<99;::<\316\316\316\202\377\377\377\1\265\265" \
- "\267\204::<\3;;=::<\316\316\316\235\377\377\377\1\234\234\236\205::<" \
- "\1\234\234\234\241\377\377\377\2\363\363\363__a\203::<\4;;=::<;;=\234" \
- "\234\236\216\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\220\214\306>\10\215\304B\214\306" \
- "<\214\305@\215\305@\212\306@\215\305>\323\354\265\377\376\377\216\377" \
- "\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377" \
- "\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306" \
- ">\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\212\377\377\377\3\375\377\376" \
- "\377\377\377\377\377\375\202\377\377\377\26\377\377\375\375\377\374\376" \
- "\377\377\377\376\377\377\377\375\365\375\362\225\311K\212\306@\214\306" \
- ">\214\305@\212\306@\216\306=\211\306;\215\306A\214\306>\215\307\77\217" \
- "\304@\214\306>\212\307>\215\305@\214\305@\262\327z\203\377\377\377\13" \
- "\260\331{\213\310\77\214\305B\214\305@\215\305@\215\307\77\212\307<\216" \
- "\306A\213\305;\214\305@\215\305>\202\214\306>\11\215\305@\214\306<\276" \
- "\340\224\377\376\375\377\377\375\376\377\377\377\376\375\376\377\375" \
- "\377\376\377\202\377\377\377\1\376\377\375\221\377\377\377\1\346\346" \
- "\346\206::<\2:::\346\346\346\202\377\377\377\1\376\376\376\276\377\377" \
- "\377\1\316\316\316\205::<\1kkm\216\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\207\377\377\377\3\234\234\236::<;;=\203::<\1k" \
- "km\226\377\377\377\1\376\376\376\204\377\377\377\2\376\376\376lln\205" \
- "::<\1``b\204\377\377\377\1SSS\205::<\1kkm\235\377\377\377\1\234\234\236" \
- "\205::<\1\234\234\234\242\377\377\377\2\316\316\316:::\202::<\5;;=::" \
- "<;;=FFH\363\363\363\206\377\377\377\1\376\376\376\206\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\210\214\306>\27\215\306A\212\307>\215\305>\215\305@\215" \
- "\307=\217\304B\214\306<\214\305@\215\307\77\215\305@\215\307\77\214\305" \
- "@\216\306\77\211\310<\226\312L\347\364\332\377\377\377\377\376\377\377" \
- "\377\375\374\377\377\377\376\377\376\376\376\376\377\377\207\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\221\377\377\377\1\377\377\375\203\377" \
- "\377\377\5\333\355\303\214\306>\212\307<\216\306A\214\305@\202\214\306" \
- ">\15\215\305@\214\306>\212\306@\213\310\77\215\305>\216\306A\211\306" \
- "=\212\306@\212\307<\334\354\305\377\377\375\335\354\303\212\307>\210" \
- "\214\306>\10\216\306A\212\307;\215\306A\216\306A\214\305@\241\321a\371" \
- "\374\361\375\376\377\223\377\377\377\1\376\376\376\204\377\377\377\2" \
- "\376\376\376\234\234\234\203::<\1""99;\202::<\1\234\234\234\302\377\377" \
- "\377\1\316\316\316\205::<\1kkm\217\377\377\377\1\376\376\376\202\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377\377\3\376" \
- "\376\376\377\377\377xxz\202::<\5""99;::<;;=xxz\376\376\377\232\377\377" \
- "\377\3\317\317\31799;;;=\202::<\5;;=::<\265\265\265\377\377\377\376\376" \
- "\376\202\377\377\377\2\265\265\265;;=\202::<\203;;=\1\332\332\332\203" \
- "\377\377\377\1\376\376\376\230\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\242\377\377\377\4\376\376\376\204\204\204::<;;=\202::<\3;;=" \
- "::<\266\266\266\207\377\377\377\1\376\376\376\205\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\211\214\306>\27\216\306A\214\306>\212\306@\214\306<\213\310" \
- "\77\215\305@\215\307\77\213\305=\216\306\77\212\307;\212\306@\215\305" \
- ">\215\306A\212\307>\245\320d\367\375\361\376\377\377\377\376\377\377" \
- "\377\377\376\376\377\377\376\377\375\377\376\377\377\375\206\377\377" \
- "\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252" \
- "\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214" \
- "\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\221\377\377\377\6\376\376\376\377\376" \
- "\377\377\377\377\375\377\376\376\377\377\270\333\207\203\214\306>\17" \
- "\211\306=\212\307<\214\306<\214\305@\215\307\77\214\305@\216\305C\214" \
- "\306>\212\310A\215\305@\216\306\77\223\312K\360\371\346\222\311I\214" \
- "\305@\210\214\306>\10\214\305@\212\307>\214\305@\216\306A\215\307=\350" \
- "\364\334\375\377\376\377\376\377\225\377\377\377\7\376\376\376\377\377" \
- "\377\376\376\376\377\377\377SSS::<;;=\203::<\5FFH\364\364\364\376\376" \
- "\376\377\377\377\376\376\376\277\377\377\377\1\316\316\316\205::<\1k" \
- "km\222\377\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377" \
- "\377SSU\205::<\1\234\234\236\202\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\220\377\377\377\1\376\376\376\204\377\377\377\2kk" \
- "m;;=\202::<\5;;=::<SSU\377\377\377\376\376\376\204\377\377\377\7SSU:" \
- ":<;;=::<;;=::<\205\205\205\234\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\240\377\377\377\1\376\376\376\202\377\377\377\1\346\346\346" \
- "\202::<\1;;=\202::<\2;;=__a\205\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236" \
- "\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305" \
- "@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p" \
- "\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\27" \
- "\214\304=\215\305>\213\307A\212\306@\214\305B\215\305<\213\310=\215\307" \
- "\77\215\304B\214\306<\213\307A\215\305>\216\306A\212\306@\212\307>\270" \
- "\332\204\377\376\377\377\377\377\377\376\377\376\376\374\377\377\373" \
- "\377\376\377\377\377\375\206\377\377\377\213\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\223\377\377\377\1\377\377\375\202\377\377\377\2\371\372\364\232\315" \
- "W\202\214\305@\4\214\306<\215\307\77\214\305B\215\306C\202\215\306A\1" \
- "\214\306<\202\212\307>\6\215\305@\212\307>\215\305>\212\306B\216\306" \
- "A\212\307>\210\214\306>\10\214\305B\215\307\77\214\306<\214\306>\304" \
- "\341\237\377\377\377\377\376\377\377\377\375\220\377\377\377\1\376\376" \
- "\376\203\377\377\377\1\376\376\376\203\377\377\377\10\301\301\301::<" \
- ";;=99;;;=::<99;\234\234\236\207\377\377\377\1\376\376\376\273\377\377" \
- "\377\1\316\316\316\205::<\1kkm\216\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\376\376\376\377\377\377\315" \
- "\315\315\202;;=\203::<\6;;=\265\265\267\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\225\377\377\377\2\376\376\376\317\317\317\203::<\4;" \
- ";=::<;;=\264\264\264\206\377\377\377\10\234\234\234;;=::<;;=99;;;=::" \
- "<\346\346\346\233\377\377\377\1\234\234\236\205::<\1\234\234\234\237" \
- "\377\377\377\1\376\376\376\204\377\377\377\1\204\204\206\202::<\6;;=" \
- "99;;;=::<\346\346\346\376\376\376\204\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\22\215\307" \
- "\77\212\307>\216\306A\212\304<\215\307\77\215\305@\216\306\77\213\307" \
- "A\214\306>\214\305@\215\307\77\213\310=\212\307>\214\306>\214\306<\214" \
- "\306>\216\306\77\324\353\267\202\376\376\376\3\377\377\377\376\376\377" \
- "\376\377\375\207\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377" \
- "\377\3\376\377\377\377\377\377\376\377\375\202\377\377\377\7\377\376" \
- "\377\341\363\315\215\305@\214\305@\215\306A\215\305@\216\306\77\202\214" \
- "\306>\12\214\305B\212\307<\213\304A\213\310=\216\306A\211\306;\213\310" \
- "=\214\305@\212\307>\215\305>\210\214\306>\10\215\307\77\214\304=\212" \
- "\307>\243\322b\377\377\377\376\377\377\377\376\377\377\377\375\226\377" \
- "\377\377\4\376\376\376\377\377\377\204\204\206;;=\203::<\3""99;;;=\364" \
- "\364\364\205\377\377\377\1\376\376\376\275\377\377\377\1\316\316\316" \
- "\205::<\1kkm\217\377\377\377\202\376\376\376\202\377\377\377\1\376\376" \
- "\376\203\377\377\377\4\376\376\376xxz;;=99;\202;;=\4::<;;=\346\346\346" \
- "\376\376\376\204\377\377\377\1\376\376\376\224\377\377\377\1xxz\203:" \
- ":<\3;;=::<SSU\203\377\377\377\1\376\376\376\203\377\377\377\2\363\363" \
- "\363FFH\202::<\4;;=99;::<\204\204\206\233\377\377\377\1\234\234\236\205" \
- "::<\1\234\234\234\244\377\377\377\1\316\316\316\202;;=\5::<;;=99;;;=" \
- "\250\250\252\203\377\377\377\1\376\376\376\210\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\7\213\305=\214\306<\210\306\77\216\306\77\215" \
- "\307=\214\306>\215\307\77\202\214\306>\14\215\307\77\214\305B\214\306" \
- "<\212\307<\214\305@\216\306\77\215\305>\214\305@\224\313L\352\364\331" \
- "\374\377\377\377\376\377\211\377\377\377\213\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\222\377\377\377\1\376\377\377\202\377\377\377\24\376\376\374\376\377" \
- "\375\377\375\377\277\337\224\214\306>\212\307>\215\307\77\214\304=\215" \
- "\307=\213\304A\214\306<\212\307>\215\307\77\214\305@\213\304\77\215\307" \
- "\77\215\305@\214\304=\215\305<\215\306A\210\214\306>\1\212\307>\202\215" \
- "\306A\4\350\365\333\377\375\376\377\376\377\375\376\377\226\377\377\377" \
- "\1\376\376\376\202\377\377\377\3TTV::<99;\202;;=\4::<\203\203\203\377" \
- "\377\377\376\376\376\302\377\377\377\1\316\316\316\205::<\1kkm\222\377" \
- "\377\377\1\376\376\376\204\377\377\377\3\300\300\302;;=::<\202;;=\202" \
- "::<\2```\376\376\376\227\377\377\377\7\376\376\376\377\377\377\346\346" \
- "\346;;=99;::<;;=\202::<\3\251\251\251\377\377\377\376\376\376\206\377" \
- "\377\377\1\234\234\234\202::<\1;;=\202::<\2;;=\346\346\346\232\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\235\377\377\377\1\376\376\376" \
- "\207\377\377\377\11SSU::<;;=99;<<>::<xxz\377\377\377\376\376\376\212" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\210\214\306>\25\213\307A\216\306A\232\315" \
- "W\215\306C\212\306@\214\305@\212\307;\216\306A\215\305>\215\307\77\214" \
- "\305@\215\307\77\214\306>\214\305@\212\306B\213\307C\214\306>\215\305" \
- "@\232\315V\372\374\367\376\376\376\202\377\377\375\1\376\376\376\206" \
- "\377\377\377\213\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377\377\5\377\376" \
- "\377\376\377\377\377\375\376\377\376\377\376\377\377\202\377\377\377" \
- "\10\370\373\362\233\314V\213\307A\211\306=\215\307\77\212\307<\212\306" \
- "@\215\305<\202\214\306>\7\215\307=\215\306A\214\305@\212\307>\216\306" \
- "A\212\306@\215\307=\210\214\306>\10\212\307>\212\307<\313\347\254\376" \
- "\377\377\377\377\377\377\376\377\376\377\377\377\377\375\223\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\332\332\332\202::<\1;;=\203::<\1" \
- "\302\302\302\203\377\377\377\5\376\376\376\377\377\377\376\376\376\377" \
- "\377\377\376\376\376\274\377\377\377\1\316\316\316\205::<\1kkm\217\377" \
- "\377\377\1\376\376\376\206\377\377\377\3\332\332\334FFH;;=\205::<\1\265" \
- "\265\265\202\377\377\377\1\376\376\376\224\377\377\377\1\376\376\376" \
- "\202\377\377\377\1\205\205\207\202::<\1;;=\202::<\2GGI\363\363\363\202" \
- "\377\377\377\1\376\376\376\205\377\377\377\1\363\363\363\202::<\1;;=" \
- "\202::<\2""99;\234\234\234\203\377\377\377\1\376\376\376\226\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\234\377\377\377\1\376\376\376" \
- "\210\377\377\377\3\222\222\222::<99;\202;;=\5""99;GGI\376\376\376\377" \
- "\377\377\376\376\376\211\377\377\377\1\234\234\234\205::<\1\234\234\236" \
- "\266\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305" \
- "@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p" \
- "\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306>\10" \
- "\213\307A\214\306>\331\356\303\232\315W\215\305>\215\306A\214\305B\214" \
- "\306>\202\214\305@\7\213\310=\214\306>\215\304B\215\306A\211\306;\213" \
- "\310\77\214\305@\202\215\307\77\2\257\326{\376\377\373\202\377\377\377" \
- "\1\377\377\375\206\377\377\377\213\214\306>\3\215\305>\214\306>\305\342" \
- "\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306" \
- ">\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215" \
- "\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\221\377\377" \
- "\377\6\377\377\373\377\377\375\377\377\377\376\376\377\377\376\377\373" \
- "\377\374\202\377\376\377\4\336\362\315\220\303@\213\310=\215\307\77\202" \
- "\212\306@\1\215\305@\202\214\306>\7\213\305=\214\306>\213\305=\214\305" \
- "@\213\310\77\212\306@\213\307A\210\214\306>\10\215\307\77\252\324p\377" \
- "\377\375\376\377\377\377\377\375\377\377\377\377\376\377\377\377\375" \
- "\220\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\265\265\265\204::<\5;;=::<\363\363\363\377\377\377\376\376" \
- "\376\302\377\377\377\1\316\316\316\205::<\1kkm\225\377\377\377\2\317" \
- "\317\317FFH\206::<\1SSU\204\377\377\377\1\376\376\376\225\377\377\377" \
- "\2\346\346\346;;=\203::<\3;;=::<\234\234\236\202\377\377\377\1\376\376" \
- "\376\207\377\377\377\2\204\204\206;;=\204::<\2FFF\362\362\362\231\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377\1\301\301" \
- "\301\202::<\6;;=::<;;=::<\347\347\347\376\376\376\212\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\210\214\306>\27\214\305@\215\305<\342\362\315\353\365\334" \
- "\223\312K\215\305<\212\306@\215\305<\212\307>\215\306A\214\306>\212\307" \
- ">\215\307\77\215\304B\215\307\77\215\305@\214\306>\215\305>\214\305@" \
- "\215\305<\315\345\253\377\377\375\376\377\377\207\377\377\377\213\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\221\377\377\377\14\376\377\377\376\376\377\377" \
- "\377\377\377\377\373\376\377\375\377\376\377\376\377\377\377\377\377" \
- "\377\376\375\276\340\224\214\306<\215\305@\202\214\306>\12\215\305>\214" \
- "\305@\215\305@\214\305@\213\310\77\214\306>\216\306\77\211\305\77\215" \
- "\307=\214\305@\210\214\306>\4\223\312K\360\367\347\377\377\377\377\377" \
- "\375\232\377\377\377\2\376\376\376\234\234\236\204::<\2;;=___\234\377" \
- "\377\377\1\376\376\376\203\377\377\377\1\376\376\376\244\377\377\377" \
- "\1\316\316\316\205::<\1kkm\202\377\377\377\1\376\376\376\216\377\377" \
- "\377\4\376\376\376\377\377\377\347\347\347\204\204\204\203::<\6;;=::" \
- "<;;=::<;;=\301\301\303\226\377\377\377\1\376\376\376\203\377\377\377" \
- "\1\203\203\205\202;;=\5::<;;=::<GGG\363\363\363\206\377\377\377\1\376" \
- "\376\376\203\377\377\377\3\347\347\34799;;;=\202::<\202;;=\1\234\234" \
- "\236\231\377\377\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377" \
- "\1\363\363\363\202::<\1""99;\203::<\1\316\316\316\213\377\377\377\1\234" \
- "\234\234\204::<\2;;=kkm\203\234\234\236\2\235\235\237\234\234\234\220" \
- "\234\234\236\204\234\234\234\4\235\235\235\234\234\234\234\234\236\346" \
- "\346\350\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4" \
- "\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210\214\306" \
- ">\40\213\307A\215\305>\341\360\317\377\375\376\324\353\267\215\304B\214" \
- "\306>\215\307=\214\305@\212\307>\212\307<\215\305<\215\306A\214\306>" \
- "\214\306<\212\306@\214\305@\215\307\77\216\306=\212\306B\214\306>\352" \
- "\364\333\377\376\377\377\377\377\377\376\377\377\377\377\377\377\375" \
- "\376\377\373\375\376\377\377\376\377\214\306>\215\307\77\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214\306" \
- ">\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232\377" \
- "\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305" \
- "@\214\306>\214\305@\232\377\377\377\7\374\377\375\242\321a\216\306A\212" \
- "\307>\214\306>\215\307\77\212\307<\210\214\306>\16\215\307\77\214\307" \
- ";\213\304\77\216\306A\214\305B\215\307\77\215\305>\212\307>\320\345\254" \
- "\374\377\377\377\376\377\377\377\375\377\376\377\375\377\372\223\377" \
- "\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377\377\377kkm\203" \
- "::<\3<<>::<\221\221\221\305\377\377\377\1\316\316\316\204::<\2;;=jjl" \
- "\217\377\377\377\16\316\316\316\300\300\300\234\234\234__a::<;;=::<;" \
- ";=::<99;;;=::<;;=\204\204\206\232\377\377\377\1\362\362\362\202;;=\202" \
- "::<\3""99;::<\235\235\235\212\377\377\377\12\376\376\376\377\377\377" \
- "\205\205\20799;;;=::<;;=::<GGI\376\376\376\230\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\246\377\377\377\10EEG::<;;=::<99;;;=\234\234" \
- "\234\377\377\377\202\376\376\376\202\377\377\377\1\376\376\376\205\377" \
- "\377\377\1\234\234\234\205::<\2;;=99;\202;;=\2""99;;;=\221::<\1""99;" \
- "\203::<\3;;=::<\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\210\214\306>\202\214\306<\32\342\361\322\377\377\377\377\377" \
- "\375\266\334\205\212\306B\215\307\77\212\306@\220\306=\214\306>\215\307" \
- "\77\214\305B\213\305=\216\306\77\215\307\77\215\305<\212\306B\215\306" \
- "A\215\305@\216\306=\232\315V\371\373\360\377\377\375\377\377\377\375" \
- "\376\377\377\375\377\376\376\377\202\377\377\377\2\214\305@\212\307>" \
- "\211\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\233\377\377\377\5\347\365\334\211\306=" \
- "\215\305>\216\306=\214\305@\211\214\306>\2\215\304B\212\307>\202\214" \
- "\306>\14\215\306A\214\306<\215\305@\252\324p\374\377\377\377\377\377" \
- "\377\375\376\377\376\377\376\376\377\377\377\375\377\377\377\377\375" \
- "\377\222\377\377\377\1\376\376\376\203\377\377\377\4\376\376\376lln:" \
- ":<;;=\203::<\2\235\235\235\376\376\376\304\377\377\377\1\316\316\316" \
- "\205::<\202;;=\2::<;;=\202::<\1;;=\211::<\202;;=\204::<\1""99;\202::" \
- "<\5;;=::<;;=__a\376\376\376\224\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\235\235\235\206::<\3\346\346\346\377\377\377\376\376\376\207\377" \
- "\377\377\5\376\376\376\377\377\377\376\376\376\346\346\350;;=\203::<" \
- "\3;;=::<\265\265\265\230\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\246\377\377\377\1lln\202::<\4""99;;;=99;\234\234\234\213\377\377\377" \
- "\1\234\234\234\203::<\7;;=::<;;=::<;;=::<;;=\222::<\7;;=99;;;=::<;;=" \
- "::<\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\13\216\306A\213\310\77\343\361\320\377\377\375\375\377\376" \
- "\371\374\361\242\320c\213\310\77\216\306\77\214\306>\215\306A\202\214" \
- "\305@\2\216\306A\213\305=\204\214\306>\11\213\307A\216\306A\212\307>" \
- "\260\331y\377\376\377\376\377\375\377\377\373\376\377\377\377\377\377" \
- "\202\377\376\377\2\212\311=\215\306A\211\214\306>\3\215\305>\214\306" \
- ">\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207" \
- "\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\231" \
- "\377\377\377\6\377\376\377\377\377\373\377\376\377\305\342\240\212\310" \
- "\77\214\304=\202\215\305@\210\214\306>\4\215\305>\213\305=\212\306@\215" \
- "\306A\202\214\306>\10\222\312M\370\373\362\377\376\377\377\375\376\377" \
- "\376\377\377\377\377\376\377\375\377\377\377\202\377\376\377\221\377" \
- "\377\377\1\376\376\376\205\377\377\377\2::<;;=\202::<\202;;=\3\300\300" \
- "\300\377\377\377\376\376\376\235\377\377\377\1\376\376\376\245\377\377" \
- "\377\1\316\316\316\207::<\5;;=::<;;=::<;;=\210::<\202;;=\2""99;;;=\202" \
- "::<\3;;=::<;;=\202::<\3;;=xxz\363\363\363\225\377\377\377\3\376\376\376" \
- "\377\377\377\376\376\376\202\377\377\377\3\363\363\363FFH::<\202;;=\202" \
- "::<\1\204\204\206\205\377\377\377\1\376\376\376\205\377\377\377\1\376" \
- "\376\376\202\377\377\377\1kkm\202::<\1;;=\202::<\1SSU\230\377\377\377" \
- "\1\234\234\236\205::<\1\234\234\234\244\377\377\377\3\376\376\376\377" \
- "\377\377xxz\202::<\1;;=\202::<\3xxx\377\377\377\376\376\376\211\377\377" \
- "\377\1\234\234\234\203::<\1;;=\202::<\1;;=\224::<\5;;=99;;;=::<;;=\202" \
- "::<\1\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214" \
- "\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306" \
- ">\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\3\214\305@\214\306<\343\361\316\202\377\377\377\26\377\376" \
- "\374\353\365\335\223\312K\211\305\77\215\307=\215\306C\211\306;\214\306" \
- ">\215\305@\215\307\77\214\305@\213\307A\214\306>\212\307<\216\306\77" \
- "\212\306B\215\305>\212\306@\304\341\236\377\376\377\375\377\376\377\377" \
- "\375\203\377\377\377\2\212\306@\214\306<\211\214\306>\3\215\305>\214" \
- "\306>\305\342\240\215\377\377\377\4\252\324p\214\306>\215\305>\214\305" \
- "@\207\214\306>\3\214\305@\214\306>\214\305@\232\377\377\377\4\252\324" \
- "p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\231\377\377\377\2\377\377\373\376\377\377\202\377\377\377\4\241\321" \
- "c\215\306A\215\305>\213\310\77\210\214\306>\20\215\305@\215\307=\213" \
- "\310\77\214\304;\216\306\77\213\310\77\333\355\303\377\375\376\377\377" \
- "\375\377\376\377\377\377\377\375\377\374\376\377\377\377\377\377\377" \
- "\377\375\376\376\376\222\377\377\377\1\376\376\376\204\377\377\377\206" \
- "::<\2\316\316\316\376\376\376\234\377\377\377\1\376\376\376\247\377\377" \
- "\377\1\316\316\316\204::<\1;;=\205::<\1;;=\212::<\4""99;;;=::<;;=\203" \
- "::<\1;;=\202::<\1\233\233\233\234\377\377\377\3\235\235\23799;;;=\203" \
- "::<\2;;=\346\346\346\203\377\377\377\1\376\376\376\204\377\377\377\3" \
- "\376\376\376\377\377\377\376\376\376\203\377\377\377\4\316\316\320;;" \
- "=::<;;=\202::<\2;;=\264\264\264\227\377\377\377\1\234\234\236\205::<" \
- "\1\234\234\234\246\377\377\377\2\234\234\236;;=\203::<\2;;=kkk\213\377" \
- "\377\377\1\234\234\234\204::<\3;;=::<;;=\225::<\2;;=99;\202::<\3;;=:" \
- "::\316\316\316\231\377\377\377\3\214\305@\214\306>\214\305@\207\214\306" \
- ">\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214\306>" \
- "\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\210" \
- "\214\306>\14\215\307\77\215\305@\340\361\315\376\376\376\377\376\377" \
- "\377\377\375\377\377\377\323\353\267\212\307>\215\305@\214\305@\214\311" \
- "@\202\214\306>\22\212\307>\215\305@\214\306>\212\306@\214\305@\215\305" \
- ">\215\307=\214\306>\214\304=\215\307\77\341\362\316\377\376\377\377\377" \
- "\377\376\376\376\377\377\375\375\376\377\217\307@\212\306@\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214\306" \
- ">\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232\377" \
- "\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305" \
- "@\214\306>\214\305@\232\377\377\377\7\377\376\377\376\377\377\377\377" \
- "\377\352\364\331\212\307<\215\307=\212\307>\211\214\306>\13\212\306@" \
- "\214\306<\216\306A\214\305@\252\322q\376\376\377\376\377\373\377\376" \
- "\377\376\376\377\377\377\375\376\377\377\203\377\377\377\1\376\377\375" \
- "\227\377\377\377\202::<\202;;=\3::<;;=\316\316\316\233\377\377\377\1" \
- "\375\375\375\251\377\377\377\1\316\316\316\211::<\1;;=\213::<\3;;=::" \
- "<;;=\204::<\3""99;\205\205\207\346\346\346\233\377\377\377\4\376\376" \
- "\376\364\364\364FFH;;=\202::<\202;;=\1\204\204\204\215\377\377\377\1" \
- "\376\376\376\202\377\377\377\7kkm::<99;::<;;=99;TTV\227\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\246\377\377\377\1\234\234\236\202:" \
- ":<\202;;=\2::<kkk\202\377\377\377\3\376\376\376\377\377\377\376\376\376" \
- "\206\377\377\377\1\234\234\234\203::<\1;;=\202::<\2;;=::<\202;;=\223" \
- "::<\2""99;;;=\202::<\2;;;\316\316\316\231\377\377\377\3\214\305@\214" \
- "\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251" \
- "\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202" \
- "\214\306>\1\214\305@\210\214\306>\202\214\305@\15\341\362\316\377\377" \
- "\375\376\377\375\377\377\377\373\377\374\377\376\377\271\332\211\212" \
- "\307>\212\307<\214\305B\214\305@\216\306\77\212\307>\202\215\307\77\11" \
- "\214\305B\215\306A\212\311=\214\303A\214\306>\215\306A\212\307>\225\311" \
- "K\371\372\362\202\377\377\375\202\377\377\377\2\214\305@\215\306A\211" \
- "\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p" \
- "\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305" \
- "@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>" \
- "\3\214\305@\214\306>\214\305@\231\377\377\377\10\376\377\377\377\376" \
- "\377\377\377\375\377\375\376\331\356\303\214\306>\214\305B\215\307\77" \
- "\210\214\306>\12\215\305>\212\306B\215\304B\214\306>\215\307=\224\310" \
- "J\364\370\351\376\376\374\375\377\372\377\377\375\203\377\377\377\3\377" \
- "\376\377\377\377\377\376\377\375\221\377\377\377\3\376\376\376\377\377" \
- "\377\376\376\376\203\377\377\377\7::<;;=99;::<;;=::<\315\315\315\232" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\246\377\377" \
- "\377\1\316\316\316\204::<\1;;=\202::<\1;;=\203::<\1;;=\210::<\1;;=\202" \
- "::<\1;;=\202::<\4``b\233\233\235\347\347\351\376\376\376\235\377\377" \
- "\377\2\265\265\265;;=\202::<\1;;=\202::<\1\332\332\332\216\377\377\377" \
- "\3\376\376\376\377\377\377\302\302\302\206::<\1\315\315\315\226\377\377" \
- "\377\1\234\234\236\205::<\1\234\234\234\245\377\377\377\2\376\376\376" \
- "\235\235\237\205::<\1jjj\203\377\377\377\3\376\376\376\377\377\377\376" \
- "\376\376\205\377\377\377\1\234\234\234\204::<\2;;=kkm\202\234\234\236" \
- "\1\233\233\235\223\234\234\234\202\235\235\235\1\233\233\233\203\234" \
- "\234\234\1\346\346\346\231\377\377\377\3\214\305@\214\306>\214\305@\207" \
- "\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\210\214\306>\17\212\307>\216\306A\342\360\315\376\377\377\376\376\374" \
- "\375\377\376\377\376\377\377\376\374\377\377\375\242\320d\215\307=\214" \
- "\306>\214\305@\215\305@\212\306@\202\214\305@\17\215\305@\212\307>\215" \
- "\307\77\214\306<\215\306A\213\304\77\215\306A\215\307\77\252\324n\377" \
- "\377\377\375\377\376\377\376\377\377\377\375\212\307<\215\305@\211\214" \
- "\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\4\252\324p\214" \
- "\306>\215\305>\214\305@\207\214\306>\3\214\305@\214\306>\214\305@\232" \
- "\377\377\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214" \
- "\305@\214\306>\214\305@\232\377\377\377\6\376\377\375\377\375\377\367" \
- "\375\363\223\312H\216\306\77\215\305>\212\214\306>\2\215\305@\214\306" \
- ">\202\212\307>\3\214\305@\247\324o\377\376\377\202\377\377\377\2\377" \
- "\376\377\377\377\375\233\377\377\377\2::<;;=\204::<\2\316\316\316\376" \
- "\376\376\236\377\377\377\3\316\316\316;;;:::\230::<\213\377\377\377\1" \
- "\316\316\316\224::<\6kkmlln\205\205\207\234\234\236\301\301\303\363\363" \
- "\363\202\377\377\377\1\376\376\376\202\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\231\377\377\377\1SSS\204::<\2;;=lln\213\377\377" \
- "\377\1\376\376\376\205\377\377\377\2\376\376\376TTV\205::<\1lll\226\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\246\377\377\377\2\233\233" \
- "\235;;=\204::<\2kkk\376\376\376\203\377\377\377\1\376\376\376\206\377" \
- "\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305" \
- "@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324" \
- "p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\210\214\306>\3\212\307>\215\305>\342\362\315" \
- "\202\377\377\377\22\377\376\377\376\377\377\377\377\375\376\377\377\363" \
- "\367\346\225\311K\211\307@\216\306\77\212\307>\215\305@\214\306<\212" \
- "\307>\214\305@\214\306>\212\306@\215\306C\214\304\77\215\307\77\202\214" \
- "\306>\7\212\306@\307\341\240\377\376\377\376\377\372\377\377\377\212" \
- "\307>\215\305>\211\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\4\252\324p\214\306>\215\305>\214\305@\207\214\306>\3\214\305@\214" \
- "\306>\214\305@\232\377\377\377\4\252\324p\214\306>\215\305>\214\305@" \
- "\207\214\306>\3\214\305@\214\306>\214\305@\231\377\377\377\4\377\376" \
- "\377\376\377\375\376\377\377\257\330z\202\214\305@\1\215\307\77\211\214" \
- "\306>\14\212\307>\215\307\77\214\305@\215\305@\212\307>\215\307=\214" \
- "\305B\313\347\252\377\377\377\377\375\377\377\376\377\376\376\376\202" \
- "\376\377\375\231\377\377\377\4GGI;;=::<;;=\202::<\1\233\233\235\237\377" \
- "\377\377\3\316\316\316::<;;=\230::<\213\377\377\377\1\316\316\316\205" \
- "::<\1kkm\202\377\377\377\2\376\376\376\250\250\250\206::<\2FFH\346\346" \
- "\346\210\377\377\377\1\376\376\376\237\377\377\377\1\264\264\266\203" \
- ";;=\4::<;;=;;;\316\316\316\222\377\377\377\1\265\265\265\204::<\3;;=" \
- "::<\316\316\316\203\377\377\377\1\376\376\376\221\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\245\377\377\377\2\376\376\376\235\235\237\205" \
- "::<\1lll\213\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377" \
- "\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214" \
- "\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\205\377\377\377\10\376\377\375\377\377\377\333\355\303\215\305@" \
- "\214\306>\214\306<\214\305@\215\305>\202\214\305@\207\214\306>\6\212" \
- "\306@\214\307;\330\355\304\377\376\377\377\377\377\215\305>\212\214\306" \
- ">\3\215\305>\214\306>\305\342\240\215\377\377\377\17\251\323q\214\306" \
- ">\215\307\77\214\305B\215\307\77\213\305=\215\307\77\214\305@\212\307" \
- ">\215\305@\213\310\77\214\305@\215\305<\214\306>\376\377\377\230\377" \
- "\377\377\6\376\377\377\253\323p\215\305@\213\307A\214\306<\212\306B\202" \
- "\214\306>\4\214\305@\214\306>\212\307>\214\305@\202\214\306>\2\214\305" \
- "@\376\377\375\220\377\377\377\1\377\377\375\202\377\377\377\16\376\377" \
- "\375\377\376\377\377\375\376\374\377\377\377\377\375\376\377\375\377" \
- "\377\377\336\355\304\214\306>\215\306A\214\306>\215\306A\212\306@\216" \
- "\306A\202\214\305@\4\215\307\77\214\306>\215\307\77\214\306>\202\214" \
- "\305@\16\214\306>\215\307\77\214\306>\215\307\77\214\305@\214\305B\222" \
- "\313H\361\370\346\376\377\377\377\377\377\377\376\377\377\377\377\374" \
- "\377\377\377\376\377\230\377\377\377\1kkm\202::<\1""99;\202::<\1\235" \
- "\235\237\233\377\377\377\1\376\376\376\203\377\377\377\1\316\316\316" \
- "\224::<\1;;=\205::<\213\377\377\377\1\316\316\316\205::<\1kkm\204\377" \
- "\377\377\3wwy::<;;=\202::<\4""99;;;=``b\363\363\363\206\377\377\377\1" \
- "\376\376\376\235\377\377\377\4\376\376\376\377\377\377\376\376\376TT" \
- "V\205::<\1lln\223\377\377\377\10\376\376\376SSU;;=::<;;=99;::<lll\205" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\246\377\377\377\1\204\204\206\202::<\1;;=\202::<\3xxx\377\377" \
- "\377\376\376\376\211\377\377\377\1\234\234\234\205::<\1\234\234\236\266" \
- "\377\377\377\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215" \
- "\305>\214\306>\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377" \
- "\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305" \
- "@\343\361\316\205\377\377\377\7\377\375\377\377\377\375\376\377\377\276" \
- "\337\220\213\310\77\213\304A\216\306=\207\214\306>\3\215\307\77\214\306" \
- ">\212\307>\202\215\305>\5\223\312J\361\371\344\377\375\377\212\307<\214" \
- "\305@\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\14" \
- "\376\376\374\252\324n\214\306>\213\305=\215\307\77\214\305@\215\306A" \
- "\214\306>\215\307\77\213\310\77\215\305@\212\307>\202\214\306>\1\214" \
- "\305@\232\377\377\377\3\247\324m\215\305>\214\305@\202\214\306>\1\215" \
- "\307=\202\214\305@\6\214\306<\215\307=\214\305B\215\307\77\214\306>\214" \
- "\305@\224\377\377\377\15\377\377\375\376\376\376\377\377\377\377\376" \
- "\377\376\377\375\377\377\375\372\373\366\222\312M\216\306A\215\305<\214" \
- "\306>\212\307>\215\305<\202\214\306>\2\215\307\77\213\305=\204\214\306" \
- ">\1\214\305@\203\214\306>\14\215\307\77\214\305@\213\304\77\214\305B" \
- "\253\324n\376\376\377\376\377\377\377\376\377\377\377\377\376\377\375" \
- "\377\377\375\376\377\375\227\377\377\377\3lln::<;;=\203::<\2kkm\376\376" \
- "\376\236\377\377\377\2\316\316\316;;=\226::<\3;;=::<kkm\213\377\377\377" \
- "\1\316\316\316\204::<\2;;=kkm\204\377\377\377\3\363\363\363__a;;=\203" \
- "::<\4;;=99;\205\205\207\376\376\376\202\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\376\376\376\236\377\377\377\1\301\301\301\204::<\4;;=" \
- "::<wwy\235\235\237\223\234\234\236\1kkm\204::<\5;;=99;\345\345\345\377" \
- "\377\377\376\376\376\222\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\246\377\377\377\1kkm\204::<\2;;=\234\234\234\213\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377" \
- "\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1" \
- "\214\305@\211\214\306>\2\214\305@\343\361\316\205\377\377\377\2\377\377" \
- "\375\377\375\377\202\377\377\377\1\242\322b\202\214\305@\2\214\305B\215" \
- "\307\77\205\214\306>\12\215\307\77\214\306>\215\306A\214\306>\212\306" \
- "@\215\307=\241\321c\377\377\377\215\304B\212\307>\211\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\5\376\377\375\251\323o\215" \
- "\307\77\214\306>\215\307\77\202\214\305@\2\214\306>\215\307\77\202\214" \
- "\306>\5\213\310\77\215\305>\214\305@\214\306>\377\376\377\230\377\377" \
- "\377\12\377\376\377\247\326p\213\304\77\215\307\77\214\305B\214\306<" \
- "\214\306>\215\307\77\214\305@\214\306>\202\215\307\77\3\214\306>\215" \
- "\306A\216\306\77\223\377\377\377\5\376\377\372\377\377\375\376\376\376" \
- "\377\377\377\377\377\375\202\377\376\377\4\250\325p\212\307<\214\305" \
- "@\215\307\77\202\214\305@\3\214\307;\215\307=\214\306>\202\214\305@\202" \
- "\214\306>\1\215\307\77\207\214\306>\202\214\305@\5\212\307>\307\341\240" \
- "\376\376\374\377\377\377\377\376\377\202\377\377\377\1\376\376\374\227" \
- "\377\377\377\7\234\234\236;;=99;<<>99;::<;;=\237\377\377\377\1\316\316" \
- "\316\223::<\7;;=99;;;=99;::<;;=kkm\213\377\377\377\1\316\316\316\205" \
- "::<\2mmo\376\376\377\204\377\377\377\12\332\332\332FFH;;=::<;;=99;<<" \
- ">::<\266\266\270\376\376\376\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\230\377\377\377\3\376\376\376\377\377\377\376\376" \
- "\376\202\377\377\377\1kkm\205::<\202;;=\224::<\10;;=::<;;=::<;;=88:;" \
- ";=\205\205\205\224\377\377\377\1\234\234\236\205::<\1\234\234\234\246" \
- "\377\377\377\3SSU;;=::<\203;;=\1\234\234\234\206\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306" \
- ">\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1" \
- "\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\205\377\377\377\10\376\376\374\376\377\375\377\375\377\377\377\377" \
- "\367\372\357\224\313L\214\305B\215\305<\203\214\306>\202\215\307\77\204" \
- "\214\306>\6\215\306A\213\307A\214\306>\212\306@\277\337\223\215\305>" \
- "\212\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\2\376\377" \
- "\377\251\322r\202\215\307\77\1\214\305B\202\214\306>\202\215\307\77\7" \
- "\214\306>\215\307\77\214\306>\214\304\77\212\306@\215\307\77\377\376" \
- "\377\230\377\377\377\7\377\377\375\215\305@\214\306>\214\305@\214\306" \
- ">\216\306\77\214\306<\203\214\305@\6\215\306C\215\307=\214\305@\215\306" \
- "A\233\314V\377\377\375\220\377\377\377\5\376\376\376\377\377\377\377" \
- "\376\377\377\375\377\377\377\375\202\376\377\377\21\377\376\377\314\346" \
- "\251\212\306B\215\307=\212\307>\216\306\77\215\306C\212\307>\215\306" \
- "C\214\305@\215\307\77\213\304\77\215\306A\214\306>\214\305@\215\307\77" \
- "\215\306A\203\214\306>\1\215\307\77\202\214\306>\202\215\307\77\10\214" \
- "\306>\214\305@\350\364\334\377\377\375\377\376\377\377\377\377\376\376" \
- "\376\377\376\377\222\377\377\377\1\376\376\376\204\377\377\377\1\301" \
- "\301\301\202::<\2""99;;;=\202::<\1\316\316\316\233\377\377\377\1\376" \
- "\376\376\202\377\377\377\2\316\316\316;;;\222::<\7""99;;;=::<;;=::<9" \
- "9;\204\204\206\213\377\377\377\1\316\316\316\205::<\1jjl\202\377\377" \
- "\377\202\376\376\376\202\377\377\377\1\265\265\267\202::<\202;;=\202" \
- "::<\2FFH\332\332\332\205\377\377\377\1\376\376\376\234\377\377\377\2" \
- "\376\376\376\317\317\317\202::<\1;;=\204::<\3;;=::<;;=\222::<\2""99;" \
- ";;=\202::<\1;;=\203::<\3\346\346\346\377\377\377\376\376\376\221\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\246\377\377\377\1;;=\203" \
- "::<\4;;=::<\316\316\316\376\376\376\203\377\377\377\1\376\376\376\206" \
- "\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214" \
- "\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306>\252" \
- "\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\205" \
- "\377\377\377\203\376\377\377\202\377\376\377\2\341\361\315\214\305@\203" \
- "\215\307\77\202\214\306>\1\215\307\77\203\214\306>\10\214\305@\215\307" \
- "\77\214\306>\212\307>\216\306A\213\305;\214\305@\215\305<\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\214\377\377\377\2\376\377\377\252\324" \
- "p\202\214\306>\3\214\305B\214\306<\215\307\77\203\214\306>\6\214\306" \
- "<\214\307;\217\307@\212\307>\214\305@\376\377\377\231\377\377\377\10" \
- "\215\307=\214\305B\213\304A\216\310@\214\304\77\215\307=\214\305@\215" \
- "\307\77\203\214\306>\3\215\307\77\214\306>\247\324o\222\377\377\377\3" \
- "\377\377\375\377\377\377\377\375\376\203\377\377\377\20\360\371\346\223" \
- "\312K\216\306\77\213\304A\215\306A\213\305=\215\305@\212\307>\215\305" \
- "<\214\305B\214\305@\214\306>\214\306<\214\306>\215\307\77\213\305=\204" \
- "\214\306>\202\215\307\77\203\214\306>\10\215\306A\212\307<\243\321d\377" \
- "\377\373\375\377\376\377\376\377\377\377\377\376\376\374\223\377\377" \
- "\377\5\375\375\375\377\377\377\376\376\376\377\377\377\346\346\346\202" \
- "::<\1;;=\203::<\1\221\221\221\235\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\222\377\377\377\1__a\204::<\2;;=\234\234\234\213\377\377" \
- "\377\1\316\316\316\205::<\3jjl\377\377\377\376\376\376\205\377\377\377" \
- "\2\204\204\206;;=\204::<\3;;=RRT\363\363\363\237\377\377\377\1\376\376" \
- "\376\202\377\377\377\2jjl;;=\206::<\4;;=::<99;;;=\223::<\1;;=\205::<" \
- "\1\204\204\206\203\377\377\377\1\376\376\376\217\377\377\377\1\234\234" \
- "\236\205::<\1\234\234\234\245\377\377\377\3\315\315\315;;=99;\202::<" \
- "\5""99;;;=\346\346\346\377\377\377\376\376\376\211\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\207\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\211\214\306>\2\214\305@\343\361\316\207\377\377\377\202" \
- "\377\377\375\4\376\377\377\377\377\375\303\342\237\212\306@\202\214\305" \
- "@\206\214\306>\7\216\306\77\213\305;\214\305@\216\306A\214\306>\215\307" \
- "\77\213\307A\212\214\306>\3\215\305>\214\306>\305\342\240\215\377\377" \
- "\377\17\252\323k\215\306A\214\306>\215\307\77\214\306>\215\307\77\214" \
- "\305@\214\306>\213\304A\215\306C\214\305@\213\304A\213\310=\214\306<" \
- "\342\357\321\230\377\377\377\6\360\371\346\214\305B\212\307<\215\307" \
- "=\213\305=\215\307\77\202\214\305@\7\215\306A\214\306>\214\306<\214\305" \
- "@\214\306>\214\305@\252\324p\222\377\377\377\11\377\376\377\376\377\377" \
- "\377\377\377\377\377\375\376\376\374\377\377\377\253\323p\215\307\77" \
- "\211\306;\202\215\306A\6\214\306>\214\306<\215\305>\216\305C\215\307" \
- "\77\213\304\77\202\215\307\77\2\215\307=\213\305;\202\215\307\77\2\214" \
- "\306>\215\307\77\205\214\306>\5\215\307\77\212\306@\214\306>\215\307" \
- "\77\304\341\236\202\377\377\377\2\376\376\377\374\377\377\230\377\377" \
- "\377\7SSU;;=99;::<;;=::<FFH\232\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\220\377\377\377\2\376\376\376;;=\202::<\1;;=\202:" \
- ":<\1\316\316\316\213\377\377\377\1\316\316\316\205::<\1kkm\210\377\377" \
- "\377\2__a;;=\204::<\2;;=xxz\202\377\377\377\1\376\376\376\233\377\377" \
- "\377\1\376\376\376\202\377\377\377\2\315\315\315;;=\206::<\2;;=99;\203" \
- ";;=\223::<\1;;=\205::<\6FFH\363\363\363\377\377\377\376\376\376\377\377" \
- "\377\376\376\376\216\377\377\377\1\234\234\236\205::<\1\234\234\234\244" \
- "\377\377\377\4\376\376\376\223\223\22399;;;=\202::<\4;;=EEG\377\377\377" \
- "\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376" \
- "\376\204\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\207\214\306>\4\214\305@\215\305>\214\306" \
- ">\252\324p\251\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1" \
- "\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\206\377\377\377\13\377\376\377\377\377\377\376\377\375\377\377\377" \
- "\377\376\377\376\377\377\253\324l\214\305B\213\304\77\214\305@\215\307" \
- "\77\203\214\306>\11\214\305@\214\306<\216\306=\214\306>\212\306@\215" \
- "\306C\214\304;\212\307>\214\305@\211\214\306>\3\215\305>\214\306>\305" \
- "\342\240\215\377\377\377\1\261\330\177\202\214\306>\2\214\306<\215\306" \
- "A\203\214\306>\7\215\307\77\214\306>\214\306<\215\307=\214\306>\215\306" \
- "C\323\353\267\230\377\377\377\4\340\361\315\215\305@\215\306A\214\305" \
- "@\202\214\306>\2\213\305=\215\306A\202\214\305@\5\214\306>\215\307\77" \
- "\214\306>\214\305@\260\330x\221\377\377\377\3\376\376\376\377\377\373" \
- "\375\377\376\202\377\377\377\25\376\377\377\314\345\253\214\305@\213" \
- "\304\77\216\306\77\212\307>\215\305@\214\306>\214\305@\215\305>\214\305" \
- "@\214\306>\214\306<\214\305@\215\306A\214\305@\215\306C\214\306>\214" \
- "\305@\214\306>\215\307\77\207\214\306>\7\212\306@\220\306=\215\306C\350" \
- "\364\336\376\377\373\377\377\375\376\377\377\230\377\377\377\1\221\221" \
- "\223\203::<\1;;=\202::<\1\265\265\265\230\377\377\377\1\376\376\376\227" \
- "\377\377\377\1\316\316\316\202::<\1;;=\203::<\1\363\363\363\213\377\377" \
- "\377\1\316\316\316\205::<\1kkm\204\377\377\377\1\376\376\376\203\377" \
- "\377\377\2\346\346\346FFH\206::<\2\234\234\236\376\376\376\237\377\377" \
- "\377\1\205\205\205\206::<\3;;=::<;;=\223::<\1;;=\203::<\202;;=\204::" \
- "<\2\234\234\234\376\376\376\221\377\377\377\1\234\234\236\205::<\1\234" \
- "\234\234\245\377\377\377\1RRR\204::<\2""99;yy{\203\377\377\377\1\376" \
- "\376\376\202\377\377\377\202\376\376\376\204\377\377\377\1\234\234\234" \
- "\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\207" \
- "\214\306>\4\214\305@\215\305>\214\306>\252\324p\251\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\211\214\306>\2\214\305@\343\361\316\205\377\377\377\30\377\377\375" \
- "\377\377\377\375\377\376\377\377\377\377\376\377\377\377\377\376\377" \
- "\377\371\372\365\222\313H\214\305B\214\305@\215\307\77\214\306>\215\307" \
- "\77\214\306>\214\305@\212\306B\214\305@\212\307>\216\306\77\212\307>" \
- "\215\307\77\214\306<\214\305@\211\214\306>\3\215\305>\214\306>\305\342" \
- "\240\214\377\377\377\20\377\376\377\301\345\237\215\305>\215\306A\213" \
- "\304\77\215\306C\214\306>\214\306<\216\306\77\214\306>\214\305B\215\307" \
- "\77\214\306>\215\307\77\214\305@\271\332\211\230\377\377\377\10\307\341" \
- "\240\215\305>\214\305@\214\306>\215\305<\212\307>\214\305B\214\306<\202" \
- "\214\306>\5\215\305<\214\305B\215\307\77\214\306>\303\344\235\222\377" \
- "\377\377\6\376\376\377\377\377\375\376\377\377\377\376\377\352\364\333" \
- "\215\305@\202\215\307\77\16\214\306>\215\307\77\214\306>\215\307\77\214" \
- "\306<\216\306A\213\310\77\214\305D\215\3108\214\305@\215\305>\223\312" \
- "K\236\323a\215\307\77\207\214\306>\202\214\305@\10\214\306>\215\307\77" \
- "\212\307>\212\307<\241\321c\377\376\377\377\375\376\377\375\377\230\377" \
- "\377\377\3\332\332\332:::;;=\204::<\1SSU\203\377\377\377\1\376\376\376" \
- "\247\377\377\377\1\376\376\376\204\377\377\377\1\221\221\221\202::<\1" \
- ";:\77\202::<\1RRT\214\377\377\377\1\316\316\316\205::<\1kkm\211\377\377" \
- "\377\2\316\316\316;;=\202::<\5;;=::<;;=::<\316\316\316\210\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\207\377\377\377\2\346\346" \
- "\350::<\202;;=\202::<\2:::xxx\230\234\234\234\3\235\235\235\234\234\234" \
- "kkm\203::<\4;;=::<FFH\364\364\364\203\377\377\377\1\376\376\376\215\377" \
- "\377\377\1\234\234\236\205::<\1\234\234\234\241\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\332\332\334\206::<\1\250\250\252\214\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\2\213\307A\213\310\77\204\214\306>\1\252\324" \
- "p\232\377\377\377\1\377\377\375\216\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\215\377\377\377\10\352\363\336\214\306>\212\306" \
- "B\215\307\77\212\307<\215\305>\214\305@\215\307\77\221\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\30\377\376\377\313\347\254" \
- "\215\307\77\214\304=\215\307\77\212\306@\215\307\77\215\306A\214\305" \
- "@\214\306>\215\307\77\214\306>\215\307\77\214\305@\214\305B\222\313H" \
- "\377\376\377\377\375\376\377\376\377\377\377\377\377\376\377\377\377" \
- "\373\376\377\377\377\376\377\211\377\377\377\26\377\377\375\377\376\377" \
- "\377\377\377\376\377\377\377\377\375\376\377\375\377\377\377\241\323" \
- "b\215\304D\214\307;\215\307\77\214\305B\215\307\77\214\306<\215\306A" \
- "\212\307>\215\305@\214\306>\213\310=\215\305@\215\306A\323\352\264\221" \
- "\377\377\377\11\376\377\377\376\376\374\376\377\377\377\376\374\377\376" \
- "\377\242\320c\215\307\77\215\306A\214\306>\202\214\305@\203\214\306>" \
- "\25\214\305@\215\306A\214\305@\215\307\77\214\306>\215\307=\315\345\253" \
- "\361\370\346\215\307\77\214\306>\212\306@\216\306A\214\306>\215\305>" \
- "\215\305@\214\305@\212\307>\215\305@\212\306@\215\305<\215\305@\202\214" \
- "\306>\12\277\337\223\377\377\377\376\377\375\377\376\377\377\377\375" \
- "\376\377\377\377\377\377\376\376\376\377\377\377\377\377\375\222\377" \
- "\377\377\1___\202::<\202;;=\202::<\1\266\266\266\250\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\203\377\377\377\1SSU\203::<\3" \
- ";;=::<\221\221\223\214\377\377\377\1\316\316\316\205::<\1kkm\210\377" \
- "\377\377\3\376\376\376\377\377\377\233\233\233\203::<\5;;=::<;;=FFH\364" \
- "\364\364\210\377\377\377\1\376\376\376\213\377\377\377\2\376\376\376" \
- "\377\377\377\202\376\376\376\205\377\377\377\1\204\204\206\202::<\1;" \
- ";=\202::<\3FFF\363\363\363\376\376\376\231\377\377\377\3\346\346\346" \
- "::<;;=\204::<\3\234\234\234\377\377\377\376\376\376\217\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\234\377\377\377\1\376\376\376\207\377" \
- "\377\377\3\205\205\207::<;;=\204::<\1\346\346\350\214\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214" \
- "\305@\205\214\306>\7\214\306<\214\306>\215\307\77\214\305@\214\306>\252" \
- "\324p\376\377\375\230\377\377\377\203\377\376\377\203\377\377\377\1\376" \
- "\376\377\211\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342" \
- "\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316" \
- "\215\377\377\377\2\376\377\375\313\347\254\203\214\306>\3\214\305@\216" \
- "\306\77\211\306=\221\214\306>\3\215\305>\214\306>\305\342\240\214\377" \
- "\377\377\11\375\376\377\343\361\316\215\305>\215\307\77\213\304A\215" \
- "\307\77\215\305>\214\306<\214\305@\203\214\306>\14\215\307\77\214\305" \
- "@\213\304\77\214\305B\322\353\264\377\377\377\377\377\375\377\377\377" \
- "\377\376\377\376\377\377\377\377\377\376\377\377\210\377\377\377\13\377" \
- "\377\375\377\377\377\376\377\375\377\376\377\376\376\374\377\377\375" \
- "\377\377\377\350\364\334\215\304D\215\305>\215\307\77\202\214\305@\202" \
- "\214\306>\10\214\305@\215\306A\214\306<\215\306C\214\304=\215\307=\212" \
- "\307<\351\366\332\222\377\377\377\14\377\377\375\377\377\377\377\377" \
- "\375\304\343\237\214\306>\212\307>\217\307@\214\305@\215\307\77\214\306" \
- ">\214\305@\215\306A\202\214\306>\5\214\306<\215\305>\211\307>\216\306" \
- "=\251\323o\202\376\377\377\31\304\341\241\212\306@\215\306A\212\307>" \
- "\215\307\77\214\306<\216\305C\212\307<\216\306A\214\306<\215\307\77\215" \
- "\305>\212\307>\216\306A\214\305@\216\306A\341\361\315\377\376\377\377" \
- "\377\375\376\377\377\377\376\377\376\376\376\377\377\377\377\376\377" \
- "\376\377\375\222\377\377\377\1\265\265\265\202;;=\204::<\2SSU\364\364" \
- "\364\203\377\377\377\1\376\376\376\245\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\316\316\316\203::<\1;;=\202::<\1\302\302\302\214\377\377" \
- "\377\1\316\316\316\205::<\1kkm\213\377\377\377\1lln\204::<\3;;=::<__" \
- "a\202\377\377\377\1\376\376\376\206\377\377\377\1\376\376\376\213\377" \
- "\377\377\1\376\376\376\202\377\377\377\1\376\376\376\203\377\377\377" \
- "\3\346\346\346::<;;=\204::<\1\234\234\234\234\377\377\377\1\204\204\206" \
- "\202;;=\202::<\2;;=SSU\221\377\377\377\1\234\234\236\205::<\1\234\234" \
- "\234\235\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\346\346\346::<\202;;=\4""99;;;=::<kkm\215\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\10\214\305@\215\306A\215\305@\213\305=\214\306" \
- ">\215\307\77\252\324p\376\377\377\230\377\377\377\1\376\376\376\205\377" \
- "\377\377\2\376\377\377\376\377\375\210\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306" \
- ">\2\214\305@\343\361\316\215\377\377\377\10\377\377\375\377\375\376\262" \
- "\331|\214\305@\215\306A\214\306>\214\305B\215\307\77\221\214\306>\3\215" \
- "\305>\214\306>\305\342\240\214\377\377\377\10\376\377\375\377\377\377" \
- "\214\304\77\212\307>\216\306A\214\306>\215\305@\215\307\77\206\214\306" \
- ">\202\214\305@\3\233\316X\376\376\377\376\377\373\202\377\377\377\3\377" \
- "\375\376\377\377\375\377\376\377\210\377\377\377\12\377\376\377\376\377" \
- "\375\377\375\376\376\376\374\377\377\377\377\377\375\377\377\377\257" \
- "\330x\214\307;\215\307\77\202\214\305@\2\215\307\77\213\305=\202\214" \
- "\306>\1\215\305>\202\214\306>\5\216\306\77\215\306A\215\305@\376\377" \
- "\375\377\376\377\220\377\377\377\11\377\377\375\377\377\377\376\377\377" \
- "\350\364\334\212\307>\213\310\77\216\306\77\212\307>\214\305@\202\214" \
- "\306>%\215\306A\214\306>\213\305=\214\306>\215\307\77\215\305@\211\307" \
- ">\223\311M\363\367\350\376\377\375\377\377\377\377\377\375\242\320d\212" \
- "\307<\215\306A\214\305@\212\306@\215\306A\214\306>\212\307>\215\307\77" \
- "\217\304@\211\310<\215\305>\213\310\77\212\307>\214\306>\234\315W\367" \
- "\372\363\376\377\377\377\376\377\377\377\375\377\377\377\376\376\376" \
- "\377\377\375\377\377\377\376\377\375\222\377\377\377\1RRR\202::<\203" \
- ";;=\2::<\234\234\236\204\377\377\377\1\376\376\376\246\377\377\377\3" \
- "\376\376\376\377\377\377kkk\202::<\4;;=99;;;=FFH\215\377\377\377\1\316" \
- "\316\316\205::<\1kkm\211\377\377\377\5\376\376\376\377\377\377\363\363" \
- "\363SSU;;=\202::<\202;;=\2""99;\222\222\222\207\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\214\377\377\377\1\376\376\376\204\377\377" \
- "\377\3\204\204\204;;=99;\202;;=\3::<FFH\363\363\363\230\377\377\377\1" \
- "\376\376\376\202\377\377\377\2\376\376\376\317\317\317\203::<\4;;=::" \
- "<;;=\266\266\266\220\377\377\377\1\234\234\236\205::<\1\234\234\234\243" \
- "\377\377\377\2\204\204\204;;=\204::<\2""99;\264\264\264\215\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\204\214\306>\2\214\305@\214\306>\203\215\306A\2\215\307\77" \
- "\251\323q\231\377\377\377\203\377\377\375\202\377\377\377\1\377\375\376" \
- "\202\377\376\377\210\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\215\377\377\377\7\376\376\376\377\377\375\366\373\364\233\316" \
- "X\215\305@\215\307=\215\305>\222\214\306>\3\215\305>\214\306>\305\342" \
- "\240\216\377\377\377\6\243\322b\214\306>\215\305@\215\307\77\215\305" \
- "@\215\306A\203\214\306>\1\215\307\77\202\214\306>\202\215\307\77\2\214" \
- "\306>\315\346\254\202\377\377\377\4\377\376\375\376\377\375\376\376\377" \
- "\377\376\377\212\377\377\377\7\377\377\375\377\376\377\377\377\373\377" \
- "\377\375\327\356\304\214\306>\215\307\77\202\214\305@\203\214\306>\12" \
- "\215\307\77\214\306>\214\305@\216\306\77\214\306<\214\304\77\212\307" \
- ">\260\331{\376\377\375\377\376\377\220\377\377\377\13\376\377\377\377" \
- "\377\375\370\373\362\233\315Z\216\306A\214\305@\212\307>\215\306A\214" \
- "\306>\214\305@\215\306A\202\214\306>\6\215\307\77\214\305@\214\305B\214" \
- "\306>\215\307=\313\347\254\202\377\377\377\23\377\376\377\377\377\375" \
- "\350\364\334\212\307>\220\306=\214\305@\216\306=\214\306>\214\305@\214" \
- "\306>\212\306@\215\305>\212\306@\215\307\77\212\307>\215\307\77\214\305" \
- "@\212\306@\277\340\221\202\377\377\377\1\377\377\375\203\377\377\377" \
- "\2\377\376\377\377\377\375\220\377\377\377\4\376\376\376\377\377\377" \
- "\265\265\265::<\202;;=\5""99;::<;;=99;\317\317\317\250\377\377\377\1" \
- "\376\376\376\202\377\377\377\2\316\316\31699;\202::<\202;;=\2::<\221" \
- "\221\223\215\377\377\377\1\316\316\316\205::<\1kkm\207\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\332\332\334\203::<\5;;=::<;;=99;\302\302" \
- "\302\202\377\377\377\1\376\376\376\216\377\377\377\1\376\376\376\202" \
- "\377\377\377\1\376\376\376\204\377\377\377\4\362\362\362FFH::<;;=\202" \
- "::<\2;;=\221\221\223\204\377\377\377\202\376\376\376\224\377\377\377" \
- "\1\376\376\376\203\377\377\377\1kkm\202;;=\203::<\1SSU\220\377\377\377" \
- "\1\234\234\236\205::<\1\234\234\234\240\377\377\377\3\376\376\376\377" \
- "\377\377\315\315\315\203::<\1;;=\202::<\1SSU\216\377\377\377\1\234\234" \
- "\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305" \
- "@\204\214\306>\3\215\306A\214\306<\215\307=\202\214\305@\3\214\306>\253" \
- "\324n\377\377\375\230\377\377\377\2\375\376\377\376\376\376\203\377\377" \
- "\377\1\377\377\375\212\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\220\377\377\377\5\350\365\333\214\306>\214\305@\214\306>\215" \
- "\306A\221\214\306>\3\215\305>\214\306>\305\342\240\215\377\377\377\7" \
- "\377\377\375\277\337\224\212\306@\215\305@\212\307>\215\306A\215\307" \
- "\77\203\214\306>\202\215\307\77\203\214\306>\3\214\306<\214\306>\351" \
- "\363\330\202\377\377\377\3\376\376\376\374\377\377\376\377\377\211\377" \
- "\377\377\1\376\377\377\202\377\377\377\7\375\376\377\351\365\337\223" \
- "\311M\215\307=\214\305B\214\305@\215\307\77\202\214\306>\12\215\306A" \
- "\214\305@\214\306>\212\307>\215\306A\214\306>\215\307=\213\310\77\316" \
- "\345\255\376\377\377\221\377\377\377\7\376\377\377\377\377\375\300\337" \
- "\223\216\306A\213\305=\215\307=\215\305>\202\214\306>\1\215\307\77\203" \
- "\214\306>\202\214\305@\5\215\307\77\213\307A\251\322r\377\377\377\377" \
- "\377\375\202\377\377\377\14\377\376\377\377\377\377\305\342\237\212\307" \
- "<\220\305\77\214\306>\212\306@\215\306A\214\306<\214\305@\214\306<\216" \
- "\305C\202\214\306>\7\215\305<\214\306>\215\305>\214\305@\342\362\316" \
- "\377\377\377\377\377\375\202\377\377\377\3\376\377\377\377\376\377\376" \
- "\376\376\221\377\377\377\3\376\376\376\377\377\377___\205::<\4;;=FFH" \
- "\363\363\363\377\377\377\202\376\376\376\246\377\377\377\3\363\363\363" \
- "SSU;;=\204::<\4;;=\345\345\345\377\377\377\376\376\376\213\377\377\377" \
- "\1\316\316\316\205::<\1kkm\211\377\377\377\1\376\376\376\203\377\377" \
- "\377\4\264\264\266;;=99;::<\202;;=\3::<GGI\332\332\332\206\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\203\377\377\377\3\234\234" \
- "\236::<;;=\204::<\2\346\346\346\376\376\376\202\377\377\377\1\376\376" \
- "\376\202\377\377\377\202\376\376\376\220\377\377\377\1\376\376\376\204" \
- "\377\377\377\2\376\376\376\317\317\317\204::<\3;;=::<\265\265\265\217" \
- "\377\377\377\1\234\234\236\205::<\1\234\234\234\235\377\377\377\1\376" \
- "\376\376\203\377\377\377\2\363\363\363TTV\203::<\5;;=99;::<\235\235\235" \
- "\376\376\376\215\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377" \
- "\377\377\3\214\305@\214\306>\214\305@\204\214\306>\2\212\306@\213\310" \
- "\77\202\214\305@\3\215\307\77\214\306<\251\323o\231\377\377\377\4\377" \
- "\376\377\377\377\375\377\377\377\376\376\377\214\377\377\377\215\214" \
- "\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305" \
- "@\211\214\306>\2\214\305@\343\361\316\215\377\377\377\1\377\377\375\203" \
- "\377\377\377\4\323\353\267\212\307<\214\306<\212\306B\221\214\306>\3" \
- "\215\305>\214\306>\305\342\240\214\377\377\377\7\376\377\377\377\376" \
- "\377\350\365\331\215\307\77\215\305>\214\306>\212\307>\202\214\306>\1" \
- "\215\307\77\205\214\306>\11\215\307\77\213\304A\212\307>\222\312M\343" \
- "\361\316\376\376\377\377\376\377\377\377\377\377\375\377\210\377\377" \
- "\377\1\377\376\377\202\377\377\375\12\377\376\377\350\364\334\220\313" \
- "K\216\306=\215\305<\215\307\77\214\306>\213\305=\214\306>\215\306A\202" \
- "\214\306>\1\214\305@\202\212\307>\6\214\305@\215\306C\215\305>\360\370" \
- "\351\377\377\373\376\377\377\221\377\377\377\7\345\360\322\215\305@\214" \
- "\305@\215\307=\214\304=\213\310=\215\305>\202\214\306>\2\213\305=\215" \
- "\307\77\202\214\305@\7\215\307\77\214\307;\214\305@\363\367\346\376\377" \
- "\377\377\377\373\377\376\377\202\377\377\377\30\376\377\375\377\376\377" \
- "\241\321a\216\306\77\212\306@\213\310=\215\305@\213\307A\217\304>\215" \
- "\305@\214\306<\216\306A\215\306A\212\307>\214\306<\214\306>\212\307<" \
- "\233\314W\366\373\365\377\377\375\377\377\377\377\376\377\373\377\377" \
- "\377\376\377\224\377\377\377\1\317\317\317\205::<\4;;=::<``b\362\362" \
- "\362\247\377\377\377\2\376\376\376\221\221\221\206::<\3\204\204\206\377" \
- "\377\377\376\376\376\214\377\377\377\1\316\316\316\205::<\1kkm\212\377" \
- "\377\377\6\376\376\376\377\377\377\376\376\376\377\377\377\203\203\203" \
- ";;=\205::<\3``b\363\363\363\376\376\376\216\377\377\377\1\376\376\376" \
- "\206\377\377\377\3\363\363\363FFH;;=\203::<\2;;=\203\203\203\203\377" \
- "\377\377\3\376\376\376\377\377\377\376\376\376\225\377\377\377\1\376" \
- "\376\376\204\377\377\377\3kkk::<<<>\202::<\2;;=kkm\217\377\377\377\1" \
- "\234\234\236\205::<\1\234\234\234\236\377\377\377\4\376\376\376\377\377" \
- "\377\376\376\376kkk\202::<\5;;=::<99;;;=TTV\202\377\377\377\1\376\376" \
- "\376\214\377\377\377\1\234\234\234\205::<\1\234\234\236\266\377\377\377" \
- "\3\214\305@\214\306>\214\305@\204\214\306>\10\214\306<\214\306>\214\305" \
- "@\214\306>\215\307\77\214\306>\252\324r\376\377\377\230\377\377\377\1" \
- "\377\377\375\202\377\377\377\2\377\377\375\376\376\374\203\377\376\377" \
- "\210\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320" \
- "\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215\377" \
- "\377\377\10\375\377\374\377\376\377\375\377\376\376\376\377\377\377\377" \
- "\270\333\207\214\305@\215\307\77\221\214\306>\3\215\305>\214\306>\305" \
- "\342\240\214\377\377\377\12\375\376\377\377\376\377\376\377\377\234\313" \
- "Y\215\306A\214\305@\212\307>\214\305@\214\306>\215\307\77\206\214\306" \
- ">\7\215\307\77\214\306>\215\305@\213\310\77\304\343\240\371\372\364\376" \
- "\377\377\212\377\377\377\10\376\377\377\377\376\377\315\345\251\223\311" \
- "M\214\306>\216\306\77\214\305B\214\306<\202\214\306>\15\215\306A\214" \
- "\305@\214\306>\215\307\77\214\305@\214\306<\214\305@\215\307\77\213\304" \
- "A\263\330{\377\377\377\376\376\376\377\377\375\220\377\377\377\7\370" \
- "\373\364\232\315V\216\306=\212\311=\214\306>\216\306A\213\307A\202\214" \
- "\305@\202\214\306>\202\214\305@\10\215\307\77\215\305>\215\304D\304\341" \
- "\237\376\377\377\377\376\377\376\376\377\377\377\375\202\377\376\377" \
- "\24\376\377\377\377\377\373\350\365\333\215\305>\214\306<\214\306>\212" \
- "\306@\215\307\77\213\305=\215\305@\215\307\77\214\306>\215\305>\215\306" \
- "A\211\305A\215\305@\214\305B\213\310=\262\327z\374\377\377\202\377\377" \
- "\377\2\377\377\375\373\377\376\225\377\377\377\1\221\221\223\203::<\6" \
- ";;=99;;;=::<``b\362\362\362\246\377\377\377\2\265\265\265:::\202::<\1" \
- ";;=\203::<\1\346\346\350\216\377\377\377\1\316\316\316\205::<\1kkm\216" \
- "\377\377\377\6\363\363\363__a::<;;=::<;;=\202::<\1\204\204\204\204\377" \
- "\377\377\1\376\376\376\221\377\377\377\1\234\234\234\204::<\3;;=::<\347" \
- "\347\347\202\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376" \
- "\225\377\377\377\3\376\376\376\377\377\377\265\265\265\202::<\202;;=" \
- "\3::<;;=\316\316\316\216\377\377\377\1\234\234\236\205::<\1\234\234\234" \
- "\240\377\377\377\2\204\204\204:::\206::<\1\301\301\303\217\377\377\377" \
- "\1\234\234\234\205::<\1\234\234\236\266\377\377\377\3\214\305@\214\306" \
- ">\214\305@\205\214\306>\7\214\305@\216\306A\215\307=\213\304\77\213\307" \
- "A\242\321a\345\356\317\230\342\362\316\7\341\361\315\342\361\322\342" \
- "\361\320\343\361\315\345\360\322\365\373\357\376\377\377\211\377\377" \
- "\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214\306" \
- ">\1\214\305@\211\214\306>\2\214\305@\343\361\316\216\377\377\377\7\376" \
- "\377\375\377\377\375\377\377\377\377\376\377\371\374\365\242\322d\215" \
- "\306A\221\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\10" \
- "\377\377\375\377\377\377\377\377\373\312\346\253\215\307=\212\307>\214" \
- "\305B\216\306=\206\214\306>\202\214\305@\10\214\306>\212\307>\216\306" \
- "\77\214\306>\212\307>\233\316W\306\340\237\361\370\346\210\377\377\377" \
- "\12\361\370\350\314\345\253\233\314W\214\306>\213\310\77\215\305<\214" \
- "\305@\212\307<\215\306A\214\305@\203\214\306>\202\214\305@\202\214\306" \
- ">\4\216\306A\212\306@\213\310\77\333\356\301\202\377\377\377\1\377\377" \
- "\375\220\377\377\377\26\270\332\204\215\306A\212\306B\214\306>\213\307" \
- "A\215\305@\214\306<\214\306>\215\306A\214\306<\215\307\77\214\305B\215" \
- "\307\77\214\307;\215\304D\241\323b\377\377\375\376\377\377\377\377\377" \
- "\377\377\373\377\377\377\376\377\377\202\377\377\375\16\377\377\377\376" \
- "\377\377\277\337\224\214\305@\215\306A\214\306>\215\305>\212\310\77\214" \
- "\305@\215\307\77\212\307>\214\305B\216\306=\215\306A\202\214\306<\6\214" \
- "\306>\213\307C\331\356\305\377\376\377\377\377\373\376\376\376\227\377" \
- "\377\377\3__a::<;:\77\205::<\2__a\363\363\363\203\377\377\377\1\376\376" \
- "\376\213\377\377\377\1\376\376\376\203\377\377\377\3\376\376\376\377" \
- "\377\377\376\376\376\213\377\377\377\1\376\376\376\202\377\377\377\1" \
- "\265\265\267\205::<\3;;=:::\234\234\234\217\377\377\377\1\316\316\316" \
- "\205::<\1kkm\217\377\377\377\4\332\332\332GGI::<;;=\204::<\1\250\250" \
- "\252\225\377\377\377\1FFH\205::<\1\204\204\204\242\377\377\377\1TTV\205" \
- "::<\4lln\376\376\376\377\377\377\376\376\376\203\377\377\377\1\376\376" \
- "\376\207\377\377\377\1\234\234\236\205::<\1\235\235\237\221\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\202\377\377\377\202\376" \
- "\376\376\205\377\377\377\3\363\363\365\204\204\206;;=\204::<\3;;=:::" \
- "xxx\220\377\377\377\1\234\234\234\203::<\3;;=::<\234\234\234\204\377" \
- "\377\377\1\376\376\376\261\377\377\377\3\214\305@\214\306>\214\305@\250" \
- "\214\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250" \
- "\325p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306" \
- ">\2\214\305@\343\361\316\216\377\377\377\11\375\376\377\377\376\377\377" \
- "\377\375\376\377\377\377\376\377\351\365\335\223\311M\212\307<\214\306" \
- ">\202\216\306A\4\212\307<\215\306A\215\305>\215\307\77\211\214\306>\3" \
- "\215\305>\214\306>\305\342\240\214\377\377\377\20\377\376\377\377\377" \
- "\375\377\376\377\365\374\364\223\312J\217\304>\215\307\77\212\307;\215" \
- "\306A\214\305B\214\305@\215\307\77\214\306<\213\310\77\214\305@\215\305" \
- ">\210\214\306>\10\234\315Z\257\327~\304\343\235\306\340\237\307\341\240" \
- "\304\343\237\257\327\177\241\321a\210\214\306>\20\217\304>\215\306A\212" \
- "\306@\212\307>\213\305;\216\306A\213\305=\215\306C\211\310<\216\306A" \
- "\214\306>\234\314V\377\377\377\375\377\374\376\377\377\377\376\377\211" \
- "\377\377\377\7\377\376\377\376\377\375\376\377\377\376\377\375\377\376" \
- "\377\377\377\377\333\355\303\210\214\306>\10\215\306A\214\305@\216\306" \
- "=\214\306>\215\307\77\214\305@\215\307\77\352\364\334\211\377\377\377" \
- "\6\377\376\377\367\375\363\232\315V\215\307\77\214\306>\214\305@\212" \
- "\214\306>\6\212\307>\223\311M\366\373\364\377\376\377\377\377\377\376" \
- "\377\373\221\377\377\377\1\376\376\376\204\377\377\377\2\346\346\346" \
- "FFH\203::<\1""99;\203::<\2__a\332\332\332\211\377\377\377\1\376\376\376" \
- "\203\377\377\377\1\376\376\376\205\377\377\377\1\376\376\376\206\377" \
- "\377\377\1\376\376\376\207\377\377\377\1\265\265\267\202::<\1;;=\204" \
- "::<\2```\376\376\376\217\377\377\377\1\316\316\316\205::<\1kkm\216\377" \
- "\377\377\4\376\376\376\377\377\377\301\301\301;;=\205::<\2;;=\331\331" \
- "\331\202\377\377\377\3\376\376\376\377\377\377\376\376\376\216\377\377" \
- "\377\1\265\265\267\205::<\3;;=\332\332\332\376\376\376\241\377\377\377" \
- "\1\266\266\270\205::<\2""99;\316\316\320\215\377\377\377\1\234\234\236" \
- "\203::<\5;;=::<\234\234\234\377\377\377\376\376\376\220\377\377\377\1" \
- "\376\376\376\206\377\377\377\1\376\376\376\203\377\377\377\2\346\346" \
- "\346``b\202::<\2""99;;;=\203::<\4FFF\363\363\363\377\377\377\376\376" \
- "\376\216\377\377\377\1\234\234\234\204::<\3;;=\234\234\234\376\376\376" \
- "\265\377\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215\307" \
- "\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377\377" \
- "\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361" \
- "\316\215\377\377\377\16\377\376\377\376\377\377\377\376\377\377\377\377" \
- "\376\377\377\377\376\377\375\377\374\323\353\267\215\305<\215\306C\215" \
- "\305<\213\306:\213\310\77\212\306@\202\214\305@\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\215\377\377\377\4\376\377\377\377\377\375\377" \
- "\376\377\305\342\242\202\214\305@\5\216\306A\214\306>\215\307=\215\307" \
- "\77\213\304A\202\214\305@\2\214\306>\212\306@\210\214\306>\7\214\306" \
- "<\215\307=\215\307\77\213\305=\214\306>\215\307\77\213\305=\211\214\306" \
- ">\11\215\306A\215\305>\212\307;\213\304\77\215\306A\211\306=\215\306" \
- "A\212\307<\216\306A\202\215\307\77\4\343\361\320\376\377\375\377\377" \
- "\375\376\376\377\212\377\377\377\1\377\376\377\202\377\377\377\4\377" \
- "\376\377\376\377\377\367\375\363\225\311J\210\214\306>\10\215\307=\213" \
- "\310\77\214\305@\216\306\77\214\305@\212\307>\307\341\240\376\377\375" \
- "\210\377\377\377\5\377\376\377\374\377\375\377\376\377\343\361\320\212" \
- "\306@\202\214\306>\1\213\310\77\210\214\306>\10\215\306A\215\305>\214" \
- "\305@\260\327z\377\376\374\374\377\377\377\377\377\377\376\377\226\377" \
- "\377\377\1\332\332\332\210::<\2GGI\250\250\250\223\377\377\377\3\376" \
- "\376\376\377\377\377\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\1\376\376\376\204\377\377\377\2\250\250\252;;=\204::<\202;;" \
- "=\2EEG\331\331\331\220\377\377\377\1\316\316\316\205::<\1kkm\221\377" \
- "\377\377\5\222\222\224::<;;=::<;;=\202::<\5SSU\364\364\364\376\376\376" \
- "\377\377\377\376\376\376\216\377\377\377\2\376\376\376TTV\203::<\4;;" \
- "=99;lln\376\376\376\243\377\377\377\1TTV\204::<\5;;=\204\204\206\376" \
- "\376\376\377\377\377\376\376\376\212\377\377\377\1\234\234\236\202::" \
- "<\1;;=\202::<\1\234\234\234\215\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\212\377\377\377\6\376\376\376\250\250\252FFH99;::" \
- "<;;=\205::<\1\316\316\316\221\377\377\377\1\234\234\234\203::<\3;;=:" \
- ":<\234\234\236\266\377\377\377\3\214\305@\214\306>\214\305@\250\214\306" \
- ">\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216" \
- "\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214" \
- "\305@\343\361\316\215\377\377\377\3\377\376\377\376\377\375\376\377\377" \
- "\202\377\377\377\13\377\377\375\377\376\377\376\376\374\271\332\211\215" \
- "\306A\211\306;\216\306A\212\307>\213\307A\215\306A\212\307>\211\214\306" \
- ">\3\215\305>\214\306>\305\342\240\214\377\377\377\20\376\377\375\377" \
- "\377\377\377\377\375\377\377\377\371\370\364\233\316U\214\306>\214\305" \
- "@\215\306A\214\306>\214\305@\215\307=\214\306>\215\305@\215\304B\213" \
- "\310=\210\214\306>\3\215\305@\214\306>\213\305=\202\213\310\77\3\214" \
- "\306>\215\307\77\215\305@\210\214\306>\20\212\306@\212\307;\216\306\77" \
- "\215\307\77\212\306@\214\306<\215\305>\215\307\77\220\305\77\211\307" \
- ">\263\330{\377\376\377\377\377\375\376\377\377\377\377\377\376\376\376" \
- "\211\377\377\377\7\377\377\373\377\377\377\377\375\376\377\377\377\377" \
- "\377\375\257\330|\213\310\77\211\214\306>\6\215\306C\211\306=\214\305" \
- "@\214\306>\242\322e\377\377\375\212\377\377\377\7\376\377\377\377\377" \
- "\375\377\375\376\277\337\224\216\307B\212\307>\214\305@\210\214\306>" \
- "\2\214\305@\216\306\77\202\212\307>\4\332\360\302\376\376\374\376\376" \
- "\376\377\376\377\227\377\377\377\1\266\266\266\202::<\1;;=\202::<\2;" \
- ";=::<\202;;=\2kkm\346\346\350\202\377\377\377\1\376\376\376\207\377\377" \
- "\377\1\376\376\376\203\377\377\377\5\376\376\376\377\377\377\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\204\377\377\377\2\364\364\364yy{\203::<\2;;=99;\203::<\3" \
- "\265\265\267\377\377\377\376\376\376\217\377\377\377\1\316\316\316\205" \
- "::<\1kkm\222\377\377\377\1kkm\203::<\1;;=\202::<\5kkm\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\212\377\377\377\5\376\376\376\377\377" \
- "\377\376\376\376\265\265\267;;=\204::<\2;;=\315\315\315\244\377\377\377" \
- "\11\234\234\234::<99;;;=::<;;=::<\347\347\347\376\376\376\213\377\377" \
- "\377\1\234\234\236\204::<\2;;=\233\233\233\217\377\377\377\1\376\376" \
- "\376\206\377\377\377\6\376\376\376\377\377\377\376\376\376\377\377\377" \
- "\265\265\265TTT\202::<\202;;=\203::<\3;;=::<\266\266\270\202\377\377" \
- "\377\1\376\376\376\217\377\377\377\1\234\234\234\204::<\4;;=\235\235" \
- "\237\377\377\377\376\376\376\224\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\233\377\377\377\3\214\305@\214\306>\214\305@\250\214" \
- "\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\215\377\377\377\202\377\377\375\16\377\377\377" \
- "\377\377\375\377\377\377\376\377\375\376\376\374\377\376\377\375\377" \
- "\376\241\322_\215\306A\212\306B\215\305>\215\307\77\214\306<\214\305" \
- "B\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\1\377" \
- "\376\377\202\377\377\375\15\376\377\377\377\375\376\340\361\317\214\306" \
- ">\212\307>\214\306>\215\307\77\214\306>\212\307<\215\307\77\215\305>" \
- "\216\306=\213\305=\210\214\306>\1\212\307>\202\214\305@\202\214\306>" \
- "\3\214\305@\215\306A\212\307>\210\214\306>\20\212\307>\213\304\77\214" \
- "\306>\211\310<\214\306>\216\306A\212\306@\215\305@\214\306>\223\313N" \
- "\367\372\363\376\377\377\377\377\377\377\376\377\376\377\373\377\376" \
- "\377\212\377\377\377\202\376\377\377\3\377\375\376\324\353\265\215\306" \
- "A\211\214\306>\7\215\305>\213\305=\215\307\77\215\306A\212\307>\351\363" \
- "\333\377\377\375\211\377\377\377\10\377\376\377\375\377\376\376\377\377" \
- "\377\376\377\370\373\362\233\314W\215\307\77\215\305<\210\214\306>\1" \
- "\215\307\77\202\214\306>\4\214\306<\225\310O\360\366\350\377\376\377" \
- "\221\377\377\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377" \
- "\1\266\266\266\202::<\4;;=99;::<;;=\202::<\4;;=::<\204\204\206\346\346" \
- "\350\207\377\377\377\1\376\376\376\206\377\377\377\202\376\376\376\202" \
- "\377\377\377\1\376\376\376\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\3\251\251\251FFF99;\202::<\1""99;\202::<\5;;=::<\234\234\236\377" \
- "\377\377\376\376\376\220\377\377\377\1\316\316\316\205::<\1kkm\222\377" \
- "\377\377\11\363\363\363GGI99;::<99;;;=::<;;=\234\234\234\214\377\377" \
- "\377\1\376\376\376\203\377\377\377\1SSU\202::<\1;;=\202::<\1kkm\245\377" \
- "\377\377\5\362\362\362GGI;;=::<;;=\202::<\1\204\204\206\206\377\377\377" \
- "\1\376\376\376\205\377\377\377\1\234\234\236\203::<\3""99;::<\234\234" \
- "\234\223\377\377\377\1\376\376\376\203\377\377\377\3\331\331\331\222" \
- "\222\222SSU\203::<\2;;=::<\202;;=\4::<;;=::<\265\265\267\202\377\377" \
- "\377\1\376\376\376\203\377\377\377\1\376\376\376\214\377\377\377\1\234" \
- "\234\234\205::<\1\234\234\236\203\377\377\377\1\376\376\376\223\377\377" \
- "\377\1\376\376\376\236\377\377\377\3\214\305@\214\306>\214\305@\250\214" \
- "\306>\2\215\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325" \
- "p\216\377\377\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>" \
- "\2\214\305@\343\361\316\216\377\377\377\17\377\376\377\377\377\377\376" \
- "\376\376\377\376\377\377\377\375\376\377\377\375\377\376\377\377\377" \
- "\363\367\350\222\312K\214\305@\213\310\77\214\304\77\215\307\77\216\306" \
- "A\211\214\306>\3\215\305>\214\306>\305\342\240\214\377\377\377\14\377" \
- "\376\377\376\377\375\376\377\377\377\376\377\376\377\377\376\377\375" \
- "\307\342\237\214\305@\214\306<\215\304D\214\306>\214\305D\202\212\307" \
- "<\2\212\307>\213\307A\210\214\306>\3\215\307\77\214\306>\215\307\77\202" \
- "\214\305@\213\214\306>\12\213\305;\215\306A\212\306@\214\306>\213\307" \
- "C\212\307>\215\305>\212\307>\215\305>\333\356\301\202\377\377\377\3\377" \
- "\377\375\377\377\377\377\376\377\211\377\377\377\10\376\377\375\377\377" \
- "\375\376\377\375\374\377\375\362\371\347\225\311M\215\307\77\215\305" \
- "<\210\214\306>\2\214\305@\216\306=\202\212\306@\2\305\342\237\377\375" \
- "\376\212\377\377\377\1\376\376\374\203\377\377\377\4\376\376\376\337" \
- "\363\316\215\306C\215\305<\211\214\306>\1\215\307\77\202\214\305@\4\214" \
- "\306<\253\324n\375\377\374\377\377\375\224\377\377\377\1\376\376\376" \
- "\204\377\377\377\2\301\301\301FFH\202::<\2;;=99;\202;;=\2::<;;=\202:" \
- ":<\2\204\204\206\316\316\320\207\377\377\377\1\376\376\376\203\377\377" \
- "\377\1\376\376\376\206\377\377\377\6\376\376\376\377\377\377\364\364" \
- "\364\265\265\267SSU::<\202;;=\202::<\5;;=::<;;=::<\204\204\204\223\377" \
- "\377\377\1\316\316\316\205::<\1kkm\223\377\377\377\11\315\315\315;;=" \
- "::<;;=::<;;=::<99;\302\302\302\216\377\377\377\5\301\301\303::<;;=::" \
- "<;;=\202::<\2\316\316\316\377\377\377\202\376\376\376\241\377\377\377" \
- "\14\376\376\376\377\377\377\234\234\234;;=::<;;=::<;;=::<\347\347\351" \
- "\377\377\377\376\376\376\211\377\377\377\1\234\234\236\203::<\3;;=::" \
- "<\234\234\236\216\377\377\377\202\376\376\376\1\377\377\377\202\316\316" \
- "\316\6\250\250\250\234\234\234jjjFFF;;=99;\202;;=\2::<;;=\202::<\5<<" \
- ">99;;;=::<\265\265\267\204\377\377\377\1\376\376\376\217\377\377\377" \
- "\1\234\234\234\204::<\2;;=\234\234\236\202\377\377\377\1\376\376\376" \
- "\223\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\234\377" \
- "\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215\307\77\342\362" \
- "\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361" \
- "\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215" \
- "\377\377\377\202\377\376\377\16\377\377\375\376\377\377\377\377\377\377" \
- "\377\375\377\376\377\376\376\376\377\376\377\377\377\377\333\354\302" \
- "\212\307>\213\310\77\214\306<\213\310=\215\305@\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\214\377\377\377\1\377\376\377\202\376\377\377" \
- "\202\377\377\375\13\376\377\377\377\375\376\271\333\205\215\305>\214" \
- "\306>\212\307>\214\306>\215\306A\214\306>\212\306@\214\305@\210\214\306" \
- ">\3\214\305@\215\307\77\214\306>\202\212\307>\3\214\306>\215\307\77\215" \
- "\306A\210\214\306>\4\216\306A\211\306=\214\306<\216\306A\202\212\307" \
- ">\202\215\306A\10\322\352\270\377\377\375\376\376\374\377\377\377\376" \
- "\377\377\377\376\377\377\377\375\376\377\377\210\377\377\377\10\377\377" \
- "\375\377\377\377\377\376\377\374\376\373\250\325n\216\306\77\212\307" \
- ">\214\305B\210\214\306>\202\212\307>\6\214\305@\242\322d\376\376\374" \
- "\377\377\375\375\377\376\377\376\377\210\377\377\377\10\376\377\377\377" \
- "\377\375\377\375\376\377\377\375\375\376\377\376\377\375\270\333\207" \
- "\211\310<\210\214\306>\10\214\304=\216\307B\214\306>\212\307>\216\306" \
- "A\215\307\77\313\350\250\376\376\377\221\377\377\377\1\376\376\376\203" \
- "\377\377\377\1\376\376\376\204\377\377\377\7\332\332\332RRT;;=::<;;=" \
- "::<;;=\202::<\1;;=\203::<\3RRT\221\221\223\317\317\321\214\377\377\377" \
- "\11\376\376\376\377\377\377\364\364\364\301\301\301\204\204\206EEG;;" \
- "=99;;;=\204::<\1""99;\202::<\1\251\251\251\207\377\377\377\1\376\376" \
- "\376\214\377\377\377\1\316\316\316\205::<\1kkm\224\377\377\377\1\247" \
- "\247\247\203::<\5;;=::<;;=FFH\345\345\345\214\377\377\377\2\376\376\376" \
- "kkm\205::<\1SSU\202\377\377\377\1\376\376\376\244\377\377\377\2\363\363" \
- "\363FFH\204::<\2;;=\221\221\223\213\377\377\377\1\234\234\236\204::<" \
- "\4;;=SSUkkmlln\213kkm\5;;=::<;;=::<;;=\204::<\2;;=99;\202;;=\2::<;;=" \
- "\202::<\7;;=99;::<FFH\301\301\301\377\377\377\376\376\376\223\377\377" \
- "\377\1\234\234\234\205::<\1SSU\202kkm\1lln\223kkm\1lln\205kkm\1\332\332" \
- "\334\231\377\377\377\3\214\305@\214\306>\214\305@\250\214\306>\2\215" \
- "\307\77\342\362\316\212\377\377\377\215\214\306>\1\250\325p\216\377\377" \
- "\377\1\342\361\320\202\214\306>\1\214\305@\211\214\306>\2\214\305@\343" \
- "\361\316\215\377\377\377\1\377\376\377\202\377\377\375\202\377\377\377" \
- "\202\377\376\377\11\377\377\375\377\377\377\376\377\377\377\376\377\276" \
- "\336\223\214\306<\213\310\77\214\304=\215\306A\211\214\306>\3\215\305" \
- ">\214\306>\305\342\240\214\377\377\377\20\377\377\375\376\377\375\376" \
- "\376\376\377\376\377\375\377\376\377\375\377\376\377\377\376\377\375" \
- "\270\333\207\217\305<\212\307>\214\305@\216\306\77\213\305=\214\305@" \
- "\216\306=\211\214\306>\2\215\306A\215\305@\202\216\306\77\3\215\305@" \
- "\214\305@\215\307\77\210\214\306>\13\213\305=\215\306A\215\305>\212\306" \
- "@\215\305>\215\306A\220\305A\323\352\266\376\377\375\377\376\377\377" \
- "\377\375\202\377\377\377\3\376\377\377\377\375\377\376\377\375\213\377" \
- "\377\377\5\316\347\256\212\307>\213\305;\216\306A\212\307<\210\214\306" \
- ">\10\212\307>\216\306\77\215\305>\350\364\336\377\376\377\376\376\374" \
- "\377\377\377\377\376\377\210\377\377\377\1\377\376\377\202\377\377\377" \
- "\5\377\376\377\376\377\375\377\376\377\370\373\360\225\311K\210\214\306" \
- ">\10\216\306=\214\305@\215\310<\212\307>\214\306>\214\305@\223\312J\356" \
- "\371\350\231\377\377\377\4\376\376\376\377\377\377\363\363\363xxz\202" \
- "::<\1""99;\202::<\1;;=\203::<\202;;=\203::<\4__a\205\205\205\234\234" \
- "\234\250\250\250\205\316\316\316\4\250\250\250\234\234\234xxx___\202" \
- "::<\3""99;;;=99;\203::<\1;;=\203::<\2FFH\265\265\265\205\377\377\377" \
- "\1\376\376\376\217\377\377\377\1\316\316\316\205::<\1kkm\225\377\377" \
- "\377\3xxx::<;;=\204::<\1```\213\377\377\377\4\376\376\376\317\317\317" \
- "::<;;=\204::<\1\266\266\270\203\377\377\377\1\376\376\376\241\377\377" \
- "\377\1\377\377\375\202\377\377\377\1\204\204\206\202::<\1;;=\202::<\2" \
- "GGI\363\363\363\212\377\377\377\1\234\234\236\203::<\1;;=\202::<\1;;" \
- "=\221::<\1;;=\207::<\1;;=\202::<\1;;=\202::<\2``b\346\346\350\210\377" \
- "\377\377\1\376\376\376\215\377\377\377\1\234\234\234\207::<\3;;=::<;" \
- ";=\221::<\1;;=\203::<\1;;=\202::<\1\316\316\320\231\377\377\377\3\214" \
- "\305@\214\306>\214\305@\250\214\306>\2\215\307\77\342\362\316\212\377" \
- "\377\377\215\214\306>\1\250\325p\216\377\377\377\1\342\361\320\202\214" \
- "\306>\1\214\305@\211\214\306>\2\214\305@\343\361\316\215\377\377\377" \
- "\7\377\377\375\376\377\375\377\377\377\377\376\377\376\376\374\376\377" \
- "\377\377\377\377\202\376\377\377\202\377\377\375\4\377\377\377\242\320" \
- "d\211\306=\215\305@\212\214\306>\3\215\305>\214\306>\305\342\240\214" \
- "\377\377\377\6\377\376\377\377\377\377\377\377\375\377\375\377\376\377" \
- "\372\375\376\377\202\377\377\377\10\376\377\377\304\343\240\215\305@" \
- "\214\306>\216\306A\215\307\77\212\307>\215\307\77\212\214\306>\3\215" \
- "\307\77\214\306>\214\305@\202\215\307\77\211\214\306>\12\215\306C\212" \
- "\307<\215\307\77\215\305@\213\310\77\215\306A\323\352\266\377\376\377" \
- "\377\377\377\376\377\377\204\377\377\377\2\377\377\375\377\376\377\210" \
- "\377\377\377\10\376\377\377\377\376\377\361\370\346\225\311K\212\307" \
- ">\215\306A\214\305@\215\305>\210\214\306>\3\214\305@\214\306>\307\341" \
- "\240\203\376\377\377\2\377\377\375\376\377\377\210\377\377\377\5\376" \
- "\377\377\377\376\372\376\377\375\376\376\376\377\377\377\202\377\376" \
- "\377\1\334\355\301\210\214\306>\10\215\306A\213\310\77\215\305@\214\306" \
- ">\214\306<\215\306A\214\306>\254\322o\232\377\377\377\6\376\376\376\377" \
- "\377\377\376\376\376\302\302\302FFH;;=\206::<\1;;=\202::<\202;;=\203" \
- "::<\1;;=\204::<\3;;=::<;;=\202::<\1;;=\202::<\1;;=\203::<\2;;=::<\202" \
- ";;=\2__a\332\332\332\226\377\377\377\3\316\316\316::<;;=\203::<\1kkm" \
- "\222\377\377\377\7\376\376\376\377\377\377\376\376\376\363\363\363__" \
- "a::<;;=\204::<\1\203\203\203\202\377\377\377\2\376\376\376\377\377\377" \
- "\202\376\376\376\205\377\377\377\1kkm\202::<\1;;=\202::<\5TTV\377\377" \
- "\377\376\376\376\377\377\377\376\376\376\245\377\377\377\2\347\347\347" \
- "99;\202::<\1;;=\202::<\1\235\235\237\206\377\377\377\1\376\376\376\202" \
- "\377\377\377\2\376\376\376\234\234\234\224::<\1;;=\202::<\3""99;::<;" \
- ";=\204::<\1;;=\204::<\3;;=GGI\250\250\252\230\377\377\377\2\234\234\236" \
- ";;=\232::<\10;;=99;;;=::<;;=::<:::\316\316\316\230\377\377\377\10\377" \
- "\376\377\212\306@\214\305@\213\310=\214\306<\215\306A\214\307;\215\306" \
- "A\240\214\306>\10\214\305@\212\307<\214\306<\214\305@\212\306@\342\360" \
- "\315\376\377\377\377\376\377\210\377\377\377\212\214\306>\4\216\306\77" \
- "\212\306B\214\306>\250\325n\202\377\376\377\210\377\377\377\1\377\376" \
- "\377\202\377\377\377\5\376\377\375\342\362\316\214\305B\215\305@\214" \
- "\306<\210\214\306>\202\212\307>\5\343\361\320\377\377\377\377\377\375" \
- "\376\377\377\377\376\377\223\377\377\377\6\377\376\377\377\377\375\371" \
- "\372\364\223\312J\212\306@\215\305@\210\214\306>\10\214\305@\215\305" \
- ">\212\307>\304\343\240\377\377\375\377\377\377\377\377\375\377\376\377" \
- "\220\377\377\377\11\376\377\377\377\377\377\333\355\303\226\310K\213" \
- "\310\77\214\306>\215\305@\215\306A\214\305@\203\214\306>\7\215\305>\215" \
- "\305@\214\305@\212\307>\215\305>\215\307\77\215\306A\202\214\306<\5\215" \
- "\306A\213\305=\215\305@\215\307\77\213\305;\202\215\305@\13\215\307\77" \
- "\213\310\77\214\305@\215\307\77\212\307>\215\305>\214\306>\212\306@\235" \
- "\315U\347\365\334\377\376\377\220\377\377\377\15\376\376\376\377\377" \
- "\375\377\377\377\244\317c\213\307A\214\306<\213\307A\215\305>\215\305" \
- "<\215\307\77\214\306<\215\307\77\214\305@\202\215\307\77\12\214\305@" \
- "\215\306A\215\305@\234\315W\367\375\363\377\376\377\376\377\377\377\377" \
- "\375\376\377\377\377\376\377\220\377\377\377\10\260\331{\215\307=\212" \
- "\307>\213\307A\214\306>\215\305@\215\307\77\215\305>\210\214\306>\3\314" \
- "\345\253\377\377\377\376\377\375\202\377\376\377\2\377\377\377\376\377" \
- "\377\222\377\377\377\3\376\376\376\377\377\377\376\376\376\202\377\377" \
- "\377\3\364\364\364\220\220\220;;=\211::<\2;;=::<\202;;=\2::<;;=\202:" \
- ":<\4;;=::<;;=99;\203::<\2;;=99;\206::<\2GGI\247\247\251\203\377\377\377" \
- "\1\376\376\376\222\377\377\377\6\376\376\376\377\377\377\316\316\316" \
- ";;=99;;;=\202::<\2lln\376\376\376\202\377\377\377\1\376\376\376\221\377" \
- "\377\377\4\376\376\376\333\333\333FFH;;=\202::<\1;;=\202::<\1\265\265" \
- "\265\202\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376\377" \
- "\377\377\376\376\376\377\377\377\316\316\320\202::<\2;;=99;\202;;=\1" \
- "\264\264\266\202\377\377\377\1\376\376\376\244\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\205\205\207\204::<\3;;=FFH\363\363\363\206\377" \
- "\377\377\1\376\376\376\202\377\377\377\3\233\233\233::<;;=\220::<\3""9" \
- "9;;;=99;\202::<\1;;=\203::<\1;;=\204::<\7;;=::<SSU\250\250\252\362\362" \
- "\364\377\377\377\376\376\376\225\377\377\377\3\376\376\376\377\377\377" \
- "\235\235\237\202::<\1;;=\231::<\2;;=99;\204::<\1\316\316\316\230\377" \
- "\377\377\10\377\377\373\212\311=\212\306@\216\306A\215\305>\215\307\77" \
- "\214\306>\215\306A\240\214\306>\7\214\306<\214\306>\216\306\77\214\306" \
- ">\214\305@\343\361\320\377\377\375\211\377\377\377\210\214\306>\10\213" \
- "\307A\212\306@\215\305@\212\307<\215\307\77\247\324o\375\377\376\376" \
- "\377\377\211\377\377\377\7\376\377\375\377\377\377\377\377\375\342\360" \
- "\315\214\305@\213\305=\215\307\77\210\214\306>\10\215\305>\215\307\77" \
- "\343\361\316\376\376\376\377\376\377\376\377\377\377\377\375\376\377" \
- "\372\220\377\377\377\10\376\377\377\377\376\377\377\377\375\377\376\374" \
- "\376\377\375\343\362\321\212\307>\214\307;\210\214\306>\4\215\307=\215" \
- "\304B\213\307A\305\342\240\203\377\377\377\1\376\377\377\222\377\377" \
- "\377\21\377\376\377\367\374\365\267\332\206\215\306A\212\306@\214\306" \
- "<\214\306>\215\306A\215\307\77\214\306>\214\305@\212\306B\212\306@\212" \
- "\307<\215\307\77\214\306>\214\305@\202\215\305@\5\214\305@\214\306>\214" \
- "\305@\212\307>\215\306A\202\214\305@\11\214\307;\214\306>\215\306A\214" \
- "\305@\215\305>\212\306@\222\311I\306\343\240\366\373\364\224\377\377" \
- "\377\6\303\342\237\217\304@\214\306<\214\306>\215\306C\212\306B\204\214" \
- "\305@\1\215\306A\202\214\305@\11\215\306A\214\306<\214\306>\341\361\314" \
- "\377\377\377\376\377\375\377\377\377\377\375\377\377\377\375\221\377" \
- "\377\377\10\370\373\364\224\307N\215\305@\215\305>\212\307<\215\306A" \
- "\212\307<\215\306A\210\214\306>\10\215\307=\346\364\332\376\377\375\376" \
- "\377\373\377\377\377\376\376\377\377\376\377\377\377\375\230\377\377" \
- "\377\5\346\346\350\204\204\206GGI::<;;=\202::<\5;;=::<;;=::<;;=\202:" \
- ":<\3;;=::<;;=\202::<\5;;=99;;;=::<;;=\207::<\3FFH\234\234\234\363\363" \
- "\363\203\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376\202" \
- "\377\377\377\4\316\316\316::<;;=99;\202;;=\1kkm\202\377\377\377\1\376" \
- "\376\376\220\377\377\377\1\376\376\376\202\377\377\377\5\376\376\376" \
- "\266\266\26699;;;=::<\202;;=\3::<GGG\332\332\332\207\377\377\377\2\376" \
- "\376\376\204\204\206\202;;=\4::<;;=::<SSU\252\377\377\377\2\376\376\376" \
- "\346\346\350\202::<\5;;=::<99;;;;\266\266\266\203\377\377\377\1\376\376" \
- "\376\205\377\377\377\3\235\235\235::<99;\220::<\1;;=\205::<\203;;=\1" \
- "99;\203::<\3SSS\221\221\221\316\316\316\205\377\377\377\1\376\376\376" \
- "\222\377\377\377\1\376\376\376\203\377\377\377\3\234\234\236::<;;=\232" \
- "::<\7""99;::<;:\77::<;;=99;\317\317\321\230\377\377\377\7\377\375\377" \
- "\214\306<\213\307A\215\305>\215\307\77\212\307>\216\306\77\241\214\306" \
- ">\1\215\306C\202\215\305@\5\212\306@\215\307=\343\361\320\377\377\377" \
- "\377\376\377\210\377\377\377\210\214\306>\10\215\305<\215\307\77\216" \
- "\306\77\214\306>\216\305C\252\324r\377\377\377\377\377\373\211\377\377" \
- "\377\7\375\377\376\377\377\377\377\375\376\343\361\316\215\307=\212\307" \
- ">\215\305>\210\214\306>\10\214\305@\215\305<\342\362\316\377\377\375" \
- "\377\376\377\375\377\374\376\376\377\376\377\377\222\377\377\377\1\375" \
- "\377\372\202\377\377\377\3\377\376\377\304\341\237\215\307\77\210\214" \
- "\306>\10\212\307;\215\307\77\213\305=\305\342\240\377\377\377\377\376" \
- "\374\377\377\375\376\377\377\221\377\377\377\22\377\376\377\377\377\375" \
- "\376\377\377\377\375\376\361\367\351\270\334\204\214\306>\215\307\77" \
- "\214\305@\212\306@\213\307A\212\306@\213\310\77\214\306>\215\304B\214" \
- "\306>\212\307<\214\306>\202\216\306A\6\214\306>\213\310\77\214\305@\215" \
- "\305<\215\305>\215\307=\202\213\310\77\10\215\306A\214\306>\215\306A" \
- "\222\311I\300\336\226\361\370\346\376\376\376\377\377\377\202\377\376" \
- "\377\1\376\377\373\217\377\377\377\10\377\377\375\347\365\333\214\307" \
- ";\211\305A\213\304\77\215\307\77\215\305<\213\310\77\202\214\306>\1\215" \
- "\307\77\203\214\306>\4\215\307\77\214\306>\215\306A\275\337\223\202\377" \
- "\377\377\5\377\376\377\377\377\377\376\377\375\377\376\377\376\377\377" \
- "\220\377\377\377\10\375\377\376\331\357\301\215\307\77\215\305>\216\305" \
- "C\211\306=\220\305A\211\307@\210\214\306>\10\214\305@\246\321e\377\377" \
- "\377\377\376\377\376\377\377\377\377\375\376\377\377\377\376\377\227" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\363\363\363\266\266\270" \
- "__a\207::<\202;;=\203::<\2;;=99;\202;;=\2""99;::<\202;;=\1::<\203;;=" \
- "\3^^^\250\250\250\363\363\363\203\377\377\377\1\376\376\376\202\377\377" \
- "\377\1\376\376\376\224\377\377\377\4\316\316\316999::<;;=\202::<\1ll" \
- "l\205\377\377\377\1\376\376\376\217\377\377\377\6\376\376\376\377\377" \
- "\377\376\376\376\204\204\204::<;;=\203::<\3:::TTT\363\363\363\206\377" \
- "\377\377\10\347\347\347;;;99;::<;;=::<:::\234\234\236\253\377\377\377" \
- "\3\376\376\376lln;;=\202::<\3;;=999SSS\202\377\377\377\1\376\376\376" \
- "\203\377\377\377\4\376\376\376\377\377\377\376\376\376\234\234\234\223" \
- "::<\1""99;\202::<\1;;=\203::<\5kkmxxz\235\235\237\301\301\301\346\346" \
- "\346\207\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\221" \
- "\377\377\377\1\376\376\376\202\377\377\377\3\235\235\235::<;;=\232::" \
- "<\2;;=99;\202::<\3;;=::<\316\316\316\230\377\377\377\10\373\377\376\216" \
- "\306A\214\306<\213\304A\212\306@\214\305@\214\304\77\215\307\77\240\214" \
- "\306>\6\214\306<\215\306A\215\305@\216\310@\217\304@\341\361\314\212" \
- "\377\377\377\210\214\306>\7\215\307\77\213\310\77\213\305=\215\307\77" \
- "\214\304\77\253\323r\374\377\373\211\377\377\377\1\377\376\377\203\377" \
- "\377\377\3\342\362\315\215\305@\215\307=\211\214\306>\10\214\306<\215" \
- "\304B\341\363\313\374\377\375\376\376\377\377\377\377\377\375\376\377" \
- "\377\375\221\377\377\377\7\376\377\375\376\376\377\377\377\377\375\377" \
- "\374\377\377\377\377\377\375\253\323p\210\214\306>\5\215\307\77\215\305" \
- ">\217\304@\305\342\237\376\377\375\202\377\377\377\1\377\377\375\220" \
- "\377\377\377\1\376\377\377\202\377\376\377\202\376\377\375\202\377\377" \
- "\377\5\360\370\351\311\347\247\245\320e\215\305>\212\307>\202\214\306" \
- ">\5\215\306A\212\307>\215\305@\214\306>\214\306<\202\214\306>\2\214\306" \
- "<\214\306>\202\216\306A\14\214\306>\215\306A\215\305<\214\306>\213\305" \
- "=\255\331x\323\353\267\366\374\362\377\377\377\377\377\375\377\377\377" \
- "\376\377\377\217\377\377\377\2\376\376\376\377\377\377\202\377\377\375" \
- "\11\244\317d\214\306>\213\307A\214\306>\214\305@\214\306>\215\306A\214" \
- "\306<\215\307\77\202\214\306>\202\214\305@\13\215\305<\215\305@\230\316" \
- "V\370\373\360\376\377\375\377\377\377\377\376\377\376\376\376\377\377" \
- "\375\377\376\377\376\377\377\220\377\377\377\10\376\376\376\377\376\377" \
- "\262\327x\214\306>\216\306A\215\307=\215\305<\215\306A\211\214\306>\6" \
- "\215\306C\307\341\240\376\377\373\376\377\377\376\377\375\376\376\374" \
- "\236\377\377\377\4\346\346\350\266\266\270\204\204\206SSU\202::<\1;;" \
- "=\202::<\1;;=\202::<\202;;=\3""99;::<;;=\203::<\4GGIxxz\247\247\247\347" \
- "\347\347\212\377\377\377\1\376\376\376\223\377\377\377\1\364\364\364" \
- "\205\316\316\316\1\332\332\332\203\377\377\377\202\376\376\376\221\377" \
- "\377\377\1\376\376\376\202\377\377\377\202\316\316\316\203\316\316\320" \
- "\3\316\316\316\317\317\317\346\346\346\206\377\377\377\5\346\346\346" \
- "\316\316\316\317\317\317\316\316\316\315\315\315\202\316\316\316\1\363" \
- "\363\363\250\377\377\377\1\376\376\376\203\377\377\377\3\346\346\346" \
- "\315\315\315\317\317\317\202\316\316\320\3\317\317\317\315\315\315\363" \
- "\363\363\202\377\377\377\202\376\376\376\204\377\377\377\3\346\346\346" \
- "\316\316\316\316\316\320\224\316\316\316\1\315\315\315\203\377\377\377" \
- "\1\376\376\376\215\377\377\377\1\376\376\376\225\377\377\377\2\346\346" \
- "\346\317\317\317\232\316\316\316\1\317\317\317\203\316\316\316\4\317" \
- "\317\317\315\315\315\316\316\316\363\363\363\231\377\377\377\3\340\361" \
- "\317\342\360\317\342\362\316\202\343\361\316\2\342\360\315\343\361\316" \
- "\240\342\361\320\10\342\362\316\342\361\320\343\363\317\341\360\317\342" \
- "\361\320\370\373\364\376\377\375\376\377\377\210\377\377\377\210\342" \
- "\361\320\7\341\360\317\342\362\316\343\361\316\342\360\314\342\361\320" \
- "\350\364\336\377\376\374\211\377\377\377\10\377\376\377\377\377\375\377" \
- "\377\377\377\377\375\370\373\362\341\360\321\340\357\316\342\362\316" \
- "\210\342\361\320\3\342\362\316\342\361\320\371\373\360\203\377\377\377" \
- "\202\377\376\377\220\377\377\377\4\377\377\375\376\376\376\377\376\377" \
- "\376\377\375\203\377\377\377\1\365\375\362\210\342\361\320\4\341\360" \
- "\321\342\361\322\343\363\317\360\367\345\224\377\377\377\7\376\377\377" \
- "\376\377\375\377\377\375\377\376\377\377\377\375\377\375\376\377\376" \
- "\377\202\377\377\377\30\376\376\377\364\370\351\333\354\277\277\337\224" \
- "\247\324k\224\313K\214\305@\214\306>\212\306@\214\306>\214\305B\215\306" \
- "C\215\307\77\212\306@\214\306>\215\307\77\241\321c\257\330|\304\342\242" \
- "\341\361\315\377\377\377\377\376\377\376\377\373\377\377\377\202\377" \
- "\377\375\1\377\376\377\203\377\377\377\1\376\377\377\212\377\377\377" \
- "\1\376\376\376\203\377\377\377\13\376\376\374\372\372\370\342\361\320" \
- "\343\361\316\342\362\316\341\360\317\342\361\320\341\360\317\342\362" \
- "\316\342\361\322\342\361\320\202\341\361\315\6\342\361\320\341\360\317" \
- "\343\361\315\343\361\320\356\371\350\377\376\377\203\377\377\377\1\376" \
- "\377\375\202\377\377\377\1\376\377\375\222\377\377\377\6\366\373\364" \
- "\342\361\320\342\362\316\342\360\317\341\362\316\343\361\320\210\342" \
- "\361\320\10\341\362\316\341\361\315\352\364\334\377\377\377\377\376\377" \
- "\377\377\377\376\377\377\376\377\375\222\377\377\377\202\376\376\376" \
- "\202\377\377\377\1\376\376\376\202\377\377\377\1\376\376\376\202\377" \
- "\377\377\3\376\376\376\377\377\377\375\375\375\202\377\377\377\5\363" \
- "\363\363\316\316\316\264\264\264\235\235\235\233\233\233\202kkk\202k" \
- "km\3llnkkmyy{\202\234\234\236\6\316\316\320\346\346\346\377\377\377\376" \
- "\376\376\377\377\377\376\376\376\204\377\377\377\1\376\376\376\204\377" \
- "\377\377\1\376\376\376\240\377\377\377\1\376\376\376\231\377\377\377" \
- "\1\375\375\375\203\377\377\377\1\376\376\376\214\377\377\377\1\376\376" \
- "\376\202\377\377\377\1\376\376\376\242\377\377\377\1\376\376\376\206" \
- "\377\377\377\3\376\376\376\377\377\377\376\376\376\204\377\377\377\1" \
- "\376\376\376\202\377\377\377\202\376\376\376\225\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\202\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\214\377\377\377\3\376\376\376\377\377\377\376\376\376\265" \
- "\377\377\377\1\375\375\375\234\377\377\377\7\376\377\377\377\376\377" \
- "\376\377\377\376\376\374\377\376\377\377\377\377\377\377\375\240\377" \
- "\377\377\1\377\377\375\202\377\377\377\5\377\376\377\376\376\376\377" \
- "\376\377\376\376\377\377\377\375\221\377\377\377\7\375\376\377\377\377" \
- "\377\377\376\377\377\377\375\376\377\377\377\377\373\377\376\377\210" \
- "\377\377\377\5\377\376\377\377\377\377\376\376\374\376\377\377\377\377" \
- "\377\202\377\377\375\1\376\377\377\210\377\377\377\6\376\377\377\375" \
- "\376\377\377\376\377\377\377\377\376\377\377\377\377\377\202\377\377" \
- "\375\224\377\377\377\202\377\376\377\2\374\377\377\377\376\377\210\377" \
- "\377\377\3\376\377\377\376\376\376\376\377\377\202\377\377\377\3\375" \
- "\377\376\377\377\377\377\376\377\220\377\377\377\202\377\376\377\2\376" \
- "\377\377\375\376\377\202\377\377\377\4\377\377\375\377\376\377\377\377" \
- "\377\377\377\375\202\376\377\377\7\377\377\377\377\376\377\377\377\377" \
- "\376\377\375\370\373\364\344\357\315\342\361\320\202\342\362\315\14\340" \
- "\357\316\345\360\316\376\377\373\376\376\376\377\377\377\377\375\376" \
- "\377\377\375\377\377\377\375\377\376\377\377\377\377\376\377\377\377" \
- "\375\202\376\377\375\5\376\377\377\377\377\377\377\377\375\376\376\376" \
- "\377\376\377\214\377\377\377\1\376\376\376\202\377\377\377\5\377\377" \
- "\375\376\375\377\377\377\377\376\376\377\377\377\375\204\377\377\377" \
- "\1\377\377\375\205\377\377\377\202\377\376\377\2\377\377\377\377\377" \
- "\375\202\377\377\377\202\376\377\377\222\377\377\377\5\377\377\375\377" \
- "\377\377\377\377\375\377\377\377\377\377\375\202\377\377\377\1\377\376" \
- "\372\212\377\377\377\1\377\375\377\202\377\377\377\3\377\376\377\377" \
- "\377\377\377\377\375\225\377\377\377\1\376\376\376\211\377\377\377\1" \
- "\376\376\376\204\377\377\377\1\376\376\376\205\377\377\377\1\376\376" \
- "\376\206\377\377\377\3\376\376\376\377\377\377\376\376\376\206\377\377" \
- "\377\1\376\376\376\233\377\377\377\1\376\376\376\203\377\377\377\5\376" \
- "\376\376\377\377\377\376\376\376\377\377\377\376\376\376\223\377\377" \
- "\377\3\376\376\376\377\377\377\376\376\376\205\377\377\377\3\376\376" \
- "\376\377\377\377\376\376\376\203\377\377\377\3\376\376\376\377\377\377" \
- "\376\376\376\203\377\377\377\1\376\376\376\205\377\377\377\1\376\376" \
- "\376\246\377\377\377\3\376\376\376\377\377\377\376\376\376\220\377\377" \
- "\377\1\376\376\376\246\377\377\377\1\376\376\376\225\377\377\377\1\376" \
- "\376\376\202\377\377\377\1\376\376\376\240\377\377\377\1\376\376\376" \
- "\230\377\377\377\6\377\377\375\377\377\377\377\376\377\376\377\375\374" \
- "\377\377\376\375\377\242\377\377\377\202\377\376\377\6\376\376\376\375" \
- "\376\377\377\377\377\377\377\375\377\377\377\376\377\375\220\377\377" \
- "\377\7\377\377\375\377\377\377\377\377\375\377\375\376\376\377\375\376" \
- "\377\377\376\376\376\212\377\377\377\4\377\376\377\377\377\375\377\377" \
- "\377\377\377\375\203\377\376\377\210\377\377\377\5\377\377\375\377\377" \
- "\377\377\375\376\377\376\377\377\377\375\202\377\377\377\1\376\377\377" \
- "\221\377\377\377\1\375\376\377\203\377\377\375\2\376\377\375\377\375" \
- "\376\211\377\377\377\204\377\376\377\4\377\377\377\376\377\375\377\377" \
- "\375\377\376\377\221\377\377\377\5\376\377\377\376\376\376\377\377\373" \
- "\376\376\377\376\377\377\202\377\377\377\2\377\376\377\377\377\375\202" \
- "\377\377\377\7\377\377\375\377\376\377\376\376\377\377\377\377\376\377" \
- "\377\376\377\375\376\377\377\202\377\377\377\203\376\377\377\2\377\377" \
- "\377\376\376\374\202\377\376\377\13\376\376\376\377\377\375\377\377\377" \
- "\377\375\376\376\377\377\377\377\377\376\376\377\377\376\377\376\376" \
- "\374\376\377\377\377\377\375\221\377\377\377\203\377\377\375\4\377\377" \
- "\377\377\377\375\377\376\377\376\376\376\210\377\377\377\1\377\377\373" \
- "\203\377\377\377\1\377\377\375\202\376\377\377\222\377\377\377\1\377" \
- "\377\375\202\377\376\377\3\377\377\377\377\376\377\377\376\374\202\376" \
- "\377\377\210\377\377\377\4\377\377\375\377\377\377\376\377\375\377\375" \
- "\377\202\376\377\377\1\377\376\375\227\377\377\377\1\376\376\376\207" \
- "\377\377\377\1\376\376\376\217\377\377\377\1\376\376\376\205\377\377" \
- "\377\1\376\376\376\204\377\377\377\1\376\376\376\233\377\377\377\1\376" \
- "\376\376\211\377\377\377\1\376\376\376\222\377\377\377\1\376\376\376" \
- "\206\377\377\377\1\376\376\376\207\377\377\377\1\376\376\376\262\377" \
- "\377\377\1\376\376\376\212\377\377\377\1\376\376\376\202\377\377\377" \
- "\1\376\376\376\202\377\377\377\1\376\376\376\225\377\377\377\1\376\376" \
- "\376\306\377\377\377\1\376\376\376\235\377\377\377\7\377\376\377\376" \
- "\377\377\377\377\377\377\377\375\376\375\377\377\377\375\377\376\377" \
- "\241\377\377\377\1\376\377\377\203\377\377\377\3\377\377\375\377\375" \
- "\376\377\376\377\221\377\377\377\202\376\377\377\5\377\377\377\377\377" \
- "\375\377\377\377\377\376\377\377\377\375\211\377\377\377\203\377\377" \
- "\375\202\377\377\377\202\376\377\377\1\377\377\375\212\377\377\377\202" \
- "\376\377\375\3\376\377\377\377\377\375\377\376\377\223\377\377\377\6" \
- "\377\377\375\377\376\377\374\377\377\377\377\377\377\376\377\376\377" \
- "\375\210\377\377\377\3\377\377\375\376\377\377\377\377\375\202\377\377" \
- "\377\1\377\377\375\223\377\377\377\4\376\376\376\377\377\375\376\376" \
- "\376\377\376\377\202\377\377\375\1\376\376\376\206\377\377\377\1\377" \
- "\377\375\215\377\377\377\1\377\377\375\202\377\377\377\5\376\377\377" \
- "\377\377\377\376\376\374\377\377\377\377\376\377\202\377\377\377\1\376" \
- "\376\376\221\377\377\377\7\376\377\375\377\375\377\377\377\377\376\377" \
- "\377\377\377\377\377\377\373\377\376\377\202\377\377\377\1\377\377\375" \
- "\202\377\377\377\1\377\377\375\204\377\377\377\6\376\376\377\377\377" \
- "\375\376\377\377\377\377\375\377\376\377\375\377\374\222\377\377\377" \
- "\3\376\377\375\377\377\377\376\377\375\203\376\377\377\1\377\376\377" \
- "\211\377\377\377\7\377\377\373\377\376\377\377\377\375\377\377\377\377" \
- "\376\377\376\376\376\376\377\377")
-
-
diff --git a/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend b/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend
deleted file mode 100644
index 5a82fc872..000000000
--- a/meta-agl-profile-core/recipes-core/psplash/psplash_git.bbappend
+++ /dev/null
@@ -1,9 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://psplash-colors.h"
-
-SPLASH_IMAGES="file://psplash-poky-img.h;outsuffix=default"
-
-do_configure_append () {
- cp -f ${WORKDIR}/psplash-colors.h ${S}
-}
diff --git a/meta-agl-profile-core/recipes-devtools/gdb/.appends.core b/meta-agl-profile-core/recipes-devtools/gdb/.appends.core
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-devtools/gdb/.appends.core
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend b/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend
deleted file mode 100644
index 43807bd12..000000000
--- a/meta-agl-profile-core/recipes-devtools/json-c/json-c_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_OECONF += "--enable-threading"
diff --git a/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb b/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb
deleted file mode 100644
index 4c0bda071..000000000
--- a/meta-agl-profile-core/recipes-devtools/low-level-can-generator/low-level-can-generator_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Low level CAN generator"
-DESCRIPTION = "Generator used to customize low level CAN service with customs signals"
-SECTION = "devel"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake pkgconfig
-BBCLASSEXTEND = "nativesdk"
-DEPENDS = " cmake-apps-module"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/low-level-can-generator;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "0a3e354c3d81866e1a755367ab5592b3ced868bb"
-
-PV = "${AGLVERSION}"
-S = "${WORKDIR}/git"
-
diff --git a/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
deleted file mode 100644
index 18621dbfe..000000000
--- a/meta-agl-profile-core/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-RDEPENDS_${PN} += "nativesdk-low-level-can-generator \
- nativesdk-cmake-apps-module \
- nativesdk-cmake-apps-module-doc \
-"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb b/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb
deleted file mode 100644
index ab7e8afa9..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-asyncssh_2.3.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "\
-AsyncSSH is a Python package which provides an asynchronous client and \
-server implementation of the SSHv2 protocol on top of the Python \
-asyncio framework."
-HOMEPAGE = "https://github.com/ronf/asyncssh"
-LICENSE = "EPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9fc0efef5228704e7f5b37f27192723"
-
-SRC_URI[sha256sum] = "44bda34c7123f00c3df95d24e2dc8d43c4d17b456fbb8c434ef4f4a7ebb5265e"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += "${PYTHON_PN}-asyncio ${PYTHON_PN}-cryptography"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb b/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb
deleted file mode 100644
index 5ff2d4ecf..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-dependency_0.5.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "pytest-dependency manages dependencies of tests."
-HOMEPAGE = "https://github.com/RKrahl/pytest-dependency"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=35b9938ae48d25e6b8306232e98463dd"
-
-SRC_URI[sha256sum] = "c2a892906192663f85030a6ab91304e508e546cddfe557d692d61ec57a1d946b"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb b/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb
deleted file mode 100644
index 5ed9b1d9d..000000000
--- a/meta-agl-profile-core/recipes-devtools/python/python3-pytest-reverse_1.0.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "pytest-reverse is a pytest plugin to reverse test order"
-HOMEPAGE = "https://github.com/adamchainz/pytest-reverse"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=caf1f407ae86ecd57ab721dff94079b7"
-
-SRC_URI[sha256sum] = "40cbc47df8a262fed778e500f4d0b17d2d08ef8b9fbf899c0bab9488be192aac"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend b/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend
deleted file mode 100644
index 1a6a98b7f..000000000
--- a/meta-agl-profile-core/recipes-devtools/qemu/qemu_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-QEMU_TARGETS_class-target_aglegvirt = " aarch64 x86_64"
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts
deleted file mode 100755
index 1d1a5a059..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-#
-# Copyright 2017 IoT.bzh.
-
-# Author: Ronan Le Martret <ronan.lemartret@iot.bzh>
-#
-
-# The following script will run all the scriptlets found in #SYSCONFDIR#/agl-postinsts.
-
-agl_pi_dir="#SYSCONFDIR#/agl-postinsts"
-
-POSTINST_LOGGING=1
-LOGFILE=/var/log/agl-postinstall.log
-
-[ -e $LOGFILE ] && mv ${LOGFILE} ${LOGFILE}.old.$(date +%F--%H%M.%S)
-
-append_log=">>$LOGFILE 2>&1"
-
-exec_postinst_scriptlets() {
- for i in `ls $agl_pi_dir`; do
- i=$agl_pi_dir/$i
- echo "Running postinst $i..."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log
- if [ -x $i ]; then
- eval sh -c $i $append_log
- if [ $? -eq 0 ]; then
- rm $i
- else
- echo "ERROR: postinst $i failed."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log
- remove_agl_pi_dir=0
- fi
- else
- echo "ERROR: postinst $i do not exists or do not have execute permission."
- [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i do not exists or do not have execute permission." $append_log
- remove_agl_pi_dir=0
- fi
- done
-}
-
-remove_agl_pi_dir=1
-exec_postinst_scriptlets
-systemctl daemon-reload
-
-# since all postinstalls executed successfully, remove the postinstalls directory
-if [ $remove_agl_pi_dir = 1 ]; then
- rm -rf $agl_pi_dir
-fi
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service
deleted file mode 100644
index 8f8667db6..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=Run pending agl postinsts
-DefaultDependencies=no
-After=#SYSTEMD_SERVICE_AFTER#
-Before=#SYSTEMD_SERVICE_BEFORE#
-ConditionPathExists=#SYSCONFDIR#/agl-postinsts
-
-[Service]
-Type=oneshot
-StandardOutput=journal+console
-ExecStart=#SBINDIR#/run-agl-postinsts
-ExecStartPost=#BASE_BINDIR#/systemctl disable run-agl-postinsts.service
-RemainAfterExit=No
-TimeoutSec=0
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb b/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb
deleted file mode 100644
index 38bc66df8..000000000
--- a/meta-agl-profile-core/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Runs AGL postinstall scripts on first boot of the target device"
-SECTION = "devel"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI = "file://run-agl-postinsts \
- file://run-agl-postinsts.service"
-
-S = "${WORKDIR}"
-
-inherit allarch systemd
-
-SYSTEMD_SERVICE_${PN} = "run-agl-postinsts.service"
-
-SYSTEMD_SERVICE_AFTER ?= "dbus.service cynagora.service"
-
-SYSTEMD_SERVICE_BEFORE ?= "systemd-user-sessions.service"
-
-do_configure() {
- :
-}
-
-do_compile () {
- :
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/run-agl-postinsts ${D}${sbindir}/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/run-agl-postinsts.service ${D}${systemd_unitdir}/system/
-
- sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \
- -e 's:#SBINDIR#:${sbindir}:g' \
- -e 's:#BASE_BINDIR#:${base_bindir}:g' \
- -e 's:#LOCALSTATEDIR#:${localstatedir}:g' \
- ${D}${sbindir}/run-agl-postinsts \
- ${D}${systemd_unitdir}/system/run-agl-postinsts.service
-
- sed -i -e 's:#SYSTEMD_SERVICE_AFTER#:${SYSTEMD_SERVICE_AFTER}:g' \
- -e 's:#SYSTEMD_SERVICE_BEFORE#:${SYSTEMD_SERVICE_BEFORE}:g' \
- ${D}${systemd_unitdir}/system/run-agl-postinsts.service
-}
-
diff --git a/meta-agl-profile-core/recipes-extended/gperf/.appends.core b/meta-agl-profile-core/recipes-extended/gperf/.appends.core
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-extended/gperf/.appends.core
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch b/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch
deleted file mode 100644
index dd811c81b..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch
+++ /dev/null
@@ -1,472 +0,0 @@
-From 9cb7cb85f59509ac445116e9458c502cf6cb74e6 Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Thu, 9 Nov 2017 13:20:23 +0100
-Subject: [PATCH 2/2] src: most: add auto conf feature
-
-This patch adds the auto configuration feature to the driver
-sources. It is needed to have the driver configured automatically
-upon start up w/o the need for userspace to set up sysfs.
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/Makefile | 3 +
- driver/default_conf.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++
- driver/include/mostcore.h | 64 ++++++++++++++++++
- driver/mostcore/core.c | 120 ++++++++++++++++++++++++++++------
- 4 files changed, 331 insertions(+), 18 deletions(-)
- create mode 100644 driver/default_conf.c
-
-diff --git a/Makefile b/Makefile
-index e77a4b6..6d74ebe 100644
---- a/Makefile
-+++ b/Makefile
-@@ -6,6 +6,9 @@ obj-m := mostcore.o
- mostcore-y := mostcore/core.o
- CFLAGS_core.o := -I$(src)/include/
-
-+obj-m += default_conf.o
-+CFLAGL_default_conf.o := -I$(src)/include
-+
- obj-m += aim_cdev.o
- aim_cdev-y := aim-cdev/cdev.o
- CFLAGS_cdev.o := -I$(src)/include/
-diff --git a/default_conf.c b/default_conf.c
-new file mode 100644
-index 0000000..adb1786
---- /dev/null
-+++ b/default_conf.c
-@@ -0,0 +1,162 @@
-+/*
-+ * default_conf.c - Default configuration for the MOST channels.
-+ *
-+ * Copyright (C) 2017, Microchip Technology Germany II GmbH & Co. KG
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * This file is licensed under GPLv2.
-+ */
-+
-+#include "include/mostcore.h"
-+#include <linux/module.h>
-+
-+static struct most_config_probe config_probes[] = {
-+
-+ /* OS81118 Control */
-+ {
-+ .ch_name = "ep8f",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-crx",
-+ },
-+ {
-+ .ch_name = "ep0f",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-ctx",
-+ },
-+ /* OS81118 Async */
-+ {
-+ .ch_name = "ep8e",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-arx",
-+ },
-+ {
-+ .ch_name = "ep0e",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-atx",
-+ },
-+ /* OS81210 Control */
-+ {
-+ .ch_name = "ep87",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-crx",
-+ },
-+ {
-+ .ch_name = "ep07",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_CONTROL,
-+ .num_buffers = 16,
-+ .buffer_size = 64,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-ctx",
-+ },
-+ /* OS81210 Async */
-+ {
-+ .ch_name = "ep86",
-+ .cfg = {
-+ .direction = MOST_CH_RX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-arx",
-+ },
-+ {
-+ .ch_name = "ep06",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ASYNC,
-+ .num_buffers = 20,
-+ .buffer_size = 1522,
-+ },
-+ .aim_name = "networking",
-+ .aim_param = "inic-usb-atx",
-+ },
-+ /* Streaming channels (common for all INICs) */
-+ {
-+ .ch_name = "ep01",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_SYNC,
-+ .num_buffers = 8,
-+ .buffer_size = 2 * 12 * 42,
-+ .subbuffer_size = 12,
-+ .packets_per_xact = 42,
-+ },
-+ .aim_name = "sound",
-+ .aim_param = "ep01-6ch.6x16",
-+ },
-+ {
-+ .ch_name = "ep02",
-+ .cfg = {
-+ .direction = MOST_CH_TX,
-+ .data_type = MOST_CH_ISOC,
-+ .num_buffers = 8,
-+ .buffer_size = 40 * 188,
-+ .subbuffer_size = 188,
-+ .packets_per_xact = 2,
-+ },
-+ .aim_name = "cdev",
-+ .aim_param = "inic-usb-itx1",
-+ },
-+
-+ /* sentinel */
-+ {}
-+};
-+
-+static struct most_config_set config_set = {
-+ .probes = config_probes
-+};
-+
-+static int __init mod_init(void)
-+{
-+ most_register_config_set(&config_set);
-+ return 0;
-+}
-+
-+static void __exit mod_exit(void)
-+{
-+ most_deregister_config_set(&config_set);
-+}
-+
-+module_init(mod_init);
-+module_exit(mod_exit);
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
-+MODULE_DESCRIPTION("Default configuration for the MOST channels");
-diff --git a/include/mostcore.h b/include/mostcore.h
-index dc87121..3c00efb 100644
---- a/include/mostcore.h
-+++ b/include/mostcore.h
-@@ -145,6 +145,39 @@ struct most_channel_config {
- u16 dbr_size;
- };
-
-+/**
-+ * struct most_config_probe - matching rule, channel configuration and
-+ * the optional AIM name used for the automatic configuration and linking
-+ * of the channel
-+ * @dev_name: optional matching device id
-+ * ("usb_device 1-1:1.0," "dim2-12345678", etc.)
-+ * @ch_name: matching channel name ("ep8f", "ca2", etc.)
-+ * @cfg: configuration that will be applied for the found channel
-+ * @aim_name: optional name of the AIM that will be linked to the channel
-+ * ("cdev", "networking", "v4l", "sound")
-+ * @aim_param: AIM dependent parameter (it is the character device name
-+ * for the cdev AIM, PCM format for the audio AIM, etc.)
-+ */
-+struct most_config_probe {
-+ const char *dev_name;
-+ const char *ch_name;
-+ struct most_channel_config cfg;
-+ const char *aim_name;
-+ const char *aim_param;
-+};
-+
-+/**
-+ * struct most_config_set - the configuration set containing
-+ * several automatic configurations for the different channels
-+ * @probes: list of the matching rules and the configurations,
-+ * that must be ended with the empty structure
-+ * @list: list head used by the MostCore
-+ */
-+struct most_config_set {
-+ const struct most_config_probe *probes;
-+ struct list_head list;
-+};
-+
- /*
- * struct mbo - MOST Buffer Object.
- * @context: context for core completion handler
-@@ -285,6 +318,37 @@ struct most_aim {
- };
-
- /**
-+ * most_register_config_set - registers the configuration set
-+ *
-+ * @cfg_set: configuration set to be registered for the future probes
-+ *
-+ * The function registers the given configuration set.
-+ *
-+ * It is possible to register or deregister several configuration sets
-+ * independently. Different configuration sets may contain the
-+ * overlapped matching rules but later registered configuration set has
-+ * the higher priority over the prior registered set.
-+ *
-+ * The only the first matched configuration is applied for each
-+ * channel.
-+ *
-+ * The configuration for the channel is applied at the time of
-+ * registration of the parent most_interface.
-+ */
-+void most_register_config_set(struct most_config_set *cfg_set);
-+
-+/**
-+ * most_deregister_config_set - deregisters the prior registered
-+ * configuration set
-+ *
-+ * @cfg_set: configuration set to be deregistered
-+ *
-+ * The calling of this function does not change the current
-+ * configuration of the channels.
-+ */
-+void most_deregister_config_set(struct most_config_set *cfg_set);
-+
-+/**
- * most_register_interface - Registers instance of the interface.
- * @iface: Pointer to the interface instance description.
- *
-diff --git a/mostcore/core.c b/mostcore/core.c
-index 9e0a352..6035cf0 100644
---- a/mostcore/core.c
-+++ b/mostcore/core.c
-@@ -36,6 +36,8 @@ static struct class *most_class;
- static struct device *core_dev;
- static struct ida mdev_id;
- static int dummy_num_buffers;
-+static struct list_head config_probes;
-+struct mutex config_probes_mt; /* config_probes */
-
- struct most_c_aim_obj {
- struct most_aim *ptr;
-@@ -918,6 +920,30 @@ most_c_obj *get_channel_by_name(char *mdev, char *mdev_ch)
- return c;
- }
-
-+static int link_channel_to_aim(struct most_c_obj *c, struct most_aim *aim,
-+ char *aim_param)
-+{
-+ int ret;
-+ struct most_aim **aim_ptr;
-+
-+ if (!c->aim0.ptr)
-+ aim_ptr = &c->aim0.ptr;
-+ else if (!c->aim1.ptr)
-+ aim_ptr = &c->aim1.ptr;
-+ else
-+ return -ENOSPC;
-+
-+ *aim_ptr = aim;
-+ ret = aim->probe_channel(c->iface, c->channel_id,
-+ &c->cfg, &c->kobj, aim_param);
-+ if (ret) {
-+ *aim_ptr = NULL;
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
- /**
- * add_link_store - store() function for add_link attribute
- * @aim_obj: pointer to AIM object
-@@ -946,45 +972,33 @@ static ssize_t add_link_store(struct most_aim_obj *aim_obj,
- size_t len)
- {
- struct most_c_obj *c;
-- struct most_aim **aim_ptr;
- char buffer[STRING_SIZE];
- char *mdev;
- char *mdev_ch;
-- char *mdev_devnod;
-+ char *aim_param;
- char devnod_buf[STRING_SIZE];
- int ret;
- size_t max_len = min_t(size_t, len + 1, STRING_SIZE);
-
- strlcpy(buffer, buf, max_len);
-
-- ret = split_string(buffer, &mdev, &mdev_ch, &mdev_devnod);
-+ ret = split_string(buffer, &mdev, &mdev_ch, &aim_param);
- if (ret)
- return ret;
-
-- if (!mdev_devnod || *mdev_devnod == 0) {
-+ if (!aim_param || *aim_param == 0) {
- snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev,
- mdev_ch);
-- mdev_devnod = devnod_buf;
-+ aim_param = devnod_buf;
- }
-
- c = get_channel_by_name(mdev, mdev_ch);
- if (IS_ERR(c))
- return -ENODEV;
-
-- if (!c->aim0.ptr)
-- aim_ptr = &c->aim0.ptr;
-- else if (!c->aim1.ptr)
-- aim_ptr = &c->aim1.ptr;
-- else
-- return -ENOSPC;
--
-- *aim_ptr = aim_obj->driver;
-- ret = aim_obj->driver->probe_channel(c->iface, c->channel_id,
-- &c->cfg, &c->kobj, mdev_devnod);
-- if (ret) {
-- *aim_ptr = NULL;
-+ ret = link_channel_to_aim(c, aim_obj->driver, aim_param);
-+ if (ret)
- return ret;
-- }
-
- return len;
- }
-@@ -1679,6 +1693,73 @@ int most_deregister_aim(struct most_aim *aim)
- }
- EXPORT_SYMBOL_GPL(most_deregister_aim);
-
-+void most_register_config_set(struct most_config_set *cfg_set)
-+{
-+ mutex_lock(&config_probes_mt);
-+ list_add(&cfg_set->list, &config_probes);
-+ mutex_unlock(&config_probes_mt);
-+}
-+EXPORT_SYMBOL(most_register_config_set);
-+
-+void most_deregister_config_set(struct most_config_set *cfg_set)
-+{
-+ mutex_lock(&config_probes_mt);
-+ list_del(&cfg_set->list);
-+ mutex_unlock(&config_probes_mt);
-+}
-+EXPORT_SYMBOL(most_deregister_config_set);
-+
-+static int probe_aim(struct most_c_obj *c,
-+ const char *aim_name, const char *aim_param)
-+{
-+ struct most_aim_obj *aim_obj;
-+ char buf[STRING_SIZE];
-+
-+ list_for_each_entry(aim_obj, &aim_list, list) {
-+ if (!strcmp(aim_obj->driver->name, aim_name)) {
-+ strlcpy(buf, aim_param ? aim_param : "", sizeof(buf));
-+ return link_channel_to_aim(c, aim_obj->driver, buf);
-+ }
-+ }
-+ return 0;
-+}
-+
-+static bool probe_config_set(struct most_c_obj *c,
-+ const char *dev_name, const char *ch_name,
-+ const struct most_config_probe *p)
-+{
-+ int err;
-+
-+ for (; p->ch_name; p++) {
-+ if ((p->dev_name && strcmp(dev_name, p->dev_name)) ||
-+ strcmp(ch_name, p->ch_name))
-+ continue;
-+
-+ c->cfg = p->cfg;
-+ if (p->aim_name) {
-+ err = probe_aim(c, p->aim_name, p->aim_param);
-+ if (err)
-+ pr_err("failed to autolink %s to %s: %d\n",
-+ ch_name, p->aim_name, err);
-+ }
-+ return true;
-+ }
-+ return false;
-+}
-+
-+static void find_configuration(struct most_c_obj *c, const char *dev_name,
-+ const char *ch_name)
-+{
-+ struct most_config_set *plist;
-+
-+ mutex_lock(&config_probes_mt);
-+ list_for_each_entry(plist, &config_probes, list) {
-+ if (probe_config_set(c, dev_name, ch_name, plist->probes))
-+ break;
-+ }
-+ mutex_unlock(&config_probes_mt);
-+}
-+
- /**
- * most_register_interface - registers an interface with core
- * @iface: pointer to the instance of the interface description.
-@@ -1777,6 +1858,7 @@ struct kobject *most_register_interface(struct most_interface *iface)
- mutex_init(&c->start_mutex);
- mutex_init(&c->nq_mutex);
- list_add_tail(&c->list, &inst->channel_list);
-+ find_configuration(c, iface->description, channel_name);
- }
- pr_info("registered new MOST device mdev%d (%s)\n",
- inst->dev_id, iface->description);
-@@ -1880,6 +1962,8 @@ static int __init most_init(void)
- pr_info("init()\n");
- INIT_LIST_HEAD(&instance_list);
- INIT_LIST_HEAD(&aim_list);
-+ INIT_LIST_HEAD(&config_probes);
-+ mutex_init(&config_probes_mt);
- ida_init(&mdev_id);
-
- err = bus_register(&most_bus);
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch b/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch
deleted file mode 100644
index 4703844a1..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b269994be937cbb31c0d73ecc899ca8a545a6a4a Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 11:09:17 +0200
-Subject: [PATCH 3/5] core: remove kernel log for MBO status
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/mostcore/core.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/mostcore/core.c b/mostcore/core.c
-index 931efb9..595becc 100644
---- a/mostcore/core.c
-+++ b/mostcore/core.c
-@@ -1348,8 +1348,6 @@ static void most_write_completion(struct mbo *mbo)
- BUG_ON((!mbo) || (!mbo->context));
-
- c = mbo->context;
-- if (mbo->status == MBO_E_INVAL)
-- pr_info("WARN: Tx MBO status: invalid\n");
- if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE)))
- trash_mbo(mbo);
- else
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch b/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch
deleted file mode 100644
index 010d4b0d0..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a5fd2ae8d4a3b2a8f7a33a4ea469ea7ee0d946ef Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 15:36:38 +0200
-Subject: [PATCH 4/5] most: video: set device_caps
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/aim-v4l2/video.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c
-index e074841..6405a03 100644
---- a/aim-v4l2/video.c
-+++ b/aim-v4l2/video.c
-@@ -263,6 +263,7 @@ static int vidioc_querycap(struct file *file, void *priv,
- snprintf(cap->bus_info, sizeof(cap->bus_info),
- "%s", mdev->iface->description);
-
-+ cap->device_caps =
- cap->capabilities =
- V4L2_CAP_READWRITE |
- V4L2_CAP_TUNER |
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch b/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch
deleted file mode 100644
index ebaee9e14..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 7518453386ad3e82008186a6c9ca86ed8c136801 Mon Sep 17 00:00:00 2001
-From: Christian Gromm <christian.gromm@microchip.com>
-Date: Mon, 4 Sep 2017 16:08:38 +0200
-Subject: [PATCH 5/5] most: video: set V4L2_CAP_DEVICE_CAPS flag
-
-Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
----
- driver/aim-v4l2/video.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c
-index 6405a03..db75d4d 100644
---- a/aim-v4l2/video.c
-+++ b/aim-v4l2/video.c
-@@ -265,6 +265,7 @@ static int vidioc_querycap(struct file *file, void *priv,
-
- cap->device_caps =
- cap->capabilities =
-+ V4L2_CAP_DEVICE_CAPS |
- V4L2_CAP_READWRITE |
- V4L2_CAP_TUNER |
- V4L2_CAP_VIDEO_CAPTURE;
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch b/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch
deleted file mode 100644
index 59c6ae671..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From 63bcd9b421ae7927948bffec9566db47f40ea290 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Tue, 30 Jan 2018 17:34:09 +0100
-Subject: [PATCH] staging: most: dim2: fix startup sequence
-
-Platform specific initializations (pdata->init) must be done before DIM2
-IP module startup (dim_startup).
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 90 +++++++++++++++++++++++++++++++++++++++---------------------------------------------------
- 1 file changed, 39 insertions(+), 51 deletions(-)
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 893b8e4..e4629a5 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -155,38 +155,6 @@ void dimcb_on_error(u8 error_id, const char *error_message)
- }
-
- /**
-- * startup_dim - initialize the dim2 interface
-- * @pdev: platform device
-- */
--static int startup_dim(struct platform_device *pdev)
--{
-- struct dim2_hdm *dev = platform_get_drvdata(pdev);
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
-- u8 hal_ret;
-- int ret;
--
-- if (!pdata) {
-- pr_err("missing platform data\n");
-- return -EINVAL;
-- }
--
-- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-- if (ret)
-- return ret;
--
-- pr_info("sync: num of frames per sub-buffer: %u\n", fcnt);
-- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-- if (hal_ret != DIM_NO_ERROR) {
-- pr_err("dim_startup failed: %d\n", hal_ret);
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-- return -ENODEV;
-- }
--
-- return 0;
--}
--
--/**
- * try_start_dim_transfer - try to transfer a buffer on a channel
- * @hdm_ch: channel specific data
- *
-@@ -727,10 +695,12 @@ static void dma_free(struct mbo *mbo, u32 size)
- */
- static int dim2_probe(struct platform_device *pdev)
- {
-+ struct dim2_platform_data *pdata = pdev->dev.platform_data;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
- struct kobject *kobj;
-+ u8 hal_ret;
- int irq;
-
- dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
-@@ -745,38 +715,59 @@ static int dim2_probe(struct platform_device *pdev)
- if (IS_ERR(dev->io_base))
- return PTR_ERR(dev->io_base);
-
-+ if (!pdata) {
-+ dev_err(&pdev->dev, "missing platform data\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-+ if (ret)
-+ return ret;
-+
-+ dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt);
-+ hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-+ if (hal_ret != DIM_NO_ERROR) {
-+ dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret);
-+ ret = -ENODEV;
-+ goto err_bsp_destroy;
-+ }
-+
- irq = platform_get_irq(pdev, 0);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq);
-- return irq;
-+ ret = irq;
-+ goto err_shutdown_dim;
- }
-
- ret = devm_request_irq(&pdev->dev, irq, dim2_ahb_isr, 0,
- "dim2_ahb0_int", dev);
- if (ret) {
- dev_err(&pdev->dev, "failed to request ahb0_int irq %d\n", irq);
-- return ret;
-+ goto err_shutdown_dim;
- }
-
- irq = platform_get_irq(pdev, 1);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq);
-- return irq;
-+ ret = irq;
-+ goto err_shutdown_dim;
- }
-
- ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, 0,
- "dim2_mlb_int", dev);
- if (ret) {
- dev_err(&pdev->dev, "failed to request mlb_int irq %d\n", irq);
-- return ret;
-+ goto err_shutdown_dim;
- }
-
- init_waitqueue_head(&dev->netinfo_waitq);
- dev->deliver_netinfo = 0;
-- dev->netinfo_task = kthread_run(&deliver_netinfo_thread, (void *)dev,
-+ dev->netinfo_task = kthread_run(&deliver_netinfo_thread, dev,
- "dim2_netinfo");
-- if (IS_ERR(dev->netinfo_task))
-- return PTR_ERR(dev->netinfo_task);
-+ if (IS_ERR(dev->netinfo_task)) {
-+ ret = PTR_ERR(dev->netinfo_task);
-+ goto err_shutdown_dim;
-+ }
-
- for (i = 0; i < DMA_CHANNELS; i++) {
- struct most_channel_capability *cap = dev->capabilities + i;
-@@ -833,20 +824,17 @@ static int dim2_probe(struct platform_device *pdev)
- if (ret)
- goto err_unreg_iface;
-
-- ret = startup_dim(pdev);
-- if (ret) {
-- dev_err(&pdev->dev, "failed to initialize DIM2\n");
-- goto err_destroy_bus;
-- }
--
- return 0;
-
--err_destroy_bus:
-- dim2_sysfs_destroy(&dev->bus);
- err_unreg_iface:
- most_deregister_interface(&dev->most_iface);
- err_stop_thread:
- kthread_stop(dev->netinfo_task);
-+err_shutdown_dim:
-+ dim_shutdown();
-+err_bsp_destroy:
-+ if (pdata && pdata->destroy)
-+ pdata->destroy(pdata);
-
- return ret;
- }
-@@ -863,6 +851,10 @@ static int dim2_remove(struct platform_device *pdev)
- struct dim2_platform_data *pdata = pdev->dev.platform_data;
- unsigned long flags;
-
-+ dim2_sysfs_destroy(&dev->bus);
-+ most_deregister_interface(&dev->most_iface);
-+ kthread_stop(dev->netinfo_task);
-+
- spin_lock_irqsave(&dim_lock, flags);
- dim_shutdown();
- spin_unlock_irqrestore(&dim_lock, flags);
-@@ -870,10 +862,6 @@ static int dim2_remove(struct platform_device *pdev)
- if (pdata && pdata->destroy)
- pdata->destroy(pdata);
-
-- dim2_sysfs_destroy(&dev->bus);
-- most_deregister_interface(&dev->most_iface);
-- kthread_stop(dev->netinfo_task);
--
- /*
- * break link to local platform_device_id struct
- * to prevent crash by unload platform device module
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch
deleted file mode 100644
index 679fab79c..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From 8e16207392cd715ea88f6780981a3d55ab005588 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:23:37 +0100
-Subject: [PATCH] staging: most: dim2: use device tree
-
-Current dim2 driver expects the existence of a platform driver that
-implements the platform specific initialization and delivery of the irq
-numbers.
-
-This patch integrates the device tree activity and platform specific
-code into the driver.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
- hdm-dim2/dim2_hdm.h | 28 ----------------------------
- hdm-dim2/platform/dim2_arwen_mlb3.c | 165 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_arwen_mlb6.c | 169 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_h2_dt.c | 227 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_mx6q.c | 192 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- hdm-dim2/platform/dim2_mx6q_dt.c | 224 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 7 files changed, 193 insertions(+), 1034 deletions(-)
- delete mode 100644 hdm-dim2/dim2_hdm.h
- delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb3.c
- delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb6.c
- delete mode 100644 hdm-dim2/platform/dim2_h2_dt.c
- delete mode 100644 hdm-dim2/platform/dim2_mx6q.c
- delete mode 100644 hdm-dim2/platform/dim2_mx6q_dt.c
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index e4629a5..2dba917 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -14,6 +14,7 @@
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
- #include <linux/module.h>
-+#include <linux/of_platform.h>
- #include <linux/printk.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
-@@ -21,13 +22,13 @@
- #include <linux/interrupt.h>
- #include <linux/slab.h>
- #include <linux/io.h>
-+#include <linux/clk.h>
- #include <linux/dma-mapping.h>
- #include <linux/sched.h>
- #include <linux/kthread.h>
-
- #include <mostcore.h>
- #include "dim2_hal.h"
--#include "dim2_hdm.h"
- #include "dim2_errors.h"
- #include "dim2_sysfs.h"
-
-@@ -93,6 +94,9 @@ struct dim2_hdm {
- struct most_interface most_iface;
- char name[16 + sizeof "dim2-"];
- void __iomem *io_base;
-+ u8 clk_speed;
-+ struct clk *clk;
-+ struct clk *clk_pll;
- struct task_struct *netinfo_task;
- wait_queue_head_t netinfo_waitq;
- int deliver_netinfo;
-@@ -102,6 +106,12 @@ struct dim2_hdm {
- struct medialb_bus bus;
- void (*on_netinfo)(struct most_interface *,
- unsigned char, unsigned char *);
-+ void (*disable_platform)(struct platform_device *);
-+};
-+
-+struct dim2_platform_data {
-+ int (*enable)(struct platform_device *);
-+ void (*disable)(struct platform_device *);
- };
-
- #define iface_to_hdm(iface) container_of(iface, struct dim2_hdm, most_iface)
-@@ -686,6 +696,8 @@ static void dma_free(struct mbo *mbo, u32 size)
- dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address);
- }
-
-+static const struct of_device_id dim2_of_match[];
-+
- /*
- * dim2_probe - dim2 probe handler
- * @pdev: platform device structure
-@@ -695,7 +707,7 @@ static void dma_free(struct mbo *mbo, u32 size)
- */
- static int dim2_probe(struct platform_device *pdev)
- {
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
-+ const struct dim2_platform_data *pdata;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
-@@ -703,6 +715,8 @@ static int dim2_probe(struct platform_device *pdev)
- u8 hal_ret;
- int irq;
-
-+ enum { MLB_INT_IDX, AHB0_INT_IDX };
-+
- dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
- if (!dev)
- return -ENOMEM;
-@@ -710,29 +724,30 @@ static int dim2_probe(struct platform_device *pdev)
- dev->atx_idx = -1;
-
- platform_set_drvdata(pdev, dev);
-+
-+ dev->clk_speed = CLK_4096FS;
-+
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- dev->io_base = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(dev->io_base))
- return PTR_ERR(dev->io_base);
-
-- if (!pdata) {
-- dev_err(&pdev->dev, "missing platform data\n");
-- return -EINVAL;
-- }
--
-- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0;
-+ pdata = of_match_node(dim2_of_match, pdev->dev.of_node)->data;
-+ ret = pdata && pdata->enable ? pdata->enable(pdev) : 0;
- if (ret)
- return ret;
-
-+ dev->disable_platform = pdata ? pdata->disable : 0;
-+
- dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt);
-- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt);
-+ hal_ret = dim_startup(dev->io_base, dev->clk_speed, fcnt);
- if (hal_ret != DIM_NO_ERROR) {
- dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret);
- ret = -ENODEV;
-- goto err_bsp_destroy;
-+ goto err_disable_platform;
- }
-
-- irq = platform_get_irq(pdev, 0);
-+ irq = platform_get_irq(pdev, AHB0_INT_IDX);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq);
- ret = irq;
-@@ -746,7 +761,7 @@ static int dim2_probe(struct platform_device *pdev)
- goto err_shutdown_dim;
- }
-
-- irq = platform_get_irq(pdev, 1);
-+ irq = platform_get_irq(pdev, MLB_INT_IDX);
- if (irq < 0) {
- dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq);
- ret = irq;
-@@ -832,9 +847,9 @@ static int dim2_probe(struct platform_device *pdev)
- kthread_stop(dev->netinfo_task);
- err_shutdown_dim:
- dim_shutdown();
--err_bsp_destroy:
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-+err_disable_platform:
-+ if (dev->disable_platform)
-+ dev->disable_platform(pdev);
-
- return ret;
- }
-@@ -848,7 +863,6 @@ static int dim2_probe(struct platform_device *pdev)
- static int dim2_remove(struct platform_device *pdev)
- {
- struct dim2_hdm *dev = platform_get_drvdata(pdev);
-- struct dim2_platform_data *pdata = pdev->dev.platform_data;
- unsigned long flags;
-
- dim2_sysfs_destroy(&dev->bus);
-@@ -859,37 +873,187 @@ static int dim2_remove(struct platform_device *pdev)
- dim_shutdown();
- spin_unlock_irqrestore(&dim_lock, flags);
-
-- if (pdata && pdata->destroy)
-- pdata->destroy(pdata);
-+ if (dev->disable_platform)
-+ dev->disable_platform(pdev);
-+
-+ return 0;
-+}
-+
-+/* platform specific functions [[ */
-+
-+static int fsl_mx6_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, "mlb");
-+ if (IS_ERR_OR_NULL(dev->clk)) {
-+ dev_err(&pdev->dev, "unable to get mlb clock\n");
-+ return -EFAULT;
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ if (dev->clk_speed >= CLK_2048FS) {
-+ /* enable pll */
-+ dev->clk_pll = devm_clk_get(&pdev->dev, "pll8_mlb");
-+ if (IS_ERR_OR_NULL(dev->clk_pll)) {
-+ dev_err(&pdev->dev, "unable to get mlb pll clock\n");
-+ clk_disable_unprepare(dev->clk);
-+ return -EFAULT;
-+ }
-+
-+ writel(0x888, dev->io_base + 0x38);
-+ clk_prepare_enable(dev->clk_pll);
-+ }
-+
-+ return 0;
-+}
-+
-+static void fsl_mx6_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ if (dev->clk_speed >= CLK_2048FS)
-+ clk_disable_unprepare(dev->clk_pll);
-+
-+ clk_disable_unprepare(dev->clk);
-+}
-+
-+static int rcar_h2_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, NULL);
-+ if (IS_ERR(dev->clk)) {
-+ dev_err(&pdev->dev, "cannot get clock\n");
-+ return PTR_ERR(dev->clk);
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ if (dev->clk_speed >= CLK_2048FS) {
-+ /* enable MLP pll and LVDS drivers */
-+ writel(0x03, dev->io_base + 0x600);
-+ /* set bias */
-+ writel(0x888, dev->io_base + 0x38);
-+ } else {
-+ /* PLL */
-+ writel(0x04, dev->io_base + 0x600);
-+ }
-+
-
-- /*
-- * break link to local platform_device_id struct
-- * to prevent crash by unload platform device module
-- */
-- pdev->id_entry = NULL;
-+ /* BBCR = 0b11 */
-+ writel(0x03, dev->io_base + 0x500);
-+ writel(0x0002FF02, dev->io_base + 0x508);
-
- return 0;
- }
-
--static const struct platform_device_id dim2_id[] = {
-- { "medialb_dim2" },
-- { }, /* Terminating entry */
-+static void rcar_h2_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ clk_disable_unprepare(dev->clk);
-+
-+ /* disable PLLs and LVDS drivers */
-+ writel(0x0, dev->io_base + 0x600);
-+}
-+
-+static int rcar_m3_enable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+ u32 enable_512fs = dev->clk_speed == CLK_512FS;
-+ int ret;
-+
-+ dev->clk = devm_clk_get(&pdev->dev, NULL);
-+ if (IS_ERR(dev->clk)) {
-+ dev_err(&pdev->dev, "cannot get clock\n");
-+ return PTR_ERR(dev->clk);
-+ }
-+
-+ ret = clk_prepare_enable(dev->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed");
-+ return ret;
-+ }
-+
-+ /* PLL */
-+ writel(0x04, dev->io_base + 0x600);
-+
-+ writel(enable_512fs, dev->io_base + 0x604);
-+
-+ /* BBCR = 0b11 */
-+ writel(0x03, dev->io_base + 0x500);
-+ writel(0x0002FF02, dev->io_base + 0x508);
-+
-+ return 0;
-+}
-+
-+static void rcar_m3_disable(struct platform_device *pdev)
-+{
-+ struct dim2_hdm *dev = platform_get_drvdata(pdev);
-+
-+ clk_disable_unprepare(dev->clk);
-+
-+ /* disable PLLs and LVDS drivers */
-+ writel(0x0, dev->io_base + 0x600);
-+}
-+
-+/* ]] platform specific functions */
-+
-+enum dim2_platforms { FSL_MX6, RCAR_H2, RCAR_M3 };
-+
-+static struct dim2_platform_data plat_data[] = {
-+ [FSL_MX6] = { .enable = fsl_mx6_enable, .disable = fsl_mx6_disable },
-+ [RCAR_H2] = { .enable = rcar_h2_enable, .disable = rcar_h2_disable },
-+ [RCAR_M3] = { .enable = rcar_m3_enable, .disable = rcar_m3_disable },
-+};
-+
-+static const struct of_device_id dim2_of_match[] = {
-+ {
-+ .compatible = "fsl,imx6q-mlb150",
-+ .data = plat_data + FSL_MX6
-+ },
-+ {
-+ .compatible = "renesas,mlp",
-+ .data = plat_data + RCAR_H2
-+ },
-+ {
-+ .compatible = "rcar,medialb-dim2",
-+ .data = plat_data + RCAR_M3
-+ },
-+ {
-+ .compatible = "xlnx,axi4-os62420_3pin-1.00.a",
-+ },
-+ {
-+ .compatible = "xlnx,axi4-os62420_6pin-1.00.a",
-+ },
-+ {},
- };
-
--MODULE_DEVICE_TABLE(platform, dim2_id);
-+MODULE_DEVICE_TABLE(of, dim2_of_match);
-
- static struct platform_driver dim2_driver = {
- .probe = dim2_probe,
- .remove = dim2_remove,
-- .id_table = dim2_id,
- .driver = {
- .name = "hdm_dim2",
-+ .of_match_table = dim2_of_match,
- },
- };
-
- module_platform_driver(dim2_driver);
-
--MODULE_AUTHOR("Jain Roy Ambi <JainRoy.Ambi@microchip.com>");
- MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>");
- MODULE_DESCRIPTION("MediaLB DIM2 Hardware Dependent Module");
- MODULE_LICENSE("GPL");
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch
deleted file mode 100644
index 1b01fb156..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 839ad403a2d8081a6c15f6fc2836b01919338f3c Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:24:37 +0100
-Subject: [PATCH] staging: most: dim2: read clock speed from the device tree
-
-This implements reading of the clock speed parameter from the device
-tree.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- hdm-dim2/dim2_hdm.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 2 files changed, 113 insertions(+), 1 deletion(-)
- create mode 100644 Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 2dba917..05e1896 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -698,6 +698,42 @@ static void dma_free(struct mbo *mbo, u32 size)
-
- static const struct of_device_id dim2_of_match[];
-
-+static struct {
-+ const char *clock_speed;
-+ u8 clk_speed;
-+} clk_mt[] = {
-+ { "256fs", CLK_256FS },
-+ { "512fs", CLK_512FS },
-+ { "1024fs", CLK_1024FS },
-+ { "2048fs", CLK_2048FS },
-+ { "3072fs", CLK_3072FS },
-+ { "4096fs", CLK_4096FS },
-+ { "6144fs", CLK_6144FS },
-+ { "8192fs", CLK_8192FS },
-+};
-+
-+/**
-+ * get_dim2_clk_speed - converts string to DIM2 clock speed value
-+ *
-+ * @clock_speed: string in the format "{NUMBER}fs"
-+ * @val: pointer to get one of the CLK_{NUMBER}FS values
-+ *
-+ * By success stores one of the CLK_{NUMBER}FS in the *val and returns 0,
-+ * otherwise returns -EINVAL.
-+ */
-+static int get_dim2_clk_speed(const char *clock_speed, u8 *val)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(clk_mt); i++) {
-+ if (!strcmp(clock_speed, clk_mt[i].clock_speed)) {
-+ *val = clk_mt[i].clk_speed;
-+ return 0;
-+ }
-+ }
-+ return -EINVAL;
-+}
-+
- /*
- * dim2_probe - dim2 probe handler
- * @pdev: platform device structure
-@@ -708,6 +744,7 @@ static const struct of_device_id dim2_of_match[];
- static int dim2_probe(struct platform_device *pdev)
- {
- const struct dim2_platform_data *pdata;
-+ const char *clock_speed;
- struct dim2_hdm *dev;
- struct resource *res;
- int ret, i;
-@@ -725,7 +762,18 @@ static int dim2_probe(struct platform_device *pdev)
-
- platform_set_drvdata(pdev, dev);
-
-- dev->clk_speed = CLK_4096FS;
-+ ret = of_property_read_string(pdev->dev.of_node,
-+ "microchip,clock-speed", &clock_speed);
-+ if (ret) {
-+ dev_err(&pdev->dev, "missing dt property clock-speed\n");
-+ return ret;
-+ }
-+
-+ ret = get_dim2_clk_speed(clock_speed, &dev->clk_speed);
-+ if (ret) {
-+ dev_err(&pdev->dev, "bad dt property clock-speed\n");
-+ return ret;
-+ }
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- dev->io_base = devm_ioremap_resource(&pdev->dev, res);
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch b/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch
deleted file mode 100644
index 08cd6f99d..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 756f2f1f90524c2620ed7951e436d13bdb929a6b Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Mon, 12 Feb 2018 12:25:37 +0100
-Subject: [PATCH] staging: most: dim2: use device for coherent memory allocation
-
-On several modern architectures the allocation of coherent memory needs
-a device that has the dma_ops properly set. This patch enables use of
-the DIM2 platform device for the allocation process.
-
-Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
----
- hdm-dim2/dim2_hdm.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c
-index 05e1896..1847091 100644
---- a/hdm-dim2/dim2_hdm.c
-+++ b/hdm-dim2/dim2_hdm.c
-@@ -688,12 +688,16 @@ static int poison_channel(struct most_interface *most_iface, int ch_idx)
-
- static void *dma_alloc(struct mbo *mbo, u32 size)
- {
-- return dma_alloc_coherent(NULL, size, &mbo->bus_address, GFP_KERNEL);
-+ struct device *dev = mbo->ifp->dev;
-+
-+ return dma_alloc_coherent(dev, size, &mbo->bus_address, GFP_KERNEL);
- }
-
- static void dma_free(struct mbo *mbo, u32 size)
- {
-- dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address);
-+ struct device *dev = mbo->ifp->dev;
-+
-+ dma_free_coherent(dev, size, mbo->virt_address, mbo->bus_address);
- }
-
- static const struct of_device_id dim2_of_match[];
-@@ -875,6 +879,7 @@ static int dim2_probe(struct platform_device *pdev)
- dev->most_iface.poison_channel = poison_channel;
- dev->most_iface.request_netinfo = request_netinfo;
- dev->most_iface.extra_attrs = DBR_ATTRS;
-+ dev->most_iface.dev = &pdev->dev;
-
- kobj = most_register_interface(&dev->most_iface);
- if (IS_ERR(kobj)) {
---
-libgit2 0.26.0
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch b/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch
deleted file mode 100644
index ff21b2130..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8eaec876f732c7e4b238ada5f9304c6da2380eb1 Mon Sep 17 00:00:00 2001
-From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
-Date: Fri, 8 Feb 2019 22:44:32 +0000
-Subject: [PATCH] backport: usb: setup_timer
-
----
- driver/hdm-usb/hdm_usb.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/hdm-usb/hdm_usb.c b/hdm-usb/hdm_usb.c
-index 5b0af88..9896835 100644
---- a/hdm-usb/hdm_usb.c
-+++ b/hdm-usb/hdm_usb.c
-@@ -760,9 +760,9 @@ static void hdm_request_netinfo(struct most_interface *iface, int channel,
- * The handler runs in interrupt context. That's why we need to defer the
- * tasks to a work queue.
- */
--static void link_stat_timer_handler(unsigned long data)
-+static void link_stat_timer_handler(struct timer_list *t)
- {
-- struct most_dev *mdev = (struct most_dev *)data;
-+ struct most_dev *mdev = from_timer(mdev, t, link_stat_timer);
-
- schedule_work(&mdev->poll_work_obj);
- mdev->link_stat_timer.expires = jiffies + (2 * HZ);
-@@ -1154,8 +1154,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
- num_endpoints = usb_iface_desc->desc.bNumEndpoints;
- mutex_init(&mdev->io_mutex);
- INIT_WORK(&mdev->poll_work_obj, wq_netinfo);
-- setup_timer(&mdev->link_stat_timer, link_stat_timer_handler,
-- (unsigned long)mdev);
-+ timer_setup(&mdev->link_stat_timer, link_stat_timer_handler, 0);
-
- mdev->usb_device = usb_dev;
- mdev->link_stat_timer.expires = jiffies + (2 * HZ);
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch b/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch
deleted file mode 100644
index d4383c4f6..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Handle snd_pcm_lib_mmap_vmalloc removal in 4.19
-
-Add .mmap field back to pcm_ops for kernels older than 4.19.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/aim-sound/sound.c b/aim-sound/sound.c
-index 4b3329b..c0a26be 100644
---- a/aim-sound/sound.c
-+++ b/aim-sound/sound.c
-@@ -17,6 +17,7 @@
- #include <linux/printk.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
-+#include <linux/version.h>
- #include <sound/core.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
-@@ -463,6 +464,9 @@ static const struct snd_pcm_ops pcm_ops = {
- .trigger = pcm_trigger,
- .pointer = pcm_pointer,
- .page = snd_pcm_lib_get_vmalloc_page,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0)
-+ .mmap = snd_pcm_lib_mmap_vmalloc,
-+#endif
- };
-
- static int split_arg_list(char *buf, char **card_name, u16 *ch_num,
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch b/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch
deleted file mode 100644
index 02eca27d2..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/files/0012-Fix-build-with-5.4-kernel.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 877d7475413bb787deb07aa83bafac03efa399fa Mon Sep 17 00:00:00 2001
-From: Paul Barker <paul.barker@sancloud.co.uk>
-Date: Mon, 24 Feb 2020 14:58:52 +0000
-Subject: [PATCH] Fix build with 5.4 kernel
-
-Signed-off-by: Paul Barker <paul.barker@sancloud.co.uk>
----
- driver/Makefile | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 281241d..609e692 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,6 +5,7 @@ SRC := $(shell pwd)
- obj-m := mostcore.o
- mostcore-y := mostcore/core.o
- CFLAGS_core.o := -I$(src)/include/
-+CFLAGS_mostcore/core.o := -I$(src)/include/
-
- obj-m += default_conf.o
- CFLAGL_default_conf.o := -I$(src)/include
-@@ -12,33 +13,41 @@ CFLAGL_default_conf.o := -I$(src)/include
- obj-m += aim_cdev.o
- aim_cdev-y := aim-cdev/cdev.o
- CFLAGS_cdev.o := -I$(src)/include/
-+CFLAGS_aim-cdev/cdev.o := -I$(src)/include/
-
- obj-m += aim_network.o
- aim_network-y := aim-network/networking.o
- CFLAGS_networking.o := -I$(src)/include/
-+CFLAGS_aim-network/networking.o := -I$(src)/include/
-
- obj-m += aim_sound.o
- aim_sound-y := aim-sound/sound.o
- CFLAGS_sound.o := -I$(src)/include/
-+CFLAGS_aim-sound/sound.o := -I$(src)/include/
-
- obj-m += aim_v4l2.o
- aim_v4l2-y := aim-v4l2/video.o
- CFLAGS_video.o := -Idrivers/media/video -I$(src)/include/
-+CFLAGS_aim-v4l2/video.o := -Idrivers/media/video -I$(src)/include/
-
- obj-m += hdm_i2c.o
- hdm_i2c-y := hdm-i2c/hdm_i2c.o
- CFLAGS_hdm_i2c.o := -I$(src)/include/
-+CFLAGS_hdm-i2c/hdm_i2c.o := -I$(src)/include/
-
- ifdef CONFIG_OF
- obj-m += hdm_dim2.o
- hdm_dim2-y := hdm-dim2/dim2_hdm.o hdm-dim2/dim2_hal.o hdm-dim2/dim2_sysfs.o
- CFLAGS_dim2_hdm.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_hdm.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_hal.o := -I$(src)/include/
-+CFLAGS_hdm-dim2/dim2_sysfs.o := -I$(src)/include/
- endif
-
- obj-m += hdm_usb.o
- hdm_usb-y := hdm-usb/hdm_usb.o
- CFLAGS_hdm_usb.o := -I$(src)/include/
--
-+CFLAGS_hdm-usb/hdm_usb.o := -I$(src)/include/
-
- all:
- $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bb b/meta-agl-profile-core/recipes-kernel/most/most.bb
deleted file mode 100644
index 48959a6ee..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/most.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Build MOST driver"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-
-inherit module
-
-PV = "0.1"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/most;protocol=https;branch=${AGL_BRANCH}"
-
-S = "${WORKDIR}/git/driver"
-SRCREV = "e4dbbaf9e7652efaed0df3e0aab4464f5f228573"
-
-KERNEL_MODULE_AUTOLOAD += "aim_cdev aim_sound aim_network aim_v4l2 hdm_i2c hdm_dim2 hdm_usb mostcore"
diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bbappend b/meta-agl-profile-core/recipes-kernel/most/most.bbappend
deleted file mode 100644
index ad422eb57..000000000
--- a/meta-agl-profile-core/recipes-kernel/most/most.bbappend
+++ /dev/null
@@ -1,15 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI_append = " \
- file://0002-src-most-add-auto-conf-feature.patch \
- file://0003-core-remove-kernel-log-for-MBO-status.patch \
- file://0004-most-video-set-device_caps.patch \
- file://0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch \
- file://0006-dim2-fix-startup-sequence.patch \
- file://0007-dim2-use-device-tree.patch \
- file://0008-dim2-read-clock-speed-from-the-device-tree.patch \
- file://0009-dim2-use-device-for-coherent-memory-allocation.patch \
- file://0010-backport-usb-setup-timer.patch \
- file://0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch \
- file://0012-Fix-build-with-5.4-kernel.patch \
-"
diff --git a/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch b/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
deleted file mode 100644
index 51896e8db..000000000
--- a/meta-agl-profile-core/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 530a31e3eb24b2f1ed7b30859ed62a2d1b24bd91 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 7 Feb 2017 11:51:58 +0100
-Subject: [PATCH] add a configure option to disable build of man-pages
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8316c67..099fc0c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -67,6 +67,8 @@ AC_ARG_ENABLE([largefile],
- [AS_HELP_STRING([--disable-largefile],[disable LFS (large file support)])])
- AC_ARG_ENABLE([util],
- [AS_HELP_STRING([--disable-util],[disable build of command-line utilities])])
-+AC_ARG_ENABLE([man],
-+ [AS_HELP_STRING([--disable-man],[disable build of man-pages])])
- AC_ARG_ENABLE([bi],
- [AS_HELP_STRING([--enable-bi=ARCH],[enable -mARCH for bi-arch compilation])])
- AC_ARG_ENABLE([ub],
-@@ -395,7 +397,7 @@ AM_CONDITIONAL([ADD_PLATFORM_POSIX],[test "$X_PLATFORM" = "posix"])
- AM_CONDITIONAL([ADD_PLATFORM_WIN32],[test "$X_PLATFORM" = "win32"])
-
- AM_CONDITIONAL([ADD_UTIL],[test "$enable_util" != "no"])
--AM_CONDITIONAL([ADD_MANS],[test "$X_PLATFORM" != "win32"])
-+AM_CONDITIONAL([ADD_MANS],[test "$enable_man" != "no"])
-
- ###############################################################################
- # declare common substitutions
---
-2.9.3
-
diff --git a/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb b/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb
deleted file mode 100644
index dd1b34747..000000000
--- a/meta-agl-profile-core/recipes-multimedia/libmp4v2/libmp4v2_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "The MP4v2 library provides an API to create and modify mp4 files"
-HOMEPAGE = "https://github.com/sergiomb2/libmp4v2/wiki"
-LICENSE = "MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb3014b036b6d2151d944aef6a84c36f"
-
-inherit autotools-brokensep pkgconfig
-
-SRC_URI = " \
- git://github.com/sergiomb2/${BPN}.git \
- file://0001-add-a-configure-option-to-disable-build-of-man-pages.patch \
-"
-SRCREV = "855e9674232808ff3be7191b697dfb56917db21f"
-S = "${WORKDIR}/git"
-PV = "2.1.0+git${SRCPV}"
-
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-EXTRA_OECONF = "--disable-man"
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl
deleted file mode 100644
index e69de29bb..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/.appends.meta-efl
+++ /dev/null
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
deleted file mode 100644
index 15d4b3f0e..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5bc5b8c5dad3edec6736fd7e7ce61250c4ce3725 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Jul 2017 17:13:19 -0700
-Subject: [PATCH] Define comparison_fn_t for non-glibc systems
-
-lightmediascanner.c:324:12: error: 'comparison_fn_t' undeclared (first use in this function)
- (comparison_fn_t)_plugin_sort);
- ^~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/lib/lightmediascanner.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/lib/lightmediascanner.c b/src/lib/lightmediascanner.c
-index 344b247..b866883 100644
---- a/src/lib/lightmediascanner.c
-+++ b/src/lib/lightmediascanner.c
-@@ -37,6 +37,11 @@
- #define DEFAULT_SLAVE_TIMEOUT 1000
- #define DEFAULT_COMMIT_INTERVAL 100
-
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- #ifdef HAVE_MAGIC_H
- static magic_t _magic_handle;
-
---
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
deleted file mode 100644
index 5abb980b8..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5a618b444e424483c3a9d34dd9b196796cac8e3f Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Mon, 22 Jul 2019 13:29:52 -0700
-Subject: [PATCH] switch from G_BUS_TYPE_SESSION to G_BUS_TYPE_SYSTEM
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/bin/lightmediascannerctl.c | 4 ++--
- src/bin/lightmediascannerd.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/bin/lightmediascannerctl.c b/src/bin/lightmediascannerctl.c
-index 5764bc0..1d4d844 100644
---- a/src/bin/lightmediascannerctl.c
-+++ b/src/bin/lightmediascannerctl.c
-@@ -11,7 +11,7 @@ start_service_by_name(void)
- GVariant *var;
- GDBusConnection *conn;
-
-- conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
-+ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
- if (error) {
- fprintf(stderr, "Could not get session bus connection: %s\n",
- error->message);
-@@ -526,7 +526,7 @@ main(int argc, char *argv[])
-
- app.timer = NULL;
- app.loop = g_main_loop_new(NULL, FALSE);
-- app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION,
-+ app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
- G_DBUS_PROXY_FLAGS_NONE,
- NULL,
- "org.lightmediascanner",
-diff --git a/src/bin/lightmediascannerd.c b/src/bin/lightmediascannerd.c
-index 319db42..6db81cc 100644
---- a/src/bin/lightmediascannerd.c
-+++ b/src/bin/lightmediascannerd.c
-@@ -1721,7 +1721,7 @@ main(int argc, char *argv[])
- introspection_data = g_dbus_node_info_new_for_xml(introspection_xml, NULL);
- g_assert(introspection_xml != NULL);
-
-- id = g_bus_own_name(G_BUS_TYPE_SESSION, "org.lightmediascanner",
-+ id = g_bus_own_name(G_BUS_TYPE_SYSTEM, "org.lightmediascanner",
- G_BUS_NAME_OWNER_FLAGS_NONE,
- NULL, on_name_acquired, NULL, NULL, NULL);
-
---
-2.20.1
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
deleted file mode 100644
index 8a9e35b09..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
- <policy user="root">
- <allow own="org.lightmediascanner"/>
- <allow send_destination="org.lightmediascanner"/>
- <allow receive_type="signal" receive_sender="org.lightmediascanner" receive_interface="org.freedesktop.DBus.Properties"/>
- </policy>
-
- <policy at_console="true">
- <allow send_destination="org.lightmediascanner"/>
- </policy>
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
deleted file mode 100644
index 9528bec79..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/plugins/Makefile.am 2015-10-25 16:12:29.331415823 +0000
-+++ b/src/plugins/Makefile.am 2015-10-25 16:14:37.593415808 +0000
-@@ -93,7 +93,7 @@
- id3_id3_la_SOURCES = id3/id3.c id3/id3v1_genres.c
- id3_id3_la_LIBADD = $(PLUGINS_LIBADD)
-
--id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
-+$(srcdir)/id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
- $(AWK) -f $(srcdir)/id3/id3v1_genres_gen.awk $(srcdir)/id3/id3v1_genres.def > $@
-
- EXTRA_DIST += id3/id3v1_genres.def id3/id3v1_genres_gen.awk
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
deleted file mode 100644
index 63b48ebf9..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=Lightmediascanner (LMS)
-After=run-agl-postinsts.service systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
-ConditionPathIsReadWrite=/var/volatile/tmp
-
-[Service]
-Type=dbus
-Restart=on-failure
-RestartSec=0
-BusName=org.lightmediascanner
-SmackProcessLabel=User::App::agl-service-mediascanner
-ExecStart=/usr/bin/lightmediascannerd --startup-scan --db-path=/var/volatile/tmp/lightmediascannerd.db --directory=/media
-
-[Install]
-WantedBy=multi-user.target
-Alias=dbus-org.lightmediascanner.service
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
deleted file mode 100644
index 6a0b8ff93..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 3e66b97221440b17a184feb48692dce7e0561cac Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Wed, 8 Mar 2017 16:30:01 -0800
-Subject: [PATCH] plugin: ogg: fix chucksize issue
-
-There are some OGG files that have metadata chucks that go over the
-hardcoded 10 * 4096 size due to album art. This patchset just parses
-each chuck and continues till it runs out of valid chunks.
-
-Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
----
- src/plugins/ogg/ogg.c | 11 ++---------
- 1 file changed, 2 insertions(+), 9 deletions(-)
-
-diff --git a/src/plugins/ogg/ogg.c b/src/plugins/ogg/ogg.c
-index 1c0818e..c94dc38 100644
---- a/src/plugins/ogg/ogg.c
-+++ b/src/plugins/ogg/ogg.c
-@@ -47,8 +47,6 @@
- int CHUNKSIZE = 4096;
- #endif
-
--#define MAX_CHUNKS_PER_PAGE 10
--
- struct stream {
- struct lms_stream base;
- int serial;
-@@ -122,10 +120,8 @@ _set_lms_info(struct lms_string_size *info, const char *tag)
-
- static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
- {
-- int i;
--
-- for (i = 0; i < MAX_CHUNKS_PER_PAGE && ogg_sync_pageout(osync, page) != 1;
-- i++) {
-+ while(ogg_sync_pageout(osync, page) != 1)
-+ {
- lms_ogg_buffer_t buffer = lms_get_ogg_sync_buffer(osync, CHUNKSIZE);
- int bytes = fread(buffer, 1, CHUNKSIZE, fp);
-
-@@ -136,9 +132,6 @@ static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
- ogg_sync_wrote(osync, bytes);
- }
-
-- if (i > MAX_CHUNKS_PER_PAGE)
-- return false;
--
- return true;
- }
-
---
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
deleted file mode 100644
index b47b2796c..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
+++ /dev/null
@@ -1,42 +0,0 @@
-# Disable everything but the roygalty-free formats
-PACKAGECONFIG = "ogg flac wave m3u pls jpeg png"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://lightmediascanner.service \
- file://plugin-ogg-fix-chucksize-issue.patch \
- file://0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch \
- file://dbus-lightmediascanner.conf \
- "
-
-CFLAGS_append = " -D_FILE_OFFSET_BITS=64"
-
-inherit systemd
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "lightmediascanner.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-do_install_append() {
- # Install LMS systemd service
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 644 -p -D ${WORKDIR}/lightmediascanner.service ${D}${systemd_system_unitdir}/lightmediascanner.service
- fi
-
- install -d ${D}/etc/dbus-1/system.d
- install -m 0644 ${WORKDIR}/dbus-lightmediascanner.conf ${D}/etc/dbus-1/system.d/org.lightmediascanner.conf
-}
-
-FILES_${PN} += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/lightmediascanner.service', '', d)} \
- "
-
-EXTRA_OECONF = "--enable-static --with-dbus-services=${datadir}/dbus-1/system-services"
-PACKAGECONFIG[mp4] = "--enable-mp4,--disable-mp4,libmp4v2"
-
-# add support MP3 because of the format of music files for AGL CES/ALS2017 Demo
-PACKAGECONFIG_append = " id3 mp4"
-
-# add required character sets for id3 tag scanning
-RDEPENDS_${PN}_append = " glibc-gconv-utf-16 glibc-gconv-iso8859-1"
diff --git a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb b/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
deleted file mode 100644
index f2158760f..000000000
--- a/meta-agl-profile-core/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Lightweight media scanner"
-DESCRIPTION = "Lightweight media scanner meant to be used in not-so-powerful devices, like embedded systems or old machines."
-SECTION = "libs/multimedia"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://src/lib/lightmediascanner.c;endline=21;md5=6d8889bccb4c6c27e8b786342a3eb267"
-
-DEPENDS = "file gawk glib-2.0 sqlite3"
-
-PV = "0.5.1+git${SRCPV}"
-SRCREV = "adfddb3486276a5ed2f5008c9e43a811e1271cc9"
-SRC_URI = "git://github.com/profusion/lightmediascanner.git \
- file://id3-plugin-support-out-of-tree-build.patch \
- file://0001-Define-comparison_fn_t-for-non-glibc-systems.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-static --disable-mp4"
-
-PACKAGECONFIG ??= "ogg flac wave id3 m3u pls asf rm jpeg png"
-PACKAGECONFIG[generic] = "--enable-generic,--disable-generic,libav"
-PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg libvorbis libtheora"
-PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
-PACKAGECONFIG[wave] = "--enable-wave,--disable-wave"
-PACKAGECONFIG[id3] = "--enable-id3,--disable-id3"
-PACKAGECONFIG[m3u] = "--enable-m3u,--disable-m3u"
-PACKAGECONFIG[pls] = "--enable-pls,--disable-pls"
-PACKAGECONFIG[asf] = "--enable-asf,--disable-asf"
-PACKAGECONFIG[rm] = "--enable-rm,--disable-rm"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg"
-PACKAGECONFIG[png] = "--enable-png,--disable-png"
-
-do_install_append() {
- # Install "test" binary for corresponding package
- install -d ${D}/${bindir}
- install -m 755 ${B}/src/bin/.libs/test ${D}/${bindir}/test-lms
- # Remove .la files for loadable modules
- rm -f ${D}/${libdir}/${PN}/plugins/*.la
-}
-
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug"
-
-PACKAGES_prepend = "${PN}-test "
-FILES_${PN}-test_prepend = "${bindir}/test-lms "
-
-PACKAGES += "${PN}-meta"
-ALLOW_EMPTY_${PN}-meta = "1"
-
-PACKAGES_DYNAMIC = "${PN}-plugin-*"
-
-python populate_packages_prepend () {
- lms_libdir = d.expand('${libdir}/${PN}')
- pkgs = []
-
- pkgs += do_split_packages(d, oe.path.join(lms_libdir, "plugins"), '^(.*)\.so$', d.expand('${PN}-plugin-%s'), 'LightMediaScanner plugin for %s', prepend=True, extra_depends=d.expand('${PN}'))
- metapkg = d.getVar('PN') + '-meta'
- d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs))
-}
diff --git a/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf b/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf
deleted file mode 100644
index a7486d055..000000000
--- a/meta-agl-profile-core/recipes-navigation/geoclue/files/org.freedesktop.GeoClue2.Client.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE busconfig PUBLIC
- "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
- <policy user="root">
- <allow receive_type="signal" receive_interface="org.freedesktop.GeoClue2.Client" />
- </policy>
-</busconfig>
diff --git a/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend b/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend
deleted file mode 100644
index 40a3b46a0..000000000
--- a/meta-agl-profile-core/recipes-navigation/geoclue/geoclue_%.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-inherit gobject-introspection
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-SRC_URI_append = "file://org.freedesktop.GeoClue2.Client.conf"
-
-PACKAGECONFIG = "nmea lib"
-
-do_install_append() {
- install -d ${D}/etc/dbus-1/system.d
- install -m 0644 ${WORKDIR}/org.freedesktop.GeoClue2.Client.conf ${D}/etc/dbus-1/system.d/org.freedesktop.GeoClue2.Client.conf
-}
diff --git a/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend b/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend
deleted file mode 100644
index da434e08e..000000000
--- a/meta-agl-profile-core/recipes-navigation/gpsd/gpsd_%.bbappend
+++ /dev/null
@@ -1,16 +0,0 @@
-SYSTEMD_SERVICE_${PN} += " gpsdctl@.service"
-
-RPROVIDES_${PN}-conf += "virtual/gpsd-conf"
-
-do_install_append() {
- # use the systemd compatible gpsd.rules
- install -d ${D}/${sysconfdir}/udev/rules.d
- install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/60-gpsd.rules
-
- #support for systemd
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/systemd/gpsdctl@.service ${D}${systemd_unitdir}/system
-
- #autoprobe usb gps devices
- echo 'USBAUTO="true"' >> ${D}${sysconfdir}/default/gpsd.default
-}
diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
deleted file mode 100644
index 71812943c..000000000
--- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-IMAGE_FEATURES_append = " dev-pkgs"
-IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
-
-# Always include the test widgets
-IMAGE_FEATURES_append = " agl-test-wgt"
-
-# Required dependencies for app and test builds
-TOOLCHAIN_HOST_TASK += " \
- nativesdk-lua \
- "
-
-# Required dependencies for app and test builds
-TOOLCHAIN_TARGET_TASK += " \
- lua-dev \
- lua-staticdev \
- libafb-helpers-staticdev \
- libappcontroller-staticdev \
- "
diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb
deleted file mode 100644
index 2fd31d148..000000000
--- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "The minimal set of packages for AGL core Connectivity Subsystem"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-core-services \
- "
-
-RDEPENDS_${PN} += "\
- agl-service-data-persistence \
- agl-service-network \
- agl-service-platform-info \
- "
diff --git a/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend b/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend
deleted file mode 100644
index fc24cea15..000000000
--- a/meta-agl-profile-core/recipes-support/curl/curl_%.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-# Cannot just append to PACKAGECONFIG, as nghttp2's dependencies do not build
-# for native/nativesdk, and appending class-target does not work because of
-# the weak definition of PACKAGECONFIG in the recipe, so need to copy the
-# definition to add nghttp2...
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib nghttp2"
diff --git a/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend b/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend
deleted file mode 100644
index 8656abf09..000000000
--- a/meta-agl-profile-core/recipes-support/opencv/opencv_4.%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PACKAGECONFIG ?= "jpeg png v4l libv4l gstreamer"
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules b/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules
deleted file mode 100644
index 996e43439..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/99-udisks2.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-# UDISKS_FILESYSTEM_SHARED
-# ==1: mount filesystem to a shared directory (/media/VolumeName)
-# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
-# See udisks(8)
-ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/automount.service b/meta-agl-profile-core/recipes-support/udisks/files/automount.service
deleted file mode 100644
index b16515196..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/automount.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Automount Disk Manager
-After=udisks2.service
-
-[Service]
-ExecStart=/usr/libexec/automount.sh
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-agl-profile-core/recipes-support/udisks/files/automount.sh b/meta-agl-profile-core/recipes-support/udisks/files/automount.sh
deleted file mode 100644
index 236791910..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/files/automount.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-
-MOUNT_OPTIONS_DEFAULT="ro,noexec"
-MOUNT_OPTIONS_VFAT="umask=0022"
-MOUNT_OPTIONS_EXT=""
-MOUNT_OPTIONS_NTFS=""
-MOUNT_OPTIONS_ISO9660=""
-
-VERBOSE=false
-
-# Source a configuration file that can override mount options if exists
-[ -f /etc/automount.conf ] && . /etc/automount.conf
-
-mount_device() {
- MOUNT_OPTIONS=""
- FSTYPE="$( udevadm info "${1}" "${2}" | awk -v FS== '/ID_FS_TYPE/ {print $2}' )"
- DEVNAME="$( udevadm info "${1}" "${2}" | awk -v FS== '/DEVNAME/ {print $2}' )"
- case $FSTYPE in
- vfat)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_VFAT}"
- ;;
- ext[2-4])
- MOUNT_OPTIONS="${MOUNT_OPTIONS_EXT}"
- ;;
- ntfs)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_NTFS}"
- ;;
- iso9660)
- MOUNT_OPTIONS="${MOUNT_OPTIONS_ISO9660}"
- ;;
- "")
- if $VERBOSE; then
- echo "[INFO][${DEVNAME}] Not a partition with a filesystem!"
- fi
- return
- ;;
- *)
- echo "[WARNING][${DEVNAME}] The filesystem '${FSTYPE}' is not supported!"
- return
- ;;
- esac
-
- if [ -n "${MOUNT_OPTIONS_DEFAULT}" ]; then
- if [ -z "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="${MOUNT_OPTIONS_DEFAULT}"
- else
- MOUNT_OPTIONS="${MOUNT_OPTIONS_DEFAULT},${MOUNT_OPTIONS}"
- fi
- fi
- if $VERBOSE; then
- echo "[INFO][${DEVNAME}] Mounting a ${FSTYPE}'s filesystem with options: ${MOUNT_OPTIONS}"
- fi
-
- if command -v udisksctl > /dev/null 2>&1; then
- if [ -n "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="-o ${MOUNT_OPTIONS}"
- fi
- udisksctl mount -t "${FSTYPE}" -b "${DEVNAME}" ${MOUNT_OPTIONS}
- elif command -v udisks >/dev/null 2>&1; then
- if [ -n "${MOUNT_OPTIONS}" ]; then
- MOUNT_OPTIONS="--mount-options ${MOUNT_OPTIONS}"
- fi
- udisks --mount-fstype "${FSTYPE}" --mount "${DEVNAME}" ${MOUNT_OPTIONS}
- else
- echo "[ERROR] Unable to find binary for mounting ${DEVNAME}" >&2
- return
- fi
- if [ "$?" -ne "0" ]; then
- echo "[ERROR] Failed to mount the device ${DEVNAME} of type ${FSTYPE} with options ${MOUNT_OPTIONS}" >&2
- fi
-}
-
-# At startup, remove empty directories that may exists
-rmdir /media/* > /dev/null 2>&1
-
-# Mount already plugged devices
-for DEVICE in $( lsblk -dn | cut -d' ' -f1 ); do
- REMOVABLE=$( cat "/sys/block/${DEVICE}/removable" )
- if [ "${REMOVABLE}" -eq "1" ]; then
- for PART in "/dev/${DEVICE}"*; do
- mount_device -n "${PART}"
- done
- fi
-done
-
-# Wait for plug events and mount devices
-stdbuf -oL -- udevadm monitor --udev -s block |
-while read -r -- _ _ EVENT DEVPATH _
-do
- if [ "${EVENT}" = "add" ]; then
- mount_device -p "/sys/${DEVPATH}"
- fi
-done
diff --git a/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend b/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend
deleted file mode 100644
index 34756f480..000000000
--- a/meta-agl-profile-core/recipes-support/udisks/udisks2_%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://automount.service \
- file://automount.sh \
- file://99-udisks2.rules \
-"
-
-SYSTEMD_AUTO_ENABLE = "enable"
-SYSTEMD_SERVICE_${PN} += "automount.service"
-
-do_install_append () {
- sed -i 's/^WantedBy=.*/WantedBy=multi-user.target/' ${D}${systemd_unitdir}/system/udisks2.service
-
- install -d ${D}${base_libdir}/systemd/system
- install -m 0644 ${WORKDIR}/automount.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${libexecdir}
- install -m 0755 ${WORKDIR}/automount.sh ${D}${libexecdir}/automount.sh
-
- install -d ${D}${sysconfdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/99-udisks2.rules ${D}${sysconfdir}/udev/rules.d
-}
-
-FILES_${PN} += "${base_libdir}/systemd/system/automount.service \
- ${libexecdir}/automount.sh \
-"
diff --git a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper b/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper
deleted file mode 100644
index 12580237d..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper/gcovr-wrapper
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2020 Konsulko Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#
-# gcovr wrapper for generating coverage reports against AGL bindings
-# on target. With a given binding name or coverage widget file, the
-# coverage version will be installed, and the pyagl tests for the
-# binding run before generating a report with gcovr. The afm-test
-# test widget or a user-supplied command may be run instead of the
-# pyagl tests, see usage below, or run with "--help".
-#
-
-usage() {
- cat <<-EOF
- Usage:
- $(basename $0) [options] <binding name | widget file>
-
- Options:
- -h, --help
- Print this help and exit
-
- -k, --keep
- Do not remove temporary files/directories
-
- -o, --gcovr-options
- Additional gcovr options, multiple options should be quoted
-
- -w, --workdir
- gcov/gcovr temporary working directory, defaults to /tmp/gcov
- The directory will be removed after running without --keep if it
- is empty, use caution if specifying existing system directories!
-
- --pyagl
- Run pyagl tests for binding, enabled by default
-
- --afm-test
- Run afm-test test widget tests for binding.
- If specified, disables pyagl tests; note that the last argument in
- the command-line will take precedence.
-
- -c, --command
- Test command to use in place of pyagl or afm-test, should be quote
- If specified, disables pyagl and afm-test tests.
-
- EOF
-}
-
-# Helper to validate widget install dir
-check_wgt_install() {
- if [ ! \( -d $1 -o -f $1/config.xml \) ]; then
- echo "ERROR: No widget install at $1"
- exit 1
- elif [ ! -d $1/src ]; then
- echo "ERROR: No source in $1/src"
- exit 1
- fi
-}
-
-# Helper to run gcovr inside mount namespace environment
-gcovr_runner() {
- wgt_install_dir=/var/local/lib/afm/applications/$1
- check_wgt_install ${wgt_install_dir}
-
- if [ ! -d $workdir/$1 ]; then
- echo "ERROR: No coverage data in $workdir/$1"
- exit 1
- fi
-
- # Get original source path
- gcno=$(cd $workdir/$1 && find -name '*.gcno' | head -n 1 | cut -d/ -f2-)
- if [ -z "$gcno" ]; then
- echo "ERROR: no gcno file found in $workdir/$1"
- exit 1
- fi
- srcfile=$(strings $workdir/$1/${gcno} | grep "$(basename ${gcno%.gcno})$" | uniq)
- srcdir=$(echo $srcfile | sed "s|/${gcno%%/*}/.*$||")
-
- # Set up mounts for chroot to run gcovr in
- # NOTE: We do not unmount these later, as we assume we are in a
- # private mount namespace and they will go away on exit from
- # it.
- echo "Setting up mounts"
- tmpdir=$(mktemp -d)
- echo $tmpdir > $workdir/.runner_tmpdir
- mkdir -p $tmpdir/{lower,upper,work,merged}
- # NOTE: Could potentially use rbind here, but explicitly mounting
- # just what we need seems safer
- mount --bind / $tmpdir/lower
- mount -t overlay -o lowerdir=$tmpdir/lower,upperdir=$tmpdir/upper,workdir=$tmpdir/work overlay $tmpdir/merged
- mount --bind /proc $tmpdir/merged/proc
- mount --bind /sys $tmpdir/merged/sys
- mount --bind /dev $tmpdir/merged/dev
- mount --bind /tmp $tmpdir/merged/tmp
- # Bind in the data files
- # NOTE: $workdir is bound instead of specifically just $workdir/$1,
- # so that e.g. html output to another directory in /tmp will
- # work as expected. A determined user may be able to shoot
- # themselves in the foot, but for now the trade off seems
- # acceptable.
- mkdir -p $tmpdir/merged/$workdir
- mount --bind $workdir $tmpdir/merged/$workdir
- # Bind the source files to their expected location
- mkdir -p $tmpdir/merged/$srcdir
- mount --bind ${wgt_install_dir}/src $tmpdir/merged/$srcdir
-
- echo "Entering chroot"
- echo
- exec chroot $tmpdir/merged \
- /usr/bin/gcovr -r $srcdir --object-directory $workdir/$1 --gcov-filter-source-errors -s ${GCOV_RUNNER_GCOVR_OPTIONS}
-}
-
-# Helper to clean up after runner
-gcovr_runner_cleanup() {
- rm -rf $workdir/$1
- if [ -f $workdir/.runner_tmpdir ]; then
- tmpdir=$(cat $workdir/.runner_tmpdir)
- rm -rf $tmpdir
- rm -f $workdir/.runner_tmpdir
- fi
- if [ "$workdir" != "/tmp" ]; then
- rmdir $workdir 2>/dev/null || true
- fi
-}
-
-# Parse arguments
-OPTS=$(getopt -o +hko:pw:c: --longoptions gcovr-runner,afm-test,command:,help,keep,gcovr-options:,pyagl,workdir: -n "$(basename $0)" -- "$@")
-if [ $? -ne 0 ]; then
- exit 1
-fi
-eval set -- "$OPTS"
-
-runner=false
-keep=false
-wgt=""
-cmd=""
-options=""
-afmtest=false
-pyagl=true
-workdir="/tmp/gcov"
-
-while true; do
- case "$1" in
- --gcovr-runner) runner=true; shift;;
- --afm-test) afmtest=true; pyagl=false; shift;;
- -c|--command) cmd="$2"; shift; shift;;
- -h|--help) usage; exit 0;;
- -k|--keep) keep=true; shift;;
- -o|--gcovr-options) options="$2"; shift; shift;;
- -p|--pyagl) pyagl=true; afmtest=false; shift;;
- -w|--workdir) workdir="$2"; shift; shift;;
- --) shift; break;;
- *) break;;
- esac
-done
-
-# Encode the assumption that a specified command means it runs instead
-# of any other tests.
-if [ -s "$cmd" ]; then
- pyagl=false
- afmtest=false
-fi
-
-if [ $# -ne 1 ]; then
- # Always expect widget name as single non-option argument
- usage
- exit 1
-fi
-
-# Rationalize workdir just in case
-workdir=$(realpath "$workdir")
-
-if [ "$runner" = "true" ]; then
- if [ "${GCOV_RUNNER_READY}" != "true" ]; then
- echo "ERROR: gcovr environment not ready!"
- exit 1
- fi
- gcovr_runner $1
- # If we get here, it'd be an error, so return 1
- exit 1
-fi
-
-binding=$1
-if [ "${1%.wgt}" != "$1" ]; then
- # User has specified path to a widget file
- wgt=$(realpath $1)
- binding=$(basename "${1%-coverage.wgt}")
-else
- wgt=/usr/AGL/apps/coverage/${binding}-coverage.wgt
-fi
-if [ ! -f $wgt ]; then
- echo "ERROR: No widget $wgt"
- exit 1
-elif [ "$afmtest" = "true" -a ! -f /usr/AGL/apps/test/${binding}-test.wgt ]; then
- echo "ERROR: No test widget for $binding"
- exit 1
-fi
-
-# Determine starting systemd unit name
-service=$(systemctl --all |grep afm-service-$binding |sed 's/^[ *] \([^ ]*\).*/\1/')
-if [ -z "$service" ]; then
- echo "ERROR: Could not determine systemd service unit for $binding"
- exit 1
-fi
-
-# Install coverage widget
-echo "Removing $binding widget"
-systemctl stop $service
-afm-util remove $binding
-echo
-echo "Installing $binding coverage widget"
-afm-util install $wgt
-echo
-
-wgt_install_dir=/var/local/lib/afm/applications/$binding
-check_wgt_install ${wgt_install_dir}
-gcov_src=${wgt_install_dir}/coverage
-if [ ! -d ${gcov_src} ]; then
- echo "ERROR: No coverage information in ${gcov_src}"
- exit 1
-elif [ ! -f ${gcov_src}/gcov.env ]; then
- echo "ERROR: No gcov environment file at ${gcov_src}/gcov.env"
- exit 1
-fi
-
-#
-# NOTE: In theory, the coverage data collection could be done inside
-# the mount namespace / chroot, but the potential for issues
-# when doing that seems higher than just running gcovr there,
-# so a conservative approach is taken.
-#
-
-# Set up things for the binary to write out gcda data files
-#
-# Having the matching build directory hierarchy in place and
-# writeable by the target binary before any restart and testing is
-# key to things working.
-#
-# As well, the environment file with the GCOV_PREFIX and
-# GCOV_PREFIX_STRIP values needs to be present before running so the
-# gcda files will get written into the relocated build hierarchy.
-#
-echo "Installing coverage information for $binding"
-mkdir -p $workdir
-rm -rf $workdir/$binding
-cp -dr ${gcov_src} $workdir/$binding
-chsmack -r -a System::Log $workdir
-chmod -R go+w $workdir
-
-# Install the gcov environment file
-mkdir -p /etc/afm/widget.env.d/$binding
-if [ "${workdir}" = "/tmp/gcov" ]; then
- cp ${gcov_src}/gcov.env /etc/afm/widget.env.d/$binding/gcov
-else
- # Update GCOV_PREFIX to point into workdir
- sed "s|^GCOV_PREFIX=.*|GCOV_PREFIX=${workdir}/$binding|" ${gcov_src}/gcov.env > /etc/afm/widget.env.d/$binding/gcov
-fi
-chsmack -r -a _ /etc/afm/widget.env.d/$binding
-
-# Determine new systemd unit name (version may now be different)
-service=$(systemctl --all |grep afm-service-$binding |sed 's/^[ *] \([^ ]*\).*/\1/')
-if [ -z "$service" ]; then
- echo "ERROR: Could not determine systemd service unit for $binding"
- exit 1
-fi
-
-# Restart the binding
-systemctl start $service
-echo
-
-# Run tests or given command
-if [ -n "$cmd" ]; then
- echo "Running command: $cmd"
- export AGL_AVAILABLE_INTERFACES=${AGL_AVAILABLE_INTERFACES:-ethernet}
- eval $cmd
-elif [ "$pyagl" = "true" ]; then
- echo "Running $binding pyagl tests"
- export AGL_AVAILABLE_INTERFACES=${AGL_AVAILABLE_INTERFACES:-ethernet}
- pytest -k "${binding#agl-service-} and not hwrequired" /usr/lib/python3.?/site-packages/pyagl
-else
- echo "Running $binding test widget"
- # NOTE: su to agl-driver is required here to avoid fallout from
- # the "afm-util run" in afm-test seemingly triggering the
- # start of other per-user bindings for the root user.
- su -l -c "/usr/bin/afm-test /usr/AGL/apps/test/${binding}-test.wgt" agl-driver
-fi
-
-# Restart again to trigger data file writing
-systemctl restart $service
-echo
-
-# Run ourselves in gcovr runner mode inside a private mount namespace
-export GCOV_RUNNER_READY=true
-# NOTE: Passing gcovr options in the environment to avoid quoting hassles
-export GCOV_RUNNER_GCOVR_OPTIONS="$options"
-runner_options="--workdir ${workdir}"
-unshare -m $0 --gcovr-runner ${runner_options} $binding
-rc=$?
-
-if [ "$keep" != "true" ]; then
- # Clean up after ourselves
- gcovr_runner_cleanup $1
- rm -f /etc/afm/widget.env.d/$1/gcov
- rmdir /etc/afm/widget.env.d/$1 2>/dev/null || true
-fi
-
-exit $rc
-
diff --git a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb b/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb
deleted file mode 100644
index 2ff39b211..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr-wrapper/gcovr-wrapper_1.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "AGL gcovr wrapper"
-DESCRIPTION = "This wrapper script enables running gcovr against a \
-AGL binding to generate a coverage report of running pyagl tests, \
-the afm-test test widget, or a user-supplied command."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI += "file://gcovr-wrapper"
-
-inherit allarch
-
-do_install() {
- install -D -m 0755 ${WORKDIR}/gcovr-wrapper ${D}${bindir}/gcovr-wrapper
-}
-
-RDEPENDS_${PN} = "bash gcovr"
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch b/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch
deleted file mode 100644
index be1dcf829..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr/0001-add-gcov-filter-source-errors-option.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Add option to filter gcov source errors
-
-Add "--gcov-filter-source-errors" to apply filters to the source
-files in the errors from gcov. If all source files in the errors
-are filtered, then the error is ignored so that the file will be
-processed. This enables the usecase of running on a target where
-only the source tree for a binary is available, but not all of the
-external source headers are.
-
-Upstream-Status: pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/gcovr/configuration.py b/gcovr/configuration.py
-index 1356097..083532c 100644
---- a/gcovr/configuration.py
-+++ b/gcovr/configuration.py
-@@ -915,6 +915,14 @@ GCOVR_CONFIG_OPTIONS = [
- "Default: {default!s}.",
- action="store_true",
- ),
-+ GcovrConfigOption(
-+ "gcov_filter_source_errors", ['--gcov-filter-source-errors'],
-+ group="gcov_options",
-+ help="Apply filters to missing source file errors in GCOV files "
-+ "instead of exiting with an error. "
-+ "Default: {default!s}.",
-+ action="store_true",
-+ ),
- GcovrConfigOption(
- "objdir", ['--object-directory'],
- group="gcov_options",
-diff --git a/gcovr/gcov.py b/gcovr/gcov.py
-index de79215..171d68d 100644
---- a/gcovr/gcov.py
-+++ b/gcovr/gcov.py
-@@ -667,11 +667,27 @@ def run_gcov_and_process_files(
- chdir=chdir,
- tempdir=tempdir)
-
-+ skip = False
- if source_re.search(err):
-- # gcov tossed errors: try the next potential_wd
-- error(err)
-- done = False
-- else:
-+ ignore = False
-+ if options.gcov_filter_source_errors:
-+ # Check if errors are all from source that is filtered
-+ ignore = True
-+ for line in err.splitlines():
-+ src_fname = line.split()[-1]
-+ filtered, excluded = apply_filter_include_exclude(
-+ src_fname, options.filter, options.exclude)
-+ if not (filtered or excluded):
-+ ignore = False
-+ break
-+
-+ if not ignore:
-+ # gcov tossed errors: try the next potential_wd
-+ error(err)
-+ skip = True
-+
-+ done = False
-+ if not skip:
- # Process *.gcov files
- for fname in active_gcov_files:
- process_gcov_data(fname, covdata, abs_filename, options)
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend b/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend
deleted file mode 100644
index 699aea214..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-# Add not yet upstreamed patch that enables on target gcov usage
-SRC_URI += "file://0001-add-gcov-filter-source-errors-option.patch"
diff --git a/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb b/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb
deleted file mode 100644
index 6da04cc53..000000000
--- a/meta-agl-profile-core/recipes-test/gcovr/gcovr_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Generate GCC code coverage reports"
-DESCRIPTION = "Gcovr provides a utility for managing the use of the GNU gcov \
-utility and generating summarized code coverage results."
-HOMEPAGE = "https://gcovr.com"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=221e634a1ceafe02ef74462cbff2fb16"
-
-PV = "4.2+git${SRCPV}"
-SRC_URI = "git://github.com/gcovr/gcovr.git;protocol=https"
-SRCREV = "1bc72e3bb59b9296e962b350691732ddafbd3195"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS_${PN} += " \
- python3-compression \
- python3-core \
- python3-crypt \
- python3-datetime \
- python3-difflib \
- python3-io \
- python3-jinja2 \
- python3-json \
- python3-lxml \
- python3-multiprocessing \
- python3-pygments \
- python3-pytest \
- python3-shell \
- python3-threading \
- python3-typing \
-"
diff --git a/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb b/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb
deleted file mode 100644
index 821a1de7a..000000000
--- a/meta-agl-profile-core/recipes-test/pyagl/pyagl_git.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Python bindings and tests for Automotive Grade Linux services"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/pyagl"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/pyagl;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "dcc2f91e5ab3b70202e78ec7164a8e9d7501d70c"
-PV = "${AGL_BRANCH}+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-do_install_append() {
- install -D -m 0755 ${S}/pyagl/scripts/pyagl ${D}${bindir}/pyagl
-}
-
-RDEPENDS_${PN} += " \
- python3-asyncio \
- python3-asyncssh \
- python3-core \
- python3-json \
- python3-logging \
- python3-math \
- python3-parse \
- python3-pprint \
- python3-pytest \
- python3-pytest-asyncio \
- python3-pytest-dependency \
- python3-pytest-reverse \
- python3-typing \
- python3-websockets \
-"
diff --git a/meta-agl-profile-graphical-html5/conf/layer.conf b/meta-agl-profile-graphical-html5/conf/layer.conf
deleted file mode 100644
index d499dd173..000000000
--- a/meta-agl-profile-graphical-html5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH .= ":${LAYERDIR}"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "html5-framework"
-BBFILE_PATTERN_html5-framework = "^${LAYERDIR}/"
-BBFILE_PRIORITY_html5-framework = "80"
-
-LAYERSERIES_COMPAT_html5-framework = "dunfell"
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend
deleted file mode 100644
index 2c5201aa8..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI_remove = " \
- file://hdmi-a-1-270.cfg \
- file://hdmi-a-1-90.cfg \
- file://virtual.cfg \
-"
-
-SRC_URI += " \
- file://hdmi-a-1-180.cfg \
- file://virtual-landscape.cfg \
-"
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
deleted file mode 100644
index 59e2c2db8..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-# A display is connected to HDMI-A-1
-[output]
-name=HDMI-A-1
-transform=0
diff --git a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg b/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg
deleted file mode 100644
index d69253639..000000000
--- a/meta-agl-profile-graphical-html5/recipes-graphics/wayland/weston-ini-conf/virtual-landscape.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-[output]
-name=Virtual-1
-mode=1920x1080
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb
deleted file mode 100644
index 0ec6829ed..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "An image containing all packages required to run web applications"
-
-require agl-image-graphical-html5.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- packagegroup-agl-profile-graphical-html5 \
- "
-
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc
deleted file mode 100644
index e943b9903..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-image-graphical-html5.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-require recipes-platform/images/agl-image-minimal.inc
-
-IMAGE_FEATURES += "splash"
-
-IMAGE_FEATURES += "${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'ssh-server-dropbear' , '', d)}"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
deleted file mode 100644
index cc9ed3d64..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "AGL web runtime packages"
-DESCRIPTION = "Specific packages for the AGL web runtime (minus profile-graphical)"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-appfw-html5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-# add packages for WAM
-RDEPENDS_${PN} += " \
- chromium-browser-service \
- wam \
- "
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb
deleted file mode 100644
index 202750140..000000000
--- a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "AGL web runtime profile"
-DESCRIPTION = "The full set of packages required for AGL web runtime"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-graphical-html5 \
- profile-graphical-html5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-profile-graphical \
- packagegroup-agl-appfw-html5 \
-"
-
-RDEPENDS_${PN} += "\
- agl-login-manager \
- "
-
-RDEPENDS_profile-graphical-html5 = "${PN}"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb
deleted file mode 100644
index 90242d792..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium-browser-service.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Chromium browser widget"
-DESCRIPTION = "Wgt packaging for running chromium installed browser"
-HOMEPAGE = "https://webosose.org"
-SECTION = "apps"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/chromium;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-#build-time dependencies
-DEPENDS += "af-binder af-main-native chromium68"
-
-inherit cmake aglwgt
-
-RDEPENDS_${PN} += "chromium68-browser"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
deleted file mode 100644
index 485766b02..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Inappropriate [embedder specific]
-
-The patch below makes the V8 binaries run during the build be invoked through
-QEMU, as they are built for the target.
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Signed-off-by: Maksim Sisov <msisov@igalia.com>
-
-Index: git/src/tools/v8_context_snapshot/BUILD.gn
-===================================================================
---- git.orig/src/tools/v8_context_snapshot/BUILD.gn
-+++ git/src/tools/v8_context_snapshot/BUILD.gn
-@@ -62,6 +62,7 @@ if (use_v8_context_snapshot) {
- output_path = rebase_path(output_file, root_build_dir)
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(
- get_label_info(
- ":v8_context_snapshot_generator($v8_snapshot_toolchain)",
-Index: git/src/v8/BUILD.gn
-===================================================================
---- git.orig/src/v8/BUILD.gn
-+++ git/src/v8/BUILD.gn
-@@ -900,6 +900,7 @@ action("run_torque") {
- }
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":torque($v8_torque_toolchain)",
- "root_out_dir") + "/torque",
- root_build_dir),
-@@ -977,6 +978,7 @@ template("run_mksnapshot") {
- data = []
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
- "root_out_dir") + "/mksnapshot",
- root_build_dir),
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb b/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb
deleted file mode 100644
index 4f545c145..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/chromium68_git.bb
+++ /dev/null
@@ -1,404 +0,0 @@
-# Copyright (c) 2018 LG Electronics, Inc.
-
-SUMMARY = "Chromium webruntime for webOS"
-AUTHOR = "Lokesh Kumar Goel <lokeshkumar.goel@lge.com>"
-SECTION = "webos/apps"
-LICENSE = "Apache-2.0 & BSD-3-Clause & LGPL-2.0 & LGPL-2.1"
-LIC_FILES_CHKSUM = "\
- file://src/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
-"
-
-require gn-utils.inc
-
-inherit gettext qemu pythonnative
-
-DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontconfig openssl pango cairo icu libxkbcommon libexif dbus pciutils udev libcap alsa-lib virtual/egl elfutils-native libdrm atk gperf-native gconf nss nss-native nspr nspr-native bison-native qemu-native"
-
-PROVIDES = "${BROWSER_APPLICATION}"
-
-SRC_URI = "\
- git://github.com/igalia/${BPN};branch=WIP@39.agl.compositor;protocol=https;rev=${SRCREV_chromium68};name=chromium68 \
- git://github.com/webosose/v8;destsuffix=git/src/v8;rev=${SRCREV_v8};name=v8 \
- file://v8-qemu-wrapper.patch \
-"
-SRCREV_chromium68 = "61e96d1ee5dfc2461697457d287bf922d8a03d9a"
-SRCREV_v8 = "1e3af71f1ff3735e8a5b639c48dfca63a7b8a647"
-
-# we don't include SRCPV in PV, so we have to manually include SRCREVs in do_fetch vardeps
-do_fetch[vardeps] += "SRCREV_v8"
-SRCREV_FORMAT = "main_v8"
-
-S = "${WORKDIR}/git"
-
-SRC_DIR = "${S}/src"
-OUT_DIR = "${WORKDIR}/build"
-BUILD_TYPE = "Release"
-
-B = "${OUT_DIR}/${BUILD_TYPE}"
-
-WEBRUNTIME_BUILD_TARGET = "webos:weboswebruntime"
-BROWSER_APP_BUILD_TARGET = "chrome"
-BROWSER_APPLICATION = "chromium68-browser"
-BROWSER_APPLICATION_DIR = "/opt/chromium68"
-
-TARGET = "${WEBRUNTIME_BUILD_TARGET} ${BROWSER_APP_BUILD_TARGET}"
-
-# Skip do_install_append of webos_system_bus. It is not compatible with this component.
-WEBOS_SYSTEM_BUS_FILES_LOCATION = "${S}/files/sysbus"
-
-PACKAGECONFIG ?= "jumbo use-upstream-wayland"
-
-# Options to enable debug-webcore build.
-# Add the following line to local.conf (or local.dev.inc) to enable them:
-# PACKAGECONFIG_append_pn-chromium68 = " debug-webcore"
-# Other debug options are controlled by sections later in this file
-PACKAGECONFIG[debug-webcore] = "remove_webcore_debug_symbols=false,remove_webcore_debug_symbols=true"
-
-# Set a default value for jumbo file merge of 8. This should be good for build
-# servers and workstations with a big number of cores. In case build is
-# happening in a machine with less cores but still enough RAM a good value could
-# be 50.
-JUMBO_FILE_MERGE_LIMIT="8"
-PACKAGECONFIG[jumbo] = "use_jumbo_build=true jumbo_file_merge_limit=${JUMBO_FILE_MERGE_LIMIT}, use_jumbo_build=false"
-
-PACKAGECONFIG[lttng] = "use_lttng=true,use_lttng=false,lttng-ust,lttng-tools lttng-modules babeltrace"
-
-# Chromium can use v4l2 device for hardware accelerated video decoding on such boards as Renesas R-car M3, for example.
-# In case of R-car m3, additional patches are required for gstreamer and v4l2apps.
-# See https://github.com/igel-oss/meta-browser-hwdecode/tree/igalia-chromium71.
-PACKAGECONFIG[use-linux-v4l2] = "use_v4l2_codec=true use_v4lplugin=true use_linux_v4l2_only=true"
-
-PACKAGECONFIG[use-upstream-wayland] = " \
- ozone_platform_wayland_external=false ozone_platform_wayland=true \
- use_system_minigbm=true, \
- ozone_platform_wayland_external=true ozone_platform_wayland=false \
-"
-
-GN_ARGS = "\
- enable_memorymanager_webapi=false\
- ffmpeg_branding=\"Chrome\"\
- host_os=\"linux\"\
- ozone_auto_platforms=false\
- proprietary_codecs=true\
- target_os=\"linux\"\
- treat_warnings_as_errors=false\
- is_agl=true\
- use_cbe=true\
- is_chrome_cbe=true\
- use_cups=false\
- use_custom_libcxx=false\
- use_kerberos=false\
- use_neva_media=false\
- use_ozone=true\
- use_xkbcommon=true\
- use_pmlog=false\
- use_system_debugger_abort=true\
- use_webos_gpu_info_collector=false\
- ${PACKAGECONFIG_CONFARGS}\
-"
-
-# From Chromium's BUILDCONFIG.gn:
-# Set to enable the official build level of optimization. This has nothing
-# to do with branding, but enables an additional level of optimization above
-# release (!is_debug). This might be better expressed as a tri-state
-# (debug, release, official) but for historical reasons there are two
-# separate flags.
-# See also: https://groups.google.com/a/chromium.org/d/msg/chromium-dev/hkcb6AOX5gE/PPT1ukWoBwAJ
-GN_ARGS += "is_debug=false is_official_build=true"
-
-# is_cfi default value is true for x86-64 builds with is_official_build=true.
-# As of M63, we explicitly need to set it to false, otherwise we fail the
-# following assertion in //build/config/sanitizers/sanitizers.gni:
-# assert(!is_cfi || is_clang,
-# "is_cfi requires setting is_clang = true in 'gn args'")
-GN_ARGS += "is_cfi=false"
-
-# By default, passing is_official_build=true to GN causes its symbol_level
-# variable to be set to "2". This means the compiler will be passed "-g2" and
-# we will end up with a very large chrome binary (around 5Gb as of M58)
-# regardless of whether DEBUG_BUILD has been set or not. In addition, binutils,
-# file and other utilities are unable to read a 32-bit binary this size, which
-# causes it not to be stripped.
-# The solution is two-fold:
-# 1. Make sure -g is not passed on 32-bit architectures via DEBUG_FLAGS. -g is
-# the same as -g2. -g1 generates an 800MB binary, which is a lot more
-# manageable.
-# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
-# instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
-# binary anyway. Since our compiler flags are passed after GN's, -g0 does
-# not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
-DEBUG_FLAGS_remove_arm = "-g"
-DEBUG_FLAGS_append_arm = "-g1"
-DEBUG_FLAGS_remove_x86 = "-g"
-DEBUG_FLAGS_append_x86 = "-g1"
-GN_ARGS += "symbol_level=0"
-
-# We do not want to use Chromium's own Debian-based sysroots, it is easier to
-# just let Chromium's build system assume we are not using a sysroot at all and
-# let Yocto handle everything.
-GN_ARGS += "use_sysroot=false"
-
-# Toolchains we will use for the build. We need to point to the toolchain file
-# we've created, set the right target architecture and make sure we are not
-# using Chromium's toolchain (bundled clang, bundled binutils etc).
-GN_ARGS += "\
- custom_toolchain=\"//build/toolchain/yocto:yocto_target\" \
- gold_path=\"\" \
- host_toolchain=\"//build/toolchain/yocto:yocto_native\" \
- is_clang=${@is_default_cc_clang(d)} \
- clang_base_path=\"${@clang_install_path(d)}\" \
- clang_use_chrome_plugins=false \
- linux_use_bundled_binutils=false \
- target_cpu=\"${@gn_target_arch_name(d)}\" \
- v8_snapshot_toolchain=\"//build/toolchain/yocto:yocto_target\" \
-"
-
-# ARM builds need special additional flags (see ${S}/build/config/arm.gni).
-# If we do not pass |arm_arch| and friends to GN, it will deduce a value that
-# will then conflict with TUNE_CCARGS and CC.
-# Note that as of M61 in some corner cases parts of the build system disable
-# the "compiler_arm_fpu" GN config, whereas -mfpu is always passed via ${CC}.
-# We might want to rework that if there are issues in the future.
-def get_compiler_flag(params, param_name, d):
- """Given a sequence of compiler arguments in |params|, returns the value of
- an option |param_name| or an empty string if the option is not present."""
- for param in params:
- if param.startswith(param_name):
- return param.split('=')[1]
- return ''
-
-ARM_FLOAT_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d)}"
-ARM_FPU = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mfpu', d)}"
-ARM_TUNE = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mcpu', d)}"
-ARM_VERSION_aarch64 = "8"
-ARM_VERSION_armv7a = "7"
-ARM_VERSION_armv7ve = "7"
-ARM_VERSION_armv6 = "6"
-
-# GN computes and defaults to it automatically where needed
-# forcing it from cmdline breaks build on places where it ends up
-# overriding what GN wants
-TUNE_CCARGS_remove = "-mthumb"
-
-GN_ARGS_append_arm = " \
- arm_float_abi=\"${ARM_FLOAT_ABI}\" \
- arm_fpu=\"${ARM_FPU}\" \
- arm_tune=\"${ARM_TUNE}\" \
- arm_version=${ARM_VERSION} \
-"
-# tcmalloc's atomicops-internals-arm-v6plus.h uses the "dmb" instruction that
-# is not available on (some?) ARMv6 models, which causes the build to fail.
-GN_ARGS_append_armv6 += 'use_allocator="none"'
-# The WebRTC code fails to build on ARMv6 when NEON is enabled.
-# https://bugs.chromium.org/p/webrtc/issues/detail?id=6574
-GN_ARGS_append_armv6 += 'arm_use_neon=false'
-
-# Disable glibc shims on musl
-# tcmalloc does not play well with musl as of M62 (and possibly earlier).
-# https://github.com/gperftools/gperftools/issues/693
-GN_ARGS_append_libc-musl = ' use_allocator_shim=false'
-
-# V8's JIT infrastructure requires binaries such as mksnapshot and
-# mkpeephole to be run in the host during the build. However, these
-# binaries must have the same bit-width as the target (e.g. a x86_64
-# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
-# depending on a third Yocto toolchain, we just build those binaries
-# for the target and run them on the host with QEMU.
-python do_create_v8_qemu_wrapper () {
- """Creates a small wrapper that invokes QEMU to run some target V8 binaries
- on the host."""
- qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
- d.expand('${STAGING_DIR_HOST}${base_libdir}')]
- qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST', True),
- qemu_libdirs)
- wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
- with open(wrapper_path, 'w') as wrapper_file:
- wrapper_file.write("""#!/bin/sh
-
-# This file has been generated automatically.
-# It invokes QEMU to run binaries built for the target in the host during the
-# build process.
-
-%s "$@"
-""" % qemu_cmd)
- os.chmod(wrapper_path, 0o755)
-}
-do_create_v8_qemu_wrapper[dirs] = "${B}"
-addtask create_v8_qemu_wrapper after do_patch before do_configure
-
-python do_write_toolchain_file () {
- """Writes a BUILD.gn file for Yocto detailing its toolchains."""
- toolchain_dir = d.expand("${S}/src/build/toolchain/yocto")
- bb.utils.mkdirhier(toolchain_dir)
- toolchain_file = os.path.join(toolchain_dir, "BUILD.gn")
- write_toolchain_file(d, toolchain_file)
-}
-addtask write_toolchain_file after do_patch before do_configure
-
-# More options to speed up the build
-GN_ARGS += "\
- enable_nacl=false\
- disable_ftp_support=true\
- enable_print_preview=false\
- enable_remoting=false\
- use_glib=true\
- use_gnome_keyring=false\
- use_pulseaudio=false\
-"
-
-# Respect ld-is-gold in DISTRO_FEATURES when enabling gold
-# Similar patch applied in meta-browser
-# http://patchwork.openembedded.org/patch/77755/
-EXTRA_OEGN_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'use_gold=true', 'use_gold=false', d)}"
-GN_ARGS += "${EXTRA_OEGN_GOLD}"
-
-# Doesn't build for armv[45]*
-COMPATIBLE_MACHINE = "(-)"
-COMPATIBLE_MACHINE_aarch64 = "(.*)"
-COMPATIBLE_MACHINE_armv6 = "(.*)"
-COMPATIBLE_MACHINE_armv7a = "(.*)"
-COMPATIBLE_MACHINE_armv7ve = "(.*)"
-COMPATIBLE_MACHINE_x86 = "(.*)"
-COMPATIBLE_MACHINE_x86-64 = "(.*)"
-
-#CHROMIUM_PLUGINS_PATH = "${libdir}"
-CBE_DATA_PATH = "${libdir}/cbe"
-CBE_DATA_LOCALES_PATH = "${CBE_DATA_PATH}/locales"
-
-# The text relocations are intentional -- see comments in [GF-52468]
-# TODO: check if we need INSANE_SKIP on ldflags
-INSANE_SKIP_${PN} = "textrel ldflags"
-
-
-do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
-do_compile() {
- if [ ! -f ${OUT_DIR}/${BUILD_TYPE}/build.ninja ]; then
- do_configure
- fi
-
- export PATH="${S}/depot_tools:$PATH"
- ${S}/depot_tools/ninja -v -C ${OUT_DIR}/${BUILD_TYPE} ${TARGET}
-}
-
-do_configure() {
- configure_env
-}
-
-configure_env() {
- export GYP_CHROMIUM_NO_ACTION=1
- export PATH="${S}/depot_tools:$PATH"
-
- GN_ARGS="${GN_ARGS}"
- echo GN_ARGS is ${GN_ARGS}
- echo BUILD_TARGETS are ${TARGET}
- cd ${SRC_DIR}
- gn gen ${OUT_DIR}/${BUILD_TYPE} --args="${GN_ARGS}"
-}
-
-WINDOW_SIZE ?= "1920,1080"
-
-configure_browser_settings() {
- USER_AGENT="Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/${CHROMIUM_VERSION} Safari/537.31"
- echo "${USER_AGENT}" > ${D_DIR}/user_agent_conf
- #We can replace below WINDOW_SIZE values from build configuration if available
- #echo "${WINDOW_SIZE}" > ${D_DIR}/window_size_conf
-}
-
-install_chromium_browser() {
- D_DIR=${D}${BROWSER_APPLICATION_DIR}
- install -d ${D_DIR}
-
- # Install browser files
- if [ -e "${SRC_DIR}/webos/install" ]; then
- cd ${OUT_DIR}/${BUILD_TYPE}
- xargs --arg-file=${SRC_DIR}/webos/install/default_browser/binary.list cp -R --no-dereference --preserve=mode,links -v --target-directory=${D_DIR}
- cd ${SRC_DIR}
- xargs --arg-file=${SRC_DIR}/webos/install/default_browser/runtime.list cp -R --no-dereference --preserve=mode,links -v --target-directory=${D_DIR}
- fi
-
- # AGL does not have PMLOG
- sed -i.bak s/PmLogCtl.*// ${D_DIR}/run_webbrowser
-
- # To execute chromium in JAILER, Security Part needs permissions change
- # run_webbrowser: Script file for launching chromium
- chmod -v 755 ${D_DIR}/chrome
- chmod -v 755 ${D_DIR}/kill_webbrowser
- chmod -v 755 ${D_DIR}/run_webbrowser
-
- configure_browser_settings
-}
-
-install_webruntime() {
- install -d ${D}${libdir}
- install -d ${D}${includedir}/${BPN}
- install -d ${D}${CBE_DATA_PATH}
- install -d ${D}${CBE_DATA_LOCALES_PATH}
-
- # Install webos webview files
- if [ -e "${SRC_DIR}/webos/install" ]; then
- cd ${SRC_DIR}
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/staging_inc.list cp --parents --target-directory=${D}${includedir}/${BPN}
-
- cd ${OUT_DIR}/${BUILD_TYPE}
-
- cp libcbe.so ${D}${libdir}/
- if [ "${WEBOS_LTTNG_ENABLED}" = "1" ]; then
- # use bindir if building non-cbe
- cp libchromium_lttng_provider.so ${D}${libdir}/
- fi
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/binary.list cp --parents --target-directory=${D}${CBE_DATA_PATH}
- cat ${SRC_DIR}/webos/install/weboswebruntime/data_locales.list | xargs -I{} install -m 755 -p {} ${D}${CBE_DATA_LOCALES_PATH}
- fi
-
- # move this to separate mksnapshot-cross recipe once we figure out how to build just cross mksnapshot from chromium repository
- install -d ${D}${bindir_cross}
- gzip -c ${OUT_DIR}/${BUILD_TYPE}/${MKSNAPSHOT_PATH}mksnapshot > ${D}${bindir_cross}/${HOST_SYS}-mksnapshot.gz
-}
-
-do_install() {
- install_webruntime
- install_chromium_browser
-}
-
-WEBOS_SYSTEM_BUS_DIRS_LEGACY_BROWSER_APPLICATION = " \
- ${webos_sysbus_prvservicesdir}/${BROWSER_APPLICATION}.service \
- ${webos_sysbus_pubservicesdir}/${BROWSER_APPLICATION}.service \
- ${webos_sysbus_prvrolesdir}/${BROWSER_APPLICATION}.json \
- ${webos_sysbus_pubrolesdir}/${BROWSER_APPLICATION}.json \
-"
-
-SYSROOT_DIRS_append = " ${bindir_cross}"
-
-PACKAGES_prepend = " \
- ${PN}-cross-mksnapshot \
- ${BROWSER_APPLICATION} \
-"
-
-FILES_${BROWSER_APPLICATION} += " \
- ${BROWSER_APPLICATION_DIR} \
- ${WEBOS_SYSTEM_BUS_DIRS_LEGACY_BROWSER_APPLICATION} \
-"
-
-RDEPENDS_${BROWSER_APPLICATION} += "${PN}"
-
-VIRTUAL-RUNTIME_gpu-libs ?= ""
-RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_gpu-libs}"
-
-# The text relocations are intentional -- see comments in [GF-52468]
-# TODO: check if we need INSANE_SKIP on ldflags
-INSANE_SKIP_${BROWSER_APPLICATION} += "libdir ldflags textrel"
-
-FILES_${PN} = " \
- ${libdir}/*.so \
- ${CBE_DATA_PATH}/* \
- ${libdir}/${BPN}/*.so \
- ${WEBOS_SYSTEM_BUS_DIRS} \
-"
-
-FILES_${PN}-dev = " \
- ${includedir} \
-"
-
-FILES_${PN}-cross-mksnapshot = "${bindir_cross}/${HOST_SYS}-mksnapshot.gz"
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc b/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc
deleted file mode 100644
index 0fd55a638..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/chromium/gn-utils.inc
+++ /dev/null
@@ -1,157 +0,0 @@
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-# GN host architecture helpers.
-#
-# BUILD_ARCH's value corresponds to what uname returns as the machine name.
-# The mapping in gn_host_arch_name() tries to match several possible values
-# returned by the Linux kernel in uname(2) into the corresponding values GN
-# understands.
-def gn_host_arch_name(d):
- """Returns a GN architecture name corresponding to the build host's machine
- architecture."""
- import re
- arch_translations = {
- r'aarch64.*': 'arm64',
- r'arm.*': 'arm',
- r'i[3456]86$': 'x86',
- r'x86_64$': 'x64',
- }
- build_arch = d.getVar("BUILD_ARCH")
- for arch_regexp, gn_arch_name in arch_translations.items():
- if re.match(arch_regexp, build_arch):
- return gn_arch_name
- bb.fatal('Unsuported BUILD_ARCH value: "%s"' % build_arch)
-
-# GN target architecture helpers.
-#
-# Determining the target architecture is more difficult, as there are many
-# different values we can use on the Yocto side (e.g. TUNE_ARCH, TARGET_ARCH,
-# MACHINEOVERRIDES etc). What we do is define the mapping with regular,
-# non-Python variables with overrides that are generic enough (i.e. "x86"
-# instead of "i586") and then use gn_target_arch_name() to return the right
-# value with some validation.
-GN_TARGET_ARCH_NAME_aarch64 = "arm64"
-GN_TARGET_ARCH_NAME_arm = "arm"
-GN_TARGET_ARCH_NAME_x86 = "x86"
-GN_TARGET_ARCH_NAME_x86-64 = "x64"
-
-BUILD_CC_toolchain-clang = "clang"
-BUILD_CXX_toolchain-clang = "clang++"
-BUILD_LD_toolchain-clang = "clang"
-
-# knob for clang, when using meta-clang to provide clang and case where
-# clang happens to be default compiler for OE we should let it use clang
-def is_default_cc_clang(d):
- """Return true if clang is default cross compiler."""
- toolchain = d.getVar("TOOLCHAIN")
- overrides = d.getVar("OVERRIDES")
- if toolchain == "clang" and "toolchain-clang" in overrides.split(":"):
- return "true"
- return "false"
-
-def clang_install_path(d):
- """Return clang compiler install path."""
- return d.getVar("STAGING_BINDIR_NATIVE")
-
-def gn_target_arch_name(d):
- """Returns a GN architecture name corresponding to the target machine's
- architecture."""
- name = d.getVar("GN_TARGET_ARCH_NAME")
- if name is None:
- bb.fatal('Unsupported target architecture. A valid override for the '
- 'GN_TARGET_ARCH_NAME variable could not be found.')
- return name
-
-def write_toolchain_file(d, file_path):
- """Creates a complete GN toolchain file in |file_path|."""
- import string
- gcc_toolchain_tmpl = string.Template(
- 'gcc_toolchain("${toolchain_name}") {\n'
- ' cc = "${cc}"\n'
- ' cxx = "${cxx}"\n'
- ' ar = "${ar}"\n'
- ' ld = cxx # GN expects a compiler, not a linker.\n'
- ' nm = "${nm}"\n'
- ' readelf = "${readelf}"\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = false\n'
- ' }\n'
- '}\n'
- )
- clang_toolchain_tmpl = string.Template(
- 'clang_toolchain("clang_${toolchain_name}") {\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = true\n'
- ' use_gold = true\n'
- ' }\n'
- '}\n'
- )
-
- native_toolchain = {
- 'toolchain_name': 'yocto_native',
- 'current_cpu': gn_host_arch_name(d),
- 'cc': d.expand('${BUILD_CC}'),
- 'cxx': d.expand('${BUILD_CXX}'),
- 'ar': d.expand('${BUILD_AR}'),
- 'nm': d.expand('${BUILD_NM}'),
- 'readelf': d.expand('${BUILD_PREFIX}readelf'),
- 'extra_cflags': d.expand('${BUILD_CFLAGS}'),
- 'extra_cppflags': d.expand('${BUILD_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${BUILD_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${BUILD_LDFLAGS}'),
- }
- target_toolchain = {
- 'toolchain_name': 'yocto_target',
- 'current_cpu': gn_target_arch_name(d),
- 'cc': d.expand('${CC}'),
- 'cxx': d.expand('${CXX}'),
- 'ar': d.expand('${AR}'),
- 'nm': d.expand('${NM}'),
- 'readelf': d.expand('${TARGET_PREFIX}readelf'),
- 'extra_cflags': d.expand('${TARGET_CFLAGS}'),
- 'extra_cppflags': d.expand('${TARGET_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${TARGET_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${TARGET_LDFLAGS}'),
- 'strip': '',
- }
-
- with open(file_path, 'w') as toolchain_file:
- toolchain_file.write(
- '# This file has been generated automatically.\n'
- '\n'
- 'import("//build/config/sysroot.gni")\n'
- 'import("//build/toolchain/gcc_toolchain.gni")\n'
- '\n'
- )
- toolchain_file.write(gcc_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(gcc_toolchain_tmpl.substitute(target_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(target_toolchain))
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env
deleted file mode 100644
index c8ddc5173..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr.env
+++ /dev/null
@@ -1,202 +0,0 @@
-##### AGL: not set in WebAppMgr@.service
-#XDG_SESSION_ID="c2"
-
-##### AGL: set by WebAppMgr@.service (depends on user)
-#XDG_RUNTIME_DIR="/run/user/%i"
-
-# Set wam executable file path
-HOOK_SEGV=NO
-WAM_EXE_PATH="/usr/bin/WebAppMgr"
-
-# Set wam name for user-agent
-WAM_NAME="WebAppManager"
-
-# Only allow UTF8 encoding for luna-service messages.
-LS_ENABLE_UTF8=1
-
-# Set effective userid and groupid
-#WAM_UID="wam"
-#WAM_GID="compositor"
-
-# Set location of error page (will follow localization rules based on this path)
-#WAM_ERROR_PAGE="file:///usr/share/localization/wam/loaderror.html"
-
-# suspending javascript execution delay for page visibility
-WAM_SUSPEND_DELAY_IN_MS=250
-
-#if [ -e "etc/wam/make_shm.sh" ] ; then
-# /etc/wam/make_shm.sh
-#fi
-
-# Set user data directory for WebAppMgr
-##### AGL: set by WebAppMgr@.service (depends on user)
-#WAM_DATA_PATH="/home/%i/wamdata"
-
-# ensure that wam data directories exist
-#mkdir -p ${WAM_DATA_PATH}
-
-# set directories permission
-#chown ${WAM_UID}:${WAM_GID} ${WAM_DATA_PATH}
-
-# setup 50 Mb maximum for ApplicationCache
-WAM_APPCACHE_MAXSIZE=52428800
-
-# setup 10 Mb maximum for ApplicationCache per domain
-WAM_APPCACHE_DOMAINLIMIT=10485760
-
-# setup 50 Mb maximum for DiskCache
-WAM_DISKCACHE_MAXSIZE=52428800
-
-# setup 256 Kb maximum for resource buffer allocation
-WAM_RESOURCE_BUFFER_MAX_ALLOC_SIZE=262144
-
-# setup 1 Mb for resource buffer
-WAM_RESOURCE_BUFFER_SIZE=1048576
-
-# setup 200 seconds for watchdog timeout of render process
-WATCHDOG_RENDER_TIMEOUT=200
-
-# setup nubmer of raster threads to 1
-BLINK_NUM_RASTER_THREADS=2
-
-# use default tile width if not sed by recipe
-#if [ "$BLINK_NUM_RASTER_THREADS" = "WEBOS${BLINK_NUM_RASTER_THREADS#WEBOS}" ]; then
-BLINK_NUM_RASTER_THREADS=1
-#fi
-
-# setup 6 Mb maximum for the program GPU cache
-GPU_PROGRAM_CACHE_SIZE=6144
-
-# disable using enyo system app specfic optimization
-# currently used optimizations : inline caching off
-#USE_SYSTEM_APP_OPTIMIZATION="0"
-
-# Set location of NaCl modules
-#CHROMIUM_PATH="/usr/palm/applications/com.lge.app.chromium"
-#NACL_PLUGIN=${CHROMIUM_PATH}"/libppGoogleNaClPluginChrome.so"
-#NACL_IRT_LIBRARY=${CHROMIUM_PATH}"/nacl_irt_arm.nexe"
-#NACL_HELPER=${CHROMIUM_PATH}"/nacl_helper"
-#NACL_HELPER_BOOTSTRAP=${CHROMIUM_PATH}"/nacl_helper_bootstrap"
-
-# Set location of NPAPI plugins for all Apps including default Apps
-# This is for the flash plugin of Signage, webOS TV doesn't use it.
-#PRIVILEGED_PLUGIN_PATH=""
-
-# Set location of NPAPI plugins for NetCast Apps
-# NetCast Apps should access only the plugins in this path
-#NETCAST_PLUGIN_PATH="/usr/lib/BrowserPlugins"
-
-# Set location of NPAPI plugins for HbbTV app.
-#HBBTV_PLUGIN_PATH="/usr/lib/HbbtvPlugins"
-
-# Set InetTV player stored path
-#INETTV_HTML_PLAYER_PATH="/usr/share/inettv/inettv_player/index.html"
-
-# Set location of extra libraries
-#CDM_LIB_PATH="/usr/lib"
-
-# Set location of all NPAPI plugins
-NPAPI_PLUGIN_PATH=${HBBTV_PLUGIN_PATH}":"${NETCAST_PLUGIN_PATH}":"${PRIVILEGED_PLUGIN_PATH}
-
-#if [ -e "etc/wam/make_shm.sh" ] ; then
-# /etc/wam/make_shm.sh
-#fi
-
-# setup 8 Mb minimum codecache capacity
-JSC_minGlobalCodeCacheCapacity=8388608
-
-# Enable more explicit logging of timing with regards to rendering
-# export WAM2_ENABLE_DEBUG_RENDER_TIMING=1
-
-# enable Web Inspector and Tellurium if in developer mode
-TELLURIUM_NUB_PATH=/usr/palm/tellurium/telluriumnub.js
-ENABLE_INSPECTOR=1
-
-# Enable cursor by default
-ENABLE_CURSOR_BY_DEFAULT=1
-
-# Enable launch optimization
-ENABLE_LAUNCH_OPTIMIZATION=1
-
-# Set the duration(seconds) passed from last network activity (e.g. FMP Detector)
-# If set to a positive value, adjust a custom timeout for a network stable timer in FMPDetector
-NETWORK_STABLE_TIMEOUT=3
-
-# please keep it in alphabetical order
-#WAM_EXTRA_FLAGS=""
-#WAM_JS_FLAGS=""
-#WAM_COMMON_SWITCHES=" \
-# --application-cache-domain-limit=$WAM_APPCACHE_DOMAINLIMIT \
-# --application-cache-size=$WAM_APPCACHE_MAXSIZE \
-# --browser-subprocess-path=$WAM_EXE_PATH \
-# --disable-direct-npapi-requests \
-# --disable-extensions \
-# --disable-low-res-tiling \
-# --disable-new-video-renderer \
-# --disk-cache-size=$WAM_DISKCACHE_MAXSIZE \
-# --enable-aggressive-release-policy \
-# --enable-accelerated-plugin-rendering \
-# --accelerated-plugin-rendering-blacklist=device;drmAgent;sound;service \
-# --enable-gpu-rasterization \
-# --disable-gpu-rasterization-for-first-frame \
-# --enable-key-event-throttling \
-# --enable-threaded-compositing \
-# --enable-watchdog \
-# --hide-selection-handles \
-# --ignore-gpu-blacklist \
-# --ignore-netif=p2p \
-# --in-process-gpu \
-# --max-unused-resource-memory-usage-percentage=0 \
-# --network-stable-timeout=$NETWORK_STABLE_TIMEOUT \
-# --noerrdialogs \
-# --num-raster-threads=$BLINK_NUM_RASTER_THREADS \
-# --ozone-platform=wayland \
-# --remote-debugging-port=9998 \
-# --resource-buffer-max-allocation-size=$WAM_RESOURCE_BUFFER_MAX_ALLOC_SIZE \
-# --resource-buffer-size=$WAM_RESOURCE_BUFFER_SIZE \
-# --touch-events=disabled \
-# --ui-disable-opaque-shader-program \
-# --user-agent-suffix=SmartTV \
-# --user-data-dir=$WAM_DATA_PATH \
-# --enable-devtools-experiments \
-# --webos-wam \ "
-
-#WAM_LITE_SWITCHES=" --in-process-zygote "
-
-#export WAM_WEBOS_LITE=NO
-#if [ "${WAM_WEBOS_LITE}" = "YES" ] ; then
-# export WAM_SWITCHES=${WAM_COMMON_SWITCHES}${WAM_LITE_SWITCHES}
-# export SKIA_FONT_CACHE_SIZE=1
-# export SKIA_IMAGE_CACHE_SIZE=40
-# export SKIA_BACKGROUND_FONT_CACHE_SIZE=0
-#else
-# export WAM_SWITCHES=${WAM_COMMON_SWITCHES}
-# export SKIA_FONT_CACHE_SIZE=8
-# export SKIA_IMAGE_CACHE_SIZE=80
-# export SKIA_BACKGROUND_FONT_CACHE_SIZE=512
-#fi
-
-#export WAM_EXTRA_SKIA_CACHE_SWITCHES=" \
-# --skia-font-cache-size-mb=$SKIA_FONT_CACHE_SIZE \
-# --skia-image-cache-size-mb=$SKIA_IMAGE_CACHE_SIZE \
-# --skia-background-font-cache-size-kb=$SKIA_BACKGROUND_FONT_CACHE_SIZE \
-# "
-
-#export WAM_EXTRA_GPU_TUNING_SWITCHES=" \
-# --gpu-program-cache-size-kb=$GPU_PROGRAM_CACHE_SIZE \
-# "
-#export WAM_WATCHDOG_RENDER_TIMEOUT_SWITCHES=" \
-# --watchdog-render-timeout=$WATCHDOG_RENDER_TIMEOUT \
-# "
-
-#WEBOS_LOAD_ACCESSIBILITY_PLUGIN=1
-
-#WAM_V8_CODE_CACHE_SWITCHES=" --enable-local-resource-code-cache --disallow-code-cache-from-file-uris-with-query-string "
-
-# Load any special configuration from plugins
-#if [ -e "/etc/wam/plugins/conf.sh" ] ; then
-# . /etc/wam/plugins/conf.sh || true
-#fi
-
-#exec $WAM_EXE_PATH $WAM_SWITCHES $WAM_EXTRA_SKIA_CACHE_SWITCHES $WAM_EXTRA_GPU_TUNING_SWITCHES $WAM_WATCHDOG_RENDER_TIMEOUT_SWITCHES $WAM_EXTRA_FLAGS $WAM_V8_CODE_CACHE_SWITCHES --js-flags="$WAM_JS_FLAGS"
-
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service
deleted file mode 100644
index a855bf9f5..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/WebAppMgr@.service
+++ /dev/null
@@ -1,37 +0,0 @@
-# @@@LICENSE
-#
-# Copyright (c) 2017-2018 LG Electronics, Inc.
-#
-# Confidential computer software. Valid license from LG required for
-# possession, use or copying. Consistent with FAR 12.211 and 12.212,
-# Commercial Computer Software, Computer Software Documentation, and
-# Technical Data for Commercial Items are licensed to the U.S. Government
-# under vendor's standard commercial license.
-#
-# LICENSE@@@
-
-[Unit]
-Description="WebAppMgr is responsible for running web apps and manage their lifecycle"
-After=afm-service-homescreen-service--0.1--main@%i.service weston@display.service
-Wants=afm-service-homescreen-service--0.1--main@%i.service
-BindsTo=weston@display.service
-
-[Service]
-Type=simple
-User=%i
-Slice=user-%i.slice
-SmackProcessLabel=System
-SupplementaryGroups=audio display
-UMask=0077
-CapabilityBoundingSet=
-OOMScoreAdjust=-1000
-EnvironmentFile=-/etc/default/WebAppMgr.env
-Environment=XDG_RUNTIME_DIR=/run/user/%i
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
-Environment=WAM_DATA_PATH="/home/%i/wamdata"
-ExecStart=/usr/bin/WebAppMgr --no-sandbox --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%i/wamdata" --webos-wam
-Restart=on-failure
-RestartSec=50
-
-[Install]
-WantedBy=default.target
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch b/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch
deleted file mode 100644
index 829abe07f..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/files/trunc-webapp-roles.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f31e93261f34abaa3dcdc4959963f5b5a8983002 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
-Date: Thu, 25 Jun 2020 19:47:24 +0200
-Subject: [PATCH] Set webapp roles that are max 12 characters long.
-
-From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= <jaragunde@igalia.com>
-
-This is a workaround for SPEC-3127. To prevent repeated roles as much
-as possible, I'm using the appid as a basis instead of "Webapp-" +
-host + port, which has many chances to be redundant in the first 12
-chars.
-
-Bug-AGL: SPEC-3127
-
----
- src/agl/WebRuntimeAGL.cpp | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/src/agl/WebRuntimeAGL.cpp b/src/agl/WebRuntimeAGL.cpp
-index aed928b..efd2ee4 100644
---- a/src/agl/WebRuntimeAGL.cpp
-+++ b/src/agl/WebRuntimeAGL.cpp
-@@ -274,7 +274,6 @@ int WebAppLauncherRuntime::run(int argc, const char** argv) {
-
- m_id = getAppId(args);
- m_url = getAppUrl(args);
-- m_role = "WebApp";
-
- setup_signals();
-
-@@ -326,15 +325,9 @@ bool WebAppLauncherRuntime::init() {
- if (n != std::string::npos) {
- std::string sport = authority.substr(n+1);
- m_host = authority.substr(0, n);
-- m_role.push_back('-');
-- m_role.append(m_host);
-- m_role.push_back('-');
-- m_role.append(sport);
- m_port = stringTo<int>(sport);
- } else {
- m_host = authority;
-- m_role.push_back('-');
-- m_role.append(m_host);
- }
- }
-
-@@ -375,6 +368,9 @@ bool WebAppLauncherRuntime::init() {
- m_role = "homescreen";
- else if (m_id.rfind("webapps-homescreen", 0) == 0)
- m_role = "homescreen";
-+ else {
-+ m_role = m_id.substr(0,12);
-+ }
-
- LOG_DEBUG("id=[%s], name=[%s], role=[%s], url=[%s], host=[%s], port=%d, token=[%s], width=[%s], height[%s], surface_type[%d], panel_type[%d]",
- m_id.c_str(), m_name.c_str(), m_role.c_str(), m_url.c_str(),
diff --git a/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb b/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb
deleted file mode 100644
index d50a14fa0..000000000
--- a/meta-agl-profile-graphical-html5/recipes-wam/wam/wam_git.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "WAM"
-AUTHOR = "Jani Hautakangas <jani.hautakangas@lge.com>"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit cmake
-
-DEPENDS = "glib-2.0 jsoncpp boost chromium68 wayland-ivi-extension libhomescreen"
-
-EXTRA_OECMAKE = "\
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DPLATFORM_NAME=${@'${DISTRO}'.upper().replace('-', '_')} \
- -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium68"
-
-PR="r0"
-
-PROVIDES += "virtual/webruntime"
-RPROVIDES_${PN} += "virtual/webruntime"
-
-SRC_URI = "\
- git://github.com/igalia/${BPN}.git;branch=WIP@6.agl.compositor;protocol=https \
- file://WebAppMgr@.service \
- file://WebAppMgr.env \
- file://trunc-webapp-roles.patch \
-"
-S = "${WORKDIR}/git"
-SRCREV = "bd650046b688eb1593ae68c16ba3912837507d08"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/wam
- install -v -m 644 ${S}/files/launch/security_policy.conf ${D}${sysconfdir}/wam/security_policy.conf
- install -d ${D}${systemd_system_unitdir}
- install -v -m 644 ${WORKDIR}/WebAppMgr@.service ${D}${systemd_system_unitdir}/WebAppMgr@.service
- install -d ${D}${sysconfdir}/default/
- install -v -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env
- ln -snf WebAppMgr ${D}${bindir}/web-runtime
- install -d ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
- ln -sf ../WebAppMgr@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/
-}
-
-FILES_${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_system_unitdir}"
-
-CXXFLAGS_append_agl-devel = " -DAGL_DEVEL"
-
-do_install_append_agl-devel() {
- # Enable remote inspector and dev mode
- install -d ${D}${localstatedir}/agl-devel/preferences
- touch ${D}${localstatedir}/agl-devel/preferences/debug_system_apps
- touch ${D}${localstatedir}/agl-devel/preferences/devmode_enabled
-}
diff --git a/meta-agl-profile-graphical-qt5/LICENSE b/meta-agl-profile-graphical-qt5/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only b/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/LICENSE.MIT b/meta-agl-profile-graphical-qt5/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-graphical-qt5/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical-qt5/conf/layer.conf b/meta-agl-profile-graphical-qt5/conf/layer.conf
deleted file mode 100644
index ef39630d8..000000000
--- a/meta-agl-profile-graphical-qt5/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilegraphicalqt5"
-BBFILE_PATTERN_aglprofilegraphicalqt5 = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilegraphicalqt5 = "70"
-
-LAYERSERIES_COMPAT_aglprofilegraphicalqt5 = "dunfell"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
deleted file mode 100755
index 5147ea44a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Cross SDK of Full AGL Distribution for IVI profile"
-
-DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \
-It includes the full meta-toolchain, plus developement headers and libraries \
-to form a standalone cross SDK."
-
-require agl-image-graphical-qt5.bb
-
-LICENSE = "MIT"
-
-require agl-image-graphical-qt5-crosssdk.inc
-
-inherit populate_sdk populate_sdk_qt5
-
-# Task do_populate_sdk and do_rootfs can't be exec simultaneously.
-# Both exec "createrepo" on the same directory, and so one of them
-# can failed (randomly).
-addtask do_populate_sdk after do_rootfs
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc
deleted file mode 100644
index f43bb07d7..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-require recipes-platform/images/agl-image-minimal-crosssdk.inc
-
-TOOLCHAIN_TARGET_TASK += "libafb-helpers-qt-staticdev"
-
-# Add wayland-scanner to SDK (SPEC-945)
-# Use TOOLCHAIN_HOST_TASK instead of adding to the packagegroup
-# wayland-scanner is in nativesdk-wayland-dev !
-# option: add also nativesdk-qtwayland-tools
-TOOLCHAIN_HOST_TASK_append = " nativesdk-wayland nativesdk-wayland-dev"
-
-TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules "
-
-# Add qtwaylandscanner to the SDK
-TOOLCHAIN_HOST_TASK_append = " nativesdk-qtwayland-tools "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb
deleted file mode 100644
index bcfd724fa..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-SUMMARY = "A very basic Wayland image with a terminal"
-
-require agl-image-graphical-qt5.inc
-
-LICENSE = "MIT"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc
deleted file mode 100644
index 114d06a07..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc
+++ /dev/null
@@ -1 +0,0 @@
-require recipes-platform/images/agl-image-weston.inc
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb
deleted file mode 100644
index a05d69f53..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-native-qt5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Qt5 for native GUI framework of AGL IVI profile"
-DESCRIPTION = "A set of Qt5 packages which required by Native App Fw Subsystem"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-appfw-native-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- qtbase \
- qtbase-dev \
- qtbase-plugins \
- qtbase-staticdev \
- qtbase-tools \
- qtdeclarative \
- qtdeclarative-qmlplugins \
- qtdeclarative-tools \
- qtcharts \
- qtwayland \
- qtwayland-plugins \
- qtwayland-tools \
- qtgraphicaleffects-qmlplugins \
- qtvirtualkeyboard \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb
deleted file mode 100644
index adebabe76..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-demo-qt-examples.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "The examples to test Qt5 on AGL Demo Platform"
-DESCRIPTION = "A set of packages which contains Qt5 examples"
-
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-demo-qt-examples \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- qt3d-examples \
- qtbase-examples \
- qtconnectivity-examples \
- qtdeclarative-examples \
- qtlocation-examples \
- qtmultimedia-examples \
- qtsensors-examples \
- qtsystems-examples \
- qttools-examples \
- qtwayland-examples \
- qtxmlpatterns-examples \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb
deleted file mode 100644
index 74b35f70a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "The middlewares for AGL IVI profile"
-DESCRIPTION = "The set of packages required for AGL Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-graphical-qt5 \
- profile-graphical-qt5 \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-profile-graphical \
- packagegroup-agl-appfw-native-qt5 \
-"
-
-RDEPENDS_${PN} += "\
- agl-login-manager \
- "
-
-RDEPENDS_profile-graphical-qt5 = "${PN}"
diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend b/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend
deleted file mode 100644
index 08afa6c7f..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-platform/packagegroups/packagegroup-qt5-toolchain-target.bbappend
+++ /dev/null
@@ -1,18 +0,0 @@
-# add missing dependencies for SDK
-
-RDEPENDS_${PN} += " \
- qttools-plugins \
- qtquickcontrols-dev \
- qtquickcontrols-qmlplugins \
- qtquickcontrols2-dev \
- qtquickcontrols2-mkspecs \
- qtquickcontrols2-qmlplugins \
-"
-
-# remove dependency on qtwebkit (still added to SDK by packagegroup-qt5-toolchain-target)
-# see SPEC-1159
-RDEPENDS_${PN}_remove = " \
- qtwebkit-dev \
- qtwebkit-mkspecs \
- qtwebkit-qmlplugins \
-"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb
deleted file mode 100644
index 09a262eb7..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qlibhomescreen/qlibhomescreen_git.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A wrapper library of libhomescreen for Qt Application in AGL"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-
-DEPENDS = "qtbase libhomescreen"
-RDEPENDS_${PN} = "libhomescreen"
-
-inherit qmake5
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libqthomescreen.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "b218476402bceda7eb42d41064552a7261ff3205"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb
deleted file mode 100644
index dbeda2d11..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qml-execscript-plugin/qml-execscript-plugin_1.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Execute Script QML plugin"
-DESCRIPTION = "This provides a simple QML plugin able to execute script file."
-
-LICENSE = "CLOSED"
-
-DEPENDS = "qtbase-native qtdeclarative"
-
-SRC_URI = "git://github.com/ntanibata/qml-execscript-plugin.git;protocol=git;"
-SRCREV = "1f05c44cccd8aef485d8df8206c8df4e5ad6f310"
-S = "${WORKDIR}/git"
-
-inherit qmake5
-
-EXTRA_OECONF = "--with-moc-dir=${STAGING_BINDIR_NATIVE}/qt5"
-QML_LIBDIR = "${libdir}/qt5/qml"
-
-do_install() {
- install -d ${D}${libdir}/qt5/qml/execScript/
- install -m 0755 execScript/*.so ${D}${libdir}/qt5/qml/execScript/
- install -m 0644 ../git/execScript/qmldir ${D}${libdir}/qt5/qml/execScript/
-}
-
-FILES_${PN} += "${QML_LIBDIR}/execScript/libexecscriptplugin.so"
-FILES_${PN} += "${QML_LIBDIR}/execScript/qmldir"
-FILES_${PN}-dbg += "${QML_LIBDIR}/execScript/.debug"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend
deleted file mode 100644
index b7cfe8dce..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase-native_git.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-# Backport this fix from meta-qt5:
-# https://github.com/meta-qt5/meta-qt5/commit/bf7cdd963008f2d61bc4c324fff2bfafe511fb5f
-SRC_URI_remove = "file://0012-qdbuscpp2xml.pro-do-not-build-with-bootstrapped-depe.patch"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
deleted file mode 100644
index 10a1ddd88..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase/0001-Force-qdbus-to-make-introspect-for-every-findMetaObj.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a4943bb5c7fdf5eb297223d2c3bb02d2271bea48 Mon Sep 17 00:00:00 2001
-From: Risto Avila <risto.avila@theqtcompany.com>
-Date: Thu, 17 Dec 2015 04:22:53 +0200
-Subject: [PATCH] Force qdbus to make introspect for every findMetaObject
-
----
- src/dbus/qdbusintegrator.cpp | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
-index cce8b9c..ae2a9dc 100644
---- a/src/dbus/qdbusintegrator.cpp
-+++ b/src/dbus/qdbusintegrator.cpp
-@@ -2512,8 +2512,11 @@ QDBusConnectionPrivate::findMetaObject(const QString &service, const QString &pa
- if (!interface.isEmpty()) {
- QDBusReadLocker locker(FindMetaObject1Action, this);
- QDBusMetaObject *mo = cachedMetaObjects.value(interface, 0);
-- if (mo)
-- return mo;
-+ if (mo) {
-+ // service is not unique. Remove cached object to force introspect
-+ cachedMetaObjects.remove(interface);
-+ delete mo;
-+ }
- }
-
- // introspect the target object
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend
deleted file mode 100644
index e939fa35a..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PACKAGECONFIG_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
-PACKAGECONFIG_GL = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}"
-PACKAGECONFIG_append = " ${PACKAGECONFIG_WAYLAND} icu accessibility"
-PACKAGECONFIG_append = " fontconfig"
-PACKAGECONFIG_append = " sql-sqlite"
-
-EXTRA_OECONF_append = ""
-
-# '-qpa wayland-egl' set wayland-egl as default of platform plagins
-PACKAGECONFIG[wayland]="-qpa wayland-egl -no-qpa-platform-guard"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
deleted file mode 100644
index ba8a991ed..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 58197439eade86e7efc6fe98116c0092ea429d29 Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Tue, 10 Mar 2020 13:59:58 -0700
-Subject: [PATCH] mapbox: update API url to match new schema
-
----
- src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp | 7 ++++---
- src/plugins/geoservices/mapbox/qmapboxcommon.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-index 0b128556..bd2be6b6 100644
---- a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-+++ b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-@@ -88,12 +88,13 @@ QGeoTiledMapReply *QGeoTileFetcherMapbox::getTileImage(const QGeoTileSpec &spec)
- request.setRawHeader("User-Agent", m_userAgent);
-
- request.setUrl(QUrl(mapboxTilesApiPath +
-- ((spec.mapId() >= m_mapIds.size()) ? QStringLiteral("mapbox.streets") : m_mapIds[spec.mapId() - 1]) + QLatin1Char('/') +
-+ m_mapIds[m_mapIds.size() - 1] +
-+ QStringLiteral("/tiles/256/") +
- QString::number(spec.zoom()) + QLatin1Char('/') +
- QString::number(spec.x()) + QLatin1Char('/') +
- QString::number(spec.y()) +
-- ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x.")) : QLatin1String(".")) +
-- m_format + QLatin1Char('?') +
-+ ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x")) : QLatin1String("")) +
-+ QLatin1Char('?') +
- QStringLiteral("access_token=") + m_accessToken));
-
- QNetworkReply *reply = m_networkManager->get(request);
-diff --git a/src/plugins/geoservices/mapbox/qmapboxcommon.h b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-index e60c4e83..4b2ea98d 100644
---- a/src/plugins/geoservices/mapbox/qmapboxcommon.h
-+++ b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-@@ -46,7 +46,7 @@
-
- QT_BEGIN_NAMESPACE
-
--static const QString mapboxTilesApiPath = QStringLiteral("http://api.tiles.mapbox.com/v4/");
-+static const QString mapboxTilesApiPath = QStringLiteral("https://api.mapbox.com/");
-
- // https://www.mapbox.com/api-documentation/#geocoding
- static const QString mapboxGeocodingApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places/");
---
-2.25.0
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend
deleted file mode 100644
index bcda6a1e5..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtlocation_%.bbappend
+++ /dev/null
@@ -1,14 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "\
- file://0001-mapbox-update-API-url-to-match-new-schema.patch \
- "
-
-# Need to explicitly enable the various plugins
-PACKAGECONFIG += " \
- geoservices_osm \
- geoservices_here \
- geoservices_itemsoverlay \
- geoservices_mapbox \
- geoservices_mapboxgl \
-"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch
deleted file mode 100644
index 007e46763..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia/0001-metadata-image-support-with-the-data-URL-scheme-for-.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From ed61f1d932c5c6d38458fcd2e1d5d154383f017e Mon Sep 17 00:00:00 2001
-From: Tasuku Suzuki <tasuku.suzuki@qt.io>
-Date: Mon, 12 Dec 2016 16:32:47 +0900
-Subject: [PATCH] metadata image support with the "data" URL scheme for QtQuick
-
-add posterImage, coverArtImage and thumbnailImage to metadata
-
-Change-Id: I10b9bae10c219ffa41506d6e6b345020790217a6
----
- .../multimedia/qdeclarativemediametadata_p.h | 33 ++++++++++++++++++++++
- 1 file changed, 33 insertions(+)
-
-diff --git a/src/imports/multimedia/qdeclarativemediametadata_p.h b/src/imports/multimedia/qdeclarativemediametadata_p.h
-index ede7f87..6a6a815 100644
---- a/src/imports/multimedia/qdeclarativemediametadata_p.h
-+++ b/src/imports/multimedia/qdeclarativemediametadata_p.h
-@@ -51,6 +51,9 @@
- // We mean it.
- //
-
-+#include <QtCore/QBuffer>
-+#include <QtGui/QImage>
-+#include <QtGui/QImageWriter>
- #include <QtQml/qqml.h>
- #include <QtMultimedia/qmediametadata.h>
- #include <QtMultimedia/qmediaservice.h>
-@@ -153,6 +156,9 @@ class QDeclarativeMediaMetaData : public QObject
- Q_PROPERTY(QVariant gpsProcessingMethod READ gpsProcessingMethod WRITE setGPSProcessingMethod NOTIFY metaDataChanged)
- Q_PROPERTY(QVariant gpsAreaInformation READ gpsAreaInformation WRITE setGPSAreaInformation NOTIFY metaDataChanged)
-
-+ Q_PROPERTY(QVariant posterImage READ posterImage NOTIFY metaDataChanged)
-+ Q_PROPERTY(QVariant coverArtImage READ coverArtImage NOTIFY metaDataChanged)
-+ Q_PROPERTY(QVariant thumbnailImage READ thumbnailImage NOTIFY metaDataChanged)
- public:
- QDeclarativeMediaMetaData(QMediaObject *player, QObject *parent = 0)
- : QObject(parent)
-@@ -425,6 +431,16 @@ QT_WARNING_POP
- void setGPSAreaInformation(const QVariant &information) {
- setMetaData(QMediaMetaData::GPSAreaInformation, information); }
-
-+ QVariant posterImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::PosterImage));
-+ }
-+ QVariant coverArtImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::CoverArtImage));
-+ }
-+ QVariant thumbnailImage() const {
-+ return convertImageToUrl(m_mediaObject->metaData(QMediaMetaData::ThumbnailImage));
-+ }
-+
- Q_SIGNALS:
- void metaDataChanged();
-
-@@ -440,6 +456,23 @@ private:
- m_writerControl->setMetaData(key, value);
- }
-
-+ QUrl convertImageToUrl(const QVariant &variant) const
-+ {
-+ if (variant.type() != QVariant::Image)
-+ return QUrl();
-+
-+ QImage image = variant.value<QImage>();
-+ QByteArray data;
-+ QBuffer buffer(&data);
-+ buffer.open(QBuffer::WriteOnly);
-+ QImageWriter png(&buffer, "png");
-+ if (!png.write(image)) {
-+ return QUrl();
-+ }
-+ buffer.close();
-+ return QUrl(QStringLiteral("data:image/png;base64,") + data.toBase64());
-+ }
-+
- QMediaObject *m_mediaObject;
- QMetaDataWriterControl *m_writerControl;
- bool m_requestedWriterControl;
---
-2.7.4
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend
deleted file mode 100644
index a06ac2d89..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtmultimedia_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-PACKAGECONFIG_append = " gstreamer"
-
-SRC_URI_append = " \
- file://0001-metadata-image-support-with-the-data-URL-scheme-for-.patch \
- "
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend
deleted file mode 100644
index 550c58d05..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtsystems_%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-DEPENDS_remove = "bluez4"
-# currently Qt5 does not support bluez5 "Nothing PROVIDES 'gconfbluez5'"
-#DEPENDS_append = "bluez5"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland
deleted file mode 100644
index a371c6c4e..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config/qtwayland
+++ /dev/null
@@ -1,12 +0,0 @@
-QT_WAYLAND_SHELL_INTEGRATION=@QT_WAYLAND_DEFAULT_SHELL@
-# The following might be necessary when multiple/split surfaces are created.
-# Without this, QtWayland will sometimes maintain the same/old size even if the
-# split surface is destroyed.
-# We keep it disabled by default as it causes an additional repaint of the
-# surface until the compositor sends a configure event to scale the window to
-# the actual area. Typical windows will, by default, have an initial size set
-# by qtwayland when starting-up (without an explicit size specified by the
-# application).
-# Note that QtWayland will only test the presence of the environment variable
-# so it will be enabled even if set to 0
-# QT_WAYLAND_RESIZE_AFTER_SWAP=1
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb
deleted file mode 100644
index ae7c956d4..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland-config_1.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "QtWayland config file."
-DESCRIPTION = "Config file for qtwayland."
-SECTION = "apps"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI = "file://qtwayland"
-
-inherit allarch
-
-QTWAYLAND_DEFAULT_SHELL ?= "xdg-shell"
-
-do_compile[noexec] = "1"
-
-do_install () {
- install -D -m 644 ${WORKDIR}/qtwayland ${D}${sysconfdir}/afm/unit.env.d/qtwayland
- sed -i -e 's/@QT_WAYLAND_DEFAULT_SHELL@/${QTWAYLAND_DEFAULT_SHELL}/' ${D}${sysconfdir}/afm/unit.env.d/qtwayland
-}
-
-RPROVIDES_${PN} += "virtual/qtwayland-config"
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch
deleted file mode 100644
index c91e11704..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-protocol-update-3rd-party-ivi-application-protocol.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 8caaf802a8b42e9bb1d74fc335a571882c75d73e Mon Sep 17 00:00:00 2001
-From: Holger Behrens <holger.behrens@windriver.com>
-Date: Tue, 3 Feb 2015 09:52:52 +0100
-Subject: [meta-ivi-demo][PATCH 1/2] protocol: update 3rd party ivi-application
- protocol
-
-Signed-off-by: Holger Behrens <holger.behrens@windriver.com>
----
- src/3rdparty/protocol/ivi-application.xml | 31 +++----------------------------
- 1 file changed, 3 insertions(+), 28 deletions(-)
-
-diff --git a/src/3rdparty/protocol/ivi-application.xml b/src/3rdparty/protocol/ivi-application.xml
-index 833fd38..b06ae6c 100644
---- a/src/3rdparty/protocol/ivi-application.xml
-+++ b/src/3rdparty/protocol/ivi-application.xml
-@@ -42,34 +42,9 @@
- <arg name="visibility" type="int"/>
- </event>
-
-- <enum name="warning_code">
-- <description summary="possible warning codes returned by ivi compositor">
-- These define all possible warning codes returned by ivi compositor on server-side warnings.
-- invalid_wl_surface:
-- - wl_surface already has a another role.
-- - wl_surface is destroyed before the ivi_surface is destroyed.
-- ivi_id_in_use: ivi_id is already assigned by another application.
-- </description>
-- <entry name="invalid_wl_surface" value="1" summary="wl_surface is invalid"/>
-- <entry name="ivi_id_in_use" value="2" summary="ivi_id is in use and can not be shared"/>
-- </enum>
--
-- <event name="warning">
-- <description summary="server-side warning detected">
-- The ivi compositor encountered warning while processing a request by this
-- application. The warning is defined by argument warning_code and optional
-- warning_text. If the warning is detected, client shall destroy the ivi_surface
-- object.
--
-- When a warning event is sent, the compositor turns the ivi_surface object inert.
-- The ivi_surface will not deliver further events, all requests on it are ignored
-- except 'destroy', and the association to the ivi_id is removed. The client
-- should destroy the ivi_surface object. If an inert ivi_surface object is used as
-- an argument to any other object's request, that request will [produce a fatal
-- error / produce a warning / be ignored].
-- </description>
-- <arg name="warning_code" type="int"/>
-- <arg name="warning_text" type="string" allow-null="true"/>
-+ <event name="configure">
-+ <arg name="width" type="int"/>
-+ <arg name="height" type="int"/>
- </event>
-
- </interface>
---
-2.2.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch
deleted file mode 100644
index 591ef71c5..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 31c60aedf415fd06b5c1aa16fdcef1504b67b96d Mon Sep 17 00:00:00 2001
-From: Holger Behrens <holger.behrens@windriver.com>
-Date: Tue, 3 Feb 2015 09:53:43 +0100
-Subject: [meta-ivi-demo][PATCH 2/2] qwaylandwindow: add support for
- IVI-Surface-ID property
-
-Signed-off-by: Holger Behrens <holger.behrens@windriver.com>
----
- src/client/qwaylandwindow.cpp | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 45a58f2..781081a 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -100,7 +100,14 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
-
- if (!(window->flags() & Qt::BypassWindowManagerHint)) {
- if (mDisplay->shellIvi()) {
-- mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(IVI_SURFACE_ID + getpid(), object()), this);
-+ unsigned int id = 0;
-+ QVariant value = window->property("IVI-Surface-ID");
-+ if (value.isValid()) {
-+ id = value.toUInt();
-+ } else {
-+ id = IVI_SURFACE_ID + getpid();
-+ }
-+ mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(id, object()), this);
- } else if (mDisplay->shellXdg()) {
- if (window->type() & Qt::Window) {
- mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
---
-2.2.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch
deleted file mode 100644
index 39296c769..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0010-Added-manifest-file-according-to-smack-3-domain-mode.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Add qt5wayland.manifest. Removed specfile change from patch.
-
-Adapted from:
-
-From 424c23191d81b072255bd7f178ad0ee2c2ea091a Mon Sep 17 00:00:00 2001
-From: Tomasz Olszak <olszak.tomasz@gmail.com>
-Date: Fri, 25 Apr 2014 14:32:22 +0200
-Subject: [PATCH 10/21] Added manifest file according to smack 3-domain model.
-
-Bug-Tizen:TIVI-2416
-
-Change-Id: I414e245a5c8847bec32ef6a97569d0f06221e1db
-Signed-off-by: Tomasz Olszak <olszak.tomasz@gmail.com>
----
- packaging/qt5-qtwayland.manifest | 5 +++++
- packaging/qt5-qtwayland.spec | 4 ++++
- 2 files changed, 9 insertions(+)
- create mode 100644 packaging/qt5-qtwayland.manifest
-
-diff --git a/packaging/qt5-qtwayland.manifest b/packaging/qt5-qtwayland.manifest
-new file mode 100644
-index 0000000..75b0fa5
---- /dev/null
-+++ b/packaging/qt5-qtwayland.manifest
-@@ -0,0 +1,5 @@
-+<manifest>
-+ <request>
-+ <domain name="_"/>
-+ </request>
-+</manifest>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch
deleted file mode 100644
index 6bea62621..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch
+++ /dev/null
@@ -1,468 +0,0 @@
-From 5cd43dc7519f54f9786fb6c686a2ce1e682d4366 Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Fri, 25 Apr 2014 10:31:42 +0200
-Subject: [PATCH 16/21] xdg-shell: Add xdg-shell protocol file version 1.4.0
-
-Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.4.0
-
-This file will need to be refreshed on protocol update
-until xdg-shell land in wayland's public headers
-
-Task-number: QTBUG-38633/part/1of2
-Change-Id: I397d863dcfc2223ac6eb234c37dbcd7449ecffff
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/c2a22eea6716e073875474adf624d8463eba836c
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- src/3rdparty/protocol/xdg-shell.xml | 438 ++++++++++++++++++++++++++++++++++++
- 1 file changed, 438 insertions(+)
- create mode 100644 src/3rdparty/protocol/xdg-shell.xml
-
-diff --git a/src/3rdparty/protocol/xdg-shell.xml b/src/3rdparty/protocol/xdg-shell.xml
-new file mode 100644
-index 0000000..4e5cff8
---- /dev/null
-+++ b/src/3rdparty/protocol/xdg-shell.xml
-@@ -0,0 +1,438 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<protocol name="xdg_shell">
-+
-+ <copyright>
-+ Copyright © 2008-2013 Kristian Høgsberg
-+ Copyright © 2013 Rafael Antognolli
-+ Copyright © 2013 Jasper St. Pierre
-+ Copyright © 2010-2013 Intel Corporation
-+
-+ Permission to use, copy, modify, distribute, and sell this
-+ software and its documentation for any purpose is hereby granted
-+ without fee, provided that the above copyright notice appear in
-+ all copies and that both that copyright notice and this permission
-+ notice appear in supporting documentation, and that the name of
-+ the copyright holders not be used in advertising or publicity
-+ pertaining to distribution of the software without specific,
-+ written prior permission. The copyright holders make no
-+ representations about the suitability of this software for any
-+ purpose. It is provided "as is" without express or implied
-+ warranty.
-+
-+ THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-+ THIS SOFTWARE.
-+ </copyright>
-+
-+ <interface name="xdg_shell" version="1">
-+ <description summary="create desktop-style surfaces">
-+ This interface is implemented by servers that provide
-+ desktop-style user interfaces.
-+
-+ It allows clients to associate a xdg_surface with
-+ a basic surface.
-+ </description>
-+
-+ <enum name="version">
-+ <description summary="latest protocol version">
-+ Use this enum to check the protocol version, and it will be updated
-+ automatically.
-+ </description>
-+ <entry name="current" value="1" summary="Always the latest version"/>
-+ </enum>
-+
-+
-+ <request name="use_unstable_version">
-+ <description summary="enable use of this unstable version">
-+ Use this request in order to enable use of this interface.
-+
-+ Understand and agree that one is using an unstable interface,
-+ that will likely change in the future, breaking the API.
-+ </description>
-+ <arg name="version" type="int"/>
-+ </request>
-+
-+ <request name="get_xdg_surface">
-+ <description summary="create a shell surface from a surface">
-+ Create a shell surface for an existing surface.
-+
-+ Only one shell or popup surface can be associated with a given
-+ surface.
-+ </description>
-+ <arg name="id" type="new_id" interface="xdg_surface"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ </request>
-+
-+ <request name="get_xdg_popup">
-+ <description summary="create a shell surface from a surface">
-+ Create a popup surface for an existing surface.
-+
-+ Only one shell or popup surface can be associated with a given
-+ surface.
-+ </description>
-+ <arg name="id" type="new_id" interface="xdg_popup"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ <arg name="parent" type="object" interface="wl_surface"/>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ <arg name="x" type="int"/>
-+ <arg name="y" type="int"/>
-+ <arg name="flags" type="uint"/>
-+ </request>
-+ </interface>
-+
-+ <interface name="xdg_surface" version="1">
-+
-+ <description summary="desktop-style metadata interface">
-+ An interface that may be implemented by a wl_surface, for
-+ implementations that provide a desktop-style user interface.
-+
-+ It provides requests to treat surfaces like windows, allowing to set
-+ properties like maximized, fullscreen, minimized, and to move and resize
-+ them, and associate metadata like title and app id.
-+
-+ On the server side the object is automatically destroyed when
-+ the related wl_surface is destroyed. On client side,
-+ xdg_surface.destroy() must be called before destroying
-+ the wl_surface object.
-+ </description>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="remove xdg_surface interface">
-+ The xdg_surface interface is removed from the wl_surface object
-+ that was turned into a xdg_surface with
-+ xdg_shell.get_xdg_surface request. The xdg_surface properties,
-+ like maximized and fullscreen, are lost. The wl_surface loses
-+ its role as a xdg_surface. The wl_surface is unmapped.
-+ </description>
-+ </request>
-+
-+ <request name="set_transient_for">
-+ <description summary="surface is a child of another surface">
-+ Setting a surface as transient of another means that it is child
-+ of another surface.
-+
-+ Child surfaces are stacked above their parents, and will be
-+ unmapped if the parent is unmapped too. They should not appear
-+ on task bars and alt+tab.
-+ </description>
-+ <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
-+ </request>
-+
-+ <request name="set_title">
-+ <description summary="set surface title">
-+ Set a short title for the surface.
-+
-+ This string may be used to identify the surface in a task bar,
-+ window list, or other user interface elements provided by the
-+ compositor.
-+
-+ The string must be encoded in UTF-8.
-+ </description>
-+ <arg name="title" type="string"/>
-+ </request>
-+
-+ <request name="set_app_id">
-+ <description summary="set surface class">
-+ Set an id for the surface.
-+
-+ The app id identifies the general class of applications to which
-+ the surface belongs.
-+
-+ It should be the ID that appears in the new desktop entry
-+ specification, the interface name.
-+ </description>
-+ <arg name="app_id" type="string"/>
-+ </request>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
-+
-+ <event name="ping">
-+ <description summary="ping client">
-+ Ping a client to check if it is receiving events and sending
-+ requests. A client is expected to reply with a pong request.
-+ </description>
-+ <arg name="serial" type="uint"/>
-+ </event>
-+
-+ <request name="move">
-+ <description summary="start an interactive move">
-+ Start a pointer-driven move of the surface.
-+
-+ This request must be used in response to a button press event.
-+ The server may ignore move requests depending on the state of
-+ the surface (e.g. fullscreen or maximized).
-+ </description>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ </request>
-+
-+ <enum name="resize_edge">
-+ <description summary="edge values for resizing">
-+ These values are used to indicate which edge of a surface
-+ is being dragged in a resize operation. The server may
-+ use this information to adapt its behavior, e.g. choose
-+ an appropriate cursor image.
-+ </description>
-+ <entry name="none" value="0"/>
-+ <entry name="top" value="1"/>
-+ <entry name="bottom" value="2"/>
-+ <entry name="left" value="4"/>
-+ <entry name="top_left" value="5"/>
-+ <entry name="bottom_left" value="6"/>
-+ <entry name="right" value="8"/>
-+ <entry name="top_right" value="9"/>
-+ <entry name="bottom_right" value="10"/>
-+ </enum>
-+
-+ <request name="resize">
-+ <description summary="start an interactive resize">
-+ Start a pointer-driven resizing of the surface.
-+
-+ This request must be used in response to a button press event.
-+ The server may ignore resize requests depending on the state of
-+ the surface (e.g. fullscreen or maximized).
-+ </description>
-+ <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat whose pointer is used"/>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ <arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
-+ </request>
-+
-+ <event name="configure">
-+ <description summary="suggest resize">
-+ The configure event asks the client to resize its surface.
-+
-+ The size is a hint, in the sense that the client is free to
-+ ignore it if it doesn't resize, pick a smaller size (to
-+ satisfy aspect ratio or resize in steps of NxM pixels).
-+
-+ The edges parameter provides a hint about how the surface
-+ was resized. The client may use this information to decide
-+ how to adjust its content to the new size (e.g. a scrolling
-+ area might adjust its content position to leave the viewable
-+ content unmoved). Valid edge values are from resize_edge enum.
-+
-+ The client is free to dismiss all but the last configure
-+ event it received.
-+
-+ The width and height arguments specify the size of the window
-+ in surface local coordinates.
-+ </description>
-+
-+ <arg name="edges" type="uint"/>
-+ <arg name="width" type="int"/>
-+ <arg name="height" type="int"/>
-+ </event>
-+
-+ <request name="set_output">
-+ <description summary="set the default output used by this surface">
-+ Set the default output used by this surface when it is first mapped.
-+
-+ If this value is NULL (default), it's up to the compositor to choose
-+ which display will be used to map this surface.
-+
-+ When fullscreen or maximized state are set on this surface, and it
-+ wasn't mapped yet, the output set with this method will be used.
-+ Otherwise, the output where the surface is currently mapped will be
-+ used.
-+ </description>
-+ <arg name="output" type="object" interface="wl_output" allow-null="true"/>
-+ </request>
-+
-+ <event name="request_set_fullscreen">
-+ <description summary="server requests that the client set fullscreen">
-+ Event sent from the compositor to the client requesting that the client
-+ goes to a fullscreen state. It's the client job to call set_fullscreen
-+ and really trigger the fullscreen state.
-+ </description>
-+ </event>
-+
-+ <event name="request_unset_fullscreen">
-+ <description summary="server requests that the client unset fullscreen">
-+ Event sent from the compositor to the client requesting that the client
-+ leaves the fullscreen state. It's the client job to call
-+ unset_fullscreen and really leave the fullscreen state.
-+ </description>
-+ </event>
-+
-+ <request name="set_fullscreen">
-+ <description summary="set the surface state as fullscreen">
-+ Set the surface as fullscreen.
-+
-+ After this request, the compositor should send a configure event
-+ informing the output size.
-+
-+ This request informs the compositor that the next attached buffer
-+ committed will be in a fullscreen state. The buffer size should be the
-+ same size as the size informed in the configure event, if the client
-+ doesn't want to leave any empty area.
-+
-+ In other words: the next attached buffer after set_maximized is the new
-+ maximized buffer. And the surface will be positioned at the maximized
-+ position on commit.
-+
-+ A simple way to synchronize and wait for the correct configure event is
-+ to use a wl_display.sync request right after the set_fullscreen
-+ request. When the sync callback returns, the last configure event
-+ received just before it will be the correct one, and should contain the
-+ right size for the surface to maximize.
-+
-+ Setting one state won't unset another state. Use
-+ xdg_surface.unset_fullscreen for unsetting it.
-+ </description>
-+ </request>
-+
-+ <request name="unset_fullscreen">
-+ <description summary="unset the surface state as fullscreen">
-+ Unset the surface fullscreen state.
-+
-+ Same negotiation as set_fullscreen must be used.
-+ </description>
-+ </request>
-+
-+ <event name="request_set_maximized">
-+ <description summary="server requests that the client set maximized">
-+ Event sent from the compositor to the client requesting that the client
-+ goes to a maximized state. It's the client job to call set_maximized
-+ and really trigger the maximized state.
-+ </description>
-+ </event>
-+
-+ <event name="request_unset_maximized">
-+ <description summary="server requests that the client unset maximized">
-+ Event sent from the compositor to the client requesting that the client
-+ leaves the maximized state. It's the client job to call unset_maximized
-+ and really leave the maximized state.
-+ </description>
-+ </event>
-+
-+ <request name="set_maximized">
-+ <description summary="set the surface state as maximized">
-+ Set the surface as maximized.
-+
-+ After this request, the compositor will send a configure event
-+ informing the output size minus panel and other MW decorations.
-+
-+ This request informs the compositor that the next attached buffer
-+ committed will be in a maximized state. The buffer size should be the
-+ same size as the size informed in the configure event, if the client
-+ doesn't want to leave any empty area.
-+
-+ In other words: the next attached buffer after set_maximized is the new
-+ maximized buffer. And the surface will be positioned at the maximized
-+ position on commit.
-+
-+ A simple way to synchronize and wait for the correct configure event is
-+ to use a wl_display.sync request right after the set_maximized request.
-+ When the sync callback returns, the last configure event received just
-+ before it will be the correct one, and should contain the right size
-+ for the surface to maximize.
-+
-+ Setting one state won't unset another state. Use
-+ xdg_surface.unset_maximized for unsetting it.
-+ </description>
-+ </request>
-+
-+ <request name="unset_maximized">
-+ <description summary="unset the surface state as maximized">
-+ Unset the surface maximized state.
-+
-+ Same negotiation as set_maximized must be used.
-+ </description>
-+ </request>
-+
-+ <request name="set_minimized">
-+ <description summary="set the surface state as minimized">
-+ Set the surface minimized state.
-+
-+ Setting one state won't unset another state.
-+ </description>
-+ </request>
-+
-+ <event name="focused_set">
-+ <description summary="surface was focused">
-+ The focused_set event is sent when this surface has been
-+ activated. Window decorations should be updated accordingly.
-+ </description>
-+ </event>
-+
-+ <event name="focused_unset">
-+ <description summary="surface was unfocused">
-+ The focused_unset event is sent when this surface has been
-+ deactivated, because another surface has been activated. Window
-+ decorations should be updated accordingly.
-+ </description>
-+ </event>
-+ </interface>
-+
-+ <interface name="xdg_popup" version="1">
-+ <description summary="desktop-style metadata interface">
-+ An interface that may be implemented by a wl_surface, for
-+ implementations that provide a desktop-style popups/menus. A popup
-+ surface is a transient surface with an added pointer grab.
-+
-+ An existing implicit grab will be changed to owner-events mode,
-+ and the popup grab will continue after the implicit grab ends
-+ (i.e. releasing the mouse button does not cause the popup to be
-+ unmapped).
-+
-+ The popup grab continues until the window is destroyed or a mouse
-+ button is pressed in any other clients window. A click in any of
-+ the clients surfaces is reported as normal, however, clicks in
-+ other clients surfaces will be discarded and trigger the callback.
-+
-+ The x and y arguments specify the locations of the upper left
-+ corner of the surface relative to the upper left corner of the
-+ parent surface, in surface local coordinates.
-+
-+ xdg_popup surfaces are always transient for another surface.
-+ </description>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="remove xdg_surface interface">
-+ The xdg_surface interface is removed from the wl_surface object
-+ that was turned into a xdg_surface with
-+ xdg_shell.get_xdg_surface request. The xdg_surface properties,
-+ like maximized and fullscreen, are lost. The wl_surface loses
-+ its role as a xdg_surface. The wl_surface is unmapped.
-+ </description>
-+ </request>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
-+
-+ <event name="ping">
-+ <description summary="ping client">
-+ Ping a client to check if it is receiving events and sending
-+ requests. A client is expected to reply with a pong request.
-+ </description>
-+ <arg name="serial" type="uint"/>
-+ </event>
-+
-+ <event name="popup_done">
-+ <description summary="popup interaction is done">
-+ The popup_done event is sent out when a popup grab is broken,
-+ that is, when the users clicks a surface that doesn't belong
-+ to the client owning the popup surface.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the implicit grab on the pointer"/>
-+ </event>
-+
-+ </interface>
-+</protocol>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch
deleted file mode 100644
index fe1bb50e8..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch
+++ /dev/null
@@ -1,1029 +0,0 @@
-From 0edba039247ce888dbb7ff0a93c7b9ec01bac46e Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Wed, 26 Mar 2014 10:16:01 +0100
-Subject: [PATCH 17/21] xdg-shell: Add minimize feature to QWindow using
- wayland's xdg-shell
-
-The feature is disabled by default,
-and can be enabled at runtime
-by exporting QT_WAYLAND_USE_XDG_SHELL env variable.
-
-This patch relies on presence of protocol file
-which has been imported from weston-1.4.0 sources,
-until the xdg-shell is merge into wayland itself.
-
-Because xdg-shell is experimental,
-code fallback to WaylandShell if no XdgShell
-but keep in mind those shells are exclusive.
-
-Since xdg-shell and wayland-shell share most of the API,
-some factorization is done by an (empty) abstraction class
-to keep the code more readable.
-
-Despite xdg-shell introduces new popups concept,
-they're not used on this change for maitainance purpose.
-
-Notes:
-
-* This change depends on presence of xdg-shell protocol file.
-
-* You can check a demo video
- (qt-tizen-cinematic-experience-20140430-rzr)
- of the test case at :
- https://www.youtube.com/watch?v=pY_XXvKc_0E#
-
-* Use Super+Tab to show window again if hidden
-
-Task-number: QTBUG-38633/part/2of2
-Change-Id: I2d7ed85bea1847d82439fdfc893a3dbb2581ffff
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/768484daaa64bea965bef981a16f59be8db0c190
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- src/client/client.pro | 5 +
- src/client/qwaylanddisplay.cpp | 5 +
- src/client/qwaylanddisplay_p.h | 4 +
- src/client/qwaylandshellsurface.cpp | 134 ------------------------
- src/client/qwaylandshellsurface_p.h | 40 +++-----
- src/client/qwaylandwindow.cpp | 40 ++++++--
- src/client/qwaylandwlshellsurface.cpp | 186 ++++++++++++++++++++++++++++++++++
- src/client/qwaylandwlshellsurface_p.h | 101 ++++++++++++++++++
- src/client/qwaylandxdgsurface.cpp | 173 +++++++++++++++++++++++++++++++
- src/client/qwaylandxdgsurface_p.h | 105 +++++++++++++++++++
- 10 files changed, 625 insertions(+), 168 deletions(-)
- create mode 100644 src/client/qwaylandwlshellsurface.cpp
- create mode 100644 src/client/qwaylandwlshellsurface_p.h
- create mode 100644 src/client/qwaylandxdgsurface.cpp
- create mode 100644 src/client/qwaylandxdgsurface_p.h
-
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 10cbd31..9ecf82f 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -41,6 +41,7 @@ WAYLANDCLIENTSOURCES += \
- ../extensions/qtkey-extension.xml \
- ../extensions/windowmanager.xml \
- ../3rdparty/protocol/text.xml \
-+ ../3rdparty/protocol/xdg-shell.xml \
-
- SOURCES += qwaylandintegration.cpp \
- qwaylandnativeinterface.cpp \
-@@ -57,6 +58,8 @@ SOURCES += qwaylandintegration.cpp \
- qwaylanddatadevicemanager.cpp \
- qwaylanddatasource.cpp \
- qwaylandshellsurface.cpp \
-+ qwaylandwlshellsurface.cpp \
-+ qwaylandxdgsurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
- qwaylandsubsurface.cpp \
-@@ -85,6 +88,8 @@ HEADERS += qwaylandintegration_p.h \
- qwaylanddatadevicemanager_p.h \
- qwaylanddatasource_p.h \
- qwaylandshellsurface_p.h \
-+ qwaylandwlshellsurface_p.h \
-+ qwaylandxdgsurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
- qwaylandsubsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 0b715c0..7f953ad 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -61,6 +61,7 @@
- #include "qwaylandqtkey_p.h"
-
- #include <QtWaylandClient/private/qwayland-text.h>
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-
- #include <QtCore/QAbstractEventDispatcher>
- #include <QtGui/private/qguiapplication_p.h>
-@@ -206,6 +207,10 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mCompositor.init(registry, id);
- } else if (interface == QStringLiteral("wl_shm")) {
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
-+ } else if (interface == QStringLiteral("xdg_shell")
-+ && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
-+ mShellXdg.reset(new QtWayland::xdg_shell(registry, id));
-+ mShellXdg->use_unstable_version(QtWayland::xdg_shell::version_current);
- } else if (interface == QStringLiteral("wl_shell")){
- mShell.reset(new QtWayland::wl_shell(registry, id));
- } else if (interface == QStringLiteral("wl_seat")) {
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index 40cb2b2..cf5dfc2 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -51,6 +51,7 @@
-
- #include <QtWaylandClient/private/qwayland-wayland.h>
- #include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-
- struct wl_cursor_image;
-
-@@ -78,6 +79,7 @@ namespace QtWayland {
- class qt_sub_surface_extension;
- class qt_surface_extension;
- class wl_text_input_manager;
-+ class xdg_shell;
- }
-
- typedef void (*RegistryListener)(void *data,
-@@ -113,6 +115,7 @@ public:
- QtWayland::wl_compositor *compositor() { return &mCompositor; }
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
-+ QtWayland::xdg_shell *shellXdg() { return mShellXdg.data(); }
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -168,6 +171,7 @@ private:
- QThread *mEventThread;
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
-+ QScopedPointer<QtWayland::xdg_shell> mShellXdg;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandshellsurface.cpp b/src/client/qwaylandshellsurface.cpp
-index b7a819f..80e509b 100644
---- a/src/client/qwaylandshellsurface.cpp
-+++ b/src/client/qwaylandshellsurface.cpp
-@@ -40,137 +40,3 @@
- ****************************************************************************/
-
- #include "qwaylandshellsurface_p.h"
--
--#include "qwaylanddisplay_p.h"
--#include "qwaylandwindow_p.h"
--#include "qwaylandinputdevice_p.h"
--#include "qwaylanddecoration_p.h"
--#include "qwaylandscreen_p.h"
--
--#include <QtCore/QDebug>
--
--QT_BEGIN_NAMESPACE
--
--QWaylandShellSurface::QWaylandShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window)
-- : QtWayland::wl_shell_surface(shell_surface)
-- , m_window(window)
-- , m_maximized(false)
-- , m_fullscreen(false)
--{
--}
--
--QWaylandShellSurface::~QWaylandShellSurface()
--{
-- wl_shell_surface_destroy(object());
--}
--
--void QWaylandShellSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
--{
-- resize(inputDevice->wl_seat(),
-- inputDevice->serial(),
-- edges);
--}
--
--void QWaylandShellSurface::move(QWaylandInputDevice *inputDevice)
--{
-- move(inputDevice->wl_seat(),
-- inputDevice->serial());
--}
--
--void QWaylandShellSurface::setMaximized()
--{
-- m_maximized = true;
-- m_size = m_window->window()->geometry().size();
-- set_maximized(0);
--}
--
--void QWaylandShellSurface::setFullscreen()
--{
-- m_fullscreen = true;
-- m_size = m_window->window()->geometry().size();
-- set_fullscreen(WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, 0);
--}
--
--void QWaylandShellSurface::setNormal()
--{
-- if (m_fullscreen || m_maximized) {
-- m_fullscreen = m_maximized = false;
-- setTopLevel();
-- QMargins m = m_window->frameMargins();
-- m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-- }
--}
--
--void QWaylandShellSurface::setMinimized()
--{
-- // TODO: There's no wl_shell_surface API for this
--}
--
--void QWaylandShellSurface::setTopLevel()
--{
-- set_toplevel();
--}
--
--void QWaylandShellSurface::updateTransientParent(QWindow *parent)
--{
-- QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-- if (!parent_wayland_window)
-- return;
--
-- // set_transient expects a position relative to the parent
-- QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-- QWindow *parentWin = m_window->window()->transientParent();
-- transientPos -= parentWin->geometry().topLeft();
-- if (parent_wayland_window->decoration()) {
-- transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-- transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-- }
--
-- uint32_t flags = 0;
-- Qt::WindowFlags wf = m_window->window()->flags();
-- if (wf.testFlag(Qt::ToolTip)
-- || wf.testFlag(Qt::WindowTransparentForInput))
-- flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
--
-- set_transient(parent_wayland_window->object(),
-- transientPos.x(),
-- transientPos.y(),
-- flags);
--}
--
--void QWaylandShellSurface::setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial)
--{
-- QWaylandWindow *parent_wayland_window = parent;
-- if (!parent_wayland_window)
-- return;
--
-- // set_popup expects a position relative to the parent
-- QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-- transientPos -= parent_wayland_window->geometry().topLeft();
-- if (parent_wayland_window->decoration()) {
-- transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-- transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-- }
--
-- set_popup(device->wl_seat(), serial, parent_wayland_window->object(),
-- transientPos.x(), transientPos.y(), 0);
--}
--
--void QWaylandShellSurface::shell_surface_ping(uint32_t serial)
--{
-- pong(serial);
--}
--
--void QWaylandShellSurface::shell_surface_configure(uint32_t edges,
-- int32_t width,
-- int32_t height)
--{
-- m_window->configure(edges, width, height);
--}
--
--void QWaylandShellSurface::shell_surface_popup_done()
--{
-- QCoreApplication::postEvent(m_window->window(), new QCloseEvent());
--}
--
--QT_END_NAMESPACE
-diff --git a/src/client/qwaylandshellsurface_p.h b/src/client/qwaylandshellsurface_p.h
-index 2477c3f..2f59f60 100644
---- a/src/client/qwaylandshellsurface_p.h
-+++ b/src/client/qwaylandshellsurface_p.h
-@@ -55,39 +55,25 @@ class QWaylandWindow;
- class QWaylandInputDevice;
- class QWindow;
-
--class Q_WAYLAND_CLIENT_EXPORT QWaylandShellSurface : public QtWayland::wl_shell_surface
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandShellSurface
- {
- public:
-- QWaylandShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window);
-- ~QWaylandShellSurface();
-+ virtual ~QWaylandShellSurface() {}
-+ virtual void resize(QWaylandInputDevice * /*inputDevice*/, enum wl_shell_surface_resize /*edges*/)
-+ {}
-
-- using QtWayland::wl_shell_surface::resize;
-- void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges);
--
-- using QtWayland::wl_shell_surface::move;
-- void move(QWaylandInputDevice *inputDevice);
-+ virtual void move(QWaylandInputDevice * /*inputDevice*/) {}
-+ virtual void setTitle(const QString & /*title*/) {}
-+ virtual void setAppId(const QString & /*appId*/) {}
-
- private:
-- void setMaximized();
-- void setFullscreen();
-- void setNormal();
-- void setMinimized();
--
-- void setTopLevel();
-- void updateTransientParent(QWindow *parent);
-- void setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial);
--
-- QWaylandWindow *m_window;
-- bool m_maximized;
-- bool m_fullscreen;
-- QSize m_size;
--
-- void shell_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-- void shell_surface_configure(uint32_t edges,
-- int32_t width,
-- int32_t height) Q_DECL_OVERRIDE;
-- void shell_surface_popup_done() Q_DECL_OVERRIDE;
-+ virtual void setMaximized() {}
-+ virtual void setFullscreen() {}
-+ virtual void setNormal() {}
-+ virtual void setMinimized() {}
-
-+ virtual void setTopLevel() {}
-+ virtual void updateTransientParent(QWindow * /*parent*/) {}
- friend class QWaylandWindow;
- };
-
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 920c977..3fb3a49 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -46,6 +46,8 @@
- #include "qwaylandinputdevice_p.h"
- #include "qwaylandscreen_p.h"
- #include "qwaylandshellsurface_p.h"
-+#include "qwaylandwlshellsurface_p.h"
-+#include "qwaylandxdgsurface_p.h"
- #include "qwaylandextendedsurface_p.h"
- #include "qwaylandsubsurface_p.h"
- #include "qwaylanddecoration_p.h"
-@@ -92,8 +94,16 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
- static WId id = 1;
- mWindowId = id++;
-
-- if (mDisplay->shell() && window->type() & Qt::Window && !(window->flags() & Qt::BypassWindowManagerHint))
-- mShellSurface = new QWaylandShellSurface(mDisplay->shell()->get_shell_surface(object()), this);
-+ if (!(window->flags() & Qt::BypassWindowManagerHint)) {
-+ if (mDisplay->shellXdg()) {
-+ if (window->type() & Qt::Window) {
-+ mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
-+ }
-+ } else if (mDisplay->shell() && window->type() & Qt::Window) {
-+ mShellSurface = new QWaylandWlShellSurface(mDisplay->shell()->get_shell_surface(object()), this);
-+ }
-+ }
-+
- if (mDisplay->windowExtension())
- mExtendedWindow = new QWaylandExtendedSurface(this, mDisplay->windowExtension()->get_extended_surface(object()));
- if (mDisplay->subSurfaceExtension())
-@@ -101,12 +111,12 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
-
- if (mShellSurface) {
- // Set initial surface title
-- mShellSurface->set_title(window->title());
-+ mShellSurface->setTitle(window->title());
-
- // Set surface class to the .desktop file name (obtained from executable name)
- QFileInfo exeFileInfo(qApp->applicationFilePath());
- QString className = exeFileInfo.baseName() + QLatin1String(".desktop");
-- mShellSurface->set_class(className);
-+ mShellSurface->setAppId(className);
- }
-
- if (QPlatformWindow::parent() && mSubSurfaceWindow) {
-@@ -170,7 +180,7 @@ void QWaylandWindow::setParent(const QPlatformWindow *parent)
- void QWaylandWindow::setWindowTitle(const QString &title)
- {
- if (mShellSurface) {
-- mShellSurface->set_title(title);
-+ mShellSurface->setTitle(title);
- }
-
- if (mWindowDecoration && window()->isVisible())
-@@ -212,8 +222,10 @@ void QWaylandWindow::setVisible(bool visible)
- mMouseDevice = parent->mMouseDevice;
- mMouseSerial = parent->mMouseSerial;
-
-- if (mMouseDevice)
-- mShellSurface->setPopup(transientParent(), mMouseDevice, mMouseSerial);
-+ QWaylandWlShellSurface *wlshellSurface = dynamic_cast<QWaylandWlShellSurface*>(mShellSurface);
-+ if (mMouseDevice && wlshellSurface) {
-+ wlshellSurface->setPopup(transientParent(), mMouseDevice, mMouseSerial);
-+ }
- }
-
- if (!mSentInitialResize) {
-@@ -428,6 +440,20 @@ void QWaylandWindow::setWindowFlags(Qt::WindowFlags flags)
-
- bool QWaylandWindow::createDecoration()
- {
-+ // so far only xdg-shell support this "unminimize" trick, may be moved elsewhere
-+ if (mState == Qt::WindowMinimized) {
-+ QWaylandXdgSurface *xdgSurface = dynamic_cast<QWaylandXdgSurface *>(mShellSurface);
-+ if ( xdgSurface ) {
-+ if (xdgSurface->isFullscreen()) {
-+ setWindowStateInternal(Qt::WindowFullScreen);
-+ } else if (xdgSurface->isMaximized()) {
-+ setWindowStateInternal(Qt::WindowMaximized);
-+ } else {
-+ setWindowStateInternal(Qt::WindowNoState);
-+ }
-+ }
-+ }
-+
- static bool disableWaylandDecorations = !qgetenv("QT_WAYLAND_DISABLE_WINDOWDECORATION").isEmpty();
- if (disableWaylandDecorations)
- return false;
-diff --git a/src/client/qwaylandwlshellsurface.cpp b/src/client/qwaylandwlshellsurface.cpp
-new file mode 100644
-index 0000000..4b73ec2
---- /dev/null
-+++ b/src/client/qwaylandwlshellsurface.cpp
-@@ -0,0 +1,186 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandwlshellsurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandWlShellSurface::QWaylandWlShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window)
-+ : QtWayland::wl_shell_surface(shell_surface)
-+ , m_window(window)
-+ , m_maximized(false)
-+ , m_fullscreen(false)
-+{
-+}
-+
-+QWaylandWlShellSurface::~QWaylandWlShellSurface()
-+{
-+ wl_shell_surface_destroy(object());
-+}
-+
-+void QWaylandWlShellSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+ resize(inputDevice->wl_seat(),
-+ inputDevice->serial(),
-+ edges);
-+}
-+
-+void QWaylandWlShellSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+ move(inputDevice->wl_seat(),
-+ inputDevice->serial());
-+}
-+
-+void QWaylandWlShellSurface::setTitle(const QString & title)
-+{
-+ return QtWayland::wl_shell_surface::set_title(title);
-+}
-+
-+void QWaylandWlShellSurface::setAppId(const QString & appId)
-+{
-+ return QtWayland::wl_shell_surface::set_class(appId);
-+}
-+
-+void QWaylandWlShellSurface::setMaximized()
-+{
-+ m_maximized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_maximized(0);
-+}
-+
-+void QWaylandWlShellSurface::setFullscreen()
-+{
-+ m_fullscreen = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_fullscreen(WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, 0);
-+}
-+
-+void QWaylandWlShellSurface::setNormal()
-+{
-+ if (m_fullscreen || m_maximized) {
-+ m_fullscreen = m_maximized = false;
-+ setTopLevel();
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+}
-+
-+void QWaylandWlShellSurface::setMinimized()
-+{
-+ // TODO: There's no wl_shell_surface API for this
-+}
-+
-+void QWaylandWlShellSurface::setTopLevel()
-+{
-+ set_toplevel();
-+}
-+
-+void QWaylandWlShellSurface::updateTransientParent(QWindow *parent)
-+{
-+ QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_transient expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ QWindow *parentWin = m_window->window()->transientParent();
-+ transientPos -= parentWin->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ uint32_t flags = 0;
-+ Qt::WindowFlags wf = m_window->window()->flags();
-+ if (wf.testFlag(Qt::ToolTip)
-+ || wf.testFlag(Qt::WindowTransparentForInput))
-+ flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
-+
-+ set_transient(parent_wayland_window->object(),
-+ transientPos.x(),
-+ transientPos.y(),
-+ flags);
-+}
-+
-+void QWaylandWlShellSurface::setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial)
-+{
-+ QWaylandWindow *parent_wayland_window = parent;
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_popup expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ transientPos -= parent_wayland_window->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ set_popup(device->wl_seat(), serial, parent_wayland_window->object(),
-+ transientPos.x(), transientPos.y(), 0);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height)
-+{
-+ m_window->configure(edges, width, height);
-+}
-+
-+void QWaylandWlShellSurface::shell_surface_popup_done()
-+{
-+ QCoreApplication::postEvent(m_window->window(), new QCloseEvent());
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandwlshellsurface_p.h b/src/client/qwaylandwlshellsurface_p.h
-new file mode 100644
-index 0000000..d02bb7b
---- /dev/null
-+++ b/src/client/qwaylandwlshellsurface_p.h
-@@ -0,0 +1,101 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDWLSHELLSURFACE_H
-+#define QWAYLANDWLSHELLSURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-wayland.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandWlShellSurface : public QtWayland::wl_shell_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandWlShellSurface(struct ::wl_shell_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandWlShellSurface();
-+
-+ using QtWayland::wl_shell_surface::resize;
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+
-+ using QtWayland::wl_shell_surface::move;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString & title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+ void setPopup(QWaylandWindow *parent, QWaylandInputDevice *device, int serial);
-+
-+ QWaylandWindow *m_window;
-+ bool m_maximized;
-+ bool m_fullscreen;
-+ QSize m_size;
-+
-+ void shell_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+ void shell_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height) Q_DECL_OVERRIDE;
-+ void shell_surface_popup_done() Q_DECL_OVERRIDE;
-+
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDSHELLSURFACE_H
-diff --git a/src/client/qwaylandxdgsurface.cpp b/src/client/qwaylandxdgsurface.cpp
-new file mode 100644
-index 0000000..1b8affa
---- /dev/null
-+++ b/src/client/qwaylandxdgsurface.cpp
-@@ -0,0 +1,173 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandxdgsurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandXdgSurface::QWaylandXdgSurface(struct ::xdg_surface *xdg_surface, QWaylandWindow *window)
-+ : QtWayland::xdg_surface(xdg_surface)
-+ , m_window(window)
-+ , m_maximized(false)
-+ , m_minimized(false)
-+ , m_fullscreen(false)
-+{
-+}
-+
-+QWaylandXdgSurface::~QWaylandXdgSurface()
-+{
-+ xdg_surface_destroy(object());
-+}
-+
-+void QWaylandXdgSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+ // May need some conversion if types get incompatibles, ATM they're identical
-+ enum resize_edge const * const arg = reinterpret_cast<enum resize_edge const * const>(&edges);
-+ resize(inputDevice, *arg);
-+}
-+
-+void QWaylandXdgSurface::resize(QWaylandInputDevice *inputDevice, enum resize_edge edges)
-+{
-+ resize(inputDevice->wl_seat(),
-+ inputDevice->serial(),
-+ edges);
-+}
-+
-+void QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+ move(inputDevice->wl_seat(),
-+ inputDevice->serial());
-+}
-+
-+void QWaylandXdgSurface::setMaximized()
-+{
-+ m_maximized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_maximized();
-+}
-+
-+void QWaylandXdgSurface::setFullscreen()
-+{
-+ m_fullscreen = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_fullscreen();
-+}
-+
-+void QWaylandXdgSurface::setNormal()
-+{
-+ if (m_fullscreen || m_maximized || m_minimized) {
-+ if (m_maximized) { unset_maximized(); }
-+ if (m_fullscreen) { unset_fullscreen(); }
-+
-+ m_fullscreen = m_maximized = m_minimized = false;
-+ setTopLevel();
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+}
-+
-+void QWaylandXdgSurface::setMinimized()
-+{
-+ m_minimized = true;
-+ m_size = m_window->window()->geometry().size();
-+ set_minimized();
-+}
-+
-+void QWaylandXdgSurface::setTopLevel()
-+{
-+ // There's no xdg_shell_surface API for this, ignoring
-+}
-+
-+void QWaylandXdgSurface::updateTransientParent(QWindow *parent)
-+{
-+ QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle());
-+ if (!parent_wayland_window)
-+ return;
-+
-+ // set_transient expects a position relative to the parent
-+ QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
-+ QWindow *parentWin = m_window->window()->transientParent();
-+ transientPos -= parentWin->geometry().topLeft();
-+ if (parent_wayland_window->decoration()) {
-+ transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left());
-+ transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top());
-+ }
-+
-+ uint32_t flags = 0;
-+ Qt::WindowFlags wf = m_window->window()->flags();
-+ if (wf.testFlag(Qt::ToolTip)
-+ || wf.testFlag(Qt::WindowTransparentForInput))
-+ flags |= XDG_SURFACE_SET_TRANSIENT_FOR;
-+
-+ set_transient_for(parent_wayland_window->object());
-+}
-+
-+void QWaylandXdgSurface::setTitle(const QString & title)
-+{
-+ return QtWayland::xdg_surface::set_title(title);
-+}
-+
-+void QWaylandXdgSurface::setAppId(const QString & appId)
-+{
-+ return QtWayland::xdg_surface::set_app_id(appId);
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_configure(uint32_t edges, int32_t width,
-+ int32_t height)
-+{
-+ m_window->configure(edges, width, height);
-+}
-+
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgsurface_p.h b/src/client/qwaylandxdgsurface_p.h
-new file mode 100644
-index 0000000..744d3f3
---- /dev/null
-+++ b/src/client/qwaylandxdgsurface_p.h
-@@ -0,0 +1,105 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDXDGSURFACE_H
-+#define QWAYLANDXDGSURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgSurface : public QtWayland::xdg_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandXdgSurface(struct ::xdg_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandXdgSurface();
-+
-+ using QtWayland::xdg_surface::resize;
-+ void resize(QWaylandInputDevice *inputDevice, enum resize_edge edges);
-+
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+
-+ using QtWayland::xdg_surface::move;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString &title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+ bool isFullscreen() const { return m_fullscreen; }
-+ bool isMaximized() const { return m_maximized; }
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+
-+private:
-+ QWaylandWindow *m_window;
-+ bool m_maximized;
-+ bool m_minimized;
-+ bool m_fullscreen;
-+ QSize m_size;
-+
-+ void xdg_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+ void xdg_surface_configure(uint32_t edges,
-+ int32_t width,
-+ int32_t height) Q_DECL_OVERRIDE;
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDXDGSURFACE_H
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch
deleted file mode 100644
index 8f0425a76..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0019-xdg-shell-upgrade-to-support-current-version-weston-.patch
+++ /dev/null
@@ -1,772 +0,0 @@
-From c4219cca0febd7119e0bec776fdc2877b3448e0b Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Tue, 10 Jun 2014 16:22:17 +0200
-Subject: [PATCH 19/21] xdg-shell: upgrade to support current version
- (weston-1.5.0)
-
-The protocol file is a raw copy of
-
-Source: http://cgit.freedesktop.org/wayland/weston/plain/protocol/xdg-shell.xml?id=1.5.0
-
-Task-number: QTBUG-38633/related
-Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
-Reviewed-by: Philippe Coval <rzr@gna.org>
-Origin: https://www.qt.gitorious.org/qt/qtwayland/commit/4bac130b97fbaa565aa9883eb302557ef0185d50
-Change-Id: I41ca2f89c09a8b6348ce2fbf6d59f44b4c81ffff
----
- src/3rdparty/protocol/xdg-shell.xml | 288 ++++++++++++++++++------------------
- src/client/client.pro | 2 +
- src/client/qwaylanddisplay.cpp | 10 +-
- src/client/qwaylanddisplay_p.h | 5 +-
- src/client/qwaylandxdgshell.cpp | 77 ++++++++++
- src/client/qwaylandxdgshell_p.h | 73 +++++++++
- src/client/qwaylandxdgsurface.cpp | 60 ++++++--
- src/client/qwaylandxdgsurface_p.h | 11 +-
- 8 files changed, 364 insertions(+), 162 deletions(-)
- create mode 100644 src/client/qwaylandxdgshell.cpp
- create mode 100644 src/client/qwaylandxdgshell_p.h
-
-diff --git a/src/3rdparty/protocol/xdg-shell.xml b/src/3rdparty/protocol/xdg-shell.xml
-index 4e5cff8..79a2831 100644
---- a/src/3rdparty/protocol/xdg-shell.xml
-+++ b/src/3rdparty/protocol/xdg-shell.xml
-@@ -40,19 +40,22 @@
-
- <enum name="version">
- <description summary="latest protocol version">
-- Use this enum to check the protocol version, and it will be updated
-- automatically.
-+ The 'current' member of this enum gives the version of the
-+ protocol. Implementations can compare this to the version
-+ they implement using static_assert to ensure the protocol and
-+ implementation versions match.
- </description>
-- <entry name="current" value="1" summary="Always the latest version"/>
-+ <entry name="current" value="3" summary="Always the latest version"/>
- </enum>
-
-
- <request name="use_unstable_version">
- <description summary="enable use of this unstable version">
-- Use this request in order to enable use of this interface.
--
-- Understand and agree that one is using an unstable interface,
-- that will likely change in the future, breaking the API.
-+ Negotiate the unstable version of the interface. This
-+ mechanism is in place to ensure client and server agree on the
-+ unstable versions of the protocol that they speak or exit
-+ cleanly if they don't agree. This request will go away once
-+ the xdg-shell protocol is stable.
- </description>
- <arg name="version" type="int"/>
- </request>
-@@ -84,6 +87,28 @@
- <arg name="y" type="int"/>
- <arg name="flags" type="uint"/>
- </request>
-+
-+ <event name="ping">
-+ <description summary="check if the client is alive">
-+ The ping event asks the client if it's still alive. Pass the
-+ serial specified in the event back to the compositor by sending
-+ a "pong" request back with the specified serial.
-+
-+ Compositors can use this to determine if the client is still
-+ alive. It's unspecified what will happen if the client doesn't
-+ respond to the ping request, or in what timeframe. Clients should
-+ try to respond in a reasonable amount of time.
-+ </description>
-+ <arg name="serial" type="uint" summary="pass this to the callback"/>
-+ </event>
-+
-+ <request name="pong">
-+ <description summary="respond to a ping event">
-+ A client must respond to a ping event with a pong request or
-+ the client may be deemed unresponsive.
-+ </description>
-+ <arg name="serial" type="uint" summary="serial of the ping event"/>
-+ </request>
- </interface>
-
- <interface name="xdg_surface" version="1">
-@@ -124,6 +149,32 @@
- <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
- </request>
-
-+ <request name="set_margin">
-+ <description summary="set the visible frame boundaries">
-+ This tells the compositor what the visible size of the window
-+ should be, so it can use it to determine what borders to use for
-+ constrainment and alignment.
-+
-+ CSD often has invisible areas for decoration purposes, like drop
-+ shadows. These "shadow" drawings need to be subtracted out of the
-+ normal boundaries of the window when computing where to place
-+ windows (e.g. to set this window so it's centered on top of another,
-+ or to put it to the left or right of the screen.)
-+
-+ This value should change as little as possible at runtime, to
-+ prevent flicker.
-+
-+ This value is also ignored when the window is maximized or
-+ fullscreen, and assumed to be 0.
-+
-+ If never called, this value is assumed to be 0.
-+ </description>
-+ <arg name="left_margin" type="int"/>
-+ <arg name="right_margin" type="int"/>
-+ <arg name="top_margin" type="int"/>
-+ <arg name="bottom_margin" type="int"/>
-+ </request>
-+
- <request name="set_title">
- <description summary="set surface title">
- Set a short title for the surface.
-@@ -150,22 +201,6 @@
- <arg name="app_id" type="string"/>
- </request>
-
-- <request name="pong">
-- <description summary="respond to a ping event">
-- A client must respond to a ping event with a pong request or
-- the client may be deemed unresponsive.
-- </description>
-- <arg name="serial" type="uint" summary="serial of the ping event"/>
-- </request>
--
-- <event name="ping">
-- <description summary="ping client">
-- Ping a client to check if it is receiving events and sending
-- requests. A client is expected to reply with a pong request.
-- </description>
-- <arg name="serial" type="uint"/>
-- </event>
--
- <request name="move">
- <description summary="start an interactive move">
- Start a pointer-driven move of the surface.
-@@ -217,12 +252,6 @@
- ignore it if it doesn't resize, pick a smaller size (to
- satisfy aspect ratio or resize in steps of NxM pixels).
-
-- The edges parameter provides a hint about how the surface
-- was resized. The client may use this information to decide
-- how to adjust its content to the new size (e.g. a scrolling
-- area might adjust its content position to leave the viewable
-- content unmoved). Valid edge values are from resize_edge enum.
--
- The client is free to dismiss all but the last configure
- event it received.
-
-@@ -230,7 +259,6 @@
- in surface local coordinates.
- </description>
-
-- <arg name="edges" type="uint"/>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
- </event>
-@@ -250,128 +278,122 @@
- <arg name="output" type="object" interface="wl_output" allow-null="true"/>
- </request>
-
-- <event name="request_set_fullscreen">
-- <description summary="server requests that the client set fullscreen">
-- Event sent from the compositor to the client requesting that the client
-- goes to a fullscreen state. It's the client job to call set_fullscreen
-- and really trigger the fullscreen state.
-- </description>
-- </event>
--
-- <event name="request_unset_fullscreen">
-- <description summary="server requests that the client unset fullscreen">
-- Event sent from the compositor to the client requesting that the client
-- leaves the fullscreen state. It's the client job to call
-- unset_fullscreen and really leave the fullscreen state.
-- </description>
-- </event>
-+ <enum name="state">
-+ <description summary="types of state on the surface">
-+ The different state values used on the surface. This is designed for
-+ state values like maximized, fullscreen. It is paired with the
-+ request_change_state event to ensure that both the client and the
-+ compositor setting the state can be synchronized.
-
-- <request name="set_fullscreen">
-- <description summary="set the surface state as fullscreen">
-- Set the surface as fullscreen.
-+ States set in this way are double-buffered. They will get applied on
-+ the next commit.
-
-- After this request, the compositor should send a configure event
-- informing the output size.
-+ Desktop environments may extend this enum by taking up a range of
-+ values and documenting the range they chose in this description.
-+ They are not required to document the values for the range that they
-+ chose. Ideally, any good extensions from a desktop environment should
-+ make its way into standardization into this enum.
-
-- This request informs the compositor that the next attached buffer
-- committed will be in a fullscreen state. The buffer size should be the
-- same size as the size informed in the configure event, if the client
-- doesn't want to leave any empty area.
-+ The current reserved ranges are:
-
-- In other words: the next attached buffer after set_maximized is the new
-- maximized buffer. And the surface will be positioned at the maximized
-- position on commit.
--
-- A simple way to synchronize and wait for the correct configure event is
-- to use a wl_display.sync request right after the set_fullscreen
-- request. When the sync callback returns, the last configure event
-- received just before it will be the correct one, and should contain the
-- right size for the surface to maximize.
--
-- Setting one state won't unset another state. Use
-- xdg_surface.unset_fullscreen for unsetting it.
-+ 0x0000 - 0x0FFF: xdg-shell core values, documented below.
-+ 0x1000 - 0x1FFF: GNOME
- </description>
-- </request>
-+ <entry name="maximized" value="1" summary="the surface is maximized">
-+ A non-zero value indicates the surface is maximized. Otherwise,
-+ the surface is unmaximized.
-+ </entry>
-+ <entry name="fullscreen" value="2" summary="the surface is fullscreen">
-+ A non-zero value indicates the surface is fullscreen. Otherwise,
-+ the surface is not fullscreen.
-+ </entry>
-+ </enum>
-
-- <request name="unset_fullscreen">
-- <description summary="unset the surface state as fullscreen">
-- Unset the surface fullscreen state.
-+ <request name="request_change_state">
-+ <description summary="client requests to change a surface's state">
-+ This asks the compositor to change the state. If the compositor wants
-+ to change the state, it will send a change_state event with the same
-+ state_type, value, and serial, and the event flow continues as if it
-+ it was initiated by the compositor.
-
-- Same negotiation as set_fullscreen must be used.
-+ If the compositor does not want to change the state, it will send a
-+ change_state to the client with the old value of the state.
- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="an event serial">
-+ This serial is so the client can know which change_state event corresponds
-+ to which request_change_state request it sent out.
-+ </arg>
- </request>
-
-- <event name="request_set_maximized">
-- <description summary="server requests that the client set maximized">
-- Event sent from the compositor to the client requesting that the client
-- goes to a maximized state. It's the client job to call set_maximized
-- and really trigger the maximized state.
-+ <event name="change_state">
-+ <description summary="compositor wants to change a surface's state">
-+ This event tells the client to change a surface's state. The client
-+ should respond with an ack_change_state request to the compositor to
-+ guarantee that the compositor knows that the client has seen it.
- </description>
-- </event>
-
-- <event name="request_unset_maximized">
-- <description summary="server requests that the client unset maximized">
-- Event sent from the compositor to the client requesting that the client
-- leaves the maximized state. It's the client job to call unset_maximized
-- and really leave the maximized state.
-- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="a serial for the compositor's own tracking"/>
- </event>
-
-- <request name="set_maximized">
-- <description summary="set the surface state as maximized">
-- Set the surface as maximized.
--
-- After this request, the compositor will send a configure event
-- informing the output size minus panel and other MW decorations.
--
-- This request informs the compositor that the next attached buffer
-- committed will be in a maximized state. The buffer size should be the
-- same size as the size informed in the configure event, if the client
-- doesn't want to leave any empty area.
-+ <request name="ack_change_state">
-+ <description summary="ack a change_state event">
-+ When a change_state event is received, a client should then ack it
-+ using the ack_change_state request to ensure that the compositor
-+ knows the client has seen the event.
-
-- In other words: the next attached buffer after set_maximized is the new
-- maximized buffer. And the surface will be positioned at the maximized
-- position on commit.
-+ By this point, the state is confirmed, and the next attach should
-+ contain the buffer drawn for the new state value.
-
-- A simple way to synchronize and wait for the correct configure event is
-- to use a wl_display.sync request right after the set_maximized request.
-- When the sync callback returns, the last configure event received just
-- before it will be the correct one, and should contain the right size
-- for the surface to maximize.
--
-- Setting one state won't unset another state. Use
-- xdg_surface.unset_maximized for unsetting it.
-+ The values here need to be the same as the values in the cooresponding
-+ change_state event.
- </description>
-+ <arg name="state_type" type="uint" summary="the state to set"/>
-+ <arg name="value" type="uint" summary="the value to change the state to"/>
-+ <arg name="serial" type="uint" summary="a serial to pass to change_state"/>
- </request>
-
-- <request name="unset_maximized">
-- <description summary="unset the surface state as maximized">
-- Unset the surface maximized state.
--
-- Same negotiation as set_maximized must be used.
-+ <request name="set_minimized">
-+ <description summary="minimize the surface">
-+ Minimize the surface.
- </description>
- </request>
-
-- <request name="set_minimized">
-- <description summary="set the surface state as minimized">
-- Set the surface minimized state.
--
-- Setting one state won't unset another state.
-+ <event name="activated">
-+ <description summary="surface was activated">
-+ The activated_set event is sent when this surface has been
-+ activated, which means that the surface has user attention.
-+ Window decorations should be updated accordingly. You should
-+ not use this event for anything but the style of decorations
-+ you display, use wl_keyboard.enter and wl_keyboard.leave for
-+ determining keyboard focus.
- </description>
-- </request>
-+ </event>
-
-- <event name="focused_set">
-- <description summary="surface was focused">
-- The focused_set event is sent when this surface has been
-- activated. Window decorations should be updated accordingly.
-+ <event name="deactivated">
-+ <description summary="surface was deactivated">
-+ The deactivate event is sent when this surface has been
-+ deactivated, which means that the surface lost user attention.
-+ Window decorations should be updated accordingly. You should
-+ not use this event for anything but the style of decorations
-+ you display, use wl_keyboard.enter and wl_keyboard.leave for
-+ determining keyboard focus.
- </description>
- </event>
-
-- <event name="focused_unset">
-- <description summary="surface was unfocused">
-- The focused_unset event is sent when this surface has been
-- deactivated, because another surface has been activated. Window
-- decorations should be updated accordingly.
-+ <event name="close">
-+ <description summary="surface wants to be closed">
-+ The close event is sent by the compositor when the user
-+ wants the surface to be closed. This should be equivalent to
-+ the user clicking the close button in client-side decorations,
-+ if your application has any...
-+
-+ This is only a request that the user intends to close your
-+ window. The client may choose to ignore this request, or show
-+ a dialog to ask the user to save their data...
- </description>
- </event>
- </interface>
-@@ -409,22 +431,6 @@
- </description>
- </request>
-
-- <request name="pong">
-- <description summary="respond to a ping event">
-- A client must respond to a ping event with a pong request or
-- the client may be deemed unresponsive.
-- </description>
-- <arg name="serial" type="uint" summary="serial of the ping event"/>
-- </request>
--
-- <event name="ping">
-- <description summary="ping client">
-- Ping a client to check if it is receiving events and sending
-- requests. A client is expected to reply with a pong request.
-- </description>
-- <arg name="serial" type="uint"/>
-- </event>
--
- <event name="popup_done">
- <description summary="popup interaction is done">
- The popup_done event is sent out when a popup grab is broken,
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 9ecf82f..73e3b7f 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -59,6 +59,7 @@ SOURCES += qwaylandintegration.cpp \
- qwaylanddatasource.cpp \
- qwaylandshellsurface.cpp \
- qwaylandwlshellsurface.cpp \
-+ qwaylandxdgshell.cpp \
- qwaylandxdgsurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
-@@ -89,6 +90,7 @@ HEADERS += qwaylandintegration_p.h \
- qwaylanddatasource_p.h \
- qwaylandshellsurface_p.h \
- qwaylandwlshellsurface_p.h \
-+ qwaylandxdgshell_p.h \
- qwaylandxdgsurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 7f953ad..2e25672 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -50,7 +50,7 @@
- #include "qwaylandclipboard_p.h"
- #include "qwaylanddatadevicemanager_p.h"
- #include "qwaylandhardwareintegration_p.h"
--
-+#include "qwaylandxdgshell_p.h"
-
- #include "qwaylandwindowmanagerintegration_p.h"
-
-@@ -209,8 +209,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
- } else if (interface == QStringLiteral("xdg_shell")
- && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
-- mShellXdg.reset(new QtWayland::xdg_shell(registry, id));
-- mShellXdg->use_unstable_version(QtWayland::xdg_shell::version_current);
-+ mShellXdg.reset(new QWaylandXdgShell(registry,id));
- } else if (interface == QStringLiteral("wl_shell")){
- mShell.reset(new QtWayland::wl_shell(registry, id));
- } else if (interface == QStringLiteral("wl_seat")) {
-@@ -275,4 +274,9 @@ void QWaylandDisplay::forceRoundTrip()
- wl_display_roundtrip(mDisplay);
- }
-
-+QtWayland::xdg_shell *QWaylandDisplay::shellXdg()
-+{
-+ return mShellXdg.data();
-+}
-+
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index cf5dfc2..f1b35a7 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -72,6 +72,7 @@ class QWaylandWindow;
- class QWaylandEventThread;
- class QWaylandIntegration;
- class QWaylandHardwareIntegration;
-+class QWaylandXdgShell;
-
- namespace QtWayland {
- class qt_output_extension;
-@@ -115,7 +116,7 @@ public:
- QtWayland::wl_compositor *compositor() { return &mCompositor; }
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
-- QtWayland::xdg_shell *shellXdg() { return mShellXdg.data(); }
-+ QtWayland::xdg_shell *shellXdg();
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -171,7 +172,7 @@ private:
- QThread *mEventThread;
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
-- QScopedPointer<QtWayland::xdg_shell> mShellXdg;
-+ QScopedPointer<QWaylandXdgShell> mShellXdg;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandxdgshell.cpp b/src/client/qwaylandxdgshell.cpp
-new file mode 100644
-index 0000000..eb9f91c
---- /dev/null
-+++ b/src/client/qwaylandxdgshell.cpp
-@@ -0,0 +1,77 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <philippe.coval@eurogiciel.fr>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandxdgshell_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandXdgShell::QWaylandXdgShell(struct ::xdg_shell *shell)
-+ : QtWayland::xdg_shell(shell)
-+{
-+}
-+
-+QWaylandXdgShell::QWaylandXdgShell(struct ::wl_registry *registry, uint32_t id)
-+ : QtWayland::xdg_shell(registry, id)
-+{
-+ use_unstable_version(QtWayland::xdg_shell::version_current);
-+}
-+
-+QWaylandXdgShell::~QWaylandXdgShell()
-+{
-+ xdg_shell_destroy(object());
-+}
-+
-+
-+void QWaylandXdgShell::xdg_shell_ping(uint32_t serial)
-+{
-+ pong(serial);
-+}
-+
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgshell_p.h b/src/client/qwaylandxdgshell_p.h
-new file mode 100644
-index 0000000..6a396bd
---- /dev/null
-+++ b/src/client/qwaylandxdgshell_p.h
-@@ -0,0 +1,73 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <philippe.coval@eurogiciel.fr>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDXDGSHELL_H
-+#define QWAYLANDXDGSHELL_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShell : public QtWayland::xdg_shell
-+{
-+public:
-+ QWaylandXdgShell(struct ::xdg_shell *shell);
-+ QWaylandXdgShell(struct ::wl_registry *registry, uint32_t id);
-+
-+ virtual ~QWaylandXdgShell();
-+
-+private:
-+ void xdg_shell_ping(uint32_t serial) Q_DECL_OVERRIDE;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDXDGSHELL_H
-diff --git a/src/client/qwaylandxdgsurface.cpp b/src/client/qwaylandxdgsurface.cpp
-index 1b8affa..5fb74d2 100644
---- a/src/client/qwaylandxdgsurface.cpp
-+++ b/src/client/qwaylandxdgsurface.cpp
-@@ -87,23 +87,25 @@ void QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
-
- void QWaylandXdgSurface::setMaximized()
- {
-- m_maximized = true;
-- m_size = m_window->window()->geometry().size();
-- set_maximized();
-+ if (!m_maximized)
-+ request_change_state(XDG_SURFACE_STATE_MAXIMIZED, true, 0);
- }
-
- void QWaylandXdgSurface::setFullscreen()
- {
-- m_fullscreen = true;
-- m_size = m_window->window()->geometry().size();
-- set_fullscreen();
-+ if (!m_fullscreen)
-+ request_change_state(XDG_SURFACE_STATE_FULLSCREEN, true, 0);
- }
-
- void QWaylandXdgSurface::setNormal()
- {
- if (m_fullscreen || m_maximized || m_minimized) {
-- if (m_maximized) { unset_maximized(); }
-- if (m_fullscreen) { unset_fullscreen(); }
-+ if (m_maximized) {
-+ request_change_state(XDG_SURFACE_STATE_MAXIMIZED, false, 0);
-+ }
-+ if (m_fullscreen) {
-+ request_change_state(XDG_SURFACE_STATE_FULLSCREEN, false, 0);
-+ }
-
- m_fullscreen = m_maximized = m_minimized = false;
- setTopLevel();
-@@ -158,16 +160,48 @@ void QWaylandXdgSurface::setAppId(const QString & appId)
- return QtWayland::xdg_surface::set_app_id(appId);
- }
-
--void QWaylandXdgSurface::xdg_surface_ping(uint32_t serial)
-+void QWaylandXdgSurface::xdg_surface_configure(int32_t width, int32_t height)
- {
-- pong(serial);
-+ m_window->configure(0 , width, height);
- }
-
--void QWaylandXdgSurface::xdg_surface_configure(uint32_t edges, int32_t width,
-- int32_t height)
-+void QWaylandXdgSurface::xdg_surface_change_state(uint32_t state,
-+ uint32_t value,
-+ uint32_t serial)
- {
-- m_window->configure(edges, width, height);
-+
-+ if (state == XDG_SURFACE_STATE_MAXIMIZED
-+ || state == XDG_SURFACE_STATE_FULLSCREEN) {
-+ if (value) {
-+ m_size = m_window->window()->geometry().size();
-+ } else {
-+ QMargins m = m_window->frameMargins();
-+ m_window->configure(0, m_size.width() + m.left() + m.right(), m_size.height() + m.top() + m.bottom());
-+ }
-+ }
-+
-+ switch (state) {
-+ case XDG_SURFACE_STATE_MAXIMIZED:
-+ m_maximized = value;
-+ break;
-+ case XDG_SURFACE_STATE_FULLSCREEN:
-+ m_fullscreen = value;
-+ break;
-+ }
-+
-+ xdg_surface_ack_change_state(object(), state, value, serial);
- }
-
-+void QWaylandXdgSurface::xdg_surface_activated()
-+{
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_deactivated()
-+{
-+}
-+
-+void QWaylandXdgSurface::xdg_surface_close()
-+{
-+}
-
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylandxdgsurface_p.h b/src/client/qwaylandxdgsurface_p.h
-index 744d3f3..d2a154e 100644
---- a/src/client/qwaylandxdgsurface_p.h
-+++ b/src/client/qwaylandxdgsurface_p.h
-@@ -93,10 +93,15 @@ private:
- bool m_fullscreen;
- QSize m_size;
-
-- void xdg_surface_ping(uint32_t serial) Q_DECL_OVERRIDE;
-- void xdg_surface_configure(uint32_t edges,
-- int32_t width,
-+ void xdg_surface_configure(int32_t width,
- int32_t height) Q_DECL_OVERRIDE;
-+ void xdg_surface_change_state(uint32_t state,
-+ uint32_t value,
-+ uint32_t serial) Q_DECL_OVERRIDE;
-+ void xdg_surface_activated() Q_DECL_OVERRIDE;
-+ void xdg_surface_deactivated() Q_DECL_OVERRIDE;
-+ void xdg_surface_close() Q_DECL_OVERRIDE;
-+
- friend class QWaylandWindow;
- };
-
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch
deleted file mode 100644
index 413459fb6..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From b4f032b13338ad6c21024177b031c75063ef7493 Mon Sep 17 00:00:00 2001
-From: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
-Date: Sun, 7 Sep 2014 08:19:30 +0200
-Subject: [PATCH 20/21] Add IVI-Shell protocol file version patch v6
-
-Source : http://lists.freedesktop.org/archives/wayland-devel/2014-June/015617.html
-
-This file comes from the last proposed definition of the IVI-Shell protocol,
-and will need to be refreshed on protocol update.
-
-Task-number: QTBUG-XXXXX/part/1of2
-
-Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
----
- src/3rdparty/protocol/ivi-application.xml | 101 ++++++++++++++++++++++++++++++
- 1 file changed, 101 insertions(+)
- create mode 100644 src/3rdparty/protocol/ivi-application.xml
-
-diff --git a/src/3rdparty/protocol/ivi-application.xml b/src/3rdparty/protocol/ivi-application.xml
-new file mode 100644
-index 0000000..833fd38
---- /dev/null
-+++ b/src/3rdparty/protocol/ivi-application.xml
-@@ -0,0 +1,101 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<protocol name="ivi_application">
-+
-+ <copyright>
-+ Copyright (C) 2013 DENSO CORPORATION
-+ Copyright (c) 2013 BMW Car IT GmbH
-+
-+ Permission is hereby granted, free of charge, to any person obtaining a copy
-+ of this software and associated documentation files (the "Software"), to deal
-+ in the Software without restriction, including without limitation the rights
-+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+ copies of the Software, and to permit persons to whom the Software is
-+ furnished to do so, subject to the following conditions:
-+
-+ The above copyright notice and this permission notice shall be included in
-+ all copies or substantial portions of the Software.
-+
-+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-+ THE SOFTWARE.
-+ </copyright>
-+
-+ <interface name="ivi_surface" version="1">
-+ <description summary="application interface to surface in ivi compositor"/>
-+
-+ <request name="destroy" type="destructor">
-+ <description summary="destroy ivi_surface">
-+ This removes link from ivi_id to wl_surface and destroys ivi_surface.
-+ </description>
-+ </request>
-+
-+ <event name="visibility">
-+ <description summary="visibility of surface in ivi compositor has changed">
-+ The new visibility state is provided in argument visibility.
-+ If visibility is 0, the surface has become invisible.
-+ If visibility is not 0, the surface has become visible.
-+ </description>
-+ <arg name="visibility" type="int"/>
-+ </event>
-+
-+ <enum name="warning_code">
-+ <description summary="possible warning codes returned by ivi compositor">
-+ These define all possible warning codes returned by ivi compositor on server-side warnings.
-+ invalid_wl_surface:
-+ - wl_surface already has a another role.
-+ - wl_surface is destroyed before the ivi_surface is destroyed.
-+ ivi_id_in_use: ivi_id is already assigned by another application.
-+ </description>
-+ <entry name="invalid_wl_surface" value="1" summary="wl_surface is invalid"/>
-+ <entry name="ivi_id_in_use" value="2" summary="ivi_id is in use and can not be shared"/>
-+ </enum>
-+
-+ <event name="warning">
-+ <description summary="server-side warning detected">
-+ The ivi compositor encountered warning while processing a request by this
-+ application. The warning is defined by argument warning_code and optional
-+ warning_text. If the warning is detected, client shall destroy the ivi_surface
-+ object.
-+
-+ When a warning event is sent, the compositor turns the ivi_surface object inert.
-+ The ivi_surface will not deliver further events, all requests on it are ignored
-+ except 'destroy', and the association to the ivi_id is removed. The client
-+ should destroy the ivi_surface object. If an inert ivi_surface object is used as
-+ an argument to any other object's request, that request will [produce a fatal
-+ error / produce a warning / be ignored].
-+ </description>
-+ <arg name="warning_code" type="int"/>
-+ <arg name="warning_text" type="string" allow-null="true"/>
-+ </event>
-+
-+ </interface>
-+
-+ <interface name="ivi_application" version="1">
-+ <description summary="create ivi-style surfaces">
-+ This interface is implemented by servers that provide desktop-style user interfaces.
-+ It allows clients to associate a ivi_surface with a basic surface.
-+ </description>
-+
-+ <request name="surface_create">
-+ <description summary="create ivi_surface with numeric ID in ivi compositor">
-+ surface_create will create a interface:ivi_surface with numeric ID; ivi_id in
-+ ivi compositor. These ivi_ids are defined as unique in the system to identify
-+ it inside of ivi compositor. The ivi compositor implements business logic how to
-+ set properties of the surface with ivi_id according to status of the system.
-+ E.g. a unique ID for Car Navigation application is used for implementing special
-+ logic of the application about where it shall be located.
-+ if a wl_surface which already has another role is set, the server regards this as
-+ error and disconnects the client.
-+ </description>
-+ <arg name="ivi_id" type="uint"/>
-+ <arg name="surface" type="object" interface="wl_surface"/>
-+ <arg name="id" type="new_id" interface="ivi_surface"/>
-+ </request>
-+
-+ </interface>
-+
-+</protocol>
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch
deleted file mode 100644
index 8723def26..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0021-Implement-initial-IVI-Shell-support.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-From 1ddfa43692cabae0f552351cfbc09377e479471e Mon Sep 17 00:00:00 2001
-From: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
-Date: Mon, 8 Sep 2014 11:38:01 +0200
-Subject: [PATCH 21/21] Implement initial IVI-Shell support
-
-IVI-Shell provides a shell interface for Weston, which maps the GENIVI API (http://www.genivi.org) for In-Vehicle Infotainment.
-
-This patch enables detecting the IVI-Shell interface at runtime, and creating compatible surfaces if found.
-
-Task-number: QTBUG-XXXXX/part/2of2
-
-Change-Id: I1f6c11bf56b727a54fb48faab9c076b61d635440
-Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
----
- src/client/client.pro | 5 ++
- src/client/qwaylanddisplay.cpp | 9 ++++
- src/client/qwaylanddisplay_p.h | 5 ++
- src/client/qwaylandivishell.cpp | 69 +++++++++++++++++++++++++
- src/client/qwaylandivishell_p.h | 70 +++++++++++++++++++++++++
- src/client/qwaylandivisurface.cpp | 105 ++++++++++++++++++++++++++++++++++++++
- src/client/qwaylandivisurface_p.h | 90 ++++++++++++++++++++++++++++++++
- src/client/qwaylandwindow.cpp | 8 ++-
- 8 files changed, 360 insertions(+), 1 deletion(-)
- create mode 100644 src/client/qwaylandivishell.cpp
- create mode 100644 src/client/qwaylandivishell_p.h
- create mode 100644 src/client/qwaylandivisurface.cpp
- create mode 100644 src/client/qwaylandivisurface_p.h
-
-diff --git a/src/client/client.pro b/src/client/client.pro
-index 73e3b7f..adb526d 100644
---- a/src/client/client.pro
-+++ b/src/client/client.pro
-@@ -42,6 +42,7 @@ WAYLANDCLIENTSOURCES += \
- ../extensions/windowmanager.xml \
- ../3rdparty/protocol/text.xml \
- ../3rdparty/protocol/xdg-shell.xml \
-+ ../3rdparty/protocol/ivi-application.xml \
-
- SOURCES += qwaylandintegration.cpp \
- qwaylandnativeinterface.cpp \
-@@ -61,6 +62,8 @@ SOURCES += qwaylandintegration.cpp \
- qwaylandwlshellsurface.cpp \
- qwaylandxdgshell.cpp \
- qwaylandxdgsurface.cpp \
-+ qwaylandivishell.cpp \
-+ qwaylandivisurface.cpp \
- qwaylandextendedoutput.cpp \
- qwaylandextendedsurface.cpp \
- qwaylandsubsurface.cpp \
-@@ -92,6 +95,8 @@ HEADERS += qwaylandintegration_p.h \
- qwaylandwlshellsurface_p.h \
- qwaylandxdgshell_p.h \
- qwaylandxdgsurface_p.h \
-+ qwaylandivishell_p.h \
-+ qwaylandivisurface_p.h \
- qwaylandextendedoutput_p.h \
- qwaylandextendedsurface_p.h \
- qwaylandsubsurface_p.h \
-diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
-index 2e25672..2a93db7 100644
---- a/src/client/qwaylanddisplay.cpp
-+++ b/src/client/qwaylanddisplay.cpp
-@@ -51,6 +51,7 @@
- #include "qwaylanddatadevicemanager_p.h"
- #include "qwaylandhardwareintegration_p.h"
- #include "qwaylandxdgshell_p.h"
-+#include "qwaylandivishell_p.h"
-
- #include "qwaylandwindowmanagerintegration_p.h"
-
-@@ -62,6 +63,7 @@
-
- #include <QtWaylandClient/private/qwayland-text.h>
- #include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-
- #include <QtCore/QAbstractEventDispatcher>
- #include <QtGui/private/qguiapplication_p.h>
-@@ -207,6 +209,8 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
- mCompositor.init(registry, id);
- } else if (interface == QStringLiteral("wl_shm")) {
- mShm = static_cast<struct wl_shm *>(wl_registry_bind(registry, id, &wl_shm_interface,1));
-+ } else if (interface == QStringLiteral("ivi_application")) {
-+ mShellIvi.reset(new QWaylandIviShell(registry,id));
- } else if (interface == QStringLiteral("xdg_shell")
- && qEnvironmentVariableIsSet("QT_WAYLAND_USE_XDG_SHELL")) {
- mShellXdg.reset(new QWaylandXdgShell(registry,id));
-@@ -279,4 +283,9 @@ QtWayland::xdg_shell *QWaylandDisplay::shellXdg()
- return mShellXdg.data();
- }
-
-+QtWayland::ivi_application *QWaylandDisplay::shellIvi()
-+{
-+ return mShellIvi.data();
-+}
-+
- QT_END_NAMESPACE
-diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
-index f1b35a7..b9c686c 100644
---- a/src/client/qwaylanddisplay_p.h
-+++ b/src/client/qwaylanddisplay_p.h
-@@ -52,6 +52,7 @@
- #include <QtWaylandClient/private/qwayland-wayland.h>
- #include <QtWaylandClient/private/qwaylandclientexport_p.h>
- #include <QtWaylandClient/private/qwayland-xdg-shell.h>
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-
- struct wl_cursor_image;
-
-@@ -72,6 +73,7 @@ class QWaylandWindow;
- class QWaylandEventThread;
- class QWaylandIntegration;
- class QWaylandHardwareIntegration;
-+class QWaylandIviShell;
- class QWaylandXdgShell;
-
- namespace QtWayland {
-@@ -81,6 +83,7 @@ namespace QtWayland {
- class qt_surface_extension;
- class wl_text_input_manager;
- class xdg_shell;
-+ class ivi_application;
- }
-
- typedef void (*RegistryListener)(void *data,
-@@ -117,6 +120,7 @@ public:
-
- QtWayland::wl_shell *shell() { return mShell.data(); }
- QtWayland::xdg_shell *shellXdg();
-+ QtWayland::ivi_application *shellIvi();
-
- QList<QWaylandInputDevice *> inputDevices() const { return mInputDevices; }
- QWaylandInputDevice *defaultInputDevice() const;
-@@ -173,6 +177,7 @@ private:
- QWaylandEventThread *mEventThreadObject;
- QScopedPointer<QtWayland::wl_shell> mShell;
- QScopedPointer<QWaylandXdgShell> mShellXdg;
-+ QScopedPointer<QWaylandIviShell> mShellIvi;
- QList<QPlatformScreen *> mScreens;
- QList<QWaylandInputDevice *> mInputDevices;
- QList<Listener> mRegistryListeners;
-diff --git a/src/client/qwaylandivishell.cpp b/src/client/qwaylandivishell.cpp
-new file mode 100644
-index 0000000..9d63d0d
---- /dev/null
-+++ b/src/client/qwaylandivishell.cpp
-@@ -0,0 +1,69 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <manuel.bachmann@open.eurogiciel.org>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandivishell_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandIviShell::QWaylandIviShell(struct ::ivi_application *shell)
-+ : QtWayland::ivi_application(shell)
-+{
-+}
-+
-+QWaylandIviShell::QWaylandIviShell(struct ::wl_registry *registry, uint32_t id)
-+ : QtWayland::ivi_application(registry, id)
-+{
-+}
-+
-+QWaylandIviShell::~QWaylandIviShell()
-+{
-+ ivi_application_destroy(object());
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandivishell_p.h b/src/client/qwaylandivishell_p.h
-new file mode 100644
-index 0000000..f9f6983
---- /dev/null
-+++ b/src/client/qwaylandivishell_p.h
-@@ -0,0 +1,70 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Eurogiciel, author: <manuel.bachmann@open.eurogiciel.org>
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDIVISHELL_H
-+#define QWAYLANDIVISHELL_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviShell : public QtWayland::ivi_application
-+{
-+public:
-+ QWaylandIviShell(struct ::ivi_application *shell);
-+ QWaylandIviShell(struct ::wl_registry *registry, uint32_t id);
-+
-+ virtual ~QWaylandIviShell();
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDIVISHELL_H
-diff --git a/src/client/qwaylandivisurface.cpp b/src/client/qwaylandivisurface.cpp
-new file mode 100644
-index 0000000..a12309e
---- /dev/null
-+++ b/src/client/qwaylandivisurface.cpp
-@@ -0,0 +1,105 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qwaylandivisurface_p.h"
-+
-+#include "qwaylanddisplay_p.h"
-+#include "qwaylandwindow_p.h"
-+#include "qwaylandinputdevice_p.h"
-+#include "qwaylanddecoration_p.h"
-+#include "qwaylandscreen_p.h"
-+
-+#include <QtCore/QDebug>
-+
-+QT_BEGIN_NAMESPACE
-+
-+QWaylandIviSurface::QWaylandIviSurface(struct ::ivi_surface *ivi_surface, QWaylandWindow *window)
-+ : QtWayland::ivi_surface(ivi_surface)
-+ , m_window(window)
-+{
-+}
-+
-+QWaylandIviSurface::~QWaylandIviSurface()
-+{
-+ ivi_surface_destroy(object());
-+}
-+
-+void QWaylandIviSurface::resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges)
-+{
-+}
-+
-+void QWaylandIviSurface::move(QWaylandInputDevice *inputDevice)
-+{
-+}
-+
-+void QWaylandIviSurface::setMaximized()
-+{
-+}
-+
-+void QWaylandIviSurface::setFullscreen()
-+{
-+}
-+
-+void QWaylandIviSurface::setNormal()
-+{
-+}
-+
-+void QWaylandIviSurface::setMinimized()
-+{
-+}
-+
-+void QWaylandIviSurface::setTopLevel()
-+{
-+}
-+
-+void QWaylandIviSurface::updateTransientParent(QWindow *parent)
-+{
-+}
-+
-+void QWaylandIviSurface::setTitle(const QString & title)
-+{
-+}
-+
-+void QWaylandIviSurface::setAppId(const QString & appId)
-+{
-+}
-+
-+QT_END_NAMESPACE
-diff --git a/src/client/qwaylandivisurface_p.h b/src/client/qwaylandivisurface_p.h
-new file mode 100644
-index 0000000..c6a7ce6
---- /dev/null
-+++ b/src/client/qwaylandivisurface_p.h
-@@ -0,0 +1,90 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the config.tests of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QWAYLANDIVISURFACE_H
-+#define QWAYLANDIVISURFACE_H
-+
-+#include <QtCore/QSize>
-+
-+#include <wayland-client.h>
-+
-+#include <QtWaylandClient/private/qwayland-ivi-application.h>
-+#include <QtWaylandClient/private/qwaylandclientexport_p.h>
-+#include "qwaylandshellsurface_p.h"
-+
-+QT_BEGIN_NAMESPACE
-+
-+class QWaylandWindow;
-+class QWaylandInputDevice;
-+class QWindow;
-+class QWaylandExtendedSurface;
-+
-+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviSurface : public QtWayland::ivi_surface
-+ , public QWaylandShellSurface
-+{
-+public:
-+ QWaylandIviSurface(struct ::ivi_surface *shell_surface, QWaylandWindow *window);
-+ virtual ~QWaylandIviSurface();
-+
-+ void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) Q_DECL_OVERRIDE;
-+ void move(QWaylandInputDevice *inputDevice) Q_DECL_OVERRIDE;
-+
-+ void setTitle(const QString &title) Q_DECL_OVERRIDE;
-+ void setAppId(const QString &appId) Q_DECL_OVERRIDE;
-+
-+private:
-+ void setMaximized() Q_DECL_OVERRIDE;
-+ void setFullscreen() Q_DECL_OVERRIDE;
-+ void setNormal() Q_DECL_OVERRIDE;
-+ void setMinimized() Q_DECL_OVERRIDE;
-+
-+ void setTopLevel() Q_DECL_OVERRIDE;
-+ void updateTransientParent(QWindow *parent) Q_DECL_OVERRIDE;
-+
-+private:
-+ QWaylandWindow *m_window;
-+
-+ friend class QWaylandWindow;
-+};
-+
-+QT_END_NAMESPACE
-+
-+#endif // QWAYLANDIVISURFACE_H
-diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
-index 3fb3a49..45a58f2 100644
---- a/src/client/qwaylandwindow.cpp
-+++ b/src/client/qwaylandwindow.cpp
-@@ -39,6 +39,8 @@
- **
- ****************************************************************************/
-
-+#include <unistd.h>
-+
- #include "qwaylandwindow_p.h"
-
- #include "qwaylandbuffer_p.h"
-@@ -48,10 +50,12 @@
- #include "qwaylandshellsurface_p.h"
- #include "qwaylandwlshellsurface_p.h"
- #include "qwaylandxdgsurface_p.h"
-+#include "qwaylandivisurface_p.h"
- #include "qwaylandextendedsurface_p.h"
- #include "qwaylandsubsurface_p.h"
- #include "qwaylanddecoration_p.h"
- #include "qwaylandwindowmanagerintegration_p.h"
-+#define IVI_SURFACE_ID 8000
-
- #include <QtCore/QFileInfo>
- #include <QtGui/QWindow>
-@@ -95,7 +99,9 @@ QWaylandWindow::QWaylandWindow(QWindow *window)
- mWindowId = id++;
-
- if (!(window->flags() & Qt::BypassWindowManagerHint)) {
-- if (mDisplay->shellXdg()) {
-+ if (mDisplay->shellIvi()) {
-+ mShellSurface = new QWaylandIviSurface(mDisplay->shellIvi()->surface_create(IVI_SURFACE_ID + getpid(), object()), this);
-+ } else if (mDisplay->shellXdg()) {
- if (window->type() & Qt::Window) {
- mShellSurface = new QWaylandXdgSurface(mDisplay->shellXdg()->get_xdg_surface(object()), this);
- }
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch
deleted file mode 100644
index 984ae8132..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tests/auto/compositor/compositor/compositor.pro b/tests/auto/compositor/compositor/compositor.pro
-index 2919fa4..d9acac3 100644
---- a/tests/auto/compositor/compositor/compositor.pro
-+++ b/tests/auto/compositor/compositor/compositor.pro
-@@ -7,9 +7,6 @@ QT += core-private gui-private waylandcompositor waylandcompositor-private
-
- QMAKE_USE += wayland-client wayland-server
-
--qtConfig(xkbcommon-evdev): \
-- QMAKE_USE += xkbcommon_evdev
--
- WAYLANDCLIENTSOURCES += \
- ../../../../src/3rdparty/protocol/xdg-shell.xml \
- ../../../../src/3rdparty/protocol/ivi-application.xml \
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch
deleted file mode 100644
index bca61b5db..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/UNUSED_NEEDS_CHECK_YOCTO_0018-packaging-enable-xdg-shell-at-runtime.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9617c349a212d5407087daf4f4a2386bce94ecc1 Mon Sep 17 00:00:00 2001
-From: Philippe Coval <philippe.coval@open.eurogiciel.org>
-Date: Thu, 12 Jun 2014 11:55:29 +0200
-Subject: [PATCH 18/21] packaging: enable xdg-shell at runtime
-
-Change-Id: Iffbae496f1e09c8fa44a28d4eb515678e3bbb297
-Bug-Tizen: TIVI-3113/part
-Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
----
- packaging/qt5-qtwayland.spec | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/packaging/qt5-qtwayland.spec b/packaging/qt5-qtwayland.spec
-index cba18e2..ff32185 100644
---- a/packaging/qt5-qtwayland.spec
-+++ b/packaging/qt5-qtwayland.spec
-@@ -97,6 +97,11 @@ rm -rf %{buildroot}
-
- %post
- /sbin/ldconfig
-+
-+f="/etc/profile.d/qt.sh"
-+grep QT_WAYLAND_USE_XDG_SHELL $f \
-+ || echo "QT_WAYLAND_USE_XDG_SHELL='defined'; export QT_WAYLAND_USE_XDG_SHELL" >> $f
-+
- %postun
- /sbin/ldconfig
-
---
-1.9.1
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend
deleted file mode 100644
index 2f6072acd..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-# QT_MODULE_BRANCH = "5.4"
-
-# TODO:
-# These patches for IVI-SHELL are tempolary disabled because of issues. And new
-# patches are proposed.
-#
-# file://0020-Add-IVI-Shell-protocol-file-version-patch-v6.patch \
-# file://0021-Implement-initial-IVI-Shell-support.patch \
-# file://0001-protocol-update-3rd-party-ivi-application-protocol.patch \
-# file://0002-qwaylandwindow-add-support-for-IVI-Surface-ID-proper.patch \
-#
-# The xdg-shell merged into upstream, so we don't need these patch anymore.
-# But xdg-shell doesn't work well in current AGL Distro because of
-# mismatch of protocol versions between server(weston) and client(Qt Apps).
-#
-# file://0016-xdg-shell-Add-xdg-shell-protocol-file-version-1.4.0.patch \
-# file://0017-xdg-shell-Add-minimize-feature-to-QWindow-using-wayl.patch \
-# file://0019-xdg-shell-upgrade-to-support-current-version-weston-.patch \
-#
-
-SRC_URI_append = "\
- file://0010-Added-manifest-file-according-to-smack-3-domain-mode.patch \
- "
-
diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend
deleted file mode 100644
index 0420578e1..000000000
--- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwebkit_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-PACKAGECONFIG = "gstreamer qtlocation qtmultimedia qtsensors"
diff --git a/meta-agl-profile-graphical/LICENSE b/meta-agl-profile-graphical/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-graphical/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/LICENSE.GPL-2.0-only b/meta-agl-profile-graphical/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-graphical/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/LICENSE.MIT b/meta-agl-profile-graphical/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-graphical/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-graphical/classes/agl-graphical.bbclass b/meta-agl-profile-graphical/classes/agl-graphical.bbclass
deleted file mode 100644
index 65106db18..000000000
--- a/meta-agl-profile-graphical/classes/agl-graphical.bbclass
+++ /dev/null
@@ -1,6 +0,0 @@
-WESTONUSER ??= "display"
-WESTONGROUP ??= "display"
-WESTONARGS ?= "--idle-time=0 --tty=7"
-WESTONLAUNCHARGS ??= "--tty /dev/tty7 --user ${WESTONUSER}"
-DISPLAY_XDG_RUNTIME_DIR ??= "/run/platform/${WESTONUSER}"
-
diff --git a/meta-agl-profile-graphical/conf/layer.conf b/meta-agl-profile-graphical/conf/layer.conf
deleted file mode 100644
index 0a6efea74..000000000
--- a/meta-agl-profile-graphical/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilegraphical"
-BBFILE_PATTERN_aglprofilegraphical = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilegraphical = "70"
-
-LAYERSERIES_COMPAT_aglprofilegraphical = "dunfell"
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb
deleted file mode 100644
index 7d2661bc0..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-homescreen/agl-service-homescreen_git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Homescreen binding and client library for application"
-DESCRIPTION = "agl-service-homescreen is the binding library"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-homescreen"
-SECTION = "HMI"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "dbus glib-2.0 af-binder json-c"
-
-inherit cmake aglwgt
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-homescreen;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-S = "${WORKDIR}/git"
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb
deleted file mode 100644
index 4f1757c7d..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Mediaplayer Service Binding"
-DESCRIPTION = "AGL Mediaplayer Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-mediaplayer"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-mediaplayer;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c gstreamer1.0 gstreamer1.0-plugins-base"
-RDEPENDS_${PN} = "agl-service-mediascanner agl-service-bluetooth gstreamer1.0-plugins-bad-waylandsink"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb
deleted file mode 100644
index a46ce128c..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-radio/agl-service-radio_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Radio Service Binding"
-DESCRIPTION = "AGL Radio Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-radio"
-SECTION = "apps"
-LICENSE = "Apache-2.0 & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \
- file://LICENSE.GPL-2.0-only;md5=751419260aa954499f7abaabaa882bbe"
-
-PV = "1.0+git${SRCPV}"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-radio;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-S = "${WORKDIR}/git"
-
-# build-time dependencies
-DEPENDS = "rtl-sdr glib-2.0 gstreamer1.0 libusb-compat"
-
-inherit cmake aglwgt pkgconfig
diff --git a/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb b/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb
deleted file mode 100644
index 6c5a18107..000000000
--- a/meta-agl-profile-graphical/recipes-apis/agl-service-taskmanager/agl-service-taskmanager.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Task Manager Service Binding"
-DESCRIPTION = "AGL Task Manager Service Binding"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-taskmanager"
-SECTION = "apps"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-taskmanager;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "json-c procps"
-
-inherit cmake aglwgt pkgconfig
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug b/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug
deleted file mode 100644
index fee9573b7..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/files/hmi-debug
+++ /dev/null
@@ -1,8 +0,0 @@
-#You can select log level of HMI framework
-#1 ERROR
-#2 WARNING
-#3 NOTICE
-#4 INFO
-#5 DEBUG
-#If you want to output debug log about hmi-framework, please uncomment the following.
-#USE_HMI_DEBUG=5
diff --git a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb b/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb
deleted file mode 100644
index 27fb60d66..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/hmi-debug/hmi-debug_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Configurations for HMI framework"
-
-SECTION = "HMI"
-LICENSE = "Apache-2.0"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = " \
- file://hmi-debug \
-"
-
-FILES_${PN} = " \
- ${sysconfdir}/afm/unit.env.d \
-"
-
-do_install() {
- install -d ${D}${sysconfdir}/afm/unit.env.d
- install -m 644 ${WORKDIR}/hmi-debug ${D}${sysconfdir}/afm/unit.env.d
-}
diff --git a/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb b/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb
deleted file mode 100644
index da511c8a1..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/libhomescreen/libhomescreen_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "AGL Home Screen Library"
-DESCRIPTION = "libhomescreen"
-HOMEPAGE = "http://docs.automotivelinux.org"
-LICENSE = "Apache-2.0"
-SECTION = "libs"
-
-BBCLASSEXTEND = " nativesdk"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-
-DEPENDS = "af-binder json-c"
-
-inherit cmake
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libhomescreen.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "0d65d54ba63508c0ef545d02e94d5702f9c8ecb3"
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} = "agl-service-homescreen"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch
deleted file mode 100644
index 7ea0b6e9b..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 48977cb77410247df547063d9d7bcd381fb13cde Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 17:12:24 +0200
-Subject: [PATCH 1/3] Added ivi-id-agent to CMake
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7d0044a..988fc89 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -40,6 +40,7 @@ add_subdirectory(ivi-layermanagement-api/test)
- add_subdirectory(ivi-layermanagement-examples)
- add_subdirectory(ivi-layermanagement-api/ilmInput)
- add_subdirectory(ivi-input-modules/ivi-input-controller)
-+add_subdirectory(ivi-id-agent-modules/ivi-id-agent)
-
-
- #=============================================================================================
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch
deleted file mode 100644
index 9f1ab47b7..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-add-LayerManagerControl-error-status.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-LayerManagerControl: add error exit status
-
-Tweak to add a non-zero exit status on errors. This is useful for
-scripting, and allows writing a simple loop to detect Weston readiness.
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp b/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-index 8ee0546..210e21e 100644
---- a/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-+++ b/ivi-layermanagement-examples/LayerManagerControl/src/main.cpp
-@@ -45,6 +45,7 @@ int main(int argc, char* argv[])
- if (CommandSuccess != interpreter.interpretCommand(userCommand))
- {
- cerr << "Interpreter error: " << interpreter.getLastError() << endl;
-+ return 1;
- }
-
- return 0;
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
deleted file mode 100644
index 0fe2abb35..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
+++ /dev/null
@@ -1,530 +0,0 @@
-From 42fc715a430068cdb4484e2cb119418da8ac4e6f Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 16:46:57 +0200
-Subject: [PATCH 2/3] ivi-id-agent: added ivi-id-agent
-
-This is a reference implementation of an ivi-id-agent plugin. It
-creates surface-ids for desktop-surfaces depending on the configuration
-provided in "weston.ini". For more please refer to the reference
-implementation in this commit.
-
-The only public interface available is the "id_agent_module_init"
-function. It is responsible for initialization of structs and reading
-the configuration.
-
-In the reference "weston.ini" two types of configurations can be found:
-
-[desktop-app] is used to configure a particular application. Therefore
-the desired surface-id must be provided. Moreover "app-title" is the
-title that is provided by the desktop application (xdg-protocol).
-"app-id" behaves accordingly. Although both parameters can be set, it
-is not mandatory. Finally at least one has to be set.
-
-[desktop-app-default] enables the id-agent to generate generic
-surface-ids for unconfigured applications, e.g. for development. This
-tag is optional. To generate the id an interval starting from
-"default-surface-id" to "default-surface-id-max" is used. The id is
-incremented until the interval is exceeded.
-
-In the function "get_id" a surface-id is assigned by means of the
-configuration. It can be adjusted, if another behavior is desired.
-In this plugin the parameters, that are described above, are evaluated.
-
-To use these patches please also apply the dedicated patches for
-weston: https://github.com/mtey/weston/tree/xdg_support_ivi_id_agent
-Since libweston-desktop is used to introduce desktop-surface support,
-xdg-protocol is supported.
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
-new file mode 100644
-index 0000000..7354a7e
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
-@@ -0,0 +1,69 @@
-+###############################################################################
-+#
-+# Copyright (C) 2017 Advanced Driver Information Technology Joint Venture GmbH
-+#
-+#
-+# Licensed under the Apache License, Version 2.0 (the "License");
-+# you may not use this file except in compliance with the License.
-+# You may obtain a copy of the License at
-+#
-+# http://www.apache.org/licenses/LICENSE-2.0
-+#
-+# Unless required by applicable law or agreed to in writing, software
-+# distributed under the License is distributed on an "AS IS" BASIS,
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+# See the License for the specific language governing permissions and
-+# limitations under the License.
-+#
-+###############################################################################
-+
-+cmake_minimum_required (VERSION 2.6)
-+
-+project(ivi-id-agent)
-+
-+find_package(PkgConfig REQUIRED)
-+pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED)
-+pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)
-+pkg_check_modules(PIXMAN pixman-1 REQUIRED)
-+pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-8 REQUIRED)
-+
-+find_package(Threads REQUIRED)
-+
-+include_directories(
-+ src
-+ ${WAYLAND_SERVER_INCLUDE_DIRS}
-+ ${WESTON_INCLUDE_DIRS}
-+ ${PIXMAN_INCLUDE_DIRS}
-+)
-+
-+link_directories(
-+ ${WAYLAND_SERVER_LIBRARY_DIRS}
-+ ${PIXMAN_LIBRARY_DIRS}
-+)
-+
-+
-+add_library(${PROJECT_NAME} MODULE
-+ src/ivi-id-agent.c
-+)
-+
-+set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
-+
-+add_dependencies(${PROJECT_NAME}
-+ ${WAYLAND_SERVER_LIBRARIES}
-+ ${PIXMAN_LIBRARIES}
-+)
-+
-+set(LIBS
-+ ${LIBS}
-+ ${WAYLAND_SERVER_LIBRARIES}
-+ ${LIBWESTON_DESKTOP_LIBRARIES}
-+)
-+
-+set(CMAKE_C_LDFLAGS "-module -avoid-version")
-+
-+target_link_libraries(${PROJECT_NAME} ${LIBS})
-+
-+install (
-+ TARGETS ${PROJECT_NAME}
-+ LIBRARY DESTINATION lib${LIB_SUFFIX}/weston
-+)
-diff --git a/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c
-new file mode 100644
-index 0000000..9bc115d
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c
-@@ -0,0 +1,381 @@
-+/*
-+ * Copyright (C) 2017 Advanced Driver Information Technology Joint Venture GmbH
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and
-+ * its documentation for any purpose is hereby granted without fee, provided
-+ * that the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of the copyright holders not be used in
-+ * advertising or publicity pertaining to distribution of the software
-+ * without specific, written prior permission. The copyright holders make
-+ * no representations about the suitability of this software for any
-+ * purpose. It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <limits.h>
-+
-+#include <weston.h>
-+#include <libweston-desktop/libweston-desktop.h>
-+#include "libweston/config-parser.h"
-+#include <weston/ivi-layout-export.h>
-+
-+#ifndef INVALID_ID
-+#define INVALID_ID 0xFFFFFFFF
-+#endif
-+
-+struct db_elem
-+{
-+ struct wl_list link;
-+ uint32_t surface_id;
-+ char *cfg_app_id;
-+ char *cfg_title;
-+ struct ivi_layout_surface *layout_surface;
-+};
-+
-+struct ivi_id_agent
-+{
-+ uint32_t default_behavior_set;
-+ uint32_t default_surface_id;
-+ uint32_t default_surface_id_max;
-+ struct wl_list app_list;
-+ struct weston_compositor *compositor;
-+ const struct ivi_layout_interface *interface;
-+
-+ struct wl_listener desktop_surface_configured;
-+ struct wl_listener destroy_listener;
-+ struct wl_listener surface_removed;
-+};
-+
-+static int32_t
-+check_config_parameter(char *cfg_val, char *val)
-+{
-+ if (cfg_val == NULL)
-+ return IVI_SUCCEEDED;
-+ else if (val == NULL || strcmp(cfg_val, val) != 0)
-+ return IVI_FAILED;
-+
-+ return IVI_SUCCEEDED;
-+}
-+
-+static int32_t
-+get_id_from_config(struct ivi_id_agent *ida, struct ivi_layout_surface
-+ *layout_surface) {
-+ struct db_elem *db_elem;
-+ char *temp_app_id = NULL;
-+ char *temp_title = NULL;
-+ int ret = IVI_FAILED;
-+
-+ struct weston_surface *weston_surface =
-+ ida->interface->surface_get_weston_surface(layout_surface);
-+
-+ /* Get app id and title */
-+ struct weston_desktop_surface *wds = weston_surface_get_desktop_surface(
-+ weston_surface);
-+
-+ if (weston_desktop_surface_get_app_id(wds) != NULL)
-+ temp_app_id = strdup(weston_desktop_surface_get_app_id(wds));
-+
-+ if (weston_desktop_surface_get_title(wds) != NULL)
-+ temp_title = strdup(weston_desktop_surface_get_title(wds));
-+
-+ /*
-+ * Check for every config parameter to be fulfilled. This part must be
-+ * extended, if additional attributes are desired to be checked.
-+ */
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if (check_config_parameter(db_elem->cfg_app_id, temp_app_id) == 0) {
-+ if (check_config_parameter(db_elem->cfg_title, temp_title) == 0) {
-+ /* Found configuration for application. */
-+ int res = ida->interface->surface_set_id(layout_surface,
-+ db_elem->surface_id);
-+ if (res)
-+ continue;
-+
-+ db_elem->layout_surface = layout_surface;
-+ ret = IVI_SUCCEEDED;
-+
-+ break;
-+ }
-+ }
-+ }
-+
-+ free(temp_app_id);
-+ free(temp_title);
-+
-+ return ret;
-+}
-+
-+/*
-+ * This function generates the id of a surface in regard to the desired
-+ * parameters. For implementation of different behavior in id generation please
-+ * adjust this function.
-+ * In this implementation the app_id and/or title of the application is used for
-+ * identification. It is also possible to use the pid, uid or gid for example.
-+ */
-+static int32_t
-+get_id(struct ivi_id_agent *ida, struct ivi_layout_surface *layout_surface)
-+{
-+ if (get_id_from_config(ida, layout_surface) == IVI_SUCCEEDED)
-+ return IVI_SUCCEEDED;
-+
-+ /* No default layer available */
-+ if (ida->default_behavior_set == 0) {
-+ weston_log("ivi-id-agent: Could not find configuration for application\n");
-+ goto ivi_failed;
-+
-+ /* Default behavior for unknown applications */
-+ } else if (ida->default_surface_id < ida->default_surface_id_max) {
-+ weston_log("ivi-id-agent: No configuration for application adding to "
-+ "default layer\n");
-+
-+ /*
-+ * Check if ivi-shell application already created an application with
-+ * desired surface_id
-+ */
-+ struct ivi_layout_surface *temp_layout_surf =
-+ ida->interface->get_surface_from_id(
-+ ida->default_surface_id);
-+ if ((temp_layout_surf != NULL) && (temp_layout_surf != layout_surface)) {
-+ weston_log("ivi-id-agent: surface_id already used by an ivi-shell "
-+ "application\n");
-+ goto ivi_failed;
-+ }
-+
-+ ida->interface->surface_set_id(layout_surface,
-+ ida->default_surface_id);
-+ ida->default_surface_id++;
-+
-+ } else {
-+ weston_log("ivi-id-agent: Interval for default surface_id generation "
-+ "exceeded\n");
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static void
-+desktop_surface_event_configure(struct wl_listener *listener,
-+ void *data)
-+{
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida,
-+ desktop_surface_configured);
-+
-+ struct ivi_layout_surface *layout_surface =
-+ (struct ivi_layout_surface *) data;
-+
-+ if (get_id(ida, layout_surface) == IVI_FAILED)
-+ weston_log("ivi-id-agent: Could not create surface_id for application\n");
-+}
-+
-+static void
-+surface_event_remove(struct wl_listener *listener, void *data) {
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida,
-+ surface_removed);
-+ struct ivi_layout_surface *layout_surface =
-+ (struct ivi_layout_surface *) data;
-+ struct db_elem *db_elem = NULL;
-+
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if(db_elem->layout_surface == layout_surface) {
-+ db_elem->layout_surface = NULL;
-+ break;
-+ }
-+ }
-+}
-+
-+static int32_t deinit(struct ivi_id_agent *ida);
-+
-+static void
-+id_agent_module_deinit(struct wl_listener *listener, void *data) {
-+ (void)data;
-+ struct ivi_id_agent *ida = wl_container_of(listener, ida, destroy_listener);
-+
-+ deinit(ida);
-+}
-+
-+static int32_t
-+check_config(struct db_elem *curr_db_elem, struct ivi_id_agent *ida)
-+{
-+ struct db_elem *db_elem;
-+
-+ if (ida->default_surface_id <= curr_db_elem->surface_id
-+ && curr_db_elem->surface_id <= ida->default_surface_id_max) {
-+ weston_log("ivi-id-agent: surface_id: %d in default id interval "
-+ "[%d, %d] (CONFIG ERROR)\n", curr_db_elem->surface_id,
-+ ida->default_surface_id, ida->default_surface_id_max);
-+ goto ivi_failed;
-+ }
-+
-+ wl_list_for_each(db_elem, &ida->app_list, link)
-+ {
-+ if(curr_db_elem == db_elem)
-+ continue;
-+
-+ if (db_elem->surface_id == curr_db_elem->surface_id) {
-+ weston_log("ivi-id-agent: Duplicate surface_id: %d (CONFIG ERROR)\n",
-+ curr_db_elem->surface_id);
-+ goto ivi_failed;
-+ }
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static int32_t
-+read_config(struct ivi_id_agent *ida)
-+{
-+ struct weston_config *config = NULL;
-+ struct weston_config_section *section = NULL;
-+ const char *name = NULL;
-+
-+ config = wet_get_config(ida->compositor);
-+ if (!config)
-+ goto ivi_failed;
-+
-+ section = weston_config_get_section(config, "desktop-app-default", NULL,
-+ NULL);
-+
-+ if (section) {
-+ weston_log("ivi-id-agent: Default behavior for unknown applications is "
-+ "set\n");
-+ ida->default_behavior_set = 1;
-+
-+ weston_config_section_get_uint(section, "default-surface-id",
-+ &ida->default_surface_id, INVALID_ID);
-+ weston_config_section_get_uint(section, "default-surface-id-max",
-+ &ida->default_surface_id_max, INVALID_ID);
-+
-+ if (ida->default_surface_id == INVALID_ID ||
-+ ida->default_surface_id_max == INVALID_ID) {
-+ weston_log("ivi-id-agent: Missing configuration for default "
-+ "behavior\n");
-+ ida->default_behavior_set = 0;
-+ }
-+ } else {
-+ ida->default_behavior_set = 0;
-+ }
-+
-+ section = NULL;
-+ while (weston_config_next_section(config, &section, &name)) {
-+ struct db_elem *db_elem = NULL;
-+
-+ if (strcmp(name, "desktop-app") != 0)
-+ continue;
-+
-+ db_elem = calloc(1, sizeof *db_elem);
-+ if (db_elem == NULL) {
-+ weston_log("ivi-id-agent: No memory to allocate\n");
-+ goto ivi_failed;
-+ }
-+
-+ wl_list_insert(&ida->app_list, &db_elem->link);
-+
-+ weston_config_section_get_uint(section, "surface-id",
-+ &db_elem->surface_id, INVALID_ID);
-+
-+ if (db_elem->surface_id == INVALID_ID) {
-+ weston_log("ivi-id-agent: surface-id is not set in configuration\n");
-+ goto ivi_failed;
-+ }
-+
-+ weston_config_section_get_string(section, "app-id",
-+ &db_elem->cfg_app_id, NULL);
-+ weston_config_section_get_string(section, "app-title",
-+ &db_elem->cfg_title, NULL);
-+
-+ if (db_elem->cfg_app_id == NULL && db_elem->cfg_title == NULL) {
-+ weston_log("ivi-id-agent: Every parameter is NULL in app "
-+ "configuration\n");
-+ goto ivi_failed;
-+ }
-+
-+ if (check_config(db_elem, ida) == IVI_FAILED) {
-+ weston_log("ivi-id-agent: No valid config found, deinit...\n");
-+ goto ivi_failed;
-+ }
-+ }
-+
-+ if(ida->default_behavior_set == 0 && wl_list_empty(&ida->app_list)) {
-+ weston_log("ivi-id-agent: No valid config found, deinit...\n");
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+WL_EXPORT int32_t
-+id_agent_module_init(struct weston_compositor *compositor,
-+ const struct ivi_layout_interface *interface)
-+{
-+ struct ivi_id_agent *ida = NULL;
-+
-+ ida = calloc(1, sizeof *ida);
-+ if (ida == NULL) {
-+ weston_log("failed to allocate ivi_id_agent\n");
-+ goto ivi_failed;
-+ }
-+
-+ ida->compositor = compositor;
-+ ida->interface = interface;
-+ ida->desktop_surface_configured.notify = desktop_surface_event_configure;
-+ ida->destroy_listener.notify = id_agent_module_deinit;
-+ ida->surface_removed.notify = surface_event_remove;
-+
-+ wl_signal_add(&compositor->destroy_signal, &ida->destroy_listener);
-+ ida->interface->add_listener_configure_desktop_surface(
-+ &ida->desktop_surface_configured);
-+ interface->add_listener_remove_surface(&ida->surface_removed);
-+
-+ wl_list_init(&ida->app_list);
-+ if(read_config(ida) != 0) {
-+ weston_log("ivi-id-agent: Read config failed\n");
-+ deinit(ida);
-+ goto ivi_failed;
-+ }
-+
-+ return IVI_SUCCEEDED;
-+
-+ivi_failed:
-+ return IVI_FAILED;
-+}
-+
-+static int32_t
-+deinit(struct ivi_id_agent *ida)
-+{
-+ struct db_elem *db_elem;
-+ wl_list_for_each(db_elem, &ida->app_list, link) {
-+ free(db_elem->cfg_app_id);
-+ free(db_elem->cfg_title);
-+ free(db_elem);
-+ }
-+
-+ wl_list_remove(&ida->desktop_surface_configured.link);
-+ wl_list_remove(&ida->destroy_listener.link);
-+ wl_list_remove(&ida->surface_removed.link);
-+ free(ida);
-+
-+ return IVI_SUCCEEDED;
-+}
-diff --git a/ivi-id-agent-modules/ivi-id-agent/weston.ini.in b/ivi-id-agent-modules/ivi-id-agent/weston.ini.in
-new file mode 100644
-index 0000000..48a196c
---- /dev/null
-+++ b/ivi-id-agent-modules/ivi-id-agent/weston.ini.in
-@@ -0,0 +1,20 @@
-+[core]
-+shell=ivi-shell.so
-+require-input=false
-+
-+[ivi-shell]
-+ivi-module=ivi-controller.so
-+ivi-input-module=ivi-input-controller.so
-+ivi-id-agent-module=ivi-id-agent.so
-+
-+[desktop-app]
-+surface-id=111
-+app-title=Flower
-+
-+[desktop-app]
-+surface-id=251
-+app-title=Flower
-+
-+[desktop-app-default]
-+default-surface-id=2000000
-+default-surface-id-max=2001000
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch
deleted file mode 100644
index 8985879b0..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5fed5c51ca8c1574804362bfdea4930c16457d34 Mon Sep 17 00:00:00 2001
-From: Michael Teyfel <mteyfel@de.adit-jv.com>
-Date: Fri, 12 Oct 2018 16:57:24 +0200
-Subject: [PATCH 3/3] ivi-controller: load id-agent module
-
-Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
-
-Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
-index 8faec2a..8fa51f4 100644
---- a/weston-ivi-shell/src/ivi-controller.c
-+++ b/weston-ivi-shell/src/ivi-controller.c
-@@ -2154,6 +2154,41 @@ load_input_module(struct ivishell *shell)
- return 0;
- }
-
-+static int load_id_agent_module(struct ivishell *shell)
-+{
-+ struct weston_config *config = wet_get_config(shell->compositor);
-+ struct weston_config_section *section;
-+ char *id_agent_module = NULL;
-+
-+ int (*id_agent_module_init)(struct weston_compositor *compositor,
-+ const struct ivi_layout_interface *interface);
-+
-+ section = weston_config_get_section(config, "ivi-shell", NULL, NULL);
-+
-+ if (weston_config_section_get_string(section, "ivi-id-agent-module",
-+ &id_agent_module, NULL) < 0) {
-+ /* input events are handled by weston's default grabs */
-+ weston_log("ivi-controller: No ivi-id-agent-module set\n");
-+ return 0;
-+ }
-+
-+ id_agent_module_init = wet_load_module_entrypoint(id_agent_module, "id_agent_module_init");
-+ if (!id_agent_module_init) {
-+ free(id_agent_module);
-+ return -1;
-+ }
-+
-+ if (id_agent_module_init(shell->compositor, shell->interface) != 0) {
-+ weston_log("ivi-controller: Initialization of id-agent module failed\n");
-+ free(id_agent_module);
-+ return -1;
-+ }
-+
-+ free(id_agent_module);
-+
-+ return 0;
-+}
-+
- static void
- launch_client_process(void *data)
- {
-@@ -2221,6 +2256,10 @@ wet_module_init(struct weston_compositor *compositor,
- shell->destroy_listener.notify = ivi_shell_destroy;
- wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
-
-+ if (load_id_agent_module(shell) < 0) {
-+ weston_log("ivi-controller: id-agent module not loaded\n");
-+ }
-+
- if (shell->bkgnd_surface_id && shell->ivi_client_name) {
- loop = wl_display_get_event_loop(compositor->wl_display);
- wl_event_loop_add_idle(loop, launch_client_process, shell);
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch
deleted file mode 100644
index 05d1cc238..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/ivi-layermanagement-api/ilmCommon/include/ilm_types.h b/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-index a88f2b0..12a2017 100644
---- a/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-+++ b/ivi-layermanagement-api/ilmCommon/include/ilm_types.h
-@@ -245,6 +245,7 @@ typedef enum
- ILM_NOTIFICATION_CONTENT_AVAILABLE = ILM_BIT(6),
- ILM_NOTIFICATION_CONTENT_REMOVED = ILM_BIT(7),
- ILM_NOTIFICATION_CONFIGURED = ILM_BIT(8),
-+ ILM_NOTIFICATION_FOCUS = ILM_BIT(9),
- ILM_NOTIFICATION_ALL = 0xffff
- } t_ilm_notification_mask;
-
-diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-index a912e50..5166839 100644
---- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-+++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-@@ -819,6 +819,12 @@ input_listener_input_focus(void *data,
- surf_ctx->prop.focus |= device;
- else
- surf_ctx->prop.focus &= ~device;
-+
-+ if (surf_ctx->notification != NULL) {
-+ surf_ctx->notification(surf_ctx->id_surface,
-+ &surf_ctx->prop,
-+ ILM_NOTIFICATION_FOCUS);
-+ }
- }
- }
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch
deleted file mode 100644
index 21028d58a..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0005-disable-EGLWLMockNavigation-example-build.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Disable EGLWLMockNavigation example build
-
-The EGLWLMockNavigation example code has build issues on TI platforms.
-To avoid needing to patch it just for those platforms, just disable
-building it since there are no known users inside AGL.
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
-diff --git a/ivi-layermanagement-examples/CMakeLists.txt b/ivi-layermanagement-examples/CMakeLists.txt
-index 1eab8e9..48bdffd 100644
---- a/ivi-layermanagement-examples/CMakeLists.txt
-+++ b/ivi-layermanagement-examples/CMakeLists.txt
-@@ -24,7 +24,6 @@ project (ivi-layermanagement-examples)
- # cmake configuration
- #===========================================================================================================
- add_subdirectory(LayerManagerControl)
--add_subdirectory(EGLWLMockNavigation)
- add_subdirectory(EGLWLInputEventExample)
- add_subdirectory(layer-add-surfaces)
- add_subdirectory(multi-touch-viewer)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
deleted file mode 100644
index dddbfd370..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-index a0bfc48..257a1dc 100644
---- a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-+++ b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
-@@ -31,7 +31,7 @@
- #include <fcntl.h>
- #include <unistd.h>
-
--#include "plugin-registry.h"
-+#include <libweston/plugin-registry.h>
- #include "ilm_types.h"
-
- #include "ivi-input-server-protocol.h"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch
deleted file mode 100644
index 86b448be1..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/wandboard_fix_build.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3610fa9..8b4614d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -34,7 +34,7 @@ add_subdirectory(ivi-layermanagement-api/ilmCommon)
- add_subdirectory(ivi-layermanagement-api/ilmClient)
- add_subdirectory(ivi-layermanagement-api/ilmControl)
- add_subdirectory(ivi-layermanagement-api/test)
--add_subdirectory(ivi-layermanagement-examples)
-+#add_subdirectory(ivi-layermanagement-examples)
-
- if(WITH_ILM_INPUT)
- add_subdirectory(ivi-input-api/ilmInput)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
deleted file mode 100644
index 68fc694a8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Wayland IVI Extension"
-DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension"
-HOMEPAGE = "http://projects.genivi.org/wayland-ivi-extension"
-BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Wayland%20IVI%20Extension"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79"
-
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=http \
- file://0001-Added-ivi-id-agent-to-CMake.patch \
- file://0002-ivi-id-agent-added-ivi-id-agent.patch \
- file://0003-ivi-controller-load-id-agent-module.patch \
- file://0002-add-LayerManagerControl-error-status.patch \
- file://0004-ivi-ilmcontrol-added-focus-notification.patch \
- file://0005-disable-EGLWLMockNavigation-example-build.patch \
- file://0006-fix-plugin-registry-include.patch \
-"
-SRC_URI_append_wandboard = " file://wandboard_fix_build.patch"
-SRCREV = "736fb654ac81230cf4f9e51a5772d3a02d7639bf"
-
-PV = "2.2.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-DEPENDS = "weston virtual/libgles2 pixman wayland-native"
-
-FILESEXTRAPATHS_prepend := ":${THISDIR}/wayland-ivi-extension:"
-
-inherit cmake
-
-EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1"
-
-FILES_${PN} += "${libdir}/weston/*"
-FILES_${PN} += "${datadir}/wayland-protocols/stable/ivi-application/*"
-
-FILES_${PN}-dbg += "${libdir}/weston/.debug/*"
-
-EXTRA_OECMAKE += "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
deleted file mode 100644
index b3fecec22..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
+++ /dev/null
@@ -1,83 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-inherit agl-graphical
-
-AGL_DEFAULT_WESTONSTART ??= "/usr/bin/agl-compositor --config ${sysconfdir}/xdg/weston/weston.ini"
-
-WESTONSTART ??= "${AGL_DEFAULT_WESTONSTART} ${WESTONARGS}"
-WESTONSTART_append = " ${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", " --log=${DISPLAY_XDG_RUNTIME_DIR}/compositor.log", "",d)}"
-
-# Systemd name of DRM device to have weston/agl-compositor startup depend
-# upon, if required. Currently only x86-64 seems to need a dependency to
-# avoid failures due to racing with i915 driver init on e.g. UpSquared.
-# It seems safer for now to only apply it there rather than doing a blanket
-# default everywhere that might then need to be over-ridden for vendor BSPs.
-WESTON_DRM_DEVICE ?= ""
-
-WIFILES = " \
- file://weston.conf.in \
- file://weston-dep.conf.in \
- file://tmpfiles.conf.in \
- file://zz-dri.rules.in \
- file://zz-input.rules.in \
- file://zz-tty.rules.in \
-"
-
-WIFILES_append_imx = " \
- file://zz-dri-imx.rules.in \
-"
-
-SRC_URI_append = " ${WIFILES}"
-
-do_install_append() {
- # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
- rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
-
- # Remove upstream weston udev rules just to be safe
- rm -f ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules
-
- # Process ".in" files
- files=$(echo ${WIFILES} | sed s,file://,,g)
- for f in ${files}; do
- g=${f%.in}
- if [ "${f}" != "${g}" ]; then
- sed -e "s,@WESTONUSER@,${WESTONUSER},g" \
- -e "s,@WESTONGROUP@,${WESTONGROUP},g" \
- -e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \
- -e "s,@WESTONSTART@,${WESTONSTART},g" \
- -e "s,@WESTON_DRM_DEVICE@,${WESTON_DRM_DEVICE},g" \
- ${WORKDIR}/${f} > ${WORKDIR}/${g}
- fi
- done
-
- # Install weston drop-in
- install -d ${D}${systemd_system_unitdir}/weston@.service.d
- install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston@.service.d/weston-init.conf
-
- # Install weston DRM device dependency drop-in if required
- if [ -n "${WESTON_DRM_DEVICE}" ]; then
- install -m 0644 ${WORKDIR}/weston-dep.conf ${D}/${systemd_system_unitdir}/weston@.service.d/
- fi
-
- # Install tmpfiles drop-in
- install -d ${D}${libdir}/tmpfiles.d
- install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/weston-init.conf
-
- # Install udev rules
- install -d ${D}${sysconfdir}/udev/rules.d
- for f in ${files}; do
- g=${f%.in}
- h=${g%.rules}
- if [ "${g}" != "${h}" ]; then
- install -m644 ${WORKDIR}/${g} ${D}${sysconfdir}/udev/rules.d
- fi
- done
-}
-
-FILES_${PN} += " \
- ${libdir}/tmpfiles.d/ \
- ${systemd_system_unitdir}/weston@.service.d/ \
-"
-
-SYSTEMD_AUTO_ENABLE = "enable"
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in
deleted file mode 100644
index c4b302faf..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/tmpfiles.conf.in
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is distributed to create weston XDG_RUNTIME_DIR (/run/deamon/@WESTONUSER@)
-#
-# See tmpfiles.d(5) for details
-
-d /run/platform/ 0775 root root -
-d /run/platform/@WESTONUSER@ 0770 @WESTONUSER@ @WESTONGROUP@ -
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in
deleted file mode 100644
index 2b8102096..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston-dep.conf.in
+++ /dev/null
@@ -1,3 +0,0 @@
-[Unit]
-Requires=@WESTON_DRM_DEVICE@
-After=@WESTON_DRM_DEVICE@
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
deleted file mode 100644
index 9c3df052d..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
+++ /dev/null
@@ -1,12 +0,0 @@
-[Service]
-Type=notify
-Environment="XDG_RUNTIME_DIR=@XDG_RUNTIME_DIR@"
-# Note that clearing PAMName (thus not having PAMName=login) disables
-# logind support for the session, which allows setting XDG_RUNTIME_DIR
-# to something other than /run/user/% (as is done above).
-# Without systemd-logind support, weston needs to be patched to allow
-# its direct launcher to work for non-root users in this scenario.
-PAMName=
-ExecStart=
-ExecStart=@WESTONSTART@
-SmackProcessLabel=System::Weston
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in
deleted file mode 100644
index 585db6be8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri-imx.rules.in
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBSYSTEM=="gpu_class", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*"
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
deleted file mode 100644
index 51c68c303..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
deleted file mode 100644
index fb3e677f4..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
deleted file mode 100644
index e5ce4b553..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="tty", KERNEL=="tty7", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
deleted file mode 100644
index c7cba3043..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2018, Konsulko Group
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# Simple script to check if Weston+IVI shell is ready by calling
-# LayerManagerControl, optionally waiting for a specified timeout.
-#
-
-usage="Usage: weston-ready [-t timeout]"
-timeout=0
-
-function info() { echo "$@" >&2; }
-
-if [ $# -eq 2 ]; then
- if [ $1 = "-t" ]; then
- timeout=$(($2 * 10))
- else
- echo $usage
- exit 1
- fi
-fi
-
-info "using timeout $timeout"
-
-time=0
-rc=1
-while true; do
- if [ $time -gt $timeout ]; then
- info "Timeout reached"
- break
- elif LayerManagerControl get screens >/dev/null 2>&1; then
- info "Weston is now ready"
- rc=0
- break
- fi
- info "waiting..."
- if [ $timeout -gt 0 ]; then
- usleep 500000
- fi
- time=$(($time + 5))
-done
-exit $rc
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
deleted file mode 100644
index 82490fef4..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready/weston-ready.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Wait for Weston readiness
-Requires=weston@display.service
-After=weston@display.service
-
-[Service]
-SupplementaryGroups=display
-Environment="XDG_RUNTIME_DIR=/run/platform/display"
-ExecStart=/usr/bin/weston-ready -t 10
-Type=oneshot
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb
deleted file mode 100644
index a3d0bb248..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-ready_1.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Weston readiness checker"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-inherit systemd
-
-SRC_URI = "file://weston-ready \
- file://weston-ready.service \
-"
-
-do_install() {
- install -D -m 0755 ${WORKDIR}/weston-ready ${D}${bindir}/weston-ready
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -D -m 0644 ${WORKDIR}/weston-ready.service ${D}${systemd_system_unitdir}/weston-ready.service
- fi
-}
-
-SYSTEMD_SERVICE_${PN} = "weston-ready.service"
-
-RDEPENDS_${PN} += "weston bash"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend
deleted file mode 100644
index d681aa133..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_8.0.%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = "\
- file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
- file://0001-libweston-Expose-weston_output_damage-in-libweston.patch \
- file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch \
- file://0005-correctly-tear-down-drm-backend.patch \
- file://smack-weston \
- "
-
-EXTRA_OEMESON_append = " -Denable-user-start=true"
-
-# Workaround for incorrect upstream definition
-PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'smack', 'true', 'false', d)}; then
- # Install SMACK rules
- install -D -m 0644 ${WORKDIR}/smack-weston ${D}${sysconfdir}/smack/accesses.d/weston
- fi
-}
-
-FILES_${PN} += "\
- ${sysconfdir}/smack/accesses.d/* \
-"
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
deleted file mode 100644
index 443e7db8b..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 03e502084633838badfcc2b91a1aca1651c18544 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Wed, 24 Jun 2020 19:44:35 +0300
-Subject: [PATCH] gst/wayland/: Install wayland header from gstwayland library
-
-Necessary for cluster-receiver to pass out the wl_surface.
-
-Bug-AGL: SPEC-3382
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- gst-libs/gst/wayland/meson.build | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gst-libs/gst/wayland/meson.build b/gst-libs/gst/wayland/meson.build
-index b1ede41f1..8957381d2 100644
---- a/gst-libs/gst/wayland/meson.build
-+++ b/gst-libs/gst/wayland/meson.build
-@@ -21,4 +21,6 @@ if use_wayland
- gstwayland_dep = declare_dependency(link_with : gstwayland,
- include_directories : [libsinc],
- dependencies : [gst_dep, gstvideo_dep])
-+
-+ install_headers('wayland.h', subdir: 'gst/wayland')
- endif
---
-2.26.2
-
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
deleted file mode 100644
index a74fb623d..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI_append=" file://0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch"
diff --git a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend b/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
deleted file mode 100644
index 86a181fbb..000000000
--- a/meta-agl-profile-graphical/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-# libv4l2 is useful for making more efficient use of cameras via v4l2src.
-PACKAGECONFIG_append = " libv4l2"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend
deleted file mode 100644
index 4a98a233c..000000000
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
-RDEPENDS_${PN}_append_ulcb = "\
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-multimedia-kernel-modules','',d)} \
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-multimedia-libs','',d)} \
- ${@bb.utils.contains('MACHINE_FEATURES','multimedia','packagegroup-gstreamer1.0-plugins','',d)} \
-"
diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb
deleted file mode 100644
index e587ab21c..000000000
--- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "The minimal set of packages for Connectivity Subsystem"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-graphical-services \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-mediaplayer', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-radio', '', d)} \
- "
diff --git a/meta-agl-profile-hud/LICENSE b/meta-agl-profile-hud/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-hud/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/LICENSE.GPL-2.0-only b/meta-agl-profile-hud/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-hud/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/LICENSE.MIT b/meta-agl-profile-hud/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-hud/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-hud/conf/layer.conf b/meta-agl-profile-hud/conf/layer.conf
deleted file mode 100644
index f8f18cdc9..000000000
--- a/meta-agl-profile-hud/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofilehud"
-BBFILE_PATTERN_aglprofilehud = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofilehud = "70"
-
-LAYERSERIES_COMPAT_aglprofilehud = "dunfell"
diff --git a/meta-agl-profile-telematics/LICENSE b/meta-agl-profile-telematics/LICENSE
deleted file mode 100644
index e8758f89c..000000000
--- a/meta-agl-profile-telematics/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Different components of the AGL layers are under different licenses (a mix
-of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
-details of the individual licenses.
-
-All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
-is MIT licensed unless otherwise stated.
-Source code included in tree for individual recipes (e.g. patches) are under
-the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.
-
-License information for any other files (scripts) is either explicitly stated
-or defaults to GPL version 2 only.
-
-Individual files can contain the following style tags instead of the full
-license text to identify their license:
-
- SPDX-License-Identifier: GPL-2.0-only
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/LICENSE.GPL-2.0-only b/meta-agl-profile-telematics/LICENSE.GPL-2.0-only
deleted file mode 100644
index 5db3c0a21..000000000
--- a/meta-agl-profile-telematics/LICENSE.GPL-2.0-only
+++ /dev/null
@@ -1,288 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: GPL-2.0-only
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/LICENSE.MIT b/meta-agl-profile-telematics/LICENSE.MIT
deleted file mode 100644
index a6919eb7e..000000000
--- a/meta-agl-profile-telematics/LICENSE.MIT
+++ /dev/null
@@ -1,25 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-Note:
-Individual files contain the following tag instead of the full license text.
-
- SPDX-License-Identifier: MIT
-
-This enables machine processing of license information based on the SPDX
-License Identifiers that are here available: http://spdx.org/licenses/
diff --git a/meta-agl-profile-telematics/conf/layer.conf b/meta-agl-profile-telematics/conf/layer.conf
deleted file mode 100644
index f9ef2e3bf..000000000
--- a/meta-agl-profile-telematics/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "aglprofiletelematics"
-BBFILE_PATTERN_aglprofiletelematics = "^${LAYERDIR}/"
-BBFILE_PRIORITY_aglprofiletelematics = "70"
-
-LAYERSERIES_COMPAT_aglprofiletelematics = "dunfell"
diff --git a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb b/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb
deleted file mode 100644
index ad6ef9888..000000000
--- a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A basic telematics image"
-
-require agl-image-telematics.inc
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL_append = "\
- profile-telematics \
- "
diff --git a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc b/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc
deleted file mode 100644
index 3e951550e..000000000
--- a/meta-agl-profile-telematics/recipes-platform/images/agl-image-telematics.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-require recipes-platform/images/agl-image-boot.inc
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "3g"
diff --git a/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb b/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb
deleted file mode 100644
index 66fc0f765..000000000
--- a/meta-agl-profile-telematics/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "The middleware for AGL telematics profile"
-DESCRIPTION = "The set of packages required for AGL Telematics Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
- packagegroup-agl-profile-telematics \
- profile-telematics \
- "
-
-ALLOW_EMPTY_${PN} = "1"
-
-RDEPENDS_${PN} += "\
- packagegroup-agl-image-boot \
- packagegroup-agl-core-security \
- ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client','',d)} \
- ${@bb.utils.contains("DISTRO_FEATURES", "3g", "libqmi", "", d)} \
- agl-login-manager \
- agl-service-can-low-level \
- agl-service-network \
- can-utils \
-"
-
-RDEPENDS_profile-telematics = "${PN}"
diff --git a/meta-agl.md b/meta-agl.md
index 6c3427cd5..565eff5a7 100755
--- a/meta-agl.md
+++ b/meta-agl.md
@@ -7,9 +7,6 @@ You use this layer as the minimal core on which to build AGL profiles.
**NOTE:** The `meta-agl` layer does not include a reference UI.
The reference UI is included as part of the
[`meta-agl-demo`](./meta-agl-demo.html) layer.
- Furthermore, `meta-agl` does not include additional components, such
- as security, which are part of the
- `meta-agl-extra` layer.
## Sub-Layers
@@ -17,59 +14,45 @@ The `meta-agl` layer itself contains many sub-layers and files.
Following is a "tree" look at the layer:
```
-.
-├── docs
-├── meta-agl
-├── meta-agl-bsp
-├── meta-agl-distro
-├── meta-agl-profile-cluster
-├── meta-agl-profile-cluster-qt5
-├── meta-agl-profile-core
-├── meta-agl-profile-graphical
-├── meta-agl-profile-graphical-html5
-├── meta-agl-profile-graphical-qt5
-├── meta-agl-profile-hud
-├── meta-agl-profile-telematics
-├── meta-app-framework
-├── meta-netboot
-├── meta-security
-├── README-AGL.md
-├── README.md
-├── scripts
-├── templates
+|-- LICENSE
+|-- LICENSE.GPL-2.0-only
+|-- LICENSE.MIT
+|-- README-AGL.md
+|-- README.md -> meta-agl.md
+|-- agl-layers-overview.md
+|-- docs
+|-- meta-agl-bsp
+|-- meta-agl-core
+|-- meta-agl-core-test
+|-- meta-agl-ic
+|-- meta-agl-ivi
+|-- meta-agl.md
+|-- meta-app-framework
+|-- meta-netboot
+|-- meta-pipewire
+|-- scripts
+`-- templates
```
This list provides some overview information on the files and sub-layers
in `meta-agl`:
+* LICENSE* : licenses of the various components.
+* README* : RTFM
+* agl-layers-overview.md: references to the various layers that make up AGL
* `docs`: Contains files that support AGL documentation.
-* `meta-agl`: Contains layer configuration for the `meta-agl` layer.
* `meta-agl-bsp`: Contains adaptations for recipes and required packages
to boot an AGL distribution on targeted hardware and emulation (i.e. QEMU).
-* `meta-agl-distro`: Contains distro configuration and supporting scripts.
-* `meta-agl-profile-cluster`: The middleware for the AGL cluster profile.
- The set of packages required for AGL Cluster Distribution.
- Profiles include support for Wayland images.
-* `meta-agl-profile-cluster-qt5`: The middleware for the AGL Qt5-based cluster profile.
- The set of packages required for AGL Qt5-based Cluster Distribution.
- Profiles include support for Wayland images with Qt5.
-* `meta-agl-profile-core`: Configuration and recipes for the AGL core profiles.
-* `meta-agl-profile-graphical`: Configuration and recipes supporting graphical user
- interfaces.
-* `meta-agl-profile-graphical-html5`: Configuration and recipes supporting profiles
- with HTML user interface support.
-* `meta-agl-profile-graphical-qt5`: Configuration and recipes supporting profiles
- with Qt5-based user interface support.
-* `meta-agl-profile-hud`: Configuration and recipes supporting profiles with
- Head-Up-Display (HUD) support.
-* `meta-agl-profile-telematics`: Configuration and recipes supporting profiles with
- telematics support.
+* `meta-agl-core`: This is the core layer with essential recieps and the distro.
+* `meta-agl-core-test`: recipes supporting qa images (separate layer due to external dependencies)
+* `meta-agl-ic`: Instrument Cluster platform
+* `meta-agl-ivi`: IVI platform
* `meta-app-framework`: Configuration and recipes supporting the AGL Application
Framework.
* `meta-netboot`: Contains recipes and configuration adjustments to allow network
boot through network block device (NBD) since network file system (NFS) does not
support security labels.
-* `meta-security`: Configuration and recipes supporting security applications.
+* `meta-pipewire`: Configuration and recipes supporting pipewire as audio manager
* `scripts`: AGL development setup and support scripts.
* `templates`: Base, feature, and machine templates used in the AGL development
environment.
@@ -80,41 +63,40 @@ This section describes the AGL
[packagegroup](https://yoctoproject.org/docs/2.4.4/dev-manual/dev-manual.html#usingpoky-extend-customimage-customtasks)
design:
-* packagegroup-agl-image-minimal
+### core non-ui packagegroups:
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb
- packagegroup-agl-core-automotive.bb
- packagegroup-agl-core-connectivity.bb
- packagegroup-agl-core-graphics.bb
- packagegroup-agl-core-kernel.bb
- packagegroup-agl-core-multimedia.bb
- packagegroup-agl-core-navi-lbs.bb
- packagegroup-agl-core-os-commonlibs.bb
- packagegroup-agl-core-security.bb
- packagegroup-agl-core-speech-services.bb
+### graphical subsystem
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb
- The previous list of Packagegroups are used to create the `agl-image-minimal` image,
- which is a small image just capable of allowing a device to boot.
+### image-related packagegroups
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb
+meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb
- Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should
- hold sufficient packages to build `agl-image-minimal`.
+### QA/Test related packagegroups
+meta-agl-core-test/recipes-test/packagegroups
+meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
-* packagegroup-agl-image-ivi
+## Images
- packagegroup-agl-ivi-automotive.bb
- packagegroup-agl-ivi-connectivity.bb
- packagegroup-agl-ivi-graphics.bb
- packagegroup-agl-ivi-kernel.bb
- packagegroup-agl-ivi-multimedia.bb
- packagegroup-agl-ivi-navi-lbs.bb
- packagegroup-agl-ivi-os-commonlibs.bb
- packagegroup-agl-ivi-security.bb
- packagegroup-agl-ivi-speech-services.bb
+### (Barely) bootable image
+meta-agl-core/recipes-platform/images/agl-image-boot.bb
- The previous list of Packagegroups are used to create the `agl-image-ivi`
- image, which is a baseline image (i.e. Service Layer and Operating System
- Layer defined in AGL Spec v1.0) for the AGL profiles.
+### minimal image and SDK (console)
+meta-agl-core/recipes-platform/images/agl-image-minimal.bb
+meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb
-* packagegroup-agl-test.bb
+### weston-based image for re-use
+meta-agl-core/recipes-platform/images/agl-image-weston.bb
- Additional tools used in QA tests (for agl-image*-qa).
+### image for use in the YP autobuilder
+meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb
+### image with extra QA tooling (e.g. to run LTP)
+meta-agl-core-test/images/agl-image-minimal-qa.bb
diff --git a/meta-agl/conf/layer.conf b/meta-agl/conf/layer.conf
deleted file mode 100644
index 6f431e6ac..000000000
--- a/meta-agl/conf/layer.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "agl"
-BBFILE_PATTERN_agl = "^${LAYERDIR}/"
-BBFILE_PRIORITY_agl = "70"
-
-LAYERSERIES_COMPAT_agl = "dunfell"
diff --git a/meta-app-framework/conf/include/agl-appfw-smack.inc b/meta-app-framework/conf/include/agl-appfw-smack.inc
index 139722402..831368a31 100644
--- a/meta-app-framework/conf/include/agl-appfw-smack.inc
+++ b/meta-app-framework/conf/include/agl-appfw-smack.inc
@@ -3,6 +3,8 @@ OVERRIDES .= ":with-lsm-smack"
DISTRO_FEATURES_append = " smack xattr"
DISTRO_FEATURES_NATIVE_append = " smack xattr"
+APPFW_ENABLED = "1"
+
# use tar-native to support SMACK extended attributes independently of host config
IMAGE_CMD_TAR = "tar --xattrs --xattrs-include='*'"
do_image_tar[depends] += "tar-replacement-native:do_populate_sysroot"
@@ -17,3 +19,6 @@ PACKAGECONFIG_append_pn-shadow-native = " attr"
# set the home directory for root
ROOT_HOME = "/home/0"
+
+# include devel wgts in images
+IMAGE_FEATURES_append = " agl-devel-wgt"
diff --git a/meta-agl-profile-core/conf/include/agl-sign-wgts.inc b/meta-app-framework/conf/include/agl-sign-wgts.inc
index 6e6674fd1..d56c01288 100644
--- a/meta-agl-profile-core/conf/include/agl-sign-wgts.inc
+++ b/meta-app-framework/conf/include/agl-sign-wgts.inc
@@ -1,3 +1,3 @@
# allows insertion of code or items specific to developement
OVERRIDES .= ":agl-sign-wgts"
-DISTRO_FEATURES_append = " agl-sign-wgts"
+AGL_FEATURES_append = " agl-sign-wgts"
diff --git a/meta-app-framework/conf/layer.conf b/meta-app-framework/conf/layer.conf
index 21b8ee530..77701bb57 100644
--- a/meta-app-framework/conf/layer.conf
+++ b/meta-app-framework/conf/layer.conf
@@ -10,3 +10,24 @@ BBFILE_PATTERN_app-framework = "^${LAYERDIR}/"
BBFILE_PRIORITY_app-framework = "70"
LAYERSERIES_COMPAT_app-framework = "dunfell"
+
+# dependency: meta-oe
+LAYERDEPENDS_app-framework = "openembedded-layer"
+# dependency: meta-security
+LAYERDEPENDS_app-framework += "security"
+
+# AGL core layer is an optional requirement
+LAYERRECOMMENDS_app-framework += "aglcore"
+LAYERRECOMMENDS_app-framework += "qt5-layer"
+
+BBFILES_DYNAMIC += " \
+ qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bb \
+ qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bbappend \
+ aglcore:${LAYERDIR}/dynamic-layers/meta-agl-core/*/*/*.bb \
+ aglcore:${LAYERDIR}/dynamic-layers/meta-agl-core/*/*/*.bbappend \
+"
+
+
+# bug in meta-security
+BBMASK += "packagegroup-core-security-ptest\.bb"
+#BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
new file mode 100644
index 000000000..048154e04
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', '${PN}_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc
index 8445a9edd..423f15fdb 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-core-security.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security_appfw.inc
@@ -1,4 +1,4 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
smack-system-setup \
xmlsec1 \
cynagora \
@@ -6,4 +6,3 @@ RDEPENDS_${PN} += "\
security-manager-policy \
agl-users \
"
-
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
new file mode 100644
index 000000000..514dde79b
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'packagegroup-agl-image-boot_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc
index ad09e5ddf..b3383f114 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-boot.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot_appfw.inc
@@ -1,3 +1,3 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
packagegroup-agl-app-framework \
"
diff --git a/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
new file mode 100644
index 000000000..5f890bf06
--- /dev/null
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'packagegroup-agl-image-minimal_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc
index ad09e5ddf..b3383f114 100644
--- a/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bbappend
+++ b/meta-app-framework/dynamic-layers/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal_appfw.inc
@@ -1,3 +1,3 @@
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN}_append = "\
packagegroup-agl-app-framework \
"
diff --git a/meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
index 802167b2d..802167b2d 100644
--- a/meta-agl-profile-graphical-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libafb-helpers-qt/libafb-helpers-qt_git.bb
diff --git a/meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
index dd270d048..dd270d048 100644
--- a/meta-agl-profile-graphical-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-devtools/libqtappfw/libqtappfw_git.bb
diff --git a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb b/meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb
index 2f0f01fec..2f0f01fec 100644
--- a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-qt5.bb
+++ b/meta-app-framework/dynamic-layers/meta-qt5/recipes-platform/packagegroups/packagegroup-agl-appfw-qt5.bb
diff --git a/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend
new file mode 100644
index 000000000..20d2a68d7
--- /dev/null
+++ b/meta-app-framework/recipes-connectivity/bluez5/bluez5_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'bluez5_appfw.inc', '', d)}
diff --git a/meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc
index 3767681b0..21529e96b 100644
--- a/meta-security/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ b/meta-app-framework/recipes-connectivity/bluez5/bluez5_appfw.inc
@@ -48,7 +48,7 @@ SRC_URI_append_with-lsm-smack = "\
file://bluetooth.service.conf \
"
-FILES_${PN} += "${systemd_unitdir}"
+FILES_${PN}_append = " ${systemd_unitdir}"
do_install_append_with-lsm-smack() {
install -Dm0644 ${WORKDIR}/bluetooth.service.conf ${D}${systemd_unitdir}/system/bluetooth.service.d/smack.conf
diff --git a/meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf b/meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf
index b93ab4fee..b93ab4fee 100644
--- a/meta-security/recipes-connectivity/bluez5/files/bluetooth.service.conf
+++ b/meta-app-framework/recipes-connectivity/bluez5/files/bluetooth.service.conf
diff --git a/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend b/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend
new file mode 100644
index 000000000..72aa9f276
--- /dev/null
+++ b/meta-app-framework/recipes-connectivity/connman/connman_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'connman_appfw.inc', '', d)}
diff --git a/meta-security/recipes-connectivity/connman/connman_%.bbappend b/meta-app-framework/recipes-connectivity/connman/connman_appfw.inc
index 3b010490d..23af33104 100644
--- a/meta-security/recipes-connectivity/connman/connman_%.bbappend
+++ b/meta-app-framework/recipes-connectivity/connman/connman_appfw.inc
@@ -27,7 +27,7 @@ SRC_URI_append_with-lsm-smack = "\
RDEPENDS_${PN}_append_with-lsm-smack = " smack"
-FILES_${PN} += "${systemd_unitdir}"
+FILES_${PN}_append = " ${systemd_unitdir}"
do_install_append_with-lsm-smack() {
install -Dm0644 ${WORKDIR}/connman.service.conf ${D}${systemd_unitdir}/system/connman.service.d/smack.conf
diff --git a/meta-security/recipes-connectivity/connman/files/connman.service.conf b/meta-app-framework/recipes-connectivity/connman/files/connman.service.conf
index 6ebbf6ad1..6ebbf6ad1 100644
--- a/meta-security/recipes-connectivity/connman/files/connman.service.conf
+++ b/meta-app-framework/recipes-connectivity/connman/files/connman.service.conf
diff --git a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend b/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
index 1dddcd6f2..28b08face 100644
--- a/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-app-framework/recipes-core/base-files/base-files_%.bbappend
@@ -1,32 +1 @@
-RDEPENDS_${PN}_append_with-lsm-smack = " smack"
-PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native"
-
-do_install_append() {
- install -m 0700 -d ${D}/${sysconfdir}/skel
- chmod -R 0700 ${D}/${sysconfdir}/skel
- install -m 0700 -d ${D}/${sysconfdir}/skel/app-data
- install -m 0700 -d ${D}/${sysconfdir}/skel/.config
- install -m 0755 -d ${D}/var
- if [ -d ${D}/usr/local ]; then
- mv ${D}/usr/local ${D}/var
- else
- install -m 0755 -d ${D}/var/local
- fi
- ln -s ../var/local ${D}/usr/local
-}
-
-do_install_append_with-lsm-smack () {
- install -d ${D}/${sysconfdir}/smack/accesses.d
- cat > ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user <<EOF
-System User::App-Shared rwxat
-System User::Home rwxat
-EOF
- chmod 0644 ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user
-}
-
-pkg_postinst_${PN}_append_with-lsm-smack() {
- chsmack -r -a 'User::Home' -t -D $D/${sysconfdir}/skel
- chsmack -a 'User::App-Shared' -D $D/${sysconfdir}/skel/app-data
- cp -rTf --preserve=all $D/${sysconfdir}/skel $D/${ROOT_HOME}
-}
-
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'base-files_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/base-files/base-files_%.bbappend b/meta-app-framework/recipes-core/base-files/base-files_appfw.inc
index f0e340f5b..848a39ff4 100644
--- a/meta-security/recipes-core/base-files/base-files_%.bbappend
+++ b/meta-app-framework/recipes-core/base-files/base-files_appfw.inc
@@ -1,3 +1,37 @@
+RDEPENDS_${PN}_append_with-lsm-smack = " smack"
+PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native"
+
+do_install_append() {
+ install -m 0700 -d ${D}/${sysconfdir}/skel
+ chmod -R 0700 ${D}/${sysconfdir}/skel
+ install -m 0700 -d ${D}/${sysconfdir}/skel/app-data
+ install -m 0700 -d ${D}/${sysconfdir}/skel/.config
+ install -m 0755 -d ${D}/var
+ if [ -d ${D}/usr/local ]; then
+ mv ${D}/usr/local ${D}/var
+ else
+ install -m 0755 -d ${D}/var/local
+ fi
+ ln -s ../var/local ${D}/usr/local
+}
+
+do_install_append_with-lsm-smack () {
+ install -d ${D}/${sysconfdir}/smack/accesses.d
+ cat > ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user <<EOF
+System User::App-Shared rwxat
+System User::Home rwxat
+EOF
+ chmod 0644 ${D}/${sysconfdir}/smack/accesses.d/default-access-domains-no-user
+}
+
+pkg_postinst_${PN}_append_with-lsm-smack() {
+ chsmack -r -a 'User::Home' -t -D $D/${sysconfdir}/skel
+ chsmack -a 'User::App-Shared' -D $D/${sysconfdir}/skel/app-data
+ cp -rTf --preserve=all $D/${sysconfdir}/skel $D/${ROOT_HOME}
+}
+
+
+
# Install default Smack rules, copied from a running Tizen IVI 3.0.
# Corresponds to manifest file from default-access-domains in Tizen:
# https://review.tizen.org/git?p=platform/core/security/default-ac-domains.git;a=blob;f=packaging/default-ac-domains.manifest
diff --git a/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend b/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend
new file mode 100644
index 000000000..b7bf9fff4
--- /dev/null
+++ b/meta-app-framework/recipes-core/coreutils/coreutils_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'coreutils_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/coreutils/coreutils_%.bbappend b/meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc
index 1b9b722ec..1b9b722ec 100644
--- a/meta-security/recipes-core/coreutils/coreutils_%.bbappend
+++ b/meta-app-framework/recipes-core/coreutils/coreutils_appfw.inc
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
index 55cedb9c7..55cedb9c7 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0001-Integration-of-Cynara-asynchronous-security-checks.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
index bac8cf97f..bac8cf97f 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0002-Disable-message-dispatching-when-send-rule-result-is.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
index 7d89a7496..7d89a7496 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
index 9953dcaac..9953dcaac 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0004-Add-own-rule-result-unavailability-handling.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
index 5f7e96a3b..5f7e96a3b 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
index e51ad7ce4..e51ad7ce4 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0006-Fix-SIGSEGV-on-disconnections.patch
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
index 7a69efcd2..7a69efcd2 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus-cynagora/0007-Switch-from-cynara-to-cynagora.patch
diff --git a/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend b/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
new file mode 100644
index 000000000..028c734aa
--- /dev/null
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'dbus_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend b/meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc
index 177a117b8..177a117b8 100644
--- a/meta-security/recipes-core/dbus-cynagora/dbus_1.12.16.bbappend
+++ b/meta-app-framework/recipes-core/dbus-cynagora/dbus_appfw.inc
diff --git a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
deleted file mode 100644
index fc73e8f3d..000000000
--- a/meta-app-framework/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-RDEPENDS_${PN} =+ "nativesdk-af-main-tools nativesdk-af-binder-devtools"
-
diff --git a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend b/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend
deleted file mode 100644
index 3306d4c72..000000000
--- a/meta-app-framework/recipes-core/security-manager/security-manager_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/security-manager:"
-
-EXTRA_OECMAKE =+ " -DGLOBALUSER=afm"
-SRC_URI += " \
- file://0001-Adapt-rules-to-AGL.patch \
-"
-
diff --git a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend b/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
index 4f594d47c..70a0c3c82 100644
--- a/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
+++ b/meta-app-framework/recipes-core/shadow/shadow_%.bbappend
@@ -1,6 +1,3 @@
-
-do_install_append() {
- sed -i '/^UMASK/s:^.*$:UMASK 077:' ${D}${sysconfdir}/login.defs
-}
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'shadow_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-core/shadow/shadow_appfw.inc b/meta-app-framework/recipes-core/shadow/shadow_appfw.inc
new file mode 100644
index 000000000..472ffef2c
--- /dev/null
+++ b/meta-app-framework/recipes-core/shadow/shadow_appfw.inc
@@ -0,0 +1,3 @@
+do_install_append() {
+ sed -i '/^UMASK/s:^.*$:UMASK 077:' ${D}${sysconfdir}/login.defs
+}
diff --git a/meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules b/meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
index eca65292f..eca65292f 100644
--- a/meta-security/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/55-udev-smack-default.rules
diff --git a/meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf
index 7035a1410..7035a1410 100644
--- a/meta-security/recipes-core/smack-system-setup/files/systemd-journald.service.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-journald.service.conf
diff --git a/meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
index db43c8c51..db43c8c51 100644
--- a/meta-security/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/systemd-tmpfiles-setup.service.conf
diff --git a/meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf b/meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf
index 388986e82..388986e82 100644
--- a/meta-security/recipes-core/smack-system-setup/files/tmp.mount.conf
+++ b/meta-app-framework/recipes-core/smack-system-setup/files/tmp.mount.conf
diff --git a/meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb b/meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb
index 49b12ad3f..49b12ad3f 100644
--- a/meta-security/recipes-core/smack-system-setup/smack-system-setup_1.bb
+++ b/meta-app-framework/recipes-core/smack-system-setup/smack-system-setup_1.bb
diff --git a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb b/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb
deleted file mode 100644
index 389ab2424..000000000
--- a/meta-app-framework/recipes-core/systemd-sync/systemd-agl-sync_1.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Systemd synchronization script"
-DESCRIPTION = "\
-Systemd synchronization script \
-reload daemon at the first boot. \
-"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-#This script should be the last to be execute at the first boot
-POST_INSTALL_LEVEL = "X0"
-POST_INSTALL_SCRIPT ?= "${POST_INSTALL_LEVEL}-${PN}.sh"
-
-do_install() {
- install -d ${D}/${sysconfdir}/agl-postinsts
- cat > ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} <<EOF
-#!/bin/sh -e
-echo "restart daemon ..."
-result=0
-systemctl daemon-reload
-if [ \$? -ne 0 ]; then
- result=1
-fi
-systemctl restart sockets.target
-if [ \$? -ne 0 ]; then
- result=1
-fi
-
-if [ \$result -eq 0 ]; then
- echo "restart daemon OK"
- exit \$result
-else
- echo "restart daemon failed"
- exit \$result
-fi
-EOF
- chmod a+x ${D}/${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT}
-}
-
-FILES_${PN} = "${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT}"
diff --git a/meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch b/meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
index 46445be73..46445be73 100644
--- a/meta-security/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
+++ b/meta-app-framework/recipes-core/systemd/systemd/0001-Switch-Smack-label-earlier.patch
diff --git a/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend b/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend
new file mode 100644
index 000000000..11b1df9bb
--- /dev/null
+++ b/meta-app-framework/recipes-core/systemd/systemd_2%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'systemd_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/systemd/systemd_2%.bbappend b/meta-app-framework/recipes-core/systemd/systemd_appfw.inc
index 789c05f83..a5e1ae840 100644
--- a/meta-security/recipes-core/systemd/systemd_2%.bbappend
+++ b/meta-app-framework/recipes-core/systemd/systemd_appfw.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"
# Ensures systemd runs with label "System"
EXTRA_OEMESON_append_with-lsm-smack = " -Dsmack-run-label=System"
diff --git a/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend b/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend
new file mode 100644
index 000000000..3894f57cc
--- /dev/null
+++ b/meta-app-framework/recipes-core/util-linux/util-linux_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'util-linux_appfw.inc', '', d)}
diff --git a/meta-security/recipes-core/util-linux/util-linux_%.bbappend b/meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc
index 05286f80d..05286f80d 100644
--- a/meta-security/recipes-core/util-linux/util-linux_%.bbappend
+++ b/meta-app-framework/recipes-core/util-linux/util-linux_appfw.inc
diff --git a/meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb b/meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
index 3fea2ed91..3fea2ed91 100644
--- a/meta-agl-profile-core/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
+++ b/meta-app-framework/recipes-devtools/cmake-apps-module/cmake-apps-module_git.bb
diff --git a/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend b/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend
new file mode 100644
index 000000000..051f66aaf
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/json-c/json-c_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'json-c_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc b/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc
new file mode 100644
index 000000000..f1547e14b
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/json-c/json-c_appfw.inc
@@ -0,0 +1 @@
+EXTRA_OECONF_append = " --enable-threading"
diff --git a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
index 1174ac4d7..1174ac4d7 100644
--- a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
+++ b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.bb
diff --git a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
index 6753225b4..6753225b4 100644
--- a/meta-agl-profile-core/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
+++ b/meta-app-framework/recipes-devtools/libafb-helpers/libafb-helpers_git.inc
diff --git a/meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb b/meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb
index 0ee9c5e84..0ee9c5e84 100644
--- a/meta-agl-profile-core/recipes-devtools/libappcontroller/libappcontroller_git.bb
+++ b/meta-app-framework/recipes-devtools/libappcontroller/libappcontroller_git.bb
diff --git a/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
new file mode 100644
index 000000000..837b85392
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'nativesdk-packagegroup-sdk-host_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc
new file mode 100644
index 000000000..8d6ffb5b3
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/packagegroups/nativesdk-packagegroup-sdk-host_appfw.inc
@@ -0,0 +1,5 @@
+RDEPENDS_${PN}_append = " \
+ nativesdk-af-main-tools \
+ nativesdk-af-binder-devtools \
+ nativesdk-cmake-apps-module \
+"
diff --git a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend b/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend
deleted file mode 100644
index 590ab708a..000000000
--- a/meta-app-framework/recipes-devtools/run-agl-postinsts/run-agl-postinsts_1.0.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-SYSTEMD_SERVICE_AFTER_append = " afm-system-daemon.service"
diff --git a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
index d706cc5f7..d706cc5f7 100644
--- a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
diff --git a/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
new file mode 100644
index 000000000..6b9025dc5
--- /dev/null
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'run-postinsts_appfw.inc', '', d)}
diff --git a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc
index 4cc2edf86..2f3effce6 100644
--- a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
+++ b/meta-app-framework/recipes-devtools/run-postinsts/run-postinsts_appfw.inc
@@ -1,6 +1,6 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/run-postinsts:"
-SRC_URI += "file://ldconfig-wait.conf"
+SRC_URI_append = " file://ldconfig-wait.conf"
do_configure_append() {
if ! grep -q StandardOutput= ${WORKDIR}/run-postinsts.service; then
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch b/meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
index d0dcb45af..d0dcb45af 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
+++ b/meta-app-framework/recipes-graphics/wayland/wayland/0001-Change-socket-mode-add-rw-for-group.patch
diff --git a/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend b/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend
new file mode 100644
index 000000000..50cad0354
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/wayland_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'wayland_appfw.inc', '', d)}
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend b/meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc
index 9d1822697..f39122de2 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland_%.bbappend
+++ b/meta-app-framework/recipes-graphics/wayland/wayland_appfw.inc
@@ -1,4 +1,4 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/wayland:"
SRC_URI_append = "\
file://0001-Change-socket-mode-add-rw-for-group.patch \
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch b/meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
index 362f6b064..362f6b064 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
+++ b/meta-app-framework/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston b/meta-app-framework/recipes-graphics/wayland/weston/smack-weston
index 63a32405a..63a32405a 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/smack-weston
+++ b/meta-app-framework/recipes-graphics/wayland/weston/smack-weston
diff --git a/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend
new file mode 100644
index 000000000..00bb510bf
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/weston_8.0.%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'weston_8.0_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc b/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc
new file mode 100644
index 000000000..219ed1aef
--- /dev/null
+++ b/meta-app-framework/recipes-graphics/wayland/weston_8.0_appfw.inc
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/weston"
+
+SRC_URI_append = "\
+ file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
+ file://smack-weston \
+ "
+
+EXTRA_OEMESON_append = " -Denable-user-start=true"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'smack', 'true', 'false', d)}; then
+ # Install SMACK rules
+ install -D -m 0644 ${WORKDIR}/smack-weston ${D}${sysconfdir}/smack/accesses.d/weston
+ fi
+}
+
+FILES_${PN}_append = "\
+ ${sysconfdir}/smack/accesses.d/* \
+"
diff --git a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend b/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
index fba5bf13d..acce6cc1b 100644
--- a/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
+++ b/meta-app-framework/recipes-kernel/linux/linux-%.bbappend
@@ -1,3 +1,2 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux:"
-SRC_URI_append_with-lsm-smack = " file://audit.cfg"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'linux-appfw.inc', '', d)}
diff --git a/meta-security/recipes-kernel/linux/linux-%.bbappend b/meta-app-framework/recipes-kernel/linux/linux-appfw.inc
index 717d32e3a..cbf6567e0 100644
--- a/meta-security/recipes-kernel/linux/linux-%.bbappend
+++ b/meta-app-framework/recipes-kernel/linux/linux-appfw.inc
@@ -9,9 +9,13 @@ SMACK_KERNEL_SRC_URI_yes += "file://smack.cfg"
# When added, set Smack as the default LSM.
SMACK_DEFAULT_SECURITY_CFG = "file://smack-default-lsm.cfg"
-
# Add it by default, can be overridden by changing this variable here.
SMACK_DEFAULT_SECURITY ??= "${SMACK_DEFAULT_SECURITY_CFG}"
SMACK_KERNEL_SRC_URI_yes += " ${SMACK_DEFAULT_SECURITY}"
+# add audit.cfg
+SMACK_KERNEL_SRC_URI_yes += " file://audit.cfg"
+
+
SRC_URI_append_with-lsm-smack = "${SMACK_KERNEL_SRC_URI_${IS_KERNEL_RECIPE}}"
+
diff --git a/meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg b/meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg
index b5c48454e..b5c48454e 100644
--- a/meta-security/recipes-kernel/linux/linux/smack-default-lsm.cfg
+++ b/meta-app-framework/recipes-kernel/linux/linux/smack-default-lsm.cfg
diff --git a/meta-security/recipes-kernel/linux/linux/smack.cfg b/meta-app-framework/recipes-kernel/linux/linux/smack.cfg
index 45a92f148..45a92f148 100644
--- a/meta-security/recipes-kernel/linux/linux/smack.cfg
+++ b/meta-app-framework/recipes-kernel/linux/linux/smack.cfg
diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb
index 7ba909162..7ba909162 100644
--- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework-examples.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework-examples.bb
diff --git a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb
index 854835d4c..d15607a40 100644
--- a/meta-app-framework/recipes-core/packagegroups/packagegroup-agl-app-framework.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-app-framework.bb
@@ -4,17 +4,16 @@ LICENSE = "MIT"
inherit packagegroup
-PACKAGES = "\
+PACKAGES_${PN} = "\
packagegroup-agl-app-framework \
"
ALLOW_EMPTY_${PN} = "1"
-RDEPENDS_${PN} += "\
+RDEPENDS_${PN} = "\
af-binder \
libafbwsc \
af-main \
nss-localuser \
- systemd-agl-sync \
af-platform-setup \
"
diff --git a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb
index a31c666ca..750fe678d 100644
--- a/meta-agl-profile-graphical-qt5/recipes-appfw/packagegroups/packagegroup-agl-appfw-native.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-agl-appfw-native.bb
@@ -13,5 +13,4 @@ PACKAGES = "\
ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
- packagegroup-agl-appfw-native-qt5 \
"
diff --git a/meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb b/meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb
index bc708600f..bc708600f 100644
--- a/meta-security/recipes-core/packagegroups/packagegroup-security-framework.bb
+++ b/meta-app-framework/recipes-platform/packagegroups/packagegroup-security-framework.bb
diff --git a/meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch b/meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
index 6e1827c08..6e1827c08 100644
--- a/meta-security/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
+++ b/meta-app-framework/recipes-security/audit/audit/0001-lib-i386_table.h-add-new-syscall.patch
diff --git a/meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch b/meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
index bb6c61e80..bb6c61e80 100644
--- a/meta-security/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
+++ b/meta-app-framework/recipes-security/audit/audit/Add-substitue-functions-for-strndupa-rawmemchr.patch
diff --git a/meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch b/meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
index 7c2699540..7c2699540 100644
--- a/meta-security/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
+++ b/meta-app-framework/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
diff --git a/meta-security/recipes-security/audit/audit/audit-volatile.conf b/meta-app-framework/recipes-security/audit/audit/audit-volatile.conf
index 9cbe1547a..9cbe1547a 100644
--- a/meta-security/recipes-security/audit/audit/audit-volatile.conf
+++ b/meta-app-framework/recipes-security/audit/audit/audit-volatile.conf
diff --git a/meta-security/recipes-security/audit/audit/auditd b/meta-app-framework/recipes-security/audit/audit/auditd
index cda2e43d4..cda2e43d4 100755
--- a/meta-security/recipes-security/audit/audit/auditd
+++ b/meta-app-framework/recipes-security/audit/audit/auditd
diff --git a/meta-security/recipes-security/audit/audit/auditd.service b/meta-app-framework/recipes-security/audit/audit/auditd.service
index ebc079897..ebc079897 100644
--- a/meta-security/recipes-security/audit/audit/auditd.service
+++ b/meta-app-framework/recipes-security/audit/audit/auditd.service
diff --git a/meta-security/recipes-security/audit/audit_2.8.5.bb b/meta-app-framework/recipes-security/audit/audit_2.8.5.bb
index af36ed5e2..af36ed5e2 100644
--- a/meta-security/recipes-security/audit/audit_2.8.5.bb
+++ b/meta-app-framework/recipes-security/audit/audit_2.8.5.bb
diff --git a/meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb b/meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb
index c77c99189..c77c99189 100644
--- a/meta-security/recipes-security/cynagoauth/cynagoauth_0.1.bb
+++ b/meta-app-framework/recipes-security/cynagoauth/cynagoauth_0.1.bb
diff --git a/meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb b/meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
index f146051cd..f146051cd 100644
--- a/meta-security/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
+++ b/meta-app-framework/recipes-security/cynagora/cynagora-cynara-compat_2.1.bb
diff --git a/meta-security/recipes-security/cynagora/cynagora/run-ptest b/meta-app-framework/recipes-security/cynagora/cynagora/run-ptest
index f95f0725b..f95f0725b 100755
--- a/meta-security/recipes-security/cynagora/cynagora/run-ptest
+++ b/meta-app-framework/recipes-security/cynagora/cynagora/run-ptest
diff --git a/meta-security/recipes-security/cynagora/cynagora_2.1.bb b/meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb
index 73f2f0949..73f2f0949 100644
--- a/meta-security/recipes-security/cynagora/cynagora_2.1.bb
+++ b/meta-app-framework/recipes-security/cynagora/cynagora_2.1.bb
diff --git a/meta-security/recipes-security/security-manager/security-manager.inc b/meta-app-framework/recipes-security/security-manager/security-manager.inc
index e1d1f4011..e1d1f4011 100644
--- a/meta-security/recipes-security/security-manager/security-manager.inc
+++ b/meta-app-framework/recipes-security/security-manager/security-manager.inc
diff --git a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
index 4c91f7fa3..4c91f7fa3 100644
--- a/meta-app-framework/recipes-core/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0001-Adapt-rules-to-AGL.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
index 91ce81963..91ce81963 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0001-systemd-stop-using-compat-libs.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
index b6346480b..b6346480b 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0002-security-manager-policy-reload-do-not-depend-on-GNU-.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
index d79345e01..d79345e01 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0003-Smack-rules-create-two-new-functions.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
index 59d4971ff..59d4971ff 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0004-app-install-implement-multiple-set-of-smack-rules.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
index 0739f28c7..0739f28c7 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0005-c-11-replace-deprecated-auto_ptr.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
index 3b8aad98c..3b8aad98c 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0006-socket-manager-removes-tizen-specific-call.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
index bad99d25a..bad99d25a 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0007-removes-dependency-to-libslp-db-utils.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
index 5ece7ef4f..5ece7ef4f 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0008-Fix-gcc6-build.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
index 706eb1a93..706eb1a93 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0009-Fix-Cmake-conf-for-gcc6-build.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
index 0f48c5f68..0f48c5f68 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0010-gcc-7-requires-include-functional-for-std-function.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
index 5c679fc26..5c679fc26 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0011-Fix-gcc8-warning-error-Werror-catch-value.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
index 91ccf9ee2..91ccf9ee2 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0012-Avoid-casting-from-const-T-to-void.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
index fb6215923..fb6215923 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0013-Removing-tizen-platform-config.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
index 542a387d2..542a387d2 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0014-Ensure-post-install-initialization-of-database.patch
diff --git a/meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch b/meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
index d9949193b..d9949193b 100644
--- a/meta-security/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
+++ b/meta-app-framework/recipes-security/security-manager/security-manager/0015-Restrict-socket-accesses.patch
diff --git a/meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend b/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
index d6fcb40af..ec8435369 100644
--- a/meta-agl-profile-graphical/recipes-security/security-manager/security-manager_%.bbappend
+++ b/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
@@ -1,3 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/security-manager:"
+
+EXTRA_OECMAKE =+ " -DGLOBALUSER=afm"
+
+SRC_URI += " \
+ file://0001-Adapt-rules-to-AGL.patch \
+"
do_install_append() {
# Needed for wayland-0 socket access and memfd usage
diff --git a/meta-security/recipes-security/security-manager/security-manager_git.bb b/meta-app-framework/recipes-security/security-manager/security-manager_git.bb
index b34973519..b34973519 100644
--- a/meta-security/recipes-security/security-manager/security-manager_git.bb
+++ b/meta-app-framework/recipes-security/security-manager/security-manager_git.bb
diff --git a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
index 09820be2f..afbc16c30 100644
--- a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
+++ b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_1.%.bbappend
@@ -1,4 +1 @@
-# Disable nss to avoid build issues on native
-PACKAGECONFIG = "gnutls libgcrypt openssl des"
-
-BBCLASSEXTEND = "native nativesdk"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'xmlsec1_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc
new file mode 100644
index 000000000..09820be2f
--- /dev/null
+++ b/meta-app-framework/recipes-security/xmlsec1/xmlsec1_appfw.inc
@@ -0,0 +1,4 @@
+# Disable nss to avoid build issues on native
+PACKAGECONFIG = "gnutls libgcrypt openssl des"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend b/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
index ac909a64c..6107ee7f6 100644
--- a/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
+++ b/meta-app-framework/recipes-support/libcap/libcap_%.bbappend
@@ -1,3 +1 @@
-FILESEXTRAPATHS_append_class-native := ":${THISDIR}/${PN}"
-# FIXME: It needs to be determined if this is still required
-#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'libcap_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-support/libcap/libcap_appfw.inc b/meta-app-framework/recipes-support/libcap/libcap_appfw.inc
new file mode 100644
index 000000000..9ece5ce27
--- /dev/null
+++ b/meta-app-framework/recipes-support/libcap/libcap_appfw.inc
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_append_class-native := ":${THISDIR}/libcap"
+# FIXME: It needs to be determined if this is still required
+#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
diff --git a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend b/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
index 5174650b1..d559c2fbe 100644
--- a/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
+++ b/meta-app-framework/recipes-support/libzip/libzip_%.bbappend
@@ -1 +1 @@
-BBCLASSEXTEND += "native nativesdk"
+require ${@bb.utils.contains('APPFW_ENABLED', '1', 'libzip_appfw.inc', '', d)}
diff --git a/meta-app-framework/recipes-support/libzip/libzip_appfw.inc b/meta-app-framework/recipes-support/libzip/libzip_appfw.inc
new file mode 100644
index 000000000..5174650b1
--- /dev/null
+++ b/meta-app-framework/recipes-support/libzip/libzip_appfw.inc
@@ -0,0 +1 @@
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb b/meta-app-framework/recipes-test/afb-test/afb-test_git.bb
index 5246abb00..5246abb00 100644
--- a/meta-agl-profile-core/recipes-test/afb-test/afb-test_git.bb
+++ b/meta-app-framework/recipes-test/afb-test/afb-test_git.bb
diff --git a/meta-agl-profile-core/recipes-test/afb-test/files/run-ptest b/meta-app-framework/recipes-test/afb-test/files/run-ptest
index 883939a83..883939a83 100644
--- a/meta-agl-profile-core/recipes-test/afb-test/files/run-ptest
+++ b/meta-app-framework/recipes-test/afb-test/files/run-ptest
diff --git a/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh b/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh
new file mode 100755
index 000000000..37d2f5615
--- /dev/null
+++ b/meta-app-framework/scripts/run-yocto-check-layer-enabled-flags.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+set -x
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT="/tmp"
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# skip unnecessary in yocto-check-layer - aka FIXME upstream
+BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb"
+BBMASK += "packagegroup-core-security-ptest.bb"
+
+# missing in upstream recipes ... aka FIXME upstream
+BBCLASSEXTEND_pn-libzip = "native nativesdk"
+BBCLASSEXTEND_pn-xmlsec1 = "native nativesdk"
+
+DISTRO_FEATURES_append = " appfw smack "
+
+EOF
+
+
+yocto-check-layer \
+ --dependency $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-security \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ $AGLROOT/external/meta-openembedded/meta-perl \
+ $AGLROOT/external/meta-qt5/ \
+ -- \
+ $AGLROOT/meta-agl/meta-app-framework/
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+
diff --git a/meta-app-framework/scripts/run-yocto-check-layer.sh b/meta-app-framework/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..3b19cd012
--- /dev/null
+++ b/meta-app-framework/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -x
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT="/tmp"
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# skip unnecessary in yocto-check-layer - aka FIXME upstream
+BBMASK += "meta-security/recipes-mac/smack/smack-test_1.0.bb"
+BBMASK += "packagegroup-core-security-ptest.bb"
+
+# missing in upstream recipes ... aka FIXME upstream
+BBCLASSEXTEND_pn-libzip = "native nativesdk"
+BBCLASSEXTEND_pn-xmlsec1 = "native nativesdk"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-security \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ $AGLROOT/external/meta-openembedded/meta-perl \
+ $AGLROOT/external/meta-qt5/ \
+ -- \
+ $AGLROOT/meta-agl/meta-app-framework/
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+
diff --git a/meta-netboot/README.renesas-gen3 b/meta-netboot/README.renesas-gen3
deleted file mode 100644
index 496141eef..000000000
--- a/meta-netboot/README.renesas-gen3
+++ /dev/null
@@ -1,90 +0,0 @@
-Below are the environment variables that can be set in the u-boot console to boot the Renesas Gen3 ULCB boards.
-
-Adjust board type with the following identifiers:
-
-* 'm3ulcb' for Renesas Gen3 Starter Kit Pro
-* 'h3ulcb' for Renesas Gen3 Starter Kit Premium
-
-################## Common options #####################
-# these options are common to all configurations:
-
-##### board info
-
-# choose board
-setenv board m3ulcb
-setenv soc r8a7796
-# or
-setenv board h3ulcb
-setenv soc r8a7795
-
-##### boot mode
-# choose bootmode:
-# netboot
-setenv bootmode net
-# or sdcard
-setenv bootmode sd
-# or sdcard with initrd
-setenv bootmode sdi
-
-##### sdcard options
-# which sdcard slot to use
-setenv bootmmc '0:1'
-
-##### netboot options
-# replace <IP> and <NUM> by appropriate addresses
-setenv ipaddr '<board_IP>'
-setenv serverip '<server_IP>'
-setenv ethact ravb
-setenv ethaddr DE:AD:C0:FF:EE:<NUM>
-
-################## Internal variables #####################
-
-# kernel file
-setenv set_bootkfile 'setenv bootkfile Image'
-setenv bootkaddr 0x48080000
-
-# dtb file
-setenv set_bootdfile 'setenv bootdfile Image-${soc}-${board}.dtb'
-setenv bootdaddr 0x48000000
-
-# initrd
-setenv set_bootifile 'setenv bootifile initramfs-netboot-image-${board}.ext4.gz'
-setenv bootiaddr 0x5C3F9520
-setenv bootisize 3A6AB6
-
-# kernel args
-setenv bootargs_console 'console=ttySC0,115200 ignore_loglevel'
-setenv bootargs_video 'vmalloc=384M video=HDMI-A-1:1920x1080-32@60'
-setenv bootargs_extra 'rw rootfstype=ext4 rootwait rootdelay=2'
-
-# final boot command
-setenv bootcmd 'run bootcmd_${bootmode}'
-
-################ Boot on MMC (SDcard) #################
-
-setenv bootkload_sd 'ext4load mmc ${bootmmc} ${bootkaddr} boot/${bootkfile}'
-setenv bootiload_sd 'ext4load mmc ${bootmmc} ${bootiaddr} boot/${bootifile}'
-setenv bootdload_sd 'ext4load mmc ${bootmmc} ${bootdaddr} boot/${bootdfile}'
-
-# without initrd
-setenv bootargs_root_sd 'root=/dev/mmcblk1p1'
-setenv bootload_sd 'run set_bootkfile; run bootkload_sd; run set_bootdfile; run bootdload_sd'
-setenv bootcmd_sd 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_sd} ${bootargs_extra}; run bootload_sd; booti ${bootkaddr} - ${bootdaddr}'
-
-# with initrd
-setenv bootargs_root_sdi 'root=/dev/ram0 ramdisk_size=16384'
-setenv bootload_sdi 'run set_bootkfile; run bootkload_sd; run set_bootdfile; run bootdload_sd; run set_bootifile; run bootiload_sd'
-setenv bootcmd_sdi 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_sdi} ${bootargs_extra}; run bootload_sdi; booti ${bootkaddr} ${bootiaddr}:${bootisize} ${bootdaddr}'
-
-################ Netboot through TFTP+NBD ##################
-
-setenv bootkload_net 'tftp ${bootkaddr} ${board}/${bootkfile}'
-setenv bootdload_net 'tftp ${bootdaddr} ${board}/${bootdfile}'
-setenv bootiload_net 'tftp ${bootiaddr} ${board}/${bootifile}'
-
-setenv bootargs_root_net 'root=/dev/ram0 ramdisk_size=16384 ip=dhcp'
-setenv bootload_net 'run set_bootkfile; run bootkload_net; run set_bootdfile; run bootdload_net; run set_bootifile; run bootiload_net'
-
-setenv bootcmd_net 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root_net} ${bootargs_extra} nbd.server=${serverip}; run bootload_net; booti ${bootkaddr} ${bootiaddr}:${bootisize} ${bootdaddr}'
-
-
diff --git a/meta-netboot/classes/netboot.bbclass b/meta-netboot/classes/netboot.bbclass
index 63369285f..a18d64f5b 100644
--- a/meta-netboot/classes/netboot.bbclass
+++ b/meta-netboot/classes/netboot.bbclass
@@ -1,5 +1,10 @@
# Enable network bootable image and initrd/initramfs
+OVERRIDES .= ":netboot"
+# add 512MB of extra space in ext4 output image
+IMAGE_ROOTFS_EXTRA_SPACE = "524288"
+NETBOOT_ENABLED ??= "1"
+
python () {
if (bb.utils.contains("IMAGE_FSTYPES","live",True,False,d)):
# typical case for Minnowboard Max
diff --git a/meta-netboot/conf/include/agl-netboot.inc b/meta-netboot/conf/include/agl-netboot.inc
index fcff8c318..ca6d9df12 100644
--- a/meta-netboot/conf/include/agl-netboot.inc
+++ b/meta-netboot/conf/include/agl-netboot.inc
@@ -1,5 +1,2 @@
INHERIT += "netboot"
-OVERRIDES .= ":netboot"
-# add 512MB of extra space in ext4 output image
-IMAGE_ROOTFS_EXTRA_SPACE = "524288"
diff --git a/meta-netboot/conf/layer.conf b/meta-netboot/conf/layer.conf
index 50def90fc..2af752805 100644
--- a/meta-netboot/conf/layer.conf
+++ b/meta-netboot/conf/layer.conf
@@ -1,6 +1,3 @@
-# Added for futur conditionnals tests
-DISTRO_FEATURES_append = " netboot"
-
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -13,3 +10,4 @@ BBFILE_PATTERN_meta-netboot = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-netboot = "60"
LAYERSERIES_COMPAT_meta-netboot = "dunfell"
+LAYERDEPENDS_meta-netboot = "core networking-layer"
diff --git a/meta-netboot/recipes-core/busybox/busybox_%.bbappend b/meta-netboot/recipes-core/busybox/busybox_%.bbappend
index 358913448..fcf6acfd1 100644
--- a/meta-netboot/recipes-core/busybox/busybox_%.bbappend
+++ b/meta-netboot/recipes-core/busybox/busybox_%.bbappend
@@ -1,6 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += " \
- file://enable_nbd.cfg \
- "
-
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'busybox_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-core/busybox/busybox_netboot.inc b/meta-netboot/recipes-core/busybox/busybox_netboot.inc
new file mode 100644
index 000000000..0bcd5afa5
--- /dev/null
+++ b/meta-netboot/recipes-core/busybox/busybox_netboot.inc
@@ -0,0 +1,6 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI_append = " \
+ file://enable_nbd.cfg \
+ "
+
diff --git a/meta-netboot/recipes-core/images/initramfs-netboot-image.bb b/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
index 965a0bd37..b5610f30d 100644
--- a/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
+++ b/meta-netboot/recipes-core/images/initramfs-netboot-image.bb
@@ -1,23 +1,2 @@
-# Netboot initramfs image.
-DESCRIPTION = "Netboot initrd image"
-
-PACKAGE_INSTALL = "initramfs-netboot busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
-
-# Do not pollute the initrd image with rootfs features
-IMAGE_FEATURES = ""
-
-export IMAGE_BASENAME = "initramfs-netboot-image"
-IMAGE_LINGUAS = ""
-
LICENSE = "MIT"
-
-IMAGE_FSTYPES := "${NETBOOT_FSTYPES}"
-inherit core-image
-
-# hotfix for dragonboard (which uses _append in the bsp)
-IMAGE_FSTYPES_remove += "wic.gz"
-
-IMAGE_ROOTFS_SIZE = "8192"
-IMAGE_ROOTFS_EXTRA_SPACE = "256"
-
-BAD_RECOMMENDATIONS += "busybox-syslog"
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'initramfs-netboot-image_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc b/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc
new file mode 100644
index 000000000..0c97b0f93
--- /dev/null
+++ b/meta-netboot/recipes-core/images/initramfs-netboot-image_netboot.inc
@@ -0,0 +1,23 @@
+# Netboot initramfs image.
+DESCRIPTION = "Netboot initrd image"
+
+PACKAGE_INSTALL = "initramfs-netboot busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
+
+# Do not pollute the initrd image with rootfs features
+IMAGE_FEATURES = ""
+
+export IMAGE_BASENAME = "initramfs-netboot-image"
+IMAGE_LINGUAS = ""
+
+LICENSE = "MIT"
+
+IMAGE_FSTYPES := "${NETBOOT_FSTYPES}"
+inherit core-image
+
+# hotfix for dragonboard (which uses _append in the bsp)
+IMAGE_FSTYPES_remove = "wic.gz"
+
+IMAGE_ROOTFS_SIZE = "8192"
+IMAGE_ROOTFS_EXTRA_SPACE = "256"
+
+BAD_RECOMMENDATIONS += "busybox-syslog"
diff --git a/meta-netboot/recipes-support/nbd/nbd_%.bbappend b/meta-netboot/recipes-support/nbd/nbd_%.bbappend
index fb11ef9c2..e67e591ff 100644
--- a/meta-netboot/recipes-support/nbd/nbd_%.bbappend
+++ b/meta-netboot/recipes-support/nbd/nbd_%.bbappend
@@ -1,6 +1 @@
-
-do_install_append() {
- mv ${D}/${sbindir}/${BPN}-client ${D}/${sbindir}/${BPN}3-client
-}
-
-FILES_${PN}-client = "${sbindir}/${BPN}3-client"
+require ${@bb.utils.contains('NETBOOT_ENABLED', '1', 'nbd_netboot.inc', '', d)}
diff --git a/meta-netboot/recipes-support/nbd/nbd_netboot.inc b/meta-netboot/recipes-support/nbd/nbd_netboot.inc
new file mode 100644
index 000000000..f2286616f
--- /dev/null
+++ b/meta-netboot/recipes-support/nbd/nbd_netboot.inc
@@ -0,0 +1,5 @@
+do_install_append() {
+ mv ${D}/${sbindir}/nbd-client ${D}/${sbindir}/nbd3-client
+}
+
+FILES_${PN}-client_append = " ${sbindir}/nbd3-client"
diff --git a/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh b/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh
new file mode 100755
index 000000000..c64afa714
--- /dev/null
+++ b/meta-netboot/scripts/run-yocto-check-layer-flags-enabled.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround
+# ERROR: Nothing PROVIDES 'smack' (but meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+NETBOOT_ENABLED = "1"
+NETBOOT_FSTYPES ??= "ext4.gz"
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ -- \
+ $AGLROOT/meta-agl/meta-netboot/
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-netboot/scripts/run-yocto-check-layer.sh b/meta-netboot/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..b3b8e08e1
--- /dev/null
+++ b/meta-netboot/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+# workaround
+# ERROR: Nothing PROVIDES 'smack' (but meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2020.3.bb DEPENDS on or otherwise requires it)
+BBMASK += "meta-oe/recipes-extended/ostree/ostree_2020.3.bb"
+
+
+EOF
+
+
+yocto-check-layer \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
+ $AGLROOT/external/meta-openembedded/meta-python \
+ $AGLROOT/external/meta-openembedded/meta-networking \
+ -- \
+ $AGLROOT/meta-agl/meta-netboot/
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-pipewire/conf/layer.conf b/meta-pipewire/conf/layer.conf
index 68113221d..5fe2ee2fd 100644
--- a/meta-pipewire/conf/layer.conf
+++ b/meta-pipewire/conf/layer.conf
@@ -10,3 +10,8 @@ BBFILE_PATTERN_meta-pipewire = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-pipewire = "71"
LAYERSERIES_COMPAT_meta-pipewire = "dunfell"
+
+BBFILES_DYNAMIC += " \
+ app-framework:${LAYERDIR}/dynamic-layers/meta-app-framework/*/*/*.bb \
+ app-framework:${LAYERDIR}/dynamic-layers/meta-app-framework/*/*/*.bbappend \
+"
diff --git a/meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb
index 2a8261195..2a8261195 100644
--- a/meta-pipewire/recipes-multimedia/agl-service-audiomixer/agl-service-audiomixer_git.bb
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb
diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend
new file mode 100644
index 000000000..d87bd581e
--- /dev/null
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend
@@ -0,0 +1,4 @@
+RDEPENDS_${PN} += " \
+ agl-service-audiomixer \
+ bluez-alsa-pipewire \
+ "
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
index 9b44cee01..9b44cee01 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/client.env
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
index 6c055bcff..6c055bcff 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/pipewire.conf.in
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
index c74b941d6..c74b941d6 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl/server.env
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
index a28c6534e..a28c6534e 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire-conf-agl_git.bb
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service
index e116dc1fa..e116dc1fa 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.service
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.service
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket
index 10cb32276..10cb32276 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/pipewire@.socket
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/pipewire@.socket
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire
index 8d5b541ff..8d5b541ff 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/smack-pipewire
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/smack-pipewire
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend
index 8a0b0741f..8c9abf23e 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_git.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_git.bbappend
@@ -1,4 +1,6 @@
-SRC_URI += "\
+FILESEXTRAPATHS_prepend := "${THISDIR}/pipewire:"
+
+SRC_URI_append= "\
file://pipewire@.service \
file://pipewire@.socket \
file://smack-pipewire \
@@ -24,7 +26,7 @@ do_install_append() {
fi
}
-FILES_${PN} += "\
+FILES_${PN}_append = "\
${systemd_system_unitdir}/* \
${sysconfdir}/smack/accesses.d/* \
"
diff --git a/meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend
index 9395c90c7..ccb6c4137 100644
--- a/meta-pipewire/recipes-security/cynagora/cynagora_%.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend
@@ -1,4 +1,3 @@
-
do_install_append() {
echo "System::Pipewire * * http://tizen.org/privilege/internal/dbus yes forever" >> ${D}${sysconfdir}/security/cynagora.initial
}
diff --git a/meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
index 594494463..47c9b9149 100644
--- a/meta-pipewire/recipes-security/security-manager/security-manager_%.bbappend
+++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend
@@ -1,4 +1,3 @@
-
do_install_append() {
echo "~APP~ System::Pipewire rw" >> ${D}${datadir}/security-manager/policy/app-rules-template.smack
}
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch
deleted file mode 100644
index 6c9a388c8..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/0001-utils-add-a-gstreamer-helper-application-for-interco.patch
+++ /dev/null
@@ -1,517 +0,0 @@
-From f2e6a0a324106b40195f88953e55a355875d2b1b Mon Sep 17 00:00:00 2001
-From: George Kiagiadakis <george.kiagiadakis@collabora.com>
-Date: Fri, 4 Oct 2019 20:51:24 +0300
-Subject: [PATCH] utils: add a gstreamer helper application for interconnection
- with pipewire
-
-Unfortunately, the bluez-alsa PCM plugin does not work correctly
-when it is used through pipewire (or gstreamer, or anywhere really...).
-
-Thanfully, the bluez-alsa PCM plugin is only a simple client that
-reads/writes on a file descriptor that was opened by bluealsa.
-This allows us to use bluealsa without the PCM plugin, just like it
-is done in the aplay.c util.
-
-This one uses GStreamer to implement the plumbing between pipewire
-and the file descriptor. On the reading side we are also doing some
-tricks to ensure a smooth stream, which is not the case for the
-stream that is coming out of bluealsa.
-
-This helper is implemented as a patch to bluez-alsa so that it can
-use its internal private API. In the future this needs some re-thinking.
-
-Upstream-Status: Inappropriate
----
- configure.ac | 7 +
- utils/Makefile.am | 20 +++
- utils/gst-helper.c | 432 +++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 459 insertions(+)
- create mode 100644 utils/gst-helper.c
-
-diff --git a/configure.ac b/configure.ac
-index 4825afa..9125871 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -141,6 +141,13 @@ AM_COND_IF([ENABLE_HCITOP], [
- PKG_CHECK_MODULES([NCURSES], [ncurses])
- ])
-
-+AC_ARG_ENABLE([gsthelper],
-+ [AS_HELP_STRING([--enable-gsthelper], [enable building of gsthelper tool])])
-+AM_CONDITIONAL([ENABLE_GSTHELPER], [test "x$enable_gsthelper" = "xyes"])
-+AM_COND_IF([ENABLE_GSTHELPER], [
-+ PKG_CHECK_MODULES([GST], [gstreamer-1.0 glib-2.0])
-+])
-+
- AC_ARG_ENABLE([test],
- [AS_HELP_STRING([--enable-test], [enable unit test])])
- AM_CONDITIONAL([ENABLE_TEST], [test "x$enable_test" = "xyes"])
-diff --git a/utils/Makefile.am b/utils/Makefile.am
-index 9057f2c..9790474 100644
---- a/utils/Makefile.am
-+++ b/utils/Makefile.am
-@@ -47,3 +47,23 @@ hcitop_LDADD = \
- @LIBBSD_LIBS@ \
- @NCURSES_LIBS@
- endif
-+
-+if ENABLE_GSTHELPER
-+bin_PROGRAMS += bluealsa-gst-helper
-+bluealsa_gst_helper_SOURCES = \
-+ ../src/shared/dbus-client.c \
-+ ../src/shared/ffb.c \
-+ ../src/shared/log.c \
-+ gst-helper.c
-+bluealsa_gst_helper_CFLAGS = \
-+ -I$(top_srcdir)/src \
-+ @ALSA_CFLAGS@ \
-+ @BLUEZ_CFLAGS@ \
-+ @DBUS1_CFLAGS@ \
-+ @GST_CFLAGS@
-+bluealsa_gst_helper_LDADD = \
-+ @ALSA_LIBS@ \
-+ @BLUEZ_LIBS@ \
-+ @DBUS1_LIBS@ \
-+ @GST_LIBS@
-+endif
-diff --git a/utils/gst-helper.c b/utils/gst-helper.c
-new file mode 100644
-index 0000000..de1d47c
---- /dev/null
-+++ b/utils/gst-helper.c
-@@ -0,0 +1,432 @@
-+/* Bluez-Alsa PipeWire integration GStreamer helper
-+ *
-+ * Copyright © 2016-2019 Arkadiusz Bokowy
-+ * Copyright © 2019 Collabora Ltd.
-+ * @author George Kiagiadakis <george.kiagiadakis@collabora.com>
-+ *
-+ * SPDX-License-Identifier: MIT
-+ */
-+
-+#if HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <errno.h>
-+#include <getopt.h>
-+#include <poll.h>
-+#include <pthread.h>
-+#include <signal.h>
-+#include <stdbool.h>
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include <bluetooth/bluetooth.h>
-+#include <dbus/dbus.h>
-+#include <gst/gst.h>
-+
-+#include "shared/dbus-client.h"
-+#include "shared/defs.h"
-+#include "shared/ffb.h"
-+#include "shared/log.h"
-+
-+struct worker {
-+ /* used BlueALSA PCM device */
-+ struct ba_pcm ba_pcm;
-+ /* file descriptor of PCM FIFO */
-+ int ba_pcm_fd;
-+ /* file descriptor of PCM control */
-+ int ba_pcm_ctrl_fd;
-+ /* the gstreamer pipelines (sink & source) */
-+ GstElement *pipeline[2];
-+ /* the queue & pwaudiosink of the sink pipeline */
-+ GstElement *queue;
-+ GstElement *pwelem;
-+};
-+
-+static struct ba_dbus_ctx dbus_ctx;
-+static GHashTable *workers;
-+static bool main_loop_on = true;
-+
-+static void
-+main_loop_stop(int sig)
-+{
-+ /* Call to this handler restores the default action, so on the
-+ * second call the program will be forcefully terminated. */
-+
-+ struct sigaction sigact = { .sa_handler = SIG_DFL };
-+ sigaction(sig, &sigact, NULL);
-+
-+ main_loop_on = false;
-+}
-+
-+static GstBusSyncReply
-+bus_sync_handler(GstBus *bus, GstMessage *message, gpointer user_data)
-+{
-+ struct worker *w = user_data;
-+ GstState s;
-+
-+ switch (GST_MESSAGE_TYPE (message)) {
-+ case GST_MESSAGE_REQUEST_STATE:
-+ gst_message_parse_request_state (message, &s);
-+
-+ debug ("corked: %d", (s == GST_STATE_PAUSED));
-+
-+ /* drop queue data when corked */
-+ g_object_set (w->queue,
-+ "leaky", (s == GST_STATE_PAUSED) ? 2 /* downstream */ : 0 /* no */,
-+ NULL);
-+ gst_element_set_state (w->pwelem, s);
-+
-+ /* flush the queue when resuming */
-+ if (s == GST_STATE_PLAYING) {
-+ gst_element_send_event (w->queue, gst_event_new_flush_start ());
-+ gst_element_send_event (w->queue, gst_event_new_flush_stop (FALSE));
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ gst_message_unref (message);
-+ return GST_BUS_DROP;
-+}
-+
-+static int
-+worker_start_pipeline(struct worker *w, int id, int mode, int profile)
-+{
-+ GError *gerr = NULL;
-+ DBusError err = DBUS_ERROR_INIT;
-+ const gchar * role = NULL;
-+
-+ if (w->pipeline[id])
-+ return 0;
-+
-+ if (!bluealsa_dbus_pcm_open(&dbus_ctx, w->ba_pcm.pcm_path, mode,
-+ &w->ba_pcm_fd, &w->ba_pcm_ctrl_fd, &err)) {
-+ error("Couldn't open PCM: %s", err.message);
-+ dbus_error_free(&err);
-+ goto fail;
-+ }
-+
-+ if (mode == BA_PCM_FLAG_SINK) {
-+ debug("sink start");
-+ w->pipeline[id] = gst_parse_launch(
-+ /* add a silent live source to ensure a perfect live stream on the
-+ output, even when the bt device is not sending or has gaps;
-+ this also effectively changes the clock to be the system clock,
-+ which is the same clock used by bluez-alsa on the sending side */
-+ "audiotestsrc is-live=true wave=silence ! capsfilter name=capsf "
-+ "! audiomixer name=m "
-+ /* mix the input from bluez-alsa using fdsrc; rawaudioparse
-+ is necessary to convert bytes to time and align the buffers */
-+ "fdsrc name=fdelem do-timestamp=true ! capsfilter name=capsf2 "
-+ "! rawaudioparse use-sink-caps=true ! m. "
-+ /* take the mixer output, convert and push to pipewire */
-+ "m.src ! capsfilter name=capsf3 ! audioconvert ! audioresample "
-+ "! audio/x-raw,format=F32LE,rate=48000 ! identity sync=true "
-+ "! queue name=queue leaky=no max-size-time=0 max-size-buffers=0 max-size-bytes=192000 "
-+ "! pwaudiosink name=pwelem",
-+ &gerr);
-+
-+ /* a2dp is for music, sco is for calls */
-+ role = (profile == BA_PCM_FLAG_PROFILE_A2DP) ? "Multimedia" : "Communication";
-+ }
-+ else if (mode == BA_PCM_FLAG_SOURCE && profile == BA_PCM_FLAG_PROFILE_SCO) {
-+ debug("source start");
-+ w->pipeline[id] = gst_parse_launch(
-+ /* read from pipewire and put the buffers on a leaky queue, which
-+ will essentially allow pwaudiosrc to continue working while
-+ the fdsink is blocked (when there is no phone call in progress).
-+ 9600 bytes = 50ms @ F32LE/1ch/48000
-+ */
-+ "pwaudiosrc name=pwelem ! audio/x-raw,format=F32LE,rate=48000 "
-+ "! queue name=queue leaky=downstream max-size-time=0 max-size-buffers=0 max-size-bytes=9600 "
-+ "! audioconvert ! audioresample ! capsfilter name=capsf "
-+ "! fdsink name=fdelem", &gerr);
-+
-+ role = "Communication";
-+ }
-+
-+ if (gerr) {
-+ error("Failed to start pipeline: %s", gerr->message);
-+ g_error_free(gerr);
-+ goto fail;
-+ }
-+
-+ if (w->pipeline[id]) {
-+ g_autofree gchar *capsstr = NULL;
-+ g_autoptr (GstElement) fdelem = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "fdelem");
-+ g_autoptr (GstElement) pwelem = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "pwelem");
-+ g_autoptr (GstElement) queue = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "queue");
-+ g_autoptr (GstElement) capsf = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf");
-+ g_autoptr (GstElement) capsf2 = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf2");
-+ g_autoptr (GstElement) capsf3 = gst_bin_get_by_name(GST_BIN(w->pipeline[id]), "capsf3");
-+ g_autoptr (GstCaps) caps = gst_caps_new_simple("audio/x-raw",
-+ "format", G_TYPE_STRING, "S16LE",
-+ "layout", G_TYPE_STRING, "interleaved",
-+ "channels", G_TYPE_INT, w->ba_pcm.channels,
-+ "rate", G_TYPE_INT, w->ba_pcm.sampling,
-+ NULL);
-+ g_autoptr (GstStructure) stream_props = gst_structure_new("props",
-+ "media.role", G_TYPE_STRING, role,
-+ "bluealsa.profile", G_TYPE_STRING,
-+ (profile == BA_PCM_FLAG_PROFILE_SCO) ? "sco" : "a2dp",
-+ NULL);
-+
-+ g_object_set(capsf, "caps", caps, NULL);
-+ if (capsf2)
-+ g_object_set(capsf2, "caps", caps, NULL);
-+ if (capsf3)
-+ g_object_set(capsf3, "caps", caps, NULL);
-+
-+ capsstr = gst_caps_to_string (caps);
-+ debug(" caps: %s", capsstr);
-+
-+ g_object_set(fdelem, "fd", w->ba_pcm_fd, NULL);
-+ g_object_set(pwelem, "stream-properties", stream_props, NULL);
-+
-+ if (mode == BA_PCM_FLAG_SINK) {
-+ g_autoptr (GstBus) bus = gst_pipeline_get_bus(GST_PIPELINE(w->pipeline[id]));
-+ gst_bus_set_sync_handler(bus, bus_sync_handler, w, NULL);
-+ w->queue = queue;
-+ w->pwelem = pwelem;
-+ }
-+
-+ gst_element_set_state(w->pipeline[id], GST_STATE_PLAYING);
-+ }
-+
-+ return 0;
-+fail:
-+ g_clear_object(&w->pipeline[id]);
-+ return -1;
-+}
-+
-+static int
-+worker_start(struct worker *w)
-+{
-+ int mode = w->ba_pcm.flags & (BA_PCM_FLAG_SOURCE | BA_PCM_FLAG_SINK);
-+ int profile = w->ba_pcm.flags & (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO);
-+ /* human-readable BT address */
-+ char addr[18];
-+
-+ g_return_val_if_fail (profile != 0 && profile != (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO), -1);
-+
-+ ba2str(&w->ba_pcm.addr, addr);
-+ debug("%p: worker start addr:%s, mode:0x%x, profile:0x%x", w, addr, mode, profile);
-+
-+ if (mode & BA_PCM_FLAG_SINK)
-+ worker_start_pipeline(w, 0, BA_PCM_FLAG_SINK, profile);
-+ if (mode & BA_PCM_FLAG_SOURCE)
-+ worker_start_pipeline(w, 1, BA_PCM_FLAG_SOURCE, profile);
-+}
-+
-+static int
-+worker_stop(struct worker *w)
-+{
-+ debug("stop worker %p", w);
-+ if (w->pipeline[0]) {
-+ gst_element_set_state(w->pipeline[0], GST_STATE_NULL);
-+ g_clear_object(&w->pipeline[0]);
-+ }
-+ if (w->pipeline[1]) {
-+ gst_element_set_state(w->pipeline[1], GST_STATE_NULL);
-+ g_clear_object(&w->pipeline[1]);
-+ }
-+ if (w->ba_pcm_fd != -1) {
-+ close(w->ba_pcm_fd);
-+ w->ba_pcm_fd = -1;
-+ }
-+ if (w->ba_pcm_ctrl_fd != -1) {
-+ close(w->ba_pcm_ctrl_fd);
-+ w->ba_pcm_ctrl_fd = -1;
-+ }
-+ return 0;
-+}
-+
-+static int
-+supervise_pcm_worker(struct worker *worker)
-+{
-+ if (worker == NULL)
-+ return -1;
-+
-+ /* no mode? */
-+ if (worker->ba_pcm.flags & (BA_PCM_FLAG_SOURCE | BA_PCM_FLAG_SINK) == 0)
-+ goto stop;
-+
-+ /* no profile? */
-+ if (worker->ba_pcm.flags & (BA_PCM_FLAG_PROFILE_A2DP | BA_PCM_FLAG_PROFILE_SCO) == 0)
-+ goto stop;
-+
-+ /* check whether SCO has selected codec */
-+ if (worker->ba_pcm.flags & BA_PCM_FLAG_PROFILE_SCO &&
-+ worker->ba_pcm.codec == 0) {
-+ debug("Skipping SCO with codec not selected");
-+ goto stop;
-+ }
-+
-+start:
-+ return worker_start(worker);
-+stop:
-+ return worker_stop(worker);
-+}
-+
-+static void
-+worker_new(struct ba_pcm *pcm)
-+{
-+ struct worker *w = g_slice_new0 (struct worker);
-+ memcpy(&w->ba_pcm, pcm, sizeof(struct ba_pcm));
-+ w->ba_pcm_fd = -1;
-+ w->ba_pcm_ctrl_fd = -1;
-+ g_hash_table_insert(workers, w->ba_pcm.pcm_path, w);
-+ supervise_pcm_worker(w);
-+}
-+
-+static DBusHandlerResult
-+dbus_signal_handler(DBusConnection *conn, DBusMessage *message, void *data)
-+{
-+ (void)conn;
-+ (void)data;
-+
-+ const char *path = dbus_message_get_path(message);
-+ const char *interface = dbus_message_get_interface(message);
-+ const char *signal = dbus_message_get_member(message);
-+
-+ DBusMessageIter iter;
-+ struct worker *worker;
-+
-+ if (strcmp(interface, BLUEALSA_INTERFACE_MANAGER) == 0) {
-+
-+ if (strcmp(signal, "PCMAdded") == 0) {
-+ struct ba_pcm pcm;
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ !bluealsa_dbus_message_iter_get_pcm(&iter, NULL, &pcm)) {
-+ error("Couldn't add new PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ worker_new(&pcm);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+ if (strcmp(signal, "PCMRemoved") == 0) {
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_OBJECT_PATH) {
-+ error("Couldn't remove PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ dbus_message_iter_get_basic(&iter, &path);
-+ g_hash_table_remove(workers, path);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+ }
-+
-+ if (strcmp(interface, DBUS_INTERFACE_PROPERTIES) == 0) {
-+ worker = g_hash_table_lookup(workers, path);
-+ if (!worker)
-+ goto fail;
-+ if (!dbus_message_iter_init(message, &iter) ||
-+ dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) {
-+ error("Couldn't update PCM: %s", "Invalid signal signature");
-+ goto fail;
-+ }
-+ dbus_message_iter_get_basic(&iter, &interface);
-+ dbus_message_iter_next(&iter);
-+ if (!bluealsa_dbus_message_iter_get_pcm_props(&iter, NULL, &worker->ba_pcm))
-+ goto fail;
-+ supervise_pcm_worker(worker);
-+ return DBUS_HANDLER_RESULT_HANDLED;
-+ }
-+
-+fail:
-+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-+}
-+
-+static void
-+destroy_worker(void *worker)
-+{
-+ struct worker *w = worker;
-+ worker_stop(w);
-+ g_slice_free(struct worker, w);
-+}
-+
-+int
-+main(int argc, char *argv[])
-+{
-+ int ret = EXIT_SUCCESS;
-+
-+ log_open(argv[0], false, false);
-+ gst_init(&argc, &argv);
-+ dbus_threads_init_default();
-+
-+ DBusError err = DBUS_ERROR_INIT;
-+ if (!bluealsa_dbus_connection_ctx_init(&dbus_ctx, BLUEALSA_SERVICE, &err)) {
-+ error("Couldn't initialize D-Bus context: %s", err.message);
-+ return EXIT_FAILURE;
-+ }
-+
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, BLUEALSA_INTERFACE_MANAGER, "PCMAdded", NULL);
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, BLUEALSA_INTERFACE_MANAGER, "PCMRemoved", NULL);
-+ bluealsa_dbus_connection_signal_match_add(&dbus_ctx,
-+ BLUEALSA_SERVICE, NULL, DBUS_INTERFACE_PROPERTIES, "PropertiesChanged",
-+ "arg0='"BLUEALSA_INTERFACE_PCM"'");
-+
-+ if (!dbus_connection_add_filter(dbus_ctx.conn, dbus_signal_handler, NULL, NULL)) {
-+ error("Couldn't add D-Bus filter: %s", err.message);
-+ return EXIT_FAILURE;
-+ }
-+
-+ workers = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, destroy_worker);
-+
-+ {
-+ struct ba_pcm *pcms = NULL;
-+ size_t pcms_count = 0, i;
-+
-+ if (!bluealsa_dbus_get_pcms(&dbus_ctx, &pcms, &pcms_count, &err))
-+ warn("Couldn't get BlueALSA PCM list: %s", err.message);
-+
-+ for (i = 0; i < pcms_count; i++) {
-+ worker_new(&pcms[i]);
-+ }
-+
-+ free(pcms);
-+ }
-+
-+ struct sigaction sigact = { .sa_handler = main_loop_stop };
-+ sigaction(SIGTERM, &sigact, NULL);
-+ sigaction(SIGINT, &sigact, NULL);
-+
-+ /* Ignore SIGPIPE, which may be received when writing to the bluealsa
-+ socket when it is closed on the remote end */
-+ signal(SIGPIPE, SIG_IGN);
-+
-+ debug("Starting main loop");
-+ while (main_loop_on) {
-+
-+ struct pollfd pfds[10];
-+ nfds_t pfds_len = ARRAYSIZE(pfds);
-+
-+ if (!bluealsa_dbus_connection_poll_fds(&dbus_ctx, pfds, &pfds_len)) {
-+ error("Couldn't get D-Bus connection file descriptors");
-+ ret = EXIT_FAILURE;
-+ goto out;
-+ }
-+
-+ if (poll(pfds, pfds_len, -1) == -1 &&
-+ errno == EINTR)
-+ continue;
-+
-+ if (bluealsa_dbus_connection_poll_dispatch(&dbus_ctx, pfds, pfds_len))
-+ while (dbus_connection_dispatch(dbus_ctx.conn) == DBUS_DISPATCH_DATA_REMAINS)
-+ continue;
-+
-+ }
-+
-+out:
-+ g_hash_table_unref(workers);
-+ return ret;
-+}
---
-2.24.0
-
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service
deleted file mode 100644
index 495ab6222..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa/bluealsa-gst-helper@.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Bluetooth audio helper for user %i
-Requires=pipewire@%i.socket bluez-alsa.service
-After=pipewire@%i.socket bluez-alsa.service
-
-[Service]
-Type=simple
-Restart=on-failure
-ExecStart=/usr/bin/bluealsa-gst-helper
-
-Environment=XDG_RUNTIME_DIR=/run/user/%i
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
-
-User=%i
-Slice=user-%i.slice
-SupplementaryGroups=audio
-UMask=0077
-CapabilityBoundingSet=
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
deleted file mode 100644
index 2f9699a83..000000000
--- a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
+++ /dev/null
@@ -1,35 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "\
- file://0001-utils-add-a-gstreamer-helper-application-for-interco.patch \
- file://bluealsa-gst-helper@.service \
- "
-
-PACKAGECONFIG += "gsthelper"
-PACKAGECONFIG[gsthelper] = "--enable-gsthelper, --disable-gsthelper, gstreamer1.0"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- # install the service file
- mkdir -p ${D}${systemd_system_unitdir}/
- install -m 0644 ${WORKDIR}/bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/bluealsa-gst-helper@.service
-
- # enable the helper to start together with afm-user-session
- mkdir -p ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
- ln -sf ../bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service
- fi
-}
-
-PACKAGES =+ "${PN}-pipewire"
-
-FILES_${PN}-pipewire = "\
- ${bindir}/bluealsa-gst-helper \
- ${systemd_system_unitdir}/bluealsa-gst-helper@.service \
- ${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service \
- "
-RDEPENDS_${PN}-pipewire += "\
- bluez-alsa \
- pipewire \
- gstreamer1.0-plugins-base \
- gstreamer1.0-pipewire \
- "
diff --git a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
index 4020f1e24..a20f8a4f7 100644
--- a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
+++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
@@ -9,9 +9,7 @@ PACKAGES = "\
"
RDEPENDS_${PN} += "\
- agl-service-audiomixer \
pipewire \
pipewire-alsa \
gstreamer1.0-pipewire \
- bluez-alsa-pipewire \
"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
index 4405f7b7a..afc4303eb 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
@@ -3,7 +3,6 @@ priority = 30
properties = [
{ name = "media.class", value = "Audio/Sink" },
{ name = "api.alsa.card.id", value = "ak4613" },
- { name = "api.alsa.pcm.device", value = "0" },
]
[endpoint]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
index 0c7b20805..53f9d0df7 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
@@ -3,7 +3,6 @@ priority = 30
properties = [
{ name = "media.class", value = "Audio/Sink" },
{ name = "api.alsa.card.id", value = "rcarsound" },
- { name = "api.alsa.pcm.device", value = "0" },
]
[endpoint]
diff --git a/meta-pipewire/scripts/run-yocto-check-layer.sh b/meta-pipewire/scripts/run-yocto-check-layer.sh
new file mode 100755
index 000000000..15b4de0e1
--- /dev/null
+++ b/meta-pipewire/scripts/run-yocto-check-layer.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+#set -x
+
+SCRIPTPATH="$( cd $(dirname $0) >/dev/null 2>&1 ; pwd -P )"
+echo $SCRIPTPATH
+AGLROOT="$SCRIPTPATH/../../.."
+POKYDIR="$AGLROOT/external/poky"
+TMPROOT=`mktemp -d`
+
+rm -rf ${TMPROOT}/testbuild-ycl || true
+mkdir -p ${TMPROOT}/testbuild-ycl
+cd ${TMPROOT}/testbuild-ycl
+
+source $POKYDIR/oe-init-build-env .
+
+cat << EOF >> conf/local.conf
+# just define defaults
+AGL_FEATURES ?= ""
+AGL_EXTRA_IMAGE_FSTYPES ?= ""
+
+# important settings imported from poky-agl.conf
+# we do not import
+DISTRO_FEATURES_append = " systemd smack"
+DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit"
+VIRTUAL-RUNTIME_init_manager = "systemd"
+
+EOF
+
+
+yocto-check-layer \
+ -- \
+ $AGLROOT/meta-agl/meta-pipewire
+
+
+[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
diff --git a/meta-security/COPYING.MIT b/meta-security/COPYING.MIT
deleted file mode 100644
index 89de35479..000000000
--- a/meta-security/COPYING.MIT
+++ /dev/null
@@ -1,17 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/meta-security/README.md b/meta-security/README.md
deleted file mode 100644
index 6a8024bc6..000000000
--- a/meta-security/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-This README file contains information on the contents of the
-meta-security layer.
-
-Please see the corresponding sections below for details.
-
-
-Dependencies
-============
-
-This layer depends on:
-
- URI: git://git.openembedded.org/bitbake
- branch: master
-
- URI: git://git.openembedded.org/openembedded-core
- layers: meta
- branch: master
-
- URI: git://git.yoctoproject.org/meta-security
- branch: master
-
-
-Patches
-=======
-
-Please submit any patches against the meta-security layer via gerrit
-reviews.
-
-For discussion use the discussion mailing list
-https://lists.automotivelinux.org/g/agl-dev-community
-
diff --git a/meta-security/conf/layer.conf b/meta-security/conf/layer.conf
deleted file mode 100644
index 6024d2847..000000000
--- a/meta-security/conf/layer.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-# We have a conf and classes directory, add to BBPATH
-BBPATH =. "${LAYERDIR}:"
-
-# We have a packages directory, add to BBFILES
-BBFILES += " ${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend \
- "
-
-# Must prioritize our rpm recipe over the default ones.
-BBFILE_COLLECTIONS += "security-smack"
-BBFILE_PATTERN_security-smack := "^${LAYERDIR}/"
-BBFILE_PRIORITY_security-smack = "60"
-
-LAYERSERIES_COMPAT_security-smack = "dunfell"
diff --git a/meta-security/recipes-kernel/linux/linux/audit.cfg b/meta-security/recipes-kernel/linux/linux/audit.cfg
deleted file mode 100644
index 214dbe33f..000000000
--- a/meta-security/recipes-kernel/linux/linux/audit.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
diff --git a/meta-security/recipes-security/smacknet/files/smacknet b/meta-security/recipes-security/smacknet/files/smacknet
deleted file mode 100644
index 3818d30ae..000000000
--- a/meta-security/recipes-security/smacknet/files/smacknet
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2012, 2013, Intel Corporation
-# Copyright (c) 2009 David Wolinsky <davidiw@ufl.edu), University of Florida
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import socket,fcntl, struct, thread
-import os.path
-import sys
-
-SMACKFS_LOAD="/sys/fs/smackfs/load2"
-SMACKFS_NETLABEL="/sys/fs/smackfs/netlabel"
-SIOCGIFADDR = 0x8915
-SIOCGIFNETMASK = 0x891b
-
-def get_ip_address(ifname):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return fcntl.ioctl(s.fileno(), SIOCGIFADDR,
- struct.pack('256s', ifname.encode("utf-8")))[20:24]
-
-def get_netmask(ifname):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- return fcntl.ioctl(s.fileno(), SIOCGIFNETMASK,
- struct.pack('256s', ifname.encode("utf-8")))[20:24]
-
-def applynetlabeltags(interface, addr):
- if not interface.startswith("lo"):
- bmask = get_netmask(interface.encode("utf-8"))
- prefix = bin(struct.unpack(">L", bmask)[0]).count("1")
- tags = [
- addr+"/"+str(prefix)+" Network::Local\n",
- "0.0.0.0/0 Network::Cloud\n",
- "127.0.0.1/8 -CIPSO\n"]
- smackfs_netlabel(tags)
-
-def loadnetlabelrules():
- rulesSystem = [
- "System Network::Cloud w\n",
- "System Network::Local w\n",
- "Network::Cloud System w\n",
- "Network::Local System w\n"]
- smackfs_load2(rulesSystem)
-
-def smackfs_load2 (rules):
- with open(SMACKFS_LOAD, "w") as load2:
- for rule in rules:
- load2.write(rule)
-
-def smackfs_netlabel (tags):
- for tag in tags:
- with open(SMACKFS_NETLABEL, "w") as netlabel:
- netlabel.write(tag)
-
-"""
- Source of: Class ip monitor, and other functions named bellow.
- Original author: David Wolinsky <davidiw@ufl.edu
- Copied from: https://github.com/davidiw/Grid-Appliance/blob/master/scripts/ip_monitor.py
-
-"""
-
-"""4 byte alignment"""
-
-def align(inc):
- diff = inc % 4
- return inc + ((4 - diff) % 4)
-
-class ifaddr:
- """Parse an ifaddr packet"""
- LOCAL = 2
- LABEL = 3
-
- def __init__(self, packet):
- self.family, self.prefixlen, self.flags, self.scope, self.index = \
- struct.unpack("BBBBI", packet[:8])
-
-class rtattr:
- """Parse a rtattr packet"""
- GRP_IPV4_IFADDR = 0x10
-
- NEWADDR = 20
- DELADDR = 21
- GETADDR = 22
-
- def __init__(self, packet):
- self.len, self.type = struct.unpack("HH", packet[:4])
- if self.type == ifaddr.LOCAL:
- addr = struct.unpack("BBBB", packet[4:self.len])
- self.payload = "%s.%s.%s.%s" % (addr[0], addr[1], addr[2], addr[3])
- elif self.type == ifaddr.LABEL:
- self.payload = packet[4:self.len].strip("\0")
- else:
- self.payload = packet[4:self.len]
-
-class netlink:
- """Parse a netlink packet"""
- REQUEST = 1
- ROOT = 0x100
- MATCH = 0x200
- DONE = 3
-
- def __init__(self, packet):
- self.msglen, self.msgtype, self.flags, self.seq, self.pid = \
- struct.unpack("IHHII", packet[:16])
- self.ifa = None
- try:
- self.ifa = ifaddr(packet[16:24])
- except:
- return
-
- self.rtas = {}
- pos = 24
- while pos < self.msglen:
- try:
- rta = rtattr(packet[pos:])
- except:
- break
- pos += align(rta.len)
- self.rtas[rta.type] = rta.payload
-
-class ip_monitor:
- def __init__(self, callback = None):
- if callback == None:
- callback = self.print_cb
- self._callback = callback
-
- def print_cb(self, label, addr):
- print (label + " => " + addr)
-
- def request_addrs(self, sock):
- sock.send(struct.pack("IHHIIBBBBI", 24, rtattr.GETADDR, \
- netlink.REQUEST | netlink.ROOT | netlink.MATCH, 0, sock.getsockname()[0], \
- socket.AF_INET, 0, 0, 0, 0))
-
- def start_thread(self):
- thread.start_new_thread(self.run, ())
-
- def run(self):
- sock = socket.socket(socket.AF_NETLINK, socket.SOCK_RAW, socket.NETLINK_ROUTE)
- sock.bind((0, rtattr.GRP_IPV4_IFADDR))
- self.request_addrs(sock)
-
- while True:
- data = sock.recv(4096)
- pos = 0
- while pos < len(data):
- nl = netlink(data[pos:])
- if nl.msgtype == netlink.DONE:
- break
- pos += align(nl.msglen)
- if nl.msgtype != rtattr.NEWADDR:
- continue
- self._callback(nl.rtas[ifaddr.LABEL], nl.rtas[ifaddr.LOCAL])
-
-def main():
- if not os.path.isfile(SMACKFS_LOAD):
- print ("Smack not found.")
- return -1
- loadnetlabelrules()
-
- ip_monitor(applynetlabeltags).run()
-
-if __name__ == "__main__":
- main()
diff --git a/meta-security/recipes-security/smacknet/files/smacknet.service b/meta-security/recipes-security/smacknet/files/smacknet.service
deleted file mode 100644
index 218d8b896..000000000
--- a/meta-security/recipes-security/smacknet/files/smacknet.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=netlabels configuration for SMACK
-Wants=network.target network-online.target
-After=network.target network-online.target
-
-[Service]
-TimeoutStartSec=0
-ExecStart=@BINDIR@/smacknet
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-security/recipes-security/smacknet/smacknet.bb b/meta-security/recipes-security/smacknet/smacknet.bb
deleted file mode 100644
index 250cdb132..000000000
--- a/meta-security/recipes-security/smacknet/smacknet.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-#SMACKNET Description
-SUMMARY = "Smack network labels configuration"
-DESCRIPTION = "Provide service that will be labeling the network rules"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-RDEPENDS_${PN} = "python"
-
-SRC_URI += "file://smacknet \
- file://smacknet.service \
- "
-S = "${WORKDIR}"
-
-inherit systemd
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "smack"
-
-#netlabel configuration service
-SYSTEMD_SERVICE_${PN} = "smacknet.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-do_install(){
- install -d ${D}${bindir}
- install -m 0551 ${WORKDIR}/smacknet ${D}${bindir}
-
- install -d -m 755 ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/smacknet.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/smacknet.service
-}
-
diff --git a/scripts/README-mkefi-agl.md b/scripts/README-mkefi-agl.md
deleted file mode 100644
index 2262fb129..000000000
--- a/scripts/README-mkefi-agl.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Introduction
-
-This script will install the AGL distribution on a removable device to boot on Intel UEFI-based computer.
-
-In particular it can create a USB or SD bootable support for [MinnowBoard](www.minnowboard.org).
-
-Usage: mkefi-agl.sh [-v] IDSK_IMAGE REMOVABLE_DEVICE
- -v: Verbose debug
- HDDIMG: The DISK_IMAGE file generated by Yocto the efi disk from
- Supported formats are .hddimg, .wic .wic.xz
- REMOVABLE_DEVICE: The block device to write the image to, e.g. /dev/sdh
-ex:
- mkefi-agl.sh agl-demo-platform-intel-corei7-64.hddimg /dev/sdd
- mkefi-agl.sh agl-demo-platform-intel-corei7-64.wic.xz /dev/sdd
-
-## Documentation
-
-[Additional documentation](https://wiki.automotivelinux.org/agl-distro/developer_resources_intel)
diff --git a/templates/base/00_local.conf.agl.inc b/templates/base/00_local.conf.agl.inc
index b49c44df6..d55cbef4b 100644
--- a/templates/base/00_local.conf.agl.inc
+++ b/templates/base/00_local.conf.agl.inc
@@ -6,6 +6,3 @@ DISTRO = "poky-agl"
#see meta-agl/meta-agl-profile-core/conf/include/base-agl.inc
require conf/include/base-agl.inc
-
-#see meta-agl/meta-app-framework/conf/include/agl-appfw-smack.inc
-require conf/include/agl-appfw-smack.inc
diff --git a/templates/base/99_local.conf.inc b/templates/base/99_local.conf.inc
index c4f43998b..bbf1b2afa 100644
--- a/templates/base/99_local.conf.inc
+++ b/templates/base/99_local.conf.inc
@@ -4,7 +4,7 @@
# ARM 32bit 'medium' compiler (armv7thf instead of armv7ve)
# (only use for CPUs <= cortex-a9 / w/o virt extension - e.g. cortex-a8)
-# DISTRO_FEATURES_append = " agl-medium-arm-compiler"
+# AGL_FEATURES_append = " agl-medium-arm-compiler"
######################
diff --git a/templates/base/bblayers.conf.sample b/templates/base/bblayers.conf.sample
index 653f6dbe8..0dd28da03 100644
--- a/templates/base/bblayers.conf.sample
+++ b/templates/base/bblayers.conf.sample
@@ -24,27 +24,15 @@ YOCTO_LAYERS = " \
# with some automotive tools/libraries
#-----------------------------------------------------
AGL_CORE_LAYERS = " \
- ${METADIR}/meta-agl/meta-agl-profile-core \
- ${METADIR}/meta-agl/meta-agl-distro \
+ ${METADIR}/meta-agl/meta-agl-core \
+ ${METADIR}/meta-agl/meta-agl-core-test \
${METADIR}/meta-agl/meta-agl-bsp \
"
-AGL_APPFW_LAYERS = " \
- ${METADIR}/external/meta-security \
- ${METADIR}/external/meta-openembedded/meta-perl \
- ${METADIR}/meta-agl/meta-security \
- ${METADIR}/meta-agl/meta-app-framework \
- "
-
-
# These are the direct dependencies of the AGL CORE Layers
#---------------------------------------------------------
AGL_CORE_DEPENDENCY_LAYERS = " \
${METADIR}/external/meta-openembedded/meta-oe \
- ${METADIR}/external/meta-openembedded/meta-multimedia \
- ${METADIR}/external/meta-openembedded/meta-networking \
- ${METADIR}/external/meta-openembedded/meta-python \
- ${METADIR}/external/meta-openembedded/meta-filesystems \
"
####################
@@ -52,15 +40,13 @@ AGL_CORE_DEPENDENCY_LAYERS = " \
BBLAYERS ?= " \
${AGL_CORE_DEPENDENCY_LAYERS} \
${AGL_CORE_LAYERS} \
- ${AGL_APPFW_LAYERS} \
${YOCTO_LAYERS} \
"
BBLAYERS_NON_REMOVABLE ?= " \
${METADIR}/external/poky/meta \
${METADIR}/external/poky/meta-poky \
- ${METADIR}/meta-agl/meta-agl-profile-core \
- ${METADIR}/meta-agl/meta-agl-distro \
+ ${METADIR}/meta-agl/meta-agl-core \
"
diff --git a/templates/feature/agl-appfw-smack/50_bblayers.conf.inc b/templates/feature/agl-appfw-smack/50_bblayers.conf.inc
new file mode 100644
index 000000000..5f6847a87
--- /dev/null
+++ b/templates/feature/agl-appfw-smack/50_bblayers.conf.inc
@@ -0,0 +1,9 @@
+AGL_APPFW_LAYERS = " \
+ ${METADIR}/external/meta-security \
+ ${METADIR}/external/meta-openembedded/meta-python \
+ ${METADIR}/external/meta-openembedded/meta-networking \
+ ${METADIR}/external/meta-openembedded/meta-perl \
+ ${METADIR}/meta-agl/meta-app-framework \
+ "
+
+BBLAYERS =+ "${AGL_APPFW_LAYERS}" \ No newline at end of file
diff --git a/templates/feature/agl-appfw-smack/50_local.conf.inc b/templates/feature/agl-appfw-smack/50_local.conf.inc
index e69de29bb..8282a1cae 100644
--- a/templates/feature/agl-appfw-smack/50_local.conf.inc
+++ b/templates/feature/agl-appfw-smack/50_local.conf.inc
@@ -0,0 +1 @@
+require conf/include/agl-appfw-smack.inc
diff --git a/templates/feature/agl-hmi-framework/50_local.conf.inc b/templates/feature/agl-hmi-framework/50_local.conf.inc
index d251e183d..21fdf3abf 100644
--- a/templates/feature/agl-hmi-framework/50_local.conf.inc
+++ b/templates/feature/agl-hmi-framework/50_local.conf.inc
@@ -1,4 +1,4 @@
# In order to enable the hmi-framework features ,
# enables the following line:
#
-DISTRO_FEATURES_append = " agl-hmi-framework"
+AGL_FEATURES_append = " agl-hmi-framework"
diff --git a/templates/feature/agl-localdev/80_bblayers.conf.inc b/templates/feature/agl-localdev/80_bblayers.conf.inc
new file mode 100644
index 000000000..d9bb9d070
--- /dev/null
+++ b/templates/feature/agl-localdev/80_bblayers.conf.inc
@@ -0,0 +1,3 @@
+# Local derivations during development, just add a layer in the folder meta-localdev
+BBLAYERS =+ "${@'${METADIR}/meta-localdev' if os.path.exists('${METADIR}/meta-localdev') else ''}"
+
diff --git a/templates/feature/agl-localdev/80_local.conf.inc b/templates/feature/agl-localdev/80_local.conf.inc
new file mode 100644
index 000000000..6c9213512
--- /dev/null
+++ b/templates/feature/agl-localdev/80_local.conf.inc
@@ -0,0 +1,2 @@
+# (weak) include userspecific local.dev.inc
+include local.dev.inc
diff --git a/templates/feature/agl-localdev/README_feature_agl-localdev.md b/templates/feature/agl-localdev/README_feature_agl-localdev.md
new file mode 100644
index 000000000..111ae4ec0
--- /dev/null
+++ b/templates/feature/agl-localdev/README_feature_agl-localdev.md
@@ -0,0 +1,9 @@
+---
+description: enable local layer for development purposes
+authors: Stéphane Desneux <stephane.desneux@iot.bzh>
+---
+
+### Feature agl-localdev
+
+Adds a local layer named "meta-localdev" in meta directory and a local.dev.inc conf file if present.
+
diff --git a/templates/feature/agl-netboot/50_bblayers.conf.inc b/templates/feature/agl-netboot/50_bblayers.conf.inc
index 3d2ed6460..80ace82d4 100644
--- a/templates/feature/agl-netboot/50_bblayers.conf.inc
+++ b/templates/feature/agl-netboot/50_bblayers.conf.inc
@@ -1 +1,2 @@
-BBLAYERS =+ "${METADIR}/meta-agl/meta-netboot"
+BBLAYERS =+ " ${METADIR}/meta-agl/meta-netboot \
+ "
diff --git a/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc b/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc
deleted file mode 100644
index f1aef074d..000000000
--- a/templates/feature/agl-profile-cluster-qt5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-cluster-qt5 \
-"
diff --git a/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md b/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md
deleted file mode 100644
index 095a8db18..000000000
--- a/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-cluster-qt5
-authors: Scott Murray <scott.murray@konsulko.com>
----
-
-### Feature agl-profile-cluster-qt5
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-cluster-qt5/README_feature_agl-profile-cluster-qt5.md*
-
-#### Dependent features pulled by agl-profile-cluster-qt5
-
-The following features are pulled:
-
-* agl-profile-graphical-qt5
-
diff --git a/templates/feature/agl-profile-cluster-qt5/included.dep b/templates/feature/agl-profile-cluster-qt5/included.dep
deleted file mode 100644
index 21b1fa6bc..000000000
--- a/templates/feature/agl-profile-cluster-qt5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical-qt5
diff --git a/templates/feature/agl-profile-cluster/50_bblayers.conf.inc b/templates/feature/agl-profile-cluster/50_bblayers.conf.inc
deleted file mode 100644
index b430dc7db..000000000
--- a/templates/feature/agl-profile-cluster/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-cluster \
-"
diff --git a/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md b/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md
deleted file mode 100644
index 544dc7c8e..000000000
--- a/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-cluster
-authors: Scott Murray <scott.murray@konsulko.com>
----
-
-### Feature agl-profile-cluster
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-cluster/README_feature_agl-profile-cluster.md*
-
-#### Dependent features pulled by agl-profile-cluster
-
-The following features are pulled:
-
-* agl-profile-graphical
-
diff --git a/templates/feature/agl-profile-cluster/included.dep b/templates/feature/agl-profile-cluster/included.dep
deleted file mode 100644
index 032609b8a..000000000
--- a/templates/feature/agl-profile-cluster/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical
diff --git a/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc
deleted file mode 100644
index a35f93fb5..000000000
--- a/templates/feature/agl-profile-graphical-html5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical-html5 \
- ${METADIR}/external/meta-python2 \
- "
-
diff --git a/templates/feature/agl-profile-graphical-html5/50_local.conf.inc b/templates/feature/agl-profile-graphical-html5/50_local.conf.inc
deleted file mode 100644
index 0b2d70028..000000000
--- a/templates/feature/agl-profile-graphical-html5/50_local.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-IMAGE_INSTALL_append = " packagegroup-agl-profile-graphical-html5"
-
diff --git a/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md b/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md
deleted file mode 100644
index dc00f94c2..000000000
--- a/templates/feature/agl-profile-graphical-html5/README_feature_agl-profile-graphical-html5.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-description: Feature agl-profile-graphical-html5
-authors: Jacobo Aragunde Pérez <jaragunde@igalia.com>
----
-
-### Feature agl-profile-graphical-html5
-
-Packages required to run web applications in AGL. The provided image agl-image-graphical-html5 includes the minimum set of packages required for this purpose.
diff --git a/templates/feature/agl-profile-graphical-html5/included.dep b/templates/feature/agl-profile-graphical-html5/included.dep
deleted file mode 100644
index 032609b8a..000000000
--- a/templates/feature/agl-profile-graphical-html5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical
diff --git a/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc
deleted file mode 100644
index 960267908..000000000
--- a/templates/feature/agl-profile-graphical-qt5/50_bblayers.conf.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical-qt5 \
-"
-
-# These are the dependencies
-#---------------------------
-BBLAYERS =+ " \
- ${METADIR}/external/meta-qt5 \
-"
diff --git a/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md b/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md
deleted file mode 100644
index 387de2ca4..000000000
--- a/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: Feature agl-profile-graphical-qt5
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-graphical-qt5
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-graphical-qt5/README_feature_agl-profile-graphical-qt5.md*
-
-#### Dependent features pulled by agl-profile-graphical-qt5
-
-The following features are pulled:
-
-* agl-profile-graphical
-
diff --git a/templates/feature/agl-profile-graphical-qt5/included.dep b/templates/feature/agl-profile-graphical-qt5/included.dep
deleted file mode 100644
index 5b54430da..000000000
--- a/templates/feature/agl-profile-graphical-qt5/included.dep
+++ /dev/null
@@ -1 +0,0 @@
-agl-profile-graphical \ No newline at end of file
diff --git a/templates/feature/agl-profile-graphical/50_bblayers.conf.inc b/templates/feature/agl-profile-graphical/50_bblayers.conf.inc
deleted file mode 100644
index 44b0885dc..000000000
--- a/templates/feature/agl-profile-graphical/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-graphical \
-"
diff --git a/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md b/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md
deleted file mode 100644
index 594d047e7..000000000
--- a/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-graphical
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-graphical
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-graphical/README_feature_agl-profile-graphical.md*
-
diff --git a/templates/feature/agl-profile-hud/50_bblayers.conf.inc b/templates/feature/agl-profile-hud/50_bblayers.conf.inc
deleted file mode 100644
index 047383710..000000000
--- a/templates/feature/agl-profile-hud/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-hud \
-"
diff --git a/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md b/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md
deleted file mode 100644
index b4387c129..000000000
--- a/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-hud
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-hud
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-hud/README_feature_agl-profile-hud.md*
-
diff --git a/templates/feature/agl-profile-telematics/50_bblayers.conf.inc b/templates/feature/agl-profile-telematics/50_bblayers.conf.inc
deleted file mode 100644
index 874b438f0..000000000
--- a/templates/feature/agl-profile-telematics/50_bblayers.conf.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-BBLAYERS =+ " \
- ${METADIR}/meta-agl/meta-agl-profile-telematics \
-"
diff --git a/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md b/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md
deleted file mode 100644
index 6abcd5d24..000000000
--- a/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Feature agl-profile-telematics
-authors: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
----
-
-### Feature agl-profile-telematics
-
-*Description is missing - please complete file meta-agl/templates/feature/agl-profile-telematics/README_feature_agl-profile-telematics.md*
-
diff --git a/templates/feature/agl-weston-remoting/included.dep b/templates/feature/agl-weston-remoting/included.dep
index 032609b8a..82639da07 100644
--- a/templates/feature/agl-weston-remoting/included.dep
+++ b/templates/feature/agl-weston-remoting/included.dep
@@ -1 +1 @@
-agl-profile-graphical
+agl-demo