Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/PitchBlackRecoveryProject/android_system_libhidl


https://github.com/PitchBlackRecoveryProject/android_system_libhidl

Merge "Add getHashChain() to IBase." am: 2381d5d69b

am: 980a34f2fc

Change-Id: I52b027b8d3bdada09664913b7e099b7fd22d5f23

5d9bde66bc16d3956bb37c769bafa16676174822 authored almost 8 years ago
Merge "Add getHashChain() to IBase."

am: 2381d5d69b

Change-Id: I0a9358116bc59f14324b78793e2cf7b417606620

980a34f2fc55bef72392d2f442730caf56646ee7 authored almost 8 years ago
Merge "Add getHashChain() to IBase."

2381d5d69b50b162501c68e623b852191885f370 authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields. am: 6b9cc69839 am: acb86a482e am: 669b515b18

am: d93f59aa48

Change-Id: Ifb2a1aca860745436b023730b86cd0a0eb600174

b507bd21751dd7d2a16b24c854bc7d8f95be16cd authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields. am: 6b9cc69839 am: acb86a482e

am: 669b515b18

Change-Id: Iee180f2d5e62ea6202101166a8d91e2cf19b5d68

d93f59aa4805410ded8486b8c8f8203c5591b305 authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields. am: 6b9cc69839

am: acb86a482e

Change-Id: I84595ce64e17119cd3df7630fcaaaace574119c6

669b515b180fe5c7d8b225d518eb59acf8a31d2f authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields.

am: 6b9cc69839

Change-Id: I7f80c172e943cd54eca2710694955f3c691d4abf

acb86a482e13a2ec0229ed15d068947d441b4524 authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields.

Bug: 33846034
Test: make
Change-Id: I25d0ad1315b005ca953bf6054abd19fcd22ee511

6688d60a53e605fe8a3cc663e415a1f938009fca authored almost 8 years ago
Add getHashChain() to IBase.

Each interface has a getHashChain() method that
returns the hash of all .hal files from the rtti...

db93348cb674bb93a117c0f7a140e2b76cfca5c6 authored almost 8 years ago
Add getHashChain() to IBase.

Each interface has a getHashChain() method that
returns the hash of all .hal files from the rtti...

5cef47c9e1c67e26aef1125ed4d637b77d4c41d4 authored almost 8 years ago
Ensure proper alignment of hidl_handle's fields.

Bug: 33846034
Test: make
Change-Id: I5107e1110743995e083922fa699bcfab7ae57efd

6b9cc69839de9d4180608a0b5f8e68d363178ec8 authored almost 8 years ago
libhidl: Add wifi keystore HAL

Bug: 34603782
Test: Able to connect to wifi passpoint networks.
Change-Id: I90d68e160038ada02f53...

f7d083e450c3fdf09ffa583e7d5fe2e403754981 authored almost 8 years ago
Log if waitForHwService has to wait too long. am: 496051047c

am: c383d5fbb5

Change-Id: I81f49c76522fa2e330d0d8ecf476f2aa82874357

4ae30d883835d5f432dc8e033e7bd45897a8f46a authored almost 8 years ago
Log if waitForHwService has to wait too long.

am: 496051047c

Change-Id: I0e57c0dd7291fb74eb80985bd69d3de90604f283

c383d5fbb50dc23b32dcd0ccf77822570e3adda2 authored almost 8 years ago
Merge "Log if waitForHwService has to wait too long." am: a62432bf9b am: 73180a6762 am: 0d48c5a4ae

am: 861d4a293d

Change-Id: Ie7f7fef86b100a071b22739387d7645f1cc8f2a9

a973c2d06c88808bac0dc165109351a953b9f1a7 authored almost 8 years ago
Merge "Log if waitForHwService has to wait too long." am: a62432bf9b am: 73180a6762

am: 0d48c5a4ae

Change-Id: I12c53bda9d5359031458985873755b93fca6ddba

861d4a293d8e6891130ad950bcaf87e093fdf8e6 authored almost 8 years ago
Merge "Log if waitForHwService has to wait too long." am: a62432bf9b

am: 73180a6762

Change-Id: I1a56bbdfe466c1092a46f45645dfaab69cff0226

