apache / cloudberry
Temporal Dependencies

A temporal dependency occurs when developers change two or more files at the same time (i.e. they are a part of the same commit).


Files Most Frequently Changed Together (Top 50)

data...

Pairs # same commits # commits 1 # commits 2 latest commit
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
1 8 (12%) 80 (1%) 2025-04-16
src/backend/tcop/postgres.c
src/backend/parser/analyze.c
1 1027 (<1%) 680 (<1%) 2025-04-11
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h
1 65 (1%) 13 (7%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
1 11 (9%) 66 (1%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
1 66 (1%) 47 (2%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
1 11 (9%) 74 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
1 41 (2%) 11 (9%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
1 8 (12%) 12 (8%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h
1 65 (1%) 43 (2%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp
1 66 (1%) 9 (11%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
1 65 (1%) 74 (1%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp
1 12 (8%) 20 (5%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h
1 12 (8%) 43 (2%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp
1 65 (1%) 9 (11%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp
src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
1 14 (7%) 80 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp
src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp
1 41 (2%) 9 (11%) 2025-04-16
src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp
src/backend/gporca/libgpopt/src/base/CUtils.cpp
1 9 (11%) 61 (1%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h
1 47 (2%) 13 (7%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
1 65 (1%) 47 (2%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp
1 66 (1%) 14 (7%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp
src/backend/gporca/libgpopt/src/base/CUtils.cpp
1 17 (5%) 61 (1%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
src/backend/gporca/libgpopt/src/base/CUtils.cpp
1 12 (8%) 61 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h
1 8 (12%) 43 (2%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp
1 12 (8%) 9 (11%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarAggref.h
1 11 (9%) 11 (9%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
1 67 (1%) 11 (9%) 2025-04-16
src/backend/gporca/server/src/unittest/CTestUtils.cpp
src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp
1 37 (2%) 41 (2%) 2025-04-16
src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h
src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
1 12 (8%) 74 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
1 67 (1%) 66 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp
1 8 (12%) 20 (5%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp
1 67 (1%) 17 (5%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp
src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h
1 47 (2%) 43 (2%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp
1 67 (1%) 14 (7%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h
1 65 (1%) 43 (2%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp
1 67 (1%) 9 (11%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h
src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp
1 66 (1%) 9 (11%) 2025-04-16
src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h
src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h
1 11 (9%) 12 (8%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp
src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h
1 17 (5%) 13 (7%) 2025-04-16
src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp
src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp
1 9 (11%) 9 (11%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
1 12 (8%) 74 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp
src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h
1 41 (2%) 13 (7%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp
1 8 (12%) 14 (7%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
1 8 (12%) 65 (1%) 2025-04-16
src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp
src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
1 65 (1%) 80 (1%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp
1 65 (1%) 20 (5%) 2025-04-16
src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
1 67 (1%) 8 (12%) 2025-04-16
src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp
src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp
1 17 (5%) 74 (1%) 2025-04-16
src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp
src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h
1 8 (12%) 12 (8%) 2025-04-16
src/backend/gporca/server/src/unittest/CTestUtils.cpp
src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp
1 37 (2%) 12 (8%) 2025-04-16
src/backend/gporca/server/src/unittest/CTestUtils.cpp
src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp
1 37 (2%) 65 (1%) 2025-04-16
Dependencies between files in same commits
The number on the lines shows the number of shared commits.
G [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp] [src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp] [src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp] 1 [src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] [src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] 1 [src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp] [src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp] 1 [src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h] [src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h] [src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp]--[src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h] 1 [src/backend/tcop/postgres.c] [src/backend/tcop/postgres.c] [src/backend/parser/analyze.c] [src/backend/parser/analyze.c] [src/backend/tcop/postgres.c]--[src/backend/parser/analyze.c] 1 [src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] [src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp]--[src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp] [src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp]--[src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp]--[src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] 1 [src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp]--[src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp] 1 [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h] [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h] [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h] [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h] [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h]--[src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h] 1 [src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] [src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h]--[src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] 1 [src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarAggref.h] [src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarAggref.h] [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h]--[src/backend/gporca/libnaucrates/include/naucrates/dxl/operators/CDXLScalarAggref.h] 1 [src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h]--[src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h] 1 [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h]--[src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp] 1 [src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] [src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h]--[src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] 1 [src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp] [src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp] [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h]--[src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp] 1 [src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h]--[src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp]--[src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorDXLToExpr.cpp]--[src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] 1 [src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp] [src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp]--[src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] 1 [src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp]--[src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h] 1 [src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp]--[src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp]--[src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp]--[src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp]--[src/backend/gporca/libgpopt/src/xforms/CSubqueryHandler.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp]--[src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp] 1 [src/backend/gporca/libgpopt/src/base/CUtils.cpp] [src/backend/gporca/libgpopt/src/base/CUtils.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp]--[src/backend/gporca/libgpopt/src/base/CUtils.cpp] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp] [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp] [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp]--[src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp]--[src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp]--[src/backend/gporca/libgpopt/include/gpopt/base/CUtils.h] 1 [src/backend/gporca/libgpopt/src/translate/CTranslatorExprToDXL.cpp]--[src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp] 1 [src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp]--[src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] 1 [src/backend/gporca/libgpopt/src/operators/CScalarAggFunc.cpp]--[src/backend/gporca/libgpopt/src/base/CUtils.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp]--[src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp] [src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp]--[src/backend/gporca/libgpopt/include/gpopt/operators/CScalarAggFunc.h] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp]--[src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] 1 [src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp]--[src/backend/gporca/libgpopt/src/base/CUtils.cpp] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp] [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp] [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libnaucrates/src/operators/CDXLScalarAggref.cpp] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libnaucrates/include/naucrates/md/CMDAggregateGPDB.h] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libnaucrates/include/naucrates/dxl/xml/dxltokens.h] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libgpopt/src/operators/COrderedAggPreprocessor.cpp] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformEagerAgg.cpp] 1 [src/backend/gporca/libnaucrates/src/xml/dxltokens.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformSplitDQA.cpp] 1 [src/backend/gporca/server/src/unittest/CTestUtils.cpp] [src/backend/gporca/server/src/unittest/CTestUtils.cpp] [src/backend/gporca/server/src/unittest/CTestUtils.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformUtils.cpp] 1 [src/backend/gporca/server/src/unittest/CTestUtils.cpp]--[src/backend/gporca/libnaucrates/src/operators/CDXLOperatorFactory.cpp] 1 [src/backend/gporca/server/src/unittest/CTestUtils.cpp]--[src/backend/gporca/libgpopt/src/xforms/CXformSplitGbAgg.cpp] 1 [src/backend/gporca/libgpopt/include/gpopt/xforms/CXformEagerAgg.h]--[src/backend/gpopt/translate/CTranslatorDXLToScalar.cpp] 1
Download: SVG DOT (open online Graphviz editor)

Open 2D force graph (file dependencies)... Open 3D force graph (file dependencies)...
Open 2D force graph (file dependencies with commits)... Open 3D force graph (file dependencies with commits)...
Dependencies between components in same commits (primary)
The number on the lines shows the number of shared commits.