# STDOUT: ---v---v---v---v---v--- ansible-playbook [core 2.16.0] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /opt/ansible-2.16/lib/python3.11/site-packages/ansible ansible collection location = /WORKDIR/git-weekly-ci4ebkw5o1/.collection executable location = /opt/ansible-2.16/bin/ansible-playbook python version = 3.11.5 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/opt/ansible-2.16/bin/python) jinja version = 3.1.2 libyaml = True Using /etc/ansible/ansible.cfg as config file Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. PLAYBOOK: tests_default.yml **************************************************** 1 plays in /WORKDIR/git-weekly-ci4ebkw5o1/tests/tests_default.yml PLAY [Ensure that the role runs with default parameters] *********************** TASK [fedora.linux_system_roles.crypto_policies : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:3 Saturday 16 March 2024 04:45:30 +0000 (0:00:00.013) 0:00:00.013 ******** included: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml for sut TASK [fedora.linux_system_roles.crypto_policies : Ensure ansible_facts used by role] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:2 Saturday 16 March 2024 04:45:30 +0000 (0:00:00.010) 0:00:00.024 ******** ok: [sut] TASK [fedora.linux_system_roles.crypto_policies : Check if system is ostree] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:10 Saturday 16 March 2024 04:45:31 +0000 (0:00:00.570) 0:00:00.595 ******** ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [fedora.linux_system_roles.crypto_policies : Set flag to indicate system is ostree] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:15 Saturday 16 March 2024 04:45:31 +0000 (0:00:00.243) 0:00:00.838 ******** ok: [sut] => { "ansible_facts": { "__crypto_policies_is_ostree": false }, "changed": false } TASK [fedora.linux_system_roles.crypto_policies : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:19 Saturday 16 March 2024 04:45:31 +0000 (0:00:00.012) 0:00:00.851 ******** skipping: [sut] => (item=RedHat.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "RedHat.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=CentOS.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "CentOS.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=CentOS_8.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "CentOS_8.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=CentOS_8.yml) => { "ansible_loop_var": "item", "changed": false, "false_condition": "__vars_file is file", "item": "CentOS_8.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => { "changed": false } MSG: All items skipped TASK [fedora.linux_system_roles.crypto_policies : Ensure required packages are installed] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:6 Saturday 16 March 2024 04:45:31 +0000 (0:00:00.017) 0:00:00.868 ******** ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: crypto-policies crypto-policies-scripts TASK [fedora.linux_system_roles.crypto_policies : Gather facts] **************** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:12 Saturday 16 March 2024 04:45:34 +0000 (0:00:02.799) 0:00:03.667 ******** included: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml for sut TASK [fedora.linux_system_roles.crypto_policies : Find out what is the currently active policy] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:3 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.010) 0:00:03.678 ******** ok: [sut] => { "changed": false, "cmd": [ "update-crypto-policies", "--show" ], "delta": "0:00:00.069350", "end": "2024-03-16 04:45:34.497313", "rc": 0, "start": "2024-03-16 04:45:34.427963" } STDOUT: DEFAULT TASK [fedora.linux_system_roles.crypto_policies : Set current policy fact] ***** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:9 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.314) 0:00:03.993 ******** ok: [sut] => { "ansible_facts": { "crypto_policies_active": "DEFAULT" }, "changed": false } TASK [fedora.linux_system_roles.crypto_policies : Find base policies files] **** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:15 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.010) 0:00:04.003 ******** ok: [sut] => { "changed": false, "examined": 7, "files": [ { "atime": 1709714802.077, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 6847522, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/DEFAULT.pol", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 2153, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 6847523, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/EMPTY.pol", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 267, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 6847524, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/FIPS.pol", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 1726, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 6847525, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/FUTURE.pol", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 2102, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 6847526, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/LEGACY.pol", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 2471, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } ], "matched": 5, "skipped_paths": {} } MSG: All paths examined TASK [fedora.linux_system_roles.crypto_policies : Set available base policies fact] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:23 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.250) 0:00:04.253 ******** ok: [sut] => { "ansible_facts": { "crypto_policies_available_policies": [ "DEFAULT", "EMPTY", "FIPS", "FUTURE", "LEGACY" ] }, "changed": false } TASK [fedora.linux_system_roles.crypto_policies : Find subpolicy files] ******** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:30 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.022) 0:00:04.276 ******** ok: [sut] => { "changed": false, "examined": 5, "files": [ { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 672347, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/modules/AD-SUPPORT.pmod", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 322, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 672348, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/modules/ECDHE-ONLY.pmod", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 121, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 672349, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/modules/NO-CAMELLIA.pmod", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 90, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 672350, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/modules/NO-SHA1.pmod", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 123, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1690903086.0, "ctime": 1709714766.661, "dev": 51713, "gid": 0, "gr_name": "root", "inode": 672351, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1690903086.0, "nlink": 1, "path": "/usr/share/crypto-policies/policies/modules/OSPP.pmod", "pw_name": "root", "rgrp": true, "roth": true, "rusr": true, "size": 1986, "uid": 0, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } ], "matched": 5, "skipped_paths": {} } MSG: All paths examined TASK [fedora.linux_system_roles.crypto_policies : Set available subpolicies fact] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:38 Saturday 16 March 2024 04:45:34 +0000 (0:00:00.190) 0:00:04.466 ******** ok: [sut] => { "ansible_facts": { "crypto_policies_available_subpolicies": [ "AD-SUPPORT", "ECDHE-ONLY", "NO-CAMELLIA", "NO-SHA1", "OSPP" ] }, "changed": false } TASK [fedora.linux_system_roles.crypto_policies : Set crypto_policies_available_modules fact (deprecated)] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:45 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.019) 0:00:04.485 ******** ok: [sut] => { "ansible_facts": { "crypto_policies_available_modules": [ "AD-SUPPORT", "ECDHE-ONLY", "NO-CAMELLIA", "NO-SHA1", "OSPP" ] }, "changed": false } TASK [fedora.linux_system_roles.crypto_policies : Update crypto policy if needed] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:51 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.009) 0:00:04.495 ******** skipping: [sut] => { "changed": false, "false_condition": "crypto_policies_policy is not none", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.crypto_policies : Set the reboot_required flag if needed] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:63 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.009) 0:00:04.504 ******** skipping: [sut] => { "changed": false, "false_condition": "crypto_policies_policy is not none", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.crypto_policies : Update facts after applying policy] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:71 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.009) 0:00:04.514 ******** included: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml for sut TASK [fedora.linux_system_roles.crypto_policies : Find out what is the currently active policy] *** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:3 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.008) 0:00:04.522 ******** ok: [sut] => { "changed": false, "cmd": [ "update-crypto-policies", "--show" ], "delta": "0:00:00.054670", "end": "2024-03-16 04:45:35.266150", "rc": 0, "start": "2024-03-16 04:45:35.211480" } STDOUT: DEFAULT TASK [fedora.linux_system_roles.crypto_policies : Set current policy fact] ***** task path: /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:9 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.239) 0:00:04.761 ******** ok: [sut] => { "ansible_facts": { "crypto_policies_active": "DEFAULT" }, "changed": false } TASK [Flush handlers] ********************************************************** task path: /WORKDIR/git-weekly-ci4ebkw5o1/tests/tests_default.yml:11 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.010) 0:00:04.772 ******** META: triggered running handlers for sut TASK [Check the current policy is DEFAULT and common variables] **************** task path: /WORKDIR/git-weekly-ci4ebkw5o1/tests/tests_default.yml:14 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.001) 0:00:04.774 ******** ok: [sut] => { "changed": false } MSG: All assertions passed PLAY RECAP ********************************************************************* sut : ok=17 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0 Saturday 16 March 2024 04:45:35 +0000 (0:00:00.013) 0:00:04.787 ******** =============================================================================== fedora.linux_system_roles.crypto_policies : Ensure required packages are installed --- 2.80s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:6 fedora.linux_system_roles.crypto_policies : Ensure ansible_facts used by role --- 0.57s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:2 fedora.linux_system_roles.crypto_policies : Find out what is the currently active policy --- 0.31s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:3 fedora.linux_system_roles.crypto_policies : Find base policies files ---- 0.25s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:15 fedora.linux_system_roles.crypto_policies : Check if system is ostree --- 0.24s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:10 fedora.linux_system_roles.crypto_policies : Find out what is the currently active policy --- 0.24s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:3 fedora.linux_system_roles.crypto_policies : Find subpolicy files -------- 0.19s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:30 fedora.linux_system_roles.crypto_policies : Set available base policies fact --- 0.02s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:23 fedora.linux_system_roles.crypto_policies : Set available subpolicies fact --- 0.02s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:38 fedora.linux_system_roles.crypto_policies : Set platform/version specific variables --- 0.02s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:19 Check the current policy is DEFAULT and common variables ---------------- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/tests/tests_default.yml:14 --------------------- fedora.linux_system_roles.crypto_policies : Set flag to indicate system is ostree --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/set_vars.yml:15 fedora.linux_system_roles.crypto_policies : Set platform/version specific variables --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:3 fedora.linux_system_roles.crypto_policies : Gather facts ---------------- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:12 fedora.linux_system_roles.crypto_policies : Set current policy fact ----- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:9 fedora.linux_system_roles.crypto_policies : Set current policy fact ----- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/gather_facts.yml:9 fedora.linux_system_roles.crypto_policies : Update crypto policy if needed --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:51 fedora.linux_system_roles.crypto_policies : Set the reboot_required flag if needed --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:63 fedora.linux_system_roles.crypto_policies : Set crypto_policies_available_modules fact (deprecated) --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:45 fedora.linux_system_roles.crypto_policies : Update facts after applying policy --- 0.01s /WORKDIR/git-weekly-ci4ebkw5o1/.collection/ansible_collections/fedora/linux_system_roles/roles/crypto_policies/tasks/main.yml:71 ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- [DEPRECATION WARNING]: ANSIBLE_COLLECTIONS_PATHS option, does not fit var naming standard, use the singular form ANSIBLE_COLLECTIONS_PATH instead. This feature will be removed from ansible-core in version 2.19. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. ---^---^---^---^---^---