Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated scripts including deployment and common single-purposed scripts. Rewards component and Deployment Logs #10

Merged
merged 26 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
433869d
updated Deploy_All.s.sol
Rayerleier Dec 18, 2024
09925d8
finished the preparition for lauching everything
Rayerleier Dec 19, 2024
16f208b
clean up unused parameters and variables
Rayerleier Dec 19, 2024
27997d9
updated Deploy_All.s.sol
Rayerleier Dec 18, 2024
3947a8c
finished the preparition for lauching everything
Rayerleier Dec 19, 2024
a3ed320
clean up unused parameters and variables
Rayerleier Dec 19, 2024
84023f7
grantRole script
Rayerleier Dec 19, 2024
f3c5abb
Merge branch 'scripts/DeployAndCommonScripts' of github.com:DLC-link/…
Rayerleier Dec 19, 2024
fb16ae7
add image in README.md
Rayerleier Dec 19, 2024
cda53c0
finished scripts
Rayerleier Dec 20, 2024
14aa2df
temporary version: stuck in the activeSharesHint problem, and comment…
Rayerleier Jan 2, 2025
de7c216
feat: staker reward and operator reward available
Rayerleier Jan 5, 2025
98886e5
all component deployed. contract addresses conclude in /broadcast/0.C…
Rayerleier Jan 7, 2025
537d14d
deleted unused parameter and make some limitation in constructor
Rayerleier Jan 9, 2025
fcac61b
add some limitation
Rayerleier Jan 9, 2025
73a2308
deleted unused errors
Rayerleier Jan 9, 2025
15e7cbc
deleted useless log of broadcast
Rayerleier Jan 13, 2025
c54d2a6
alter some logs...
Rayerleier Jan 13, 2025
0b59a38
added: upgradeability
Rayerleier Jan 13, 2025
a835d8f
uncommented 0.Deploy_ALL.s.ol
Rayerleier Jan 13, 2025
5be9f8d
fixed warnings
Rayerleier Jan 13, 2025
05832ef
chore: update ghwf
scolear Jan 13, 2025
b27787b
chore: update ghwf again
scolear Jan 13, 2025
98f0bff
added gap in Multisig
Rayerleier Jan 13, 2025
edfcea0
fix: __gap
scolear Jan 13, 2025
af39afd
fix: __gap again
scolear Jan 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
workflow_dispatch:

env:
FOUNDRY_PROFILE: ci
FOUNDRY_PROFILE: default
SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }}

