Skip navigation

This weekend, Nov 3, 2019, most time zones will set time back one hour.  However, this year, Brazil will not participate in the clock change, now or in the future.  

For questions/official statements about the timezone change itself, please contact the Brazil Government.  IANA has updated Time Zone Database to reflect this change (tzcode2019b.tar) http://www.iana.org/time-zones .  This change is included in the database DST patch v34 Patch 29997937

 

The Database Support team has also put together several KM Notes to help you understand this change.  The Oracle Kernel itself is not impacted by the OS/System clock changes (or for that matter Oracle DST patches) (See KM Note 1013279.6 How does Daylight Savings Time Affect the Database Kernel).  However, columns and datatypes TSTZ and TSLTZ are affected. 

See KM Note 2603532.1  Brazil No Longer Observes DST From November 2019 Onwards- Impact on Oracle RDBMS

 

Kindest Regards
Marilyn

TFA, ORAchk & EXAchk 19.3

New Release TFA, ORAchk & EXAchk 19.3  Now Available

 

ORAchk, EXAchk & TFA Combined into Autonomous Health Framework (AHF)

 

Oracle used to deliver three separate tools:

 

  •     ORAchk
  •     EXAchk
  •     Trace File Analyzer (TFA)

 

These are now combined into a single installer called Autonomous Health Framework (AHF).

 

This single platform specific installer for TFA, ORAchk and EXAchk can be installed either by root (recommended) or not-root users. The installer includes and builds on all functionality of the previous tools.

 

There is no change to the command-line tools, the same commands you used before will still work with this version.

 

orachk, exachk and tfactl can be found in the AHF_LOC/bin directory.

 

Engineered systems have AHF_LOC/bin/exachk and non-engineered systems have AHF_LOC/bin/orachk

 

TFA, ORAchk and EXAchk remain, a value add-on to the existing support contract. There is no extra fee or license required for use.

 

Automatic masking or sanitizing of sensitive information

 

After copies of diagnostic data are collected, TFA, ORAchk and EXAchk use Adaptive Classification and Redaction (ACR) to sanitize sensitive data in the collections.

 

ACR uses a machine learning based engine to redact a predefined set of entity types in a given set of files. ACR also sanitizes or masks entities that occur in path names.

 

  •     Sanitization replaces a sensitive value with random characters
  •     Masking replaces a sensitive value with a series of asterisks

 

ACR currently sanitizes the following entity types:

 

  •     Host names
  •     IP addresses
  •     MAC addresses
  •     Oracle Database names
  •     Tablespace names
  •     Service names
  •     Ports
  •     Operating system user names

 

ORAchk/EXAchk sanitization will convert sensitive data to a string of random characters.

 

To sanitize ORAchk/EXAchk output include the -sanitize option, e.g.:orachk -profile asm -sanitize

 

You can also sanitize post process by passing in an existing log, html report or zip file, i.e.: orachk -sanitize {file_name}

 

TFA diagnostic collections can be redacted (sanitized or masked). To enable automatic redaction use tfactl set redact=[mask|sanitize|none] (default is none)

 

Alternatively collections can be redacted on-demand e.g.:tfactl diagcollect -srdc ORA-00600 -mask or tfactl diagcollect -srdc ORA-00600 -sanitize

 

If you want to reverse lookup a sanitized value, use orachk/exachk -rmap e.g.: orachk -rmap pu406jKxg,kEvGFDT will print the real values associated with those sanitized values

 

Note: orachk -rmap can also be used to lookup a value sanitized by TFA.

 

Problem repair automation options

 

ORAchk and EXAchk now have the capability to automatically fix problems when found.

 

Certain checks have a repair command associated with them.

 

If you want to see what the repair command actually does you can use orachk -showrepair {check_id}

 

To run the repair commands include one of the following options:

 

orachk -repaircheck all

 

orachk -repaircheck {check_id},[{check_id},{check_id}..]

 

orachk -repaircheck {file}

 

Where {check_id} refers to specific check(s) you want to repair or {file} contains a list of check ids to be repaired

 

Performance improvements in diagnostic collection & DBA tools

 

TFA indexes diagnostic data, which is used for DBA tools and diagnostic collections. The indexing has been changed to improve the performance.

 