0d48c5a4ae425ce50a0606f8df742e402b02a46c authored almost 8 years ago
Merge "Log if waitForHwService has to wait too long."

am: a62432bf9b

Change-Id: Ib12f487a42c425f4cbbfef8f8c8110f04aa4b167

73180a67627b9e930569504681801f8d7e822500 authored almost 8 years ago
Merge "Log if waitForHwService has to wait too long."

a62432bf9b64b8b3f5cc902218f33e1648027732 authored almost 8 years ago
Log if waitForHwService has to wait too long.

Test: internal marlin boots
Test: hidl_test
Test: verified logs after `setprop ctl.stop light-ha...

f1e14f24c86666b785eb5895f2229ed9f30b9bc6 authored almost 8 years ago
Log if waitForHwService has to wait too long.

Test: internal marlin boots
Test: hidl_test
Test: verified logs after `setprop ctl.stop light-ha...

496051047ce92b23c1027fe77242f386fae940c4 authored almost 8 years ago
Merge "std::string from const hidl_string test" am: dd92847469 am: d23de8bbf9

am: d79a4c663d

Change-Id: I220457527b29fce9d6758cc54e36168d873ebc17

154e208b031911e665fdea91f303a7363df2b8f9 authored almost 8 years ago
Merge "std::string from const hidl_string test" am: dd92847469

am: d23de8bbf9

Change-Id: I1baf6000c11fd1d5fa185e3cd0e383539dcc3b90

d79a4c663d6b79060ed0a514242c11842e1ec2c8 authored almost 8 years ago
Merge "std::string from const hidl_string test"

am: dd92847469

Change-Id: Ie45cd650cd74078ec5b05ab248cb9d58848c4bc1

d23de8bbf99742c4eb930cc471096357ab54e04f authored almost 8 years ago
Merge "std::string from const hidl_string test"

dd9284746929a8b750c70ce2441f336e86d5f7cf authored almost 8 years ago
Merge "Update makefiles." am: a597fa9a8d am: 7794db5bd2

am: 9273d0f7ea

Change-Id: I80fe31b413b6e93aae8232932978ebfe92ea9fd5

0855a64e1eb3674da1282d6e91f2199af2fade81 authored almost 8 years ago
Merge "Update makefiles." am: a597fa9a8d

am: 7794db5bd2

Change-Id: I0ed7bafb409ac11fd62728ac99e4261c7211ceb4

9273d0f7ea056679af79eaf6a324d9964eab553b authored almost 8 years ago
Merge "Update makefiles."

am: a597fa9a8d

Change-Id: I8060114d6cc541c59b6909fac69cadd9f0463798

7794db5bd242e39ea0e5a8692155b7edd6355a6b authored almost 8 years ago
Merge "Update makefiles."

a597fa9a8d10afa11d7aaa4178dbcda2c67edd5b authored almost 8 years ago
Revert "Revert "Wait for hwservicemanager in defaultServiceManager."" am: c1cee2ca2b am: be822c8ff8

am: d25e12faee

Change-Id: Id95dc92594aa6ad1cab1c24d43dbc0689cb73c56

b1ae421a2ef25ce2eec3fea7fa2449eeac9238b0 authored almost 8 years ago
Revert "Revert "Wait for hwservicemanager in defaultServiceManager."" am: c1cee2ca2b

am: be822c8ff8

Change-Id: I3fed8151c275000e8d90505620d6183c32b2ea14

d25e12faeec5b5319feaac50d3434a71b5814918 authored almost 8 years ago
Revert "Revert "Wait for hwservicemanager in defaultServiceManager.""

am: c1cee2ca2b

Change-Id: Ifb0e84b892ae5b88acb777f49e6daa19e287a637

be822c8ff8f3a955eeeb52aa08ddf1cb1d3d5ece authored almost 8 years ago
Revert "Revert "Wait for hwservicemanager in defaultServiceManager.""

This reverts commit ec64c65eed4238de57461cd4e3cedbf42add182c.

Now with better logging when wait...

c1cee2ca2b50b13281dedc3e3a9079a3b9b59ff6 authored almost 8 years ago
Update makefiles.

Test: pass
Change-Id: Ib83f2db49959b288e8c033643a90047dd87440fa

