PantheonEcoSystem
0xBd73E675e1Fa3d60a302C797dF5C82E558dA7ce1
Баланс
3209.62 ETH.
Динамика пополнений
от общего пополнения за день
0%
Ввод
За последний час
0 ETH.
Всего
12502.5 ETH.
Выводы
За последний час
1.23018 ETH.
Всего
9292.87 ETH.
Условия
В день
-
В час
-
Инвесторов
1545
Повторные пополнения
За последний час
0 ETH.
Всего
3007.04 ETH.
Средняя оценка аудиторов
8.5
- Аудит провели:
- CryptoManiac (8)
- HACKEN.HUB (9)
- Таймлайн:
- час
- день
- неделя
- месяц
Пополнения (9281)
Выводы (2158)
Аудит
Код
API
Комменторы
Дата | Блок | TxHash | От кого | Кому | Сумма |
---|---|---|---|---|---|
Сегодня 14:37 | 7248672 | 0x2efa72f219f3a42398b1fd553d7f28a7dd9edb8a80e7a4c5fd55e38970025996 | 0x8844f8233c15f853e8fcfe07025dd5abeafad4c4 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:12 | 7248599 |
0x4375552e368f1e91958d710675ad7f527553296dfb6e54f9ff9bc8b03a0849df Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:12 | 7248599 |
0x4eff776eeb7f9e645654fed6e6ff86ef7774365baa80a889eceee8834241de7a Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:12 | 7248599 |
0xd2cb74a1173a3d7c97d2d87898471115092fa10a6e535e82031f2498c536f767 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:12 | 7248599 |
0x7db8a211eb3ca44fcc9dde81adc85f3ab8c67baa76d5493d6733a4f2f27eca7d Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:12 | 7248599 |
0x645c658fb5d19d621af8f85384b259a36b10935564e2af0694f904ecdce18419 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:10 | 7248595 | 0x7138f5669b94b5aeef1920fe0f448085d582ccb5a078a864f369b46c82af72ef | 0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:10 | 7248595 |
0xe2eeebde648754ace04ec455a5cc66a6f04db0d9f9870b3622c9f6c66c247066 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:10 | 7248595 |
0x752bbb963022329d08b8c3b548e64059c7984b69ed32e59ebf559f359b929610 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:10 | 7248595 |
0x847f499bf5874f2e324f56631d4f0dd79063bc262c06ef1bc217e47833cc02d9 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:10 | 7248595 |
0x4bb7f75c4fb27db9913d67f2a15b14239daccfceb469691390f8bd56b3f628ce Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:08 | 7248590 |
0xe1a60312ddbd9bcdeb187c4a0faa3b996cc92f6448f41a93e277cd115d7b3b3a Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:08 | 7248590 |
0xe2dd760985bea9142af08c0fcc4f0c6bfdb0a8094c166d7322eca846cde47810 Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:08 | 7248590 |
0xb40f12a494ab158a093b4a84a4a7b8bbc2095cf8155d75ea9a729df98a4f3e4b Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:08 | 7248590 | 0x6a678485b7a8ad8bbc450874f729af5f17df07bf2d1b4e3c60b302db11bbcdd8 | 0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:07 | 7248588 | 0xd609440b1e4189fe04c363708fd8424654bc7450e13dcb6b9de84e8b5696f3c1 | 0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:07 | 7248588 |
0x79bc8ad25755b6014b2b3873444d1b35d0c877a6c8f703160acf2ba218a6c0ea Транзакция с ошибкой |
0xb05a77c14ee58567b3b6f41802a013d0b266eea7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 14:00 | 7248559 | 0x99b4da7e016929abd0b1e4d0ea5757fd74b6e8f125c426aeae1d4aac16972f22 | 0x02c73d7c23800d61f1fecafa94b90f41ab95fef5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 13:29 | 7248474 | 0x60165f9b5f92595ed97ab05cd0cdf079485d08c8d1d589e419782719254166e4 | 0x02c73d7c23800d61f1fecafa94b90f41ab95fef5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 13:28 | 7248468 |
0x84b6e3ea40b3b1b9aecd5d18d2f7a45664e24e4a9191170f8cbdb6e8f98ad401 Транзакция с ошибкой |
0x02c73d7c23800d61f1fecafa94b90f41ab95fef5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 13:26 | 7248457 |
0x12731d015d52b0037b65ca08830ee3df2effbded469f057118067eb4b19e43c9 Транзакция с ошибкой |
0x02c73d7c23800d61f1fecafa94b90f41ab95fef5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 12:18 | 7248257 | 0x3ccd5e8977562faa956bd204276488904b5e054b8a8600b9ca39573db1b17e9f | 0xe43506262b50cb077281635476e6c56083f95aa8 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Сегодня 11:55 | 7248197 | 0x9bae308b7ca290e7ea3dc4bdf85e96fc51c3df78dff79f1c56cbaed1c38ba56d | 0xd21dff9677dd9aaf0dc45288b345b1ef6a315a49 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Вчера 23:11 | 7245895 | 0xff9f42a338c2e3e07fc22f4d2dcc17d429cd574af7cff36cea47cdcc65f54e5f | 0xcde2c04effe263ef8a85dec33c588a0fb7a0160f | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Вчера 22:51 | 7245826 | 0xd56c6645580e6a17a81e546e048d29b491b267069286336be5f23d2b10d69c51 | 0x32b275c92d2a5bfe4d15828766204514cb9ea8e3 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0 Ether |
Дата | Блок | parentTxHash | От кого | Кому | Сумма |
---|---|---|---|---|---|
28 ноя. 2018 г. 13:31 | 6787673 | 0x2e9caad92e6484a0886bdbcc16a6985f09f682f87f3f755b071300d14cb92b3a | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x73a0a757f7402ccbcff22bcfd7f74b5146a1d6ed | 0.01844569122882918 Ether |
28 ноя. 2018 г. 13:31 | 6787673 | 0x4ecaf8e97aa3f82a0a74e6eba7c9732702f079dc787ee7c82d154fcb2498d04b | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xad3bf82902cefd5f71f8436a426ecc0151ac5aa7 | 0.5556398058274479 Ether |
28 ноя. 2018 г. 13:27 | 6787658 | 0x74aaa82fbb026ea98e43b70d0baaa63f79ceb467fd1b3ab2554c072db299e401 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xbb05b72191b92e52e242404a9054314bec04c423 | 0.1592401276650315 Ether |
28 ноя. 2018 г. 13:25 | 6787647 | 0xca7c6f37993c2beca7fdfa13c973e9611888c2ef8213e7a1d3a343e9b8035ed6 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xcbc18a3c667e729a7e22376dfbb64aeaa6b45b21 | 0.000001982886668287 Ether |
28 ноя. 2018 г. 13:25 | 6787645 | 0x1edb9aef97b62f005b809500ee8819fee2d70f0ad9205c4dbab429a92276a660 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x992f849c6411e58981d7fbe85ba8b16ade29b306 | 0.03177721437548631 Ether |
28 ноя. 2018 г. 13:25 | 6787645 | 0xebadfce0f7c391eb11ca80802b6b53bfeaa05fedb6877e17ef6ad4d2745724f7 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x4ea22ea89cbc924c50f5a45fedf5208127d797a1 | 0.010096683755809866 Ether |
28 ноя. 2018 г. 13:25 | 6787645 | 0x6e7cf273f6d7cf8d15b7745ea0bc0ec036d3936013e2b7bb9ea0020d59cd0980 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xcbc18a3c667e729a7e22376dfbb64aeaa6b45b21 | 0.09733149600887575 Ether |
28 ноя. 2018 г. 13:23 | 6787639 | 0x15bf93e0e385d9c5994b16bbee414b1db07d7f9fd6d4640bf26bf926263aa438 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x65a904d0c7520d9f4f64d94c4f00059169d17643 | 0.0739086557668874 Ether |
28 ноя. 2018 г. 13:18 | 6787618 | 0xcdedc38088d88a920c9c14e5b85f3abdcac9cf0fe1c500c4c127a0e5a327cf1e | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x3553812d2891c9729bf62180e9025a1d050c75d9 | 2.0610448033789 Ether |
28 ноя. 2018 г. 13:16 | 6787615 | 0x97fbc8be4d032b3ecf9defabaa0ae05267d50c106a74e6a2f061ebfce66ebb3d | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xfdc57ff555691939bf76dfcfdf808db490442714 | 0.037251975101118766 Ether |
28 ноя. 2018 г. 13:16 | 6787614 | 0x40a4de2037a851e7baaff6c0caf4b0aca34532ff3f3f64411b35fc7746a37904 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xa760b6987c290d4e1fd6f7592979b7614297846a | 0.18994630921997122 Ether |
28 ноя. 2018 г. 13:13 | 6787604 | 0xf4b00e45685465ba65118cae927502c3aaa814a8fba817cd679c9293622ec286 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xd78c9214643e339a408df43d0c7634b2b61028e1 | 0.03751909441404303 Ether |
28 ноя. 2018 г. 13:13 | 6787602 | 0xd73055abc6af17a6cd1e97ee201779b7fd3f2ecd0b6423849e1ac32315bd635c | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x4ea22ea89cbc924c50f5a45fedf5208127d797a1 | 0.028079892163129273 Ether |
28 ноя. 2018 г. 13:12 | 6787598 | 0x2ede8c4a9cd522fee4331d4e99b19014104356e88263db8777ae4c1644dc38c6 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x5ddda39c39a9a6291f7f13551d3530055bc1efcc | 3.0444050156346805 Ether |
28 ноя. 2018 г. 13:11 | 6787597 | 0x4140721d9c0ef012aaf137fba2f1994138787f111727dd5b184306dbd6a9a498 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x5fd8bf39f050ff2199ab98f2dc7f66c7ee558b37 | 0.008663614673676082 Ether |
28 ноя. 2018 г. 13:10 | 6787590 | 0x0824574fbc84182f62329a8201795a8fc964b4aa22e8b492247d1a40c81d39b5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x1a6bc0d46cee3aa3bc92c5e1dbad9d02a1948011 | 14.731519745346153 Ether |
28 ноя. 2018 г. 13:07 | 6787581 | 0xa45cb554c75b166af1ad6bc0f8b16d2a7bf63b9c66e38aa2f5e379679d5bdbea | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xa17c8047cbe809570fca127fb4e706c802a9894d | 2.3481311679477868 Ether |
28 ноя. 2018 г. 13:06 | 6787577 | 0x889c2104c4ec103771c2c107c6f8a1a243790a8b8bae62dad97b541c007a7725 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x117457f5846cd71ee29a0ead31bf4e72f67a266c | 3.078774990405716 Ether |
28 ноя. 2018 г. 13:05 | 6787572 | 0xb79a6d24a10b08a494d9a10909a2b39d1ebbd1febe4bbc7b7151af8a6546a433 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xeb7553e7334961f1deb680c477af94d0fe2a3368 | 23.632957596931057 Ether |
28 ноя. 2018 г. 13:03 | 6787562 | 0xd83908aea223cd8a329cba35fa6afbd8224f56d19dc95e85f874c3a80da3b13c | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x992f849c6411e58981d7fbe85ba8b16ade29b306 | 0.18174925675681924 Ether |
28 ноя. 2018 г. 13:03 | 6787560 | 0xa994628792463fca86f0a57ed9ce5dd0e4ae783ec548bc5cf950f4f63054e7e5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x850f340c8b4e9b92d9949e53a58de271bd7750e7 | 0.1765094927182541 Ether |
28 ноя. 2018 г. 13:03 | 6787560 | 0x49abb210850e80ed1a4e0d3ffe2e02a9cedd68f094b1e04dad0b91fa83975054 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x950ac5405b0c1a920aa3cca6ee6b97b5e1898152 | 0.00091693761733208 Ether |
28 ноя. 2018 г. 13:03 | 6787560 | 0x4cfebac315d6d17907fedb4db428ab81a01fbca357a589f9551c0fdcd0cd7d98 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xe88db5c82ebe225290e98b5d0bbb7bfc59e265ca | 10.753976673879723 Ether |
28 ноя. 2018 г. 13:03 | 6787560 | 0xc0e7a31f27d0b50b240cec5171ad14e37cb4087401a518bbeeb5a687cfc869af | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0x4b5880d401b3eabedcb2fe15cc1f9d5fc67df646 | 0.943598159822366 Ether |
28 ноя. 2018 г. 13:02 | 6787559 | 0xf3066020952946cfe368018e940ee8bccb10d3646b5149e63320a90fd747c4b5 | 0xbd73e675e1fa3d60a302c797df5c82e558da7ce1 | 0xeb7553e7334961f1deb680c477af94d0fe2a3368 | 0.9658793342124802 Ether |
Средняя оценка аудиторов 8.5
-
Оценка: 8
Провела компания: CryptoManiac- Cсылка на аудит (pdf.):скачать аудит в PDF
- Cсылка на youtube:https://www.youtube.com/channel/UCAhUglB1pLPt5tOf4L_DbwA
-
Оценка: 9
Провела компания: HACKEN.HUB- Cсылка на аудит (pdf.):скачать аудит в PDF
- Cсылка на youtube:https://hub.hacken.io/blog
Contract Source Code </>
pragma solidity 0.4.25; contract PantheonEcoSystem { struct UserRecord { address referrer; uint tokens; uint gained_funds; uint ref_funds; // this field can be negative int funds_correction; } using SafeMath for uint; using SafeMathInt for int; using Fee for Fee.fee; using ToAddress for bytes; // ERC20 string constant public name = "Pantheon Ecosystem"; string constant public symbol = "PAN"; uint8 constant public decimals = 18; // Fees Fee.fee private fee_purchase = Fee.fee(1, 10); // 10% Fee.fee private fee_selling = Fee.fee(1, 20); // 5% Fee.fee private fee_transfer = Fee.fee(1, 100); // 1% Fee.fee private fee_referral = Fee.fee(33, 100); // 33% // Minimal amount of tokens to be an participant of referral program uint constant private minimal_stake = 10e18; // Factor for converting eth <-> tokens with required precision of calculations uint constant private precision_factor = 1e18; // Pricing policy // - if user buy 1 token, price will be increased by "price_offset" value // - if user sell 1 token, price will be decreased by "price_offset" value // For details see methods "fundsToTokens" and "tokensToFunds" uint private price = 1e29; // 100 Gwei * precision_factor uint constant private price_offset = 1e28; // 10 Gwei * precision_factor // Total amount of tokens uint private total_supply = 0; // Total profit shared between token's holders. It's not reflect exactly sum of funds because this parameter // can be modified to keep the real user's dividends when total supply is changed // For details see method "dividendsOf" and using "funds_correction" in the code uint private shared_profit = 0; // Map of the users data mapping(address => UserRecord) private user_data; // ==== Modifiers ==== // modifier onlyValidTokenAmount(uint tokens) { require(tokens > 0, "Amount of tokens must be greater than zero"); require(tokens <= user_data[msg.sender].tokens, "You have not enough tokens"); _; } // ==== Public API ==== // // ---- Write methods ---- // function () public payable { buy(msg.data.toAddr()); } /* * @dev Buy tokens from incoming funds */ function buy(address referrer) public payable { // apply fee (uint fee_funds, uint taxed_funds) = fee_purchase.split(msg.value); require(fee_funds != 0, "Incoming funds is too small"); // update user's referrer // - you cannot be a referrer for yourself // - user and his referrer will be together all the life UserRecord storage user = user_data[msg.sender]; if (referrer != 0x0 && referrer != msg.sender && user.referrer == 0x0) { user.referrer = referrer; } // apply referral bonus if (user.referrer != 0x0) { fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, msg.value); require(fee_funds != 0, "Incoming funds is too small"); } // calculate amount of tokens and change price (uint tokens, uint _price) = fundsToTokens(taxed_funds); require(tokens != 0, "Incoming funds is too small"); price = _price; // mint tokens and increase shared profit mintTokens(msg.sender, tokens); shared_profit = shared_profit.add(fee_funds); emit Purchase(msg.sender, msg.value, tokens, price / precision_factor, now); } /* * @dev Sell given amount of tokens and get funds */ function sell(uint tokens) public onlyValidTokenAmount(tokens) { // calculate amount of funds and change price (uint funds, uint _price) = tokensToFunds(tokens); require(funds != 0, "Insufficient tokens to do that"); price = _price; // apply fee (uint fee_funds, uint taxed_funds) = fee_selling.split(funds); require(fee_funds != 0, "Insufficient tokens to do that"); // burn tokens and add funds to user's dividends burnTokens(msg.sender, tokens); UserRecord storage user = user_data[msg.sender]; user.gained_funds = user.gained_funds.add(taxed_funds); // increase shared profit shared_profit = shared_profit.add(fee_funds); emit Selling(msg.sender, tokens, funds, price / precision_factor, now); } /* * @dev Transfer given amount of tokens from sender to another user * ERC20 */ function transfer(address to_addr, uint tokens) public onlyValidTokenAmount(tokens) returns (bool success) { require(to_addr != msg.sender, "You cannot transfer tokens to yourself"); // apply fee (uint fee_tokens, uint taxed_tokens) = fee_transfer.split(tokens); require(fee_tokens != 0, "Insufficient tokens to do that"); // calculate amount of funds and change price (uint funds, uint _price) = tokensToFunds(fee_tokens); require(funds != 0, "Insufficient tokens to do that"); price = _price; // burn and mint tokens excluding fee burnTokens(msg.sender, tokens); mintTokens(to_addr, taxed_tokens); // increase shared profit shared_profit = shared_profit.add(funds); emit Transfer(msg.sender, to_addr, tokens); return true; } /* * @dev Reinvest all dividends */ function reinvest() public { // get all dividends uint funds = dividendsOf(msg.sender); require(funds > 0, "You have no dividends"); // make correction, dividents will be 0 after that UserRecord storage user = user_data[msg.sender]; user.funds_correction = user.funds_correction.add(int(funds)); // apply fee (uint fee_funds, uint taxed_funds) = fee_purchase.split(funds); require(fee_funds != 0, "Insufficient dividends to do that"); // apply referral bonus if (user.referrer != 0x0) { fee_funds = rewardReferrer(msg.sender, user.referrer, fee_funds, funds); require(fee_funds != 0, "Insufficient dividends to do that"); } // calculate amount of tokens and change price (uint tokens, uint _price) = fundsToTokens(taxed_funds); require(tokens != 0, "Insufficient dividends to do that"); price = _price; // mint tokens and increase shared profit mintTokens(msg.sender, tokens); shared_profit = shared_profit.add(fee_funds); emit Reinvestment(msg.sender, funds, tokens, price / precision_factor, now); } /* * @dev Withdraw all dividends */ function withdraw() public { // get all dividends uint funds = dividendsOf(msg.sender); require(funds > 0, "You have no dividends"); // make correction, dividents will be 0 after that UserRecord storage user = user_data[msg.sender]; user.funds_correction = user.funds_correction.add(int(funds)); // send funds msg.sender.transfer(funds); emit Withdrawal(msg.sender, funds, now); } /* * @dev Sell all tokens and withraw dividends */ function exit() public { // sell all tokens uint tokens = user_data[msg.sender].tokens; if (tokens > 0) { sell(tokens); } withdraw(); } /* * @dev CAUTION! This method distributes all incoming funds between token's holders and gives you nothing * It will be used by another contracts/addresses from our ecosystem in future * But if you want to donate, you're welcome :) */ function donate() public payable { shared_profit = shared_profit.add(msg.value); emit Donation(msg.sender, msg.value, now); } // ---- Read methods ---- // /* * @dev Total amount of tokens * ERC20 */ function totalSupply() public view returns (uint) { return total_supply; } /* * @dev Amount of user's tokens * ERC20 */ function balanceOf(address addr) public view returns (uint) { return user_data[addr].tokens; } /* * @dev Amount of user's dividends */ function dividendsOf(address addr) public view returns (uint) { UserRecord memory user = user_data[addr]; // gained funds from selling tokens + bonus funds from referrals // int because "user.funds_correction" can be negative int d = int(user.gained_funds.add(user.ref_funds)); require(d >= 0); // avoid zero divizion if (total_supply > 0) { // profit is proportional to stake d = d.add(int(shared_profit.mul(user.tokens) / total_supply)); } // correction // d -= user.funds_correction if (user.funds_correction > 0) { d = d.sub(user.funds_correction); } else if (user.funds_correction < 0) { d = d.add(-user.funds_correction); } // just in case require(d >= 0); // total sum must be positive uint return uint(d); } /* * @dev Amount of tokens can be gained from given amount of funds */ function expectedTokens(uint funds, bool apply_fee) public view returns (uint) { if (funds == 0) { return 0; } if (apply_fee) { (,uint _funds) = fee_purchase.split(funds); funds = _funds; } (uint tokens,) = fundsToTokens(funds); return tokens; } /* * @dev Amount of funds can be gained from given amount of tokens */ function expectedFunds(uint tokens, bool apply_fee) public view returns (uint) { // empty tokens in total OR no tokens was sold if (tokens == 0 || total_supply == 0) { return 0; } // more tokens than were mined in total, just exclude unnecessary tokens from calculating else if (tokens > total_supply) { tokens = total_supply; } (uint funds,) = tokensToFunds(tokens); if (apply_fee) { (,uint _funds) = fee_selling.split(funds); funds = _funds; } return funds; } /* * @dev Purchase price of next 1 token */ function buyPrice() public view returns (uint) { return price / precision_factor; } /* * @dev Selling price of next 1 token */ function sellPrice() public view returns (uint) { return price.sub(price_offset) / precision_factor; } // ==== Private API ==== // /* * @dev Mint given amount of tokens to given user */ function mintTokens(address addr, uint tokens) internal { UserRecord storage user = user_data[addr]; bool not_first_minting = total_supply > 0; // make correction to keep dividends the rest of the users if (not_first_minting) { shared_profit = shared_profit.mul(total_supply.add(tokens)) / total_supply; } // add tokens total_supply = total_supply.add(tokens); user.tokens = user.tokens.add(tokens); // make correction to keep dividends of user if (not_first_minting) { user.funds_correction = user.funds_correction.add(int(tokens.mul(shared_profit) / total_supply)); } } /* * @dev Burn given amout of tokens from given user */ function burnTokens(address addr, uint tokens) internal { UserRecord storage user = user_data[addr]; // keep current dividents of user if last tokens will be burned uint dividends_from_tokens = 0; if (total_supply == tokens) { dividends_from_tokens = shared_profit.mul(user.tokens) / total_supply; } // make correction to keep dividends the rest of the users shared_profit = shared_profit.mul(total_supply.sub(tokens)) / total_supply; // sub tokens total_supply = total_supply.sub(tokens); user.tokens = user.tokens.sub(tokens); // make correction to keep dividends of the user // if burned not last tokens if (total_supply > 0) { user.funds_correction = user.funds_correction.sub(int(tokens.mul(shared_profit) / total_supply)); } // if burned last tokens else if (dividends_from_tokens != 0) { user.funds_correction = user.funds_correction.sub(int(dividends_from_tokens)); } } /* * @dev Rewards the referrer from given amount of funds */ function rewardReferrer(address addr, address referrer_addr, uint funds, uint full_funds) internal returns (uint funds_after_reward) { UserRecord storage referrer = user_data[referrer_addr]; if (referrer.tokens >= minimal_stake) { (uint reward_funds, uint taxed_funds) = fee_referral.split(funds); referrer.ref_funds = referrer.ref_funds.add(reward_funds); emit ReferralReward(addr, referrer_addr, full_funds, reward_funds, now); return taxed_funds; } else { return funds; } } /* * @dev Calculate tokens from funds * * Given: * a[1] = price * d = price_offset * sum(n) = funds * Here is used arithmetic progression's equation transformed to a quadratic equation: * a * n^2 + b * n + c = 0 * Where: * a = d * b = 2 * a[1] - d * c = -2 * sum(n) * Solve it and first root is what we need - amount of tokens * So: * tokens = n * price = a[n+1] * * For details see method below */ function fundsToTokens(uint funds) internal view returns (uint tokens, uint _price) { uint b = price.mul(2).sub(price_offset); uint D = b.mul(b).add(price_offset.mul(8).mul(funds).mul(precision_factor)); uint n = D.sqrt().sub(b).mul(precision_factor) / price_offset.mul(2); uint anp1 = price.add(price_offset.mul(n) / precision_factor); return (n, anp1); } /* * @dev Calculate funds from tokens * * Given: * a[1] = sell_price * d = price_offset * n = tokens * Here is used arithmetic progression's equation (-d because of d must be negative to reduce price): * a[n] = a[1] - d * (n - 1) * sum(n) = (a[1] + a[n]) * n / 2 * So: * funds = sum(n) * price = a[n] * * For details see method above */ function tokensToFunds(uint tokens) internal view returns (uint funds, uint _price) { uint sell_price = price.sub(price_offset); uint an = sell_price.add(price_offset).sub(price_offset.mul(tokens) / precision_factor); uint sn = sell_price.add(an).mul(tokens) / precision_factor.mul(2); return (sn / precision_factor, an); } // ==== Events ==== // event Purchase(address indexed addr, uint funds, uint tokens, uint price, uint time); event Selling(address indexed addr, uint tokens, uint funds, uint price, uint time); event Reinvestment(address indexed addr, uint funds, uint tokens, uint price, uint time); event Withdrawal(address indexed addr, uint funds, uint time); event Donation(address indexed addr, uint funds, uint time); event ReferralReward(address indexed referral_addr, address indexed referrer_addr, uint funds, uint reward_funds, uint time); //ERC20 event Transfer(address indexed from_addr, address indexed to_addr, uint tokens); } library SafeMath { /** * @dev Multiplies two numbers */ function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "mul failed"); return c; } /** * @dev Subtracts two numbers */ function sub(uint a, uint b) internal pure returns (uint) { require(b <= a, "sub failed"); return a - b; } /** * @dev Adds two numbers */ function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "add failed"); return c; } /** * @dev Gives square root from number */ function sqrt(uint x) internal pure returns (uint y) { uint z = add(x, 1) / 2; y = x; while (z < y) { y = z; z = add(x / z, z) / 2; } } } library SafeMathInt { /** * @dev Subtracts two numbers */ function sub(int a, int b) internal pure returns (int) { int c = a - b; require(c <= a, "sub failed"); return c; } /** * @dev Adds two numbers */ function add(int a, int b) internal pure returns (int) { int c = a + b; require(c >= a, "add failed"); return c; } } library Fee { using SafeMath for uint; struct fee { uint num; uint den; } /* * @dev Splits given value to two parts: tax itself and taxed value */ function split(fee memory f, uint value) internal pure returns (uint tax, uint taxed_value) { if (value == 0) { return (0, 0); } tax = value.mul(f.num) / f.den; taxed_value = value.sub(tax); } /* * @dev Returns only tax part */ function get_tax(fee memory f, uint value) internal pure returns (uint tax) { if (value == 0) { return 0; } tax = value.mul(f.num) / f.den; } } library ToAddress { /* * @dev Transforms bytes to address */ function toAddr(bytes source) internal pure returns (address addr) { assembly { addr := mload(add(source, 0x14)) } return addr; } }
Документация
Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Задача организации, в особенности же новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации новых предложений.
Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.
Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.
Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.
Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.
Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.
Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.
Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.
Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.
Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.
Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.
Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.
Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.
Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Информация о домене или любая информация о сайте
Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Товарищи! новая модель организационной деятельности позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом реализация намеченных плановых заданий позволяет выполнять важные задания по разработке новых предложений. Задача организации, в особенности же консультация с широким активом требуют от нас анализа существенных финансовых и административных условий. Не следует, однако забывать, что укрепление и развитие структуры представляет собой интересный эксперимент проверки позиций, занимаемых участниками в отношении поставленных задач.
Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.
Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.
Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.
Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.
С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.
Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.
Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.
Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.
Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.
Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.
Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.
Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.
Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.
Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.
Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.
С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.
Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.
Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.
Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.
Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.
Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.
Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.
Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.
Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.