This change results in lower CPU usage and faster average execution times for diagnostic collections and the running of DBA tools such as ls, grep, tail, vi etc.

 

If you do not use the DBA tools and are prepared to wait longer for DBA tool execution to complete, you can disable this indexing by running

tfactl set indexInventory=false

 

Additionally when TFA is run on an Exadata machine cell collection now takes place in parallel and uses EXAchk to call diagpack for improved performance.

 

New Service Request Data Collections (SRDCs)

 

This release includes new SRDCs.

 

As with all other SRDCs use tfactl diagcollect -srdc srdc_name.

 

  • ahf: Oracle ORAchk or Oracle EXAchk problems (to be run after running with -debug)
  • dbacl: Problems with Access Control Lists (ACLs)
  • dbaqgen: Problems in an Oracle Advanced Queuing Environment
  • dbaqmon: Queue Monitor (QMON) problems
  • dbaqnotify: Notification problems in an Oracle Advanced Queuing Environment
  • dbaqperf: Performance problems in an Oracle Advanced Queuing Environment
  • dbparameters: Oracle Database single instance shutdown problems
  • emagtpatchdeploy: Enterprise Manager 13c Agent patch deployment problems
  • emagentperf: Enterprise Manager 13c Agent performance problems
  • emagentstartup: Enterprise Manager 13c Agent startup problems
  • emfleetpatching: Enterprise Manager Fleet Maintenance Patching problems
  • empatchplancrt: Enterprise Manager patch plan creation problems
  • exservice: Exadata: Storage software service or offload server service problems
  •     ORA-25319: for ORA-25319 problems
  •     ORA-01000: for ORA-01000 problems
  •     ORA-00018: for ORA-00018 problems

 

 

ORAchk and EXAchk integration with Database AutoUpgrade & Cluster Verification Utility (CVU)

 

Both CVU and the database AutoUpgrade tool (in analyze mode) are run by ORAchk & EXAchk in -preupgrade mode

 

All findings from AutoUpgrade and CVU are cross verified to avoid duplication and contradiction.

 

Results are included in the ORAchk/EXAchk report output.

 

CVU checks are only run when a CVU version of 11.2.0.4 or greater if found on the system.

 

CVU related options:

  • -cvuhomewhere to find the CVU installation
  • -cvuonlyonly run CVU checks

 

ORAchk support for ODA X8 machines

  • ORAchk now provides support for ODA X8 machines.

ORAchk and EXAchk support for generic asymmetrical oracle_homes

  • ORAchk and EXAchk used to require all oracle homes to be present on all database servers. If they were not you would see issues such as skipped checks.
  • ORAchk and EXAchk now support asymmetrical oracle_homes, so it does not require the same oracle_home to exist on each node of the cluster.

EXAchk support for Oracle Exadata using RoCE InfiniBand

  • RDMA over Converged Ethernet (RoCE) is a network protocol that allows remote direct memory access (RDMA) over an Ethernet network.
  • EXAchk release 19.3 adds support for RoCE InfiniBand for Oracle Exadata. There are no checks for InfiniBand switches and fabrics when run on RoCE InfiniBand for Oracle Exadata. If the -profile switch is used, it will throw an error saying it is not a supported profile.

The Announcement made at the beginning of CY2018:

 

If you're running an older version of the Oracle Database and you have applications that are actively using DB Links to connect to other databases, regardless of their version, you may need to take action to ensure your database applications continue to work as expected. We are strongly encouraging users of these older databases to consider upgrading to a supported release, or at a minimum, verify the latest patch recommendations have been applied.

 

The issue applies to the following Oracle Databases versions:

10g release 2 (10.2.0.5 and lower)

11g release 1 (11.1.0.7 and lower)

11g release 2 (11.2.0.3 and lower)

12c release 1 (12.1.0.1)

 

If you are on one of the following Database versions, this issue will not affect you:

11g release 2 (11.2.0.4)

12c release 1 (12.1.0.2)

12c release 2 (12.2.0.1)

18c

19c

 

The detailed instructions with the required patches that you need to apply incase you can't upgrade your databases to recommended versions are outlined in DOC ID 2335265.1

 

These patches will increase the Database’s SCN Rate limit automatically from 16K/s to 96K/s, and enable databases to support much higher transaction rates. This fix is already present in 11.2.0.4, 12.1.0.2, 12.2.0.1 and all versions above 12.2.0.1. This SCN rate increase also knows as SCN rollover was slated to happen automatically on June 23rd 2019 on all the above versions and also the lower versions patched to recommended levels.

 

