Log Messages

Total 104 item.
#TimeSince previousLevelCategoryMessage
   
116:46:01.266
< 0ms >
traceyii\base\Application::bootstrapBootstrap with yii\bootstrap5\i18n\TranslationBootstrap::bootstrap()
216:46:01.268
< 1ms >
traceyii\base\Application::bootstrapBootstrap with yii\log\Dispatcher
316:46:01.268
< 0ms >
traceyii\base\Module::getModuleLoading module: debug
416:46:01.268
< 0ms >
traceyii\redis\Connection::openOpening redis DB connection: tcp://private-redis-agent-staging-do-user-13748639-0.b.db.ondigitalocean.com:25061, database=1
516:46:01.303
< 34ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: AUTH
616:46:01.314
< 10ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
716:46:01.316
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
816:46:01.317
< 1ms >
infoyii\web\Session::openSession started
916:46:01.317
< 0ms >
infoyii\db\Connection::openOpening DB connection: pgsql:host=private-postgresql-agent-staging-do-user-13748639-0.b.db.ondigitalocean.com;port=25060;dbname=defaultdb
1016:46:01.349
< 31ms >
infoyii\db\Command::querySELECT d.nspname AS table_schema, c.relname AS table_name, a.attname AS column_name, COALESCE(td.typname, tb.typname, t.typname) AS data_type, COALESCE(td.typtype, tb.typtype, t.typtype) AS type_type, (SELECT nspname FROM pg_namespace WHERE oid = COALESCE(td.typnamespace, tb.typnamespace, t.typnamespace)) AS type_scheme, a.attlen AS character_maximum_length, pg_catalog.col_description(c.oid, a.attnum) AS column_comment, a.atttypmod AS modifier, a.attnotnull = false AS is_nullable, CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default, coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) OR attidentity != '' AS is_autoinc, pg_get_serial_sequence(quote_ident(d.nspname) || '.' || quote_ident(c.relname), a.attname) AS sequence_name, CASE WHEN COALESCE(td.typtype, tb.typtype, t.typtype) = 'e'::char THEN array_to_string((SELECT array_agg(enumlabel) FROM pg_enum WHERE enumtypid = COALESCE(td.oid, tb.oid, a.atttypid))::varchar[], ',') ELSE NULL END AS enum_values, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS numeric_precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 END ELSE null END AS numeric_scale, CAST( information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) AS numeric ) AS size, a.attnum = any (ct.conkey) as is_pkey, COALESCE(NULLIF(a.attndims, 0), NULLIF(t.typndims, 0), (t.typcategory='A')::int) AS dimension FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_type tb ON (a.attndims > 0 OR t.typcategory='A') AND t.typelem > 0 AND t.typelem = tb.oid OR t.typbasetype > 0 AND t.typbasetype = tb.oid LEFT JOIN pg_type td ON t.typndims > 0 AND t.typbasetype > 0 AND tb.typelem = td.oid LEFT JOIN pg_namespace d ON d.oid = c.relnamespace LEFT JOIN pg_constraint ct ON ct.conrelid = c.oid AND ct.contype = 'p' WHERE a.attnum > 0 AND t.typname != '' AND NOT a.attisdropped AND c.relname = 'member' AND d.nspname = 'public' ORDER BY a.attnum;
1116:46:01.373
< 23ms >
infoyii\db\Command::queryselect ct.conname as constraint_name, a.attname as column_name, fc.relname as foreign_table_name, fns.nspname as foreign_table_schema, fa.attname as foreign_column_name from (SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s FROM pg_constraint ct ) AS ct inner join pg_class c on c.oid=ct.conrelid inner join pg_namespace ns on c.relnamespace=ns.oid inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s] left join pg_class fc on fc.oid=ct.confrelid left join pg_namespace fns on fc.relnamespace=fns.oid left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s] where ct.contype='f' and c.relname='member' and ns.nspname='public' order by fns.nspname, fc.relname, a.attnum
1216:46:01.384
< 10ms >
infoyii\db\Command::querySELECT * FROM "member" WHERE ("id"='1f05e3b5-5aee-6d5a-8f45-5e1409fc0711') AND ("is_deleted"=0) AND ("status" IN (1, 2))
1316:46:01.388
< 4ms >
traceyii\base\Application::bootstrapBootstrap with yii\debug\Module::bootstrap()
1416:46:01.389
< 0ms >
traceyii\base\Module::getModuleLoading module: gii
1516:46:01.389
< 0ms >
traceyii\base\Application::bootstrapBootstrap with yii\gii\Module::bootstrap()
1616:46:01.389
< 0ms >
traceyii\web\Application::handleRequestRoute requested: 'deposit/index'
1716:46:01.389
< 0ms >
traceyii\base\Controller::runActionRoute to run: deposit/index
1816:46:01.389
< 0ms >
traceyii\redis\Connection::openOpening redis DB connection: tcp://private-redis-agent-staging-do-user-13748639-0.b.db.ondigitalocean.com:25061, database=0
1916:46:01.399
< 10ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: AUTH
2016:46:01.403
< 4ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
2116:46:01.412
< 8ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2216:46:01.413
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2316:46:01.414
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2416:46:01.415
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2516:46:01.416
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2616:46:01.416
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2716:46:01.417
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2816:46:01.418
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
2916:46:01.420
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3016:46:01.421
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3116:46:01.422
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3216:46:01.422
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3316:46:01.423
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3416:46:01.423
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3516:46:01.424
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3616:46:01.425
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3716:46:01.425
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3816:46:01.426
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
3916:46:01.427
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
4016:46:01.427
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
4116:46:01.428
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
4216:46:01.429
< 0ms >
traceyii\base\InlineAction::runWithParamsRunning action: app\controllers\DepositController::actionIndex()
4316:46:01.429
< 0ms >
infoyii\db\Command::querySELECT d.nspname AS table_schema, c.relname AS table_name, a.attname AS column_name, COALESCE(td.typname, tb.typname, t.typname) AS data_type, COALESCE(td.typtype, tb.typtype, t.typtype) AS type_type, (SELECT nspname FROM pg_namespace WHERE oid = COALESCE(td.typnamespace, tb.typnamespace, t.typnamespace)) AS type_scheme, a.attlen AS character_maximum_length, pg_catalog.col_description(c.oid, a.attnum) AS column_comment, a.atttypmod AS modifier, a.attnotnull = false AS is_nullable, CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default, coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) OR attidentity != '' AS is_autoinc, pg_get_serial_sequence(quote_ident(d.nspname) || '.' || quote_ident(c.relname), a.attname) AS sequence_name, CASE WHEN COALESCE(td.typtype, tb.typtype, t.typtype) = 'e'::char THEN array_to_string((SELECT array_agg(enumlabel) FROM pg_enum WHERE enumtypid = COALESCE(td.oid, tb.oid, a.atttypid))::varchar[], ',') ELSE NULL END AS enum_values, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS numeric_precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 END ELSE null END AS numeric_scale, CAST( information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) AS numeric ) AS size, a.attnum = any (ct.conkey) as is_pkey, COALESCE(NULLIF(a.attndims, 0), NULLIF(t.typndims, 0), (t.typcategory='A')::int) AS dimension FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_type tb ON (a.attndims > 0 OR t.typcategory='A') AND t.typelem > 0 AND t.typelem = tb.oid OR t.typbasetype > 0 AND t.typbasetype = tb.oid LEFT JOIN pg_type td ON t.typndims > 0 AND t.typbasetype > 0 AND tb.typelem = td.oid LEFT JOIN pg_namespace d ON d.oid = c.relnamespace LEFT JOIN pg_constraint ct ON ct.conrelid = c.oid AND ct.contype = 'p' WHERE a.attnum > 0 AND t.typname != '' AND NOT a.attisdropped AND c.relname = 'deposit' AND d.nspname = 'public' ORDER BY a.attnum;
4416:46:01.441
< 11ms >
infoyii\db\Command::queryselect ct.conname as constraint_name, a.attname as column_name, fc.relname as foreign_table_name, fns.nspname as foreign_table_schema, fa.attname as foreign_column_name from (SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s FROM pg_constraint ct ) AS ct inner join pg_class c on c.oid=ct.conrelid inner join pg_namespace ns on c.relnamespace=ns.oid inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s] left join pg_class fc on fc.oid=ct.confrelid left join pg_namespace fns on fc.relnamespace=fns.oid left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s] where ct.contype='f' and c.relname='deposit' and ns.nspname='public' order by fns.nspname, fc.relname, a.attnum
4516:46:01.447
< 6ms >
infoyii\db\Command::querySELECT * FROM "deposit" WHERE ("member_id"='1f05e3b5-5aee-6d5a-8f45-5e1409fc0711') AND ("status"=1)
4616:46:01.450
< 3ms >
traceyii\base\View::renderFileRendering view file: /var/www/member-area/views/deposit/pending.php
4716:46:01.451
< 0ms >
traceyii\base\View::renderFileRendering view file: /var/www/member-area/views/layouts/main.php
4816:46:01.451
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
4916:46:01.452
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5016:46:01.452
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5116:46:01.453
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5216:46:01.454
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5316:46:01.455
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5416:46:01.455
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5516:46:01.456
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5616:46:01.464
< 7ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5716:46:01.466
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5816:46:01.466
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
5916:46:01.467
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6016:46:01.468
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6116:46:01.468
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6216:46:01.469
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6316:46:01.470
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6416:46:01.471
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
6516:46:01.471
< 0ms >
infoyii\db\Command::querySELECT * FROM "agent_setting" WHERE "key"='menu_order'
6616:46:01.475
< 3ms >
infoyii\db\Command::querySELECT d.nspname AS table_schema, c.relname AS table_name, a.attname AS column_name, COALESCE(td.typname, tb.typname, t.typname) AS data_type, COALESCE(td.typtype, tb.typtype, t.typtype) AS type_type, (SELECT nspname FROM pg_namespace WHERE oid = COALESCE(td.typnamespace, tb.typnamespace, t.typnamespace)) AS type_scheme, a.attlen AS character_maximum_length, pg_catalog.col_description(c.oid, a.attnum) AS column_comment, a.atttypmod AS modifier, a.attnotnull = false AS is_nullable, CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default, coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) OR attidentity != '' AS is_autoinc, pg_get_serial_sequence(quote_ident(d.nspname) || '.' || quote_ident(c.relname), a.attname) AS sequence_name, CASE WHEN COALESCE(td.typtype, tb.typtype, t.typtype) = 'e'::char THEN array_to_string((SELECT array_agg(enumlabel) FROM pg_enum WHERE enumtypid = COALESCE(td.oid, tb.oid, a.atttypid))::varchar[], ',') ELSE NULL END AS enum_values, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS numeric_precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 END ELSE null END AS numeric_scale, CAST( information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) AS numeric ) AS size, a.attnum = any (ct.conkey) as is_pkey, COALESCE(NULLIF(a.attndims, 0), NULLIF(t.typndims, 0), (t.typcategory='A')::int) AS dimension FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_type tb ON (a.attndims > 0 OR t.typcategory='A') AND t.typelem > 0 AND t.typelem = tb.oid OR t.typbasetype > 0 AND t.typbasetype = tb.oid LEFT JOIN pg_type td ON t.typndims > 0 AND t.typbasetype > 0 AND tb.typelem = td.oid LEFT JOIN pg_namespace d ON d.oid = c.relnamespace LEFT JOIN pg_constraint ct ON ct.conrelid = c.oid AND ct.contype = 'p' WHERE a.attnum > 0 AND t.typname != '' AND NOT a.attisdropped AND c.relname = 'agent_setting' AND d.nspname = 'public' ORDER BY a.attnum;
6716:46:01.487
< 12ms >
infoyii\db\Command::queryselect ct.conname as constraint_name, a.attname as column_name, fc.relname as foreign_table_name, fns.nspname as foreign_table_schema, fa.attname as foreign_column_name from (SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s FROM pg_constraint ct ) AS ct inner join pg_class c on c.oid=ct.conrelid inner join pg_namespace ns on c.relnamespace=ns.oid inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s] left join pg_class fc on fc.oid=ct.confrelid left join pg_namespace fns on fc.relnamespace=fns.oid left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s] where ct.contype='f' and c.relname='agent_setting' and ns.nspname='public' order by fns.nspname, fc.relname, a.attnum
6816:46:01.498
< 10ms >
infoyii\db\Command::querySELECT * FROM "agent_setting" WHERE "key"='language'
6916:46:01.500
< 2ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7016:46:01.501
< 0ms >
infoyii\db\Command::querySELECT * FROM "agent_setting" WHERE "key"='active_qris'
7116:46:01.509
< 7ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7216:46:01.510
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7316:46:01.518
< 7ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7416:46:01.519
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7516:46:01.520
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7616:46:01.521
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7716:46:01.522
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7816:46:01.523
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
7916:46:01.523
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8016:46:01.524
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8116:46:01.525
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8216:46:01.527
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8316:46:01.528
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8416:46:01.529
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8516:46:01.529
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8616:46:01.530
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8716:46:01.531
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8816:46:01.531
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
8916:46:01.533
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9016:46:01.533
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9116:46:01.534
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9216:46:01.535
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9316:46:01.535
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9416:46:01.536
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9516:46:01.537
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9616:46:01.537
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9716:46:01.538
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9816:46:01.538
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
9916:46:01.539
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
10016:46:01.540
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: HGET
10116:46:01.542
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
10216:46:01.545
< 3ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: SET
10316:46:01.546
< 0ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: ZADD
10416:46:01.547
< 1ms >
traceyii\redis\Connection::executeCommandExecuting Redis Command: SET