ed8820a3e55205c6705da7f480be8a04bcd0c0ff authored almost 8 years ago
Revert "Wait for hwservicemanager in defaultServiceManager." am: ec64c65eed am: 12202786a6

am: ead0c6c55c

Change-Id: I149098cef576114ecd8146f97f81761ec5ab7586

04d9db7bd09ef2e0ed7209c47b5d7dc63ec55522 authored almost 8 years ago
Revert "Wait for hwservicemanager in defaultServiceManager." am: ec64c65eed

am: 12202786a6

Change-Id: I1e1e3588c2e5ccd1d40d191cdffa5c71c4e9591e

ead0c6c55c06f8ff0e2dc2c8edcc8e3fa0b3ca03 authored almost 8 years ago
Revert "Wait for hwservicemanager in defaultServiceManager."

am: ec64c65eed

Change-Id: Ic482a560715c111efcc87f58d5101bb741be798c

12202786a6e67e61d923e178223eead7043fb91f authored almost 8 years ago
std::string from const hidl_string test

Bug: 36532780
Test: libhidl_test passes
Change-Id: I22cb52fa9d441e92f6c4dfdcc8d0d0657bf0c0f5

727e3dd867a760aa7c62b5abec4d8184c47035e3 authored almost 8 years ago
Revert "Wait for hwservicemanager in defaultServiceManager."

This reverts commit 7aca85aea2f39613a8438f50e790babac4a1d84c.

Reason for revert: a DOA device

...

ec64c65eed4238de57461cd4e3cedbf42add182c authored almost 8 years ago
Wait for hwservicemanager in defaultServiceManager. am: 7aca85aea2 am: 91d50f4ca8

am: 955f6baf17

Change-Id: Id281c2b96843ca8304280ce444ffeacfb318cd84

dccbc2fe2f47950edaad7014e05197c0245dbb2e authored almost 8 years ago
Wait for hwservicemanager in defaultServiceManager. am: 7aca85aea2

am: 91d50f4ca8

Change-Id: I6384bdfb4559056eb12ef5948e7808b1459f2701

955f6baf17182f956d488299fe1aa2eaed50f6d4 authored almost 8 years ago
Wait for hwservicemanager in defaultServiceManager.

am: 7aca85aea2

Change-Id: Ic684fe743be1248ff6461c3571b6a8525fa6e415

91d50f4ca82f02be5efb1d64b5912cb56e82d1c2 authored almost 8 years ago
Wait for hwservicemanager in defaultServiceManager.

Test: internal marlin boots. Nfc/camera/photosphere/sensors/youtube
(audio+video)/gps/wifi/finge...

7aca85aea2f39613a8438f50e790babac4a1d84c authored almost 8 years ago
Merge "LegacySupport: include interface name in errors" am: 89403778b0 am: 23b242fa4f

am: 4794d9b116

Change-Id: Ic9ded4bdba238d1383295c1907d7eded281784a0

3a56ec1e030df83c18df6a06aa009e53721fd1c4 authored almost 8 years ago
Merge "LegacySupport: include interface name in errors" am: 89403778b0

am: 23b242fa4f

Change-Id: Ifa59b97460abaac5981232e9d9045be92397d938

4794d9b11643dce3d6da6873a354da084f1d157c authored almost 8 years ago
Merge "LegacySupport: include interface name in errors"

am: 89403778b0

Change-Id: I9f124d53fac97a51442ca7991ca0532fd7fc8e8b

23b242fa4f26f4f3d867ba9686cb4236fdcaef7e authored almost 8 years ago
Merge "LegacySupport: include interface name in errors"

89403778b06298ca133ac9a2771354a434a7e280 authored almost 8 years ago
LegacySupport: include interface name in errors

Test: pass
Change-Id: Iacbc2b662ffc0c38c32f04140e39091e3734f811

f1b7028bb0f43603aaa9d7c1d9aedf7c1e86b0a0 authored almost 8 years ago
Merge "Fix inconsistent logging in registerReference." am: cda4a169a7 am: cd5fdcf35c

am: 63c1678000

Change-Id: Ia6679d9c6d7a60e6170ed725fbf6c1d75fb42556

d46434b577f5dd0b0f896e0ac95fca9e33711304 authored almost 8 years ago
Merge "Fix inconsistent logging in registerReference." am: cda4a169a7

