Diff of the two buildlogs:

--
--- b1/build.log	2025-01-26 01:46:49.326443032 +0000
+++ b2/build.log	2025-01-26 02:24:57.867527226 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Sat Jan 25 13:14:26 -12 2025
-I: pbuilder-time-stamp: 1737854066
+I: Current time: Sun Jan 26 15:46:59 +14 2025
+I: pbuilder-time-stamp: 1737856019
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz]
 I: copying local configuration
@@ -22,52 +22,84 @@
 dpkg-source: info: unpacking flox_0.10.0-1.debian.tar.xz
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/10484/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/D01_modify_environment starting
+debug: Running on virt64z.
+I: Changing host+domainname to test build reproducibility
+I: Adding a custom variable just for the fun of it...
+I: Changing /bin/sh to bash
+'/bin/sh' -> '/bin/bash'
+lrwxrwxrwx 1 root root 9 Jan 26 01:47 /bin/sh -> /bin/bash
+I: Setting pbuilder2's login shell to /bin/bash
+I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build/reproducible-path'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='armhf'
-  DEBIAN_FRONTEND='noninteractive'
-  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 '
-  DISTRIBUTION='unstable'
-  HOME='/root'
-  HOST_ARCH='armhf'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf")
+  BASH_VERSION='5.2.37(1)-release'
+  BUILDDIR=/build/reproducible-path
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=armhf
+  DEBIAN_FRONTEND=noninteractive
+  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 '
+  DIRSTACK=()
+  DISTRIBUTION=unstable
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=arm
+  HOST_ARCH=armhf
   IFS=' 	
   '
-  INVOCATION_ID='8e7c1b028c9549a9b07bba1eb33d6f84'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  MAIL='/var/mail/root'
-  OPTIND='1'
-  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
-  PBCURRENTCOMMANDLINEOPERATION='build'
-  PBUILDER_OPERATION='build'
-  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
-  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
-  PBUILDER_SYSCONFDIR='/etc'
-  PPID='10484'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=cd5ceb3bff034d68b2e0a63e3fbebb43
+  LANG=C
+  LANGUAGE=it_CH:it
+  LC_ALL=C
+  MACHTYPE=arm-unknown-linux-gnueabihf
+  MAIL=/var/mail/root
+  OPTERR=1
+  OPTIND=1
+  OSTYPE=linux-gnueabihf
+  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
+  PBCURRENTCOMMANDLINEOPERATION=build
+  PBUILDER_OPERATION=build
+  PBUILDER_PKGDATADIR=/usr/share/pbuilder
+  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
+  PBUILDER_SYSCONFDIR=/etc
+  PIPESTATUS=([0]="0")
+  POSIXLY_CORRECT=y
+  PPID=13237
   PS4='+ '
-  PWD='/'
-  SHELL='/bin/bash'
-  SHLVL='2'
-  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.p8HM5BvF/pbuilderrc_qfQ5 --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.p8HM5BvF/b1 --logfile b1/build.log flox_0.10.0-1.dsc'
-  SUDO_GID='112'
-  SUDO_UID='106'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://10.0.0.15:3142/'
+  PWD=/
+  SHELL=/bin/bash
+  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
+  SHLVL=3
+  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.p8HM5BvF/pbuilderrc_bZuE --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.p8HM5BvF/b2 --logfile b2/build.log flox_0.10.0-1.dsc'
+  SUDO_GID=110
+  SUDO_UID=103
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
+  http_proxy=http://10.0.0.15:3142/
 I: uname -a
-  Linux virt32b 6.1.0-30-armmp-lpae #1 SMP Debian 6.1.124-1 (2025-01-12) armv7l GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-30-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux
 I: ls -l /bin
   lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/10484/tmp/hooks/D02_print_environment finished
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -252,7 +284,7 @@
 Get: 109 http://deb.debian.org/debian unstable/main armhf python3-scipy armhf 1.14.1-3 [17.8 MB]
 Get: 110 http://deb.debian.org/debian unstable/main armhf python3-setuptools-scm all 8.1.0-1 [40.5 kB]
 Get: 111 http://deb.debian.org/debian unstable/main armhf python3-xarray all 2025.01.1-1 [800 kB]
-Fetched 70.0 MB in 8s (9217 kB/s)
+Fetched 70.0 MB in 16s (4339 kB/s)
 Preconfiguring packages ...
 Selecting previously unselected package libpython3.13-minimal:armhf.
 (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19557 files and directories currently installed.)
@@ -621,8 +653,8 @@
 Setting up tzdata (2025a-1) ...
 
 Current default time zone: 'Etc/UTC'
-Local time is now:      Sun Jan 26 01:18:13 UTC 2025.
-Universal Time is now:  Sun Jan 26 01:18:13 UTC 2025.
+Local time is now:      Sun Jan 26 01:48:43 UTC 2025.
+Universal Time is now:  Sun Jan 26 01:48:43 UTC 2025.
 Run 'dpkg-reconfigure tzdata' if you wish to change it.
 
 Setting up autotools-dev (20220109.1) ...
@@ -727,7 +759,11 @@
 Building tag database...
  -> Finished parsing the build-deps
 I: Building the package
-I: Running cd /build/reproducible-path/flox-0.10.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../flox_0.10.0-1_source.changes
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/A99_set_merged_usr starting
+Not re-configuring usrmerge for unstable
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/reproducible-path/flox-0.10.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../flox_0.10.0-1_source.changes
 dpkg-buildpackage: info: source package flox
 dpkg-buildpackage: info: source version 0.10.0-1
 dpkg-buildpackage: info: source distribution unstable
@@ -752,21 +788,21 @@
 running build
 running build_py
 creating build/lib/flox
-copying flox/aggregate_numbagg.py -> build/lib/flox
-copying flox/lib.py -> build/lib/flox
-copying flox/types.py -> build/lib/flox
-copying flox/_version.py -> build/lib/flox
-copying flox/core.py -> build/lib/flox
-copying flox/aggregate_npg.py -> build/lib/flox
+copying flox/aggregations.py -> build/lib/flox
 copying flox/__init__.py -> build/lib/flox
-copying flox/xarray.py -> build/lib/flox
-copying flox/aggregate_flox.py -> build/lib/flox
-copying flox/xrdtypes.py -> build/lib/flox
 copying flox/cache.py -> build/lib/flox
-copying flox/aggregations.py -> build/lib/flox
+copying flox/core.py -> build/lib/flox
+copying flox/xrdtypes.py -> build/lib/flox
+copying flox/xarray.py -> build/lib/flox
+copying flox/xrutils.py -> build/lib/flox
+copying flox/lib.py -> build/lib/flox
 copying flox/visualize.py -> build/lib/flox
+copying flox/_version.py -> build/lib/flox
+copying flox/aggregate_flox.py -> build/lib/flox
+copying flox/aggregate_npg.py -> build/lib/flox
+copying flox/aggregate_numbagg.py -> build/lib/flox
+copying flox/types.py -> build/lib/flox
 copying flox/dask_array_ops.py -> build/lib/flox
-copying flox/xrutils.py -> build/lib/flox
 running egg_info
 creating flox.egg-info
 writing flox.egg-info/PKG-INFO
@@ -783,27 +819,27 @@
 running install_lib
 creating build/bdist.linux-armv7l/wheel
 creating build/bdist.linux-armv7l/wheel/flox