If the patches are not applied, the unpatched database will have a lower SCN rate or lower current max SCN limit.

 

Sometimes, there can be a scenario where in the patched database can be at higher SCN level while the unpatched database is at much lower SCN level due to these rate limit allowance differences. When there is a requirement to connect these patched and unpatched databases, the SCN sync has to happen and if this sync needs the SCN to increase more than the Current max SCN limit in the unpatched database, the dblink connection will fail.

 

Current Status:

 

For 11.2.0.4 & above versions and for patched lower versions, the automatic SCN Rate Limit Increase from 16K/s to 96K/s has already happened on June 23rd, 2019. No major issues were reported.

You would have noticed a message similar to below in the alert log of the databases that are at the recommended patch levels on June 23rd, 2019.

"Database SCN compatibility changed from 1 to 3 due to auto-rollover"

Even if the database was down during this autorollover period, the rollover would have automatically happened whenever the database started after June 23rd, 2019. You would see the same message immediately after the database startup.

 

Action:

 

If you haven't already upgraded the databases or moved them to the recommended patch levels, please do so as soon as possible to eliminate the potential risk on your database links (refer DOC ID 2335265.1). Until then, please monitor the 16k/s SCN headroom of the patched/upgraded database(that has dblinks pointing to lower/unpatched databases) using the script from the DOC ID 1393363.1. If this headroom falls below 20, please remove the dblink connections to unpatched databases and upgrade/patch the unpatched database immediately for the dblink connections to work.

The 16k/s SCN headroom can be monitored using the script from the DOC ID 1393363.1

 

If you want to verify if your database is already running at 96K/s limit(or compatibility 3), you can use the below procedure. If the "Current SCN Compatibility" shows 3, you are at 96K/s SCN rate limit. Please make a note that this procedure may not work in some of the older database versions.

set serveroutput on;

declare

cur_scn_compat number;

max_scn_compat number;

begin

dbms_scn.GetCurrentSCNParams(cur_scn_compat,max_scn_compat);

dbms_output.put_line('Current SCN Compatibility=' || cur_scn_compat);

dbms_output.put_line('max_scn_compat=' || max_scn_compat);

end;

/

 

Thank you for reading this blog post.  Let us know if you have any questions or if there are other areas you would like to see discussed in this forum. 

Oracle

 

Extended Support Fee Waiver for Oracle Database 12.1 and 11.2 for Oracle E-Business Suite

Due to the certification timing of Oracle E-Business Suite with Oracle Database versions beyond 12.1, Oracle has waived Extended Support fees for Oracle Database 12.1 and 11.2 for Oracle Database licenses used for Oracle E-Business Suite through December 2020.

 

This Extended Support fee waiver will be specific to the Oracle Database licenses, within your company’s footprint, that you use for running Oracle E-Business Suite software.

 

If you have already paid your Oracle Database Extended Support fees, you may be eligible to receive a credit that we will apply against your Oracle account.

 

The Lifetime Support section of the Oracle Software Technical Support Policies documents the Extended Support fee waiver. To contact Oracle and determine your eligibility for either the Extended Support fee waiver or credit for previously paid Extended Support fees, you can either access your on-premises Oracle Premier Support Renewal information via My Support Renewals using your Oracle Single Sign-On and log a service request or, alternatively, you can contact Oracle Support Renewals using the Oracle Global Contacts page.

 

Oracle has been a trusted resource for our customers for over 40 years. We always strive to provide innovations that help your business succeed and help you keep your systems secure. We look forward to our continuing relationship.

What's New in Trace File Analyzer 19.2

For details of previous version history Download the TFA Version History

 

New features in TFA 19.2:

Temporarily restrict automatic collections for specific events

 

  • dbracinst: Oracle RAC-related data collection for Oracle Database problems
  • gridinfra: Oracle RAC-related data collection for Oracle Clusterware problems
  • gridinfrainst: Data collection for Oracle RAC upgrade and patching problems
  • exsmartscan: Oracle Exadata - Smart Scan not working problems
  • zlgeneric: Data collection for Zero Data Loss Recovery Appliance (ZDLRA) problems

 