jobs:
Expand All @@ -23,8 +23,6 @@ jobs:

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Show Forge version
run: |
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ And deploy the NetworkMiddleware contract using:
forge script SetupNetworkMiddleware --rpc-url http://localhost:8545 --broadcast -vvvv --private-key 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
```


## Workflow and Dependencies

<img src="./assets/workflow_and_dependencies.png" alt="workflow_and_dependencies" width="100%" />


## Development

### Build
Expand Down
Binary file added assets/workflow_and_dependencies.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions broadcast/0.Conclusion/Sepolia/Contracts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"Contracts": {
"NetworkMiddleware": "0xeC8Bd83B7049B961c432a188B77D58AfC7F43e18",
"Vault": "0x752bE6f54dd71c31ef69C0C3D058a7b4Cd63fE50",
"Delegator": "0x0256d570e888f0a49109aB6e09779996db0B225E",
"Slasher": "0x82591E38497cFbDa4767f8bb86843BFC62C41ae9",
"iBTC_globalReceiver": "0x3050073e42748419EA2102C2Fd10088ccCAc29Ba",
"VaultConfigurator": "0x8ec40e00c41E939e1EF941c1661b34eF7F6E93F0",
"BurnerRouter": "0x1941F991b8a813225D49878D932ffDC2e7087483",
"NetworkMock": "0xEf85be362826B0dE777879877457985115ca6BD2",
"DefaultStakerRewards": "0x6679eb0e0958Fd2e28BACAa7d9e5693c525cDc6D",
"DefaultOperatorRewards": "0x4417dB47b51E7802446C9E0A3E2F64e0Cb485A99"
}
}
113 changes: 113 additions & 0 deletions broadcast/1.iBTC_globalReciever.s.sol/11155111/run-1736246038.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"transactions": [
{
"hash": "0x3de20ee38b61fc4009e22017577d9b988569a497ecd6ec527353ee9a1c80057a",
"transactionType": "CREATE",
"contractName": "iBTC_GlobalReceiver",
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"function": null,
"arguments": null,
"transaction": {
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"gas": "0x7e0ba",
"value": "0x0",
"input": "0x60808060405234601557610638908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c9182632962434614610329578263485cc9551461015057508163715018a6146100e95781638da5cb5b146100b6578163d8dfeb4514610090575063f2fde38b14610061575f80fd5b3461008c57602036600319011261008c5761008a61007d6104e2565b610085610569565b6104f8565b005b5f80fd5b3461008c575f36600319011261008c575f5490516001600160a01b039091168152602090f35b3461008c575f36600319011261008c575f805160206105e38339815191525490516001600160a01b039091168152602090f35b3461008c575f36600319011261008c57610101610569565b5f805160206105e383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461008c578160031936011261008c576101686104e2565b6001600160a01b03916024358381169182820361008c577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009485549460ff86891c16159567ffffffffffffffff811680159081610321575b6001149081610317575b15908161030e575b506102fe5767ffffffffffffffff1981166001178855866102df575b50169283156102a5571561026a5750610211906102096105a1565b6100856105a1565b6bffffffffffffffffffffffff60a01b5f5416175f5561022d57005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b606490602087519162461bcd60e51b83528201526015602482015274496e76616c6964206f776e6572206164647265737360581b6044820152fd5b865162461bcd60e51b81526020818401526014602482015273496e76616c69642069425443206164647265737360601b6044820152606490fd5b68ffffffffffffffffff191668010000000000000001178755886101ee565b885163f92ee8a960e01b81528490fd5b9050158a6101d2565b303b1591506101ca565b8891506101c0565b903461008c578060031936011261008c576103426104e2565b906024928335610350610569565b6001600160a01b039384169384156104d25781156104c2575f5484516370a0823160e01b815230818601526020949183169085818a81855afa9081156104b8579085915f91610471575b50106104625785518581019063a9059cbb60e01b8252888a820152856044820152604481526080810181811067ffffffffffffffff8211176104505788525186915f919082855af115610446575f513d61043d5750803b155b610428575050907fc6e75038d2d82369ec020d815936083a82f4b880658988b488d9b7ecbadbca3592915f54169351908152a3005b8551635274afe760e01b815291820152869150fd5b600114156103f3565b85513d5f823e3d90fd5b8a604186634e487b7160e01b5f52525ffd5b508451631e9acf1760e31b8152fd5b915050853d87116104b1575b601f8101601f1916820167ffffffffffffffff81118382101761045057879183918a528101031261008c578490518a61039a565b503d61047d565b87513d5f823e3d90fd5b8351631f2a200560e01b81528390fd5b8351635bb9885f60e11b81528390fd5b600435906001600160a01b038216820361008c57565b6001600160a01b03908116908115610551575f805160206105e383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b5f805160206105e3833981519152546001600160a01b0316330361058957565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156105d057565b604051631afcd79f60e31b8152600490fdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a264697066735822122053d6537adfd7097c6f0e1c8489778931ac5d00c1d0cccfe63817fb34ef174bfd64736f6c63430008190033",
"nonce": "0x26",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionType": "CALL",
"contractName": "iBTC_GlobalReceiver",
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"function": "initialize(address,address)",
"arguments": [
"0xeb762Ed11a09E4A394C9c8101f8aeeaf5382ED74",
"0x8Ae0F53A071F5036910509FE48eBB8b3558fa9fD"
],
"transaction": {
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"gas": "0x1f06c",
"value": "0x0",
"input": "0x485cc955000000000000000000000000eb762ed11a09e4a394c9c8101f8aeeaf5382ed740000000000000000000000008ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"nonce": "0x27",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0xdaa45b",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0x3de20ee38b61fc4009e22017577d9b988569a497ecd6ec527353ee9a1c80057a",
"transactionIndex": "0x6a",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"gasUsed": "0x60f54",
"effectiveGasPrice": "0x70ba92ea1",
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": null,
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba"
},
{
"status": "0x1",
"cumulativeGasUsed": "0xdc0bc2",
"logs": [
{
"address": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000008ae0f53a071f5036910509fe48ebb8b3558fa9fd"
],
"data": "0x",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"logIndex": "0x99",
"removed": false
},
{
"address": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"topics": [
"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"logIndex": "0x9a",
"removed": false
}
],
"logsBloom": "0x00000000000000202000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000804000000000000000020000000000000000000000000000000000000000000000000000000000200800000",
"type": "0x2",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"gasUsed": "0x16767",
"effectiveGasPrice": "0x70ba92ea1",
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1736246038,
"chain": 11155111,
"commit": "de7c216"
}
113 changes: 113 additions & 0 deletions broadcast/1.iBTC_globalReciever.s.sol/11155111/run-latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"transactions": [
{
"hash": "0x3de20ee38b61fc4009e22017577d9b988569a497ecd6ec527353ee9a1c80057a",
"transactionType": "CREATE",
"contractName": "iBTC_GlobalReceiver",
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"function": null,
"arguments": null,
"transaction": {
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"gas": "0x7e0ba",
"value": "0x0",
"input": "0x60808060405234601557610638908161001a8239f35b5f80fdfe60406080815260049081361015610014575f80fd5b5f3560e01c9182632962434614610329578263485cc9551461015057508163715018a6146100e95781638da5cb5b146100b6578163d8dfeb4514610090575063f2fde38b14610061575f80fd5b3461008c57602036600319011261008c5761008a61007d6104e2565b610085610569565b6104f8565b005b5f80fd5b3461008c575f36600319011261008c575f5490516001600160a01b039091168152602090f35b3461008c575f36600319011261008c575f805160206105e38339815191525490516001600160a01b039091168152602090f35b3461008c575f36600319011261008c57610101610569565b5f805160206105e383398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461008c578160031936011261008c576101686104e2565b6001600160a01b03916024358381169182820361008c577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009485549460ff86891c16159567ffffffffffffffff811680159081610321575b6001149081610317575b15908161030e575b506102fe5767ffffffffffffffff1981166001178855866102df575b50169283156102a5571561026a5750610211906102096105a1565b6100856105a1565b6bffffffffffffffffffffffff60a01b5f5416175f5561022d57005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b606490602087519162461bcd60e51b83528201526015602482015274496e76616c6964206f776e6572206164647265737360581b6044820152fd5b865162461bcd60e51b81526020818401526014602482015273496e76616c69642069425443206164647265737360601b6044820152606490fd5b68ffffffffffffffffff191668010000000000000001178755886101ee565b885163f92ee8a960e01b81528490fd5b9050158a6101d2565b303b1591506101ca565b8891506101c0565b903461008c578060031936011261008c576103426104e2565b906024928335610350610569565b6001600160a01b039384169384156104d25781156104c2575f5484516370a0823160e01b815230818601526020949183169085818a81855afa9081156104b8579085915f91610471575b50106104625785518581019063a9059cbb60e01b8252888a820152856044820152604481526080810181811067ffffffffffffffff8211176104505788525186915f919082855af115610446575f513d61043d5750803b155b610428575050907fc6e75038d2d82369ec020d815936083a82f4b880658988b488d9b7ecbadbca3592915f54169351908152a3005b8551635274afe760e01b815291820152869150fd5b600114156103f3565b85513d5f823e3d90fd5b8a604186634e487b7160e01b5f52525ffd5b508451631e9acf1760e31b8152fd5b915050853d87116104b1575b601f8101601f1916820167ffffffffffffffff81118382101761045057879183918a528101031261008c578490518a61039a565b503d61047d565b87513d5f823e3d90fd5b8351631f2a200560e01b81528390fd5b8351635bb9885f60e11b81528390fd5b600435906001600160a01b038216820361008c57565b6001600160a01b03908116908115610551575f805160206105e383398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b5f805160206105e3833981519152546001600160a01b0316330361058957565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156105d057565b604051631afcd79f60e31b8152600490fdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a264697066735822122053d6537adfd7097c6f0e1c8489778931ac5d00c1d0cccfe63817fb34ef174bfd64736f6c63430008190033",
"nonce": "0x26",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionType": "CALL",
"contractName": "iBTC_GlobalReceiver",
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"function": "initialize(address,address)",
"arguments": [
"0xeb762Ed11a09E4A394C9c8101f8aeeaf5382ED74",
"0x8Ae0F53A071F5036910509FE48eBB8b3558fa9fD"
],
"transaction": {
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"gas": "0x1f06c",
"value": "0x0",
"input": "0x485cc955000000000000000000000000eb762ed11a09e4a394c9c8101f8aeeaf5382ed740000000000000000000000008ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"nonce": "0x27",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0xdaa45b",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0x3de20ee38b61fc4009e22017577d9b988569a497ecd6ec527353ee9a1c80057a",
"transactionIndex": "0x6a",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"gasUsed": "0x60f54",
"effectiveGasPrice": "0x70ba92ea1",
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": null,
"contractAddress": "0x3050073e42748419ea2102c2fd10088cccac29ba"
},
{
"status": "0x1",
"cumulativeGasUsed": "0xdc0bc2",
"logs": [
{
"address": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000008ae0f53a071f5036910509fe48ebb8b3558fa9fd"
],
"data": "0x",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"logIndex": "0x99",
"removed": false
},
{
"address": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"topics": [
"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"logIndex": "0x9a",
"removed": false
}
],
"logsBloom": "0x00000000000000202000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000804000000000000000020000000000000000000000000000000000000000000000000000000000200800000",
"type": "0x2",
"transactionHash": "0xa543f525043346c4ef583e3a7a7c6973183bbd655280fcf78c2ff38d18c3de80",
"transactionIndex": "0x6b",
"blockHash": "0x8d281d05b051d640ea3ebb2696864646a2d27c8e79f79bb42369f81794653d5f",
"blockNumber": "0x7183df",
"gasUsed": "0x16767",
"effectiveGasPrice": "0x70ba92ea1",
"from": "0x8ae0f53a071f5036910509fe48ebb8b3558fa9fd",
"to": "0x3050073e42748419ea2102c2fd10088cccac29ba",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1736246038,
"chain": 11155111,
"commit": "de7c216"
}
Loading
Loading