-copying build/lib/flox/aggregate_numbagg.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/lib.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/types.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/_version.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/core.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregate_npg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregations.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/__init__.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/py.typed -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xarray.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregate_flox.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xrdtypes.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/cache.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregations.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/core.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xrdtypes.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xarray.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xrutils.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/lib.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/visualize.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/py.typed -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/_version.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_flox.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_npg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_numbagg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/types.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/dask_array_ops.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xrutils.py -> build/bdist.linux-armv7l/wheel/./flox
 running install_egg_info
 Copying flox.egg-info to build/bdist.linux-armv7l/wheel/./flox-0.10.0.egg-info
 running install_scripts
 creating build/bdist.linux-armv7l/wheel/flox-0.10.0.dist-info/WHEEL
-creating '/build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.12_flox/.tmp-kyt1fhaj/flox-0.10.0-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it
+creating '/build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.12_flox/.tmp-wuvt40s1/flox-0.10.0-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it
 adding 'flox/__init__.py'
 adding 'flox/_version.py'
 adding 'flox/aggregate_flox.py'
@@ -848,27 +884,27 @@
 running install_lib
 creating build/bdist.linux-armv7l/wheel
 creating build/bdist.linux-armv7l/wheel/flox
-copying build/lib/flox/aggregate_numbagg.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/lib.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/types.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/_version.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/core.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregate_npg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregations.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/__init__.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/py.typed -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xarray.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregate_flox.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xrdtypes.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/cache.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/aggregations.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/core.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xrdtypes.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xarray.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/xrutils.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/lib.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/visualize.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/py.typed -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/_version.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_flox.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_npg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/aggregate_numbagg.py -> build/bdist.linux-armv7l/wheel/./flox
+copying build/lib/flox/types.py -> build/bdist.linux-armv7l/wheel/./flox
 copying build/lib/flox/dask_array_ops.py -> build/bdist.linux-armv7l/wheel/./flox
-copying build/lib/flox/xrutils.py -> build/bdist.linux-armv7l/wheel/./flox
 running install_egg_info
 Copying flox.egg-info to build/bdist.linux-armv7l/wheel/./flox-0.10.0.egg-info
 running install_scripts
 creating build/bdist.linux-armv7l/wheel/flox-0.10.0.dist-info/WHEEL
-creating '/build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.13_flox/.tmp-z245uraa/flox-0.10.0-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it
+creating '/build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.13_flox/.tmp-ew1rovj_/flox-0.10.0-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it
 adding 'flox/__init__.py'
 adding 'flox/_version.py'
 adding 'flox/aggregate_flox.py'
@@ -962,13 +998,10262 @@
 .........................s..s..s..s..s..s............................... [ 90%]
 .......s................................................................ [ 92%]
 ..............................                                           [ 93%]
-../../../tests/test_properties.py ...                                    [ 93%]
+../../../tests/test_properties.py F..                                    [ 93%]
 ../../../tests/test_xarray.py .....................ssssss...ssssss.s...s [ 94%]
 ..................................................ssssss...ssssss.s...s. [ 95%]
 ............................ssssssssssssssssssssssssssssssssssssssssssss [ 97%]
 sssssssssssssssssssssssssss.............sssss........................... [ 98%]
 .....................s.s............ss.......ss                          [100%]
 