Event specific collection for default diagnostic collection

 

The default diagcollect has been enhanced to make it easier to collect the most useful diagnostics.

When you run a default diagnostic collection it will now present you with a list of recent events to optionally collect for.

 

 

Option to restrict the collection of excessively large files

 

Prevent excessively large files from delaying or stalling collections.

Run tfactl set maxfilecollectionsize for the diagnostic collection command to consider only the last 200 KB for the files that are larger than the size specified.

 

For more information on the TFA Collector, see TFA Collector - TFA with Database Support Tools Bundle (Note 1513912.1)

Upgrading an Oracle Database While Performing A Migration (Cross Platform or Within the Same OS)

 

This article will explain process of upgrading the database during the migration process. Performing migration and upgrade separately will take considerably long time, but by following correct process you should be able to perform both activities together.

 

Difference between upgrade and migration

Upgrade refers to the upgrade of the software version, while migration refers to moving the database from one location to another location.(he release version may or may not be changed)

 

Before performing migration or upgrade, verify the compatibility:

  • Compatibility of upgrade ( using DBUA/manual Method)

Before performing upgrade make sure that you are upgrading to supported version, refer to below document (This applicable to manual or DBUA upgrade)

 

Database Server Upgrade/Downgrade Compatibility Matrix (Doc ID 551141.1)

 

  • Compatibility of upgrade ( using Exp/Imp )

For upgrade using exp/imp follow below compatibility matrix:

 

Compatibility Matrix for Export And Import Between Different Oracle Versions [Video] (Doc ID 132904.1)

 

  • Compatibility of Migration

Before migrating the database to another OS make sure to verify the Endian compatibility as not all methods support cross platform migration.

 

 

  

Different Method of upgrade

Basically there are two ways of upgrading the database.

  • Running Catupgrd.sql ( Manual or DBUA)
  • EXP/IMP or EXPDP/IMPDP

 

Pre-Upgrade / Pre-Migration steps

Make sure to verify all pre-upgrade check in source Database, Execute Pre-upgrade script from source home as shown below:

 

This script will perform pre-upgrade check and provide recommendations. Follow all the recommendations/warnings by this script carefully. This will eliminate most of the known issues during upgrade. Also make sure that there is no component in invalid state or there is  no SYS/SYSTEM owned objects in invalid state before performing upgrade. Any invalid components, objects ( Owned by SYS/SYSTEM) can cause issue during upgrade.

Running these steps are often missed during migration, you need to fix existing issues in source database before migration if you will perform upgrade as well.

 

Different Method of Migration

There are multiple methods of upgrading and migrating database together. Below are some methods:

  • OS or SAN copy
  • EXP/IMP or EXPDP/IMPDP
  • RMAN backup and Restore
  • RMAN duplicate with noopen mode.
  • Other methods

 

Below method describe the different process:

 

Migration Of An Oracle Database Across OS Platforms (Generic Platform)(Doc ID 733205.1)

 

ADVISOR WEBCAST:

We invite you to attend a 1 hr webcast on this topic scheduled on 23rd April 2019 that explains these methods in details.

 

Upgrading an Oracle Database While Performing A Migration (Cross Platform or Within the Same OS)

 

Schedule:

Tuesday , April 23, 2019 08:00 AM (US Pacific Time)

Tuesday , April 23, 2019 05:00 PM (Central European Time)

Tuesday , April 23, 2019 08:30 PM (India Standard Time)

            

WebEx Conference Details

Event Number: 598 439 151

Event Passcode: 909090

Register for this Advisor Webcast: https://oracleaw.webex.com/oracleaw/onstage/g.php?d=598439151&t=a

Once the host approves your request, you will receive a confirmation email with instructions for joining the meeting.

What is AskTOM Office Hours?

 

Office Hours offers free, live Q&A sessions with experts in various aspects of Oracle technologies. Our experts are drawn from the ranks of Product Managers, developers, development managers and evangelists. We make ourselves available each month to help you be as successful as you can with Oracle products.

 

Why should you subscribe?

 

You don't have to register for an Office Hours on a particular topic. You can simply click on the Join Session button when you go to your Office Hours page within an hour of a session starting.