am: cd5fdcf35c

Change-Id: I940b302d468b6c636efd775ff0729d41b317477b

63c16780002c0904ae0bd178b8047e5eeb449bcf authored almost 8 years ago
Merge "Fix inconsistent logging in registerReference."

am: cda4a169a7

Change-Id: I05d005e6465355ce2785b466d48a170019a3f906

cd5fdcf35c3206320ec2b3ac57f137cb0ab651a1 authored almost 8 years ago
Merge "Fix inconsistent logging in registerReference."

cda4a169a7ad0b5a60fa93bde966b2ef31781db3 authored almost 8 years ago
Fix inconsistent logging in registerReference.

Test: pass
Bug: 36505128
Change-Id: I365a2071a18789b0bce31a3f4e0dde3128dcc3e8

0aeaa7847ee32aea9773aab4c39361b3802821fc authored almost 8 years ago
Merge changes from topic 'taskrunner_details' am: f11ca98fa0 am: aac2688822

am: 2cd07a7e6c

Change-Id: I81c88850958987dfbf0b51860af447f42cc09b63

cd1bd11b87a04a1ba4c2427748a403784da575ad authored almost 8 years ago
Merge changes from topic 'taskrunner_details' am: f11ca98fa0

am: aac2688822

Change-Id: I1e7b348f15da88547b427b182679f5754ab2758c

2cd07a7e6c62e183a0e01e8d5e789fd0597305d1 authored almost 8 years ago
Merge changes from topic 'taskrunner_details'

am: f11ca98fa0

Change-Id: I8a9173faa1426e15a73bd794e5e328b360bdab45

aac26888229b475a56d220681ebf66d39f86d5c0 authored almost 8 years ago
Merge changes from topic 'taskrunner_details'

* changes:
TaskRunner starts the background thread only when needed
Simplify the implementat...

f11ca98fa0d5a3c0cc4da561bb87ad0b92147f56 authored almost 8 years ago
TaskRunner starts the background thread only when needed

Test: libhidl_test
Test: hidl_test
Test: boots
Change-Id: I5b6de5cd4a475b0653102e8004953ba008288ab1

6f6675464c82fc796d72458d7268e28d759b997f authored almost 8 years ago
IServiceManager.hal: add pid to debugDump am: e3de4d0b65 am: 76534f7536

am: 0138e687ad

Change-Id: I91a59cf29aa7efcb61390fc431394798b3ac1c4f

68bed71673140cfa61e267b84a0688e5b6a5015c authored almost 8 years ago
IServiceManager.hal: add pid to debugDump am: e3de4d0b65

am: 76534f7536

Change-Id: I192afbf6016af72366680156246d7aa350a3b21a

0138e687adba711835f99f91eea0cd9e629b7902 authored almost 8 years ago
IServiceManager.hal: add pid to debugDump

am: e3de4d0b65

Change-Id: I85fa31806338b476081db2a8445a2b79ff0c4348

76534f75363c7aa4b0936305caa2ce9499639c43 authored almost 8 years ago
IServiceManager.hal: add pid to debugDump

Test: internal boots, hidl_test, lshal works
Bug: 36414311
Change-Id: I60a43ee52abf7f65043ad9c68...

e3de4d0b658e6bbcc429e568f8c269cd6c160e35 authored almost 8 years ago
Simplify the implementation of TaskRunner.

TestRunner used to hold the std::thread pointer and
a pointer to a boolean flag. Simplify them:
...

8184c1220e120414ebd968930737daa563788fca authored almost 8 years ago
Move TaskRunner and SynchronizedQueue to details

Bug: 36433220
Test: compiles
Test: hidl_test
Test: libhidl_test
Change-Id: Ia48bf9abba293f177ec2...

0a35139d24ae0071475adeae3e1370b8f8617f8f authored almost 8 years ago
Merge "Move hybrid interface from libbinder to here." am: 05ccd99a0d am: 487c03e720

am: 4264b797a4

Change-Id: Id27bcc2b69e010a88bb420d5d1fa73176543c988

6fbf8b6a747d9b8200a51e9517e38d0793173d8f authored almost 8 years ago
Merge "Move hybrid interface from libbinder to here." am: 05ccd99a0d