+=================================== FAILURES ===================================
+_______________________________ test_first_last ________________________________
+../../../tests/test_properties.py:253: in test_first_last
+    data=st.data(),
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 662.16ms, which exceeds the deadline of 500.00ms
+E   Falsifying example: test_first_last(
+E       data=data(...),
+E       array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+E       func='nanfirst',
+E   )
+E   Draw 1: array([1, 1, 1, 1], dtype=int8)
+------------------------------ Captured log call -------------------------------
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 2
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6666666666666666, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6666666666666666, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 2
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6666666666666666, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6666666666666666, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6666666666666666, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6666666666666666, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 3
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6666666666666666, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6666666666666666, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 5 < 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.44
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.625, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.625, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 4 < 2 * chunksize 5
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.625, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.625, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.375, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.625
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.375, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.625
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 6 < 2 * chunksize 4
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 6 < 2 * chunksize 4
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 2 < 2 * chunksize 5
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.75, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.75, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 6 < 2 * chunksize 4
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 6 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 2 > 2 * chunksize 1
+DEBUG    flox:core.py:434 find_group_cohorts: cohorts is preferred, chunking is perfect.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+---------------------------------- Hypothesis ----------------------------------
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 5), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(1203, 9, 16, 10, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1203, 9, 16, 10, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1203, 9, 16, 10, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1203, 12, 11, 19, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1203, 9, 16, 10, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 3, 3), dtype=object, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', 'Ó#', 'Ēþ'], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=uint8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=uint16, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.Datetime360Day(5162, 9, 6, 1, 31, 27, 0, has_year_zero=True),
+       cftime.Datetime360Day(5162, 9, 6, 1, 29, 38, 0, has_year_zero=True),
+       cftime.Datetime360Day(5162, 9, 6, 1, 31, 27, 0, has_year_zero=True),
+       cftime.Datetime360Day(5162, 9, 6, 1, 31, 27, 0, has_year_zero=True),
+       cftime.Datetime360Day(5162, 9, 6, 1, 31, 27, 0, has_year_zero=True),
+       cftime.Datetime360Day(5162, 9, 6, 1, 31, 27, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=uint16, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=uint16, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1214, 12, 21, 0, 0, 0, 4801, has_year_zero=True),
+       cftime.DatetimeNoLeap(1214, 12, 20, 23, 59, 59, 993973, has_year_zero=True),
+       cftime.DatetimeNoLeap(1214, 12, 20, 23, 59, 59, 991591, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-253])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-253])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-253])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(6,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 1, 3), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([2147483647,  880165920,       -226])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 1, 3), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([2147483647,  880165920,       -226])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 1, 3), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 1, 3), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-110], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 3), dtype=timedelta64[Y], chunksize=(1, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(5218, 1, 17, 8, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(5218, 4, 22, 7, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(5217, 5, 25, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 3), dtype=timedelta64[Y], chunksize=(1, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(5218, 1, 17, 8, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(5218, 4, 22, 7, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(5217, 5, 25, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 3), dtype=timedelta64[Y], chunksize=(1, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 1), dtype=timedelta64[Y], chunksize=(1, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 1), dtype=timedelta64[Y], chunksize=(1, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=timedelta64[Y], chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(91, 5, 31, 21, 34, 13, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(91, 5, 31, 21, 20, 1, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(469, 6, 13, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(469, 6, 13, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=uint8, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-9862], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=uint8, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=uint8, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=uint8, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=uint8, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=uint8, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(6, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.Datetime360Day(6408, 9, 23, 23, 59, 52, 58000, has_year_zero=True),
+       cftime.Datetime360Day(6408, 9, 24, 0, 0, 3, 414000, has_year_zero=True),
+       cftime.Datetime360Day(6408, 9, 23, 23, 59, 50, 714000, has_year_zero=True),
+       cftime.Datetime360Day(6408, 9, 23, 23, 59, 53, 146000, has_year_zero=True),
+       cftime.Datetime360Day(6408, 9, 23, 23, 59, 58, 576000, has_year_zero=True),
+       cftime.Datetime360Day(6408, 9, 24, 0, 0, 9, 475000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(6, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(11, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 11, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 11, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 11, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 11, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', '/3Ľºò𱈩', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚', 'ġçö䉖ċ·'],
+      dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚', 'ġçö䉖ċ·'],
+      dtype='<U12')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 728.81ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚', 'ġçö䉖ċ·'],
+      dtype='<U12')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 778.32ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚',
+       '𤤿0JĶģP8e鲠𘱃À8'], dtype='<U12')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 658.87ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '}ÅĐ𩢒', '}ÅĐ𩢒', 'Ìü»6', '}ÅĐ𩢒', '}ÅĐ𩢒'], dtype='<U11')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '}ÅĐ𩢒', '}ÅĐ𩢒', 'Ìü»6', '}ÅĐ𩢒', '}ÅĐ𩢒'], dtype='<U11')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['Ìü»6', '}ÅĐ𩢒', '}ÅĐ𩢒', 'Ìü»6', '}ÅĐ𩢒', '}ÅĐ𩢒'], dtype='<U11')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(996, 6, 5, 20, 44, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(996, 6, 6, 8, 18, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 19, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 19, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(6, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(6, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(6, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 1, 3, 3, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(6, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 1, 3, 0, 0, 3, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 1, 3, 0, 0, 3, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 2), dtype=float32, chunksize=(6, 6, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 1, 3, 0, 0, 3, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 1, 3, 0, 0, 3, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=float64, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(9554, 3, 15, 23, 59, 50, 261000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9554, 3, 15, 23, 59, 52, 528000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9554, 3, 16, 0, 0, 9, 673000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9554, 3, 16, 0, 0, 7, 236000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9554, 3, 16, 0, 0, 9, 180000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9554, 3, 16, 0, 0, 7, 326000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=float64, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=float64, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 1, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=float64, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 17, 0, 6, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 1, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 17, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=uint16, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 2, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(4, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['}Ìt', 'Ă𦐢öĪij', '}Ìt', '}Ìt', '', '}Ìt'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(3, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['}Ìt', 'Ă𦐢öĪij', '}Ìt', '}Ìt', '', '}Ìt'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(3, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(3, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(3, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4, 6), dtype=uint64, chunksize=(3, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3, 6), dtype=bool, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', 'ı', '𛁩', '⎔¯', 'Â𩑓Ď'], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3, 3), dtype=bool, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3, 3), dtype=bool, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3, 3), dtype=bool, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3), dtype=bool, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=bool, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=bool, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeJulian(1489, 3, 23, 5, 25, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(1489, 3, 18, 17, 2, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(1489, 3, 29, 22, 40, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(1489, 3, 25, 11, 12, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeJulian(5178, 2, 20, 5, 25, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(5178, 2, 15, 17, 2, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(5178, 2, 26, 22, 40, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(5178, 2, 22, 11, 12, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-108], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4, 4), dtype=timedelta64[ns], chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1355, 4, 2, 17, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1355, 3, 11, 14, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1354, 12, 5, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1354, 11, 10, 5, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4, 4), dtype=timedelta64[ns], chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1355, 4, 2, 17, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1355, 3, 11, 14, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1354, 12, 5, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1354, 11, 10, 5, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4, 4), dtype=timedelta64[ns], chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([-9667, -9667,     0, -9667])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4, 4), dtype=timedelta64[ns], chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([-9667, -9667,     0, -9667])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4, 4), dtype=timedelta64[ns], chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 2, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚', 'ġçö䉖ċ·'],
+      dtype='<U12')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 642.02ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int16, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(3455, 2, 8, 8, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(3453, 11, 27, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(3455, 8, 6, 23, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(3454, 1, 21, 3, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(3455, 8, 14, 22, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int16, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['ġçö䉖ċ·', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚'],
+      dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int16, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 1), dtype=bool, chunksize=(3, 2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['=$¼ŀ\xa0sĠ?ĒĔ@Ā'], dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 1), dtype=bool, chunksize=(3, 2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['ġçö䉖ċ·'], dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 1), dtype=bool, chunksize=(4, 2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 3), dtype=datetime64[s], chunksize=(3, 3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𤉻', '즳', 'n'], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 3), dtype=datetime64[s], chunksize=(3, 3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['ġçö䉖ċ·', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8'], dtype='<U12')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 3), dtype=datetime64[s], chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['𥾭5⻖𮮇𬒋ĺ', 'ġçö䉖ċ·', '𤤿0JĶģP8e鲠𘱃À8', 'Uc¿O𝠼', '풕-𩚴¬ø𨠤𘒚', 'ġçö䉖ċ·'],
+      dtype='<U12')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 736.94ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', 'Đ', '뉚', '', 'Ē'], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([  21, -127,  -95, -118, -123, -124], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(1565, 10, 26, 0, 0, 10, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1565, 10, 25, 23, 59, 57, 760000, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1565, 10, 26, 0, 0, 10, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1565, 10, 25, 23, 59, 50, 667000, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1565, 10, 26, 0, 0, 10, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1565, 10, 25, 23, 59, 53, 829000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([-128,  -76,   57, -115,   12, -114], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(508, 6, 11, 12, 51, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(508, 6, 14, 13, 4, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(508, 6, 13, 1, 44, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(508, 6, 8, 8, 31, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(508, 6, 10, 11, 48, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(508, 6, 11, 2, 10, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeJulian(4414, 11, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(4383, 11, 18, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(4389, 12, 31, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(4372, 11, 26, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(4393, 12, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(4394, 10, 27, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.Datetime360Day(6245, 2, 3, 23, 59, 59, 999748, has_year_zero=True),
+       cftime.Datetime360Day(6245, 2, 4, 0, 0, 0, 4529, has_year_zero=True),
+       cftime.Datetime360Day(6245, 2, 3, 23, 59, 59, 996988, has_year_zero=True),
+       cftime.Datetime360Day(6245, 2, 4, 0, 0, 0, 4691, has_year_zero=True),
+       cftime.Datetime360Day(6245, 2, 3, 23, 59, 59, 996988, has_year_zero=True),
+       cftime.Datetime360Day(6245, 2, 3, 23, 59, 59, 996988, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(1290, 2, 8, 23, 59, 59, 994994, has_year_zero=False),
+       cftime.DatetimeGregorian(1290, 2, 8, 23, 59, 59, 996471, has_year_zero=False),
+       cftime.DatetimeGregorian(1290, 2, 9, 0, 0, 0, 1531, has_year_zero=False),
+       cftime.DatetimeGregorian(1290, 2, 8, 23, 59, 59, 998371, has_year_zero=False),
+       cftime.DatetimeGregorian(1290, 2, 9, 0, 0, 0, 3480, has_year_zero=False),
+       cftime.DatetimeGregorian(1290, 2, 9, 0, 0, 0, 1584, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(8190, 6, 25, 0, 0, 0, 9066, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(8190, 6, 24, 23, 59, 59, 997686, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(8190, 6, 24, 23, 59, 59, 990000, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(8190, 6, 25, 0, 0, 0, 7628, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(8190, 6, 25, 0, 0, 0, 2826, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(8190, 6, 25, 0, 0, 0, 9999, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(5714, 8, 9, 0, 0, 8, 675000, has_year_zero=True),
+       cftime.Datetime360Day(5714, 8, 9, 0, 0, 7, 860000, has_year_zero=True),
+       cftime.Datetime360Day(5714, 8, 9, 0, 0, 0, 709000, has_year_zero=True),
+       cftime.Datetime360Day(5714, 8, 8, 23, 59, 54, 988000, has_year_zero=True),
+       cftime.Datetime360Day(5714, 8, 9, 0, 0, 7, 501000, has_year_zero=True),
+       cftime.Datetime360Day(5714, 8, 8, 23, 59, 56, 186000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['{', 'Ă', 'òJĩ|$', '', 'ĩq1ÝÜ', 'Ă'], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['Ò𲍼', '#𝖒', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-797267670,        -46,     -19334,     -28858,        241,
+       1019364043])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([    -33031,     -15474,         91, -296547721,       -195,
+            -7951])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2930, 2, 18, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2887, 9, 29, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2887, 10, 22, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2908, 10, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2910, 6, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2924, 9, 19, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([               20814, -8649480759053072525,  2884254963533507399,
+                     -16854,               -58865,                 -128],
+      dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(1938, 3, 24, 23, 59, 59, 994083, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1938, 3, 24, 23, 59, 59, 993652, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1938, 3, 25, 0, 0, 0, 4721, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1938, 3, 25, 0, 0, 0, 84, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1938, 3, 25, 0, 0, 0, 1324, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(1938, 3, 24, 23, 59, 59, 996652, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-16945, -16945, -16945, -16945, -16945,  30823], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(10, 8, 12, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([ 30, -79, -40,  87, -40,  18], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([ 84, -11, -65,  96,  62,  50], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(712, 8, 7, 9, 42, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(712, 8, 7, 22, 25, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(712, 8, 2, 9, 59, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(712, 8, 4, 17, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(712, 7, 28, 20, 34, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(712, 7, 31, 19, 38, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([       -49,     -25453,       -222,      35029, 2147483647,
+           -10492])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(278, 2, 2, 6, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([127, 127, 127,  75, 126, 127], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 644.55ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(8468, 10, 29, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8457, 8, 28, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8432, 4, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8453, 6, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8446, 1, 7, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8436, 12, 18, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([    -59908, 2147483647,       -157, 1903281964,     -21569,
+             8949])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['ÜãIJ', '', '𱞸䀅', '¤È', '𤰡', '®æ'], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', 'Ŀ', '𭝟𰽐¢', '¥𨷀뺽)', 'C', '-𩀏ěEöIJ庶íąĴ𥂃ঐ'], dtype='<U14')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(3, 1, 1, 0, 0, 5, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['£ĜÈ', 'Ħ䖙', 'Ĩ/ëì°êN𱔰', 'Ī', 'z)C', 'Ü'], dtype='<U8')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 671.38ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3, 3, 3, 3, 3, 3], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([       110,         78, 2147483647, 2147483647,         51,
+       2147483646])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-39148,   1121,  20707,     40,  52802,  51695], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeJulian(9989, 2, 16, 23, 59, 59, 420000, has_year_zero=False),
+       cftime.DatetimeJulian(9989, 2, 16, 23, 59, 56, 928000, has_year_zero=False),
+       cftime.DatetimeJulian(9989, 2, 17, 0, 0, 4, 399000, has_year_zero=False),
+       cftime.DatetimeJulian(9989, 2, 17, 0, 0, 4, 171000, has_year_zero=False),
+       cftime.DatetimeJulian(9989, 2, 17, 0, 0, 5, 983000, has_year_zero=False),
+       cftime.DatetimeJulian(9989, 2, 17, 0, 0, 9, 261000, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(5736, 3, 10, 16, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(5734, 12, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(5734, 12, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(5736, 11, 7, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(5734, 12, 2, 6, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(5736, 11, 24, 20, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1336.05ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(9228, 12, 2, 7, 16, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeJulian(4912, 4, 14, 0, 0, 0, 4213, has_year_zero=False),
+       cftime.DatetimeJulian(4912, 4, 14, 0, 0, 0, 4213, has_year_zero=False),
+       cftime.DatetimeJulian(4912, 4, 14, 0, 0, 0, 1033, has_year_zero=False),
+       cftime.DatetimeJulian(4912, 4, 13, 23, 59, 59, 998829, has_year_zero=False),
+       cftime.DatetimeJulian(4912, 4, 13, 23, 59, 59, 993920, has_year_zero=False),
+       cftime.DatetimeJulian(4912, 4, 14, 0, 0, 0, 4213, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['𘀃®Êr>ķ', '', '¯Éñß»', '$Hõ', '', ''], dtype='<U9')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([ 26527, -30080,  13808, -15624, -28372, -13635], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeJulian(2977, 6, 10, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(2988, 11, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(2970, 9, 13, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(3010, 12, 31, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(2986, 4, 22, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeJulian(2991, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1174.05ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1203.40ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1201.23ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1301.42ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ᧉĒ녢𪱹', '驾D/[', 'ĻĴᔭ', 'ÍĴ1𘀢', '', 'Ğ'], dtype='<U4')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 914.28ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['Ë9죲ĭ𭆻ġ𢽏$', '𘎟v𡷇', ',ı𧚴ꓦXY¾ŀ4,ÃP!', '', 'À솟°ęW', 'ĝ'], dtype='<U13')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 962.81ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-17529,  -1799, -56874,  58528,     27,   -245])
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 973.11ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2588, 12, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2605, 11, 24, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2579, 6, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2579, 3, 12, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1120.94ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2873, 3, 20, 9, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 930.28ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2855, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 986.02ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2855, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 993.98ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2855, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2874, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1051.60ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(1981, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 855.00ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(1981, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(1981, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 733.84ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 625.10ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 721.26ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 747.71ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([4, 4, 4, 4, 4, 4], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 741.53ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 692.96ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 626.99ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 699.43ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 1), dtype=object, chunksize=(3, 1, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(5, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(5, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([4, 4, 4, 4, 4], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1, 6), dtype=object, chunksize=(1, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=bool, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(4, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(2, 1, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(5, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 2, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 4, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 1), dtype=object, chunksize=(5, 1, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 635.88ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 1), dtype=object, chunksize=(3, 1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(5, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(5, 1, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(4, 5, 2, 4, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 1), dtype=object, chunksize=(5, 1, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6), dtype=object, chunksize=(1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1, 6), dtype=object, chunksize=(3, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 711.91ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([5, 5, 5, 5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 756.24ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(4, 5, 2, 4, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6), dtype=object, chunksize=(1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6), dtype=object, chunksize=(2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3, 3, 3, 3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([4, 4, 4, 4, 4, 4], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 4, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 826.68ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 626.76ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 2), dtype=object, chunksize=(5, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 5), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6), dtype=object, chunksize=(1, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6), dtype=object, chunksize=(2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 637.30ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 654.79ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 673.85ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 5), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6), dtype=object, chunksize=(1, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6), dtype=object, chunksize=(2, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=bool, chunksize=(5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 773.33ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 5), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 744.59ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 694.07ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 715.48ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 5), dtype=bool, chunksize=(4, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 745.88ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 5), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 735.92ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 670.48ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=bool, chunksize=(5, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 631.68ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([-1, -1, -1, -1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=bool, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 4), dtype=object, chunksize=(1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 4), dtype=object, chunksize=(1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=datetime64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=datetime64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3, 3, 3], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=bool, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=bool, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 637.70ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 728.47ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 2), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 4), dtype=object, chunksize=(1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 4), dtype=object, chunksize=(1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=bool, chunksize=(5, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int16)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 652.40ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 4), dtype=bool, chunksize=(5, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 666.01ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-67], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=object, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 2), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 2), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([44, 44, 44], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=bool, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 4), dtype=object, chunksize=(1, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 2), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 2), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-99, -99, -99, -99], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=datetime64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=datetime64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3), dtype=object, chunksize=(4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4), dtype=object, chunksize=(2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=bool, chunksize=(4, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=bool, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 4, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=float64, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=float64, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 3, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=object, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 2, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 2, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 2, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 2, 3, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=bool, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 4), dtype=bool, chunksize=(4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(3, 1, 2, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
 =============================== warnings summary ===============================
 tests/test_core.py: 968 warnings
   /usr/lib/python3/dist-packages/numpy_groupies/aggregate_numpy.py:219: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
@@ -986,24 +11271,23 @@
 tests/test_properties.py::test_first_last
 tests/test_properties.py::test_first_last
 tests/test_properties.py::test_first_last
+tests/test_properties.py::test_first_last
   /usr/lib/python3/dist-packages/dask/tokenize.py:242: CFWarning: this date/calendar/year zero convention is not supported by CF
     mod.loads(out, buffers=buffers)
 
-tests/test_properties.py: 12 warnings
+tests/test_properties.py: 28 warnings
   /usr/lib/python3/dist-packages/dask/array/core.py:5083: CFWarning: this date/calendar/year zero convention is not supported by CF
     result = function(*args, **kwargs)
 
-tests/test_properties.py::test_first_last
-tests/test_properties.py::test_first_last
-tests/test_properties.py::test_first_last
-tests/test_properties.py::test_first_last
-tests/test_properties.py::test_first_last
-tests/test_properties.py::test_first_last
+tests/test_properties.py: 14 warnings
   /build/reproducible-path/flox-0.10.0/flox/core.py:2712: CFWarning: this date/calendar/year zero convention is not supported by CF
     result = _to_pytimedelta(result, unit="us") + offset
 
 -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
-= 2088 passed, 2287 skipped, 7753 deselected, 108 xfailed, 3 xpassed, 1007 warnings in 738.38s (0:12:18) =
+=========================== short test summary info ============================
+FAILED ../../../tests/test_properties.py::test_first_last - hypothesis.errors...
+= 1 failed, 2087 passed, 2287 skipped, 7753 deselected, 108 xfailed, 3 xpassed, 1032 warnings in 965.65s (0:16:05) =
+E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.12_flox/build; python3.12 -m pytest --ignore={dir}/tests/test_asv.py -k "not test_xarray_reduce_single_grouper and not test_func_is_aggregation and not test_groupby_bins_indexed_coordinate and not test_groupby_reduce_all and not test_verify_complex_cohorts and not test_group_by_datetime and not test_find_group_cohorts and not test_cohorts_map_reduce_consistent_dtypes and not test_dtype_accumulation and not test_multi_index_groupby_sum and not test_find_cohorts_missing_groups and not test_snapshot_cohorts and not test_groupby_reduce and not test_scans and not test_ffill_bfill_reverse and not test_groupby_preserve_dtype and not test_blockwise_avoid_rechunk" {dir}/tests
 I: pybuild base:311: cd /build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.13_flox/build; python3.13 -m pytest --ignore=/build/reproducible-path/flox-0.10.0/tests/test_asv.py -k "not test_xarray_reduce_single_grouper and not test_func_is_aggregation and not test_groupby_bins_indexed_coordinate and not test_groupby_reduce_all and not test_verify_complex_cohorts and not test_group_by_datetime and not test_find_group_cohorts and not test_cohorts_map_reduce_consistent_dtypes and not test_dtype_accumulation and not test_multi_index_groupby_sum and not test_find_cohorts_missing_groups and not test_snapshot_cohorts and not test_groupby_reduce and not test_scans and not test_ffill_bfill_reverse and not test_groupby_preserve_dtype and not test_blockwise_avoid_rechunk" /build/reproducible-path/flox-0.10.0/tests
 ============================= test session starts ==============================
 platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
@@ -1072,62 +11356,14145 @@
 .........................s..s..s..s..s..s............................... [ 90%]
 .......s................................................................ [ 92%]
 ..............................                                           [ 93%]
-../../../tests/test_properties.py ...                                    [ 93%]
+../../../tests/test_properties.py F..                                    [ 93%]
 ../../../tests/test_xarray.py .....................ssssss...ssssss.s...s [ 94%]
 ..................................................ssssss...ssssss.s...s. [ 95%]
 ............................ssssssssssssssssssssssssssssssssssssssssssss [ 97%]
 sssssssssssssssssssssssssss.............sssss........................... [ 98%]
 .....................s.s............ss.......ss                          [100%]
 
+=================================== FAILURES ===================================
+_______________________________ test_first_last ________________________________
+  + Exception Group Traceback (most recent call last):
+  |   File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call
+  |     result: TResult | None = func()
+  |                              ~~~~^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in <lambda>
+  |     lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
+  |             ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
+  |     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
+  |            ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
+  |     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
+  |            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall
+  |     return outcome.get_result()
+  |            ~~~~~~~~~~~~~~~~~~^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result
+  |     raise exc.with_traceback(exc.__traceback__)
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
+  |     teardown.throw(outcome._exception)
+  |     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
+  |     yield from thread_exception_runtest_hook()
+  |   File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
+  |     yield
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
+  |     teardown.throw(outcome._exception)
+  |     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
+  |     yield from unraisable_exception_runtest_hook()
+  |   File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
+  |     yield
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
+  |     teardown.throw(outcome._exception)
+  |     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 846, in pytest_runtest_call
+  |     yield from self._runtest_for(item, "call")
+  |   File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 829, in _runtest_for
+  |     yield
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
+  |     teardown.throw(outcome._exception)
+  |     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 880, in pytest_runtest_call
+  |     return (yield)
+  |             ^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall
+  |     teardown.throw(outcome._exception)
+  |     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
+  |     return (yield)
+  |             ^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
+  |     res = hook_impl.function(*args)
+  |   File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call
+  |     item.runtest()
+  |     ~~~~~~~~~~~~^^
+  |   File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest
+  |     self.ihook.pytest_pyfunc_call(pyfuncitem=self)
+  |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
+  |     return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
+  |            ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec
+  |     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
+  |            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall
+  |     raise exception.with_traceback(exception.__traceback__)
+  |   File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall
+  |     res = hook_impl.function(*args)
+  |   File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
+  |     result = testfunction(**testargs)
+  |   File "/build/reproducible-path/flox-0.10.0/tests/test_properties.py", line 253, in test_first_last
+  |     data=st.data(),
+  |                ~^^
+  |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1824, in wrapped_test
+  |     raise the_error_hypothesis_found
+  | hypothesis.errors.FlakyFailure: Hypothesis test_first_last(data=data(...), array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>, func='nanfirst') produces unreliable results: Falsified on the first call but did not on a subsequent one (1 sub-exception)
+  | Falsifying example: test_first_last(
+  |     data=data(...),
+  |     array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+  |     func='nanfirst',
+  | )
+  | Draw 1: array(['', '', '', '', ''], dtype='<U1')
+  | Unreliable test timings! On an initial run, this test took 679.98ms, which exceeded the deadline of 500.00ms, but on a subsequent run it took 481.14 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None.
+  +-+---------------- 1 ----------------
+    | Traceback (most recent call last):
+    |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1085, in _execute_once_for_engine
+    |     result = self.execute_once(data)
+    |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1020, in execute_once
+    |     result = self.test_runner(data, run)
+    |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 722, in default_executor
+    |     return function(data)
+    |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 995, in run
+    |     return test(*args, **kwargs)
+    |   File "/build/reproducible-path/flox-0.10.0/tests/test_properties.py", line 253, in test_first_last
+    |     data=st.data(),
+    |                ^^^^
+    |   File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 919, in test
+    |     raise DeadlineExceeded(
+    |         datetime.timedelta(seconds=runtime), self.settings.deadline
+    |     )
+    | hypothesis.errors.DeadlineExceeded: Test took 679.98ms, which exceeds the deadline of 500.00ms
+    +------------------------------------
+------------------------------ Captured log call -------------------------------
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:326 Using serial loop since num_labels 4 > 2 * chunksize 1
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.3125, threshold is 0.4
+DEBUG    flox:core.py:482 sparsity of containment matrix is 0.375
+DEBUG    flox:core.py:512 find_group_cohorts: merging cohorts
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=cohorts
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 5 < 2 * chunksize 4
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 2
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 5 < 2 * chunksize 4
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 2
+DEBUG    flox:core.py:459 sparsity of bitmask is 0.6, threshold is 0.4
+DEBUG    flox:core.py:467 find_group_cohorts: bitmask sparsity=0.6, merge=False, choosing 'map-reduce'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:326 Using serial loop since num_labels 5 > 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 5 < 2 * chunksize 3
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 3 < 2 * chunksize 2
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:326 Using serial loop since num_labels 3 > 2 * chunksize 1
+DEBUG    flox:core.py:419 find_group_cohorts: blockwise is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 4
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 5
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 2
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2225 _choose_method: choosing 'blockwise'
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=blockwise
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 1
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+DEBUG    flox:core.py:312 Using threadpool since num_labels 1 < 2 * chunksize 3
+DEBUG    flox:core.py:424 Only found a single cohort. 'map-reduce' is preferred.
+DEBUG    flox:core.py:2218 _choose_method: method is None
+DEBUG    flox:core.py:2235 _choose_method: choosing preferred_method=map-reduce
+---------------------------------- Hypothesis ----------------------------------
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 4, 1), dtype=object, chunksize=(5, 3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(854, 4, 12, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(912, 2, 14, 3, 32, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 3, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(7060, 11, 16, 23, 10, 36, 0, has_year_zero=True),
+       cftime.DatetimeProlepticGregorian(7060, 11, 16, 23, 10, 36, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=timedelta64[Y], chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.Datetime360Day(6261, 12, 9, 22, 44, 23, 0, has_year_zero=True),
+       cftime.Datetime360Day(6261, 12, 10, 1, 6, 20, 0, has_year_zero=True),
+       cftime.Datetime360Day(6261, 12, 9, 23, 45, 57, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=datetime64[Y], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 5, 6), dtype=datetime64[M], chunksize=(3, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([221])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([221])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(6,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(4813, 12, 20, 0, 0, 0, 5309, has_year_zero=False),
+       cftime.DatetimeGregorian(4813, 12, 19, 23, 59, 59, 998746, has_year_zero=False),
+       cftime.DatetimeGregorian(4813, 12, 19, 23, 59, 59, 993138, has_year_zero=False),
+       cftime.DatetimeGregorian(4813, 12, 19, 23, 59, 59, 998746, has_year_zero=False),
+       cftime.DatetimeGregorian(4813, 12, 19, 23, 59, 59, 998746, has_year_zero=False),
+       cftime.DatetimeGregorian(4813, 12, 20, 0, 0, 0, 5560, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(6,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(6,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U13')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U13')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U13')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeAllLeap(1, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeAllLeap(1, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int16, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 5), dtype=int16, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeAllLeap(361, 11, 24, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(387, 1, 7, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(351, 7, 17, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(369, 4, 19, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(387, 1, 7, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=bool, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=bool, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-2699], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 3, 1), dtype=object, chunksize=(4, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=uint16, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([                -24,                 -24,              -50437,
+       7836578861828570132,                 -24], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=uint16, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=float64, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([64, 64, 15, 28, 64, 98], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=float64, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=float64, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=float32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=float32, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=float32, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=float32, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 3, 5), dtype=object, chunksize=(1, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2853, 1, 17, 23, 59, 57, 400000, has_year_zero=True),
+       cftime.DatetimeAllLeap(2853, 1, 17, 23, 59, 55, 249000, has_year_zero=True),
+       cftime.DatetimeAllLeap(2853, 1, 18, 0, 0, 2, 750000, has_year_zero=True),
+       cftime.DatetimeAllLeap(2853, 1, 17, 23, 59, 55, 249000, has_year_zero=True),
+       cftime.DatetimeAllLeap(2853, 1, 17, 23, 59, 54, 817000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([23], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 2, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 6), dtype=object, chunksize=(6, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', 'ĸ', '¬x', 'T', '', 'ŀ!'], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 6), dtype=object, chunksize=(6, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', 'ĸ', '¬x', 'T', '', 'ŀ!'], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 1), dtype=object, chunksize=(6, 2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 2, 1), dtype=object, chunksize=(6, 2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int16, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[h], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ĖÐ𦰜Ćɧ2O', 'Ġ朕Y', 'ĝ', 'Í锍J³', '젶'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ĖÐ𦰜Ćɧ2O', 'Ġ朕Y', 'ĝ', 'Í锍J³', '젶'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ĖÐ𦰜Ćɧ2O', 'Ġ朕Y', 'ĝ', 'Í锍J³', 'ĝ'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ĖÐ𦰜Ćɧ2O', 'Ġ朕Y', 'ĝ', 'Í锍J³', 'ĝ'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['ĖÐ𦰜Ćɧ2O', 'Ġ朕Y', 'ĝ', 'Í锍J³', 'ĝ'], dtype='<U8')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 5), dtype=datetime64[Y], chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=float64, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['$°', 'JĆjXąăཀĄıĩ'], dtype='<U10')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=float64, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=float64, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=float64, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float64, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float64, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float64, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True),
+       cftime.DatetimeAllLeap(9746, 10, 8, 0, 0, 1, 833000, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 962.63ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 733.90ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1093.41ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 1181.19ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([    -48553,        -76, 1467895535, 1467895535, 1467895535])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=int32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=uint32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=uint32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=uint32, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([  0, 142,   0,   0,   0])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=uint32, chunksize=(4,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[ns], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeNoLeap(721, 12, 16, 1, 20, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[ns], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeNoLeap(721, 12, 23, 0, 1, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[ns], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[ns], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[M], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[M], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=timedelta64[M], chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 4), dtype=uint32, chunksize=(6, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([ 29790,  -9682, -14681,   8764], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(8422, 7, 6, 16, 33, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8422, 7, 3, 3, 45, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8422, 7, 9, 17, 41, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8422, 6, 30, 0, 16, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(8422, 7, 1, 11, 14, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(-13, 1, 29, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(-13, 1, 29, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(22, 9, 29, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(-13, 1, 29, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([127], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1705, 2, 27, 23, 59, 55, 561000, has_year_zero=True),
+       cftime.DatetimeNoLeap(1705, 2, 28, 0, 0, 1, 821000, has_year_zero=True),
+       cftime.DatetimeNoLeap(1705, 2, 27, 23, 59, 57, 419000, has_year_zero=True),
+       cftime.DatetimeNoLeap(1705, 2, 28, 0, 0, 3, 811000, has_year_zero=True),
+       cftime.DatetimeNoLeap(1705, 2, 27, 23, 59, 58, 215000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeGregorian(14, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(14, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(14, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(14, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(14, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['E'], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 5, 1, 9, 4, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 5, 1, 9, 4, 0, has_year_zero=True),
+       cftime.Datetime360Day(679, 8, 4, 22, 57, 45, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(4144, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(4144, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(679, 8, 5, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(679, 8, 5, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([8])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(5, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1889, 5, 15, 21, 43, 7, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1889, 5, 15, 21, 48, 55, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1889, 5, 16, 0, 11, 18, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1889, 5, 16, 0, 27, 13, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1889, 5, 16, 0, 53, 44, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(2000, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeNoLeap(1535, 1, 4, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2000, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=timedelta64[ns], chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([20653, 31837], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=timedelta64[ns], chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([20653, 31837], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=bool, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 1, 1, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=bool, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(1, 1, 1, 0, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=bool, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=datetime64[Y], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([ 19, 126], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=datetime64[Y], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([19, 19], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=datetime64[Y], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=datetime64[Y], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=datetime64[Y], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=timedelta64[m], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['7ĖRĭ', 'ij'], dtype='<U14')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=timedelta64[m], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', ''], dtype='<U14')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=datetime64[M], chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([   86, 39508,    73], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=datetime64[M], chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=datetime64[M], chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=datetime64[M], chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=datetime64[M], chunksize=(3,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=float32, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-128,  -23,   43,  -12,   19], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=float32, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-128,  -23,   43,  -12,   19], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5,), dtype=float32, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 1), dtype=float32, chunksize=(1, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-94], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 639.17ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(5, 2, 2), dtype=uint8, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 3), dtype=timedelta64[Y], chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([ 50, -30,  84], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 3), dtype=timedelta64[Y], chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6, 3), dtype=timedelta64[Y], chunksize=(4, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([1, 1, 1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 630.50ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 645.19ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True),
+       cftime.DatetimeAllLeap(3393, 1, 4, 9, 0, 0, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 774.77ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 702.41ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 772.91ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 654.72ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 943.20ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 751.98ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 689.73ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 2, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([5, 5, 5, 5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 1, 1, 1, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([33], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 6, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([5, 5, 5, 5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([5, 5, 5], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True),
+       cftime.Datetime360Day(1, 5, 2, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([21], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 638.61ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([21], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([21], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', ''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 667.18ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(1, 5, 1, 0, 0, 0, 3000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 1), dtype=object, chunksize=(2, 1, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([''], dtype='<U6')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 1), dtype=object, chunksize=(3, 1, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=object, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 3), dtype=object, chunksize=(3, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 4), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(3, 5, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 694.62ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 663.08ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 650.01ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 710.68ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-75, -75], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-18, -18, -18], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([30, 30], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-97, -97, -97], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-33, -33], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-55, -55, -55], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-127, -127], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-42, -42, -42], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([100, 100], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-80, -80, -80], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-91, -91], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-82, -82, -82], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-104, -104], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([127, 127, 127], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([57, 57], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([82, 82, 82], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([86, 86], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-46, -46, -46], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=bool, chunksize=(3, 5, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True),
+       cftime.DatetimeNoLeap(1, 2, 1, 0, 0, 0, 1, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 700.96ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 714.40ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 673.51ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([89, 89], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([65, 65, 65], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([98, 98], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([38, 38, 38], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-25, -25], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([53, 53, 53], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-107, -107], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-28, -28, -28], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([107, 107], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-87, -87, -87], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([70, 70], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([49, 49, 49], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-4, -4], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([8, 8, 8], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-101, -101], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-68, -68, -68], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([105, 105], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([108, 108, 108], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([95, 95], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([35, 35, 35], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 693.11ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([90, 90], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-4, -4, -4], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-111, -111], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([106, 106, 106], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-32, -32], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-69, -69, -69], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([49, 49], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([116, 116, 116], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([125, 125], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-100, -100, -100], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([-93, -93], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([74, 74, 74], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([26, 26], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([42, 42, 42], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([127, 127], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([115, 115, 115], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([59, 59], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([40, 40, 40], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(3, 4, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([91, 91], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([116, 116, 116], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 701.33ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 1), dtype=object, chunksize=(2, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3, 3, 3, 3, 3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3, 3, 3, 3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=bool, chunksize=(2, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 6), dtype=object, chunksize=(2, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 625.42ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 660.55ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 683.20ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 6), dtype=object, chunksize=(2, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=bool, chunksize=(2, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 661.72ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3, 3, 3, 3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([18])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 2, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 6), dtype=object, chunksize=(5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 2, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 6), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 6), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 709.82ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 641.81ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 648.17ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 625.06ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 698.28ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=bool, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1, 1, 1, 1, 1, 1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([4, 4, 4, 4, 4, 4], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([cftime.DatetimeProlepticGregorian(1, 4, 2, 0, 0, 3, 0, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 5, 6), dtype=object, chunksize=(2, 5, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 6, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 5, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=object, chunksize=(5,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6,), dtype=bool, chunksize=(6,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([33, 33, 33, 33, 33, 33], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 5, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([18])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 6), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([18])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 1), dtype=object, chunksize=(2, 1, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 1), dtype=object, chunksize=(3, 1, 1), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=object, chunksize=(2, 2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 2), dtype=object, chunksize=(3, 2, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([3, 3, 3], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 3), dtype=object, chunksize=(3, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 4), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 5, 6), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 641.40ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 675.36ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 626.45ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6, 6), dtype=bool, chunksize=(4, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([18])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 628.01ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([4, 4, 4, 4, 4, 4], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 6), dtype=object, chunksize=(2, 1, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 6), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', ''], dtype='<U3')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 6), dtype=object, chunksize=(1, 4, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([4], dtype=int64)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=bool, chunksize=(3, 5, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([2, 2, 2, 2, 2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 652.44ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(3, 6, 6), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 628.84ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 656.43ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 647.39ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 648.60ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 636.45ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 6), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 699.21ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 728.74ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 5), dtype=object, chunksize=(2, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3, 3, 3])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 5), dtype=object, chunksize=(1, 5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2, 2, 2, 2], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 710.90ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 626.99ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 5), dtype=object, chunksize=(2, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 5), dtype=object, chunksize=(1, 5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 678.01ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 681.78ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(2, 3, 1), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 4, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 2), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 3), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 4), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1, 5), dtype=object, chunksize=(2, 1, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 1), dtype=object, chunksize=(3, 1), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 2, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 3, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 4, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 5), dtype=object, chunksize=(2, 2, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(3,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([3, 3, 3])
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1, 6, 5), dtype=object, chunksize=(1, 5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([2, 2], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 4, 4), chunktype=numpy.ndarray>,
+    func='first',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U4')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 5, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 4, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=bool, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(1, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 3, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(1, 3, 3, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 4, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(2, 6, 6), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+/usr/lib/python3/dist-packages/hypothesis/core.py:919: in test
+    raise DeadlineExceeded(
+E   hypothesis.errors.DeadlineExceeded: Test took 679.98ms, which exceeds the deadline of 500.00ms
+
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 4), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 2), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=int8, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(4, 6, 5), dtype=bool, chunksize=(4, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False),
+       cftime.DatetimeGregorian(2, 1, 3, 0, 0, 0, 0, has_year_zero=False)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 4, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5, 6), dtype=object, chunksize=(2, 2, 4), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 4, 2), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 1), dtype=object, chunksize=(3, 3, 1), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(2, 3), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 5), dtype=object, chunksize=(2, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 5), dtype=object, chunksize=(5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(6, 5), dtype=object, chunksize=(5, 2), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U2')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=float32, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='first',
+)
+Draw 1: array([1], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 2, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 3, 4), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([0, 0, 0, 0, 0], dtype=int16)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 6, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(3, 6, 5), chunktype=numpy.ndarray>,
+    func='last',
+)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6, 5), dtype=object, chunksize=(2, 3, 3), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array(['', '', '', '', ''], dtype='<U1')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 6), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True),
+       cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3, 6), dtype=object, chunksize=(3, 5), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', '', '', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(3,), dtype=object, chunksize=(2,), chunktype=numpy.ndarray>,
+    func='nanlast',
+)
+Draw 1: array(['', '', ''], dtype='<U5')
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='last',
+)
+Draw 1: array([1], dtype=int8)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=object, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([cftime.DatetimeNoLeap(2, 1, 1, 0, 0, 0, 1000, has_year_zero=True)],
+      dtype=object)
+Trying example: test_first_last(
+    data=data(...),
+    array=dask.array<array, shape=(1,), dtype=bool, chunksize=(1,), chunktype=numpy.ndarray>,
+    func='nanfirst',
+)
+Draw 1: array([''], dtype='<U1')
+WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress.  When you re-run your tests, shrinking will resume and may take this long before aborting again.
+PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone.
 =============================== warnings summary ===============================
 tests/test_core.py: 968 warnings
   /usr/lib/python3/dist-packages/numpy_groupies/aggregate_numpy.py:219: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
     ret[i] = func(grp)
 
-tests/test_properties.py: 10 warnings
+tests/test_properties.py::test_first_last
+tests/test_properties.py::test_first_last_useless
+tests/test_properties.py::test_first_last_useless
+tests/test_properties.py::test_first_last_useless
+tests/test_properties.py::test_first_last_useless
+tests/test_properties.py::test_first_last_useless
+tests/test_properties.py::test_first_last_useless
   /build/reproducible-path/flox-0.10.0/tests/strategies.py:65: CFWarning: this date/calendar/year zero convention is not supported by CF
     return cftime.num2date(values, units=unit, calendar=cal)
 
 -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
-= 2088 passed, 2287 skipped, 7753 deselected, 108 xfailed, 3 xpassed, 978 warnings in 720.65s (0:12:00) =
-   create-stamp debian/debhelper-build-stamp
-   dh_testroot -O--buildsystem=pybuild
-   dh_prep -O--buildsystem=pybuild
-   dh_auto_install --destdir=debian/python3-flox/ -O--buildsystem=pybuild
-I: pybuild plugin_pyproject:178: Copying package built for python3.12 to destdir
-I: pybuild pybuild:334: rm -rf /build/reproducible-path/flox-0.10.0/debian/python3-flox//usr/lib/python3.12/dist-packages/benchmarks /build/reproducible-path/flox-0.10.0/debian/python3-flox//usr/lib/python3.12/dist-packages/asv_bench
-I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir
-I: pybuild pybuild:334: rm -rf /build/reproducible-path/flox-0.10.0/debian/python3-flox//usr/lib/python3.13/dist-packages/benchmarks /build/reproducible-path/flox-0.10.0/debian/python3-flox//usr/lib/python3.13/dist-packages/asv_bench
-   dh_installdocs -O--buildsystem=pybuild
-   dh_installchangelogs -O--buildsystem=pybuild
-   dh_python3 -O--buildsystem=pybuild
-   dh_installsystemduser -O--buildsystem=pybuild
-   dh_lintian -O--buildsystem=pybuild
-   dh_perl -O--buildsystem=pybuild
-   dh_link -O--buildsystem=pybuild
-   dh_strip_nondeterminism -O--buildsystem=pybuild
-   dh_compress -O--buildsystem=pybuild
-   dh_fixperms -O--buildsystem=pybuild
-   dh_missing -O--buildsystem=pybuild
-   dh_installdeb -O--buildsystem=pybuild
-   dh_numpy3 -O--buildsystem=pybuild
-   dh_gencontrol -O--buildsystem=pybuild
-   dh_md5sums -O--buildsystem=pybuild
-   dh_builddeb -O--buildsystem=pybuild
-dpkg-deb: building package 'python3-flox' in '../python3-flox_0.10.0-1_all.deb'.
- dpkg-genbuildinfo --build=binary -O../flox_0.10.0-1_armhf.buildinfo
- dpkg-genchanges --build=binary -O../flox_0.10.0-1_armhf.changes
-dpkg-genchanges: info: binary-only upload (no source code included)
- dpkg-source --after-build .
-dpkg-buildpackage: info: binary-only upload (no source included)
-dpkg-genchanges: info: including full source code in upload
+=========================== short test summary info ============================
+FAILED ../../../tests/test_properties.py::test_first_last - hypothesis.errors...
+= 1 failed, 2087 passed, 2287 skipped, 7753 deselected, 108 xfailed, 3 xpassed, 975 warnings in 1002.39s (0:16:42) =
+E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/flox-0.10.0/.pybuild/cpython3_3.13_flox/build; python3.13 -m pytest --ignore={dir}/tests/test_asv.py -k "not test_xarray_reduce_single_grouper and not test_func_is_aggregation and not test_groupby_bins_indexed_coordinate and not test_groupby_reduce_all and not test_verify_complex_cohorts and not test_group_by_datetime and not test_find_group_cohorts and not test_cohorts_map_reduce_consistent_dtypes and not test_dtype_accumulation and not test_multi_index_groupby_sum and not test_find_cohorts_missing_groups and not test_snapshot_cohorts and not test_groupby_reduce and not test_scans and not test_ffill_bfill_reverse and not test_groupby_preserve_dtype and not test_blockwise_avoid_rechunk" {dir}/tests
+dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.13" returned exit code 13
+make: *** [debian/rules:29: binary] Error 25
+dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
 I: copying local configuration
+E: Failed autobuilding of package
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/C01_cleanup starting
+debug output: disk usage on i-capture-the-hostname at Sun Jan 26 02:24:49 UTC 2025
+Filesystem      Size  Used Avail Use% Mounted on
+tmpfs           7.7G     0  7.7G   0% /dev/shm
+
+I: user script /srv/workspace/pbuilder/13237/tmp/hooks/C01_cleanup finished
 I: unmounting dev/ptmx filesystem
 I: unmounting dev/pts filesystem
 I: unmounting dev/shm filesystem
 I: unmounting proc filesystem
 I: unmounting sys filesystem
 I: cleaning the build env 
-I: removing directory /srv/workspace/pbuilder/10484 and its subdirectories
-I: Current time: Sat Jan 25 13:46:45 -12 2025
-I: pbuilder-time-stamp: 1737856005
+I: removing directory /srv/workspace/pbuilder/13237 and its subdirectories