If you register, however, you will:

  • Get email reminders of your upcoming sessions (a weekly digest on Monday with all your upcoming Office Hours for that week + a reminder within an hour of the sesion starting).
  • Send a question to the experts in advance of the session. This will give us a chance to review the question and prepare an answer.
  • Rate the session and give us advice on how to improve Office Hours in the future.
  • Hear about new Office Hours sessions we've recently added.

So we hope you'll sign up and take full advantage of Office Hours!

 

How does Office Hours work?

 

The Office Hours page will display a Join Session within an hour of your session starting. Click on the link when the time is right, and you'll be placed in the conference, where we will take your questions via chat. 

Check the Get Ready section on the page in advance of the session, so you can make sure your browser and computer are configured properly to participate in the webcast.

 

And if I don't want reminders?

 

We understand. You probably get an awful lot of emails. You'll get at most one digest email on Monday, and one reminder before your session. But if you want to rely solely on your memory and calendar, just sign in to AskTOM, navigate to the Office Hours session and click on the Withdraw button. You will no longer receive notice of sessions on this topic.

 

What can I ask about?

 

Office Hours sessions will usually have a particular focus (example: exception handling in PL/SQL), but could also be a truly open Q&A session ("Ask me anything about PL/SQL").

The objective of Office Hours is to improve your expertise at utilizing Oracle Database to build your applications. Office Hours is not a substitute for My Oracle Support. We will not discuss tickets logged with Support. Office Hours is not a place to discuss licensing or account issues. You need to take up such issues with your Oracle account representative.

You are welcome to share code with us on an Office Hours session, but please be aware that other developers not working for your company may see that code. By sharing your code, you are also giving us permission to view and display that code to others.

 

Here are some of the upcoming AskTom Sessions that you might enjoy:

 

For a full list of upcoming sessions, go here: https://asktom.oracle.com/pls/apex/f?p=100:500:::NO:RP::

In 12c, Oracle XML Database (XDB) is a mandatory component and cannot be uninstalled.  This is because there are many dependencies on XDB.  The following database components / features rely on XDB to be installed and in a VALID state:

•    Oracle Application Express (APEX)

•    Oracle Expression Filter

•    Oracle interMedia / Multimedia DICOM

•    Oracle Multimedia Image metadata extraction of EXIF, ORDIMAGE, IPTC and XMP metadata

•    Spatial (including Oracle Locator)

•    OLAP

•    Oracle Applications such as iRecruitment

•    Any procedure using UTL_TCP, UTL_HTTP, UTL_SMTP

•    XMLTYPE operations

•    XBRL (Extensible Business Reporting Language) from 11.2.0.2 onwards

 

If the XDB component becomes invalid, this will cause the components above to become invalid as well.  XDB can become invalid for different reasons, but a common culprit is the setting for the LD_LIBRARY_PATH / LIBPATH / SHLIB_PATH environment variable.  This environment variable is used to resolve the location of the shared library "libxdb.so" (libxdb.sl on HP).  If Oracle is not able to access that library, many different errors / symptoms can occur.

 

First, lets discuss which platform uses which environment variable:

 

 

Environment Variable Platforms
LD_LIBRARY_PATH           Linux, Solaris
LIBPATH AIX
SHLIB_PATH                       HP

 

 

Often times, the LD_LIBRARY_PATH environment variable is set for AIX.  However, that setting will have no affect as AIX uses the LIBPATH environment variable.  Keep this in mind if you are using AIX.

 

It is very important that the LD_LIBRARY_PATH / LIBPATH / SHLIB_PATH environment variable be set correctly.  That is, the first directory referenced must be $ORACLE_HOME/lib.  You can reference other paths in this setting, but they cannot be the first path.

 

If this environment variable is not set correctly when the instance is last started, you may receive one or more of the following errors when installing XDB, upgrading XDB, configuring APEX, running an Export, selecting from xdb.xdb$resource/sys.dba_network_acls, or using other XDB features:

•    ORA-31159: XML DB is in an invalid state

•    ORA-00600: internal error code, arguments: [unable to load XDB library]

•    ORA-00600: internal error code, arguments: [qmx: no ref]

•    ORA-00600: internal error code, arguments: [qmtGetColumnInfo1]

•    ORA-00600: internal error code, arguments: [qmtb_init_len]

•    ORA-00600: internal error code, arguments: [qmtGetBaseType]