am: 487c03e720

Change-Id: I5d42b9f54a3d0aacf5c75bc1d94f78b99f0831e2

4264b797a460ab559919657e15af40f2b4c0df4e authored almost 8 years ago
Merge "Move hybrid interface from libbinder to here."

am: 05ccd99a0d

Change-Id: I04d3689fe1410263de86b106ca91ea1e55f2492e

487c03e720aafad767626d8aefd71ba93e780264 authored almost 8 years ago
Merge "Move hybrid interface from libbinder to here."

05ccd99a0d0bb4fdafab66ecdb0a9587e35bfed7 authored almost 8 years ago
Merge "ITokenManager in hal manifest." am: bd3a930386 am: f69517c298

am: e13b559750 -s ours

Change-Id: Ic7e94f49277aa8b6141a21afd3b97841a9b118b1

3ee274030d033d8926b4f079a5a1d6e5385f431a authored almost 8 years ago
Merge "ITokenManager in hal manifest." am: bd3a930386

am: f69517c298

Change-Id: Ib25bc72a65776a34b83719581622bc065e4b7065

e13b559750734bf826efaf737297364a55c51594 authored almost 8 years ago
Merge "ITokenManager in hal manifest."

am: bd3a930386

Change-Id: I94fcbf19a61626573782269023556875c52ca97c

f69517c29874e08515d44959136c004e7e49b8a6 authored almost 8 years ago
Merge "ITokenManager in hal manifest."

bd3a93038644b7afea1208eb3fc7a98760959f27 authored almost 8 years ago
Merge "ITokenManager in hal manifest."

7ce8eb178c4f1b06bdec75cbe0843ee1fd1b5976 authored almost 8 years ago
ITokenManager in hal manifest.

This interface is served by hwservicemanager.

Test: hidl_test
Change-Id: I79e73cf69c601b678b441...

fe002d3c235f0ae8ffce76af8f385d7ead5d551e authored almost 8 years ago
ITokenManager in hal manifest.

This interface is served by hwservicemanager.

Test: hidl_test
Merged-In: I79e73cf69c601b678b441...

2ef619dc03a8eb7a1221553269d73f7bd48c8064 authored almost 8 years ago
Passthrough service functions: warn unused result am: d51a3e18d6 am: 30fa700241

am: dd3a4d3c02

Change-Id: Ia5eedd3f7a6f514f4ef5f434a1d46db7a5a1d15f

17646bc7205f1f0f046df7b03cf4f5480aac2a1d authored almost 8 years ago
Passthrough service functions: warn unused result am: d51a3e18d6

am: 30fa700241

Change-Id: I36d596de0a08fc851e367756ed19711e906b2c13

dd3a4d3c02cf7b3ec83949d0981dda3d22dce665 authored almost 8 years ago
Passthrough service functions: warn unused result

am: d51a3e18d6

Change-Id: I29e151560fc8fa098b4719e3ded8086668cd1948

30fa700241717053d3080dea146718b83b30ec5c authored almost 8 years ago
Move hybrid interface from libbinder to here.

Also, override linkToDeath and unlinkToDeath in the wrapper class to
call linkToDeath and unlink...

155e9d39deba44af1fb0eec20616902e39d97f58 authored almost 8 years ago
Passthrough service functions: warn unused result

Prevent these from cropping up again:
b/34634573
b/34641942
b/34640335
b/34643521
b/36424561

No...

d51a3e18d63e722973e8784265a7e6f3ac77350a authored almost 8 years ago
Merge "Add android.frameworks.sensorservice to system/manifest.xml"

75a2194206c98eaa6ad14751aaed4f918c502733 authored almost 8 years ago
Hide global variables am: 953e6b0f57 am: 9a43e080a9

am: 679cb2eafa

Change-Id: I0479dc49d25b549da42f01800d9980fab3cd94a2

dc28c6182d9745a3df6d84421853b32e6ad6b33b authored almost 8 years ago
defaultServiceManager locks before check. am: 8fb656b8ad am: 3dcf0cf34e

am: 8648574810

Change-Id: I2b5cf125d475a5fea065b5fa48e9b7a6cb6517bf

34e42d0337a04a4d46a5f5e77416d371858e68b3 authored almost 8 years ago
Hide global variables am: 953e6b0f57

am: 9a43e080a9

Change-Id: I18aa17309114c7907fa588911d70f327f1421ad6

679cb2eafa66fe1edce28a08c6434c7accb3ca60 authored almost 8 years ago
defaultServiceManager locks before check. am: 8fb656b8ad

am: 3dcf0cf34e

Change-Id: I4176ea8440ad4f32a3659082248d3231fe32e727

86485748102f4ab524738762917645afe18b1a6b authored almost 8 years ago
Hide global variables

am: 953e6b0f57

Change-Id: I19f86ced7fa3afb8c636b0aa074c26eaaeaea578

9a43e080a9e742002b9e3bbfef46d5dada191483 authored almost 8 years ago
defaultServiceManager locks before check.

am: 8fb656b8ad

Change-Id: I2df7177c0d30224d034da8099671e505503aff0f

3dcf0cf34e14f893055c66745e5a639922287e41 authored almost 8 years ago
Hide global variables

* Move gBn/sConstructorMap into details
* Move gDefaultServiceManager[Lock] into details and del...

953e6b0f57b5003390b3e70904bfa47f535492e4 authored almost 8 years ago
defaultServiceManager locks before check.

A 64-bit write may not be atomic (may not be contain in one instruction),
hence the read without...

8fb656b8ad63536bb8a16548fc33c6a2f3e0435b authored almost 8 years ago
Merge "Remove liblog usage in MQDescriptor.h" am: 6fedcae8cf am: 80bde02a06

am: bce0b4abb1

Change-Id: I94760dd11dc35f8129967a285d7a007efa057a69

4cf81d7e3aa487186727cfaf53d8f1b4dd7a350d authored almost 8 years ago
Merge "Remove liblog usage in MQDescriptor.h" am: 6fedcae8cf

am: 80bde02a06

Change-Id: Idba6fcd0e83339bb2b0c1aaac83f1f048766a058

bce0b4abb1bb2bb6bf363eea5d8ee3b78e20d293 authored almost 8 years ago
Merge "Remove liblog usage in MQDescriptor.h"

am: 6fedcae8cf

Change-Id: Icfa1c1b21044758338a5b8958772135c9905cdc6

80bde02a060c69d85d2cf395d0735945db9e7da6 authored almost 8 years ago
Merge "Remove liblog usage in MQDescriptor.h"

6fedcae8cfc47b1d0b1fe535e517c6711b1c6cf8 authored almost 8 years ago
Remove liblog usage in MQDescriptor.h

Also remove hidl_log_base class since static methods
in child classes will not be able to invoke...

b7370304cbf33a6ff53ec3955cda0bf18920df48 authored almost 8 years ago
Merge "Hal Manifest: remove obsolete TODO." am: e450187026 am: 371ec41897

am: 57f65dc374

Change-Id: I74fc3aba5c7e7c72334082d1ff9bd552b4184a65

2de9520f3a420d6c6b5c018ba0a2d8f58f0857a1 authored almost 8 years ago
Merge "Hal Manifest: remove obsolete TODO." am: e450187026

am: 371ec41897

Change-Id: I4093508e56416d815fb12914aa2b41e1da152b7c

57f65dc374c24c8442c8aa5be7bd7b4a41bfd004 authored almost 8 years ago
Merge "Hal Manifest: remove obsolete TODO."

am: e450187026

Change-Id: I8e5c4900372f05eec9ba969ae8e36b0317f734b0

371ec418971d3cd5029c4aeda86a580fae1016f1 authored almost 8 years ago
Merge "Hal Manifest: remove obsolete TODO."

e45018702681638c44e02cb5919976b85565243c authored almost 8 years ago
Hal Manifest: remove obsolete TODO.

libhidl is a perfect centralized location for the hal manifest.
android.hidl.* will exist here, ...

f815e051532c830e2f611f3760f63aac4842beff authored almost 8 years ago
Merge "IMemory: add read/readRange APIs." am: 7e6234e707 am: 97496dcff2

am: 02f242e008

Change-Id: I61b18a7ce9394f45fdccc4bdd5af79c7db9262a6

310fd23b35f5e6ee6cc50df0654f9a61890e4af9 authored almost 8 years ago