•    ORA-00600: internal error code, arguments: [psdnop-1], [600]

•    ORA-00600: internal error code, arguments: [qmtInit1]

•    ORA-07445: exception encountered: core dump [_memcpy()+224] [SIGSEGV] [Address not mapped to object]

•    ORA-19051 Cannot use fast path insert for this XMLType table

•    ORA-31011: XML parsing failed

•    ORA-00600: internal error code, arguments: [qmtcolcb_nomatch], [ID], [annotation], [], [], [], [], [], [], [], [], []

 

Errors of this sort generally occur when the init routines for the internal XDB functions are run in an invalid environment, causing memory corruption.

 

Many failed upgrades happen because the LD_LIBRARY_PATH / LIBPATH / SHLIB_PATH environment variable is pointing to the wrong $ORACLE_HOME/lib directory rather than to the correct location for the instance, or it is not even set at all.

 

 

To check if the LD_LIBRARY_PATH / LIBPATH / SHLIB_PATH environment variable was set correctly during the last database startup, run the following OS commands:

 

Determine the pid of the smon process:

 

% ps -ef | grep smon

 

Get the environment of the smon process:

 

% pargs -e  <pid from above> -- Solaris

% ps eauwww <pid from above> -- Linux and AIX

 

See the following document for more information:

(Doc ID 373303.1) How to Check the Environment Variables for an Oracle Process

 

If you find that the LD_LIBRARY_PATH / LIBPATH / SHLIB_PATH environment variable is not set or is not set correctly, do the following:

 

1. Shutdown the database

 

2. Set LD_LIBRARY_PATH (LIBPATH for AIX or SHLIB_PATH for HP) as follows:

 

    csh: setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:<other paths>

    ksh: export LD_LIBRARY_PATH=$ORACLE_HOME/lib:<other paths>

 

3. On AIX only, run /usr/sbin/slibclean as root to remove any currently unused modules in the kernel and library memory.

 

4. Restart the database.

 

If you are using RAC and startup the database with the SVRCTL command, see the document below:

(Doc ID 733567.1) Setting Environment Variables Through Srvctl

 

We hope this information is helpful. For more information on the installation of XDB and best practices, see the following document:

(Doc ID 1292089.1) Master Note for Oracle XML Database (XDB) Install / Deinstall

Oracle Trace File Analyzer 18.4.1

New Release Trace File Analyzer 18.4.1  Now Available

 

New SRDCs (Service Request Diagnostic Collections)

The following new SRDCs are now available:

  • dbdatapatch - for Datapatch problems
  • dbstandalonedbca - for Database Configuration Assistant problems
  • dbspatialinstall - for Oracle Spatial Installation problems
  • dbrmanperf - has been updated to include diagnostic data collection for RMAN Backup, RMAN Maintenance, RMAN Restore and Recover, RMAN-08137 or RMAN-08120, and RMAN Performance problems
  • dbtextupgrade - for Oracle Text version 12.1.0.1 and later upgrade problems
  • ORA-04023 - for ORA-04023 problems
  • ORA-04063 - for ORA-04063 problems
  • dbspatialexportimport - for Oracle Spatial Export/Import problems

 

As with all other SRDCs use tfactl diagcollect -srdc srdc_name.

Merging of multiple automatic SRDCs

If TFA detects a significant event, then it waits five minutes to check any other events, which occur as a result, and collects all of these.

If there are multiple SRDC related events, which occur on the same Database within that five minute period, then TFA performs one merged SRDC collection for all of them.

For example: If an ORA-00600 event occurs and 30 seconds later an ORA-04031 event occurs, then TFA performs one SRDC that collects everything necessary to resolve both the errors.  Merging of SRDCs applies to the following:

 

  • ORA-07445
  • ORA-04030
  • ORA-04031

Over future releases the automatic collection of specific SRDCs will be extended to cover other events.

Running SRDC commands in silent mode

SRDCs have prompts for problem details, which are specific to the SRDC type.

The answers to these prompts can now be provided directly from the command line, allowing the full automation of all SRDCs.

You can view the SRDC-specific prompt by running:

tfactl diagcollection -srdc {srdc_type} -help

Welcome to the My Oracle Support Community! We highly encourage you to personalize your community display name to make your activity more memorable. Please see https://community.oracle.com/docs/DOC-1022508 for instructions.